Python中的RDkit包,是将化学与机器学习联系起来的、非常实用的库。可以在很多种化学文件如mol2,mol,Smiles,sdf等之间互相转化,并能将其展示成2D、3D等形式供开发人员使用。
1.生成描述:2D分子 from rdkit.Chem import AllChemimport rdkit.Chemfrom rdkit.Chem import Drawtemplate = rdkit.Chem.MolFromSmiles('COc1cccc2cc(C(=O)NCCCCN3CCN(c4cccc5nccnc54)CC3)oc21')tmp=AllChem.Compute2DCoords(template)Draw.MolToFile(template,'1.png') 2.最大公共子结构它返回一个MCSResult实例,其中包含有关MCS中原子和键数的信息,与已识别的MCS匹配的SMARTS字符串,以及一个表示算法是否超时的标志。如果没有找到MCS,则原子和键的数量设置为0,SMARTS设置为''。
from rdkit.Chem import AllChemimport rdkit.Chemfrom rdkit.Chem import Drawfrom rdkit.Chem import rdFMCSmol1 = rdkit.Chem.MolFromSmiles("O=C(NCc1cc(OC)c(O)cc1)CCCC/C=C/C(C)C")mol2 = rdkit.Chem.MolFromSmiles("CC(C)CCCCCC(=O)NCC1=CC(=C(C=C1)O)OC")mol3 = rdkit.Chem.MolFromSmiles("c1(C=O)cc(OC)c(O)cc1")mols = [mol1,mol2,mol3]res=rdFMCS.FindMCS(mols)print(res)print(res.numAtoms)print(res.numBonds)print(res.smartsString)print(res.canceled)