Я пишу скрипт, который перенумеровывает структуры белка (файлы 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, поэтому я предполагаю, что их типы были правильными.
Надеюсь, вы мне поможете.Если я могу что-то сделать, чтобы улучшить этот вопрос, пожалуйста, укажите (я новичок здесь).
Редактировать: Чтобы было ясно, я хочу сделать это
- понять, что пошло не так
- сохранить структуру