RDKit基础操作 (一)
RDKit对象
分子对象
分子对象是RDKit里最重要的一种对象,大部分的操作都围绕它展开。得到分子对象的方式通常是由SMILES字符串转换而来。比如我们想要得到苯的分子对象:
1 | from rdkit import Chem |
SMILES以及分子对象中一般不显式写出氢原子,而是通过化学规则推断。如果要显示出显式氢,可以使用:
1 | mol = Chem.AddHs(mol) |
同理,去掉显式氢则使用:
1 | mol = Chem.RemoveHs(mol) |
获取分子的原子数和化学键数
1 | mol.GetNumAtoms() |
获取分子中的原子:
1 | GetAtoms() |
获取分子中的键:
1 | GetBonds() |
根据原子编号获取原子:
1 | GetAtomWithIdx() |
原子对象
对于上文得到的原子对象atom,我们可以对其做大量的操作。
1 | GetAtomMapNum: 原子smarts形式冒号后面的数字,如[N:4], map id 就是4。 |
化学键对象
同理,对于上文得到的键对象bond,我们也可以对其做大量的操作。
1 | GetBondType():获取键的类型 |
构象对象
我们可以使用RDKit内置的力场优化方法,通过分子对象直接得到它的构象:
1 | from rdkit import AllChem |
分子的可视化
将分子对象显示为图片
1
Draw.MolToImage(mol)
将分子对象保存为图片
1
Draw.MolToFile(mol,’filename.png’)
绘制多个分子对象
1
Draw.MolsToGridImage(mols, molsPerRow=4, subImgSize=(200,200))
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Chao Pang的个人主页!