Pr1: PyMol

In [1]:
#Упражнение 1. Визуализации остова с зумом на 4 и 5 остатки
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]

import pymol
pymol.finish_launching()
from pymol import cmd,stored

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

#fetch - скачать pdb файл
#async = 0/1: запустить в отдельном потоке {по умолчанию: 0}
#as line - линейный вид
#n. C+O+N+CA - name, + - или
#zoom i 4 + 5- прозумировать остатки с идентификатором остатка 4 или 5 (то есть оба остатка)
#mset 1 x1000 -  тысяча кадров, все соответствующие состоянию 1
#mview store - сохранить положение камеры
In [6]:
from IPython.display import Image
Image("im1.png")
Out[6]:
In [ ]:
#Упражнение 2. Градиентная окраска аминокислотных остатков в cartoon
stored.r = [] #создаём пустой список
cmd.iterate('1cll and n. CA','stored.r.append(int(resi))') #итерация по всем аминокислотам, присоединяем их к списку

import numpy as np

length = len(stored.r) #нашли длину белка
colors = np.linspace(1,0.5, length) #равномерное распределение между числами 0,5 и 1 по длине белка, 
for k,i in enumerate(stored.r): #создали кортежи, состоящие из двух элементов - индекса элемента и самого элемента, делаем итерацию
    cmd.set_color('col%d' %k, [colors[k],0.5,0.75])# структура команды set_color name, rgb - определяет новый цвет, используя RGB и даёт ему название col%k
    print (1,1,colors[k])#видим список цветов по RGB 
    cmd.set('cartoon_color','col%d' % k ,'resi %d' % i)#выбираем остаток номер i и красим его в цвет k
cmd.show_as('cartoon','all') #показать в виде cartoon выделенную аминокислоту
In [7]:
from IPython.display import Image
Image("im2.png")
Out[7]:
In [ ]:
#Упражение 3. Делаем кадры
for i in range(length - 7):
    cmd.frame((10*i)+1)#устанавливает наблюдателя на указанный кадр
    cmd.zoom( 'n. CA and i. %d+%d' % (i,i+7)) #масштабирует и переводит окно и начало координат, чтобы охватить выбранные атомы - CA атомы определённых остатков
    cmd.mview('store') #драфтинг
cmd.mpng('pr1', first=1, last=1000) #сохранение картинок
#VideoMach - приложение, где кадры были склеены в анимацию
In [1]:
from IPython.display import Image
Image("movie.gif")
Out[1]:
<IPython.core.display.Image object>