import __main__
__main__.pymol_argv = ["pymol", "-x"]
import pymol
pymol.finish_launching()
import numpy as np
from IPython.display import Image
from pymol import cmd, stored
cmd.do("fetch 1lmp; orient 1lmp")
cmd.png("unchanged.png", 800, 600, ray=3)
# Проведите скульптинг и продолжите выполнение
cmd.png("sculpted.png", ray=3)
Немного измененная версия белка
Так выглядят контакты лиганда. Для примера будем менять Asp52A на Trp
Анимация наложения
cmd.reinitialize()
cmd.bg_color("white")
cmd.set("cartoon_side_chain_helper", 1)
cmd.fetch("1lmp", name="native")
cmd.fetch("1lmp", name="mutated")
cmd.remove("solvent")
cmd.orient("resi 52")
cmd.show("sticks", "resi 52")
cmd.color("grey80", "resi 52 and element C")
cmd.zoom("native")
cmd.super("mutated", "native")
cmd.translate("[-30, 0, 0]", "native")
cmd.zoom("native or mutated")
cmd.hide("everything", "not polymer.protein")
# Первый кадр
cmd.mset("1 x300")
cmd.frame("1")
cmd.mview("store")
cmd.mview("store", object="native")
# Наложение
cmd.frame("120")
cmd.mview("store")
cmd.translate("[30, 0, 0]", object="native")
cmd.mview("store", object="native")
cmd.frame("200")
cmd.mview("store", object="native")
cmd.center("mutated and resi 52")
cmd.zoom("mutated and resi 52")
cmd.mview("store")
# Вращаемся вокруг лиганда
cmd.frame("300")
cmd.mview("store", object="native")
cmd.center("mutated and resi 52")
cmd.zoom("mutated and resi 52")
cmd.turn("y", 60)
cmd.mview("store")
cmd.mview("interpolate")
!mkdir images
cmd.mpng("images/", mode=2, width=480, height=360)
! ffmpeg -i images/%04d.png video.avi
! ffmpeg -i video.avi animation.gif
display(Image("animation.gif", format="png"))
cmd.reinitialize() # очистим поле
cmd.bg_color("white")
cmd.set("cartoon_side_chain_helper", 1)
cmd.fetch("2762604", type="cid", name="tamra")
'tamra'
cmd.remove("tamra and id 4")
cmd.select("acid", "id 32")
1
cmd.orient("tamra")
cmd.png("tamra.png", ray=3)
cmd.fetch("1lmp")
cmd.remove("solvent")
cmd.show("cartoon", "1lmp and (not hetatm)")
cmd.util.cbas("tamra")
cmd.show("sticks", "resi 37")
cmd.select("base", "1lmp and resi 37 and n. OG")
cmd.util.cbaw("resi 37")
cmd.orient("resi 37")
cmd.zoom("1")
cmd.png("protein_before_tamra.png", ray=3)
Вот серин, который будет нести TAMRA, выделен белым
cmd.fuse("acid", "base")
cmd.torsion(-100)
cmd.png("protein_with_tamra.png", ray=3)
TAMRA с белком, показан торсион связи
cmd.reinitialize() # очистим поле
cmd.bg_color("white")
cmd.fragment("ala")
cmd.show("sticks", "ala")
cmd.util.cbas("ala") # покрасим
for i in range(2, 100+1):
cmd.edit(f"i. {i} and n. C")
cmd.editor.attach_amino_acid("pk1", "ala", ss=1)
cmd.center("pkmol")
cmd.zoom("pkmol")
cmd.hide("cartoon")
cmd.png("polyalanine.png", ray=3)
cmd.reinitialize() # очистим поле
cmd.bg_color("white")
cmd.fetch("1bna", "sample") # структура B-формы
'sample'
cmd.create("at", "c. B and i. 20 + c. A and i. 5")
cmd.create("gc", "c. B and i. 21 + c. A and i. 4")
cmd.create("mm1", "gc")
cmd.pair_fit("at", "gc")
3.3981125354766846
matrix = cmd.get_object_matrix("at")
for i in range(2, 100+1):
cmd.create(f"mm{i}", f"mm{i-1}") # чередуем GC и AT
cmd.transform_selection(f"mm{i}", matrix)
cmd.remove("sample")
cmd.show("surface", "*")
cmd.orient("mm*")
cmd.util.cbas("mm*")
cmd.png("dnab.png", ray=3)