背景
1.利用snugdock生成多个pdb结构之后,将所有的pdb文件计算各种打分值之后转化为silent文件,此时发现rstoolbox读取silent文件中的参数时报错
报错内容
>>> rf.io.parse_rosetta_file("model1_pred_deepab_aligned_0001.silent",rules)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/conda/lib/python3.7/site-packages/rstoolbox/io/rosetta.py", line 344, in parse_rosetta_file
chain, numbers = x.split(":")
ValueError: too many values to unpack (expected 2)
解决方案
- 检查为什么出现问题,定位到源码
- 检查silent文件中RES_NUM开始的行
RES_NUM H:1-31 H:31-82 H:82 H:82 H:82-100 H:100 H:100 H:100 H:100 H:100 H:100-112 L:1-107 B:00:1-223 model1_pred_deepab_aligned_0020.pdb
发现出问题的点在于这一行中B:00:1-223的位置,主要是多出来个00,这个00在转换为silent之前的pdb文件中就存在,位于pdb文件的第73-76列,将这两列0删除掉之后就可以正常工作。