Практическое занятие по молекулярной динамике.

Цель данного занятия ознакомится с возможностями моделирования молекулярной динамики.

В этом занятии мы будем рользоваться пакетом молекулярной динамики 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