rdkit入门

Python中的RDkit包,是将化学与机器学习联系起来的、非常实用的库。可以在很多种化学文件如mol2,mol,Smiles,sdf等之间互相转化,并能将其展示成2D、3D等形式供开发人员使用。

1.生成描述:2D分子

from rdkit.Chem import AllChem
import rdkit.Chem
from rdkit.Chem import Draw

template = rdkit.Chem.MolFromSmiles('COc1cccc2cc(C(=O)NCCCCN3CCN(c4cccc5nccnc54)CC3)oc21')
tmp=AllChem.Compute2DCoords(template)
Draw.MolToFile(template,'1.png')

rdkit入门_第1张图片

2.最大公共子结构

它返回一个MCSResult实例,其中包含有关MCS中原子和键数的信息,与已识别的MCS匹配的SMARTS字符串,以及一个表示算法是否超时的标志。如果没有找到MCS,则原子和键的数量设置为0,SMARTS设置为''

from rdkit.Chem import AllChem
import rdkit.Chem
from rdkit.Chem import Draw

from rdkit.Chem import rdFMCS
mol1 = 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)

rdkit入门_第2张图片

你可能感兴趣的:(rdkit)