Скрипт, находящий водяные мостики и создающий Jmol-скрипт, красящий их.
Скачать разобранный ниже скрипт можно по этой ссылке
Идея искать решение проблемы поиска водяных мостов с помощью Python принадлежит Андрею Демкиву. В этом скрипте реализован видоизмененый алгоритм, предложенным им. Эти изменения, на мой взгляд, позволяют находить водяные мосты более точно, более того, позволяют пользователю самому выбирать "качество" мостов, находимых скриптом.
При запуске скрипт запрашивает имя файла, содержащего структуру белка, в котором следует искать водяные мостики, а также степень ошибки, которую "могут иметь" найденные водяные мостики
Затем скрипт ищет в файле атомы, принадлежащие той или иной группе по способности образовывать водяной мост, и воду. Затем в пары отбираются те атомы, которые находятся на определенном расстоянии от воды, затем - из найденных пар формируются тройки, которые могут образовывать водяные мостики(искомые атомы должны образовывать треугольник с одним из углов, близким к 104.45 градусам). Вслед за этим создается скрипт, выделяющий найденные аминокислоты и соединяющий атомы, входящие в водяной мостик водородными связями.
11.03.2014 скрипт был исправлен(до этого при наличии в белке>1 цепи он выдавал не те водородные связи, кроме того, неточно выделял воду). Огромное спасибо Яровенко Светлане за тестинг