import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
import pymol
pymol.finish_launching()
from pymol import cmd,stored
import numpy as np
from IPython.display import Image
В данном задании нужно было оценить возможность Sculpting (Wizard>Demo>Sculpting), изменить структуру белка 1LMP. На первой картинке представлена структура до применения функции, на второй - после.
cmd.do('''
fetch 1lmp, async=0
as cartoon, n. C+O+N+CA
align center
remove solvent
''')
cmd.png('1lmp.png')
Image(filename='1lmp.png')
Image(filename='1lmp1_sculp.png')
В данном задании необходимо было выбрать аминокислоту, которая отвечает за связь с лигандом, и с помощью команды Wizard>Mutagenesis мутировать эту аминокислоту, что должно привести к потере связывания. С лигандом связано 5 аминокислот белка: на рисунке ниже представлено 4 из них и их контакты с лигандом. Для мутации я выбрала Asp52.
Image(filename='contact.png')
cmd.reinitialize()
cmd.do('''
fetch 1lmp, async=0
as cartoon, n. C+O+N+CA
remove solvent
select lig, resn ndg+nag
show sticks, resi 52
dist hbond, lig, resi 52,3.6, mode=2
select before, resi 52 + resn ndg
zoom before, 2
deselect
''')
cmd.png('Asp_before.png')
Image(filename='Asp_before.png')
from pymol.wizard import Wizard
cmd.do('''
delete hbond
wizard mutagenesis
refresh_wizard
cmd.get_wizard().set_mode("GLY")
cmd.get_wizard().do_select("resi 52")
cmd.get_wizard().apply()
cmd.set_wizard()
dist hbond, lig, resi 52,3.6, mode=2
''')
cmd.png('Asp_after.png')
Image(filename='Asp_after.png')
В данном задании необходимо создать mpeg, где происходит совмещение белков и показывается место мутации. Сначала создаю 2 структуры (с мутацией и без), находящиеся рядом - визуализирую с помощью картинки. Затем совмещаю данные структуры и сохраняю видео. У меня возникли проблемы со вставкой видео, поэтому я сконвертировала видео формата mpeg в gif и вставила на страницу gif.
cmd.reinitialize()
cmd.do('''
fetch 1lmp, mut
as cartoon, n. C+O+N+CA
remove solvent
select lig, resn ndg+nag
show sticks, resi 52
zoom 1lmp
deselect
wizard mutagenesis
refresh_wizard
cmd.get_wizard().set_mode("GLY")
cmd.get_wizard().do_select("resi 52")
cmd.get_wizard().apply()
cmd.set_wizard()
''')
cmd.do('''
fetch 1lmp, without
as cartoon, n. C+O+N+CA
remove solvent
show sticks, resi 52
translate [-30, 0, 0], without
center all
zoom center, 30
''')
cmd.png('Mix.png')
Image(filename='Mix.png')
cmd.do('''
mset 1x240
frame 1
mview store
mview store, object=mut
mview store, object=without
frame 60
mview store
translate [15, 0, 0], object=without
mview store, object=without
translate [-15, 0, 0], object=mut
mview store, object=mut
frame 100
zoom mut
mview store, object=without
mview store, object=mut
mview store
frame 180
zoom resi 52, 6
center resi 52
mview store, object=mut
mview store, object=without
mview store
frame 240
mview store, object=mut
mview store, object=without
zoom resi 52, 2
turn y, 180
mview store
mview reinterpolate, object=without
mview reinterpolate, object=mut
mview reinterpolate
mplay
movie.produce movie.mpg, quality=180
''')
from IPython.display import display
display(Image(filename='movie.gif', format='png'))