In [2]:
from xmlrpclib import ServerProxy
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
In [3]:
import pymol
pymol.finish_launching()
from pymol import cmd,stored

Загрузили структуру 1lmp

In [3]:
cmd.fetch("1lmp")
cmd.remove("solvent")
cmd.bg_color("black")
cmd.color("blue")
cmd.do('''
util.cnc hetatm
set ray_shadows, off
set cartoon_highlight_color, grey50
set field_of_view, 70''')
cmd.cartoon("dumbbell", "ss h")
cmd.zoom()
In [4]:
import time
from IPython.display import Image

Сделаем изображение нашей структуры до применения Sculpting

In [7]:
cmd.png('C:\Users\kseni\Desktop\lmp.png')
time.sleep(2)
Image(filename='C:\Users\kseni\Desktop\lmp.png')
Out[7]:

При помощи sculpting структура стала похожа на пластилин, и была изменена.

In [8]:
Image(filename='C:\Users\kseni\Desktop\sculpt.png')
Out[8]:

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

In [9]:
cmd.reinitialize()
cmd.fetch("1lmp")
cmd.remove("solvent")
cmd.bg_color("black")
cmd.color("blue")
cmd.do('''
util.cbac hetatm
set ray_shadows, off
set cartoon_highlight_color, grey50
set field_of_view, 70
select bindsite, byres m. 1lmp  and (hetatm around 3.5)
show sticks, bindsite
util.cbap bindsite
''')
cmd.cartoon("dumbbell", "ss h")
cmd.orient("hetatm")
cmd.zoom("hetatm", "10")
In [10]:
cmd.dist("hydrbonds", "m. 1lmp and (not hetatm)", "hetatm", "3.5", "2")
cmd.do('''
label bindsite and n. ca and resi 35, "%s%s" % (resn, resi)
set label_color, white
''')

Остаток GLU35, который образует водородную связь с лигандом, был выбран для внесения мутации.

In [11]:
Image(filename='C:\Users\kseni\Desktop\part.png')
Out[11]:
In [12]:
cmd.hide("labels")
cmd.delete("hydrbonds")
from pymol import wizard
cmd.wizard("mutagenesis")
cmd.do("refresh_wizard")

Заменим GLU на MET

In [13]:
cmd.get_wizard().set_mode("MET")
cmd.get_wizard().do_select("resi 35")
cmd.get_wizard().apply()
cmd.set_wizard("done")
In [14]:
cmd.do('''
util.cbag resi 35
label n. ca and resi 35, "%s%s" % (resn, resi)
''')
cmd.dist("hydrbonds2", "m. 1lmp and (not hetatm)", "hetatm", "3.5", "2")
Out[14]:
2.9045166969299316

После замены этот остаток перестал участвовать в связи с лигандом.

In [15]:
Image(filename='C:\Users\kseni\Desktop\mutagenes.png')
Out[15]:

Далее необходимо сделать фильм, совмещающий структуры без мутации и с ней.

In [16]:
cmd.delete("hydrbonds2")
cmd.hide("sticks", "not resi 35")
cmd.fetch("1lmp", "nomut")
cmd.remove("solvent")
cmd.cartoon("dumbbell", "ss h")
cmd.color("orange", "nomut")
cmd.do('''
util.cbac hetatm
show sticks, resi 35
util.cnc nomut and resi 35
''')
cmd.do('''
label resi 35, "%s%s" % (resn, resi)
''')
cmd.hide("labels")
In [17]:
cmd.do('''
set matrix_mode, 1
set movie_panel, 1
set cache_frames, 1
mset 1-200                      
frame 1
zoom nomut, -1
translate [10,0,0], object=1lmp  
mview store                     
mview store, object=nomut         
mview store, object=1lmp 
frame 20
zoom nomut, -1
translate [-5,0,0], object=1lmp  
mview store                     
mview store, object=nomut         
mview store, object=1lmp   
frame 40    
super 1lmp, nomut
mview store                     
mview store, object=nomut         
mview store, object=1lmp 
mview interpolate, object=1lmp
frame 80                        
orient hetatm                  
mview store                     
mview store, object=nomut        
mview store, object=1lmp 
frame 100                        
orient hetatm                  
mview store                     
mview store, object=nomut        
mview store, object=1lmp        
frame 130                      
orient resi 35                        
mview store                     
mview store, object=nomut         
mview store, object=1lmp 
frame 140                      
orient resi 35    
label resi 35 and 1lmp and n. ca, "%s%s" % (resn, resi)
mview store                     
mview store, object=nomut         
mview store, object=1lmp 
frame 160                      
orient resi 35 
label resi 35 and nomut and n. cb, "%s%s" % (resn, resi)
mview store                     
mview store, object=nomut         
mview store, object=1lmp 
frame 165
orient resi 35                        
mview store                     
mview store, object=nomut         
mview store, object=1lmp 
frame 190
mview reinterpolate, object=nomut
mview reinterpolate, object=1lmp
frame 1
mplay                           
''')
In [1]:
import io
import base64
from IPython.display import HTML
In [3]:
video = io.open(r'C:\Users\kseni\Desktop\movie.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[3]:

Затем нужно присоединить флуоресцентную метку TAMRA через сложноэфирную связь к OH- группе белка

In [32]:
cmd.reinitialize()
cmd.load('C:\Users\kseni\Desktop\Tamra.sdf')
cmd.remove('tamra and id 4')
cmd.select('at', 'id 32')
Out[32]:
1
In [33]:
cmd.do('''fetch 1lmp, async=0''')
cmd.remove('solvent')
cmd.select('ser', '/1lmp//A/SER`15')
cmd.hide('sticks', '1lmp')
cmd.show('cartoon', '1lmp')
cmd.show('sticks', 'ser')
cmd.color('tv_red', 'ser')
cmd.select('og','/1lmp//A/SER`15/OG')
cmd.color('blue', 'og')
cmd.set('cartoon_transparency','0.3')
In [34]:
cmd.fuse('at', 'og', 1)
cmd.torsion(-40.0)
In [35]:
cmd.zoom('1lmp')
cmd.turn("y", "80.0")
cmd.unpick()
In [36]:
cmd.bg_color("white")
In [37]:
cmd.png('C:\Users\kseni\Desktop\Tamra.png')
time.sleep(2)
Image(filename='C:\Users\kseni\Desktop\Tamra.png')
Out[37]:

Далее нужно построить поли-аланиновую альфа спираль длинной 100 аминокислот.

In [38]:
cmd.reinitialize()
phi = -60
psi = -45
cmd.fragment('ala')
acid = 'ala'
for i in range (2,101):
    cmd.edit("i. %i & n. C" % i)
    cmd.do('editor.attach_amino_acid("pk1", "%s")' % acid)
    cmd.set_dihedral("i. %i & n. N" % i, "i. %i & n. CA" % i,
                    "i. %i & n. C" % i, "i. %i & n.  N" % (i+1),
                     phi)
    cmd.set_dihedral("i. %i & n.  C" % i, "i. %i & n. N" % (i+1),
                     "i. %i & n. CA" % (i+1), "i. %i & n. C" % (i+1),
                     psi)
In [39]:
cmd.zoom()
cmd.unpick()
In [40]:
cmd.png('C:\Users\kseni\Desktop\polyala.png')
time.sleep(2)
Image(filename='C:\Users\kseni\Desktop\polyala.png')
Out[40]:
In [ ]: