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到 全部

>  

这样的属性,已经够用了