from xmlrpclib import ServerProxy
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
import pymol
pymol.finish_launching()
from pymol import cmd,stored
Загрузили структуру 1lmp
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()
import time
from IPython.display import Image
Сделаем изображение нашей структуры до применения Sculpting
cmd.png('C:\Users\kseni\Desktop\lmp.png')
time.sleep(2)
Image(filename='C:\Users\kseni\Desktop\lmp.png')
При помощи sculpting структура стала похожа на пластилин, и была изменена.
Image(filename='C:\Users\kseni\Desktop\sculpt.png')
Далее нужно было выбрать остаток, мутация в котором привела бы к потере связывания с лигандом. Для этого был изучен участок связывания с лигандом.
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")
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, который образует водородную связь с лигандом, был выбран для внесения мутации.
Image(filename='C:\Users\kseni\Desktop\part.png')
cmd.hide("labels")
cmd.delete("hydrbonds")
from pymol import wizard
cmd.wizard("mutagenesis")
cmd.do("refresh_wizard")
Заменим GLU на MET
cmd.get_wizard().set_mode("MET")
cmd.get_wizard().do_select("resi 35")
cmd.get_wizard().apply()
cmd.set_wizard("done")
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")
После замены этот остаток перестал участвовать в связи с лигандом.
Image(filename='C:\Users\kseni\Desktop\mutagenes.png')
Далее необходимо сделать фильм, совмещающий структуры без мутации и с ней.
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")
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
''')
import io
import base64
from IPython.display import HTML
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')))
Затем нужно присоединить флуоресцентную метку TAMRA через сложноэфирную связь к OH- группе белка
cmd.reinitialize()
cmd.load('C:\Users\kseni\Desktop\Tamra.sdf')
cmd.remove('tamra and id 4')
cmd.select('at', 'id 32')
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')
cmd.fuse('at', 'og', 1)
cmd.torsion(-40.0)
cmd.zoom('1lmp')
cmd.turn("y", "80.0")
cmd.unpick()
cmd.bg_color("white")
cmd.png('C:\Users\kseni\Desktop\Tamra.png')
time.sleep(2)
Image(filename='C:\Users\kseni\Desktop\Tamra.png')
Далее нужно построить поли-аланиновую альфа спираль длинной 100 аминокислот.
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)
cmd.zoom()
cmd.unpick()
cmd.png('C:\Users\kseni\Desktop\polyala.png')
time.sleep(2)
Image(filename='C:\Users\kseni\Desktop\polyala.png')