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

Моделирование самосборки липидного бислоя¶

Вся работа выполнялась в Google-Colab. на данной странице представлены только результаты и промежуточные файлы.

In [30]:
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]

import pymol
pymol.finish_launching()
from pymol import cmd,stored
from IPython.display import Image, display

import imageio
import os

Посмотрим на липид DPPC (дипальмитоилфосфатидилхолин)

In [24]:
cmd.do('''
reinitialize everything
load ./bilayer/dppc.pdb
orient dppc
zoom dppc,buffer = 5
ray 2048,2048
png bil1.png, dpi=300
''')
Image(filename='bil1.png')
Out[24]:
No description has been provided for this image

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

In [25]:
cmd.do('''
reinitialize everything
load ./bilayer/b_64.pdb
orient b_64
zoom b_64,buffer = 5
ray 2048,2048
png bil2.png, dpi=300
''')
Image(filename='bil2.png')
Out[25]:
No description has been provided for this image

Посмотрим на ячейку до утряски воды

In [26]:
cmd.do('''
reinitialize everything
load ./bilayer/b_s.pdb
orient b_s
zoom b_s,buffer = 5
ray 2048,2048
png bil3.png, dpi=300
''')
Image(filename='bil3.png')
Out[26]:
No description has been provided for this image

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

In [27]:
cmd.do('''
reinitialize everything
load ./bilayer/step491b.pdb
orient step491b
zoom step491b,buffer = -60
ray 2048,2048
png bil4.png, dpi=300
''')
Image(filename='bil4.png')
Out[27]:
No description has been provided for this image

Промежуточные выводы¶

Мы построили ячейку из 64 молекул липида. Затем заполнили ее водой. После произвели утряску воды. По итогу утряски энергия системы уменьшилась, что и ожидалось.

Теперь можо запустить самосборку бислоя.

Посмотрим на реультат самосборки¶

In [32]:
cmd.do('''
reinitialize everything
load ./bilayer/b_pbc_1.pdb
zoom b_pbc_1,buffer = -15
mset 1x202
mview store, 1, state=1, object=b_pbc_1
mview store, 202, state=101, object=b_pbc_1
''')
cmd.do('''
    set ray_trace_frames=1
    set cache_frames=0
    bg_color white
    set ray_opaque_background, on
    mclear
    mpng ./b_l/mov, width=900,height=900
    ''')
filenames = sorted(os.listdir('./b_l/'))[1:]
with imageio.get_writer('b_l.gif', mode='I', fps=28) as writer:   
     for filename in filenames:
        filepath = os.path.join('./b_l', filename)
        image = imageio.imread(filepath)
        writer.append_data(image)

Посмотрим, что получилось.

SegmentLocal


Определим площадь, занимаемую одним липидом. Зависимость нормированной площади (x*y/32) от времени:

In [34]:
Image('chart.PNG', width = 800)
Out[34]:
No description has been provided for this image

Как можно видеть, площадь, занимаемая одним липидом с течением времени уменьшилась, что и должно было, так как у нас собирался бислой.


Теперь посмотрим на зависимость поверхности, доступной растворителю, от времени (с помощью gmx sasa):

In [35]:
Image('chart(1).PNG', width = 800)
Out[35]:
No description has been provided for this image

Видим, что общая поверхность, доступная растворителю, была сначала $300-400\ нм^{2}$, потом резко упала (видимо, когда липиды образовали "затравку" бислоя), а потом постепенно снижалась.


Традиционной мерой оценки фазового состояния бифильных молекул является мера порядка. Поэтому посмотрим и на нее.

В конце:

In [36]:
Image('chart(2).PNG', width = 800)
Out[36]:
No description has been provided for this image

В начале:

In [37]:
Image('chart(3).PNG', width = 800)
Out[37]:
No description has been provided for this image

Видно, что в самом начале подвижность (мера беспорядка) выше, чем в конце, что нам говорит о том, что молекулы действительно образовали правильную структуру и их движение стало более упорядоченным.