from xmlrpc.client import ServerProxy
import time
import pymol
from IPython.display import Image
import time
import sys
import numpy as np
from pymol import stored, cmd
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
cmd.do(f'''
reini
fetch 1lmp
hide nonbonded
select ligand, resn nag+ndg
show sticks, ligand
zoom 1lmp
deselect
png 1lmp.png
''')
Image(filename='1lmp.png', width=450, height=550)
Изменение с помощью Sculpting
Image(filename='scu.png', width=450, height=550)
Произвели замену TYR62 на TRP
cmd.do('''
cmd.wizard("mutagenesis")
cmd.refresh_wizard()
cmd.get_wizard().do_select("resi 62")
cmd.get_wizard().set_mode("TRP")
cmd.refresh_wizard()
cmd.get_wizard().apply()
cmd.set_wizard()
''')
cmd.do('''
hide all
bg_color white
select original, resi 63 + resn nag + resn ndg
show sticks, original
zoom original
deselect
''')
time.sleep(2)
Image(filename='lig.png', width=450, height=550)
cmd.do('''
fetch 1lmp, 1lmp2
hide all
select ligand1, 1lmp & resn nag+ndg
select ligand2, 1lmp2 & resn nag+ndg
disable ligand*
''')
cmd.set('cartoon_side_chain_helper', 'on')
cmd.show('cartoon', '(1lmp | 1lmp2) & !ligand*')
cmd.colour('red', '1lmp')
cmd.colour('red', '1lmp2')
cmd.show('sticks', 'ligand*')
cmd.colour('black', 'ligand*')
cmd.show('sticks', 'resi 63')
cmd.colour('blue', '1lmp & resi 63')
cmd.colour('green', '1lmp2 & resi 63')
cmd.translate('[-50, 0, 0]', '1lmp2')
cmd.center('1lmp2 + 1lmp')
cmd.zoom('center', '40')
time.sleep(3)
Image(filename='two.png', width=450, height=550)
cmd.mset('1 x360')
cmd.frame('1')
cmd.mview('store')
cmd.do('mview store, object=1lmp2')
cmd.frame('60')
cmd.do('translate [50, 0, 0], object=1lmp2')
cmd.do('mview store, object=original')
cmd.frame('360')
cmd.zoom('resi 63','5')
cmd.do('mview store, object=1lmp2')
cmd.frame('120')
cmd.zoom('resi 63','5')
cmd.mview('store')
cmd.frame('180')
cmd.do('mview store, object=1lmp2')
cmd.zoom('resi 63','5')
cmd.do('util.mrock(180, 360, 360)')
cmd.mview('store')
cmd.frame('360')
cmd.zoom('resi 63','5')
cmd.clip('near', '100'); cmd.clip('far', '-100')
cmd.mview('store')
cmd.do('mview interpolate, object=1lmp2')
cmd.mview('reinterpolate')
Как-то они совместились..
import io
import base64
from IPython.display import HTML
video = io.open('lig.mp4', 'r+b').read()
encoded = base64.b64encode(video)
HTML(data='''<video controls alt="test" width = "720" preload="none">
<source src="data:video/mp4;base64,{0}" type="video/mp4" />
</video>'''.format(encoded.decode('ascii')))