« Previous -
Version 10/12
(diff) -
Next » -
Current version
Andrey Golovin, 13.12.2021 18:58
Практическое занятие по молекулярной динамике.¶
Цель данного занятия ознакомится с возможностями моделирования молекулярной динамики.
В этом занятии мы будем рользоваться пакетом молекулярной динамики Gromacs. Это программное обеспечение распостраняется под лицензией GPL, т.е. пользователь может скачать исходный код и свободен его изменять по своему усмотрению.
Общие положения¶
Подсказки по использованию оболочки bash в Linux.
Для активации ядра надо сделать простые манипуляции в терминале:
export PATH=${PATH}:/home/shad/miniconda2/bin python -m ipykernel install --user --name hse --display-name hse-py27
Типы файлов:
- gro - файл с координатами системы.
- top - файл с описанием ковалентных и нековалентных взаимодействий в молекулах.
- mdp - файл с описанием параметров для работы молеклярно-механического движка.
- tpr - файл для молеклярно-механического движка по сути есть объединение gro, top и mdp.
- trr, xtc - файл с координатами после рассчёта.
Основные программы из пакета, которые будут использованны на занятии:
Программы запускаются в командной строке Linux, флаги запуска программ начинаются с -, например -f.
Как правило после флага следует либо имя файла либо значение параметра. Смотрите примеры ниже.
- editconf - манипуляция форматом координат и самими координатами. Пример:
editconf -f my.gro -o my.pdb
- solvate - наполнение ячейки растворителем.Пример:
solvate -cp my.gro -cs mysolvent.gro -p my.top -o my_solvated.gro
- genion - утилита для замены n молекул растворителя на ионы.
genion -s my.tpr -np 10 -p my.top -o my_ions.gro -np это добавить 10 положительно заряженых ионов или прочитайте про флажки -conc -neutral
- grompp - объединение и проверка gro, top и mdp в tpr.
grompp -f my.mdp -c my.gro -p my.top
- mdrun - молеклярно-механический движок. На входе принимает tpr файл.
mdrun -deffnm my.tpr здесь параметр -deffnm означает, что выходные файлы будут называться как и входной файл, только с другими расщирениями
Настройка соединения с суперкомпьютером Lomonosov¶
Доступ к суперкомпьютеру возможен только по ssh ключам.
Скопируем настройки ssh:
mkdir ~/.ssh cp /tmp/.lom/* ~/.ssh chmod 700 ~/.ssh chmod 600 ~/.ssh/*
Проверьте соединение:
ssh lom
Объекты для практикума¶
На этом занятии Вам предлагается 4 различные систем для моделирования. Перейдите по ссылке для подробных инструкций по выполнению каждого задания.
Внимание выполнить надо только одно задание на Ваш выбор
Пример запуска Gromacs в Google Colab https://colab.research.google.com/drive/1hb7pt6SCQQCceOR4rIfLny2lGoIJx4s1#scrollTo=rDSEu85QW2xr
Особенности запуска¶
Заполните форму и за неделю скрипт скопирует и посчитает вашу задачу.
https://forms.gle/s4JQicQDxLQCkXRt7
Анализ результатов¶
Пакет программ Gromacs предоставляет много инструментов для анализа траекторий и свойств динамики. Суть любого анализа сводится к пониманию специфики динамики конкретной системы.
Результаты анализа выдаваемые GROMACS имеют расширение xvg ( программа GRACE), но формат самих файлов текстовой, так что построение графиков можно делать в excel.
Предлагаю называть результаты анализа согласно общему шаблону: * Tool_system_param, где * Tool- это название программы которой проводили анализ * sytem- это либо b (бислой) либо dna (ДНК). * param- это некое дполнительное описание.
- Пример : rmsd_dna_1
Внимание ! Опции программы анализа вы можете узнать, набрав: имя_программы –h
Связи с тем, мы работаем с разными системами, то для каждой системы предлагается свой подход к анализу:
- Анализ результатов моделирование самосборки липидного бислоя
- Анализ результатов моделирование перехода А-формы ДНК в В-форму в воде
- Анализ результатов плавления ДНК в формамиде
- Анализ результатов плавления пептида в формамиде
Любой анализ начинают с визуального анализа движений молекул.
Пдсказака про Nglview и файлы Gromacs¶
Сначала импорт модулей
1import nglview
2import mdtraj
Создадим объект для траектории
1md = mdtraj.load('b_pr.xtc', top='b_s.pdb')
Создадим объект nglview
1n = nglview.show_mdtraj(md)
2n.clear_representations()
3n.add_representation(repr_type='licorice')
И посмотрим анимацию
n