Учебный сайт Ксении Березиной

Назад к семестру

Молекулярная динамика биологических молекул в GROMACS

На основе одного липида создадим ячейку с 64 липидами (дипальмитоилфосфатидилхолин) функцией genconf. C помощью editconf преобразуем gro файлы с одним липидом и 64-мя в pdb файлы. В файлах одна молекула липида и ее 64 копии в ряд.

In [8]:
import subprocess
cmd = 'genconf -f dppc.gro -o b_64.gro -nbox 4 4 4'
subprocess.call(cmd,shell=True)
cmd = 'editconf -f dppc.gro -o dppc.pdb'
subprocess.call(cmd,shell=True)
cmd = 'editconf -f b_64.gro -o b_64.pdb'
subprocess.call(cmd,shell=True)
Out[8]:
0
In [2]:
from IPython.display import Image
Image(filename='dppc.png')
Out[2]:
In [3]:
Image(filename='64.png')
Out[3]:

В текстовом редакторе в файле b.top установили правильное количество липидов в системе (64 вместо 34). В ячейке cделаем небольшой отступ от липидов, чтобы добавить примерно 2500 молекул воды:

In [5]:
import subprocess
cmd='editconf -f b_64.gro -o b_ec -d 0.5'
subprocess.call(cmd,shell=True)
Out[5]:
0

Проведём оптимизацию геометрии системы, что бы удалить "плохие" контакты молекул.

In [8]:
cmd='grompp -f em -c b_ec -p b -o b_em -maxwarn 2'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_em -v'
subprocess.call(cmd,shell=True)
Out[8]:
0

Значение максимальной силы после оптимизации: Maximum force = 6.1937860e+02 on atom 915 [из log-файла] (до - я не смогла найти)

Добавим в ячейку молекулы воды типа spc.

In [21]:
cmd='genbox -cp b_em -p b -cs spc216 -o b_s'
subprocess.call(cmd,shell=True)
Out[21]:
0

Проведем утряску воды (оптимизируем).

In [22]:
cmd='grompp -f pr -c b_s -p b -o b_pr -maxwarn 1'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_pr -v'
subprocess.call(cmd,shell=True)
cmd='grompp -f em -c b_s -p b -o b_empr -maxwarn 1'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_empr -v'
subprocess.call(cmd,shell=True)
Out[22]:
0
In [23]:
cmd='grompp -f pr -c b_empr -p b -o b_pr -maxwarn 1'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_pr -v'
subprocess.call(cmd,shell=True)
Out[23]:
0
In [19]:
cmd = 'editconf -f b_s.gro -o b_s.pdb'
subprocess.call(cmd,shell=True)
Out[19]:
0
In [24]:
cmd = 'editconf -f b_pr.gro -o b_pr.pdb'
subprocess.call(cmd,shell=True)
Out[24]:
0

Посмотрим на структуры b_s (после добавления воды и до оптимизации) и b_pr (после оптимизации). Если приглядеться, видно, что во второй структуре больше воды на периферии (особенно заметно в правом верхнем углу).

In [25]:
from IPython.display import Image
Image(filename='b_s.png')
Out[25]:
In [26]:
Image(filename='b_pr.png')
Out[26]:

Назад к семестру