AttributeError: ‘NoneType‘ object has no attribute ‘GetAtoms‘

遇到这个问题很简单,只要你打印一下你的smile的mol是否存在即可,利用以下命令将smiles转mol:

mol = Chem.MolFromSmiles(smi)

SMILES变成它的Mol对象,它只是返回None,这就是为什么错误说'NoneType'而不是RDKit内部Mol对象。检查您试图加载的SMILES字符串,并确保它是正确的。所以你需要重新审视你输入的smiles的准确性。有两种处理方式:

1、要么对当前报错块区域进行如下修改,对转换之后的mol进行过滤

      if mol is None: continue

2、要么对生成smiles文件进行重新生成,对原smiles进行处理

mol = Chem.MolFromSmiles(smi)
if not mol:
    return ''
if remove_atom_mapping:
    for atom in mol.GetAtoms():
        if atom.HasProp("molAtomMapNumber"):
            atom.ClearProp("molAtomMapNumber")

你可能感兴趣的:(化学AI,人工智能,化学,smiles,Rdkit)