<a href="http://kodomo.fbb.msu.ru/~pankevich-ev/term8/pr11/"></a>
Цель данной работы: ознакомиться с возможностями докинга низкомолекулярного лиганда в структуру белка с помощью пакетом Autodock Vina и Autodock tools.
Будем работать с белком лизоцимом моллюска lys_merlu, структуру которого построили на основе гомологичного моделирования в прошлом практикуме (модель 1): lys_merlu.pdb.
Программе Autodock Vina для докинга необходимы специально форматированные файлы pdb c зарядами и указанием торсионных углов. Для начала попробуем провести докинг одного из мономеров сахара (NAG) из прошлого занятия.
В банке pdb найдем SMILES нотацию для NAG: nag.smi. C помощью obgen построим 3D структуру этого сахара в pdb формате.
%%bash
obgen nag.smi -ff UFF > nag.mol
babel -imol nag.mol -opdb nag.pdb
Скриптом prepare_ligand4.py из пакета Autodock tools создадами pdbqt файл вашего лиганда. Также скриптом prepare_receptor4.py из пакета Autodock tools создадим pdbqt файл вашего белка. Укажем путь к директории, в которой расположены скрипты:
%%bash
export PYTHONPATH=${PYTHONPATH}:/home/preps/golovin/.local_numpy/lib/python2.7/site-packages:/home/preps/golovin/.local_numpy/lib/python2.7/dist-packages
export PATH=${PATH}:/home/preps/golovin/progs/bin
Далее команды выполнялись из консоли.
%%bash
prepare_ligand4.py -h
%%bash
prepare_ligand4.py -l nag.pdb
prepare_receptor4.py -r merlu.pdb
Теперь надо создать файл с параметрами докинга vina.cfg. Для докинга необходимо указать область структуры белка, в которой будет происходить поиск места для связывания. Удобно его задать как куб с неким центором. Координаты центра мы определим из модели комплекса, которую мы построили на прошлом занятии. Определим центр масс с помощью PyMol, команда pseudoatom.
from xmlrpclib import ServerProxy
from IPython.display import Image
import os, sys, time
# pymol launching
import __main__
__main__.pymol_argv = [ 'pymol', '-cp' ]
# __main__.pymol_argv = [ 'pymol', '-x' ] # for GUI
import pymol
from pymol import cmd
pymol.finish_launching()
cmd.delete('all')
cmd.load('merlu.pdb')
cmd.do('''
pseudoatom mcent, resi 101, resi 29, resi 45
select mcent
print cmd.get_atom_coords('mcent')
''')
PyMOL>print cmd.get_atom_coords('mcent')
[43.905891418457031, 42.647998809814453, 16.680110931396484]
%%bash
echo "center_x=43.9
center_y=42.6
center_z=16.7
size_x = 25
size_y = 25
size_z = 25
num_modes = 20
" > vina.cfg
%%bash
vina --config vina.cfg --receptor merlu.pdbqt --ligand nag.pdbqt --out nag_prot.pdbqt --log nag_prot.log
Просмотрим файл nag_prot.log. Энергии 3ёх лучших расположений и геометрическую разницу между ними:
#mode | affinity | dist from best mode
# | (kcal/mol) | rmsd l.b.| rmsd u.b.
# 1 -5.0 0.000 0.000
# 2 -5.0 1.787 2.765
# 3 -4.9 1.959 4.704
В PyMol загрузим файлы nag_prot.pdbqt и prot.pdbqt. Далее отображены все состояния на одной картинке.
defaultImage = 'pymolimg.png'
def prepareImage(width=300, height=300, sleep=5, filename=defaultImage):
## To save the rendered image
cmd.ray(width, height)
cmd.png('pymolimg.png')
time.sleep(sleep)
# Define some shortcuts
def focus(x):
cmd.center(x)
cmd.zoom(x)
cmd.delete('all')
cmd.load('nag_prot.pdbqt')
cmd.load('merlu.pdb')
cmd.do('''
rotate x, 100
split_states nag_prot, 1, 20, prefix=conf
show sticks, nag_prot
zoom all
ray
''')
prepareImage()
Image(defaultImage)
cmd.delete('all')
cmd.load('nag_prot.pdbqt')
cmd.load('merlu.pdb')
cmd.do('''
show surface, merlu
set transparency, 0.5
show sticks, nag_prot
split_states nag_prot, 1, 20, prefix=conf
rotate x, 50, all, 0
rotate y, -90, all, 0
zoom all
ray
''')
prepareImage()
Image(defaultImage)
Теперь проведём докинг, рассматривая подвижность некоторых боковых радикалов белка. Сначала разобьем белок на две части, подвижную и неподвижную. Для подвижной части выберем 3 аминокислоты которые использовали в прошлом задании для позиционирования лиганда.
%%bash
python /usr/share/pyshared/AutoDockTools/Utilities24/prepare_flexreceptor4.py -r merlu.pdbqt -s LYS101_ASP29_TRP45
%%bash
vina --config vina.cfg --receptor merlu_rigid.pdbqt --flex merlu_flex.pdbqt --ligand nag.pdbqt --out nag_pr_2.pdbqt --log nag_pr_2.log
Файлы pdbqt и log получились пустыми. В общем, это не самое главное, хотя могло и спасти ситуацию. Результат докинга, который показан выше, выглядит уже хорошо, хотя трудно сравнивать с результатом гомологичного моделирования.