Я использую Bio.PDB для анализа структур в формате mmCIF и PDB. Я понял, что PDBIO плохо работает с двухсимвольными идентификаторами цепочки (например, «AA» или «AB»), обнаруженными в структурах assembly . Я сделал небольшое изменение в коде, который мне подходит. В приложении вы найдете модифицированный модуль PDBIO. В основном он проверяет длину строки идентификатора цепочки и добавляет пробел перед ней, если это один символ. Строка форматирования изменяется соответствующим образом.
Это мои изменения в модуле Bio.PDB.PDBIO. Пожалуйста, подумайте над тем, чтобы добавить его в будущее обновление.
Изменено:
_ATOM_FORMAT_STRING = "%s%5i %-4s%c%3s%s%4i%c %8.3f%8.3f%8.3f%s%6.2f %4s%2s%2s\n"
Изменено:
for chain in model.get_list():
if not select.accept_chain(chain):
continue
chain_id = chain.get_id()
if len(chain_id)==1: #Added line
chain_id = ' {}'.format(chain_id) #Added line
Изменено:
fp.write("TER %5i %3s %s%4i%c \n