from xmlrpclib import ServerProxy
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
import pymol
pymol.finish_launching()
from pymol import cmd, stored
cmd.fetch('1lmp')
cmd.do('''
fetch 1cll, async=0
as lines, n. C+O+N+CA
zoom i. 4+5
mset 1 x1000
mview store''')
for i in range(100):
cmd.frame((10*i)+1)
cmd.zoom( 'n. CA and i. %d+%d' % (i,i+7))
cmd.mview('store')
v = cmd.get_view()
cmd.set_view(v)
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)
for k, i in enumerate(stored.r):
cmd.set_color('col%d' %k, [colors[k],0.5,0.75])
print [1, 1, colors[k]]
cmd.set('cartoon_color', 'col%d' %k,'resi %d' %i)
cmd.show_as('cartoon', 'all')
cmd.zoom()
cmd.png(filename='pic1.png',width='10cm',dpi=300,ray=1)
from IPython.display import Image
Image(filename='pic1.png')
Тут у меня не получилось сохранить видео силами Jupyter :(
import io
import base64
from IPython.display import HTML
video = io.open('mov1.mp4', 'r+b').read()
encoded = base64.b64encode(video)
HTML(data='''<video alt="test" controls>
<source src="data:video/mp4;base64,{0}" type="video/mp4" />
</video>'''.format(encoded.decode('ascii')))
Так что вот видео, сохраненное в Pymol вручную и выложенное на стороннем сайте:
HTML('<iframe src="https://player.vimeo.com/video/260449337" width="640" height="432" frameborder="0"></iframe>')