Работа с Pymol

Для работы с Pymol были инмпортированы прокси и загрузка картинок:

In [3]:
from xmlrpclib import ServerProxy
from IPython.display import Image

А также был подключен Pymol в режиме RPC сервера командой :
pymol -R
и был скачан файл с PDB структур белка 1LMP.

In [4]:
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
cmd.delete("all")
In []:
cmd.fetch('1lmp')
In [5]:
import time
cmd.hide("everything")
In [5]:
cmd.extract("water","resn HOH")
cmd.delete("water")
cmd.set("opaque_background", 'off')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.bg_color('white')
cmd.show_as("cartoon")
cmd.select("leg","resn NAG+NDG")
cmd.select("prot","not leg")
cmd.color("limegreen", "prot")
cmd.show("sticks", "leg")
cmd.color("yelloworange", "leg")
cmd.center()
cmd.zoom()
cmd.ray(400,400)
cmd.png('1lmp_1.png')
time.sleep(2)
Image(filename='1lmp_1.png')
Out[5]:

Внесение мутации в белок

Во взаимодействии с лигандом могут находится 11 аминокислотных остатков белка, изображенные цветом salmon.

In [8]:
cmd.set('dash_width',"1")
cmd.set("ray_trace_mode","0")
cmd.set('cartoon_transparency','0.6')
cmd.select("cont","byres prot within 3.5 of leg ")
cmd.show("lines","cont")
cmd.color('salmon','cont')
cmd.distance("hbond","cont","leg","3.5","2")
cmd.set("dash_color", "yellow")
cmd.set("label_size","8")
cmd.set('label_outline_color', 'orange')
cmd.set('label_color', 'red')#все еще не работает
cmd.zoom("cont")
cmd.ray(600,600)
cmd.png('cont2.png')
time.sleep(2)
Image(filename='cont2.png')
Out[8]:

Для сравнения измененений, вызванных внесением мутации, визуализовали поверхность 101 аспартата.

In [29]:
cmd.hide('dashes','hbond')
cmd.hide('label','hbond')
cmd.hide('lines','cont')
cmd.set("ray_trace_mode","1")
cmd.show('surface','resi 101')
cmd.color('red','resi 101')
cmd.set('transparency','0.3')
cmd.show('sticks','resi 101')
cmd.color('red','resi 101')
cmd.center('resi 101')
cmd.zoom('(resi 101) + leg')
cmd.ray(500,400)
cmd.png('surf_resi.png')
time.sleep(2)
Image(filename='surf_resi.png')
Out[29]:

Произвели замену 101 аспартат на валин, а также из представленных ротамеров выбрали самый...

In [31]:
cmd.hide('dashes','hbond')
cmd.hide('label','hbond')
cmd.hide('lines','cont')
cmd.color('limegreen','prot')
cmd.wizard("mutagenesis")
cmd.do('cmd.get_wizard().do_select("resi 101")')
cmd.do('cmd.get_wizard().set_mode("VAL")')
cmd.color('purple','resi 101')
cmd.do('cmd.get_wizard().apply()')
cmd.do('cmd.set_wizard("done")')
cmd.save('1lmp_mut.pdb') 
cmd.select('mut','(resn NAG+NDG)+(resi 101)')
cmd.center('mut')
cmd.show('surface','resi 101')
cmd.color('purple','resi 101')
cmd.set('transparency','0.7')
cmd.zoom('mut')
In [32]:
cmd.ray(500,400)
cmd.png('mut.png')
time.sleep(2)
Image(filename='mut.png')
Out[32]:

Создание анимационного ролика

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

Присоединение флуорусцентной метки TAMRA

Для добавления флуорусцентную метку сначали скачали файл-sdf и загрузили его в PyMol.

In [89]:
from xmlrpclib import ServerProxy
from IPython.display import Image
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
cmd.delete("all")
cmd.load('tamra.sdf')
import time
cmd.select('tamra, tamra')
cmd.bg_color('white')
cmd.ray(500,400)
cmd.png('tamra.png')
time.sleep(2)
Image(filename='tamra.png')
Out[89]:

Загрузим структуру исходного белка.

In [90]:
cmd.fetch("1lmp")
cmd.extract("water","resn HOH")
cmd.delete("water")
cmd.set("opaque_background", 'off')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.bg_color('white')
cmd.show_as("cartoon")
cmd.select("leg","resn NAG+NDG")
cmd.select("prot","not leg")
cmd.color("limegreen", "prot")
cmd.show("sticks", "leg")
cmd.color("yelloworange", "leg")
cmd.center('1lmp')
cmd.zoom('1lmp')
cmd.ray(400,400)
cmd.png('1lmp_2.png')
time.sleep(2)
Image(filename='1lmp_2.png')
Out[90]:

Для присоединения выбрали 32 серин

In [91]:
cmd.select('aa','/1lmp//A/SER`32')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.show('sticks','aa')
cmd.color('blue','aa')
cmd.center('aa')
cmd.zoom('aa')
cmd.select('ao','/1lmp//A/SER`32/OG')
cmd.color('red','ao')
cmd.ray(600,400)
cmd.png('ser32.png')
time.sleep(2)
Image(filename='ser32.png')
Out[91]:
In [92]:
cmd.center('tamra')
cmd.show('lines','tamra')
cmd.zoom('tamra')

Так как все атомы, принадлежащие одному элементу, в метке имеют одинаковые идентификаторы, то при выборе атома придется воспользоваться графическим окном. Выбранный атом поместим в выделение "co".

In [93]:
cmd.fuse('ao','co')
cmd.torsion(60)#использовать несколько раз

Также нужно удалить начальный кислород метки. К сожалению, аминокислотный остаток был выбан неудочно, поэтому TAMRA находится внутри структуры.

In [97]:
cmd.ray(600,400)
cmd.png('1_1.png')
time.sleep(2)
Image(filename='1_1.png')
Out[97]:

Построение полиаланиновой α-спирали

Чтобы посторить α-спираль узнали углы φ и ψ для аланина в спиралях известных белков. Приняли значения φ=-53° и ψ=-42°.

In [8]:
cmd.do('''bg white
frag ala
python 
for x in range(2,101):
     cmd.edit("/ala///"+str(x)+"/c")
     editor.attach_amino_acid("pk1","ala")
for x in range(2,101):
     cmd.edit("/ala///"+srt(x)+"/N","/ala///"+srt(x)+"/CA")
     cmd.torsion (-53)
     cmd.edit("/ala///"+srt(x)+"/CA","/ala///"+srt(x+1)+"/C")
     cmd.torsion (-42)
python end
zoom resn ala
show cartoon, ala''')
cmd.ray(600,400)
cmd.png('ala_1.png')
time.sleep(2)
Image(filename='ala_1.png')
Out[8]:

Построение третичной структуры на основе SMILE нотации.

SMILES опиание кубана выглядит так: C12C3C4C1C5C2C3C45, которое было записано в файл cubane.smi. Следующей командой перевели SMILES нотацию в третичную струкутру. А потом открыли в PyMol.

In []:
obgen cubane.smi > cubane.mol
In [14]:
cmd.reinitialize()
cmd.set("opaque_background", 'off')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.bg_color('white')
cmd.load('cubane.mol')
cmd.center('cubane')
cmd.set('stick_radius', '0.1')
cmd.show('sticks')
cmd.ray(600,400)
cmd.png('cub.png')
time.sleep(2)
Image(filename='cub.png')
Out[14]: