在使用rdkit解析pdb文件的时候遇到了一个问题,我是使用zdock生成的decoys集,里面的某个蛋白质的decoys数据集都有问题,找了半天,终于找到原因了。
完整的错误是这样的:
Post-condition Violation
Element ‘A’ not found
Violation occurred on line 91 in file /tmp/pip-req-build-tzcdahwp/build/temp.linux-x86_64-3.7/rdkit/rdkit/Code/GraphMol/PeriodicTable.h
Failed Expression: anum > -1
遇到这个错误,我首先想的是更改rdkit读取pdb文件代码的参数,但是没啥用,因为这几个参数,都是清洗数据的,而这个错误是因为你的pdb文件不符合标准格式造成的
MolFromPDBFile(path,sanitize=True,removeHs=True,flavor=0,proximityBonding=False)
Chem.MolFromPDBFile(file, removeHs=False, flavor=1, sanitize=False)
那不是调整参数能解决的,应该如何解决呢?
再回去看错误,他说是这个路径下的PeriodicTable.h文件里面报了这个异常,这时候就找这个文件,发现,找不到!
但是,rdkit是开源的,直接搜rdkit PeriodicTable.h的源码,我们可以找到这个文件的源码,我把链接放在下面: