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

Работать будем с моделью 2 из предыдущего занятия (файл model_2.pdb)

1,2. Построение модели NAG

In [11]:
from xmlrpclib import ServerProxy
from IPython.display import Image
import os, sys
import scipy as sp
from scipy import constants
from scipy.constants import codata
import numpy as np
In [2]:
%%bash
# На ChEBI нашел запись NAG в SMILES.
echo "CC(=O)N[C@H]1C(O)O[C@H](CO)[C@@H](O)[C@@H]1O">nag.smi
obgen nag.smi > nag.mol
babel -imol nag.mol -opdb nag.pdb

A T O M   T Y P E S

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

F O R M A L   C H A R G E S

IDX	CHARGE
1	0.000000
2	0.000000
3	0.000000
4	0.000000
5	0.000000
6	0.000000
7	0.000000
8	0.000000
9	0.000000
10	0.000000
11	0.000000
12	0.000000
13	0.000000
14	0.000000
15	0.000000
16	0.000000
17	0.000000
18	0.000000
19	0.000000
20	0.000000
21	0.000000
22	0.000000
23	0.000000
24	0.000000
25	0.000000
26	0.000000
27	0.000000
28	0.000000
29	0.000000
30	0.000000

P A R T I A L   C H A R G E S

IDX	CHARGE
1	0.061000
2	0.569000
3	-0.570000
4	-0.730100
5	0.300100
6	0.000000
7	0.560000
8	-0.680000
9	-0.560000
10	0.280000
11	0.000000
12	0.280000
13	-0.680000
14	0.280000
15	0.000000
16	-0.680000
17	0.280000
18	0.000000
19	-0.680000
20	0.000000
21	0.000000
22	0.000000
23	0.370000
24	0.000000
25	0.400000
26	0.000000
27	0.000000
28	0.400000
29	0.400000
30	0.400000

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 & STRETCH-BEND CALCULATIONS...
SETTING UP TORSION CALCULATIONS...
SETTING UP OOP CALCULATIONS...
SETTING UP VAN DER WAALS CALCULATIONS...
SETTING UP ELECTROSTATIC 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     250.699      ----
   10    80.97875    82.05464
   20    75.76859    76.20039
   30    72.85263    73.37369
   40    71.79516    71.87756
   50    71.07712    71.13374
   60    70.57825    70.62006
   70    69.20068    69.20629
   80    68.97673    69.01286
   90    68.82539    68.83915
  100    68.65352    68.66612
  110    68.48765    68.50010
  120    68.32439    68.36337
  130    68.16802    68.17625
  140    68.00695    68.03855
  150    67.87356    67.88522
  160    67.71860    67.75270
  170    67.58675    67.59866
  180    67.43243    67.46692
  190    67.29978    67.31160
  200    67.14246    67.17519
  210    67.00842    67.01687
  220    66.86244    66.87529
  230    66.71643    66.72967
  240    66.07258    66.10171
  250    65.87605    65.87516
  260    64.70108    64.71733
  270    63.67351    63.75694
  280    63.12158    63.17374
  290    62.39923    62.41500
  300    61.90994    61.91740
  310    61.69381    61.74174
  320    61.53107    61.53689
  330    61.45960    61.46769
  340    61.39858    61.40494
  350    61.34843    61.35291
  360    61.30546    61.30572
  370    61.26296    61.26757
  380    61.22696    61.22977
  390    61.18711    61.18793
  400    61.14821    61.15009
  410    61.11811    61.12031
  420    61.07821    61.08008
  430    61.05036    61.05348
  440    61.02533    61.02598
  450    60.99880    61.00304
  460    60.96985    60.97043
  470    60.95321    60.95364
  480    60.92880    60.92997
  490    60.90463    60.90669
  500    60.87882    60.88108

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        65.792
     2        63.547
     3        63.368
     4        62.562
     5        62.291
     6        61.546
     7        57.572
     8        57.391
     9        57.185
    10        56.690
    11        56.453
    12        55.772
    13        55.750
    14        61.849
    15        60.744
    16        59.627
    17        73.305
    18        63.953
    19        60.099
    20        56.092
    21        87.628
    22        83.996
    23        59.519
    24        59.656
    25        58.637
    26        63.357
    27        60.000
    28        55.281
    29        55.097
    30        55.036
    31        55.037
    32        56.542
    33        56.307
    34        55.622
    35        55.229
    36        55.196
    37        55.156
    38        55.118
    39        55.116
    40        58.785
    41        68.256
    42        56.057
    43        65.863
    44        85.904
    45        83.172
    46        92.889
    47        72.640
    48        66.355
    49        62.046
    50        60.151
    51        58.166
    52        67.889
    53        66.522
    54        65.532
    55        55.424
    56        54.978
    57        54.958
    58        54.930
    59        54.892
    60        55.284
    61        58.725
    62        55.312
    63        59.369
    64        55.658
    65        55.309
    66        71.792
    67        63.693
    68        56.875
    69        56.791
    70        56.788
    71        56.717
    72        56.675
    73        56.685
    74        68.681
    75        64.684
    76        62.763
    77        60.804
    78        60.107
    79        58.958
    80        57.464
    81        65.220
    82        63.602
    83        59.458
    84        56.930
    85        76.343
    86        85.741
    87        85.244
    88        75.696
    89        56.996
    90        70.305
    91        65.658
    92        63.945
    93        62.944
    94        63.041
    95        61.548
    96        59.681
    97        58.845
    98        58.155
    99        58.338
   100        56.376
   101        55.568
   102        55.313
   103        55.215
   104        64.444
   105        67.719
   106        64.144
   107        55.365
   108        71.993
   109        69.217
   110        77.930
   111        61.266
   112        57.948
   113        57.375
   114        57.143
   115        66.887
   116        65.247
   117        64.680
   118        66.117
   119        65.162
   120        57.431
   121        55.717
   122        54.991
   123        56.805
   124        56.624
   125        68.512
   126        56.802
   127        86.661
   128        68.695
   129        55.566
   130        55.090
   131        64.323
   132        67.698
   133        65.076
   134        64.722
   135        64.592
   136        83.269
   137        80.667
   138        79.658
   139        68.398
   140        66.880
   141        66.120
   142        82.322
   143        65.874
   144        57.258
   145        56.986
   146        64.813
   147        56.103
   148        55.596
   149        71.263
   150        98.559
   151        73.236
   152        60.712
   153        60.232
   154        59.035
   155        61.422
   156        76.698
   157        68.906
   158        66.314
   159        65.186
   160        61.001
   161        56.260
   162        55.132
   163        70.290
   164        68.348
   165        66.248
   166        64.831
   167        64.186
   168        59.588
   169        56.193
   170        83.531
   171        68.405
   172        82.047
   173        95.884
   174        74.365
   175        70.051
   176        64.431
   177        68.495
   178        63.110
   179        62.319
   180        60.138
   181        70.802
   182        65.257
   183        72.155
   184        84.947
   185        68.986
   186        70.099
   187        64.707
   188        56.867
   189        55.412
   190        74.650
   191        63.182
   192        89.648
   193        82.503
   194        57.383
   195        55.935
   196        64.282
   197        65.433
   198        61.496
   199        73.754
   200        68.785
   201        64.767
   202        63.529
   203        62.713
   204        78.950
   205        86.329
   206        69.360
   207        72.928
   208        65.513
   209        61.994
   210        61.262
   211        63.976
   212        58.890
   213        55.160
   214        71.696
   215        74.857
   216        66.666
   217        68.366
   218        63.918
   219        70.582
   220        68.834
   221        65.870
   222        64.060
   223        62.185
   224        61.392
   225        60.602
   226        59.452
   227        57.427
   228        70.882
   229        65.148
   230        64.106
   231        62.948
   232        62.174
   233        81.844
   234        82.974
   235        79.891
   236        64.386
   237        77.459
   238        86.073
   239        70.787
   240        85.805
   241        66.254
   242        62.621
   243        61.475
   244        60.823
   245        60.443
   246        76.824
   247        77.136
   248        75.173
   249        70.154
   250        68.186

  LOWEST ENERGY:   54.892


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      54.892      ----
   10    54.88605    54.88754
   20    54.88137    54.88172
   30    54.87751    54.87725
   40    54.87276    54.87416
   50    54.86929    54.86959
   60    54.86651    54.86601
   70    54.86260    54.86396
   80    54.85987    54.86016
   90    54.85803    54.85732
  100    54.85472    54.85607
  110    54.85231    54.85268
  120    54.85146    54.85052
  130    54.84877    54.84875
  140    54.84672    54.84700
  150    54.84608    54.84527
  160    54.84380    54.84369
  170    54.84208    54.84237
  180    54.84081    54.84093
  190    54.84001    54.83976
  200    54.83861    54.83900
  210    54.83766    54.83784
  220    54.83749    54.83677
  230    54.83593    54.83668
  240    54.83507    54.83538
  250    54.83423    54.83431
  260    54.83385    54.83361
  270    54.83296    54.83352
  280    54.83216    54.83232
  290    54.83239    54.83167
  300    54.83131    54.83103
  310    54.83045    54.83075
  320    54.82995    54.83009
  330    54.83011    54.82946
  340    54.82907    54.82965
  350    54.82859    54.82883
  360    54.82810    54.82816
  370    54.82802    54.82778
  380    54.82748    54.82793
  390    54.82698    54.82710
  400    54.82735    54.82674
  410    54.82663    54.82635
  420    54.82605    54.82629
  430    54.82577    54.82588
  440    54.82607    54.82548
  450    54.82531    54.82580
  460    54.82502    54.82523
  470    54.82470    54.82476
  480    54.82479    54.82454
  490    54.82442    54.82485
  500    54.82407    54.82419
1 molecule converted
23 audit log messages 

3,4. Готовим pdbqt лиганда и рецептора

In [8]:
%%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 [4]:
%%bash
prepare_ligand4.py -l nag.pdb
Traceback (most recent call last):
  File "/usr/share/pyshared/AutoDockTools/Utilities24/prepare_ligand4.py", line 11, in <module>
    from AutoDockTools.MoleculePreparation import AD4LigandPreparation
  File "/usr/lib/python2.7/dist-packages/AutoDockTools/MoleculePreparation.py", line 11, in <module>
    import numpy.oldnumeric as Numeric, math 
ImportError: No module named oldnumeric

In [4]:
%%bash
prepare_receptor4.py -r model_2.pdb
Traceback (most recent call last):
  File "/usr/share/pyshared/AutoDockTools/Utilities24/prepare_receptor4.py", line 10, in <module>
    import MolKit.molecule
  File "/usr/lib/python2.7/dist-packages/MolKit/molecule.py", line 25, in <module>
    from mglutil.util import misc
  File "/usr/lib/python2.7/dist-packages/mglutil/util/misc.py", line 19, in <module>
    import numpy.oldnumeric as Numeric
ImportError: No module named oldnumeric

опять консоль...

5. Построение файла vina.cfg

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

In [5]:
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]
import pymol
from pymol import cmd
In []:
cmd.do('''
load seq.B99990002.pdb
pseudoatom mass_center, /seq.B99990002//A/TYR`79/OH or /seq.B99990002//A/ASN`63/ND2 or /seq.B99990002//A/ALA`121/O
select mass_center
print cmd.get_atom_coords('mass_center')
''')
# Насколько я понял, определяем координаты центра масс сайта связывания NAG.

[44.447669982910156, 43.00233459472656, 28.89200210571289]

In [1]:
%%bash
echo "center_x=44.4
center_y=43
center_z=28.9

size_x = 25
size_y = 25
size_z = 25

num_modes = 20 
" > vina.cfg

6. Первый докинг!

In [2]:
%%bash
date
vina --config vina.cfg --receptor model_2.pdbqt --ligand nag.pdbqt --out nag_prot.pdbqt --log nag_prot.log
date
#################################################################
# If you used AutoDock Vina in your work, please cite:          #
#                                                               #
# O. Trott, A. J. Olson,                                        #
# AutoDock Vina: improving the speed and accuracy of docking    #
# with a new scoring function, efficient optimization and       #
# multithreading, Journal of Computational Chemistry 31 (2010)  #
# 455-461                                                       #
#                                                               #
# DOI 10.1002/jcc.21334                                         #
#                                                               #
# Please see http://vina.scripps.edu for more information.      #
#################################################################

Detected 8 CPUs
Reading input ... done.
Setting up the scoring function ... done.
Analyzing the binding site ... done.
Using random seed: -1880628192
Performing search ... 
0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
done.
Refining results ... done.

mode |   affinity | dist from best mode
     | (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
   1         -5.3      0.000      0.000
   2         -5.2      2.011      2.816
   3         -5.1      2.558      4.114
   4         -5.0      2.431      4.697
   5         -4.9      5.338      7.986
   6         -4.9      2.578      5.192
   7         -4.8      2.731      5.281
   8         -4.6      4.091      5.789
   9         -4.5      3.795      5.442
  10         -4.4      4.598      7.257
  11         -4.4      2.064      5.070
  12         -4.4      5.305      8.212
  13         -4.3      1.908      5.065
  14         -4.3      2.781      4.701
  15         -4.3      6.193      8.077
  16         -4.3      2.712      4.426
  17         -4.2      1.768      3.114
  18         -4.2      1.747      2.926
  19         -4.1      7.417     10.261
  20         -4.1      2.106      3.584
Writing output ... done.

7. Смотрим результаты

Энергии трех лучших расположений:

In [3]:
#mode |   affinity | dist from best mode
#     | (kcal/mol) | rmsd l.b.| rmsd u.b.
#-----+------------+----------+----------
#   1         -5.3      0.000      0.000
#   2         -5.2      2.011      2.816
#   3         -5.1      2.558      4.114
In []:
cmd.do('''
cd cd /home/students/y12/iltarn/Term6/Practice10
set ray_trace_mode, 0; red
set ray_opaque_background, off
set antialias, .5
set light_count, 8
set ambient, 0.5
set ray_trace_color, red
set cartoon_side_chain_helper, on
''')
In [16]:
#... разделил состояния, перекрасил ...
In [5]:
from IPython.display import Image

Ниже показаны все состояния

In [6]:
Image(filename='pic1.png')
Out[6]:

8. Докинг 2.0

Проведём докинг, рассматривая подвижность некоторых боковых радикалов белка. Сначала разобьем белок на две части, подвижную и неподвижную. Для подвижной части выберем 3 аминокислоты, использованные для позиционирования лиганда - Tyr(79), Asn(63), Ala(121).

In []:
%%bash
# Запускал через Putty
python /usr/share/pyshared/AutoDockTools/Utilities24/prepare_flexreceptor4.py -r model_2.pdbqt -s TYR79_ASN63_GLU51
date
vina --config vina.cfg --receptor model_2_rigid.pdbqt --flex model_2_flex.pdbqt --ligand nag.pdbqt
date
In []:
#mode |   affinity | dist from best mode
#     | (kcal/mol) | rmsd l.b.| rmsd u.b.
#-----+------------+----------+----------
#   1         -5.4      0.000      0.000
#   2         -5.3      1.425      2.525
#   3         -5.3      1.592      3.570

9. Смотрим результаты

На этот раз на доступных для практикума мощностях докинг занял 42 сек, в прошлый раз - 7 сек.

Рисунок со всеми состояниями:

In [16]:
Image(filename='pic2.png')
Out[16]:

По сравнению с обычным докингом использование подвижных остатков дает меньшие значения геометричесой разницы в сравнении с энергетически наивыгоднейшим положением; в данном случае лучшие три значения энергии взаимодействия в обоих докингах одинаковы. Худший вариант в докинге с подвижными АК улетел куда-то не туда.

In [17]:
Image(filename='pic3.png')
Out[17]:

Выше желтым показан NAG при обычном докинге. Визуально можно заметить, что в сторону GLU(51) во втором случае NAG сталь залезать реже.

10. Выводы

Судя по всему, если знать место связывания лиганда на ферменте, а особенно если знать точно участвующие во взаимодействии остатки, то можно достаточно неплохо расположить лиганд. Все зависит только от наших знаний и, следовательно, вводимых ограничений.

Чтобы было что сравнивать, попробовал оценить энергии в случае, когда центр масс определен по NAG из известной структуры. Провел два докинга (с подвижными/неподвижными остатками).

Белок полностью неподвижен:

In []:
#mode |   affinity | dist from best mode
#     | (kcal/mol) | rmsd l.b.| rmsd u.b.
#-----+------------+----------+----------
#   1         -5.3      0.000      0.000
#   2         -5.2      2.011      2.814
#   3         -5.1      2.581      4.126

3 АК подвижны:

In []:
#     | (kcal/mol) | rmsd l.b.| rmsd u.b.
#-----+------------+----------+----------
#   1         -5.4      0.000      0.000
#   2         -5.4      1.504      3.550
#   3         -5.3      1.543      2.440

В обоих случаях результат получился чуть лучше. По сути была введена более точная информация, т.е. опять же, все зависит от наших знаний.

11. Модификация NAG, обычный докинг

12. Докинг 18+ с подвижными радикалами