RDKit

文章目录

  • 一、描述符计算模块
    • 1.rdkit.Chem.Lipinski模块
    • 2.rdkit.Chem.Descriptors模块
    • 3.rdkit.ML.Descriptors.MoleculeDescriptors模块
  • 二、原子描述符可视化
    • 1.原子partial charge可视化
    • 2.原子logP可视化

一、描述符计算模块

1.rdkit.Chem.Lipinski模块

rdkit中提供了许多描述符的计算方法,可用于分子筛选、成药性评估等。以lipinski类药的相关规则为例,可以通过rdkit.Chem.Lipinski模块进行计算。常用的一些性质举例:

  • 氢键受体数NumHAcceptors
  • 氢键供体数NumHDonors
  • 可旋转键数NumRotatableBonds
  • 脂肪环数量NumAliphaticRings
  • 芳香环数量NumAromaticRings
  • SP3杂化碳原子比例FractionCSP3
  • ……
>>> from rdkit import Chem
>>> from rdkit.Chem import Lipinski
>>> mol = Chem.MolFromSmiles('c1ccccc1C(=O)O')
>>> Lipinski.NumHAcceptors(mol)
1
  • 将描述符名称(key)和值(val)添加到分子属性中:m.SetProp(key, val)
  • 获取分子属性:m.GetProp(key)
>>> Ha = Lipinski.NumHAcceptors(mol)
>>> mol.SetProp('Ha', '%s'%Ha)
>>> mol.GetProp('Ha')
'1'

2.rdkit.Chem.Descriptors模块

大部分的描述符都可以通过rdkit.Chem.Descriptors模块进行计算。该模块也包含了Lipinski的描述符。常用的一些描述符举例:

  • 分子量MolWt
  • 脂水分配系数MolLogP
  • 拓扑极表面积TPSA
  • 以计算TPSA为例:Descriptors.TPSA()
>>> from rdkit.Chem import Descriptors
>>> print(Descriptors