Работа c PyMol

Для начала откроем PyMOL и подгрузим все необходимые модули:

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

import pymol
pymol.finish_launching()
from pymol import cmd,stored


from IPython.display import Image
import time
import sys
import numpy as np

Загружаем структуру нашего белка - 1LMP. Это лизоцим в комплексе с лигандами NDG и NAG.

In [2]:
cmd.do('''
fetch 1lmp, async=0
as cartoon, n. C+O+N+CA
mset 1 x1000
mview store''')
In [3]:
cmd.do('''
color marine
bg_color white
select s1, resn nag+ndg
util.cbaw s1 
set ray_trace_mode,  3
set ray_opaque_background, 0
ray 600,700''')
#cmd.remove("solvent")
cmd.png('1lmp.png')
time.sleep(3)
Image(filename='1lmp.png')
Out[3]:
In [4]:
cmd.do('''
select s2, resi 52''')

В первом задании оцениваем возможности Sculpting. Переходим (Wizard->Demo->Sculpting) в специальную вкладку Sculping, где c помощью мышки можем изменять структуру белка, которая после оптимизируется программой.

Проведение одиночной мутации

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

In [7]:
cmd.do('''
hide all
select s1, resn nag+ndg
select s2, resi 48-58
util.cbaw s1 
util.cbab s2
util.cbak resi 52
show sticks, s1
show sticks, s2
set ray_trace_mode,  3
set ray_opaque_background, 0
ray 600,600''')
cmd.png('1lmp.png')
time.sleep(3)
Image(filename='1lmp.png')
Out[7]:

Ипользуем функцию mutagenesis для внесения мутации и оценим ее эффект.

In [10]:
import rotkit
rotkit.mutate("1LMP", chain="A", resi=52, target="TRP", mutframe=1)  #ошибка
cmd.refresh()
In [22]:
cmd.do('''
hide all
select s1, resn nag+ndg
select s2, resi 48-58
util.cbaw s1 
util.cbab s2
util.cbak resi 52
show sticks, s1
show sticks, s2
set ray_trace_mode,  3
set ray_opaque_background, 0
ray 600,700''')
cmd.png('1lmp.png')
time.sleep(3)
Image(filename='1lmp.png')
Out[22]:

Создание анимационного ролика

Сперва создадим изображение структур мутантного и дикого типа белка

In [5]:
mutant = "resi 52"

cmd.fetch("1lmp", "native_protein")
cmd.remove("solvent")
cmd.select("native_ligand", "native_protein and hetatm")
cmd.show("cartoon", "native_protein")
cmd.show("cartoon", "1lmp")

cmd.color("salmon", "native_protein")

cmd.show("sticks", "*ligand")
cmd.color("wheat", "*ligand")

cmd.show("sticks", "native_protein and {}".format(mutant))
cmd.show("sticks", "1lmp and {}".format(mutant))

cmd.util.cbag("native_protein and {}".format(mutant))

cmd.translate("[-30, 0, 0]", "native_protein")
cmd.center('native_protein + 1lmp')
cmd.zoom('center', '40')
In [13]:
cmd.do('''
bg_color white
set ray_trace_mode,3
set ray_opaque_background, 0
ray 1500,700''')
cmd.png('1lmp.png')
time.sleep(3)
Image(filename='1lmp.png')
Out[13]:

Создаем анимационный ролик в котором показано совмещение структур с мутацией и без.

In [6]:
cmd.bg_color("white")

cmd.mset('1 x480')

cmd.frame('1')
cmd.mview('store')
cmd.mview('store', object='native_protein')

cmd.frame('90')
cmd.mview('store') 
cmd.translate('[30, 0, 0]', object='native_protein')
cmd.mview('store', object='native_protein') 

cmd.frame('210')
cmd.center('native_protein')
cmd.zoom('native_protein')
cmd.mview('store', object='native_protein')
cmd.mview('store')

cmd.frame('300')
cmd.mview('store', object='native_protein')
cmd.center(mutant)
cmd.zoom(mutant)
cmd.mview('store')

cmd.frame('480')
cmd.mview('store', object='native_protein')
cmd.center(mutant)
cmd.zoom(mutant)
cmd.turn('y', 135)
cmd.mview('store')

cmd.mview('reinterpolate')
cmd.mview('reinterpolate', object='native_protein')

Сохраняем видео и подгружаем его для просмотра

In [16]:
import io
import base64
from IPython.display import HTML

video = io.open('final_1.mp4', 'r+b').read()
encoded = base64.b64encode(video)
HTML(data='''<video alt="test" controls>
                <source src="data:video/mp4;base64,{0}" type="video/mp4" />
             </video>'''.format(encoded.decode('ascii')))
Out[16]:

Анимация

Присоединение флуоресцентной метки TAMRA

Необходимо скачать <a href = 'https://pubchem.ncbi.nlm.nih.gov/compound/2762604'>флоуресцентную метку TAMRA</a> и далее прикрепить ее к белку с образованием сложноэфирной связи.

In [38]:
cmd.reinitialize()
cmd.bg_color('white')
cmd.load("tamra.sdf")
cmd.remove('tamra and id 4')
cmd.select('tamra_O', 'id 32')

cmd.fetch("1lmp")
cmd.remove("solvent")
cmd.zoom()
cmd.do('''
select THR_O, resn thr and resi 43 and name OG1
show sticks, resn thr and resi 43
hide cartoon, resi 43
''')
cmd.fuse('tamra_O', 'THR_O', 1)

Сохраняем изображение

In [41]:
cmd.do('''
bg_color white
set ray_trace_mode,3
set ray_opaque_background, 0
ray 1200,700''')
cmd.png('1lmp.png')
time.sleep(3)
Image(filename='1lmp.png')
Out[41]:

Построение поли-аланиновой альфа-спирали