【问题标题】:Calculate descriptors with RDkit使用 RDkit 计算描述符
【发布时间】:2020-09-30 16:18:47
【问题描述】:
我正在尝试在 python 中使用 RDkit 计算分子列表的所有描述符(2D/3D)。当我跑步时:
MolecularDescriptorCalculator.CalcDescriptors(mol, simplelist)
它返回:
AttributeError: 'Mol' object has no attribute 'simpleList'
【问题讨论】:
标签:
descriptor
rdkit
molecule
【解决方案1】:
看起来你使用的 API 有点错误,你需要先用你需要的描述符列表初始化 MolecularDescriptorCalculator 类。
simplelist = ['TPSA'] # In the list add the names of the descriptors required
calculator = MolecularDescriptorCalculator(simplelist)
descriptors = calculator.CalcDescriptors(mol)
print(descriptors)
[Out]:
(21.259999999999998,)
【解决方案2】:
要计算所有的rdkit描述符,可以使用以下代码:
descriptor_names = list(rdMolDescriptors.Properties.GetAvailableProperties())
get_descriptors = rdMolDescriptors.Properties(descriptor_names)
使用微笑字符串计算描述符
def smi_to_descriptors(smile):
mol = Chem.MolFromSmiles(smile)
descriptors = []
if mol:
descriptors = np.array(get_descriptors.ComputeProperties(mol))
return descriptors
如果微笑在熊猫数据框中
dataset['descriptors'] = dataset.SMILES.apply(smi_to_descriptors)