In [25]:
from xmlrpc.client import ServerProxy
from IPython.display import Image
import os, sys, time
In [26]:
from pymol import cmd,stored
In [27]:
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
# на этом шаге в терминал: pymol -R
In [28]:
cmd.fetch('1lmp')
Out[28]:
'1lmp'
In [29]:
#скачиваем структуру кальмодулина
cmd.do('''
fetch 1cll, async=0
as lines, n. C+O+N+CA
zoom i. 4+5
mset 1 x1000
mview store''')
In [30]:
#получаем изображение
cmd.png('png.png')
time.sleep(2)
Image(filename='png.png')
Out[30]:
In [31]:
#создаем список остатков
stored.r = [] 
cmd.iterate('1cll and n. CA','stored.r.append(resi)')

import numpy as np

#Теперь мы создаем новую палитру цветов и присваиваем каждой аминокислоте белка свой цвет.
length = len(stored.r)
colors = np.linspace(1,0.5, length)
for k,i in enumerate(stored.r):
    cmd.set_color('col%d' %k, [colors[k],0.2,1])
    cmd.set('cartoon_color','col%d' % k ,'resi %s' % i)
cmd.show_as('cartoon','all')

#получаем изображение
cmd.png('2png.png')
time.sleep(2)
Image(filename='2png.png')
Out[31]:
In [ ]:
 
In [32]:
#создаем фильм в котором более подробно рассматриваем белок.
for k,i in enumerate(stored.r):
    cmd.set_color('col%d' %k, [colors[k],0.2,1])
    cmd.set('stick_color','col%d' % k ,'resi %s' % i)
cmd.show_as('sticks','all')

for i in range(10):
    cmd.frame((10*i)+1)
    cmd.zoom( 'n. CA and i. %d+%d' % (i,i+10))
    cmd.mview('store')      
cmd.mplay()    
#видео открывается в окне PyMOL
In [ ]: