from IPython.display import Image, display
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
import pymol
pymol.finish_launching()
from pymol import cmd, stored
cmd.reinitialize()
cmd.fetch('1lmp')
Для начала визуализируем 1lmp нормального человека
cmd.do('''
bg_color white
orient
hide everything
show cartoon
spectrum count, blue_red
png pr2_1lmp.png, width=1080, height=720, ray=3
''')
Image(filename='pr2_1lmp.png')
А теперь "поиздеваемся" над ним с помощью Wizard -> Sculpting
cmd.do('''
orient
hide everything
show cartoon
spectrum count, blue_red
png pr2_1lmp_sculpt.png, width=1080, height=720, ray=3
''')
Image(filename='pr2_1lmp_sculpt.png')
cmd.reinitialize()
cmd.fetch('1lmp')
Построим 2Д диаграмму взаимодействий с помощью Poseview на сайте Proteins.Plus: https://proteins.plus/1lmp
Image(filename='pr2_poseview.png')
А теперь посмотрим на взаимодействие лиганда с белком в 3D.
cmd.do('''
bg_color white
select ligand, byres all within 4 of chain B
set cartoon_side_chain_helper, 1
color yellow, chain B
hide everything
show sticks, ligand
show cartoon
set cartoon_transparency, 0.5
orient ligand
''')
cmd.png('pr2_ligand.png')
Image(filename='pr2_ligand.png')
Asp-52 кажется довольно перспективным остатком. Расстояние от лиганда 2.4 Å. Пожалуй, замутируем этот остаток на Trp.
cmd.wizard('mutagenesis')
cmd.refresh_wizard()
cmd.get_wizard().do_select('resi 52')
cmd.get_wizard().set_mode('TRP')
cmd.refresh_wizard()
cmd.get_wizard().apply()
cmd.set_wizard()
Результат мутагенеза представлен ниже. 52-ой остаток, который мутировали обозначен голубым, лиганд - жёлтым.
cmd.do('png pr2_mut.png, width=1080, height=720, ray=3')
Image(filename='pr2_mut.png')
Нужно присоединить флуоресцентную метку TAMRA к белку через сложноэфирную связь. Сама метка представлена ниже.
Image(filename='pr2_tamra.png')
cmd.reinitialize()
cmd.fetch('1lmp')
Присоединим метку к 47-ому остатку.
cmd.do('''
bg_color white
load Conformer3D_CID_2762604.sdf, tamra
remove tamra and id 54
show sticks, resi 47
remove resi 47 and name OG1
fuse tamra and donor, resi 47 and name CB, mode=1
remove tamra
orient resi 47
''')
cmd.do('png pr2_metka.png, width=1080, height=720, ray=3')
Image(filename='pr2_metka.png')
Нужно построить поли-аланиновую альфа-спираль длиной 100 аминокислот.
cmd.reinitialize()
for i in range(1, 100):
cmd.editor.attach_amino_acid('pk1', 'ALA', ss=1)
cmd.do('''
bg_color white
orient
hide everything
show sticks
color chains
png pr2_helix.png, width=1080, height=540, ray=3
''')
Image(filename='pr2_helix.png')
Нужно построить B-форму ДНК длинной 100 пар нуклеотидов. За основу возьмём структуру B-формы ДНК с PDB ID: 2BNA.
cmd.reinitialize()
cmd.do('''
fetch 2bna
create pair1, chain A and resi 4 or chain B and resi 21
create pair2, chain A and resi 5 or chain B and resi 20
create 1, pair1
pair_fit pair1, pair2
''')
transform = cmd.get_object_matrix("pair1")
for x in range(2, 101):
cmd.create(str(x), str(x-1))
cmd.do('cmd.transform_selection(%i, %s, homogenous=0)' % (x, transform))
cmd.delete('2bna')
cmd.do('''
bg_color white
hide everything
show spheres
orient
png pr2_bdna.png, width=1080, height=540, ray=3
''')
Image(filename='pr2_bdna.png')