Closed EvelinaBiserova closed 3 months ago
Я извиняюсь, у меня из головы вылетело описать, в чём здесь проблема.
Формат нигде не запрещает использовать один и тот же ResidueIndex в разных цепях. Даже есть примеры, где так сделано (7LWH): Первая строка:
ATOM 387 N LYS A 69 -21.762 18.114 11.689 0.00 59.78 N
Здесь цепь A имеет индекс остатка 69
ATOM 2721 N PRO B 69 -14.033 -22.406 4.787 1.00 43.69 N
Здесь уже видим цепь B и остаток также 69.
Тот сконструированный мной файл из бага оказался "краевым" случаем: одинаковый индекс был на стыке цепей, при итерировании по файлу они казались не различимыми. Тем не менее, они принадлежали разным цепями. Отсюда и фикс: сопоставить предыдущему остатку не только его номер и другие характеристики, но и ид цепи, к которой он принадлежал, чтобы сравнение остатков было корректно. Из-за того, что других остатков во 2-й цепи не оказалось, а единственный был ошибочно присвоен первой цепи, 2-я последовательность оказалась пустой.
Тест упал -- винда хотела обновиться, перекрыла предупреждением весь экран