Докинг низкомолекулярных лигандов в структуру белка

In []:
<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 формате.

In [8]:
%%bash
obgen nag.smi -ff UFF > nag.mol
babel -imol nag.mol -opdb nag.pdb

A T O M   T Y P E S

IDX	TYPE
1	C_3
2	C_2
3	O_2
4	N_2
5	C_3
6	H_
7	C_3
8	H_
9	O_3
10	O_3
11	C_3
12	H_
13	C_3
14	O_3
15	C_3
16	H_
17	O_3
18	C_3
19	H_
20	O_3
21	H_
22	H_
23	H_
24	H_
25	H_
26	H_
27	H_
28	H_
29	H_
30	H_

S E T T I N G   U P   C A L C U L A T I O N S

SETTING UP BOND CALCULATIONS...
SETTING UP ANGLE CALCULATIONS...
SETTING UP TORSION CALCULATIONS...
SETTING UP OOP CALCULATIONS...
SETTING UP VAN DER WAALS CALCULATIONS...

S T E E P E S T   D E S C E N T

STEPS = 500

STEP n       E(n)         E(n-1)    
------------------------------------
    0    496481.734      ----
   10    467.99823    488.52805
   20    369.51371    372.98120
   30    347.22457    348.56009
   40    337.54989    338.29544
   50    331.68884    332.17281
   60    327.38276    328.34670
   70    324.33730    324.61423
   80    321.61690    321.85332
   90    319.21721    319.43126
  100    316.99167    317.19377
  110    314.70623    315.24630
  120    312.60126    312.79698
  130    310.49494    310.69150
  140    308.55549    308.56783
  150    306.06356    306.26557
  160    303.88272    304.08633
  170    301.87668    301.89263
  180    299.34394    299.54728
  190    297.17939    297.37893
  200    295.06620    295.25975
  210    292.88834    293.38819
  220    290.95190    291.12763
  230    289.12806    289.29271
  240    287.42534    287.57844
    STEEPEST DESCENT HAS CONVERGED

W E I G H T E D   R O T O R   S E A R C H

  NUMBER OF ROTATABLE BONDS: 3
  NUMBER OF POSSIBLE ROTAMERS: 72
  INITIAL WEIGHTING OF ROTAMERS...

  GENERATED 250 CONFORMERS

CONFORMER     ENERGY
--------------------
     1       265.483
     2       252.154
     3       250.487
     4       249.214
     5       248.955
     6       242.347
     7       240.963
     8       240.442
     9       240.154
    10       249.044
    11       247.948
    12       248.669
    13       242.367
    14       242.188
    15       240.804
    16       240.210
    17       240.856
    18       248.508
    19       278.263
    20       248.259
    21       249.026
    22       242.246
    23       242.988
    24       243.247
    25       257.738
    26       242.035
    27       242.191
    28       240.738
    29       240.173
    30       239.893
    31       249.372
    32       248.097
    33       247.586
    34       241.542
    35       242.976
    36       242.544
    37       242.324
    38       241.059
    39       240.434
    40       261.388
    41       249.010
    42       249.001
    43       339.549
    44       269.231
    45       415.418
    46       293.793
    47       285.930
    48       258.954
    49       246.358
    50       242.172
    51       240.833
    52       248.991
    53       247.974
    54       248.948
    55       247.940
    56       247.527
    57       241.490
    58       240.363
    59       241.365
    60       241.202
    61       241.098
    62       241.109
    63       241.120
    64       279.814
    65       249.295
    66       242.334
    67       265.910
    68       280.006
    69       248.576
    70       249.098
    71       248.147
    72       247.702
    73       247.494
    74       247.327
    75       247.221
    76       248.895
    77       248.041
    78       248.700
    79       242.584
    80       242.398
    81       240.871
    82       240.213
    83       261.030
    84       248.811
    85       248.910
    86       260.190
    87       265.951
    88       266.613
    89       259.858
    90       259.832
    91       258.515
    92       251.444
    93       294.538
    94       273.473
    95       261.903
    96       255.048
    97       250.931
    98       249.237
    99       249.651
   100       243.041
   101       242.705
   102       241.360
   103       240.663
   104       241.605
   105       249.077
   106       249.305
   107       260.633
   108       399.752
   109       280.996
   110       316.626
   111       304.489
   112       295.381
   113       258.638
   114       423.876
   115       551.996
   116       458.195
   117       434.698
   118       320.268
   119       308.170
   120       301.144
   121       280.345
   122       280.497
   123       279.825
   124       391.274
   125       300.328
   126       270.944
   127       342.263
   128       265.670
   129       385.888
   130       271.596
   131       265.679
   132       261.235
   133       345.203
   134       331.324
   135       324.324
   136       253.286
   137       250.733
   138       249.922
   139       248.981
   140       248.425
   141       258.399
   142       257.234
   143       256.351
   144       255.880
   145       255.407
   146       242.081
   147       247.733
   148       326.603
   149       251.404
   150       633.926
   151       424.508
   152       384.365
   153       323.752
   154       354.749
   155       327.210
   156       312.498
   157       272.051
   158       265.241
   159       262.030
   160       259.703
   161       258.181
   162       256.778
   163       447.030
   164       280.900
   165       281.041
   166       349.987
   167       289.011
   168       284.896
   169       340.130
   170       261.931
   171       253.625
   172       334.775
   173       525.493
   174       314.902
   175       289.253
   176       272.037
   177       264.719
   178       249.379
   179       248.353
   180       247.851
   181       247.080
   182       246.578
   183       254.782
   184       603.250
   185       512.244
   186       307.307
   187       271.704
   188       259.405
   189       253.107
   190       249.046
   191       244.774
   192       243.054
   193       283.214
   194       274.538
   195       329.158
   196       333.218
   197       262.118
   198       443.101
   199       324.712
   200       318.362
   201       316.222
   202       314.581
   203       313.285
   204       354.016
   205       517.482
   206       489.769
   207       304.419
   208       271.537
   209       262.104
   210       257.038
   211       253.378
   212       284.900
   213       280.451
   214       329.958
   215       326.420
   216       265.365
   217       259.795
   218       408.871
   219       305.042
   220       280.555
   221       266.696
   222       261.116
   223       394.318
   224       375.024
   225       366.161
   226       282.951
   227       280.053
   228       286.264
   229       286.308
   230       286.239
   231       286.284
   232       286.284
   233       282.070
   234       279.244
   235       277.436
   236       276.862
   237       257.207
   238       255.462
   239       601.783
   240       477.730
   241       347.585
   242       329.747
   243       323.488
   244       319.959
   245       317.633
   246       315.519
   247       314.244
   248       313.206
   249       295.033
   250       295.070

  LOWEST ENERGY:  239.893


S T E E P E S T   D E S C E N T

STEPS = 500

STEP n       E(n)         E(n-1)    
------------------------------------
    0     239.893      ----
   10    239.85527    239.85892
   20    239.82465    239.82469
   30    239.79142    239.79720
   40    239.76425    239.76698
   50    239.74279    239.74233
   60    239.71849    239.72301
   70    239.69893    239.69984
   80    239.68313    239.68455
   90    239.66849    239.67136
  100    239.65653    239.65744
  110    239.64602    239.64573
  120    239.63413    239.63720
  130    239.62564    239.62539
  140    239.61553    239.61718
  150    239.60740    239.60830
  160    239.59940    239.60019
  170    239.59209    239.59449
  180    239.58741    239.58707
  190    239.58093    239.58130
  200    239.57560    239.57630
  210    239.57225    239.57161
  220    239.56715    239.56793
  230    239.56345    239.56366
  240    239.56067    239.56052
  250    239.55685    239.55846
  260    239.55411    239.55438
  270    239.55253    239.55174
  280    239.54880    239.54947
  290    239.54648    239.54685
  300    239.54462    239.54432
  310    239.54227    239.54327
  320    239.54002    239.54025
  330    239.53929    239.53844
  340    239.53703    239.53680
  350    239.53521    239.53597
  360    239.53366    239.53405
  370    239.53227    239.53248
  380    239.53209    239.53112
  390    239.53023    239.52989
  400    239.52880    239.52956
  410    239.52761    239.52800
  420    239.52656    239.52677
  430    239.52562    239.52573
  440    239.52523    239.52481
  450    239.52408    239.52483
  460    239.52315    239.52353
  470    239.52235    239.52255
  480    239.52164    239.52175
  490    239.52153    239.52105
  500    239.52058    239.52133
1 molecule converted
23 audit log messages 

Скриптом prepare_ligand4.py из пакета Autodock tools создадами pdbqt файл вашего лиганда. Также скриптом prepare_receptor4.py из пакета Autodock tools создадим pdbqt файл вашего белка. Укажем путь к директории, в которой расположены скрипты:

In [5]:
%%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

Далее команды выполнялись из консоли.

In []:
%%bash
prepare_ligand4.py -h
In []:
%%bash
prepare_ligand4.py -l nag.pdb
prepare_receptor4.py -r merlu.pdb

Теперь надо создать файл с параметрами докинга vina.cfg. Для докинга необходимо указать область структуры белка, в которой будет происходить поиск места для связывания. Удобно его задать как куб с неким центором. Координаты центра мы определим из модели комплекса, которую мы построили на прошлом занятии. Определим центр масс с помощью PyMol, команда pseudoatom.

In [8]:
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()
In [9]:
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]

In [10]:
%%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
In []:
%%bash
vina --config vina.cfg --receptor merlu.pdbqt --ligand nag.pdbqt --out nag_prot.pdbqt --log nag_prot.log

Просмотрим файл nag_prot.log. Энергии 3ёх лучших расположений и геометрическую разницу между ними:

In [20]:
#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. Далее отображены все состояния на одной картинке.

In [12]:
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)
In [22]:
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)
Out[22]:
In [32]:
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)
Out[32]:

Теперь проведём докинг, рассматривая подвижность некоторых боковых радикалов белка. Сначала разобьем белок на две части, подвижную и неподвижную. Для подвижной части выберем 3 аминокислоты которые использовали в прошлом задании для позиционирования лиганда.

In [25]:
%%bash
python /usr/share/pyshared/AutoDockTools/Utilities24/prepare_flexreceptor4.py -r merlu.pdbqt -s LYS101_ASP29_TRP45
In [26]:
%%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 получились пустыми. В общем, это не самое главное, хотя могло и спасти ситуацию. Результат докинга, который показан выше, выглядит уже хорошо, хотя трудно сравнивать с результатом гомологичного моделирования.