我正在编写一个重新编号蛋白质结构(CIF 文件)然后保存它们的脚本(PDB 文件:Biopython 没有 CIF 保存功能)。
对于我使用的大多数文件,它都有效。但是对于像 6ek0.pdb、5t2c.pdb 和 4v6x.pdb 这样的文件,对于 io.save 函数的同一行,我不断收到相同的 TypeError。当我不重新编号文件时,错误也存在,只有这样的输入和输出:
from Bio import PDB
io = PDB.PDBIO()
pdb_parser = PDB.MMCIFParser()
pdbfile = '/Users/jbibbe/Documents/2018Masterstage_2/Scripts_part2/PDBfiles/5t2c.cif'
structure = pdb_parser.get_structure(' ', pdbfile)
io.set_structure(structure)
io.save(pdbfile[:-4] + '_test.pdb')
错误是:
Traceback (most recent call last):
File "/Users/jbibbe/Documents/2018Masterstage_2/Scripts_part2/testerfile.py", line 8, in <module>
io.save(pdbfile[:-4] + '_test.pdb')
File "/Users/jbibbe/anaconda2/lib/python2.7/site-packages/Bio/PDB/PDBIO.py", line 222, in save
resseq, icode, chain_id)
File "/Users/jbibbe/anaconda2/lib/python2.7/site-packages/Bio/PDB/PDBIO.py", line 112, in _get_atom_line
return _ATOM_FORMAT_STRING % args
TypeError: %c requires int or char
我查看了代码和原子属性,但我看不出原子属性的类型有什么问题。atom_format_string 中的大部分部分都由 Biopython 彻底检查,所以我认为它们的类型是正确的。
我希望你能帮助我。如果我能做些什么来改善这个问题,请指出(我是新来的)。
编辑:要清楚,我想做的是
- 了解出了什么问题
- 保存结构