rdkit 读取mol sdf 的名字和自定义属性字段
首先 sdf格式 https://blog.csdn.net/u012325865/article/details/82383983
第一行:一般作为分子名字,如 Levetiracetam
http://rdkit.chenzhaoqiang.com/basicManual.html#id3
在github上读了一些源码 https://github.com/rdkit/rdkit/blob/master/rdkit/Chem/ChemUtils/SDFToCSV.py
大概明白了
mols = Chem.SDMolSupplier(XXX.sdf') print(type(mols)) for mol1 in mols: #名字 name = mol1.GetProp('_Name') print(name) #其他非标准的属性 propNames = list(mol1.GetPropNames()) #['Temperature [K]', 'XXX ID', 'Field Strength [MHz]', 'Solvent'] print(propNames) p_solvent = mol1.GetProp('Solvent')
注意
1 _Name 是隐藏的属性,默认就是rdkit parse出的第一行文本,如果sdf第一行是整个数据库的文字说明之类,那么第一个分子的_Name属性是就是这段说明,可能不能正确得到name
2 注释部分,暂时不知道怎么读 似乎丢弃了
3 GetPropNames 方法 可以parse到 全部
>
这样的属性,已经够用了