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

Задание: https://kodomo.fbb.msu.ru/wiki/2016/8/MolSim/task10

  • Цель данного занятия ознакомится с возможностями докинга низкомолекулярного лиганда в структуру белка.
  • В этом занятии мы будем пользоваться пакетом Autodock Vina и oddt.

    Установим зависимости:

  • MDTraj http://mdtraj.org/1.9.3/installation.html

  • Open Drug Discovery Toolkit https://github.com/oddt/oddt

    conda install -c oddt oddt
    conda install -c conda-forge mdtraj
    conda install -c rdkit rdkit
    conda install -c conda-forge imageio
    conda install -c anaconda numpy
In [27]:
import pandas as pd
import json
import mdtraj as md
import copy
import numpy as np
from xmlrpc.client import ServerProxy


# Отображение структур
import IPython.display
import ipywidgets
from IPython.display import display, display_svg, SVG, Image

# Open Drug Discovery Toolkit
import oddt
import oddt.docking
import oddt.interactions

# Органика
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
from rdkit import Chem

import imageio
from IPython.display import display, Image
from pathlib import Path

import time
import os
import shutil
import asyncio
import numpy as np

IMAGE_FOLDER = 'assets'

Path(IMAGE_FOLDER).mkdir(parents=True, exist_ok=True)

В качестве объекта возмем 1lmp (https://www.rcsb.org/structure/1LMP).

In [28]:
u = md.load('1lmp.pdb')
pdb = u.topology
atoms_string = []

protein_end = 0  # Последний атом белка
ligand_end = 0  # последний атом лиганда

for i, r in enumerate(pdb.atoms):
    if 'NDG' in str(r):
        ligand_end = i
    if 'VAL' in str(r):
        protein_end = i
    atoms_string.append(str(i,) + ' (' + str(r) + ')')

', '.join(atoms_string)
Out[28]:
'0 (LYS1-N), 1 (LYS1-CA), 2 (LYS1-C), 3 (LYS1-O), 4 (LYS1-CB), 5 (LYS1-CG), 6 (LYS1-CD), 7 (LYS1-CE), 8 (LYS1-NZ), 9 (VAL2-N), 10 (VAL2-CA), 11 (VAL2-C), 12 (VAL2-O), 13 (VAL2-CB), 14 (VAL2-CG1), 15 (VAL2-CG2), 16 (TYR3-N), 17 (TYR3-CA), 18 (TYR3-C), 19 (TYR3-O), 20 (TYR3-CB), 21 (TYR3-CG), 22 (TYR3-CD1), 23 (TYR3-CD2), 24 (TYR3-CE1), 25 (TYR3-CE2), 26 (TYR3-CZ), 27 (TYR3-OH), 28 (ASP4-N), 29 (ASP4-CA), 30 (ASP4-C), 31 (ASP4-O), 32 (ASP4-CB), 33 (ASP4-CG), 34 (ASP4-OD1), 35 (ASP4-OD2), 36 (ARG5-N), 37 (ARG5-CA), 38 (ARG5-C), 39 (ARG5-O), 40 (ARG5-CB), 41 (ARG5-CG), 42 (ARG5-CD), 43 (ARG5-NE), 44 (ARG5-CZ), 45 (ARG5-NH1), 46 (ARG5-NH2), 47 (CYS6-N), 48 (CYS6-CA), 49 (CYS6-C), 50 (CYS6-O), 51 (CYS6-CB), 52 (CYS6-SG), 53 (GLU7-N), 54 (GLU7-CA), 55 (GLU7-C), 56 (GLU7-O), 57 (GLU7-CB), 58 (GLU7-CG), 59 (GLU7-CD), 60 (GLU7-OE1), 61 (GLU7-OE2), 62 (LEU8-N), 63 (LEU8-CA), 64 (LEU8-C), 65 (LEU8-O), 66 (LEU8-CB), 67 (LEU8-CG), 68 (LEU8-CD1), 69 (LEU8-CD2), 70 (ALA9-N), 71 (ALA9-CA), 72 (ALA9-C), 73 (ALA9-O), 74 (ALA9-CB), 75 (ARG10-N), 76 (ARG10-CA), 77 (ARG10-C), 78 (ARG10-O), 79 (ARG10-CB), 80 (ARG10-CG), 81 (ARG10-CD), 82 (ARG10-NE), 83 (ARG10-CZ), 84 (ARG10-NH1), 85 (ARG10-NH2), 86 (ALA11-N), 87 (ALA11-CA), 88 (ALA11-C), 89 (ALA11-O), 90 (ALA11-CB), 91 (LEU12-N), 92 (LEU12-CA), 93 (LEU12-C), 94 (LEU12-O), 95 (LEU12-CB), 96 (LEU12-CG), 97 (LEU12-CD1), 98 (LEU12-CD2), 99 (LYS13-N), 100 (LYS13-CA), 101 (LYS13-C), 102 (LYS13-O), 103 (LYS13-CB), 104 (LYS13-CG), 105 (LYS13-CD), 106 (LYS13-CE), 107 (LYS13-NZ), 108 (ALA14-N), 109 (ALA14-CA), 110 (ALA14-C), 111 (ALA14-O), 112 (ALA14-CB), 113 (SER15-N), 114 (SER15-CA), 115 (SER15-C), 116 (SER15-O), 117 (SER15-CB), 118 (SER15-OG), 119 (GLY16-N), 120 (GLY16-CA), 121 (GLY16-C), 122 (GLY16-O), 123 (MET17-N), 124 (MET17-CA), 125 (MET17-C), 126 (MET17-O), 127 (MET17-CB), 128 (MET17-CG), 129 (MET17-SD), 130 (MET17-CE), 131 (ASP18-N), 132 (ASP18-CA), 133 (ASP18-C), 134 (ASP18-O), 135 (ASP18-CB), 136 (ASP18-CG), 137 (ASP18-OD1), 138 (ASP18-OD2), 139 (GLY19-N), 140 (GLY19-CA), 141 (GLY19-C), 142 (GLY19-O), 143 (TYR20-N), 144 (TYR20-CA), 145 (TYR20-C), 146 (TYR20-O), 147 (TYR20-CB), 148 (TYR20-CG), 149 (TYR20-CD1), 150 (TYR20-CD2), 151 (TYR20-CE1), 152 (TYR20-CE2), 153 (TYR20-CZ), 154 (TYR20-OH), 155 (ALA21-N), 156 (ALA21-CA), 157 (ALA21-C), 158 (ALA21-O), 159 (ALA21-CB), 160 (GLY22-N), 161 (GLY22-CA), 162 (GLY22-C), 163 (GLY22-O), 164 (ASN23-N), 165 (ASN23-CA), 166 (ASN23-C), 167 (ASN23-O), 168 (ASN23-CB), 169 (ASN23-CG), 170 (ASN23-OD1), 171 (ASN23-ND2), 172 (SER24-N), 173 (SER24-CA), 174 (SER24-C), 175 (SER24-O), 176 (SER24-CB), 177 (SER24-OG), 178 (LEU25-N), 179 (LEU25-CA), 180 (LEU25-C), 181 (LEU25-O), 182 (LEU25-CB), 183 (LEU25-CG), 184 (LEU25-CD1), 185 (LEU25-CD2), 186 (PRO26-N), 187 (PRO26-CA), 188 (PRO26-C), 189 (PRO26-O), 190 (PRO26-CB), 191 (PRO26-CG), 192 (PRO26-CD), 193 (ASN27-N), 194 (ASN27-CA), 195 (ASN27-C), 196 (ASN27-O), 197 (ASN27-CB), 198 (ASN27-CG), 199 (ASN27-OD1), 200 (ASN27-ND2), 201 (TRP28-N), 202 (TRP28-CA), 203 (TRP28-C), 204 (TRP28-O), 205 (TRP28-CB), 206 (TRP28-CG), 207 (TRP28-CD1), 208 (TRP28-CD2), 209 (TRP28-NE1), 210 (TRP28-CE2), 211 (TRP28-CE3), 212 (TRP28-CZ2), 213 (TRP28-CZ3), 214 (TRP28-CH2), 215 (VAL29-N), 216 (VAL29-CA), 217 (VAL29-C), 218 (VAL29-O), 219 (VAL29-CB), 220 (VAL29-CG1), 221 (VAL29-CG2), 222 (CYS30-N), 223 (CYS30-CA), 224 (CYS30-C), 225 (CYS30-O), 226 (CYS30-CB), 227 (CYS30-SG), 228 (LEU31-N), 229 (LEU31-CA), 230 (LEU31-C), 231 (LEU31-O), 232 (LEU31-CB), 233 (LEU31-CG), 234 (LEU31-CD1), 235 (LEU31-CD2), 236 (SER32-N), 237 (SER32-CA), 238 (SER32-C), 239 (SER32-O), 240 (SER32-CB), 241 (SER32-OG), 242 (LYS33-N), 243 (LYS33-CA), 244 (LYS33-C), 245 (LYS33-O), 246 (LYS33-CB), 247 (LYS33-CG), 248 (LYS33-CD), 249 (LYS33-CE), 250 (LYS33-NZ), 251 (TRP34-N), 252 (TRP34-CA), 253 (TRP34-C), 254 (TRP34-O), 255 (TRP34-CB), 256 (TRP34-CG), 257 (TRP34-CD1), 258 (TRP34-CD2), 259 (TRP34-NE1), 260 (TRP34-CE2), 261 (TRP34-CE3), 262 (TRP34-CZ2), 263 (TRP34-CZ3), 264 (TRP34-CH2), 265 (GLU35-N), 266 (GLU35-CA), 267 (GLU35-C), 268 (GLU35-O), 269 (GLU35-CB), 270 (GLU35-CG), 271 (GLU35-CD), 272 (GLU35-OE1), 273 (GLU35-OE2), 274 (SER36-N), 275 (SER36-CA), 276 (SER36-C), 277 (SER36-O), 278 (SER36-CB), 279 (SER36-OG), 280 (SER37-N), 281 (SER37-CA), 282 (SER37-C), 283 (SER37-O), 284 (SER37-CB), 285 (SER37-OG), 286 (TYR38-N), 287 (TYR38-CA), 288 (TYR38-C), 289 (TYR38-O), 290 (TYR38-CB), 291 (TYR38-CG), 292 (TYR38-CD1), 293 (TYR38-CD2), 294 (TYR38-CE1), 295 (TYR38-CE2), 296 (TYR38-CZ), 297 (TYR38-OH), 298 (ASN39-N), 299 (ASN39-CA), 300 (ASN39-C), 301 (ASN39-O), 302 (ASN39-CB), 303 (ASN39-CG), 304 (ASN39-OD1), 305 (ASN39-ND2), 306 (THR40-N), 307 (THR40-CA), 308 (THR40-C), 309 (THR40-O), 310 (THR40-CB), 311 (THR40-OG1), 312 (THR40-CG2), 313 (GLN41-N), 314 (GLN41-CA), 315 (GLN41-C), 316 (GLN41-O), 317 (GLN41-CB), 318 (GLN41-CG), 319 (GLN41-CD), 320 (GLN41-OE1), 321 (GLN41-NE2), 322 (ALA42-N), 323 (ALA42-CA), 324 (ALA42-C), 325 (ALA42-O), 326 (ALA42-CB), 327 (THR43-N), 328 (THR43-CA), 329 (THR43-C), 330 (THR43-O), 331 (THR43-CB), 332 (THR43-OG1), 333 (THR43-CG2), 334 (ASN44-N), 335 (ASN44-CA), 336 (ASN44-C), 337 (ASN44-O), 338 (ASN44-CB), 339 (ASN44-CG), 340 (ASN44-OD1), 341 (ASN44-ND2), 342 (ARG45-N), 343 (ARG45-CA), 344 (ARG45-C), 345 (ARG45-O), 346 (ARG45-CB), 347 (ARG45-CG), 348 (ARG45-CD), 349 (ARG45-NE), 350 (ARG45-CZ), 351 (ARG45-NH1), 352 (ARG45-NH2), 353 (ASN46-N), 354 (ASN46-CA), 355 (ASN46-C), 356 (ASN46-O), 357 (ASN46-CB), 358 (ASN46-CG), 359 (ASN46-OD1), 360 (ASN46-ND2), 361 (THR47-N), 362 (THR47-CA), 363 (THR47-C), 364 (THR47-O), 365 (THR47-CB), 366 (THR47-OG1), 367 (THR47-CG2), 368 (ASP48-N), 369 (ASP48-CA), 370 (ASP48-C), 371 (ASP48-O), 372 (ASP48-CB), 373 (ASP48-CG), 374 (ASP48-OD1), 375 (ASP48-OD2), 376 (GLY49-N), 377 (GLY49-CA), 378 (GLY49-C), 379 (GLY49-O), 380 (SER50-N), 381 (SER50-CA), 382 (SER50-C), 383 (SER50-O), 384 (SER50-CB), 385 (SER50-OG), 386 (THR51-N), 387 (THR51-CA), 388 (THR51-C), 389 (THR51-O), 390 (THR51-CB), 391 (THR51-OG1), 392 (THR51-CG2), 393 (ASP52-N), 394 (ASP52-CA), 395 (ASP52-C), 396 (ASP52-O), 397 (ASP52-CB), 398 (ASP52-CG), 399 (ASP52-OD1), 400 (ASP52-OD2), 401 (TYR53-N), 402 (TYR53-CA), 403 (TYR53-C), 404 (TYR53-O), 405 (TYR53-CB), 406 (TYR53-CG), 407 (TYR53-CD1), 408 (TYR53-CD2), 409 (TYR53-CE1), 410 (TYR53-CE2), 411 (TYR53-CZ), 412 (TYR53-OH), 413 (GLY54-N), 414 (GLY54-CA), 415 (GLY54-C), 416 (GLY54-O), 417 (ILE55-N), 418 (ILE55-CA), 419 (ILE55-C), 420 (ILE55-O), 421 (ILE55-CB), 422 (ILE55-CG1), 423 (ILE55-CG2), 424 (ILE55-CD1), 425 (PHE56-N), 426 (PHE56-CA), 427 (PHE56-C), 428 (PHE56-O), 429 (PHE56-CB), 430 (PHE56-CG), 431 (PHE56-CD1), 432 (PHE56-CD2), 433 (PHE56-CE1), 434 (PHE56-CE2), 435 (PHE56-CZ), 436 (GLN57-N), 437 (GLN57-CA), 438 (GLN57-C), 439 (GLN57-O), 440 (GLN57-CB), 441 (GLN57-CG), 442 (GLN57-CD), 443 (GLN57-OE1), 444 (GLN57-NE2), 445 (ILE58-N), 446 (ILE58-CA), 447 (ILE58-C), 448 (ILE58-O), 449 (ILE58-CB), 450 (ILE58-CG1), 451 (ILE58-CG2), 452 (ILE58-CD1), 453 (ASN59-N), 454 (ASN59-CA), 455 (ASN59-C), 456 (ASN59-O), 457 (ASN59-CB), 458 (ASN59-CG), 459 (ASN59-OD1), 460 (ASN59-ND2), 461 (SER60-N), 462 (SER60-CA), 463 (SER60-C), 464 (SER60-O), 465 (SER60-CB), 466 (SER60-OG), 467 (ARG61-N), 468 (ARG61-CA), 469 (ARG61-C), 470 (ARG61-O), 471 (ARG61-CB), 472 (ARG61-CG), 473 (ARG61-CD), 474 (ARG61-NE), 475 (ARG61-CZ), 476 (ARG61-NH1), 477 (ARG61-NH2), 478 (TYR62-N), 479 (TYR62-CA), 480 (TYR62-C), 481 (TYR62-O), 482 (TYR62-CB), 483 (TYR62-CG), 484 (TYR62-CD1), 485 (TYR62-CD2), 486 (TYR62-CE1), 487 (TYR62-CE2), 488 (TYR62-CZ), 489 (TYR62-OH), 490 (TRP63-N), 491 (TRP63-CA), 492 (TRP63-C), 493 (TRP63-O), 494 (TRP63-CB), 495 (TRP63-CG), 496 (TRP63-CD1), 497 (TRP63-CD2), 498 (TRP63-NE1), 499 (TRP63-CE2), 500 (TRP63-CE3), 501 (TRP63-CZ2), 502 (TRP63-CZ3), 503 (TRP63-CH2), 504 (CYS64-N), 505 (CYS64-CA), 506 (CYS64-C), 507 (CYS64-O), 508 (CYS64-CB), 509 (CYS64-SG), 510 (ASP65-N), 511 (ASP65-CA), 512 (ASP65-C), 513 (ASP65-O), 514 (ASP65-CB), 515 (ASP65-CG), 516 (ASP65-OD1), 517 (ASP65-OD2), 518 (ASP66-N), 519 (ASP66-CA), 520 (ASP66-C), 521 (ASP66-O), 522 (ASP66-CB), 523 (ASP66-CG), 524 (ASP66-OD1), 525 (ASP66-OD2), 526 (GLY67-N), 527 (GLY67-CA), 528 (GLY67-C), 529 (GLY67-O), 530 (ARG68-N), 531 (ARG68-CA), 532 (ARG68-C), 533 (ARG68-O), 534 (ARG68-CB), 535 (ARG68-CG), 536 (ARG68-CD), 537 (ARG68-NE), 538 (ARG68-CZ), 539 (ARG68-NH1), 540 (ARG68-NH2), 541 (THR69-N), 542 (THR69-CA), 543 (THR69-C), 544 (THR69-O), 545 (THR69-CB), 546 (THR69-OG1), 547 (THR69-CG2), 548 (PRO70-N), 549 (PRO70-CA), 550 (PRO70-C), 551 (PRO70-O), 552 (PRO70-CB), 553 (PRO70-CG), 554 (PRO70-CD), 555 (GLY71-N), 556 (GLY71-CA), 557 (GLY71-C), 558 (GLY71-O), 559 (ALA72-N), 560 (ALA72-CA), 561 (ALA72-C), 562 (ALA72-O), 563 (ALA72-CB), 564 (LYS73-N), 565 (LYS73-CA), 566 (LYS73-C), 567 (LYS73-O), 568 (LYS73-CB), 569 (LYS73-CG), 570 (LYS73-CD), 571 (LYS73-CE), 572 (LYS73-NZ), 573 (ASN74-N), 574 (ASN74-CA), 575 (ASN74-C), 576 (ASN74-O), 577 (ASN74-CB), 578 (ASN74-CG), 579 (ASN74-OD1), 580 (ASN74-ND2), 581 (VAL75-N), 582 (VAL75-CA), 583 (VAL75-C), 584 (VAL75-O), 585 (VAL75-CB), 586 (VAL75-CG1), 587 (VAL75-CG2), 588 (CYS76-N), 589 (CYS76-CA), 590 (CYS76-C), 591 (CYS76-O), 592 (CYS76-CB), 593 (CYS76-SG), 594 (GLY77-N), 595 (GLY77-CA), 596 (GLY77-C), 597 (GLY77-O), 598 (ILE78-N), 599 (ILE78-CA), 600 (ILE78-C), 601 (ILE78-O), 602 (ILE78-CB), 603 (ILE78-CG1), 604 (ILE78-CG2), 605 (ILE78-CD1), 606 (ARG79-N), 607 (ARG79-CA), 608 (ARG79-C), 609 (ARG79-O), 610 (ARG79-CB), 611 (ARG79-CG), 612 (ARG79-CD), 613 (ARG79-NE), 614 (ARG79-CZ), 615 (ARG79-NH1), 616 (ARG79-NH2), 617 (CYS80-N), 618 (CYS80-CA), 619 (CYS80-C), 620 (CYS80-O), 621 (CYS80-CB), 622 (CYS80-SG), 623 (SER81-N), 624 (SER81-CA), 625 (SER81-C), 626 (SER81-O), 627 (SER81-CB), 628 (SER81-OG), 629 (GLN82-N), 630 (GLN82-CA), 631 (GLN82-C), 632 (GLN82-O), 633 (GLN82-CB), 634 (GLN82-CG), 635 (GLN82-CD), 636 (GLN82-OE1), 637 (GLN82-NE2), 638 (LEU83-N), 639 (LEU83-CA), 640 (LEU83-C), 641 (LEU83-O), 642 (LEU83-CB), 643 (LEU83-CG), 644 (LEU83-CD1), 645 (LEU83-CD2), 646 (LEU84-N), 647 (LEU84-CA), 648 (LEU84-C), 649 (LEU84-O), 650 (LEU84-CB), 651 (LEU84-CG), 652 (LEU84-CD1), 653 (LEU84-CD2), 654 (THR85-N), 655 (THR85-CA), 656 (THR85-C), 657 (THR85-O), 658 (THR85-CB), 659 (THR85-OG1), 660 (THR85-CG2), 661 (ASP86-N), 662 (ASP86-CA), 663 (ASP86-C), 664 (ASP86-O), 665 (ASP86-CB), 666 (ASP86-CG), 667 (ASP86-OD1), 668 (ASP86-OD2), 669 (ASP87-N), 670 (ASP87-CA), 671 (ASP87-C), 672 (ASP87-O), 673 (ASP87-CB), 674 (ASP87-CG), 675 (ASP87-OD1), 676 (ASP87-OD2), 677 (LEU88-N), 678 (LEU88-CA), 679 (LEU88-C), 680 (LEU88-O), 681 (LEU88-CB), 682 (LEU88-CG), 683 (LEU88-CD1), 684 (LEU88-CD2), 685 (THR89-N), 686 (THR89-CA), 687 (THR89-C), 688 (THR89-O), 689 (THR89-CB), 690 (THR89-OG1), 691 (THR89-CG2), 692 (VAL90-N), 693 (VAL90-CA), 694 (VAL90-C), 695 (VAL90-O), 696 (VAL90-CB), 697 (VAL90-CG1), 698 (VAL90-CG2), 699 (ALA91-N), 700 (ALA91-CA), 701 (ALA91-C), 702 (ALA91-O), 703 (ALA91-CB), 704 (ILE92-N), 705 (ILE92-CA), 706 (ILE92-C), 707 (ILE92-O), 708 (ILE92-CB), 709 (ILE92-CG1), 710 (ILE92-CG2), 711 (ILE92-CD1), 712 (ARG93-N), 713 (ARG93-CA), 714 (ARG93-C), 715 (ARG93-O), 716 (ARG93-CB), 717 (ARG93-CG), 718 (ARG93-CD), 719 (ARG93-NE), 720 (ARG93-CZ), 721 (ARG93-NH1), 722 (ARG93-NH2), 723 (CYS94-N), 724 (CYS94-CA), 725 (CYS94-C), 726 (CYS94-O), 727 (CYS94-CB), 728 (CYS94-SG), 729 (ALA95-N), 730 (ALA95-CA), 731 (ALA95-C), 732 (ALA95-O), 733 (ALA95-CB), 734 (LYS96-N), 735 (LYS96-CA), 736 (LYS96-C), 737 (LYS96-O), 738 (LYS96-CB), 739 (LYS96-CG), 740 (LYS96-CD), 741 (LYS96-CE), 742 (LYS96-NZ), 743 (ARG97-N), 744 (ARG97-CA), 745 (ARG97-C), 746 (ARG97-O), 747 (ARG97-CB), 748 (ARG97-CG), 749 (ARG97-CD), 750 (ARG97-NE), 751 (ARG97-CZ), 752 (ARG97-NH1), 753 (ARG97-NH2), 754 (VAL98-N), 755 (VAL98-CA), 756 (VAL98-C), 757 (VAL98-O), 758 (VAL98-CB), 759 (VAL98-CG1), 760 (VAL98-CG2), 761 (VAL99-N), 762 (VAL99-CA), 763 (VAL99-C), 764 (VAL99-O), 765 (VAL99-CB), 766 (VAL99-CG1), 767 (VAL99-CG2), 768 (LEU100-N), 769 (LEU100-CA), 770 (LEU100-C), 771 (LEU100-O), 772 (LEU100-CB), 773 (LEU100-CG), 774 (LEU100-CD1), 775 (LEU100-CD2), 776 (ASP101-N), 777 (ASP101-CA), 778 (ASP101-C), 779 (ASP101-O), 780 (ASP101-CB), 781 (ASP101-CG), 782 (ASP101-OD1), 783 (ASP101-OD2), 784 (PRO102-N), 785 (PRO102-CA), 786 (PRO102-C), 787 (PRO102-O), 788 (PRO102-CB), 789 (PRO102-CG), 790 (PRO102-CD), 791 (ASN103-N), 792 (ASN103-CA), 793 (ASN103-C), 794 (ASN103-O), 795 (ASN103-CB), 796 (ASN103-CG), 797 (ASN103-OD1), 798 (ASN103-ND2), 799 (GLY104-N), 800 (GLY104-CA), 801 (GLY104-C), 802 (GLY104-O), 803 (ILE105-N), 804 (ILE105-CA), 805 (ILE105-C), 806 (ILE105-O), 807 (ILE105-CB), 808 (ILE105-CG1), 809 (ILE105-CG2), 810 (ILE105-CD1), 811 (GLY106-N), 812 (GLY106-CA), 813 (GLY106-C), 814 (GLY106-O), 815 (ALA107-N), 816 (ALA107-CA), 817 (ALA107-C), 818 (ALA107-O), 819 (ALA107-CB), 820 (TRP108-N), 821 (TRP108-CA), 822 (TRP108-C), 823 (TRP108-O), 824 (TRP108-CB), 825 (TRP108-CG), 826 (TRP108-CD1), 827 (TRP108-CD2), 828 (TRP108-NE1), 829 (TRP108-CE2), 830 (TRP108-CE3), 831 (TRP108-CZ2), 832 (TRP108-CZ3), 833 (TRP108-CH2), 834 (VAL109-N), 835 (VAL109-CA), 836 (VAL109-C), 837 (VAL109-O), 838 (VAL109-CB), 839 (VAL109-CG1), 840 (VAL109-CG2), 841 (ALA110-N), 842 (ALA110-CA), 843 (ALA110-C), 844 (ALA110-O), 845 (ALA110-CB), 846 (TRP111-N), 847 (TRP111-CA), 848 (TRP111-C), 849 (TRP111-O), 850 (TRP111-CB), 851 (TRP111-CG), 852 (TRP111-CD1), 853 (TRP111-CD2), 854 (TRP111-NE1), 855 (TRP111-CE2), 856 (TRP111-CE3), 857 (TRP111-CZ2), 858 (TRP111-CZ3), 859 (TRP111-CH2), 860 (ARG112-N), 861 (ARG112-CA), 862 (ARG112-C), 863 (ARG112-O), 864 (ARG112-CB), 865 (ARG112-CG), 866 (ARG112-CD), 867 (ARG112-NE), 868 (ARG112-CZ), 869 (ARG112-NH1), 870 (ARG112-NH2), 871 (LEU113-N), 872 (LEU113-CA), 873 (LEU113-C), 874 (LEU113-O), 875 (LEU113-CB), 876 (LEU113-CG), 877 (LEU113-CD1), 878 (LEU113-CD2), 879 (HIS114-N), 880 (HIS114-CA), 881 (HIS114-C), 882 (HIS114-O), 883 (HIS114-CB), 884 (HIS114-CG), 885 (HIS114-ND1), 886 (HIS114-CD2), 887 (HIS114-CE1), 888 (HIS114-NE2), 889 (CYS115-N), 890 (CYS115-CA), 891 (CYS115-C), 892 (CYS115-O), 893 (CYS115-CB), 894 (CYS115-SG), 895 (GLN116-N), 896 (GLN116-CA), 897 (GLN116-C), 898 (GLN116-O), 899 (GLN116-CB), 900 (GLN116-CG), 901 (GLN116-CD), 902 (GLN116-OE1), 903 (GLN116-NE2), 904 (ASN117-N), 905 (ASN117-CA), 906 (ASN117-C), 907 (ASN117-O), 908 (ASN117-CB), 909 (ASN117-CG), 910 (ASN117-OD1), 911 (ASN117-ND2), 912 (GLN118-N), 913 (GLN118-CA), 914 (GLN118-C), 915 (GLN118-O), 916 (GLN118-CB), 917 (GLN118-CG), 918 (GLN118-CD), 919 (GLN118-OE1), 920 (GLN118-NE2), 921 (ASP119-N), 922 (ASP119-CA), 923 (ASP119-C), 924 (ASP119-O), 925 (ASP119-CB), 926 (ASP119-CG), 927 (ASP119-OD1), 928 (ASP119-OD2), 929 (LEU120-N), 930 (LEU120-CA), 931 (LEU120-C), 932 (LEU120-O), 933 (LEU120-CB), 934 (LEU120-CG), 935 (LEU120-CD1), 936 (LEU120-CD2), 937 (ARG121-N), 938 (ARG121-CA), 939 (ARG121-C), 940 (ARG121-O), 941 (ARG121-CB), 942 (ARG121-CG), 943 (ARG121-CD), 944 (ARG121-NE), 945 (ARG121-CZ), 946 (ARG121-NH1), 947 (ARG121-NH2), 948 (SER122-N), 949 (SER122-CA), 950 (SER122-C), 951 (SER122-O), 952 (SER122-CB), 953 (SER122-OG), 954 (TYR123-N), 955 (TYR123-CA), 956 (TYR123-C), 957 (TYR123-O), 958 (TYR123-CB), 959 (TYR123-CG), 960 (TYR123-CD1), 961 (TYR123-CD2), 962 (TYR123-CE1), 963 (TYR123-CE2), 964 (TYR123-CZ), 965 (TYR123-OH), 966 (VAL124-N), 967 (VAL124-CA), 968 (VAL124-C), 969 (VAL124-O), 970 (VAL124-CB), 971 (VAL124-CG1), 972 (VAL124-CG2), 973 (ALA125-N), 974 (ALA125-CA), 975 (ALA125-C), 976 (ALA125-O), 977 (ALA125-CB), 978 (GLY126-N), 979 (GLY126-CA), 980 (GLY126-C), 981 (GLY126-O), 982 (CYS127-N), 983 (CYS127-CA), 984 (CYS127-C), 985 (CYS127-O), 986 (CYS127-CB), 987 (CYS127-SG), 988 (GLY128-N), 989 (GLY128-CA), 990 (GLY128-C), 991 (GLY128-O), 992 (VAL129-N), 993 (VAL129-CA), 994 (VAL129-C), 995 (VAL129-O), 996 (VAL129-CB), 997 (VAL129-CG1), 998 (VAL129-CG2), 999 (NAG130-C1), 1000 (NAG130-C2), 1001 (NAG130-C3), 1002 (NAG130-C4), 1003 (NAG130-C5), 1004 (NAG130-C6), 1005 (NAG130-C7), 1006 (NAG130-C8), 1007 (NAG130-N2), 1008 (NAG130-O3), 1009 (NAG130-O4), 1010 (NAG130-O5), 1011 (NAG130-O6), 1012 (NAG130-O7), 1013 (NAG131-C1), 1014 (NAG131-C2), 1015 (NAG131-C3), 1016 (NAG131-C4), 1017 (NAG131-C5), 1018 (NAG131-C6), 1019 (NAG131-C7), 1020 (NAG131-C8), 1021 (NAG131-N2), 1022 (NAG131-O3), 1023 (NAG131-O4), 1024 (NAG131-O5), 1025 (NAG131-O6), 1026 (NAG131-O7), 1027 (NDG132-C1), 1028 (NDG132-C2), 1029 (NDG132-C3), 1030 (NDG132-C4), 1031 (NDG132-C5), 1032 (NDG132-C6), 1033 (NDG132-C7), 1034 (NDG132-C8), 1035 (NDG132-O), 1036 (NDG132-O3), 1037 (NDG132-O4), 1038 (NDG132-O6), 1039 (NDG132-O7), 1040 (NDG132-N2), 1041 (NDG132-O1L), 1042 (HOH133-O), 1043 (HOH134-O), 1044 (HOH135-O), 1045 (HOH136-O), 1046 (HOH137-O), 1047 (HOH138-O), 1048 (HOH139-O), 1049 (HOH140-O), 1050 (HOH141-O), 1051 (HOH142-O), 1052 (HOH143-O), 1053 (HOH144-O), 1054 (HOH145-O), 1055 (HOH146-O), 1056 (HOH147-O), 1057 (HOH148-O), 1058 (HOH149-O), 1059 (HOH150-O), 1060 (HOH151-O), 1061 (HOH152-O), 1062 (HOH153-O), 1063 (HOH154-O), 1064 (HOH155-O), 1065 (HOH156-O), 1066 (HOH157-O), 1067 (HOH158-O), 1068 (HOH159-O), 1069 (HOH160-O), 1070 (HOH161-O), 1071 (HOH162-O), 1072 (HOH163-O), 1073 (HOH164-O), 1074 (HOH165-O), 1075 (HOH166-O), 1076 (HOH167-O), 1077 (HOH168-O), 1078 (HOH169-O), 1079 (HOH170-O), 1080 (HOH171-O), 1081 (HOH172-O), 1082 (HOH173-O), 1083 (HOH174-O), 1084 (HOH175-O), 1085 (HOH176-O), 1086 (HOH177-O), 1087 (HOH178-O), 1088 (HOH179-O), 1089 (HOH180-O), 1090 (HOH181-O), 1091 (HOH182-O), 1092 (HOH183-O), 1093 (HOH184-O), 1094 (HOH185-O), 1095 (HOH186-O), 1096 (HOH187-O), 1097 (HOH188-O), 1098 (HOH189-O), 1099 (HOH190-O), 1100 (HOH191-O), 1101 (HOH192-O), 1102 (HOH193-O), 1103 (HOH194-O), 1104 (HOH195-O), 1105 (HOH196-O), 1106 (HOH197-O), 1107 (HOH198-O), 1108 (HOH199-O), 1109 (HOH200-O), 1110 (HOH201-O), 1111 (HOH202-O), 1112 (HOH203-O), 1113 (HOH204-O), 1114 (HOH205-O), 1115 (HOH206-O), 1116 (HOH207-O), 1117 (HOH208-O), 1118 (HOH209-O), 1119 (HOH210-O), 1120 (HOH211-O), 1121 (HOH212-O), 1122 (HOH213-O), 1123 (HOH214-O), 1124 (HOH215-O), 1125 (HOH216-O), 1126 (HOH217-O), 1127 (HOH218-O), 1128 (HOH219-O), 1129 (HOH220-O), 1130 (HOH221-O), 1131 (HOH222-O), 1132 (HOH223-O), 1133 (HOH224-O), 1134 (HOH225-O), 1135 (HOH226-O), 1136 (HOH227-O), 1137 (HOH228-O), 1138 (HOH229-O), 1139 (HOH230-O), 1140 (HOH231-O), 1141 (HOH232-O), 1142 (HOH233-O), 1143 (HOH234-O), 1144 (HOH235-O), 1145 (HOH236-O), 1146 (HOH237-O), 1147 (HOH238-O), 1148 (HOH239-O), 1149 (HOH240-O), 1150 (HOH241-O), 1151 (HOH242-O), 1152 (HOH243-O), 1153 (HOH244-O), 1154 (HOH245-O), 1155 (HOH246-O), 1156 (HOH247-O), 1157 (HOH248-O), 1158 (HOH249-O)'

Индексы + название последних атомов белка и лиганда.

In [29]:
{'protein': atoms_string[protein_end], 'ligand': atoms_string[ligand_end]}
Out[29]:
{'protein': '998 (VAL129-CG2)', 'ligand': '1041 (NDG132-O1L)'}

Сохраним белок без лиганда.

In [30]:
u2 = u.atom_slice(range(protein_end + 1))
u2.save_pdb('1lmp_without_ligand.pdb', force_overwrite=True)
In [31]:
# нахождение геометрического центра лиганда
lig = u.atom_slice(range(protein_end + 1, ligand_end))
lig_center = np.mean(lig.xyz, axis=1) * 10
lig_center = lig_center.reshape(3,)

lig.save_pdb('lig.pdb', force_overwrite=True)

lig_center
Out[31]:
array([42.47738 , 44.080673, 28.298256], dtype=float32)
In [32]:
(np.max(lig.xyz, axis=1) - np.min(lig.xyz, axis=1)) * 10
Out[32]:
array([[13.536   ,  9.515999, 10.207   ]], dtype=float32)

Подготовка белка для докинга

In [33]:
prot = next(oddt.toolkits.rdk.readfile('pdb', '1lmp_without_ligand.pdb'))
print('is the first mol in 1lmp a protein?', prot.protein,
      ':) and MW of this mol is:', prot.molwt)
is the first mol in 1lmp a protein? False :) and MW of this mol is: 14263.108999999964

Хм, наш белок - не белок. Окей...

Лиганды для докинга

In [34]:
smiles = [
    "CC(=O)NC1C(O)OC(CO)C(O)C1O",  # Common NAG
    "OC(=O)NC1C(O)OC(CO)C(O)C1O",  # OH
    "[NH3+]C(=O)NC1C(O)OC(CO)C(O)C1O",  # NH3+
    "C(=O)NC1C(O)OC(CO)C(O)C1O",  # H
    "C=1(C=CC=CC1)C(=O)NC1C(O)OC(CO)C(O)C1O",  # Ph
    "C(C([O-])=O)(=O)NC1C(O)OC(CO)C(O)C1O"  # COO-
]

mols = []
images = []

for s in smiles:
    m = oddt.toolkits.rdk.readstring('smi', s)
    m.make3D(forcefield='mmff94', steps=150)

    mols.append(m)
    print(Chem.rdMolDescriptors.CalcMolFormula(m.Mol))
    images.append((SVG(copy.deepcopy(m).write('svg'))))

display_svg(images[0])
C8H15NO6
C7H13NO7
C7H15N2O6+
C7H13NO6
C13H17NO6
C8H12NO8-
O N H HO O OH OH OH

Докинг

Установим autodock_vina (OS X)

 cd ~
 wget http://vina.scripps.edu/download/autodock_vina_1_1_2_mac_64bit.tar.gz
 tar xvzf autodock_vina_1_1_2_mac_64bit.tar.gz
 sudo ln -s ~/autodock_vina_1_1_2_mac_catalina_64bit/bin/vina /usr/local/bin/vina
 vina --version
 AutoDock Vina 1.1.2 (May 11, 2011)
In [35]:
dock_obj = oddt.docking.AutodockVina.autodock_vina(
    protein=prot,
    size=(20, 20, 20),
    center=lig_center,
    executable='vina',
    autocleanup=True,
    num_modes=9,
    prefix_dir='.'
)

print(dock_obj.tmp_dir)
print(json.dumps(dock_obj.params, indent=4))
./autodock_vina_g3u75dki
[
    "--center_x",
    "42.47738",
    "--center_y",
    "44.080673",
    "--center_z",
    "28.298256",
    "--size_x",
    "20",
    "--size_y",
    "20",
    "--size_z",
    "20",
    "--exhaustiveness",
    "8",
    "--num_modes",
    "9",
    "--energy_range",
    "3"
]
  • center_x (y,z): геометрический центр лиганда
  • size_x (y,z): размер области, в которой будет производиться поиск
  • cpu: сколько процессоров будет использоваться для выполнения нашей задачи
  • exhaustiveness: параметр, который говорит программе, насколько тщательно производить поиск
  • num_modes: количество конформаций лиганда в активном центре, которые будут найдены программой
  • energy_range: максимальная разница по энергии между лучшей и худшей конформацией из найденных

Результаты докинга

In [36]:
res = dock_obj.dock(mols, prot)

for i, r in enumerate(res):
    print("%4d%10s%8s%8s%8s" % (
        i,
        Chem.rdMolDescriptors.CalcMolFormula(r.Mol),
        r.data['vina_affinity'],
        r.data['vina_rmsd_ub'],
        r.residues[0].name
    ))
0  C8H15NO6    -5.2   0.000     UNL
   1  C8H15NO6    -5.1   2.580     UNL
   2  C8H15NO6    -4.9   4.074     UNL
   3  C8H15NO6    -4.8   5.263     UNL
   4  C8H15NO6    -4.8   4.624     UNL
   5  C8H15NO6    -4.8   5.428     UNL
   6  C8H15NO6    -4.5   4.943     UNL
   7  C8H15NO6    -4.4   6.374     UNL
   8  C8H15NO6    -4.4   3.846     UNL
   9  C7H13NO7    -4.6   0.000     UNL
  10  C7H13NO7    -4.4   4.863     UNL
  11  C7H13NO7    -4.4   5.581     UNL
  12  C7H13NO7    -4.4   5.468     UNL
  13  C7H13NO7    -4.3   3.678     UNL
  14  C7H13NO7    -4.2   6.684     UNL
  15  C7H13NO7    -4.1   4.805     UNL
  16  C7H13NO7    -4.0   6.250     UNL
  17  C7H13NO7    -3.9   4.045     UNL
  18C7H15N2O6+    -5.0   0.000     UNL
  19C7H15N2O6+    -4.6   2.820     UNL
  20C7H15N2O6+    -4.4   4.051     UNL
  21C7H15N2O6+    -4.4   4.030     UNL
  22C7H15N2O6+    -4.3   3.821     UNL
  23C7H15N2O6+    -4.3   2.041     UNL
  24C7H15N2O6+    -4.3   4.622     UNL
  25C7H15N2O6+    -4.2   5.460     UNL
  26C7H15N2O6+    -4.2   4.332     UNL
  27  C7H13NO6    -4.5   0.000     UNL
  28  C7H13NO6    -4.5   4.485     UNL
  29  C7H13NO6    -4.4   5.071     UNL
  30  C7H13NO6    -4.4   3.042     UNL
  31  C7H13NO6    -4.4   5.325     UNL
  32  C7H13NO6    -4.3   3.303     UNL
  33  C7H13NO6    -4.3   3.536     UNL
  34  C7H13NO6    -4.2   5.243     UNL
  35  C7H13NO6    -4.1   3.387     UNL
  36 C13H17NO6    -5.9   0.000     UNL
  37 C13H17NO6    -5.9   6.966     UNL
  38 C13H17NO6    -5.8   3.292     UNL
  39 C13H17NO6    -5.7   3.291     UNL
  40 C13H17NO6    -5.5   2.182     UNL
  41 C13H17NO6    -5.5   2.702     UNL
  42 C13H17NO6    -5.5   3.211     UNL
  43 C13H17NO6    -5.5   7.495     UNL
  44 C13H17NO6    -5.5   2.361     UNL
  45 C8H12NO8-    -5.1   0.000     UNL
  46 C8H12NO8-    -5.1   5.872     UNL
  47 C8H12NO8-    -4.9   2.788     UNL
  48 C8H12NO8-    -4.9   5.540     UNL
  49 C8H12NO8-    -4.6   3.420     UNL
  50 C8H12NO8-    -4.6   4.988     UNL
  51 C8H12NO8-    -4.6   2.965     UNL
  52 C8H12NO8-    -4.5   5.627     UNL
  53 C8H12NO8-    -4.5   5.118     UNL
In [37]:
sorted_res = sorted([(i, Chem.rdMolDescriptors.CalcMolFormula(r.Mol),
                      r.data['vina_affinity'], r.data['vina_rmsd_ub'],
                      r.residues[0].name) for (i, r) in enumerate(res)],
                    key=lambda x: x[2], reverse=True)
print('i\tformula\t\taff\trmsd\tname')
for r in sorted_res:
    print(f"{r[0]}\t{r[1]}\t{r[2]}\t{r[3]}\t{r[4]}")
i	formula		aff	rmsd	name
36	C13H17NO6	-5.9	0.000	UNL
37	C13H17NO6	-5.9	6.966	UNL
38	C13H17NO6	-5.8	3.292	UNL
39	C13H17NO6	-5.7	3.291	UNL
40	C13H17NO6	-5.5	2.182	UNL
41	C13H17NO6	-5.5	2.702	UNL
42	C13H17NO6	-5.5	3.211	UNL
43	C13H17NO6	-5.5	7.495	UNL
44	C13H17NO6	-5.5	2.361	UNL
0	C8H15NO6	-5.2	0.000	UNL
1	C8H15NO6	-5.1	2.580	UNL
45	C8H12NO8-	-5.1	0.000	UNL
46	C8H12NO8-	-5.1	5.872	UNL
18	C7H15N2O6+	-5.0	0.000	UNL
2	C8H15NO6	-4.9	4.074	UNL
47	C8H12NO8-	-4.9	2.788	UNL
48	C8H12NO8-	-4.9	5.540	UNL
3	C8H15NO6	-4.8	5.263	UNL
4	C8H15NO6	-4.8	4.624	UNL
5	C8H15NO6	-4.8	5.428	UNL
9	C7H13NO7	-4.6	0.000	UNL
19	C7H15N2O6+	-4.6	2.820	UNL
49	C8H12NO8-	-4.6	3.420	UNL
50	C8H12NO8-	-4.6	4.988	UNL
51	C8H12NO8-	-4.6	2.965	UNL
6	C8H15NO6	-4.5	4.943	UNL
27	C7H13NO6	-4.5	0.000	UNL
28	C7H13NO6	-4.5	4.485	UNL
52	C8H12NO8-	-4.5	5.627	UNL
53	C8H12NO8-	-4.5	5.118	UNL
7	C8H15NO6	-4.4	6.374	UNL
8	C8H15NO6	-4.4	3.846	UNL
10	C7H13NO7	-4.4	4.863	UNL
11	C7H13NO7	-4.4	5.581	UNL
12	C7H13NO7	-4.4	5.468	UNL
20	C7H15N2O6+	-4.4	4.051	UNL
21	C7H15N2O6+	-4.4	4.030	UNL
29	C7H13NO6	-4.4	5.071	UNL
30	C7H13NO6	-4.4	3.042	UNL
31	C7H13NO6	-4.4	5.325	UNL
13	C7H13NO7	-4.3	3.678	UNL
22	C7H15N2O6+	-4.3	3.821	UNL
23	C7H15N2O6+	-4.3	2.041	UNL
24	C7H15N2O6+	-4.3	4.622	UNL
32	C7H13NO6	-4.3	3.303	UNL
33	C7H13NO6	-4.3	3.536	UNL
14	C7H13NO7	-4.2	6.684	UNL
25	C7H15N2O6+	-4.2	5.460	UNL
26	C7H15N2O6+	-4.2	4.332	UNL
34	C7H13NO6	-4.2	5.243	UNL
15	C7H13NO7	-4.1	4.805	UNL
35	C7H13NO6	-4.1	3.387	UNL
16	C7H13NO7	-4.0	6.250	UNL
17	C7H13NO7	-3.9	4.045	UNL

Анализ докинга

In [38]:
dock_result = pd.DataFrame(columns=[
    'No',
    'formula',
    'aff',
    'HB',
    'HB_str',
    'Stack',
    'St_par',
    'St_perp',
    'Hphob'
])

best_res = [(i, res[i]) for i in list(range(36, 48)) + [0]]
for i, r in best_res:
    mol1_atoms, mol2_atoms, strict_bonds = oddt.interactions.hbonds(prot, r)
    hbonds_total = len(mol1_atoms)
    hbonds_strict = np.sum(strict_bonds)

    mol1_rings, mol2_rings, strict_parallel, strict_perp = oddt.interactions.pi_stacking(
        prot, r
    )
    stack_total = len(mol1_rings)
    stack_parallel_strict = np.sum(strict_parallel)
    stack_perp_strict = np.sum(strict_perp)

    mol1_hphob, mol2_hphob = oddt.interactions.hydrophobic_contacts(prot, r)
    hphob_total = len(mol1_hphob)

    dock_result = dock_result.append(
        pd.Series(
            [
                i,
                Chem.rdMolDescriptors.CalcMolFormula(r.Mol),
                r.data['vina_affinity'],
                hbonds_total,
                hbonds_strict,
                stack_total,
                stack_parallel_strict,
                stack_perp_strict,
                hphob_total,
            ],
            index=dock_result.columns
        ), ignore_index=True)

dock_result
Out[38]:
No formula aff HB HB_str Stack St_par St_perp Hphob
0 36 C13H17NO6 -5.9 3 3 0 0 0 5
1 37 C13H17NO6 -5.9 3 3 0 0 0 3
2 38 C13H17NO6 -5.8 2 1 1 0 0 17
3 39 C13H17NO6 -5.7 0 0 1 0 0 14
4 40 C13H17NO6 -5.5 0 0 1 0 0 9
5 41 C13H17NO6 -5.5 4 3 0 0 0 3
6 42 C13H17NO6 -5.5 8 8 1 0 0 12
7 43 C13H17NO6 -5.5 6 5 0 0 0 2
8 44 C13H17NO6 -5.5 5 4 1 0 0 12
9 45 C8H12NO8- -5.1 2 2 0 0 0 0
10 46 C8H12NO8- -5.1 9 7 0 0 0 0
11 47 C8H12NO8- -4.9 2 1 0 0 0 0
12 0 C8H15NO6 -5.2 3 1 0 0 0 3

Для визуализации возьмем лиганды:

  • 36 - максимальная афинность и стекинг
  • 38 - гидрофобность и большая афинность
  • 0 - самый неподходящий по афинности и всему остальному, посмотрим, что с ним нет так
In [39]:
selected_vis = ((i, r) for i, r in best_res if i in [36, 38, 0])
for i, r in selected_vis:
    r.write('pdb', f'lig_{i}.pdb', overwrite=True)
In [40]:
cmd = ServerProxy(uri="http://localhost:9123/RPC2")


async def render_img(name):
    img_path = IMAGE_FOLDER + '/' + name + '.png'
    await asyncio.sleep(1)
    cmd.do('png ' + img_path)
    await asyncio.sleep(1)
    return Image(filename=img_path)
In [41]:
cmd.do('reinitialize')
cmd.load('1lmp-clean.pdb', 'prot_model')
cmd.load('lig.pdb', 'lig_init')

cmd.load('lig_36.pdb', 'lig_36')
cmd.load('lig_38.pdb', 'lig_38')
cmd.load('lig_0.pdb', 'lig_0')
cmd.hide('everything', 'lig*')
cmd.zoom()

cmd.show('surface', 'prot_model')
cmd.do('rotate x,40')
cmd.do('rotate y,-40')
In [42]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_36')
cmd.do('zoom lig_36')
await render_img('lig_36')
Out[42]:

Есть часть молекулы лиганда, которая входит в карман на поверхности белка, и связано с ним 3 водородными связями. Видимо, фенольное кольцо засчет ГФ и стекинг взаимодействий стабилизирует связывание лиганда.

In [45]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_38')
cmd.do('zoom lig_38')
await render_img('lig_38')
Out[45]:

Высокая аффинность, очень высокая ГФ, в целом похож на предыдущий случай. ГФ повышена (и 2 водородные связи с белком вместо 3), вероятно, из-за отсутствия еще одной -OH группы.

In [47]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_0')
cmd.do('zoom lig_0')
await render_img('lig_0')
Out[47]:

Лиганд имеет структуру со слишком большим количеством степеней свобод - нет связей/крупных заместителей, делающих структуру менее подвижной, поэтому он может быть не очень хорошо "закреплен" в кармашке белка. Тут заявлено 3 водородные связи. Получается, что этот лиганд входит в некий карман, куда входили похожие части предыдущих рассмотренных лигандов, но не стабилизирован никаким дополнительным стекинг или ГФ взаимодействием. Поэтому такая низкая афинность.

In [ ]: