Домашнее задание №2

Задание:

Используя select within найдите водородные связи которыми белок связывает лиганд. Опишите эти возможные другие взаимодействия белка с лигандом. Попробуйте поискать альтернативный способ поиска водородных связей.

Сначала загрузим непосредственно белок, предварительно загрузив необходимые библиотеки:

In [1]:
import pymol
from pymol import cmd
from IPython.display import Image
In [2]:
pymol.finish_launching(['pymol', '-q'])
In [3]:
cmd.fetch('1lmp')
Out[3]:
'1lmp'
In [4]:
cmd.png("C:/Users/Mister_Ruvim/Pictures/shush.png")
In [5]:
Image(filename='C:/Users/Mister_Ruvim/Pictures/shush.png')
Out[5]:

Теперь уже внутри программы я с помощью тулов нахожу лиганд: на белке action->ligand ->preset->ligands

Получили следующее:

In [171]:
Image(filename="C:/Users/Mister_Ruvim/Desktop/pictures/ligand.png") 
Out[171]:

Далее, выделим водородные связи , которые связывают остальной белок и лиганд. Для этого я сделал следующее: 1) выделил остальной белок в командной строке командой: select excProtein, ! (ligand) 2) выделил ligand, команда find->polar_contacts->to_other_atoms_in_object

In [172]:
Image(filename='C:/Users/Mister_Ruvim/Desktop/pictures/hydrogen_bonds.png')
Out[172]:

Для того, чтобы понять, какую мутацию надо провести в белке, чтобы он потерял связь с лигандом, необходимо понять, какие остатки находятся на минимальном расстоянии от лиганда. Затем этот остаток можно мутировать и , наверняка, учитывая его близкую связь с лигандом это приведет к потере связывания.

Посмотрим, какие остатки находятся на минимальном расстоянии от лиганда с помощью команды distance: возьмем порог 3

команда в консоле:distance dist ,(ligand), (excProtein), 3

In [173]:
Image(filename='C:/Users/Mister_Ruvim/Desktop/pictures/resi 101.png')
Out[173]:

В результате оказалось, что остатки 52 и 101 оказались на самом минимальном расстоянии 2.4 . Поэтому было решено мутировать один из этих остатков. В лейцин, например. Последовательность действий была следующая: 1) wizard->mutagenesis 2) Выбрали остаток 101 3) no mutation 4) LEU , ->apply->done

In [174]:
Image(filename='C:/Users/Mister_Ruvim/Desktop/pictures/LEU.png')
Out[174]:

С помощью команды save molecule мы сохранили мутированный объект в формате pdb. Теперь откроем оба белка и начнем построение ролика.

In [13]:
cmd.reinitialize()
cmd.fetch('1lmp_orig')
cmd.fetch('1lmp_mut_leu')
cmd.set('cartoon_side_chain_helper', 'on')
cmd.hide('everything')
cmd.show('cartoon','1lmp_orig')
cmd.show('cartoon','1lmp_mut_leu')
cmd.colour('blue','1lmp_orig')
cmd.colour('green','1lmp_mut_leu')

cmd.translate('[-35, 0, 0]', '1lmp_orig')
cmd.center('1lmp_orig + 1lmp_mut_leu')
cmd.zoom('1lmp_orig + 1lmp_mut_leu')
#cmd.ray(500, 500)
cmd.png("C:/Users/Mister_Ruvim/Pictures/shush.png")
Image("C:/Users/Mister_Ruvim/Pictures/shush.png")
Out[13]:

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

In [11]:
cmd.load('seans.pse')
cmd.center('1lmp_orig + 1lmp_mut_leu')
cmd.hide('everything')

cmd.show('cartoon','1lmp_orig & !ligand_orig')
cmd.show('cartoon','1lmp_mut_leu& !ligand_mut')
cmd.colour('red','1lmp_orig')
cmd.colour('pink','1lmp_mut_leu')

cmd.show('sticks','ligand_orig')
cmd.colour('blue','ligand_orig')
cmd.show('sticks','ligand_mut')
cmd.colour('blue','ligand_mut')

cmd.show('sticks','resi_mut')
cmd.show('sticks','resi_orig')
cmd.colour('yellow','resi_orig')
cmd.colour('orange','resi_mut')

cmd.center('1lmp_orig + 1lmp_mut_leu')
cmd.zoom('1lmp_orig + 1lmp_mut_leu')
cmd.ray(700, 700)
cmd.png("C:/Users/Mister_Ruvim/Pictures/shush.png")
Image("C:/Users/Mister_Ruvim/Pictures/shush.png")
Out[11]:

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

In [23]:
cmd.load('seans.pse')
cmd.center('1lmp_orig + 1lmp_mut_leu')
cmd.hide('everything')

cmd.show('cartoon','1lmp_orig & !ligand_orig')
cmd.show('cartoon','1lmp_mut_leu& !ligand_mut')
cmd.colour('red','1lmp_orig')
cmd.colour('pink','1lmp_mut_leu')

cmd.show('sticks','ligand_orig')
cmd.colour('blue','ligand_orig')
cmd.show('sticks','ligand_mut')
cmd.colour('blue','ligand_mut')

cmd.show('sticks','resi_mut')
cmd.show('sticks','resi_orig')
cmd.colour('yellow','resi_orig')
cmd.colour('orange','resi_mut')

cmd.center('1lmp_orig + 1lmp_mut_leu')
cmd.zoom('1lmp_orig + 1lmp_mut_leu')
#cmd.ray(700, 700)
#################
cmd.mset('1x120')
cmd.super('1lmp_orig','1lmp_mut_leu')
cmd.frame('1')
cmd.do('translate [-25, 0, 0], object= 1lmp_orig')
cmd.zoom('1lmp_orig')
cmd.mview('store')

cmd.frame('100')
cmd.do('translate [25, 0, 0], object= 1lmp_orig')
cmd.zoom('resi_mut')
cmd.mview('store')

#mview reinterpolate
#cmd.frame('120')
#cmd.zoom('1lmp_orig')
#cmd.mview('store')

#cmd.center('1lmp_orig + 1lmp_mut_leu')

#cmd.frame('300')
#cmd.do('mview store, object=original')


cmd.mpng('1LMP_mutation')

#Добавление флуоресцентной метки

На википедии в статье под названием "Белок" нашел информацию о том, что в сложноэфирной связи может принимать участие серин, треонин, тирозин... Искал серин с помощью команды sele resn thr и среди них выбрал нужный остаток (resi122).

In [59]:
cmd.reinitialize()
cmd.load('tamra.sdf')
cmd.fetch('1lmp')
cmd.hide('everything')
cmd.set('cartoon_side_chain_helper', 'on')
cmd.show('cartoon','1lmp')
cmd.show('sticks','1lmp & resi 47')
cmd.show('lines','tamra')
cmd.colour('green','tamra')
dot1='1lmp & resi 47 & n. OG1'
cmd.colour('yellow',dot1)
cmd.center(dot1)
cmd.zoom(dot1)
cmd.png("C:/Users/Mister_Ruvim/Pictures/shush.png")
Image("C:/Users/Mister_Ruvim/Pictures/shush.png")
Out[59]:

Присоединим метку к данному атому. Атом в метке выбирался вручную.

In [63]:
cmd.zoom('tamra')
dot2='/tamra///UNK`/C'
cmd.fuse(dot1,dot2)
cmd.zoom(dot2+dot1)
Image("C:/Users/Mister_Ruvim/Desktop/Pictures/tamra.png")
Out[63]:

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

Углы нашел у Ramachadran . Каждый раз цепляем аланин и задаем нужные углы.

In [25]:
cmd.do("reinitialize")
phi = -58
psi = -47
omega = 180
n = 100

cmd.do('frag ala')
cmd.set_name('ala','helix')
cmd.alter('helix','resi=1')
cmd.do('frag ala')
cmd.alter('ala','resi=2')
cEnd='helix  & name C'
nEnd='ala  & name N'
cmd.fuse(nEnd,cEnd)
for i in range(2,n-1):
    cEnd="helix & name C & resi %d"%i
    #create new residue to append to previous
    cmd.alter('ala','resi=%d'%(i+1))
    nEnd='ala & name N & resi %d'%(i+1)
    #appending
    cmd.fuse(nEnd,cEnd)
    # atoms list= CA previous, C previous, N current, CA current, C current, next N
    atoms = [
            "helix & name CA & resi %d"%(i-1),
            "helix & name C & resi %d"%(i-1),
            "helix & name N & resi %d"%i,
            "helix & name CA & resi %d"%i,
            "helix & name C & resi %d"%i,
            "helix & name N & resi %d"%(i+1),
        ]
    #set angles
    cmd.set_dihedral(atoms[2], atoms[3], atoms[4], atoms[5], psi)
    cmd.set_dihedral(atoms[1], atoms[2], atoms[3], atoms[4], phi)
    cmd.set_dihedral(atoms[0], atoms[1], atoms[2], atoms[4], omega)
    
cmd.hide('everything')
cmd.show('sticks')

cmd.center('helix + ala')
cmd.zoom('helix + ala')
cmd.ray(width=1000, height=500)
cmd.png("C:/Users/Mister_Ruvim/Pictures/shush.png")
Image("C:/Users/Mister_Ruvim/Pictures/shush.png")
#cmd.edit(bond)
#time.sleep(5)
#cmd.edit('bond, "resi 2 & name C","resi 3 & name N" ')
#cmd.bond("ala & resi 2 & name C","ala & resi 3 & name N")
#cmd.bond("resi 2 & name C","resi 3 & name N")

#cmd.edit()
#cmd.alter
Out[25]:
In [27]:
cmd.png("C:/Users/Mister_Ruvim/Pictures/theDownwardSpiral.png")
Image("C:/Users/Mister_Ruvim/Pictures/theDownwardSpiral.png")
Out[27]: