from IPython.display import Image, display
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
import pymol
pymol.finish_launching()
from pymol import cmd,stored
cmd.fetch("1LMP")
'1LMP'
cmd.png('C:/Users/Nastya/Desktop/mm/3.png')
Исходная стрруктура
Image(filename='C:/Users/Nastya/Desktop/mm/3.png')
cmd.png('C:/Users/Nastya/Desktop/mm/4.png')
На картинке ниже растянута альфа-спираль.
Image(filename='C:/Users/Nastya/Desktop/mm/4.png')
cmd.reinitialize()
cmd.fetch("1LMP")
cmd.do('''fetch 1lmp
bg white
remove resn hoh
set ray_trace_mode, 1
select ligand, het
color grey80, backbone
color green, elem C* and ligand
''')
cmd.png('C:/Users/Nastya/Desktop/mm/5.png')
Лиганд показан зеленым.
Image(filename='C:/Users/Nastya/Desktop/mm/5.png')
cmd.do('''select site, byres all within 5 of ligand
show sticks, site
set cartoon_side_chain_helper, 1
orient ligand
set cartoon_transparency, 0.5
''')
Выбрали остатки, находящиеся на расстоянии 5 Ангстрем от лиганда (фиолетовым на картинке). По данным литературы (https://www.creative-enzymes.com/similar/lysozyme_426.html), ключевыми остатками активного сайта являются Glu35 и Asp52. Промутируем Glu35 (оранжевый), заменив его на аланин. Протон Glu35 переносится на атом О гликозидной связи между двумя соседними остатками сахара, что приводит к разрыву гликозидной связи и образованию карбениевого иона. На рисунке показана соответствующая водородная связь.
cmd.png('C:/Users/Nastya/Desktop/mm/6.png')
Image(filename='C:/Users/Nastya/Desktop/mm/6.png')
cmd.delete("n. dist*")
cmd.hide("labels")
cmd.wizard("mutagenesis")
cmd.do("refresh_wizard")
cmd.get_wizard().set_mode("ALA")
cmd.get_wizard().do_select("i. 35 and chain A")
cmd.frame(1)
cmd.get_wizard().apply()
cmd.set_wizard("done")
cmd.png('C:/Users/Nastya/Desktop/mm/7.png')
Image(filename='C:/Users/Nastya/Desktop/mm/7.png')
Замена приводит к утрате водородной связи. Каталитический механизм в активном центре белка нарушается, это критично для нормального функционирования активного центра.
В этом задании требовалось совместить нативную и мутированную формы белка и создать анимацию.
cmd.fetch('1lmp', 'untouched')
cmd.remove('solvent')
cmd.do('''
select (not hetatm) and untouched
color orange, sele and n. C*
color magenta, sele and n. O*
color marine, sele and n. N*
''')
cmd.set('cartoon_color', 'brightorange' , '(not hetatm) and untouched')
cmd.do('''
util.cbac hetatm
show sticks, i. 35
util.cnc untouched and i. 35
''')
cmd.super('1LMP', 'untouched')
(0.0, 991, 1, 0.0032878585625439882, 995, 631.9436645507812, 129)
cmd.do('''
mset 1 x 100
mview store
frame 1
translate [0,0,60], object=1LMP
translate [0,0,-60], object=prev
mview store
frame 50
translate [0,0,-60], object=1LMP
translate [0,0,60], object=prev
mview store, object=1LMP
mview store, object=prev
mview store
mview interpolate, object=1LMP
mview interpolate, object=prev
frame 100
translate [0,0,0], object=1LMP
translate [0,0,0], object=prev
mview store, object=1LMP
mview store, object=prev
mview store
orient (i. 35 and chain A and 1LMP) + (chain B and r. NDG)
select i. 35 + (chain B and r. NDG)
zoom 0.9, sele
mview store, object=1LMP
mview store, object=prev
mview store
frame 1
mplay
''')
Оранжевая - нативная форма, серая - мутированная.
display(Image("C:/Users/Nastya/Desktop/mm/8.gif", format='png'))
cmd.reinitialize()
cmd.do('''
fetch 1LMP, async=0
as lines, n. C+O+N+CA''')
cmd.load('C:/Users/Nastya/Desktop/mm/TAMRA.sdf')
cmd.do('''bg_color white
''')
Посмотрим на то, как выглядит молекула.
Image('C:/Users/Nastya/Desktop/mm/TAMRA.png')
В структуре молекулы есть две карбоксильные группы, значит, нужно цеплять за серин или треонин. Для этого я выбрала THR89.
cmd.do('''
extract tamra_mod, (TAMRA and id 2) or (TAMRA and id 54)
select tamra29, TAMRA and id 29
show sticks, 1LMP and resi 89
select protein_mod, 1LMP and resi 89 and name OG1
fuse tamra29, protein_mod
pick pkbond
torsion 200
zoom protein_mod
''')
Image('C:/Users/Nastya/Desktop/mm/9.png')
cmd.reinitialize()
cmd.bg_color('white')
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.do('''set ray_trace_mode, 1
ray''')
Image('C:/Users/Nastya/Desktop/mm/10.png')
Берем за модель известную структуру ДНК (1BNA), с помощью команды get_object_matrix получаем матрицу трансформации i-й пары в i+1. Размножаем пару оснований 100 раз, вращая и сдвигая по матрице.
cmd.reinitialize()
cmd.bg_color('white')
dna_length = 101
cmd.fetch('1bna', 'start')
cmd.show('spheres')
cmd.remove('resn HOH')
cmd.create('AT', 'c. B and i. 20 + c. A and i. 5')
cmd.create('GC', 'c. B and i. 21 + c. A and i. 4')
cmd.create('1', 'AT')
cmd.pair_fit('AT', 'GC')
trans = cmd.get_object_matrix('AT')
for i in range(2, dna_length):
cmd.create('{0}'.format(i), '{0}'.format(i-1))
cmd.transform_selection('{0}'.format(i), trans)
Image('C:/Users/Nastya/Desktop/mm/11.png')