Я пишу сценарий, который перенумеровывает белковые структуры (файлы CIF), а затем сохраняет их (файлы PDB: Biopython не имеет функции сохранения CIF).
Для большинства файлов, которые я использую, это работает. Но для таких файлов, как 6ek0.pdb, 5t2c.pdb и 4v6x.pdb, я получаю одну и ту же ошибку TypeError для той же строки функции io.save. Ошибка также возникает, когда я не перенумеровываю файл, а имею только ввод и вывод, как это:
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, поэтому я предполагаю, что их типы были правильными.
Я надеюсь, что вы можете мне помочь. Если я могу что-то сделать, чтобы улучшить этот вопрос, укажите (я здесь новичок).
Изменить: чтобы было ясно, то, что я хочу сделать, это
- понять, что пошло не так
- сохранить структуру