Основная ссылка: H:\Term8\Practice1
Запуск IPython notebok:
ipython notebook
Ссылка на IPython Notebook shortcuts (без которых я предпочла бы писать HTML в любимом vim): http://ipython.org/ipython-doc/1/interactive/notebook.html#keyboard-shortcuts
Ссылка на синтаксис markdown: http://daringfireball.net/projects/markdown/basics
Запуск pymol в режиме XML-RPC:
pymol -R
Готовлю python к взаимодействию с RPC и подключаю:
from xmlrpclib import ServerProxy
from IPython.display import Image
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
import time
** Wizard \(\rightarrow\) Demo \(\rightarrow\) Sculpting ** предлагает посмотреть опцию sculpting для некоего белка с SS-сшивкой, визуализированными двойными связями и Ван-дер-Ваальсовыми радиусами атомов.
В самом окне прописаны инструкции:
С помощью прописанных инструкций можно менять структуру белка до неузнаваемой и нереалистичной. Например, можно получить такое кольцо с расположенными наружу аминокислотами (+ показан торсионный угол при связи S-S):
Опция наглядная, но кажется бесполезной. Попробую повторить Sculpting для заданной структуры 1LMP. Загрузка:
cmd.fetch("1LMP")
Перевожу мышь в режим редактирования: ** Mouse \(\rightarrow\) 3 Button Editing **.
Включаю режим скульптуры: ** Wizard \(\rightarrow\) Sculpting **.
Теперь можно выбрать какой-либо фрагмент белка и модифицировать его как в Demo. При этом межатомные напряжения показываются в виде красных точек и дисков (Toggle Bumps) и автоматически анимированно "расслабляются" (Toggle Sculpting).
Выбираю для редактирования область с лигандом (с ней предстоит работать оставшуюся часть практикума). Фрагмент структуры для редактирования обозначается зеленым цветом. Серая область - исключенная из рассмотрения. Голубая область не изменяется и служит "амортизатором" изменений.
В результате из исходной модели можно получить модель (искусственную и неправдоподобную), где лиганд как-то вынесен из центра связывания, а сам центр соответствующе изменен: полость больше заполнена водой, гидрофобные остатки сильнее погружены к центру, гидрофильные остатки тоже изменены.
Для начала некоторая информация о белке структуры 1LMP и его лиганде.
Белок - O-гликозил гидролаза, на 1995 год был показан как очень эффективный для разрушения бактериальной стенки и хитина. Авторы (Karlsen & Hough) захотели постичь суть этого процесса и проанализировали кристалл белка с хитоолигосахаридом.
Изображение лиганда. Атомы на расстоянии менее 5 Å показаны в модели sticks. Остальная часть белка представлена в виде поверхности. Желтыми линиями показаны возможные водородные связи между лигандом и белком (команда distance, порог 3.5). Гидрофобные взаимодействия тоже вносят вклад в удержание.
Из всех остатков, возможно участвующих в удержании лиганда водородными связями, нужно выбрать один. Для этого я решила уменьшить порог на максимальную длину водородной связи.
Выбор значительно уменьшился. Asp'52 и Asp'101 оба расположены близко к кольцам лиганда. Думаю, мутация одного из них может привести к сильному ослаблению связывания.
** Wizard \(\rightarrow\) Mutagenesis** предлагает быстро заменить любую аминокислоту в белке и предоставляет выбор ротамера. Я решила заменить аспартат на большой гидрофобный лейцин (LEU). Не только водородная связь, но и структура кармана связывания от этого должна измениться, что теоретически обеспечит отсутствие связывания.
Выбираю ротамер, не имеющий стерических затруднений с соедними атомами белка (с лигандом - можно допустить).
set matrix_mode, 1
set movie_panel,1
translate [0,10,0], obj01
mset 1x240
mview store
mview store, object=obj01
mview reinterpolate
mview reinterpolate, object=obj01
frame 100
super obj01, 1lmp
mview store, object=obj01
mview reinterpolate, object=obj01
mview store
mview reinterpolate
frame 240
mview store
mview reinterpolate
Результат (из-за всяческих трудностей в формате mp4):
Флуоресцентную метку присоединяю к олигосахариду через сложноэфирную связь, меняю торсионный угол так, чтобы не возникало явный структурых перекрытий. Дорабатываю в режиме скульптуры.
phi = -100
psi = -70
omega = 180
n = 100
cmd.do("reinitialize")
cmd.do("frag ala")
time.sleep(2)
cmd.set_name("ala", "helix")
cmd.do("alter helix, resi=1")
cmd.do("frag ala")
cmd.select("Cend", "helix and name C and resi 1")
cmd.do("alter ala, resi=2")
cmd.select("Nend", "ala and name N")
cmd.fuse("Nend","Cend")
for x in range(1, n-1):
cmd.select("Cend", "helix and name C and resi %d"%(x+1))
cmd.do("alter ala, resi=%d"%(x+2))
cmd.select("Nend", "ala and name N")
cmd.fuse("Nend","Cend")
sele = [
"helix and name C and resi %d"%x, # prev C
"helix and name N and resi %d"%(x+1), # this N
"helix and name CA and resi %d"%(x+1),# this CA
"helix and name C and resi %d"%(x+1), # this C
"helix and name N and resi %d"%(x+2), # next N
"helix and name CA and resi %d"%x, # prev CA
]
cmd.set_dihedral(sele[1], sele[2], sele[3], sele[4], psi)
cmd.set_dihedral(sele[0], sele[1], sele[2], sele[3], phi)
cmd.set_dihedral(sele[5], sele[0], sele[1], sele[2], omega)
cmd.hide("everything")
cmd.show("sticks")
cmd.do("util.cbab")
cmd.do("set_view (\
0.188630059, -0.386772186, -0.902677476,\
0.805955350, 0.586167753, -0.082738109,\
0.561119199, -0.711910307, 0.422289491,\
0.000037119, 0.000094339, -196.971359253,\
-12.188592911, 40.858013153, 5.906991482,\
186.963119507, 246.963272095, -20.000000000 )")
cmd.ray(500,500)
cmd.png("images/helix1.png")
time.sleep(2)
Image(filename='images/helix1.png')
cmd.do("set_view (\
-0.381794393, -0.919988990, -0.088615030,\
0.115321331, 0.047711506, -0.992182255,\
0.917023718, -0.389027834, 0.087879598,\
-0.000030849, 0.000059430, -72.004867554,\
5.714700222, 42.894599915, -1.640473127,\
-58.130760193, 242.105712891, -20.000000000 )")
cmd.ray(500,500)
cmd.png("images/helix2.png")
time.sleep(2)
Image(filename='images/helix2.png')
SMILES кубана:
C12C3C4C1C5C2C3C45
или
C12C3C4C1C5C4C3C25
Формулы отличаются только нумерацией двух атомов, но представляют одинаковую молекулу.
На kodomo воспользовалась командой obgen (obgen test.smi > test.mol
), которая, кстати, использует поиск Монте-Карло среди возможных конформеров молекулы и позволет менять силовое поле для этого поиска. Получила файл с 3D-структурой кубана. Загрузила в pymol. Красота.
cmd.load("cubane.mol")
cmd.hide("everything")
cmd.show("sticks")
cmd.do("util.cbab")
cmd.set_view (\
"-0.010397468, -0.881636381, 0.471810490,\
0.258809060, -0.458133608, -0.850375175,\
0.965868711, 0.113264591, 0.232938007,\
0.000000000, 0.000000000, -16.344501495,\
-0.000287533, 0.000118732, 0.000249982,\
10.290057182, 22.398941040, -20.000000000" )
cmd.ray(500,500)
cmd.png("images/cubane1.png")
time.sleep(2)
Image(filename='images/cubane1.png')
Мои любимые настройки рендеринга:
cmd.do('bg_color white')
cmd.set('ambient','0')
cmd.set('direct','0.7')
cmd.set('specular','off')
cmd.set("ray_shadow","off")
Переключатель между заданиями:
cmd.reinitialize()