Практическое занятие по молекулярной динамике.¶
Цель данного занятия ознакомится с возможностями моделирования молекулярной динамики.
В этом занятии мы будем рользоваться пакетом молекулярной динамики 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 различные систем для моделирования. Перейдите по ссылке для подробных инструкций по выполнению каждого задания.
Внимание выполнить надо только одно задание на Ваш выбор
Особенности запуска на "Ломоносов"¶
Весьма вероятно, что система не позволит поставить в очередь много заданий одновременно. Есть два решения:- подождать пока кто-то досчитается
- Добавить в файл
~/_scratch/hse/hse.job
информацию о Вашей задаче (это заготовка!):{ 'name': 'Ivanov/my_task_name_change_it', 'nodes': 1, 'options': '--ntasks-per-node=2', 'path': '/mnt/data/users/dm4/vol12/fbbstudent/_scratch/hse/Ivanov', 'command': '/opt/ccoe/gromacs-5.0.4/build/bin/gmx_mpi mdrun -testverlet -deffnm b_md -v', },
Анализ результатов¶
Пакет программ 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