Я пытаюсь сохранить расстояние между двумя остатками, используя следующий код:
f = open('%s.txt' % fileName, 'w')
print(residue1,residue2,distance)
f.write(line)
Команда печати показывает следующий вывод:
<Residue U het= resseq=63 icode= > <Residue A het= resseq=11 icode= > 66.809425
<Residue G het= resseq=64 icode= > <Residue A het= resseq=11 icode= > 71.63533
<Residue C het= resseq=65 icode= > <Residue A het= resseq=11 icode= > 76.931366
<Residue G het= resseq=66 icode= > <Residue A het= resseq=11 icode= > 81.664375
<Residue A het= resseq=67 icode= > <Residue A het= resseq=11 icode= > 84.5027
<Residue U het= resseq=68 icode= > <Residue A het= resseq=11 icode= > 87.20471
<Residue A het= resseq=69 icode= > <Residue A het= resseq=11 icode= > 82.4701
<Residue A het= resseq=70 icode= > <Residue A het= resseq=11 icode= > 76.94348
<Residue G het= resseq=71 icode= > <Residue A het= resseq=11 icode= > 76.04107
<Residue C het= resseq=72 icode= > <Residue A het= resseq=11 icode= > 82.2956
<Residue C het= resseq=73 icode= > <Residue A het= resseq=11 icode= > 87.42678
<Residue A het= resseq=74 icode= > <Residue A het= resseq=11 icode= > 92.075035
<Residue U het= resseq=75 icode= > <Residue A het= resseq=11 icode= > 94.59299
<Residue G het= resseq=76 icode= > <Residue A het= resseq=11 icode= > 94.36213
Когда я редактирую код для добавления строк сохранить вывод в файл:
f = open('%s.txt' % fileName, 'w')
print(residue1,residue2,distance)
line = str(residue1)+','+str(residue2)+','+str(distance)
f.write(line)
f.close()
Я получаю следующую ошибку:
model = structure[0]
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/Bio/PDB/Entity.py", line 41, in __getitem__
return self.child_dict[id]
KeyError: 0
Как ее решить?
Обновление:
f = open('%s.txt' % fileName, 'w')
print(residue1.get_id(),',',residue2.get_id(),',',distance)
line = f"{residue1.get_id()}, {residue2.get_id()}, {distance}"
f.write(line)
f.close()
Эта строка запускается один раз со следующим выводом в выходном файле:
(' ', 122, ' '), (' ', 11, ' '), 144.1501007080078
, а затем завершается с ошибкой