Hi, rdkit-discuss I'm looking for a way to increase the quality of image made by Draw.MolToImage.
Here is my function, but its bonds and atom labels look like up-and-down slightly. I don't use IPython, then are there other options? def draw_img(smiles): from rdkit.Chem import AllChem from rdkit.Chem import Draw from rdkit.Chem.Draw import MolDrawing, DrawingOptions import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import ImageGrid m = Chem.MolFromSmiles(smiles) AllChem.Compute2DCoords(m) mHs = AllChem.AddHs(Chem.Mol(m)) m_idx = Chem.Mol(m) mHs_idx = Chem.Mol(mHs) for mol in [m, m_idx, mHs, mHs_idx]: AllChem.GenerateDepictionMatching2DStructure(mol, m) img_m = Draw.MolToImage(m, size=(800, 400), fitImage=True) img_m_idx = Draw.MolToImage(m_idx, size=(800, 400), fitImage=True, includeAtomNumbers=True) img_mHs = Draw.MolToImage(mHs, size=(800, 400), fitImage=True) img_mHs_idx = Draw.MolToImage(mHs_idx, size=(800, 400), fitImage=True, includeAtomNumbers=True) imgs = [img_m, img_m_idx, img_mHs, img_mHs_idx] fig = plt.figure(1, (8, 8)) grid = ImageGrid(fig, 111, # similar to subplot(111) nrows_ncols=(2, 2), # creates 2x2 grid of axes axes_pad=0.1 # pad between axes in inch. ) for i in range(4): grid[i].imshow(imgs[i]) # The AxesGrid object work as a list of axes. plt.show() smiles = 'COc1ccc2[nH]c(nc2c1)S(=O)Cc3ncc(C)c(OC)c3C' draw_img(smiles) Also, I need the function which can close the presented image. The functions from RDkit seem not to support that. Best, Noki
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss