Знакомство с Pymol

Начинаем с запуска PyMOL и импорта всех необходимых модулей и настроек. Перед запуском кода скачиваем модуль pymol следующей командой:

In [ ]:
conda install -c schrodinger pymol

Запуск и подключение модулей:

In [1]:
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]

import pymol
pymol.finish_launching()
from pymol import cmd,stored
from IPython.display import Image
import time
import numpy as np

Далее инициализируем структуру исследуемого белка: подгружаем файл со структурой, визуализируем связи, изменяем масштаб изображения, изменяем состояние и сохраняем его.

In [2]:
cmd.do('''
fetch 1cll, async=0    
as cartoon, n. C+O+N+CA
zoom i. 4+5
mset 1 x1000
mview store''')

Далее создаем список аминокислот данного белка

In [3]:
stored.r = [] 
cmd.iterate('1cll and n. CA','stored.r.append(resi)')
Out[3]:
152
In [5]:
cmd.do('''
bg_color white
color palecyan
set ray_trace_mode,  3
set ray_opaque_background, 0
ray 600,700''')
cmd.png('mypng.png')
time.sleep(2)
Image(filename='mypng.png')
Out[5]:

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

In [6]:
length = len(stored.r) #длина списка все остатков
colors = np.linspace(1,0.5, length) #возвращаем np.array с lenght значениями одинокавых промежутков между 1 и 0.5


for k,i in enumerate(stored.r):
    cmd.set_color('col%d' %k, [colors[k],0.5,0.75])
    cmd.set('cartoon_color','col%d' % k ,'resi %s' % i)
cmd.show_as('cartoon','all')

cmd.do('''
bg_color white
set ray_trace_mode,  3
set ray_opaque_background, 0
ray 600,700''')
cmd.png('mypng.png')
time.sleep(2)
Image(filename='mypng.png')
Out[6]:

Далее создаем короткий видеофрагмент для более подробного изучения структуры:

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