Open: Обработка конформационных ансамблей в Python: Difference between revisions

From TheorChemGroup at ZIOC RAS
mNo edit summary
Line 26: Line 26:
Для установки на Linux нужно выполнить в терминале следующую команду:
Для установки на Linux нужно выполнить в терминале следующую команду:


  pip install -i https://test.pypi.org/simple/ pyxyz<1.0.0
  pip install -i https://test.pypi.org/simple/ "pyxyz<1.0"


Для установки на Windows нужно выполнить в командной строке эту строчку:
Для установки на Windows нужно выполнить в командной строке эту строчку:

Revision as of 20:02, 18 July 2022

New title: Обработка конформационных ансамблей в Python

Архив с примерами -- Pyxyz_manual.zip (File:Pyxyz manual.zip)


В чем заключается эта обработка и для чего её делать?

Программы для конформационного поиска обычно выдают результаты в виде XYZ файлов, структуры из которых обычно надо вписать в инпут-файлы для последующей квантовохимической оптимизации. Чтобы уменьшить количество расчетов вам может захотеться сделать следующие операции, перед тем, как генерировать инпут-файлы:

  • Отсеять конформации с чрезмерно высокой энергией;
  • Удалить дубликаты;
  • Проверить сохранение констрейнов и отбросить структуры, в которых они нарушены. Например, когда вы ищите конформеры переходного состояния в CREST, полученный конформационный набор может содержать структуры, в которых заданные констрейны сильно нарушены. Если начнете оптимизировать такие геометрии в DFT, то ПС не найдется, а вы потратите время.
  • Проанализировать ансамбль и узнать, какие слабые взаимодействия (водородные связи и т.п.) могут образовываться в вашей молекуле. Найденные контакты можно учесть в дополнительных запусках конформационного поиска с констрейнами, чтобы лучше перебрать варианты с данными взаимодействиями.
  • Объединить конформационные ансамбли из нескольких расчетов, полученные, например, как в пункте выше, и отсортировать структуры по их энергии.

Этот мануал посвящен моей библиотеке pyxyz, которая позволяет решать эти задачи несколькими строчками в Python. Также этот мануал может быть полезен при анализе XYZ-файлов, полученных в результате расчета молекулярной динамики.

Установка библиотеки

Для работы под Linux требуется Python версии 3.7 или выше. Для работы под Windows требуется Python версии 3.8 или выше.

Для установки на Linux нужно выполнить в терминале следующую команду:

pip install -i https://test.pypi.org/simple/ "pyxyz<1.0"

Для установки на Windows нужно выполнить в командной строке эту строчку:

pip install -i https://test.pypi.org/simple/ pyxyz>=1.0

Обратите внимание, что в некоторых случаях может понадобиться заменить pip на pip3 (это зависит от того, как у вас установлен Python).

После вызова pip install проверьте корректность установки: импортируется ли библиотека и выполняются ли тесты:

import pyxyz
import pyxyz.test
pyxyz.test.run_tests()

Пример обработки набора конформаций

Функционал библиотеки

Добавление структур в набор

include_from_file

Изменение данных

sort

update_description

Фильтры:

energy_filter

distance_filter

valence_filter

dihedral_filter

Получение данных

save

size

get_structure

get_atom_symbols

Подсчет структур:

energy_count

distance_count

valence_count

dihedral_count

TODO

1. RMSD filtering

2. Build connectivity graphs & search for VdW contacts

3. Complex filtering conditions (how to implement?)

4. Complex description templates (how to implement?)

TODO: include_from_dict

TODO: copy constructor, operator+