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

import pymol
from pymol import cmd
pymol.finish_launching()
In [2]:
# Set image
import time
from IPython.display import Image
defaultImage = './pymol/pymolimg.png'
def prepareImage(width=500, height=500, sleep=2, filename=defaultImage):
    cmd.ray(width, height)
    cmd.png(filename)
    time.sleep(sleep)

Задание 2. Поиск водородных связей, которыми белок связывает лиганд.

In [3]:
cmd.fetch('1lmp')
cmd.hide('lines')
cmd.remove('solvent')

cmd.select('ligand', 'het')
cmd.show_as('sticks', 'ligand')
cmd.color('white','1lmp')
cmd.color('salmon', 'ligand')

cmd.center('ligand')
cmd.origin('ligand')
cmd.zoom('ligand', 4)

cmd.show('lines', 'br. 1lmp w. 3.2 of ligand')
cmd.distance('hbonds', 'all', 'ligand', 3.2, mode=2)
cmd.select('active_site', '1lmp within 3.2 of ligand')
cmd.label('active_site & !ligand', 'resn, resi')
cmd.set('label_color', 'white', 'active_site')
In [4]:
prepareImage()
Image(defaultImage)
Out[4]:

"Опишите возможные взаимодействия белка с лигандом":

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

Задание 3. Проведите мутацию в белке, которая по вашему мнению должна привести к потере связывания с лигандом.

Проводим замену тирозина (62 остаток) на лейцин: произойдет потеря стэкинг-взаимодействий между тирозином и лигандом, что ухудшит связывание.

In [5]:
# показать Tyr62 (синий)
cmd.color('blue','resi 62')
cmd.label('n. CA and i. 62', 'resn,resi')

prepareImage()
Image(defaultImage)
Out[5]:
In [6]:
cmd.wizard("mutagenesis")
# Tyr62 -> Leu62
cmd.get_wizard().do_select("resi 62")
cmd.get_wizard().set_mode("LEU")
# выбрать первый ротамер
cmd.frame(1)
cmd.get_wizard().apply()
cmd.wizard(None)
In [7]:
# показать Leu62 (красный)
cmd.color('red','resi 62')
cmd.label('n. CA & i. 62', 'resn,resi')
cmd.center('ligand')
cmd.origin('ligand')
cmd.zoom('ligand', 4)

prepareImage()
Image(defaultImage)
Out[7]:

Задание 4. Создание анимации с совмещением белков.

In [8]:
cmd.fetch('1lmp', 'wild_type')
cmd.remove('solvent')
cmd.hide('lines')
cmd.translate('[-35, 0, 0]', 'wild_type')

cmd.show_as('cartoon', 'wild_type')
cmd.select('ligand_wt', 'wild_type and het')
cmd.show_as('sticks', 'ligand_wt')
cmd.color('helium','wild_type')
cmd.colour('salmon', 'ligand_wt')
cmd.color('barium','wild_type & resi 62')
cmd.label('wild_type & n. CA and i. 62', 'resn,resi')
In [9]:
cmd.show_as('cartoon', '1lmp')
cmd.delete('hbonds')
cmd.color('red','1lmp & resi 62')
cmd.show_as('sticks', 'ligand')
cmd.color('salmon', 'ligand')

cmd.show_as('sticks', 'wild_type & resi 62')
cmd.show_as('sticks', '1lmp & resi 62')

cmd.label('1lmp & n. CA and i. 62', 'resn,resi')
cmd.label('wild_type & n. CA and i. 62', 'resn,resi')

cmd.zoom('all')

prepareImage()
Image(defaultImage)
Out[9]:
In [ ]:
cmd.mset('1 x200')
cmd.frame('1')
cmd.do('mview store, object=wild_type')
cmd.do('mview store')

cmd.frame('100')
cmd.do('translate [35, 0, 0], object=wild_type')
cmd.zoom('1lmp')
cmd.do('mview store')

cmd.frame('200')
cmd.zoom('1lmp and i. 62')
cmd.do('mview store, object=wild_type')
cmd.do('mview store')
cmd.do('mview reinterpolate')

# cmd.mplay()

cmd.set('ray_trace_frames', '1')
cmd.set('ray_trace_mode', '1')
cmd.set('antialias', '1')
cmd.mpng('./pic/pic')
In [10]:
from IPython.display import HTML
video = open('mut.mp4', "rb").read().encode("base64")
video_tag = '<video controls src="data:video/mp4;base64, %s">' % video
HTML(data=video_tag)
Out[10]:

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

Присоединение метки идет через сложноэфирную связь: карбоксил TAMRA + доступный гидроксил Thr47

In [11]:
cmd.reinitialize()
In [14]:
cmd.fetch('1lmp')
cmd.hide('lines')
cmd.remove('solvent')
cmd.show_as('cartoon', '1lmp')

cmd.color('white', '1lmp')
cmd.color('red', '1lmp & resi 47')
cmd.show_as('sticks', '1lmp & resi 47')
cmd.label('resi 47', 'name')
cmd.label('n. CA & resi 47', 'resn, resi')

cmd.zoom('1lmp & resi 47', 10)
In [13]:
# показать Thr47
prepareImage()
Image(defaultImage)
Out[13]:
In [15]:
cmd.load('Structure2D_CID_2762604.sdf', 'tamra')
cmd.zoom('tamra')
cmd.show_as('lines', 'tamra')
cmd.label('tamra & het', 'name')
In [16]:
# показать TAMRA
prepareImage()
Image(defaultImage)
Out[16]:
In [17]:
# Присоединить метку

cmd.fuse('/1lmp//A/THR`47/OG1', 'n. O in tamra within 0.7 of n. H in tamra')
prepareImage()
Image(defaultImage)
Out[17]:
In [18]:
# далее нужно удалить H20 для завершения реакции этерификации

Задание 6. Напишите скрипт для построения поли-аланиновой альфа спирали длинной 100 аминкислот.

In [19]:
cmd.reinitialize()
In [20]:
cmd.fragment ("ALA")

# торсионные углы альфа-спирали
phi = '-70'
psi = '-35'

for res_number in range(2,101):
     cmd.edit("resi " + str(res_number) + " and n. C")
     cmd.editor.attach_amino_acid("pk1","ALA")
    
     cmd.edit("resi " + str(res_number) + " and n. N", "resi " + str(res_number) + " and n. CA") 
     cmd.torsion (phi)
    
     cmd.edit("resi " + str(res_number) + " and n. C", "resi " + str(res_number) + " and n. CA") 
     cmd.torsion (psi)  
    
cmd.zoom('all')
prepareImage()
Image(defaultImage)
Out[20]:
In [ ]:
%%bash
jupyter nbconvert --to html hw2_filippova.ipynb