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

In [1]:
import numpy as np
import copy

# Отображение структур
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

Подготовка белка

In [2]:
import mdtraj as md
In [3]:
u = md.load('seq_liganded.B99990001.pdb')
pdb = u.topology
for i,r in enumerate(pdb.atoms):
    print(i,r)
    #посмотрим на атомы
0 MET1-N
1 MET1-CA
2 MET1-CB
3 MET1-CG
4 MET1-SD
5 MET1-CE
6 MET1-C
7 MET1-O
8 VAL2-N
9 VAL2-CA
10 VAL2-CB
11 VAL2-CG1
12 VAL2-CG2
13 VAL2-C
14 VAL2-O
15 GLU3-N
16 GLU3-CA
17 GLU3-CB
18 GLU3-CG
19 GLU3-CD
20 GLU3-OE1
21 GLU3-OE2
22 GLU3-C
23 GLU3-O
24 ILE4-N
25 ILE4-CA
26 ILE4-CB
27 ILE4-CG1
28 ILE4-CG2
29 ILE4-CD1
30 ILE4-C
31 ILE4-O
32 ASN5-N
33 ASN5-CA
34 ASN5-CB
35 ASN5-CG
36 ASN5-OD1
37 ASN5-ND2
38 ASN5-C
39 ASN5-O
40 ASN6-N
41 ASN6-CA
42 ASN6-CB
43 ASN6-CG
44 ASN6-OD1
45 ASN6-ND2
46 ASN6-C
47 ASN6-O
48 GLN7-N
49 GLN7-CA
50 GLN7-CB
51 GLN7-CG
52 GLN7-CD
53 GLN7-OE1
54 GLN7-NE2
55 GLN7-C
56 GLN7-O
57 ARG8-N
58 ARG8-CA
59 ARG8-CB
60 ARG8-CG
61 ARG8-CD
62 ARG8-NE
63 ARG8-CZ
64 ARG8-NH1
65 ARG8-NH2
66 ARG8-C
67 ARG8-O
68 LYS9-N
69 LYS9-CA
70 LYS9-CB
71 LYS9-CG
72 LYS9-CD
73 LYS9-CE
74 LYS9-NZ
75 LYS9-C
76 LYS9-O
77 ALA10-N
78 ALA10-CA
79 ALA10-CB
80 ALA10-C
81 ALA10-O
82 PHE11-N
83 PHE11-CA
84 PHE11-CB
85 PHE11-CG
86 PHE11-CD1
87 PHE11-CD2
88 PHE11-CE1
89 PHE11-CE2
90 PHE11-CZ
91 PHE11-C
92 PHE11-O
93 LEU12-N
94 LEU12-CA
95 LEU12-CB
96 LEU12-CG
97 LEU12-CD1
98 LEU12-CD2
99 LEU12-C
100 LEU12-O
101 ASP13-N
102 ASP13-CA
103 ASP13-CB
104 ASP13-CG
105 ASP13-OD1
106 ASP13-OD2
107 ASP13-C
108 ASP13-O
109 MET14-N
110 MET14-CA
111 MET14-CB
112 MET14-CG
113 MET14-SD
114 MET14-CE
115 MET14-C
116 MET14-O
117 LEU15-N
118 LEU15-CA
119 LEU15-CB
120 LEU15-CG
121 LEU15-CD1
122 LEU15-CD2
123 LEU15-C
124 LEU15-O
125 ALA16-N
126 ALA16-CA
127 ALA16-CB
128 ALA16-C
129 ALA16-O
130 TRP17-N
131 TRP17-CA
132 TRP17-CB
133 TRP17-CG
134 TRP17-CD2
135 TRP17-CD1
136 TRP17-NE1
137 TRP17-CE2
138 TRP17-CE3
139 TRP17-CZ2
140 TRP17-CZ3
141 TRP17-CH2
142 TRP17-C
143 TRP17-O
144 SER18-N
145 SER18-CA
146 SER18-CB
147 SER18-OG
148 SER18-C
149 SER18-O
150 GLU19-N
151 GLU19-CA
152 GLU19-CB
153 GLU19-CG
154 GLU19-CD
155 GLU19-OE1
156 GLU19-OE2
157 GLU19-C
158 GLU19-O
159 GLY20-N
160 GLY20-CA
161 GLY20-C
162 GLY20-O
163 THR21-N
164 THR21-CA
165 THR21-CB
166 THR21-OG1
167 THR21-CG2
168 THR21-C
169 THR21-O
170 ASP22-N
171 ASP22-CA
172 ASP22-CB
173 ASP22-CG
174 ASP22-OD1
175 ASP22-OD2
176 ASP22-C
177 ASP22-O
178 ASN23-N
179 ASN23-CA
180 ASN23-CB
181 ASN23-CG
182 ASN23-OD1
183 ASN23-ND2
184 ASN23-C
185 ASN23-O
186 GLY24-N
187 GLY24-CA
188 GLY24-C
189 GLY24-O
190 ARG25-N
191 ARG25-CA
192 ARG25-CB
193 ARG25-CG
194 ARG25-CD
195 ARG25-NE
196 ARG25-CZ
197 ARG25-NH1
198 ARG25-NH2
199 ARG25-C
200 ARG25-O
201 GLN26-N
202 GLN26-CA
203 GLN26-CB
204 GLN26-CG
205 GLN26-CD
206 GLN26-OE1
207 GLN26-NE2
208 GLN26-C
209 GLN26-O
210 LYS27-N
211 LYS27-CA
212 LYS27-CB
213 LYS27-CG
214 LYS27-CD
215 LYS27-CE
216 LYS27-NZ
217 LYS27-C
218 LYS27-O
219 THR28-N
220 THR28-CA
221 THR28-CB
222 THR28-OG1
223 THR28-CG2
224 THR28-C
225 THR28-O
226 ARG29-N
227 ARG29-CA
228 ARG29-CB
229 ARG29-CG
230 ARG29-CD
231 ARG29-NE
232 ARG29-CZ
233 ARG29-NH1
234 ARG29-NH2
235 ARG29-C
236 ARG29-O
237 ASN30-N
238 ASN30-CA
239 ASN30-CB
240 ASN30-CG
241 ASN30-OD1
242 ASN30-ND2
243 ASN30-C
244 ASN30-O
245 HIS31-N
246 HIS31-CA
247 HIS31-ND1
248 HIS31-CG
249 HIS31-CB
250 HIS31-NE2
251 HIS31-CD2
252 HIS31-CE1
253 HIS31-C
254 HIS31-O
255 GLY32-N
256 GLY32-CA
257 GLY32-C
258 GLY32-O
259 TYR33-N
260 TYR33-CA
261 TYR33-CB
262 TYR33-CG
263 TYR33-CD1
264 TYR33-CD2
265 TYR33-CE1
266 TYR33-CE2
267 TYR33-CZ
268 TYR33-OH
269 TYR33-C
270 TYR33-O
271 ASP34-N
272 ASP34-CA
273 ASP34-CB
274 ASP34-CG
275 ASP34-OD1
276 ASP34-OD2
277 ASP34-C
278 ASP34-O
279 VAL35-N
280 VAL35-CA
281 VAL35-CB
282 VAL35-CG1
283 VAL35-CG2
284 VAL35-C
285 VAL35-O
286 ILE36-N
287 ILE36-CA
288 ILE36-CB
289 ILE36-CG1
290 ILE36-CG2
291 ILE36-CD1
292 ILE36-C
293 ILE36-O
294 VAL37-N
295 VAL37-CA
296 VAL37-CB
297 VAL37-CG1
298 VAL37-CG2
299 VAL37-C
300 VAL37-O
301 GLY38-N
302 GLY38-CA
303 GLY38-C
304 GLY38-O
305 GLY39-N
306 GLY39-CA
307 GLY39-C
308 GLY39-O
309 GLU40-N
310 GLU40-CA
311 GLU40-CB
312 GLU40-CG
313 GLU40-CD
314 GLU40-OE1
315 GLU40-OE2
316 GLU40-C
317 GLU40-O
318 LEU41-N
319 LEU41-CA
320 LEU41-CB
321 LEU41-CG
322 LEU41-CD1
323 LEU41-CD2
324 LEU41-C
325 LEU41-O
326 PHE42-N
327 PHE42-CA
328 PHE42-CB
329 PHE42-CG
330 PHE42-CD1
331 PHE42-CD2
332 PHE42-CE1
333 PHE42-CE2
334 PHE42-CZ
335 PHE42-C
336 PHE42-O
337 THR43-N
338 THR43-CA
339 THR43-CB
340 THR43-OG1
341 THR43-CG2
342 THR43-C
343 THR43-O
344 ASP44-N
345 ASP44-CA
346 ASP44-CB
347 ASP44-CG
348 ASP44-OD1
349 ASP44-OD2
350 ASP44-C
351 ASP44-O
352 TYR45-N
353 TYR45-CA
354 TYR45-CB
355 TYR45-CG
356 TYR45-CD1
357 TYR45-CD2
358 TYR45-CE1
359 TYR45-CE2
360 TYR45-CZ
361 TYR45-OH
362 TYR45-C
363 TYR45-O
364 SER46-N
365 SER46-CA
366 SER46-CB
367 SER46-OG
368 SER46-C
369 SER46-O
370 ASP47-N
371 ASP47-CA
372 ASP47-CB
373 ASP47-CG
374 ASP47-OD1
375 ASP47-OD2
376 ASP47-C
377 ASP47-O
378 HIS48-N
379 HIS48-CA
380 HIS48-ND1
381 HIS48-CG
382 HIS48-CB
383 HIS48-NE2
384 HIS48-CD2
385 HIS48-CE1
386 HIS48-C
387 HIS48-O
388 PRO49-N
389 PRO49-CA
390 PRO49-CD
391 PRO49-CB
392 PRO49-CG
393 PRO49-C
394 PRO49-O
395 ARG50-N
396 ARG50-CA
397 ARG50-CB
398 ARG50-CG
399 ARG50-CD
400 ARG50-NE
401 ARG50-CZ
402 ARG50-NH1
403 ARG50-NH2
404 ARG50-C
405 ARG50-O
406 LYS51-N
407 LYS51-CA
408 LYS51-CB
409 LYS51-CG
410 LYS51-CD
411 LYS51-CE
412 LYS51-NZ
413 LYS51-C
414 LYS51-O
415 LEU52-N
416 LEU52-CA
417 LEU52-CB
418 LEU52-CG
419 LEU52-CD1
420 LEU52-CD2
421 LEU52-C
422 LEU52-O
423 VAL53-N
424 VAL53-CA
425 VAL53-CB
426 VAL53-CG1
427 VAL53-CG2
428 VAL53-C
429 VAL53-O
430 THR54-N
431 THR54-CA
432 THR54-CB
433 THR54-OG1
434 THR54-CG2
435 THR54-C
436 THR54-O
437 LEU55-N
438 LEU55-CA
439 LEU55-CB
440 LEU55-CG
441 LEU55-CD1
442 LEU55-CD2
443 LEU55-C
444 LEU55-O
445 ASN56-N
446 ASN56-CA
447 ASN56-CB
448 ASN56-CG
449 ASN56-OD1
450 ASN56-ND2
451 ASN56-C
452 ASN56-O
453 PRO57-N
454 PRO57-CA
455 PRO57-CD
456 PRO57-CB
457 PRO57-CG
458 PRO57-C
459 PRO57-O
460 LYS58-N
461 LYS58-CA
462 LYS58-CB
463 LYS58-CG
464 LYS58-CD
465 LYS58-CE
466 LYS58-NZ
467 LYS58-C
468 LYS58-O
469 LEU59-N
470 LEU59-CA
471 LEU59-CB
472 LEU59-CG
473 LEU59-CD1
474 LEU59-CD2
475 LEU59-C
476 LEU59-O
477 LYS60-N
478 LYS60-CA
479 LYS60-CB
480 LYS60-CG
481 LYS60-CD
482 LYS60-CE
483 LYS60-NZ
484 LYS60-C
485 LYS60-O
486 SER61-N
487 SER61-CA
488 SER61-CB
489 SER61-OG
490 SER61-C
491 SER61-O
492 THR62-N
493 THR62-CA
494 THR62-CB
495 THR62-OG1
496 THR62-CG2
497 THR62-C
498 THR62-O
499 GLY63-N
500 GLY63-CA
501 GLY63-C
502 GLY63-O
503 ALA64-N
504 ALA64-CA
505 ALA64-CB
506 ALA64-C
507 ALA64-O
508 GLY65-N
509 GLY65-CA
510 GLY65-C
511 GLY65-O
512 ARG66-N
513 ARG66-CA
514 ARG66-CB
515 ARG66-CG
516 ARG66-CD
517 ARG66-NE
518 ARG66-CZ
519 ARG66-NH1
520 ARG66-NH2
521 ARG66-C
522 ARG66-O
523 TYR67-N
524 TYR67-CA
525 TYR67-CB
526 TYR67-CG
527 TYR67-CD1
528 TYR67-CD2
529 TYR67-CE1
530 TYR67-CE2
531 TYR67-CZ
532 TYR67-OH
533 TYR67-C
534 TYR67-O
535 GLN68-N
536 GLN68-CA
537 GLN68-CB
538 GLN68-CG
539 GLN68-CD
540 GLN68-OE1
541 GLN68-NE2
542 GLN68-C
543 GLN68-O
544 LEU69-N
545 LEU69-CA
546 LEU69-CB
547 LEU69-CG
548 LEU69-CD1
549 LEU69-CD2
550 LEU69-C
551 LEU69-O
552 LEU70-N
553 LEU70-CA
554 LEU70-CB
555 LEU70-CG
556 LEU70-CD1
557 LEU70-CD2
558 LEU70-C
559 LEU70-O
560 SER71-N
561 SER71-CA
562 SER71-CB
563 SER71-OG
564 SER71-C
565 SER71-O
566 ARG72-N
567 ARG72-CA
568 ARG72-CB
569 ARG72-CG
570 ARG72-CD
571 ARG72-NE
572 ARG72-CZ
573 ARG72-NH1
574 ARG72-NH2
575 ARG72-C
576 ARG72-O
577 TRP73-N
578 TRP73-CA
579 TRP73-CB
580 TRP73-CG
581 TRP73-CD2
582 TRP73-CD1
583 TRP73-NE1
584 TRP73-CE2
585 TRP73-CE3
586 TRP73-CZ2
587 TRP73-CZ3
588 TRP73-CH2
589 TRP73-C
590 TRP73-O
591 TRP74-N
592 TRP74-CA
593 TRP74-CB
594 TRP74-CG
595 TRP74-CD2
596 TRP74-CD1
597 TRP74-NE1
598 TRP74-CE2
599 TRP74-CE3
600 TRP74-CZ2
601 TRP74-CZ3
602 TRP74-CH2
603 TRP74-C
604 TRP74-O
605 ASP75-N
606 ASP75-CA
607 ASP75-CB
608 ASP75-CG
609 ASP75-OD1
610 ASP75-OD2
611 ASP75-C
612 ASP75-O
613 ALA76-N
614 ALA76-CA
615 ALA76-CB
616 ALA76-C
617 ALA76-O
618 TYR77-N
619 TYR77-CA
620 TYR77-CB
621 TYR77-CG
622 TYR77-CD1
623 TYR77-CD2
624 TYR77-CE1
625 TYR77-CE2
626 TYR77-CZ
627 TYR77-OH
628 TYR77-C
629 TYR77-O
630 ARG78-N
631 ARG78-CA
632 ARG78-CB
633 ARG78-CG
634 ARG78-CD
635 ARG78-NE
636 ARG78-CZ
637 ARG78-NH1
638 ARG78-NH2
639 ARG78-C
640 ARG78-O
641 LYS79-N
642 LYS79-CA
643 LYS79-CB
644 LYS79-CG
645 LYS79-CD
646 LYS79-CE
647 LYS79-NZ
648 LYS79-C
649 LYS79-O
650 GLN80-N
651 GLN80-CA
652 GLN80-CB
653 GLN80-CG
654 GLN80-CD
655 GLN80-OE1
656 GLN80-NE2
657 GLN80-C
658 GLN80-O
659 LEU81-N
660 LEU81-CA
661 LEU81-CB
662 LEU81-CG
663 LEU81-CD1
664 LEU81-CD2
665 LEU81-C
666 LEU81-O
667 GLY82-N
668 GLY82-CA
669 GLY82-C
670 GLY82-O
671 LEU83-N
672 LEU83-CA
673 LEU83-CB
674 LEU83-CG
675 LEU83-CD1
676 LEU83-CD2
677 LEU83-C
678 LEU83-O
679 LYS84-N
680 LYS84-CA
681 LYS84-CB
682 LYS84-CG
683 LYS84-CD
684 LYS84-CE
685 LYS84-NZ
686 LYS84-C
687 LYS84-O
688 ASP85-N
689 ASP85-CA
690 ASP85-CB
691 ASP85-CG
692 ASP85-OD1
693 ASP85-OD2
694 ASP85-C
695 ASP85-O
696 PHE86-N
697 PHE86-CA
698 PHE86-CB
699 PHE86-CG
700 PHE86-CD1
701 PHE86-CD2
702 PHE86-CE1
703 PHE86-CE2
704 PHE86-CZ
705 PHE86-C
706 PHE86-O
707 SER87-N
708 SER87-CA
709 SER87-CB
710 SER87-OG
711 SER87-C
712 SER87-O
713 PRO88-N
714 PRO88-CA
715 PRO88-CD
716 PRO88-CB
717 PRO88-CG
718 PRO88-C
719 PRO88-O
720 LYS89-N
721 LYS89-CA
722 LYS89-CB
723 LYS89-CG
724 LYS89-CD
725 LYS89-CE
726 LYS89-NZ
727 LYS89-C
728 LYS89-O
729 SER90-N
730 SER90-CA
731 SER90-CB
732 SER90-OG
733 SER90-C
734 SER90-O
735 GLN91-N
736 GLN91-CA
737 GLN91-CB
738 GLN91-CG
739 GLN91-CD
740 GLN91-OE1
741 GLN91-NE2
742 GLN91-C
743 GLN91-O
744 ASP92-N
745 ASP92-CA
746 ASP92-CB
747 ASP92-CG
748 ASP92-OD1
749 ASP92-OD2
750 ASP92-C
751 ASP92-O
752 ALA93-N
753 ALA93-CA
754 ALA93-CB
755 ALA93-C
756 ALA93-O
757 VAL94-N
758 VAL94-CA
759 VAL94-CB
760 VAL94-CG1
761 VAL94-CG2
762 VAL94-C
763 VAL94-O
764 ALA95-N
765 ALA95-CA
766 ALA95-CB
767 ALA95-C
768 ALA95-O
769 LEU96-N
770 LEU96-CA
771 LEU96-CB
772 LEU96-CG
773 LEU96-CD1
774 LEU96-CD2
775 LEU96-C
776 LEU96-O
777 GLN97-N
778 GLN97-CA
779 GLN97-CB
780 GLN97-CG
781 GLN97-CD
782 GLN97-OE1
783 GLN97-NE2
784 GLN97-C
785 GLN97-O
786 GLN98-N
787 GLN98-CA
788 GLN98-CB
789 GLN98-CG
790 GLN98-CD
791 GLN98-OE1
792 GLN98-NE2
793 GLN98-C
794 GLN98-O
795 ILE99-N
796 ILE99-CA
797 ILE99-CB
798 ILE99-CG1
799 ILE99-CG2
800 ILE99-CD1
801 ILE99-C
802 ILE99-O
803 LYS100-N
804 LYS100-CA
805 LYS100-CB
806 LYS100-CG
807 LYS100-CD
808 LYS100-CE
809 LYS100-NZ
810 LYS100-C
811 LYS100-O
812 GLU101-N
813 GLU101-CA
814 GLU101-CB
815 GLU101-CG
816 GLU101-CD
817 GLU101-OE1
818 GLU101-OE2
819 GLU101-C
820 GLU101-O
821 ARG102-N
822 ARG102-CA
823 ARG102-CB
824 ARG102-CG
825 ARG102-CD
826 ARG102-NE
827 ARG102-CZ
828 ARG102-NH1
829 ARG102-NH2
830 ARG102-C
831 ARG102-O
832 GLY103-N
833 GLY103-CA
834 GLY103-C
835 GLY103-O
836 ALA104-N
837 ALA104-CA
838 ALA104-CB
839 ALA104-C
840 ALA104-O
841 LEU105-N
842 LEU105-CA
843 LEU105-CB
844 LEU105-CG
845 LEU105-CD1
846 LEU105-CD2
847 LEU105-C
848 LEU105-O
849 PRO106-N
850 PRO106-CA
851 PRO106-CD
852 PRO106-CB
853 PRO106-CG
854 PRO106-C
855 PRO106-O
856 MET107-N
857 MET107-CA
858 MET107-CB
859 MET107-CG
860 MET107-SD
861 MET107-CE
862 MET107-C
863 MET107-O
864 ILE108-N
865 ILE108-CA
866 ILE108-CB
867 ILE108-CG1
868 ILE108-CG2
869 ILE108-CD1
870 ILE108-C
871 ILE108-O
872 ASP109-N
873 ASP109-CA
874 ASP109-CB
875 ASP109-CG
876 ASP109-OD1
877 ASP109-OD2
878 ASP109-C
879 ASP109-O
880 ARG110-N
881 ARG110-CA
882 ARG110-CB
883 ARG110-CG
884 ARG110-CD
885 ARG110-NE
886 ARG110-CZ
887 ARG110-NH1
888 ARG110-NH2
889 ARG110-C
890 ARG110-O
891 GLY111-N
892 GLY111-CA
893 GLY111-C
894 GLY111-O
895 ASP112-N
896 ASP112-CA
897 ASP112-CB
898 ASP112-CG
899 ASP112-OD1
900 ASP112-OD2
901 ASP112-C
902 ASP112-O
903 ILE113-N
904 ILE113-CA
905 ILE113-CB
906 ILE113-CG1
907 ILE113-CG2
908 ILE113-CD1
909 ILE113-C
910 ILE113-O
911 ARG114-N
912 ARG114-CA
913 ARG114-CB
914 ARG114-CG
915 ARG114-CD
916 ARG114-NE
917 ARG114-CZ
918 ARG114-NH1
919 ARG114-NH2
920 ARG114-C
921 ARG114-O
922 GLN115-N
923 GLN115-CA
924 GLN115-CB
925 GLN115-CG
926 GLN115-CD
927 GLN115-OE1
928 GLN115-NE2
929 GLN115-C
930 GLN115-O
931 ALA116-N
932 ALA116-CA
933 ALA116-CB
934 ALA116-C
935 ALA116-O
936 ILE117-N
937 ILE117-CA
938 ILE117-CB
939 ILE117-CG1
940 ILE117-CG2
941 ILE117-CD1
942 ILE117-C
943 ILE117-O
944 ASP118-N
945 ASP118-CA
946 ASP118-CB
947 ASP118-CG
948 ASP118-OD1
949 ASP118-OD2
950 ASP118-C
951 ASP118-O
952 ARG119-N
953 ARG119-CA
954 ARG119-CB
955 ARG119-CG
956 ARG119-CD
957 ARG119-NE
958 ARG119-CZ
959 ARG119-NH1
960 ARG119-NH2
961 ARG119-C
962 ARG119-O
963 CYS120-N
964 CYS120-CA
965 CYS120-CB
966 CYS120-SG
967 CYS120-C
968 CYS120-O
969 SER121-N
970 SER121-CA
971 SER121-CB
972 SER121-OG
973 SER121-C
974 SER121-O
975 ASN122-N
976 ASN122-CA
977 ASN122-CB
978 ASN122-CG
979 ASN122-OD1
980 ASN122-ND2
981 ASN122-C
982 ASN122-O
983 ILE123-N
984 ILE123-CA
985 ILE123-CB
986 ILE123-CG1
987 ILE123-CG2
988 ILE123-CD1
989 ILE123-C
990 ILE123-O
991 TRP124-N
992 TRP124-CA
993 TRP124-CB
994 TRP124-CG
995 TRP124-CD2
996 TRP124-CD1
997 TRP124-NE1
998 TRP124-CE2
999 TRP124-CE3
1000 TRP124-CZ2
1001 TRP124-CZ3
1002 TRP124-CH2
1003 TRP124-C
1004 TRP124-O
1005 ALA125-N
1006 ALA125-CA
1007 ALA125-CB
1008 ALA125-C
1009 ALA125-O
1010 SER126-N
1011 SER126-CA
1012 SER126-CB
1013 SER126-OG
1014 SER126-C
1015 SER126-O
1016 LEU127-N
1017 LEU127-CA
1018 LEU127-CB
1019 LEU127-CG
1020 LEU127-CD1
1021 LEU127-CD2
1022 LEU127-C
1023 LEU127-O
1024 PRO128-N
1025 PRO128-CA
1026 PRO128-CD
1027 PRO128-CB
1028 PRO128-CG
1029 PRO128-C
1030 PRO128-O
1031 GLY129-N
1032 GLY129-CA
1033 GLY129-C
1034 GLY129-O
1035 ALA130-N
1036 ALA130-CA
1037 ALA130-CB
1038 ALA130-C
1039 ALA130-O
1040 GLY131-N
1041 GLY131-CA
1042 GLY131-C
1043 GLY131-O
1044 TYR132-N
1045 TYR132-CA
1046 TYR132-CB
1047 TYR132-CG
1048 TYR132-CD1
1049 TYR132-CD2
1050 TYR132-CE1
1051 TYR132-CE2
1052 TYR132-CZ
1053 TYR132-OH
1054 TYR132-C
1055 TYR132-O
1056 GLY133-N
1057 GLY133-CA
1058 GLY133-C
1059 GLY133-O
1060 GLN134-N
1061 GLN134-CA
1062 GLN134-CB
1063 GLN134-CG
1064 GLN134-CD
1065 GLN134-OE1
1066 GLN134-NE2
1067 GLN134-C
1068 GLN134-O
1069 PHE135-N
1070 PHE135-CA
1071 PHE135-CB
1072 PHE135-CG
1073 PHE135-CD1
1074 PHE135-CD2
1075 PHE135-CE1
1076 PHE135-CE2
1077 PHE135-CZ
1078 PHE135-C
1079 PHE135-O
1080 GLU136-N
1081 GLU136-CA
1082 GLU136-CB
1083 GLU136-CG
1084 GLU136-CD
1085 GLU136-OE1
1086 GLU136-OE2
1087 GLU136-C
1088 GLU136-O
1089 HIS137-N
1090 HIS137-CA
1091 HIS137-ND1
1092 HIS137-CG
1093 HIS137-CB
1094 HIS137-NE2
1095 HIS137-CD2
1096 HIS137-CE1
1097 HIS137-C
1098 HIS137-O
1099 LYS138-N
1100 LYS138-CA
1101 LYS138-CB
1102 LYS138-CG
1103 LYS138-CD
1104 LYS138-CE
1105 LYS138-NZ
1106 LYS138-C
1107 LYS138-O
1108 ALA139-N
1109 ALA139-CA
1110 ALA139-CB
1111 ALA139-C
1112 ALA139-O
1113 ASP140-N
1114 ASP140-CA
1115 ASP140-CB
1116 ASP140-CG
1117 ASP140-OD1
1118 ASP140-OD2
1119 ASP140-C
1120 ASP140-O
1121 SER141-N
1122 SER141-CA
1123 SER141-CB
1124 SER141-OG
1125 SER141-C
1126 SER141-O
1127 LEU142-N
1128 LEU142-CA
1129 LEU142-CB
1130 LEU142-CG
1131 LEU142-CD1
1132 LEU142-CD2
1133 LEU142-C
1134 LEU142-O
1135 ILE143-N
1136 ILE143-CA
1137 ILE143-CB
1138 ILE143-CG1
1139 ILE143-CG2
1140 ILE143-CD1
1141 ILE143-C
1142 ILE143-O
1143 ALA144-N
1144 ALA144-CA
1145 ALA144-CB
1146 ALA144-C
1147 ALA144-O
1148 LYS145-N
1149 LYS145-CA
1150 LYS145-CB
1151 LYS145-CG
1152 LYS145-CD
1153 LYS145-CE
1154 LYS145-NZ
1155 LYS145-C
1156 LYS145-O
1157 PHE146-N
1158 PHE146-CA
1159 PHE146-CB
1160 PHE146-CG
1161 PHE146-CD1
1162 PHE146-CD2
1163 PHE146-CE1
1164 PHE146-CE2
1165 PHE146-CZ
1166 PHE146-C
1167 PHE146-O
1168 LYS147-N
1169 LYS147-CA
1170 LYS147-CB
1171 LYS147-CG
1172 LYS147-CD
1173 LYS147-CE
1174 LYS147-NZ
1175 LYS147-C
1176 LYS147-O
1177 GLU148-N
1178 GLU148-CA
1179 GLU148-CB
1180 GLU148-CG
1181 GLU148-CD
1182 GLU148-OE1
1183 GLU148-OE2
1184 GLU148-C
1185 GLU148-O
1186 ALA149-N
1187 ALA149-CA
1188 ALA149-CB
1189 ALA149-C
1190 ALA149-O
1191 GLY150-N
1192 GLY150-CA
1193 GLY150-C
1194 GLY150-O
1195 GLY151-N
1196 GLY151-CA
1197 GLY151-C
1198 GLY151-O
1199 THR152-N
1200 THR152-CA
1201 THR152-CB
1202 THR152-OG1
1203 THR152-CG2
1204 THR152-C
1205 THR152-O
1206 VAL153-N
1207 VAL153-CA
1208 VAL153-CB
1209 VAL153-CG1
1210 VAL153-CG2
1211 VAL153-C
1212 VAL153-O
1213 ARG154-N
1214 ARG154-CA
1215 ARG154-CB
1216 ARG154-CG
1217 ARG154-CD
1218 ARG154-NE
1219 ARG154-CZ
1220 ARG154-NH1
1221 ARG154-NH2
1222 ARG154-C
1223 ARG154-O
1224 GLU155-N
1225 GLU155-CA
1226 GLU155-CB
1227 GLU155-CG
1228 GLU155-CD
1229 GLU155-OE1
1230 GLU155-OE2
1231 GLU155-C
1232 GLU155-O
1233 ILE156-N
1234 ILE156-CA
1235 ILE156-CB
1236 ILE156-CG1
1237 ILE156-CG2
1238 ILE156-CD1
1239 ILE156-C
1240 ILE156-O
1241 ASP157-N
1242 ASP157-CA
1243 ASP157-CB
1244 ASP157-CG
1245 ASP157-OD1
1246 ASP157-OD2
1247 ASP157-C
1248 ASP157-O
1249 VAL158-N
1250 VAL158-CA
1251 VAL158-CB
1252 VAL158-CG1
1253 VAL158-CG2
1254 VAL158-C
1255 VAL158-O
1256 VAL158-OXT
1257 NAG159-C1
1258 NAG159-C2
1259 NAG159-C3
1260 NAG159-C4
1261 NAG159-C5
1262 NAG159-C6
1263 NAG159-C7
1264 NAG159-C8
1265 NAG159-N2
1266 NAG159-O3
1267 NAG159-O4
1268 NAG159-O5
1269 NAG159-O6
1270 NAG159-O7
1271 NAG160-C1
1272 NAG160-C2
1273 NAG160-C3
1274 NAG160-C4
1275 NAG160-C5
1276 NAG160-C6
1277 NAG160-C7
1278 NAG160-C8
1279 NAG160-N2
1280 NAG160-O3
1281 NAG160-O4
1282 NAG160-O5
1283 NAG160-O6
1284 NAG160-O7
1285 NDG161-C1
1286 NDG161-C2
1287 NDG161-C3
1288 NDG161-C4
1289 NDG161-C5
1290 NDG161-C6
1291 NDG161-C7
1292 NDG161-C8
1293 NDG161-O
1294 NDG161-O3
1295 NDG161-O4
1296 NDG161-O6
1297 NDG161-O7
1298 NDG161-N2
1299 NDG161-O1L
In [4]:
protein_end = 1256  # Последний атом белка
ligand_end = 1299  # последний атом лиганда

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

In [5]:
u2 = u.atom_slice(range(protein_end + 1))
u2.save_pdb('seq_liganded.B99990001_clean.pdb', force_overwrite=True)

Найдём геометрический центр лиганда.

In [6]:
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,)
In [7]:
lig.save_pdb('lig.pdb', force_overwrite=True)
In [8]:
print(lig_center)
[44.80097  37.96614  25.933739]
In [9]:
(np.max(lig.xyz, axis=1) - np.min(lig.xyz, axis=1)) * 10
Out[9]:
array([[12.736001,  9.043002, 11.286001]], dtype=float32)

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

In [10]:
prot = next(oddt.toolkits.rdk.readfile('pdb','seq_liganded.B99990001_clean.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: 17825.262999999977

По умолчанию, наш белок воспринимается не как белок :(

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

In [11]:
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)
C8H15NO6
C7H13NO7
C7H15N2O6+
C7H13NO6
C13H17NO6
C8H12NO8-
O N H HO O OH OH OH
HO O N H HO O OH OH OH
H3N+ O N H HO O OH OH OH
O N H HO O OH OH OH
O N H OH O HO OH OH
O- O O N H HO O OH OH OH

Докинг

In [12]:
#create docking object
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(" ".join(dock_obj.params))
.\autodock_vina__itc3vfj
--center_x 44.80097 --center_y 37.96614 --center_z 25.933739 --size_x 20 --size_y 20 --size_z 20 --exhaustiveness 8 --num_modes 9 --energy_range 3

Выдача AutoDock Vina:

Параметр Суть
center_x Центр коробки для докинга по x
center_y Центр коробки для докинга по y
center_z Центр коробки для докинга по z
size_x Размер коробки по x
size_y Размер коробки по y
size_z Размер коробки по z
exhaustiveness Долгота поиска глобального минимума (обычно эвристически как trade-off между числом атомов и временем работы)
num_modes Наибольшее число моделей в выдаче
energy_range Максимальное различие энергий между лучшей и худшей моделями в выдаче

Запускаем докинг.

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

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

Посмотрим на результаты докинга в исходном виде.

In [14]:
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.6   0.000     UNL
   1  C8H15NO6    -5.3   1.797     UNL
   2  C8H15NO6    -5.1   3.220     UNL
   3  C8H15NO6    -5.1   4.761     UNL
   4  C8H15NO6    -5.0   4.264     UNL
   5  C8H15NO6    -4.8   3.770     UNL
   6  C8H15NO6    -4.8   3.663     UNL
   7  C8H15NO6    -4.8   5.037     UNL
   8  C8H15NO6    -4.8   4.924     UNL
   9  C7H13NO7    -5.0   0.000     UNL
  10  C7H13NO7    -4.9   4.209     UNL
  11  C7H13NO7    -4.7   5.342     UNL
  12  C7H13NO7    -4.7   4.480     UNL
  13  C7H13NO7    -4.6   5.574     UNL
  14  C7H13NO7    -4.6   5.230     UNL
  15  C7H13NO7    -4.6   4.990     UNL
  16  C7H13NO7    -4.5   4.713     UNL
  17  C7H13NO7    -4.5   2.174     UNL
  18C7H15N2O6+    -5.1   0.000     UNL
  19C7H15N2O6+    -4.9   3.231     UNL
  20C7H15N2O6+    -4.8   5.397     UNL
  21C7H15N2O6+    -4.8   4.774     UNL
  22C7H15N2O6+    -4.6   2.202     UNL
  23C7H15N2O6+    -4.5   2.114     UNL
  24C7H15N2O6+    -4.4   4.936     UNL
  25C7H15N2O6+    -4.4   4.338     UNL
  26C7H15N2O6+    -4.4   5.007     UNL
  27  C7H13NO6    -4.8   0.000     UNL
  28  C7H13NO6    -4.8   4.740     UNL
  29  C7H13NO6    -4.8   4.216     UNL
  30  C7H13NO6    -4.7   3.046     UNL
  31  C7H13NO6    -4.5   3.436     UNL
  32  C7H13NO6    -4.4   4.647     UNL
  33  C7H13NO6    -4.4   2.438     UNL
  34  C7H13NO6    -4.4   4.180     UNL
  35  C7H13NO6    -4.3   1.927     UNL
  36 C13H17NO6    -7.2   0.000     UNL
  37 C13H17NO6    -7.0   2.783     UNL
  38 C13H17NO6    -6.6   2.726     UNL
  39 C13H17NO6    -6.4   7.513     UNL
  40 C13H17NO6    -6.3   7.633     UNL
  41 C13H17NO6    -6.1   2.608     UNL
  42 C13H17NO6    -5.9   7.145     UNL
  43 C13H17NO6    -5.9   6.336     UNL
  44 C13H17NO6    -5.8   6.287     UNL
  45 C8H12NO8-    -5.8   0.000     UNL
  46 C8H12NO8-    -5.7   2.687     UNL
  47 C8H12NO8-    -5.4   6.608     UNL
  48 C8H12NO8-    -5.3   6.958     UNL
  49 C8H12NO8-    -5.3   6.001     UNL
  50 C8H12NO8-    -5.3   4.193     UNL
  51 C8H12NO8-    -5.3   6.124     UNL
  52 C8H12NO8-    -5.2   3.856     UNL
  53 C8H12NO8-    -5.2   6.283     UNL

Видим, что лиганды сгруппированы по их типу, сортируются от лучшего к худшему внутри своего типа.

In [16]:
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)
In [17]:
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	-7.2	0.000	UNL
37	C13H17NO6	-7.0	2.783	UNL
38	C13H17NO6	-6.6	2.726	UNL
39	C13H17NO6	-6.4	7.513	UNL
40	C13H17NO6	-6.3	7.633	UNL
41	C13H17NO6	-6.1	2.608	UNL
42	C13H17NO6	-5.9	7.145	UNL
43	C13H17NO6	-5.9	6.336	UNL
44	C13H17NO6	-5.8	6.287	UNL
45	C8H12NO8-	-5.8	0.000	UNL
46	C8H12NO8-	-5.7	2.687	UNL
0	C8H15NO6	-5.6	0.000	UNL
47	C8H12NO8-	-5.4	6.608	UNL
1	C8H15NO6	-5.3	1.797	UNL
48	C8H12NO8-	-5.3	6.958	UNL
49	C8H12NO8-	-5.3	6.001	UNL
50	C8H12NO8-	-5.3	4.193	UNL
51	C8H12NO8-	-5.3	6.124	UNL
52	C8H12NO8-	-5.2	3.856	UNL
53	C8H12NO8-	-5.2	6.283	UNL
2	C8H15NO6	-5.1	3.220	UNL
3	C8H15NO6	-5.1	4.761	UNL
18	C7H15N2O6+	-5.1	0.000	UNL
4	C8H15NO6	-5.0	4.264	UNL
9	C7H13NO7	-5.0	0.000	UNL
10	C7H13NO7	-4.9	4.209	UNL
19	C7H15N2O6+	-4.9	3.231	UNL
5	C8H15NO6	-4.8	3.770	UNL
6	C8H15NO6	-4.8	3.663	UNL
7	C8H15NO6	-4.8	5.037	UNL
8	C8H15NO6	-4.8	4.924	UNL
20	C7H15N2O6+	-4.8	5.397	UNL
21	C7H15N2O6+	-4.8	4.774	UNL
27	C7H13NO6	-4.8	0.000	UNL
28	C7H13NO6	-4.8	4.740	UNL
29	C7H13NO6	-4.8	4.216	UNL
11	C7H13NO7	-4.7	5.342	UNL
12	C7H13NO7	-4.7	4.480	UNL
30	C7H13NO6	-4.7	3.046	UNL
13	C7H13NO7	-4.6	5.574	UNL
14	C7H13NO7	-4.6	5.230	UNL
15	C7H13NO7	-4.6	4.990	UNL
22	C7H15N2O6+	-4.6	2.202	UNL
16	C7H13NO7	-4.5	4.713	UNL
17	C7H13NO7	-4.5	2.174	UNL
23	C7H15N2O6+	-4.5	2.114	UNL
31	C7H13NO6	-4.5	3.436	UNL
24	C7H15N2O6+	-4.4	4.936	UNL
25	C7H15N2O6+	-4.4	4.338	UNL
26	C7H15N2O6+	-4.4	5.007	UNL
32	C7H13NO6	-4.4	4.647	UNL
33	C7H13NO6	-4.4	2.438	UNL
34	C7H13NO6	-4.4	4.180	UNL
35	C7H13NO6	-4.3	1.927	UNL

Гидрофобика победила всех: все Ph лучше всех остальных. Затем идут лиганды COO- и между ними обычный NAG.

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

Посмотрим на особенности взаимодействия лучших лигандов: все Ph, два COO- и один обычный.

In [19]:
best_res = [(i, res[i]) for i in list(range(36, 48)) + [0]]
print("\t".join(['No',
                 'formula',
                 '\taff',
                 'HB',
                 'HB_str',
                 'Stack',
                 'St_par',
                 'St_perp',
                 'Hphob']))
for i, r in best_res:
    # hbonds
    mol1_atoms, mol2_atoms, strict_bonds = oddt.interactions.hbonds(prot, r)
    hbonds_total = len(mol1_atoms)
    hbonds_strict = np.sum(strict_bonds)
    
    # stacking
    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)
    print(i,
          Chem.rdMolDescriptors.CalcMolFormula(r.Mol),
          r.data['vina_affinity'],
          hbonds_total,
          hbonds_strict,
          stack_total,
          stack_parallel_strict,
          stack_perp_strict,
          hphob_total,
          sep='\t')
No	formula		aff	HB	HB_str	Stack	St_par	St_perp	Hphob
36	C13H17NO6	-7.2	5	3	0	0	0	7
37	C13H17NO6	-7.0	7	4	0	0	0	9
38	C13H17NO6	-6.6	4	4	0	0	0	9
39	C13H17NO6	-6.4	2	2	2	0	0	8
40	C13H17NO6	-6.3	7	3	1	0	0	4
41	C13H17NO6	-6.1	3	3	0	0	0	9
42	C13H17NO6	-5.9	0	0	2	0	0	15
43	C13H17NO6	-5.9	2	2	0	0	0	4
44	C13H17NO6	-5.8	1	0	0	0	0	10
45	C8H12NO8-	-5.8	2	2	0	0	0	0
46	C8H12NO8-	-5.7	6	6	0	0	0	0
47	C8H12NO8-	-5.4	7	6	0	0	0	0
0	C8H15NO6	-5.6	3	2	0	0	0	2

Ph заместитель побеждает за счёт гидрофобики и некоторых водородных связей. Забавно, что у лиганда 0 есть гидрофобика, а у лигандов 46-47 её нет. Стекинг нигде не нашёлся.

Посмотрим визуально на лиганды 36, 37, 46, 47 и 0.

Визуализация

In [21]:
selected_vis = ((i, r) for i, r in best_res if i in [36, 37, 46, 47, 0])
for i, r in selected_vis:
    r.write('pdb', f'lig_{i}.pdb', overwrite=True)
In [22]:
import __main__
__main__.pymol_argv = [ 'pymol', '-x' ]

import pymol
pymol.finish_launching()
from pymol import cmd

Сделаем красиво.

In [23]:
cmd.reinitialize()
In [24]:
cmd.bg_color('white')
cmd.set('antialias', 2)
cmd.set('ray_trace_mode', 3)

Напишем функцию для подсчёта водородных связей (отсюда).

In [25]:
def find_hbonds(sele1, sele2, cutoff=3.5):
    cmd.select('don', '(elem n,o and (neighbor hydro))')
    cmd.select('acc, (elem o or (elem n and not (neighbor hydro)))')
    sele1_hba = f'({sele1} and acc)'
    sele2_hbd = f'({sele2} and don)'
    sele1_hbd = f'({sele1} and don)'
    sele2_hba = f'({sele2} and acc)'
    cmd.dist('HBA', sele1_hba, sele2_hbd, cutoff)
    cmd.dist('HBD', sele1_hbd, sele2_hba, cutoff)
    amount = (cmd.count_atoms(f'{sele1_hba} within {cutoff} of {sele2_hbd}') +
              cmd.count_atoms(f'{sele1_hbd} within {cutoff} of {sele2_hba}'))
    cmd.delete('don')
    cmd.delete('acc')
    cmd.hide('labels', 'HBA')
    cmd.hide('labels', 'HBD')
    return amount

Загрузим модели.

In [26]:
cmd.load('seq_liganded.B99990001_clean.pdb', 'prot_model')
cmd.load('lig.pdb', 'lig_init')
cmd.load('lig_36.pdb', 'lig_36')
cmd.load('lig_37.pdb', 'lig_37')
cmd.load('lig_46.pdb', 'lig_46')
cmd.load('lig_47.pdb', 'lig_47')
cmd.load('lig_0.pdb', 'lig_0')
cmd.zoom()

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

In [27]:
cmd.h_add('prot_model')
cmd.h_add('lig_init')

Покрасим белок по гидрофобике (отсюда).

In [28]:
cmd.run('color_h.py')
cmd.do('color_h prot_model')
cmd.show('surface', 'prot_model')

Посмотрим на исходный лиганд и его водородные связи.

In [29]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_init')
In [30]:
cmd.orient('lig_init')
cmd.zoom('lig_init', 7)
cmd.rotate('x', 90)
cmd.rotate('y', 20)
In [31]:
find_hbonds('lig_init', 'prot_model')
Out[31]:
7
In [32]:
cmd.png('lig_init.png', 1000, 1000, ray=1)
In [34]:
display(Image('lig_init.png'))

Вроде бы, всё нормально.

Посмотрим на лиганд 36 (Ph).

In [35]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_36')
In [36]:
cmd.delete('HBA or HBD')
find_hbonds('lig_36', 'prot_model')
Out[36]:
0

0 водородных связей, хотя ранее было показано 5 (3).

In [37]:
cmd.png('lig_36.png', 1000, 1000, ray=1)
In [39]:
display(Image('lig_36.png'))

Лежит красиво. Заметим, фенольное кольцо лежит в менее гидрофобном кармане, чем пирановое кольцо, зато дальше от воды.

Посмотрим на лиганд 37 (Ph).

In [40]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_37')
In [41]:
cmd.delete('HBA, HBD')
find_hbonds('lig_37', 'prot_model')
Out[41]:
0

Опять 0 водородных связей на расстоянии 3.5Å!

In [42]:
cmd.png('lig_37.png', 1000, 1000, ray=1)
In [43]:
display(Image('lig_37.png'))

Ну, выглядит нормально, но больше экспонировано на поверхность.

Посмотрим на лиганд 46 (COO-).

In [44]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_46')
In [48]:
cmd.delete('HBA or HBD')
find_hbonds('lig_46', 'prot_model')
Out[48]:
3

3 водородные связи, а не 6, как показано ранее.

In [49]:
cmd.png('lig_46.png', 1000, 1000, ray=1)
In [50]:
display(Image('lig_46.png'))

Карбоксильная группа уехала внутрь белка, цепляясь там водородной связью.

Посмотрим на лиганд 47 (COO-).

In [51]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_47')
In [52]:
cmd.delete('HBA or HBD')
find_hbonds('lig_47', 'prot_model')
Out[52]:
1

1 водородная связь, а не 6.

In [53]:
cmd.png('lig_47.png', 1000, 1000, ray=1)
In [54]:
display(Image('lig_47.png'))

У этого лиганда карбоксильная группа торчит наружу.

Посмотрим на лиганд 0 (NAG).

In [55]:
cmd.hide('everything', 'lig*')
cmd.show('sticks', 'lig_0')
In [58]:
cmd.delete('HBA or HBD')
find_hbonds('lig_0', 'prot_model')
Out[58]:
0

Мда, 0 водородных связей (а было 2).

In [59]:
cmd.png('lig_0.png', 1000, 1000, ray=1)
In [60]:
display(Image('lig_0.png'))

Тоже болтается в кармане, говорят, что 2 пары атомов вовлечены в гидрофобные взаимодействия.

36, 37, 47 и 0 нависают полярным кислородом над TRP73 (такая гидрофобная площадка на переднем плане слева, которая поддерживает лиганды). 36 вообще красавец: Он цепляется OH-группой за TRP, далее фурановое кольцо лежит в гидрофобике, а фенил прячется в карман (не очень-то гидрофобный). 46 тоже хорошо проходится по примерно гидрофобному жёлобу, а его карбоксильная группа цепляется за водородные связи в кармане. Итог: 36 и 46 хорошо задочились, причём как аналитически, так и визуально.