diff --git a/README.md b/README.md index bcf0efb..d327c5a 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ # make_dockable + diff --git a/example/expect_output/input/all.db2.gz b/example/expect_output/input/all.db2.gz new file mode 100644 index 0000000..a330e5a Binary files /dev/null and b/example/expect_output/input/all.db2.gz differ diff --git a/example/expect_output/input/conformer.input.mol2 b/example/expect_output/input/conformer.input.mol2 new file mode 100644 index 0000000..f5c904b --- /dev/null +++ b/example/expect_output/input/conformer.input.mol2 @@ -0,0 +1,10486 @@ +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.3682 4.1962 0.3648 C.2 1 LIG 0.0000 + 8 N8 2.4677 5.0047 1.3957 N.2 1 LIG 0.0000 + 9 C9 2.0033 4.3675 2.5106 C.ar 1 LIG 0.0000 + 10 C10 1.8872 4.7684 3.8381 C.ar 1 LIG 0.0000 + 11 N11 2.3039 6.0562 4.1959 N.pl3 1 LIG 0.0000 + 12 C12 2.1917 6.5036 5.5912 C.3 1 LIG 0.0000 + 13 C13 0.7314 6.6992 5.9662 C.3 1 LIG 0.0000 + 14 C14 0.6129 7.1573 7.4109 C.3 1 LIG 0.0000 + 15 C15 1.3776 8.4580 7.5966 C.3 1 LIG 0.0000 + 16 C16 2.8406 8.2654 7.2308 C.3 1 LIG 0.0000 + 17 C17 2.9603 7.8001 5.7884 C.3 1 LIG 0.0000 + 18 N18 1.3841 3.9296 4.7563 N.ar 1 LIG 0.0000 + 19 C19 0.9908 2.6989 4.3938 C.ar 1 LIG 0.0000 + 20 N20 1.0949 2.3073 3.1131 N.ar 1 LIG 0.0000 + 21 C21 1.5924 3.1057 2.1524 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.6367 4.4023 -0.5762 H 1 LIG 0.0000 + 34 H 2.6778 6.6716 3.5020 H 1 LIG 0.0000 + 35 H 2.5853 5.8028 6.1862 H 1 LIG 0.0000 + 36 H 0.2435 5.8336 5.8538 H 1 LIG 0.0000 + 37 H 0.3270 7.3901 5.3671 H 1 LIG 0.0000 + 38 H 0.9947 6.4574 8.0146 H 1 LIG 0.0000 + 39 H -0.3505 7.3023 7.6363 H 1 LIG 0.0000 + 40 H 1.3113 8.7464 8.5518 H 1 LIG 0.0000 + 41 H 0.9799 9.1616 7.0076 H 1 LIG 0.0000 + 42 H 3.3260 9.1328 7.3401 H 1 LIG 0.0000 + 43 H 3.2451 7.5786 7.8347 H 1 LIG 0.0000 + 44 H 2.5857 8.5019 5.1825 H 1 LIG 0.0000 + 45 H 3.9242 7.6497 5.5685 H 1 LIG 0.0000 + 46 H 0.6195 2.0719 5.0786 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.3682 4.1962 0.3648 C.2 1 LIG 0.0000 + 8 N8 2.4677 5.0047 1.3957 N.2 1 LIG 0.0000 + 9 C9 2.0033 4.3675 2.5106 C.ar 1 LIG 0.0000 + 10 C10 1.8872 4.7684 3.8381 C.ar 1 LIG 0.0000 + 11 N11 2.3039 6.0562 4.1959 N.pl3 1 LIG 0.0000 + 12 C12 2.1917 6.5036 5.5912 C.3 1 LIG 0.0000 + 13 C13 3.1932 5.7644 6.4639 C.3 1 LIG 0.0000 + 14 C14 3.0822 6.2294 7.9070 C.3 1 LIG 0.0000 + 15 C15 1.6697 5.9850 8.4130 C.3 1 LIG 0.0000 + 16 C16 0.6646 6.7292 7.5484 C.3 1 LIG 0.0000 + 17 C17 0.7796 6.2705 6.1035 C.3 1 LIG 0.0000 + 18 N18 1.3841 3.9296 4.7563 N.ar 1 LIG 0.0000 + 19 C19 0.9908 2.6989 4.3938 C.ar 1 LIG 0.0000 + 20 N20 1.0949 2.3073 3.1131 N.ar 1 LIG 0.0000 + 21 C21 1.5924 3.1057 2.1524 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.6367 4.4023 -0.5762 H 1 LIG 0.0000 + 34 H 2.6778 6.6716 3.5020 H 1 LIG 0.0000 + 35 H 2.3909 7.4827 5.6319 H 1 LIG 0.0000 + 36 H 4.1182 5.9450 6.1296 H 1 LIG 0.0000 + 37 H 3.0083 4.7826 6.4187 H 1 LIG 0.0000 + 38 H 3.2903 7.2061 7.9592 H 1 LIG 0.0000 + 39 H 3.7311 5.7197 8.4720 H 1 LIG 0.0000 + 40 H 1.5965 6.3081 9.3565 H 1 LIG 0.0000 + 41 H 1.4720 5.0053 8.3799 H 1 LIG 0.0000 + 42 H -0.2598 6.5442 7.8817 H 1 LIG 0.0000 + 43 H 0.8471 7.7111 7.5994 H 1 LIG 0.0000 + 44 H 0.5646 5.2955 6.0481 H 1 LIG 0.0000 + 45 H 0.1343 6.7867 5.5404 H 1 LIG 0.0000 + 46 H 0.6195 2.0719 5.0786 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.3682 4.1962 0.3648 C.2 1 LIG 0.0000 + 8 N8 2.4677 5.0047 1.3957 N.2 1 LIG 0.0000 + 9 C9 2.0033 4.3675 2.5106 C.ar 1 LIG 0.0000 + 10 C10 1.8872 4.7684 3.8381 C.ar 1 LIG 0.0000 + 11 N11 2.3039 6.0562 4.1959 N.pl3 1 LIG 0.0000 + 12 C12 2.1917 6.5036 5.5912 C.3 1 LIG 0.0000 + 13 C13 2.7043 7.9280 5.7308 C.3 1 LIG 0.0000 + 14 C14 2.5845 8.3945 7.1728 C.3 1 LIG 0.0000 + 15 C15 3.3777 7.4640 8.0761 C.3 1 LIG 0.0000 + 16 C16 2.8632 6.0393 7.9463 C.3 1 LIG 0.0000 + 17 C17 2.9755 5.5740 6.5034 C.3 1 LIG 0.0000 + 18 N18 1.3841 3.9296 4.7563 N.ar 1 LIG 0.0000 + 19 C19 0.9908 2.6989 4.3938 C.ar 1 LIG 0.0000 + 20 N20 1.0949 2.3073 3.1131 N.ar 1 LIG 0.0000 + 21 C21 1.5924 3.1057 2.1524 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.6367 4.4023 -0.5762 H 1 LIG 0.0000 + 34 H 2.6778 6.6716 3.5020 H 1 LIG 0.0000 + 35 H 1.2287 6.4808 5.8597 H 1 LIG 0.0000 + 36 H 2.1652 8.5314 5.1432 H 1 LIG 0.0000 + 37 H 3.6641 7.9616 5.4521 H 1 LIG 0.0000 + 38 H 1.6229 8.3851 7.4470 H 1 LIG 0.0000 + 39 H 2.9450 9.3239 7.2531 H 1 LIG 0.0000 + 40 H 3.2820 7.7644 9.0251 H 1 LIG 0.0000 + 41 H 4.3422 7.4919 7.8133 H 1 LIG 0.0000 + 42 H 3.4059 5.4369 8.5316 H 1 LIG 0.0000 + 43 H 1.9051 6.0062 8.2311 H 1 LIG 0.0000 + 44 H 3.9372 5.5756 6.2295 H 1 LIG 0.0000 + 45 H 2.6082 4.6472 6.4254 H 1 LIG 0.0000 + 46 H 0.6195 2.0719 5.0786 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.3682 4.1962 0.3648 C.2 1 LIG 0.0000 + 8 N8 2.4677 5.0047 1.3957 N.2 1 LIG 0.0000 + 9 C9 2.0033 4.3675 2.5106 C.ar 1 LIG 0.0000 + 10 C10 1.8872 4.7684 3.8381 C.ar 1 LIG 0.0000 + 11 N11 2.3039 6.0562 4.1959 N.pl3 1 LIG 0.0000 + 12 C12 2.1917 6.5037 5.5914 C.3 1 LIG 0.0000 + 13 C13 0.7307 6.6984 5.9637 C.3 1 LIG 0.0000 + 14 C14 0.6187 7.1550 7.4092 C.3 1 LIG 0.0000 + 15 C15 1.2545 6.1305 8.3353 C.3 1 LIG 0.0000 + 16 C16 2.7162 5.9447 7.9600 C.3 1 LIG 0.0000 + 17 C17 2.8377 5.4845 6.5160 C.3 1 LIG 0.0000 + 18 N18 1.3841 3.9296 4.7563 N.ar 1 LIG 0.0000 + 19 C19 0.9908 2.6989 4.3938 C.ar 1 LIG 0.0000 + 20 N20 1.0949 2.3073 3.1131 N.ar 1 LIG 0.0000 + 21 C21 1.5924 3.1057 2.1524 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.6367 4.4023 -0.5762 H 1 LIG 0.0000 + 34 H 2.6778 6.6716 3.5020 H 1 LIG 0.0000 + 35 H 2.6689 7.3769 5.6897 H 1 LIG 0.0000 + 36 H 0.2421 5.8332 5.8509 H 1 LIG 0.0000 + 37 H 0.3261 7.3902 5.3656 H 1 LIG 0.0000 + 38 H -0.3465 7.2616 7.6479 H 1 LIG 0.0000 + 39 H 1.0873 8.0319 7.5157 H 1 LIG 0.0000 + 40 H 0.7743 5.2578 8.2465 H 1 LIG 0.0000 + 41 H 1.1914 6.4511 9.2804 H 1 LIG 0.0000 + 42 H 3.1978 6.8141 8.0705 H 1 LIG 0.0000 + 43 H 3.1259 5.2580 8.5604 H 1 LIG 0.0000 + 44 H 3.8045 5.3881 6.2792 H 1 LIG 0.0000 + 45 H 2.3788 4.6025 6.4095 H 1 LIG 0.0000 + 46 H 0.6195 2.0719 5.0786 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.3682 4.1962 0.3648 C.2 1 LIG 0.0000 + 8 N8 2.4677 5.0047 1.3957 N.2 1 LIG 0.0000 + 9 C9 2.0033 4.3675 2.5106 C.ar 1 LIG 0.0000 + 10 C10 1.8872 4.7684 3.8381 C.ar 1 LIG 0.0000 + 11 N11 2.3039 6.0562 4.1959 N.pl3 1 LIG 0.0000 + 12 C12 2.1917 6.5037 5.5914 C.3 1 LIG 0.0000 + 13 C13 3.1941 5.7630 6.4617 C.3 1 LIG 0.0000 + 14 C14 3.0792 6.2331 7.9027 C.3 1 LIG 0.0000 + 15 C15 3.3287 7.7303 7.9891 C.3 1 LIG 0.0000 + 16 C16 2.3196 8.4643 7.1202 C.3 1 LIG 0.0000 + 17 C17 2.4298 8.0027 5.6758 C.3 1 LIG 0.0000 + 18 N18 1.3841 3.9296 4.7563 N.ar 1 LIG 0.0000 + 19 C19 0.9908 2.6989 4.3938 C.ar 1 LIG 0.0000 + 20 N20 1.0949 2.3073 3.1131 N.ar 1 LIG 0.0000 + 21 C21 1.5924 3.1057 2.1524 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.6367 4.4023 -0.5762 H 1 LIG 0.0000 + 34 H 2.6778 6.6716 3.5020 H 1 LIG 0.0000 + 35 H 1.2688 6.3044 5.9210 H 1 LIG 0.0000 + 36 H 4.1192 5.9429 6.1275 H 1 LIG 0.0000 + 37 H 3.0088 4.7813 6.4179 H 1 LIG 0.0000 + 38 H 3.7553 5.7530 8.4615 H 1 LIG 0.0000 + 39 H 2.1610 6.0312 8.2436 H 1 LIG 0.0000 + 40 H 4.2540 7.9329 7.6686 H 1 LIG 0.0000 + 41 H 3.2315 8.0301 8.9381 H 1 LIG 0.0000 + 42 H 1.3968 8.2766 7.4567 H 1 LIG 0.0000 + 43 H 2.4979 9.4471 7.1666 H 1 LIG 0.0000 + 44 H 1.7460 8.4786 5.1227 H 1 LIG 0.0000 + 45 H 3.3439 8.2131 5.3294 H 1 LIG 0.0000 + 46 H 0.6195 2.0719 5.0786 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.3682 4.1962 0.3648 C.2 1 LIG 0.0000 + 8 N8 2.4677 5.0047 1.3957 N.2 1 LIG 0.0000 + 9 C9 2.0033 4.3675 2.5106 C.ar 1 LIG 0.0000 + 10 C10 1.8872 4.7684 3.8381 C.ar 1 LIG 0.0000 + 11 N11 2.3039 6.0562 4.1959 N.pl3 1 LIG 0.0000 + 12 C12 2.1917 6.5037 5.5914 C.3 1 LIG 0.0000 + 13 C13 2.7049 7.9280 5.7282 C.3 1 LIG 0.0000 + 14 C14 2.5812 8.3891 7.1713 C.3 1 LIG 0.0000 + 15 C15 1.1316 8.3178 7.6240 C.3 1 LIG 0.0000 + 16 C16 0.6271 6.8899 7.4889 C.3 1 LIG 0.0000 + 17 C17 0.7438 6.4212 6.0473 C.3 1 LIG 0.0000 + 18 N18 1.3841 3.9296 4.7563 N.ar 1 LIG 0.0000 + 19 C19 0.9908 2.6989 4.3938 C.ar 1 LIG 0.0000 + 20 N20 1.0949 2.3073 3.1131 N.ar 1 LIG 0.0000 + 21 C21 1.5924 3.1057 2.1524 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.6367 4.4023 -0.5762 H 1 LIG 0.0000 + 34 H 2.6778 6.6716 3.5020 H 1 LIG 0.0000 + 35 H 2.7463 5.9040 6.1682 H 1 LIG 0.0000 + 36 H 2.1665 8.5318 5.1403 H 1 LIG 0.0000 + 37 H 3.6650 7.9620 5.4508 H 1 LIG 0.0000 + 38 H 2.9041 9.3327 7.2452 H 1 LIG 0.0000 + 39 H 3.1389 7.7993 7.7553 H 1 LIG 0.0000 + 40 H 0.5748 8.9231 7.0553 H 1 LIG 0.0000 + 41 H 1.0665 8.6051 8.5796 H 1 LIG 0.0000 + 42 H 1.1723 6.2908 8.0754 H 1 LIG 0.0000 + 43 H -0.3313 6.8508 7.7716 H 1 LIG 0.0000 + 44 H 0.4285 5.4746 5.9799 H 1 LIG 0.0000 + 45 H 0.1786 7.0033 5.4628 H 1 LIG 0.0000 + 46 H 0.6195 2.0719 5.0786 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.6763 3.0257 1.8820 C.2 1 LIG 0.0000 + 8 N8 2.6759 4.2392 2.3858 N.2 1 LIG 0.0000 + 9 C9 1.8356 5.0276 1.6531 C.ar 1 LIG 0.0000 + 10 C10 1.4802 6.3688 1.7590 C.ar 1 LIG 0.0000 + 11 N11 2.0392 7.1389 2.7859 N.pl3 1 LIG 0.0000 + 12 C12 1.6801 8.5576 2.9192 C.3 1 LIG 0.0000 + 13 C13 2.2762 9.3619 1.7752 C.3 1 LIG 0.0000 + 14 C14 1.9018 10.8293 1.9085 C.3 1 LIG 0.0000 + 15 C15 2.4054 11.3639 3.2395 C.3 1 LIG 0.0000 + 16 C16 1.8054 10.5680 4.3875 C.3 1 LIG 0.0000 + 17 C17 2.1729 9.0991 4.2514 C.3 1 LIG 0.0000 + 18 N18 0.6144 6.9099 0.8885 N.ar 1 LIG 0.0000 + 19 C19 0.0888 6.1552 -0.0886 C.ar 1 LIG 0.0000 + 20 N20 0.4317 4.8612 -0.2001 N.ar 1 LIG 0.0000 + 21 C21 1.2930 4.2674 0.6445 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 3.2003 2.2447 2.2219 H 1 LIG 0.0000 + 34 H 2.6828 6.7234 3.4287 H 1 LIG 0.0000 + 35 H 0.6842 8.6417 2.8866 H 1 LIG 0.0000 + 36 H 1.9260 9.0099 0.9072 H 1 LIG 0.0000 + 37 H 3.2721 9.2729 1.7934 H 1 LIG 0.0000 + 38 H 0.9072 10.9244 1.8663 H 1 LIG 0.0000 + 39 H 2.3182 11.3484 1.1621 H 1 LIG 0.0000 + 40 H 2.1419 12.3243 3.3305 H 1 LIG 0.0000 + 41 H 3.4020 11.2874 3.2702 H 1 LIG 0.0000 + 42 H 2.1598 10.9189 5.2543 H 1 LIG 0.0000 + 43 H 0.8100 10.6630 4.3714 H 1 LIG 0.0000 + 44 H 3.1668 9.0011 4.3009 H 1 LIG 0.0000 + 45 H 1.7495 8.5821 4.9954 H 1 LIG 0.0000 + 46 H -0.5596 6.5569 -0.7353 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.6763 3.0257 1.8820 C.2 1 LIG 0.0000 + 8 N8 2.6759 4.2392 2.3858 N.2 1 LIG 0.0000 + 9 C9 1.8356 5.0276 1.6531 C.ar 1 LIG 0.0000 + 10 C10 1.4802 6.3688 1.7590 C.ar 1 LIG 0.0000 + 11 N11 2.0392 7.1389 2.7859 N.pl3 1 LIG 0.0000 + 12 C12 1.6801 8.5576 2.9192 C.3 1 LIG 0.0000 + 13 C13 0.2392 8.6952 3.3839 C.3 1 LIG 0.0000 + 14 C14 -0.1328 10.1623 3.5272 C.3 1 LIG 0.0000 + 15 C15 0.0545 10.8673 2.1935 C.3 1 LIG 0.0000 + 16 C16 1.4964 10.7397 1.7285 C.3 1 LIG 0.0000 + 17 C17 1.8721 9.2729 1.5918 C.3 1 LIG 0.0000 + 18 N18 0.6144 6.9099 0.8885 N.ar 1 LIG 0.0000 + 19 C19 0.0888 6.1552 -0.0886 C.ar 1 LIG 0.0000 + 20 N20 0.4317 4.8612 -0.2001 N.ar 1 LIG 0.0000 + 21 C21 1.2930 4.2674 0.6445 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 3.2003 2.2447 2.2219 H 1 LIG 0.0000 + 34 H 2.6828 6.7234 3.4287 H 1 LIG 0.0000 + 35 H 2.2792 8.9782 3.6006 H 1 LIG 0.0000 + 36 H 0.1331 8.2403 4.2681 H 1 LIG 0.0000 + 37 H -0.3658 8.2658 2.7134 H 1 LIG 0.0000 + 38 H 0.4546 10.5891 4.2149 H 1 LIG 0.0000 + 39 H -1.0884 10.2372 3.8122 H 1 LIG 0.0000 + 40 H -0.1746 11.8352 2.2967 H 1 LIG 0.0000 + 41 H -0.5496 10.4524 1.5131 H 1 LIG 0.0000 + 42 H 1.5996 11.1917 0.8425 H 1 LIG 0.0000 + 43 H 2.0995 11.1749 2.3970 H 1 LIG 0.0000 + 44 H 1.2908 8.8460 0.8991 H 1 LIG 0.0000 + 45 H 2.8298 9.2016 1.3132 H 1 LIG 0.0000 + 46 H -0.5596 6.5569 -0.7353 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.6763 3.0257 1.8820 C.2 1 LIG 0.0000 + 8 N8 2.6759 4.2392 2.3858 N.2 1 LIG 0.0000 + 9 C9 1.8356 5.0276 1.6531 C.ar 1 LIG 0.0000 + 10 C10 1.4802 6.3688 1.7590 C.ar 1 LIG 0.0000 + 11 N11 2.0392 7.1389 2.7859 N.pl3 1 LIG 0.0000 + 12 C12 1.6801 8.5576 2.9192 C.3 1 LIG 0.0000 + 13 C13 2.4099 9.1773 4.1002 C.3 1 LIG 0.0000 + 14 C14 2.0437 10.6464 4.2369 C.3 1 LIG 0.0000 + 15 C15 0.5410 10.7808 4.4238 C.3 1 LIG 0.0000 + 16 C16 -0.1934 10.1699 3.2411 C.3 1 LIG 0.0000 + 17 C17 0.1777 8.7025 3.0986 C.3 1 LIG 0.0000 + 18 N18 0.6144 6.9099 0.8885 N.ar 1 LIG 0.0000 + 19 C19 0.0888 6.1552 -0.0886 C.ar 1 LIG 0.0000 + 20 N20 0.4317 4.8612 -0.2001 N.ar 1 LIG 0.0000 + 21 C21 1.2930 4.2674 0.6445 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 3.2003 2.2447 2.2219 H 1 LIG 0.0000 + 34 H 2.6828 6.7234 3.4287 H 1 LIG 0.0000 + 35 H 1.9521 9.0378 2.0853 H 1 LIG 0.0000 + 36 H 3.3964 9.0953 3.9579 H 1 LIG 0.0000 + 37 H 2.1526 8.6941 4.9370 H 1 LIG 0.0000 + 38 H 2.3217 11.1372 3.4111 H 1 LIG 0.0000 + 39 H 2.5139 11.0345 5.0295 H 1 LIG 0.0000 + 40 H 0.3027 11.7493 4.4959 H 1 LIG 0.0000 + 41 H 0.2690 10.3073 5.2616 H 1 LIG 0.0000 + 42 H -1.1795 10.2493 3.3869 H 1 LIG 0.0000 + 43 H 0.0604 10.6580 2.4060 H 1 LIG 0.0000 + 44 H -0.1063 8.2085 3.9204 H 1 LIG 0.0000 + 45 H -0.2889 8.3194 2.3014 H 1 LIG 0.0000 + 46 H -0.5596 6.5569 -0.7353 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.6763 3.0257 1.8820 C.2 1 LIG 0.0000 + 8 N8 2.6759 4.2392 2.3858 N.2 1 LIG 0.0000 + 9 C9 1.8356 5.0276 1.6531 C.ar 1 LIG 0.0000 + 10 C10 1.4802 6.3688 1.7590 C.ar 1 LIG 0.0000 + 11 N11 2.0392 7.1389 2.7859 N.pl3 1 LIG 0.0000 + 12 C12 1.6801 8.5578 2.9193 C.3 1 LIG 0.0000 + 13 C13 2.2773 9.3596 1.7742 C.3 1 LIG 0.0000 + 14 C14 1.8984 10.8252 1.9123 C.3 1 LIG 0.0000 + 15 C15 0.3859 10.9795 1.9158 C.3 1 LIG 0.0000 + 16 C16 -0.2035 10.1790 3.0662 C.3 1 LIG 0.0000 + 17 C17 0.1677 8.7105 2.9344 C.3 1 LIG 0.0000 + 18 N18 0.6144 6.9099 0.8885 N.ar 1 LIG 0.0000 + 19 C19 0.0888 6.1552 -0.0886 C.ar 1 LIG 0.0000 + 20 N20 0.4317 4.8612 -0.2001 N.ar 1 LIG 0.0000 + 21 C21 1.2930 4.2674 0.6445 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 3.2003 2.2447 2.2219 H 1 LIG 0.0000 + 34 H 2.6828 6.7234 3.4287 H 1 LIG 0.0000 + 35 H 2.0481 8.9042 3.7822 H 1 LIG 0.0000 + 36 H 1.9278 9.0077 0.9059 H 1 LIG 0.0000 + 37 H 3.2733 9.2720 1.7927 H 1 LIG 0.0000 + 38 H 2.2809 11.3389 1.1442 H 1 LIG 0.0000 + 39 H 2.2687 11.1826 2.7697 H 1 LIG 0.0000 + 40 H 0.0146 10.6424 1.0507 H 1 LIG 0.0000 + 41 H 0.1498 11.9449 2.0263 H 1 LIG 0.0000 + 42 H 0.1534 10.5328 3.9308 H 1 LIG 0.0000 + 43 H -1.1993 10.2695 3.0546 H 1 LIG 0.0000 + 44 H -0.2090 8.2026 3.7090 H 1 LIG 0.0000 + 45 H -0.2106 8.3482 2.0825 H 1 LIG 0.0000 + 46 H -0.5596 6.5569 -0.7353 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.6763 3.0257 1.8820 C.2 1 LIG 0.0000 + 8 N8 2.6759 4.2392 2.3858 N.2 1 LIG 0.0000 + 9 C9 1.8356 5.0276 1.6531 C.ar 1 LIG 0.0000 + 10 C10 1.4802 6.3688 1.7590 C.ar 1 LIG 0.0000 + 11 N11 2.0392 7.1389 2.7859 N.pl3 1 LIG 0.0000 + 12 C12 1.6801 8.5578 2.9193 C.3 1 LIG 0.0000 + 13 C13 0.2390 8.6925 3.3839 C.3 1 LIG 0.0000 + 14 C14 -0.1264 10.1611 3.5267 C.3 1 LIG 0.0000 + 15 C15 0.8015 10.8398 4.5214 C.3 1 LIG 0.0000 + 16 C16 2.2400 10.7051 4.0476 C.3 1 LIG 0.0000 + 17 C17 2.6155 9.2388 3.9053 C.3 1 LIG 0.0000 + 18 N18 0.6144 6.9099 0.8885 N.ar 1 LIG 0.0000 + 19 C19 0.0888 6.1552 -0.0886 C.ar 1 LIG 0.0000 + 20 N20 0.4317 4.8612 -0.2001 N.ar 1 LIG 0.0000 + 21 C21 1.2930 4.2674 0.6445 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 3.2003 2.2447 2.2219 H 1 LIG 0.0000 + 34 H 2.6828 6.7234 3.4287 H 1 LIG 0.0000 + 35 H 1.7742 8.9998 2.0272 H 1 LIG 0.0000 + 36 H 0.1322 8.2373 4.2678 H 1 LIG 0.0000 + 37 H -0.3665 8.2643 2.7131 H 1 LIG 0.0000 + 38 H -1.0696 10.2367 3.8503 H 1 LIG 0.0000 + 39 H -0.0422 10.6102 2.6372 H 1 LIG 0.0000 + 40 H 0.7039 10.4065 5.4174 H 1 LIG 0.0000 + 41 H 0.5633 11.8085 4.5920 H 1 LIG 0.0000 + 42 H 2.3389 11.1582 3.1616 H 1 LIG 0.0000 + 43 H 2.8481 11.1380 4.7131 H 1 LIG 0.0000 + 44 H 3.5560 9.1682 3.5729 H 1 LIG 0.0000 + 45 H 2.5422 8.7899 4.7959 H 1 LIG 0.0000 + 46 H -0.5596 6.5569 -0.7353 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.6763 3.0257 1.8820 C.2 1 LIG 0.0000 + 8 N8 2.6759 4.2392 2.3858 N.2 1 LIG 0.0000 + 9 C9 1.8356 5.0276 1.6531 C.ar 1 LIG 0.0000 + 10 C10 1.4802 6.3688 1.7590 C.ar 1 LIG 0.0000 + 11 N11 2.0392 7.1389 2.7859 N.pl3 1 LIG 0.0000 + 12 C12 1.6801 8.5578 2.9193 C.3 1 LIG 0.0000 + 13 C13 2.4111 9.1748 4.1006 C.3 1 LIG 0.0000 + 14 C14 2.0420 10.6436 4.2312 C.3 1 LIG 0.0000 + 15 C15 2.3991 11.3912 2.9565 C.3 1 LIG 0.0000 + 16 C16 1.6607 10.7716 1.7806 C.3 1 LIG 0.0000 + 17 C17 2.0267 9.3026 1.6402 C.3 1 LIG 0.0000 + 18 N18 0.6144 6.9099 0.8885 N.ar 1 LIG 0.0000 + 19 C19 0.0888 6.1552 -0.0886 C.ar 1 LIG 0.0000 + 20 N20 0.4317 4.8612 -0.2001 N.ar 1 LIG 0.0000 + 21 C21 1.2930 4.2674 0.6445 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 3.2003 2.2447 2.2219 H 1 LIG 0.0000 + 34 H 2.6828 6.7234 3.4287 H 1 LIG 0.0000 + 35 H 0.6951 8.6280 3.0768 H 1 LIG 0.0000 + 36 H 3.3976 9.0927 3.9592 H 1 LIG 0.0000 + 37 H 2.1532 8.6929 4.9380 H 1 LIG 0.0000 + 38 H 2.5426 11.0428 4.9993 H 1 LIG 0.0000 + 39 H 1.0590 10.7236 4.3965 H 1 LIG 0.0000 + 40 H 3.3849 11.3309 2.8000 H 1 LIG 0.0000 + 41 H 2.1342 12.3511 3.0478 H 1 LIG 0.0000 + 42 H 0.6754 10.8529 1.9304 H 1 LIG 0.0000 + 43 H 1.9115 11.2553 0.9421 H 1 LIG 0.0000 + 44 H 1.5171 8.9056 0.8769 H 1 LIG 0.0000 + 45 H 3.0077 9.2208 1.4644 H 1 LIG 0.0000 + 46 H -0.5596 6.5569 -0.7353 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 2.1572 2.9670 2.1342 C.2 1 LIG 0.0000 + 8 N8 2.3375 4.1995 2.5521 N.2 1 LIG 0.0000 + 9 C9 2.1292 5.0596 1.5121 C.ar 1 LIG 0.0000 + 10 C10 2.1921 6.4465 1.4171 C.ar 1 LIG 0.0000 + 11 N11 2.5224 7.1894 2.5568 N.pl3 1 LIG 0.0000 + 12 C12 2.5955 8.6555 2.4827 C.3 1 LIG 0.0000 + 13 C13 3.8012 9.0794 1.6598 C.3 1 LIG 0.0000 + 14 C14 3.8696 10.5959 1.5802 C.3 1 LIG 0.0000 + 15 C15 2.5986 11.1477 0.9545 C.3 1 LIG 0.0000 + 16 C16 1.3980 10.7237 1.7855 C.3 1 LIG 0.0000 + 17 C17 1.3196 9.2076 1.8676 C.3 1 LIG 0.0000 + 18 N18 1.9383 7.0566 0.2495 N.ar 1 LIG 0.0000 + 19 C19 1.6227 6.3271 -0.8316 C.ar 1 LIG 0.0000 + 20 N20 1.5655 4.9877 -0.7485 N.ar 1 LIG 0.0000 + 21 C21 1.8092 4.3245 0.3956 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 2.2429 2.1373 2.6858 H 1 LIG 0.0000 + 34 H 2.7086 6.7226 3.4213 H 1 LIG 0.0000 + 35 H 2.6919 9.0211 3.4085 H 1 LIG 0.0000 + 36 H 3.7212 8.7027 0.7369 H 1 LIG 0.0000 + 37 H 4.6345 8.7325 2.0903 H 1 LIG 0.0000 + 38 H 4.6551 10.8621 1.0216 H 1 LIG 0.0000 + 39 H 3.9735 10.9705 2.5016 H 1 LIG 0.0000 + 40 H 2.5030 10.7914 0.0250 H 1 LIG 0.0000 + 41 H 2.6478 12.1460 0.9254 H 1 LIG 0.0000 + 42 H 1.4863 11.0996 2.7079 H 1 LIG 0.0000 + 43 H 0.5631 11.0744 1.3612 H 1 LIG 0.0000 + 44 H 0.5383 8.9463 2.4344 H 1 LIG 0.0000 + 45 H 1.2051 8.8313 0.9482 H 1 LIG 0.0000 + 46 H 1.4295 6.7816 -1.7011 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.5905 3.0893 2.1516 C.2 1 LIG 0.0000 + 8 N8 1.9668 4.2783 2.5652 N.2 1 LIG 0.0000 + 9 C9 2.4488 4.9895 1.5038 C.ar 1 LIG 0.0000 + 10 C10 2.9669 6.2766 1.3969 C.ar 1 LIG 0.0000 + 11 N11 3.0466 7.0725 2.5459 N.pl3 1 LIG 0.0000 + 12 C12 3.5899 8.4352 2.4595 C.3 1 LIG 0.0000 + 13 C13 5.0860 8.3902 2.1935 C.3 1 LIG 0.0000 + 14 C14 5.6492 9.7991 2.0988 C.3 1 LIG 0.0000 + 15 C15 5.3722 10.5458 3.3937 C.3 1 LIG 0.0000 + 16 C16 3.8764 10.6008 3.6600 C.3 1 LIG 0.0000 + 17 C17 3.3104 9.1925 3.7476 C.3 1 LIG 0.0000 + 18 N18 3.3812 6.7423 0.2089 N.ar 1 LIG 0.0000 + 19 C19 3.2960 5.9644 -0.8811 C.ar 1 LIG 0.0000 + 20 N20 2.8020 4.7190 -0.7842 N.ar 1 LIG 0.0000 + 21 C21 2.3716 4.2019 0.3799 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 1.1983 2.3636 2.7168 H 1 LIG 0.0000 + 34 H 2.7337 6.7137 3.4253 H 1 LIG 0.0000 + 35 H 3.1430 8.9122 1.7027 H 1 LIG 0.0000 + 36 H 5.2534 7.9098 1.3326 H 1 LIG 0.0000 + 37 H 5.5391 7.9036 2.9403 H 1 LIG 0.0000 + 38 H 5.2154 10.2808 1.3374 H 1 LIG 0.0000 + 39 H 6.6363 9.7535 1.9454 H 1 LIG 0.0000 + 40 H 5.7289 11.4771 3.3205 H 1 LIG 0.0000 + 41 H 5.8250 10.0739 4.1502 H 1 LIG 0.0000 + 42 H 3.7112 11.0781 4.5231 H 1 LIG 0.0000 + 43 H 3.4255 11.0930 2.9154 H 1 LIG 0.0000 + 44 H 3.7376 8.7116 4.5132 H 1 LIG 0.0000 + 45 H 2.3225 9.2418 3.8944 H 1 LIG 0.0000 + 46 H 3.6010 6.3125 -1.7676 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.5905 3.0893 2.1516 C.2 1 LIG 0.0000 + 8 N8 1.9668 4.2783 2.5652 N.2 1 LIG 0.0000 + 9 C9 2.4488 4.9895 1.5038 C.ar 1 LIG 0.0000 + 10 C10 2.9669 6.2766 1.3969 C.ar 1 LIG 0.0000 + 11 N11 3.0466 7.0725 2.5459 N.pl3 1 LIG 0.0000 + 12 C12 3.5899 8.4352 2.4595 C.3 1 LIG 0.0000 + 13 C13 2.6277 9.3395 1.7062 C.3 1 LIG 0.0000 + 14 C14 3.1856 10.7511 1.6201 C.3 1 LIG 0.0000 + 15 C15 4.5334 10.7233 0.9174 C.3 1 LIG 0.0000 + 16 C16 5.5020 9.8267 1.6718 C.3 1 LIG 0.0000 + 17 C17 4.9420 8.4164 1.7651 C.3 1 LIG 0.0000 + 18 N18 3.3812 6.7423 0.2089 N.ar 1 LIG 0.0000 + 19 C19 3.2960 5.9644 -0.8811 C.ar 1 LIG 0.0000 + 20 N20 2.8020 4.7190 -0.7842 N.ar 1 LIG 0.0000 + 21 C21 2.3716 4.2019 0.3799 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 1.1983 2.3636 2.7168 H 1 LIG 0.0000 + 34 H 2.7337 6.7137 3.4253 H 1 LIG 0.0000 + 35 H 3.7091 8.7931 3.3857 H 1 LIG 0.0000 + 36 H 1.7507 9.3605 2.1863 H 1 LIG 0.0000 + 37 H 2.4934 8.9812 0.7823 H 1 LIG 0.0000 + 38 H 3.2983 11.1214 2.5421 H 1 LIG 0.0000 + 39 H 2.5528 11.3284 1.1040 H 1 LIG 0.0000 + 40 H 4.9045 11.6511 0.8784 H 1 LIG 0.0000 + 41 H 4.4141 10.3727 -0.0115 H 1 LIG 0.0000 + 42 H 6.3770 9.8039 1.1881 H 1 LIG 0.0000 + 43 H 5.6399 10.1897 2.5933 H 1 LIG 0.0000 + 44 H 4.8354 8.0414 0.8442 H 1 LIG 0.0000 + 45 H 5.5738 7.8437 2.2873 H 1 LIG 0.0000 + 46 H 3.6010 6.3125 -1.7676 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.5905 3.0893 2.1516 C.2 1 LIG 0.0000 + 8 N8 1.9668 4.2783 2.5652 N.2 1 LIG 0.0000 + 9 C9 2.4488 4.9895 1.5038 C.ar 1 LIG 0.0000 + 10 C10 2.9669 6.2766 1.3969 C.ar 1 LIG 0.0000 + 11 N11 3.0466 7.0725 2.5459 N.pl3 1 LIG 0.0000 + 12 C12 3.5899 8.4352 2.4595 C.3 1 LIG 0.0000 + 13 C13 3.5740 9.0966 3.8282 C.3 1 LIG 0.0000 + 14 C14 4.1404 10.5049 3.7421 C.3 1 LIG 0.0000 + 15 C15 3.3205 11.3235 2.7579 C.3 1 LIG 0.0000 + 16 C16 3.3402 10.6704 1.3851 C.3 1 LIG 0.0000 + 17 C17 2.7809 9.2594 1.4711 C.3 1 LIG 0.0000 + 18 N18 3.3812 6.7423 0.2089 N.ar 1 LIG 0.0000 + 19 C19 3.2960 5.9644 -0.8811 C.ar 1 LIG 0.0000 + 20 N20 2.8020 4.7190 -0.7842 N.ar 1 LIG 0.0000 + 21 C21 2.3716 4.2019 0.3799 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 1.1983 2.3636 2.7168 H 1 LIG 0.0000 + 34 H 2.7337 6.7137 3.4253 H 1 LIG 0.0000 + 35 H 4.5354 8.3846 2.1379 H 1 LIG 0.0000 + 36 H 4.1282 8.5567 4.4617 H 1 LIG 0.0000 + 37 H 2.6325 9.1399 4.1626 H 1 LIG 0.0000 + 38 H 5.0899 10.4635 3.4311 H 1 LIG 0.0000 + 39 H 4.1036 10.9344 4.6444 H 1 LIG 0.0000 + 40 H 3.7069 12.2434 2.6913 H 1 LIG 0.0000 + 41 H 2.3764 11.3812 3.0824 H 1 LIG 0.0000 + 42 H 2.7824 11.2096 0.7541 H 1 LIG 0.0000 + 43 H 4.2815 10.6335 1.0496 H 1 LIG 0.0000 + 44 H 1.8290 9.2990 1.7748 H 1 LIG 0.0000 + 45 H 2.8254 8.8306 0.5688 H 1 LIG 0.0000 + 46 H 3.6010 6.3125 -1.7676 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.5905 3.0893 2.1516 C.2 1 LIG 0.0000 + 8 N8 1.9668 4.2783 2.5652 N.2 1 LIG 0.0000 + 9 C9 2.4488 4.9895 1.5038 C.ar 1 LIG 0.0000 + 10 C10 2.9669 6.2766 1.3969 C.ar 1 LIG 0.0000 + 11 N11 3.0466 7.0725 2.5459 N.pl3 1 LIG 0.0000 + 12 C12 3.5900 8.4354 2.4595 C.3 1 LIG 0.0000 + 13 C13 2.6260 9.3374 1.7059 C.3 1 LIG 0.0000 + 14 C14 3.1886 10.7472 1.6244 C.3 1 LIG 0.0000 + 15 C15 3.4274 11.2999 3.0204 C.3 1 LIG 0.0000 + 16 C16 4.3958 10.3954 3.7659 C.3 1 LIG 0.0000 + 17 C17 3.8394 8.9834 3.8554 C.3 1 LIG 0.0000 + 18 N18 3.3812 6.7423 0.2089 N.ar 1 LIG 0.0000 + 19 C19 3.2960 5.9644 -0.8811 C.ar 1 LIG 0.0000 + 20 N20 2.8020 4.7190 -0.7842 N.ar 1 LIG 0.0000 + 21 C21 2.3716 4.2019 0.3799 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 1.1983 2.3636 2.7168 H 1 LIG 0.0000 + 34 H 2.7337 6.7137 3.4253 H 1 LIG 0.0000 + 35 H 4.4583 8.4059 1.9644 H 1 LIG 0.0000 + 36 H 1.7486 9.3583 2.1853 H 1 LIG 0.0000 + 37 H 2.4923 8.9802 0.7815 H 1 LIG 0.0000 + 38 H 2.5381 11.3349 1.1434 H 1 LIG 0.0000 + 39 H 4.0542 10.7287 1.1241 H 1 LIG 0.0000 + 40 H 2.5597 11.3394 3.5160 H 1 LIG 0.0000 + 41 H 3.8149 12.2193 2.9529 H 1 LIG 0.0000 + 42 H 5.2691 10.3753 3.2792 H 1 LIG 0.0000 + 43 H 4.5368 10.7532 4.6890 H 1 LIG 0.0000 + 44 H 4.4970 8.3974 4.3289 H 1 LIG 0.0000 + 45 H 2.9788 8.9978 4.3645 H 1 LIG 0.0000 + 46 H 3.6010 6.3125 -1.7676 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.5905 3.0893 2.1516 C.2 1 LIG 0.0000 + 8 N8 1.9668 4.2783 2.5652 N.2 1 LIG 0.0000 + 9 C9 2.4488 4.9895 1.5038 C.ar 1 LIG 0.0000 + 10 C10 2.9669 6.2766 1.3969 C.ar 1 LIG 0.0000 + 11 N11 3.0466 7.0725 2.5459 N.pl3 1 LIG 0.0000 + 12 C12 3.5900 8.4354 2.4595 C.3 1 LIG 0.0000 + 13 C13 3.5729 9.0944 3.8293 C.3 1 LIG 0.0000 + 14 C14 4.1415 10.5011 3.7369 C.3 1 LIG 0.0000 + 15 C15 5.5641 10.4595 3.2025 C.3 1 LIG 0.0000 + 16 C16 5.5724 9.8037 1.8307 C.3 1 LIG 0.0000 + 17 C17 5.0084 8.3943 1.9143 C.3 1 LIG 0.0000 + 18 N18 3.3812 6.7423 0.2089 N.ar 1 LIG 0.0000 + 19 C19 3.2960 5.9644 -0.8811 C.ar 1 LIG 0.0000 + 20 N20 2.8020 4.7190 -0.7842 N.ar 1 LIG 0.0000 + 21 C21 2.3716 4.2019 0.3799 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 1.1983 2.3636 2.7168 H 1 LIG 0.0000 + 34 H 2.7337 6.7137 3.4253 H 1 LIG 0.0000 + 35 H 3.0201 8.9712 1.8365 H 1 LIG 0.0000 + 36 H 4.1265 8.5545 4.4633 H 1 LIG 0.0000 + 37 H 2.6315 9.1390 4.1636 H 1 LIG 0.0000 + 38 H 4.1424 10.9172 4.6462 H 1 LIG 0.0000 + 39 H 3.5733 11.0470 3.1211 H 1 LIG 0.0000 + 40 H 6.1395 9.9319 3.8274 H 1 LIG 0.0000 + 41 H 5.9196 11.3912 3.1284 H 1 LIG 0.0000 + 42 H 5.0136 10.3456 1.2030 H 1 LIG 0.0000 + 43 H 6.5118 9.7631 1.4905 H 1 LIG 0.0000 + 44 H 5.0009 7.9856 1.0016 H 1 LIG 0.0000 + 45 H 5.5811 7.8435 2.5214 H 1 LIG 0.0000 + 46 H 3.6010 6.3125 -1.7676 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.2824 4.2599 0.6344 C.2 1 LIG 0.0000 + 8 N8 1.7586 5.0439 1.5751 N.2 1 LIG 0.0000 + 9 C9 2.6165 4.3295 2.3613 C.ar 1 LIG 0.0000 + 10 C10 3.3739 4.6761 3.4760 C.ar 1 LIG 0.0000 + 11 N11 3.3112 5.9898 3.9559 N.pl3 1 LIG 0.0000 + 12 C12 4.1014 6.3812 5.1315 C.3 1 LIG 0.0000 + 13 C13 3.5412 5.7275 6.3845 C.3 1 LIG 0.0000 + 14 C14 4.3603 6.1271 7.6013 C.3 1 LIG 0.0000 + 15 C15 4.3443 7.6398 7.7508 C.3 1 LIG 0.0000 + 16 C16 4.9116 8.2982 6.5033 C.3 1 LIG 0.0000 + 17 C17 4.0979 7.8935 5.2845 C.3 1 LIG 0.0000 + 18 N18 4.1508 3.7620 4.0767 N.ar 1 LIG 0.0000 + 19 C19 4.1980 2.5081 3.6013 C.ar 1 LIG 0.0000 + 20 N20 3.4653 2.1651 2.5290 N.ar 1 LIG 0.0000 + 21 C21 2.6710 3.0402 1.8878 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 0.6346 4.5212 -0.0812 H 1 LIG 0.0000 + 34 H 2.7287 6.6619 3.4987 H 1 LIG 0.0000 + 35 H 5.0440 6.0733 5.0023 H 1 LIG 0.0000 + 36 H 3.5709 4.7335 6.2791 H 1 LIG 0.0000 + 37 H 2.5940 6.0208 6.5140 H 1 LIG 0.0000 + 38 H 5.3029 5.8138 7.4857 H 1 LIG 0.0000 + 39 H 3.9675 5.7074 8.4196 H 1 LIG 0.0000 + 40 H 4.8984 7.8992 8.5418 H 1 LIG 0.0000 + 41 H 3.4029 7.9481 7.8876 H 1 LIG 0.0000 + 42 H 4.8775 9.2920 6.6089 H 1 LIG 0.0000 + 43 H 5.8606 8.0086 6.3786 H 1 LIG 0.0000 + 44 H 3.1565 8.2124 5.3948 H 1 LIG 0.0000 + 45 H 4.4972 8.3094 4.4675 H 1 LIG 0.0000 + 46 H 4.7800 1.8275 4.0463 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.2824 4.2599 0.6344 C.2 1 LIG 0.0000 + 8 N8 1.7586 5.0439 1.5751 N.2 1 LIG 0.0000 + 9 C9 2.6165 4.3295 2.3613 C.ar 1 LIG 0.0000 + 10 C10 3.3739 4.6761 3.4760 C.ar 1 LIG 0.0000 + 11 N11 3.3112 5.9898 3.9559 N.pl3 1 LIG 0.0000 + 12 C12 4.1014 6.3812 5.1315 C.3 1 LIG 0.0000 + 13 C13 5.5817 6.4086 4.7863 C.3 1 LIG 0.0000 + 14 C14 6.4006 6.8181 5.9999 C.3 1 LIG 0.0000 + 15 C15 6.1485 5.8411 7.1369 C.3 1 LIG 0.0000 + 16 C16 4.6703 5.8162 7.4916 C.3 1 LIG 0.0000 + 17 C17 3.8495 5.4140 6.2768 C.3 1 LIG 0.0000 + 18 N18 4.1508 3.7620 4.0767 N.ar 1 LIG 0.0000 + 19 C19 4.1980 2.5081 3.6013 C.ar 1 LIG 0.0000 + 20 N20 3.4653 2.1651 2.5290 N.ar 1 LIG 0.0000 + 21 C21 2.6710 3.0402 1.8878 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 0.6346 4.5212 -0.0812 H 1 LIG 0.0000 + 34 H 2.7287 6.6619 3.4987 H 1 LIG 0.0000 + 35 H 3.8208 7.2976 5.4170 H 1 LIG 0.0000 + 36 H 5.7358 7.0652 4.0479 H 1 LIG 0.0000 + 37 H 5.8675 5.4980 4.4877 H 1 LIG 0.0000 + 38 H 6.1341 7.7384 6.2864 H 1 LIG 0.0000 + 39 H 7.3723 6.8108 5.7638 H 1 LIG 0.0000 + 40 H 6.6755 6.1240 7.9382 H 1 LIG 0.0000 + 41 H 6.4358 4.9256 6.8552 H 1 LIG 0.0000 + 42 H 4.5176 5.1564 8.2274 H 1 LIG 0.0000 + 43 H 4.3876 6.7259 7.7957 H 1 LIG 0.0000 + 44 H 4.1092 4.4909 5.9932 H 1 LIG 0.0000 + 45 H 2.8783 5.4288 6.5145 H 1 LIG 0.0000 + 46 H 4.7800 1.8275 4.0463 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.2824 4.2599 0.6344 C.2 1 LIG 0.0000 + 8 N8 1.7586 5.0439 1.5751 N.2 1 LIG 0.0000 + 9 C9 2.6165 4.3295 2.3613 C.ar 1 LIG 0.0000 + 10 C10 3.3739 4.6761 3.4760 C.ar 1 LIG 0.0000 + 11 N11 3.3112 5.9898 3.9559 N.pl3 1 LIG 0.0000 + 12 C12 4.1014 6.3812 5.1315 C.3 1 LIG 0.0000 + 13 C13 3.8684 7.8473 5.4589 C.3 1 LIG 0.0000 + 14 C14 4.6812 8.2530 6.6779 C.3 1 LIG 0.0000 + 15 C15 6.1572 8.0068 6.4101 C.3 1 LIG 0.0000 + 16 C16 6.3967 6.5399 6.0903 C.3 1 LIG 0.0000 + 17 C17 5.5788 6.1309 4.8759 C.3 1 LIG 0.0000 + 18 N18 4.1508 3.7620 4.0767 N.ar 1 LIG 0.0000 + 19 C19 4.1980 2.5081 3.6013 C.ar 1 LIG 0.0000 + 20 N20 3.4653 2.1651 2.5290 N.ar 1 LIG 0.0000 + 21 C21 2.6710 3.0402 1.8878 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 0.6346 4.5212 -0.0812 H 1 LIG 0.0000 + 34 H 2.7287 6.6619 3.4987 H 1 LIG 0.0000 + 35 H 3.8119 5.8275 5.9123 H 1 LIG 0.0000 + 36 H 2.8971 7.9927 5.6471 H 1 LIG 0.0000 + 37 H 4.1441 8.4074 4.6777 H 1 LIG 0.0000 + 38 H 4.3910 7.7114 7.4669 H 1 LIG 0.0000 + 39 H 4.5346 9.2238 6.8679 H 1 LIG 0.0000 + 40 H 6.6862 8.2586 7.2205 H 1 LIG 0.0000 + 41 H 6.4496 8.5658 5.6342 H 1 LIG 0.0000 + 42 H 7.3678 6.3972 5.8987 H 1 LIG 0.0000 + 43 H 6.1263 5.9817 6.8748 H 1 LIG 0.0000 + 44 H 5.8726 6.6661 4.0839 H 1 LIG 0.0000 + 45 H 5.7225 5.1583 4.6928 H 1 LIG 0.0000 + 46 H 4.7800 1.8275 4.0463 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.2824 4.2599 0.6344 C.2 1 LIG 0.0000 + 8 N8 1.7586 5.0439 1.5751 N.2 1 LIG 0.0000 + 9 C9 2.6165 4.3295 2.3613 C.ar 1 LIG 0.0000 + 10 C10 3.3739 4.6761 3.4760 C.ar 1 LIG 0.0000 + 11 N11 3.3112 5.9898 3.9559 N.pl3 1 LIG 0.0000 + 12 C12 4.1015 6.3812 5.1317 C.3 1 LIG 0.0000 + 13 C13 3.5393 5.7263 6.3829 C.3 1 LIG 0.0000 + 14 C14 4.3630 6.1284 7.5955 C.3 1 LIG 0.0000 + 15 C15 5.8142 5.7166 7.4057 C.3 1 LIG 0.0000 + 16 C16 6.3707 6.3792 6.1555 C.3 1 LIG 0.0000 + 17 C17 5.5546 5.9796 4.9366 C.3 1 LIG 0.0000 + 18 N18 4.1508 3.7620 4.0767 N.ar 1 LIG 0.0000 + 19 C19 4.1980 2.5081 3.6013 C.ar 1 LIG 0.0000 + 20 N20 3.4653 2.1651 2.5290 N.ar 1 LIG 0.0000 + 21 C21 2.6710 3.0402 1.8878 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 0.6346 4.5212 -0.0812 H 1 LIG 0.0000 + 34 H 2.7287 6.6619 3.4987 H 1 LIG 0.0000 + 35 H 4.0525 7.3744 5.2374 H 1 LIG 0.0000 + 36 H 3.5682 4.7322 6.2779 H 1 LIG 0.0000 + 37 H 2.5924 6.0203 6.5136 H 1 LIG 0.0000 + 38 H 3.9955 5.6773 8.4087 H 1 LIG 0.0000 + 39 H 4.3141 7.1202 7.7137 H 1 LIG 0.0000 + 40 H 5.8685 4.7229 7.3085 H 1 LIG 0.0000 + 41 H 6.3486 6.0034 8.2008 H 1 LIG 0.0000 + 42 H 6.3347 7.3725 6.2651 H 1 LIG 0.0000 + 43 H 7.3198 6.0923 6.0252 H 1 LIG 0.0000 + 44 H 5.9200 6.4401 4.1276 H 1 LIG 0.0000 + 45 H 5.6107 4.9892 4.8102 H 1 LIG 0.0000 + 46 H 4.7800 1.8275 4.0463 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.2824 4.2599 0.6344 C.2 1 LIG 0.0000 + 8 N8 1.7586 5.0439 1.5751 N.2 1 LIG 0.0000 + 9 C9 2.6165 4.3295 2.3613 C.ar 1 LIG 0.0000 + 10 C10 3.3739 4.6761 3.4760 C.ar 1 LIG 0.0000 + 11 N11 3.3112 5.9898 3.9559 N.pl3 1 LIG 0.0000 + 12 C12 4.1015 6.3812 5.1317 C.3 1 LIG 0.0000 + 13 C13 5.5810 6.4079 4.7837 C.3 1 LIG 0.0000 + 14 C14 6.3942 6.8192 6.0004 C.3 1 LIG 0.0000 + 15 C15 5.9545 8.1904 6.4880 C.3 1 LIG 0.0000 + 16 C16 4.4754 8.1545 6.8385 C.3 1 LIG 0.0000 + 17 C17 3.6537 7.7473 5.6259 C.3 1 LIG 0.0000 + 18 N18 4.1508 3.7620 4.0767 N.ar 1 LIG 0.0000 + 19 C19 4.1980 2.5081 3.6013 C.ar 1 LIG 0.0000 + 20 N20 3.4653 2.1651 2.5290 N.ar 1 LIG 0.0000 + 21 C21 2.6710 3.0402 1.8878 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 0.6346 4.5212 -0.0812 H 1 LIG 0.0000 + 34 H 2.7287 6.6619 3.4987 H 1 LIG 0.0000 + 35 H 3.9529 5.7105 5.8583 H 1 LIG 0.0000 + 36 H 5.7356 7.0639 4.0449 H 1 LIG 0.0000 + 37 H 5.8677 5.4972 4.4863 H 1 LIG 0.0000 + 38 H 7.3630 6.8512 5.7545 H 1 LIG 0.0000 + 39 H 6.2575 6.1497 6.7305 H 1 LIG 0.0000 + 40 H 6.1098 8.8659 5.7672 H 1 LIG 0.0000 + 41 H 6.4831 8.4409 7.2991 H 1 LIG 0.0000 + 42 H 4.3270 7.4937 7.5742 H 1 LIG 0.0000 + 43 H 4.1866 9.0624 7.1425 H 1 LIG 0.0000 + 44 H 2.6870 7.7078 5.8787 H 1 LIG 0.0000 + 45 H 3.7806 8.4211 4.8980 H 1 LIG 0.0000 + 46 H 4.7800 1.8275 4.0463 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.9764 -1.8037 -0.8118 O.3 1 LIG 0.0000 + 2 C2 1.8141 -1.6328 0.5885 C.3 1 LIG 0.0000 + 3 C3 1.3094 -0.2274 0.8722 C.3 1 LIG 0.0000 + 4 O4 2.2595 0.6945 0.3793 O.3 1 LIG 0.0000 + 5 C5 1.5538 1.8563 -0.0337 C.3 1 LIG 0.0000 + 6 N6 1.8323 3.0253 0.8117 N.pl3 1 LIG 0.0000 + 7 C7 1.2824 4.2599 0.6344 C.2 1 LIG 0.0000 + 8 N8 1.7586 5.0439 1.5751 N.2 1 LIG 0.0000 + 9 C9 2.6165 4.3295 2.3613 C.ar 1 LIG 0.0000 + 10 C10 3.3739 4.6761 3.4760 C.ar 1 LIG 0.0000 + 11 N11 3.3112 5.9898 3.9559 N.pl3 1 LIG 0.0000 + 12 C12 4.1015 6.3812 5.1317 C.3 1 LIG 0.0000 + 13 C13 3.8667 7.8475 5.4568 C.3 1 LIG 0.0000 + 14 C14 4.6807 8.2466 6.6769 C.3 1 LIG 0.0000 + 15 C15 4.2967 7.3861 7.8700 C.3 1 LIG 0.0000 + 16 C16 4.5388 5.9220 7.5390 C.3 1 LIG 0.0000 + 17 C17 3.7255 5.5129 6.3214 C.3 1 LIG 0.0000 + 18 N18 4.1508 3.7620 4.0767 N.ar 1 LIG 0.0000 + 19 C19 4.1980 2.5081 3.6013 C.ar 1 LIG 0.0000 + 20 N20 3.4653 2.1651 2.5290 N.ar 1 LIG 0.0000 + 21 C21 2.6710 3.0402 1.8878 C.ar 1 LIG 0.0000 + 22 C22 0.0701 1.5522 0.0613 C.3 1 LIG 0.0000 + 23 O23 -0.4872 2.0154 1.2823 O.3 1 LIG 0.0000 + 24 C24 0.0937 0.0406 0.0147 C.3 1 LIG 0.0000 + 25 O25 -1.0732 -0.5264 0.5945 O.3 1 LIG 0.0000 + 26 H 1.1205 -0.0866 1.8440 H 1 LIG 0.0000 + 27 H -0.4237 1.9274 -0.7232 H 1 LIG 0.0000 + 28 H 0.2302 -0.2899 -0.9191 H 1 LIG 0.0000 + 29 H 2.3084 -2.7284 -0.9985 H 1 LIG 0.0000 + 30 H 2.6931 -1.7698 1.0451 H 1 LIG 0.0000 + 31 H 1.1528 -2.3000 0.9313 H 1 LIG 0.0000 + 32 H 1.7894 2.0684 -0.9821 H 1 LIG 0.0000 + 33 H 0.6346 4.5212 -0.0812 H 1 LIG 0.0000 + 34 H 2.7287 6.6619 3.4987 H 1 LIG 0.0000 + 35 H 5.0713 6.2471 4.9279 H 1 LIG 0.0000 + 36 H 2.8954 7.9936 5.6445 H 1 LIG 0.0000 + 37 H 4.1434 8.4081 4.6763 H 1 LIG 0.0000 + 38 H 4.5039 9.2070 6.8921 H 1 LIG 0.0000 + 39 H 5.6532 8.1227 6.4799 H 1 LIG 0.0000 + 40 H 3.3293 7.5240 8.0827 H 1 LIG 0.0000 + 41 H 4.8520 7.6452 8.6602 H 1 LIG 0.0000 + 42 H 5.5105 5.7836 7.3480 H 1 LIG 0.0000 + 43 H 4.2690 5.3586 8.3200 H 1 LIG 0.0000 + 44 H 3.9123 4.5547 6.1046 H 1 LIG 0.0000 + 45 H 2.7519 5.6260 6.5198 H 1 LIG 0.0000 + 46 H 4.7800 1.8275 4.0463 H 1 LIG 0.0000 + 47 H -0.4916 3.0154 1.2885 H 1 LIG 0.0000 + 48 H -1.8620 -0.3360 0.0101 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1383 -2.4562 1.6658 C.2 1 LIG 0.0000 + 8 N8 2.6209 -3.5345 1.0908 N.2 1 LIG 0.0000 + 9 C9 2.6735 -3.3362 -0.2593 C.ar 1 LIG 0.0000 + 10 C10 3.0943 -4.1470 -1.3090 C.ar 1 LIG 0.0000 + 11 N11 3.5756 -5.4302 -1.0231 N.pl3 1 LIG 0.0000 + 12 C12 4.0261 -6.3060 -2.1139 C.3 1 LIG 0.0000 + 13 C13 2.8395 -6.7634 -2.9468 C.3 1 LIG 0.0000 + 14 C14 3.3039 -7.6655 -4.0789 C.3 1 LIG 0.0000 + 15 C15 4.0322 -8.8696 -3.5037 C.3 1 LIG 0.0000 + 16 C16 5.2250 -8.4176 -2.6765 C.3 1 LIG 0.0000 + 17 C17 4.7629 -7.5093 -1.5484 C.3 1 LIG 0.0000 + 18 N18 3.0383 -3.7005 -2.5729 N.ar 1 LIG 0.0000 + 19 C19 2.5745 -2.4672 -2.8265 C.ar 1 LIG 0.0000 + 20 N20 2.1614 -1.6812 -1.8186 N.ar 1 LIG 0.0000 + 21 C21 2.1963 -2.0768 -0.5340 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 1.9928 -2.3239 2.6463 H 1 LIG 0.0000 + 34 H 3.6129 -5.7509 -0.0766 H 1 LIG 0.0000 + 35 H 4.6520 -5.7924 -2.7008 H 1 LIG 0.0000 + 36 H 2.3784 -5.9634 -3.3308 H 1 LIG 0.0000 + 37 H 2.2023 -7.2675 -2.3638 H 1 LIG 0.0000 + 38 H 3.9226 -7.1569 -4.6776 H 1 LIG 0.0000 + 39 H 2.5114 -7.9754 -4.6042 H 1 LIG 0.0000 + 40 H 4.3509 -9.4511 -4.2522 H 1 LIG 0.0000 + 41 H 3.4050 -9.3881 -2.9226 H 1 LIG 0.0000 + 42 H 5.6825 -9.2186 -2.2902 H 1 LIG 0.0000 + 43 H 5.8641 -7.9190 -3.2622 H 1 LIG 0.0000 + 44 H 4.1499 -8.0184 -0.9442 H 1 LIG 0.0000 + 45 H 5.5582 -7.1961 -1.0293 H 1 LIG 0.0000 + 46 H 2.5363 -2.1324 -3.7681 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1383 -2.4562 1.6658 C.2 1 LIG 0.0000 + 8 N8 2.6209 -3.5345 1.0908 N.2 1 LIG 0.0000 + 9 C9 2.6735 -3.3362 -0.2593 C.ar 1 LIG 0.0000 + 10 C10 3.0943 -4.1470 -1.3090 C.ar 1 LIG 0.0000 + 11 N11 3.5756 -5.4302 -1.0231 N.pl3 1 LIG 0.0000 + 12 C12 4.0261 -6.3060 -2.1139 C.3 1 LIG 0.0000 + 13 C13 5.3213 -5.7800 -2.7113 C.3 1 LIG 0.0000 + 14 C14 5.7917 -6.6873 -3.8368 C.3 1 LIG 0.0000 + 15 C15 4.7172 -6.7666 -4.9092 C.3 1 LIG 0.0000 + 16 C16 3.4220 -7.3001 -4.3183 C.3 1 LIG 0.0000 + 17 C17 2.9542 -6.3978 -3.1878 C.3 1 LIG 0.0000 + 18 N18 3.0383 -3.7005 -2.5729 N.ar 1 LIG 0.0000 + 19 C19 2.5745 -2.4672 -2.8265 C.ar 1 LIG 0.0000 + 20 N20 2.1614 -1.6812 -1.8186 N.ar 1 LIG 0.0000 + 21 C21 2.1963 -2.0768 -0.5340 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 1.9928 -2.3239 2.6463 H 1 LIG 0.0000 + 34 H 3.6129 -5.7509 -0.0766 H 1 LIG 0.0000 + 35 H 4.1905 -7.2207 -1.7447 H 1 LIG 0.0000 + 36 H 6.0230 -5.7467 -1.9996 H 1 LIG 0.0000 + 37 H 5.1682 -4.8599 -3.0719 H 1 LIG 0.0000 + 38 H 5.9690 -7.6025 -3.4747 H 1 LIG 0.0000 + 39 H 6.6317 -6.3174 -4.2337 H 1 LIG 0.0000 + 40 H 5.0236 -7.3778 -5.6389 H 1 LIG 0.0000 + 41 H 4.5574 -5.8535 -5.2844 H 1 LIG 0.0000 + 42 H 2.7205 -7.3290 -5.0305 H 1 LIG 0.0000 + 43 H 3.5752 -8.2225 -3.9638 H 1 LIG 0.0000 + 44 H 2.7692 -5.4839 -3.5492 H 1 LIG 0.0000 + 45 H 2.1180 -6.7740 -2.7889 H 1 LIG 0.0000 + 46 H 2.5363 -2.1324 -3.7681 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1383 -2.4562 1.6658 C.2 1 LIG 0.0000 + 8 N8 2.6209 -3.5345 1.0908 N.2 1 LIG 0.0000 + 9 C9 2.6735 -3.3362 -0.2593 C.ar 1 LIG 0.0000 + 10 C10 3.0943 -4.1470 -1.3090 C.ar 1 LIG 0.0000 + 11 N11 3.5756 -5.4302 -1.0231 N.pl3 1 LIG 0.0000 + 12 C12 4.0261 -6.3060 -2.1139 C.3 1 LIG 0.0000 + 13 C13 4.5014 -7.6386 -1.5577 C.3 1 LIG 0.0000 + 14 C14 4.9632 -8.5480 -2.6851 C.3 1 LIG 0.0000 + 15 C15 6.0874 -7.8735 -3.4546 C.3 1 LIG 0.0000 + 16 C16 5.6144 -6.5438 -4.0201 C.3 1 LIG 0.0000 + 17 C17 5.1453 -5.6361 -2.8944 C.3 1 LIG 0.0000 + 18 N18 3.0383 -3.7005 -2.5729 N.ar 1 LIG 0.0000 + 19 C19 2.5745 -2.4672 -2.8265 C.ar 1 LIG 0.0000 + 20 N20 2.1614 -1.6812 -1.8186 N.ar 1 LIG 0.0000 + 21 C21 2.1963 -2.0768 -0.5340 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 1.9928 -2.3239 2.6463 H 1 LIG 0.0000 + 34 H 3.6129 -5.7509 -0.0766 H 1 LIG 0.0000 + 35 H 3.2574 -6.4712 -2.7318 H 1 LIG 0.0000 + 36 H 3.7491 -8.0781 -1.0669 H 1 LIG 0.0000 + 37 H 5.2626 -7.4807 -0.9288 H 1 LIG 0.0000 + 38 H 4.1977 -8.7276 -3.3029 H 1 LIG 0.0000 + 39 H 5.2926 -9.4113 -2.3028 H 1 LIG 0.0000 + 40 H 6.3762 -8.4675 -4.2055 H 1 LIG 0.0000 + 41 H 6.8596 -7.7146 -2.8394 H 1 LIG 0.0000 + 42 H 6.3690 -6.1041 -4.5071 H 1 LIG 0.0000 + 43 H 4.8573 -6.7040 -4.6534 H 1 LIG 0.0000 + 44 H 5.9114 -5.4492 -2.2794 H 1 LIG 0.0000 + 45 H 4.8105 -4.7766 -3.2806 H 1 LIG 0.0000 + 46 H 2.5363 -2.1324 -3.7681 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1383 -2.4562 1.6658 C.2 1 LIG 0.0000 + 8 N8 2.6209 -3.5345 1.0908 N.2 1 LIG 0.0000 + 9 C9 2.6735 -3.3362 -0.2593 C.ar 1 LIG 0.0000 + 10 C10 3.0943 -4.1470 -1.3090 C.ar 1 LIG 0.0000 + 11 N11 3.5756 -5.4302 -1.0231 N.pl3 1 LIG 0.0000 + 12 C12 4.0262 -6.3061 -2.1140 C.3 1 LIG 0.0000 + 13 C13 2.8378 -6.7619 -2.9451 C.3 1 LIG 0.0000 + 14 C14 3.3086 -7.6622 -4.0759 C.3 1 LIG 0.0000 + 15 C15 4.3016 -6.9229 -4.9583 C.3 1 LIG 0.0000 + 16 C16 5.4891 -6.4745 -4.1212 C.3 1 LIG 0.0000 + 17 C17 5.0278 -5.5703 -2.9894 C.3 1 LIG 0.0000 + 18 N18 3.0383 -3.7005 -2.5729 N.ar 1 LIG 0.0000 + 19 C19 2.5745 -2.4672 -2.8265 C.ar 1 LIG 0.0000 + 20 N20 2.1614 -1.6812 -1.8186 N.ar 1 LIG 0.0000 + 21 C21 2.1963 -2.0768 -0.5340 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 1.9928 -2.3239 2.6463 H 1 LIG 0.0000 + 34 H 3.6129 -5.7509 -0.0766 H 1 LIG 0.0000 + 35 H 4.4715 -7.1099 -1.7196 H 1 LIG 0.0000 + 36 H 2.3760 -5.9623 -3.3290 H 1 LIG 0.0000 + 37 H 2.2009 -7.2672 -2.3629 H 1 LIG 0.0000 + 38 H 2.5212 -7.9403 -4.6261 H 1 LIG 0.0000 + 39 H 3.7491 -8.4731 -3.6907 H 1 LIG 0.0000 + 40 H 3.8575 -6.1229 -5.3619 H 1 LIG 0.0000 + 41 H 4.6178 -7.5313 -5.6862 H 1 LIG 0.0000 + 42 H 5.9435 -7.2781 -3.7368 H 1 LIG 0.0000 + 43 H 6.1314 -5.9742 -4.7018 H 1 LIG 0.0000 + 44 H 5.8169 -5.3022 -2.4367 H 1 LIG 0.0000 + 45 H 4.5962 -4.7536 -3.3724 H 1 LIG 0.0000 + 46 H 2.5363 -2.1324 -3.7681 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1383 -2.4562 1.6658 C.2 1 LIG 0.0000 + 8 N8 2.6209 -3.5345 1.0908 N.2 1 LIG 0.0000 + 9 C9 2.6735 -3.3362 -0.2593 C.ar 1 LIG 0.0000 + 10 C10 3.0943 -4.1470 -1.3090 C.ar 1 LIG 0.0000 + 11 N11 3.5756 -5.4302 -1.0231 N.pl3 1 LIG 0.0000 + 12 C12 4.0262 -6.3061 -2.1140 C.3 1 LIG 0.0000 + 13 C13 5.3212 -5.7779 -2.7095 C.3 1 LIG 0.0000 + 14 C14 5.7870 -6.6898 -3.8330 C.3 1 LIG 0.0000 + 15 C15 5.9979 -8.1021 -3.3110 C.3 1 LIG 0.0000 + 16 C16 4.6976 -8.6251 -2.7215 C.3 1 LIG 0.0000 + 17 C17 4.2258 -7.7206 -1.5942 C.3 1 LIG 0.0000 + 18 N18 3.0383 -3.7005 -2.5729 N.ar 1 LIG 0.0000 + 19 C19 2.5745 -2.4672 -2.8265 C.ar 1 LIG 0.0000 + 20 N20 2.1614 -1.6812 -1.8186 N.ar 1 LIG 0.0000 + 21 C21 2.1963 -2.0768 -0.5340 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 1.9928 -2.3239 2.6463 H 1 LIG 0.0000 + 34 H 3.6129 -5.7509 -0.0766 H 1 LIG 0.0000 + 35 H 3.3252 -6.3202 -2.8270 H 1 LIG 0.0000 + 36 H 6.0231 -5.7439 -1.9981 H 1 LIG 0.0000 + 37 H 5.1684 -4.8583 -3.0714 H 1 LIG 0.0000 + 38 H 6.6484 -6.3429 -4.2041 H 1 LIG 0.0000 + 39 H 5.0950 -6.7045 -4.5547 H 1 LIG 0.0000 + 40 H 6.7048 -8.0938 -2.6037 H 1 LIG 0.0000 + 41 H 6.2855 -8.6956 -4.0627 H 1 LIG 0.0000 + 42 H 3.9991 -8.6523 -3.4366 H 1 LIG 0.0000 + 43 H 4.8452 -9.5474 -2.3643 H 1 LIG 0.0000 + 44 H 3.3599 -8.0661 -1.2324 H 1 LIG 0.0000 + 45 H 4.9116 -7.7127 -0.8665 H 1 LIG 0.0000 + 46 H 2.5363 -2.1324 -3.7681 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1383 -2.4562 1.6658 C.2 1 LIG 0.0000 + 8 N8 2.6209 -3.5345 1.0908 N.2 1 LIG 0.0000 + 9 C9 2.6735 -3.3362 -0.2593 C.ar 1 LIG 0.0000 + 10 C10 3.0943 -4.1470 -1.3090 C.ar 1 LIG 0.0000 + 11 N11 3.5756 -5.4302 -1.0231 N.pl3 1 LIG 0.0000 + 12 C12 4.0262 -6.3061 -2.1140 C.3 1 LIG 0.0000 + 13 C13 4.5008 -7.6377 -1.5552 C.3 1 LIG 0.0000 + 14 C14 4.9598 -8.5428 -2.6869 C.3 1 LIG 0.0000 + 15 C15 3.8238 -8.7721 -3.6709 C.3 1 LIG 0.0000 + 16 C16 3.3579 -7.4367 -4.2289 C.3 1 LIG 0.0000 + 17 C17 2.8934 -6.5258 -3.1037 C.3 1 LIG 0.0000 + 18 N18 3.0383 -3.7005 -2.5729 N.ar 1 LIG 0.0000 + 19 C19 2.5745 -2.4672 -2.8265 C.ar 1 LIG 0.0000 + 20 N20 2.1614 -1.6812 -1.8186 N.ar 1 LIG 0.0000 + 21 C21 2.1963 -2.0768 -0.5340 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 1.9928 -2.3239 2.6463 H 1 LIG 0.0000 + 34 H 3.6129 -5.7509 -0.0766 H 1 LIG 0.0000 + 35 H 4.7881 -5.8651 -2.5882 H 1 LIG 0.0000 + 36 H 3.7490 -8.0774 -1.0638 H 1 LIG 0.0000 + 37 H 5.2629 -7.4805 -0.9271 H 1 LIG 0.0000 + 38 H 5.2519 -9.4215 -2.3092 H 1 LIG 0.0000 + 39 H 5.7271 -8.1130 -3.1629 H 1 LIG 0.0000 + 40 H 3.0629 -9.2212 -3.2026 H 1 LIG 0.0000 + 41 H 4.1437 -9.3527 -4.4197 H 1 LIG 0.0000 + 42 H 4.1152 -7.0003 -4.7149 H 1 LIG 0.0000 + 43 H 2.5998 -7.5907 -4.8625 H 1 LIG 0.0000 + 44 H 2.6111 -5.6455 -3.4851 H 1 LIG 0.0000 + 45 H 2.1193 -6.9488 -2.6329 H 1 LIG 0.0000 + 46 H 2.5363 -2.1324 -3.7681 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2833 -2.5188 -0.0755 C.2 1 LIG 0.0000 + 8 N8 2.0678 -3.5725 -0.0504 N.2 1 LIG 0.0000 + 9 C9 3.1609 -3.2983 0.7206 C.ar 1 LIG 0.0000 + 10 C10 4.2761 -4.0552 1.0669 C.ar 1 LIG 0.0000 + 11 N11 4.3846 -5.3635 0.5805 N.pl3 1 LIG 0.0000 + 12 C12 5.5525 -6.1835 0.9317 C.3 1 LIG 0.0000 + 13 C13 6.7970 -5.6526 0.2384 C.3 1 LIG 0.0000 + 14 C14 8.0074 -6.4965 0.6044 C.3 1 LIG 0.0000 + 15 C15 7.7614 -7.9411 0.1998 C.3 1 LIG 0.0000 + 16 C16 6.5223 -8.4794 0.8971 C.3 1 LIG 0.0000 + 17 C17 5.3124 -7.6319 0.5379 C.3 1 LIG 0.0000 + 18 N18 5.2285 -3.5346 1.8555 N.ar 1 LIG 0.0000 + 19 C19 5.1060 -2.2789 2.3123 C.ar 1 LIG 0.0000 + 20 N20 4.0349 -1.5407 1.9775 N.ar 1 LIG 0.0000 + 21 C21 3.0506 -2.0119 1.1919 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.4130 -2.4412 -0.5619 H 1 LIG 0.0000 + 34 H 3.6675 -5.7401 -0.0059 H 1 LIG 0.0000 + 35 H 5.6915 -6.1381 1.9209 H 1 LIG 0.0000 + 36 H 6.9556 -4.7074 0.5241 H 1 LIG 0.0000 + 37 H 6.6610 -5.6831 -0.7518 H 1 LIG 0.0000 + 38 H 8.1606 -6.4486 1.5914 H 1 LIG 0.0000 + 39 H 8.8130 -6.1489 0.1247 H 1 LIG 0.0000 + 40 H 8.5526 -8.4954 0.4579 H 1 LIG 0.0000 + 41 H 7.6298 -7.9887 -0.7904 H 1 LIG 0.0000 + 42 H 6.3632 -9.4232 0.6073 H 1 LIG 0.0000 + 43 H 6.6622 -8.4539 1.8870 H 1 LIG 0.0000 + 44 H 5.1529 -7.6845 -0.4479 H 1 LIG 0.0000 + 45 H 4.5102 -7.9781 1.0243 H 1 LIG 0.0000 + 46 H 5.8137 -1.8918 2.9033 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2833 -2.5188 -0.0755 C.2 1 LIG 0.0000 + 8 N8 2.0678 -3.5725 -0.0504 N.2 1 LIG 0.0000 + 9 C9 3.1609 -3.2983 0.7206 C.ar 1 LIG 0.0000 + 10 C10 4.2761 -4.0552 1.0669 C.ar 1 LIG 0.0000 + 11 N11 4.3846 -5.3635 0.5805 N.pl3 1 LIG 0.0000 + 12 C12 5.5525 -6.1835 0.9317 C.3 1 LIG 0.0000 + 13 C13 5.5061 -6.5643 2.4027 C.3 1 LIG 0.0000 + 14 C14 6.7109 -7.4168 2.7670 C.3 1 LIG 0.0000 + 15 C15 7.9875 -6.6476 2.4676 C.3 1 LIG 0.0000 + 16 C16 8.0428 -6.2717 0.9955 C.3 1 LIG 0.0000 + 17 C17 6.8346 -5.4253 0.6281 C.3 1 LIG 0.0000 + 18 N18 5.2285 -3.5346 1.8555 N.ar 1 LIG 0.0000 + 19 C19 5.1060 -2.2789 2.3123 C.ar 1 LIG 0.0000 + 20 N20 4.0349 -1.5407 1.9775 N.ar 1 LIG 0.0000 + 21 C21 3.0506 -2.0119 1.1919 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.4130 -2.4412 -0.5619 H 1 LIG 0.0000 + 34 H 3.6675 -5.7401 -0.0059 H 1 LIG 0.0000 + 35 H 5.5355 -7.0191 0.3826 H 1 LIG 0.0000 + 36 H 4.6695 -7.0817 2.5830 H 1 LIG 0.0000 + 37 H 5.5102 -5.7331 2.9586 H 1 LIG 0.0000 + 38 H 6.6966 -8.2603 2.2300 H 1 LIG 0.0000 + 39 H 6.6779 -7.6411 3.7409 H 1 LIG 0.0000 + 40 H 8.7772 -7.2185 2.6924 H 1 LIG 0.0000 + 41 H 8.0092 -5.8155 3.0218 H 1 LIG 0.0000 + 42 H 8.8779 -5.7511 0.8180 H 1 LIG 0.0000 + 43 H 8.0447 -7.1040 0.4413 H 1 LIG 0.0000 + 44 H 6.8510 -4.5778 1.1587 H 1 LIG 0.0000 + 45 H 6.8673 -5.2084 -0.3476 H 1 LIG 0.0000 + 46 H 5.8137 -1.8918 2.9033 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2833 -2.5188 -0.0755 C.2 1 LIG 0.0000 + 8 N8 2.0678 -3.5725 -0.0504 N.2 1 LIG 0.0000 + 9 C9 3.1609 -3.2983 0.7206 C.ar 1 LIG 0.0000 + 10 C10 4.2761 -4.0552 1.0669 C.ar 1 LIG 0.0000 + 11 N11 4.3846 -5.3635 0.5805 N.pl3 1 LIG 0.0000 + 12 C12 5.5525 -6.1835 0.9317 C.3 1 LIG 0.0000 + 13 C13 5.4448 -7.5569 0.2888 C.3 1 LIG 0.0000 + 14 C14 6.6546 -8.4052 0.6469 C.3 1 LIG 0.0000 + 15 C15 6.7502 -8.5427 2.1578 C.3 1 LIG 0.0000 + 16 C16 6.8666 -7.1720 2.8050 C.3 1 LIG 0.0000 + 17 C17 5.6610 -6.3200 2.4417 C.3 1 LIG 0.0000 + 18 N18 5.2285 -3.5346 1.8555 N.ar 1 LIG 0.0000 + 19 C19 5.1060 -2.2789 2.3123 C.ar 1 LIG 0.0000 + 20 N20 4.0349 -1.5407 1.9775 N.ar 1 LIG 0.0000 + 21 C21 3.0506 -2.0119 1.1919 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.4130 -2.4412 -0.5619 H 1 LIG 0.0000 + 34 H 3.6675 -5.7401 -0.0059 H 1 LIG 0.0000 + 35 H 6.3768 -5.7322 0.5896 H 1 LIG 0.0000 + 36 H 5.3974 -7.4531 -0.7046 H 1 LIG 0.0000 + 37 H 4.6158 -8.0101 0.6165 H 1 LIG 0.0000 + 38 H 7.4834 -7.9667 0.2993 H 1 LIG 0.0000 + 39 H 6.5593 -9.3115 0.2353 H 1 LIG 0.0000 + 40 H 7.5568 -9.0867 2.3893 H 1 LIG 0.0000 + 41 H 5.9298 -9.0008 2.5001 H 1 LIG 0.0000 + 42 H 6.9099 -7.2776 3.7984 H 1 LIG 0.0000 + 43 H 7.6991 -6.7226 2.4809 H 1 LIG 0.0000 + 44 H 4.8317 -6.7531 2.7949 H 1 LIG 0.0000 + 45 H 5.7627 -5.4125 2.8493 H 1 LIG 0.0000 + 46 H 5.8137 -1.8918 2.9033 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2833 -2.5188 -0.0755 C.2 1 LIG 0.0000 + 8 N8 2.0678 -3.5725 -0.0504 N.2 1 LIG 0.0000 + 9 C9 3.1609 -3.2983 0.7206 C.ar 1 LIG 0.0000 + 10 C10 4.2761 -4.0552 1.0669 C.ar 1 LIG 0.0000 + 11 N11 4.3846 -5.3635 0.5805 N.pl3 1 LIG 0.0000 + 12 C12 5.5527 -6.1836 0.9317 C.3 1 LIG 0.0000 + 13 C13 6.7954 -5.6506 0.2373 C.3 1 LIG 0.0000 + 14 C14 8.0021 -6.4974 0.6081 C.3 1 LIG 0.0000 + 15 C15 8.2089 -6.4876 2.1142 C.3 1 LIG 0.0000 + 16 C16 6.9641 -7.0263 2.8013 C.3 1 LIG 0.0000 + 17 C17 5.7523 -6.1829 2.4387 C.3 1 LIG 0.0000 + 18 N18 5.2285 -3.5346 1.8555 N.ar 1 LIG 0.0000 + 19 C19 5.1060 -2.2789 2.3123 C.ar 1 LIG 0.0000 + 20 N20 4.0349 -1.5407 1.9775 N.ar 1 LIG 0.0000 + 21 C21 3.0506 -2.0119 1.1919 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.4130 -2.4412 -0.5619 H 1 LIG 0.0000 + 34 H 3.6675 -5.7401 -0.0059 H 1 LIG 0.0000 + 35 H 5.3909 -7.1226 0.6280 H 1 LIG 0.0000 + 36 H 6.9542 -4.7053 0.5222 H 1 LIG 0.0000 + 37 H 6.6606 -5.6821 -0.7531 H 1 LIG 0.0000 + 38 H 8.8159 -6.1264 0.1607 H 1 LIG 0.0000 + 39 H 7.8525 -7.4374 0.3015 H 1 LIG 0.0000 + 40 H 8.3799 -5.5512 2.4209 H 1 LIG 0.0000 + 41 H 8.9931 -7.0629 2.3466 H 1 LIG 0.0000 + 42 H 6.8085 -7.9698 2.5088 H 1 LIG 0.0000 + 43 H 7.0980 -7.0022 3.7920 H 1 LIG 0.0000 + 44 H 4.9397 -6.5628 2.8809 H 1 LIG 0.0000 + 45 H 5.8952 -5.2446 2.7537 H 1 LIG 0.0000 + 46 H 5.8137 -1.8918 2.9033 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2833 -2.5188 -0.0755 C.2 1 LIG 0.0000 + 8 N8 2.0678 -3.5725 -0.0504 N.2 1 LIG 0.0000 + 9 C9 3.1609 -3.2983 0.7206 C.ar 1 LIG 0.0000 + 10 C10 4.2761 -4.0552 1.0669 C.ar 1 LIG 0.0000 + 11 N11 4.3846 -5.3635 0.5805 N.pl3 1 LIG 0.0000 + 12 C12 5.5527 -6.1836 0.9317 C.3 1 LIG 0.0000 + 13 C13 5.5037 -6.5629 2.4029 C.3 1 LIG 0.0000 + 14 C14 6.7099 -7.4161 2.7606 C.3 1 LIG 0.0000 + 15 C15 6.7379 -8.6725 1.9050 C.3 1 LIG 0.0000 + 16 C16 6.7917 -8.2851 0.4357 C.3 1 LIG 0.0000 + 17 C17 5.5867 -7.4341 0.0680 C.3 1 LIG 0.0000 + 18 N18 5.2285 -3.5346 1.8555 N.ar 1 LIG 0.0000 + 19 C19 5.1060 -2.2789 2.3123 C.ar 1 LIG 0.0000 + 20 N20 4.0349 -1.5407 1.9775 N.ar 1 LIG 0.0000 + 21 C21 3.0506 -2.0119 1.1919 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.4130 -2.4412 -0.5619 H 1 LIG 0.0000 + 34 H 3.6675 -5.7401 -0.0059 H 1 LIG 0.0000 + 35 H 6.3827 -5.6521 0.7629 H 1 LIG 0.0000 + 36 H 4.6671 -7.0799 2.5839 H 1 LIG 0.0000 + 37 H 5.5091 -5.7321 2.9594 H 1 LIG 0.0000 + 38 H 6.6570 -7.6746 3.7252 H 1 LIG 0.0000 + 39 H 7.5452 -6.8898 2.6019 H 1 LIG 0.0000 + 40 H 5.9134 -9.2115 2.0775 H 1 LIG 0.0000 + 41 H 7.5454 -9.2151 2.1363 H 1 LIG 0.0000 + 42 H 7.6279 -7.7648 0.2624 H 1 LIG 0.0000 + 43 H 6.7929 -9.1140 -0.1238 H 1 LIG 0.0000 + 44 H 5.6484 -7.1705 -0.8947 H 1 LIG 0.0000 + 45 H 4.7504 -7.9620 0.2160 H 1 LIG 0.0000 + 46 H 5.8137 -1.8918 2.9033 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2833 -2.5188 -0.0755 C.2 1 LIG 0.0000 + 8 N8 2.0678 -3.5725 -0.0504 N.2 1 LIG 0.0000 + 9 C9 3.1609 -3.2983 0.7206 C.ar 1 LIG 0.0000 + 10 C10 4.2761 -4.0552 1.0669 C.ar 1 LIG 0.0000 + 11 N11 4.3846 -5.3635 0.5805 N.pl3 1 LIG 0.0000 + 12 C12 5.5527 -6.1836 0.9317 C.3 1 LIG 0.0000 + 13 C13 5.4424 -7.5562 0.2877 C.3 1 LIG 0.0000 + 14 C14 6.6551 -8.3988 0.6482 C.3 1 LIG 0.0000 + 15 C15 7.9296 -7.7123 0.1836 C.3 1 LIG 0.0000 + 16 C16 8.0352 -6.3427 0.8354 C.3 1 LIG 0.0000 + 17 C17 6.8276 -5.4914 0.4773 C.3 1 LIG 0.0000 + 18 N18 5.2285 -3.5346 1.8555 N.ar 1 LIG 0.0000 + 19 C19 5.1060 -2.2789 2.3123 C.ar 1 LIG 0.0000 + 20 N20 4.0349 -1.5407 1.9775 N.ar 1 LIG 0.0000 + 21 C21 3.0506 -2.0119 1.1919 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.4130 -2.4412 -0.5619 H 1 LIG 0.0000 + 34 H 3.6675 -5.7401 -0.0059 H 1 LIG 0.0000 + 35 H 5.5822 -6.2946 1.9251 H 1 LIG 0.0000 + 36 H 5.3944 -7.4529 -0.7058 H 1 LIG 0.0000 + 37 H 4.6142 -8.0104 0.6160 H 1 LIG 0.0000 + 38 H 6.5805 -9.2917 0.2042 H 1 LIG 0.0000 + 39 H 6.6889 -8.5215 1.6400 H 1 LIG 0.0000 + 40 H 7.9081 -7.6074 -0.8106 H 1 LIG 0.0000 + 41 H 8.7203 -8.2667 0.4433 H 1 LIG 0.0000 + 42 H 8.0782 -6.4527 1.8284 H 1 LIG 0.0000 + 43 H 8.8659 -5.8880 0.5141 H 1 LIG 0.0000 + 44 H 6.9020 -4.6031 0.9306 H 1 LIG 0.0000 + 45 H 6.7976 -5.3586 -0.5133 H 1 LIG 0.0000 + 46 H 5.8137 -1.8918 2.9033 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 3.0781 -1.8012 0.0991 C.2 1 LIG 0.0000 + 8 N8 3.2409 -3.1046 0.0706 N.2 1 LIG 0.0000 + 9 C9 2.1481 -3.7043 0.6282 C.ar 1 LIG 0.0000 + 10 C10 1.8204 -5.0396 0.8428 C.ar 1 LIG 0.0000 + 11 N11 2.7221 -6.0318 0.4398 N.pl3 1 LIG 0.0000 + 12 C12 2.3995 -7.4493 0.6551 C.3 1 LIG 0.0000 + 13 C13 2.4495 -7.7819 2.1377 C.3 1 LIG 0.0000 + 14 C14 2.1112 -9.2468 2.3631 C.3 1 LIG 0.0000 + 15 C15 3.0944 -10.1193 1.5996 C.3 1 LIG 0.0000 + 16 C16 3.0421 -9.7962 0.1149 C.3 1 LIG 0.0000 + 17 C17 3.3730 -8.3298 -0.1114 C.3 1 LIG 0.0000 + 18 N18 0.6569 -5.3651 1.4262 N.ar 1 LIG 0.0000 + 19 C19 -0.1946 -4.3996 1.8047 C.ar 1 LIG 0.0000 + 20 N20 0.1178 -3.1085 1.6057 N.ar 1 LIG 0.0000 + 21 C21 1.2685 -2.7255 1.0252 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 3.7219 -1.1174 -0.2445 H 1 LIG 0.0000 + 34 H 3.5858 -5.7760 0.0054 H 1 LIG 0.0000 + 35 H 1.4744 -7.6233 0.3177 H 1 LIG 0.0000 + 36 H 1.7885 -7.2120 2.6258 H 1 LIG 0.0000 + 37 H 3.3689 -7.5986 2.4858 H 1 LIG 0.0000 + 38 H 1.1830 -9.4280 2.0380 H 1 LIG 0.0000 + 39 H 2.1692 -9.4555 3.3394 H 1 LIG 0.0000 + 40 H 2.8577 -11.0811 1.7367 H 1 LIG 0.0000 + 41 H 4.0191 -9.9516 1.9415 H 1 LIG 0.0000 + 42 H 3.7064 -10.3642 -0.3710 H 1 LIG 0.0000 + 43 H 2.1239 -9.9858 -0.2329 H 1 LIG 0.0000 + 44 H 4.3037 -8.1481 0.2062 H 1 LIG 0.0000 + 45 H 3.3077 -8.1230 -1.0876 H 1 LIG 0.0000 + 46 H -1.0637 -4.6419 2.2360 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 3.0781 -1.8012 0.0991 C.2 1 LIG 0.0000 + 8 N8 3.2409 -3.1046 0.0706 N.2 1 LIG 0.0000 + 9 C9 2.1481 -3.7043 0.6282 C.ar 1 LIG 0.0000 + 10 C10 1.8204 -5.0396 0.8428 C.ar 1 LIG 0.0000 + 11 N11 2.7221 -6.0318 0.4398 N.pl3 1 LIG 0.0000 + 12 C12 2.3995 -7.4493 0.6551 C.3 1 LIG 0.0000 + 13 C13 1.2690 -7.8784 -0.2662 C.3 1 LIG 0.0000 + 14 C14 0.9370 -9.3459 -0.0486 C.3 1 LIG 0.0000 + 15 C15 0.5401 -9.5679 1.4020 C.3 1 LIG 0.0000 + 16 C16 1.6710 -9.1480 2.3274 C.3 1 LIG 0.0000 + 17 C17 2.0091 -7.6825 2.1056 C.3 1 LIG 0.0000 + 18 N18 0.6569 -5.3651 1.4262 N.ar 1 LIG 0.0000 + 19 C19 -0.1946 -4.3996 1.8047 C.ar 1 LIG 0.0000 + 20 N20 0.1178 -3.1085 1.6057 N.ar 1 LIG 0.0000 + 21 C21 1.2685 -2.7255 1.0252 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 3.7219 -1.1174 -0.2445 H 1 LIG 0.0000 + 34 H 3.5858 -5.7760 0.0054 H 1 LIG 0.0000 + 35 H 3.2092 -7.9984 0.4479 H 1 LIG 0.0000 + 36 H 1.5482 -7.7410 -1.2166 H 1 LIG 0.0000 + 37 H 0.4587 -7.3250 -0.0735 H 1 LIG 0.0000 + 38 H 1.7383 -9.9041 -0.2638 H 1 LIG 0.0000 + 39 H 0.1784 -9.6077 -0.6452 H 1 LIG 0.0000 + 40 H 0.3395 -10.5371 1.5447 H 1 LIG 0.0000 + 41 H -0.2740 -9.0251 1.6083 H 1 LIG 0.0000 + 42 H 1.3886 -9.2824 3.2772 H 1 LIG 0.0000 + 43 H 2.4786 -9.7064 2.1376 H 1 LIG 0.0000 + 44 H 1.2112 -7.1220 2.3274 H 1 LIG 0.0000 + 45 H 2.7721 -7.4259 2.6987 H 1 LIG 0.0000 + 46 H -1.0637 -4.6419 2.2360 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 3.0781 -1.8012 0.0991 C.2 1 LIG 0.0000 + 8 N8 3.2409 -3.1046 0.0706 N.2 1 LIG 0.0000 + 9 C9 2.1481 -3.7043 0.6282 C.ar 1 LIG 0.0000 + 10 C10 1.8204 -5.0396 0.8428 C.ar 1 LIG 0.0000 + 11 N11 2.7221 -6.0318 0.4398 N.pl3 1 LIG 0.0000 + 12 C12 2.3995 -7.4493 0.6551 C.3 1 LIG 0.0000 + 13 C13 3.5251 -8.3305 0.1378 C.3 1 LIG 0.0000 + 14 C14 3.1955 -9.7973 0.3641 C.3 1 LIG 0.0000 + 15 C15 1.8957 -10.1418 -0.3449 C.3 1 LIG 0.0000 + 16 C16 0.7648 -9.2688 0.1752 C.3 1 LIG 0.0000 + 17 C17 1.0964 -7.8014 -0.0438 C.3 1 LIG 0.0000 + 18 N18 0.6569 -5.3651 1.4262 N.ar 1 LIG 0.0000 + 19 C19 -0.1946 -4.3996 1.8047 C.ar 1 LIG 0.0000 + 20 N20 0.1178 -3.1085 1.6057 N.ar 1 LIG 0.0000 + 21 C21 1.2685 -2.7255 1.0252 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 3.7219 -1.1174 -0.2445 H 1 LIG 0.0000 + 34 H 3.5858 -5.7760 0.0054 H 1 LIG 0.0000 + 35 H 2.2914 -7.6089 1.6364 H 1 LIG 0.0000 + 36 H 4.3702 -8.1040 0.6220 H 1 LIG 0.0000 + 37 H 3.6479 -8.1675 -0.8412 H 1 LIG 0.0000 + 38 H 3.0959 -9.9688 1.3442 H 1 LIG 0.0000 + 39 H 3.9341 -10.3646 -0.0002 H 1 LIG 0.0000 + 40 H 1.6739 -11.1027 -0.1790 H 1 LIG 0.0000 + 41 H 2.0051 -9.9898 -1.3272 H 1 LIG 0.0000 + 42 H -0.0784 -9.4940 -0.3129 H 1 LIG 0.0000 + 43 H 0.6393 -9.4374 1.1528 H 1 LIG 0.0000 + 44 H 1.1891 -7.6261 -1.0240 H 1 LIG 0.0000 + 45 H 0.3591 -7.2369 0.3275 H 1 LIG 0.0000 + 46 H -1.0637 -4.6419 2.2360 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 3.0781 -1.8012 0.0991 C.2 1 LIG 0.0000 + 8 N8 3.2409 -3.1046 0.0706 N.2 1 LIG 0.0000 + 9 C9 2.1481 -3.7043 0.6282 C.ar 1 LIG 0.0000 + 10 C10 1.8204 -5.0396 0.8428 C.ar 1 LIG 0.0000 + 11 N11 2.7221 -6.0318 0.4398 N.pl3 1 LIG 0.0000 + 12 C12 2.3995 -7.4495 0.6552 C.3 1 LIG 0.0000 + 13 C13 1.2689 -7.8758 -0.2672 C.3 1 LIG 0.0000 + 14 C14 0.9426 -9.3439 -0.0459 C.3 1 LIG 0.0000 + 15 C15 2.1711 -10.2009 -0.3060 C.3 1 LIG 0.0000 + 16 C16 3.2955 -9.7719 0.6232 C.3 1 LIG 0.0000 + 17 C17 3.6312 -8.3050 0.4063 C.3 1 LIG 0.0000 + 18 N18 0.6569 -5.3651 1.4262 N.ar 1 LIG 0.0000 + 19 C19 -0.1946 -4.3996 1.8047 C.ar 1 LIG 0.0000 + 20 N20 0.1178 -3.1085 1.6057 N.ar 1 LIG 0.0000 + 21 C21 1.2685 -2.7255 1.0252 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 3.7219 -1.1174 -0.2445 H 1 LIG 0.0000 + 34 H 3.5858 -5.7760 0.0054 H 1 LIG 0.0000 + 35 H 2.1066 -7.5734 1.6033 H 1 LIG 0.0000 + 36 H 1.5473 -7.7382 -1.2178 H 1 LIG 0.0000 + 37 H 0.4579 -7.3236 -0.0741 H 1 LIG 0.0000 + 38 H 0.2111 -9.6173 -0.6706 H 1 LIG 0.0000 + 39 H 0.6415 -9.4764 0.8984 H 1 LIG 0.0000 + 40 H 2.4621 -10.0867 -1.2559 H 1 LIG 0.0000 + 41 H 1.9488 -11.1614 -0.1387 H 1 LIG 0.0000 + 42 H 3.0092 -9.9077 1.5717 H 1 LIG 0.0000 + 43 H 4.1066 -10.3265 0.4372 H 1 LIG 0.0000 + 44 H 4.3565 -8.0338 1.0390 H 1 LIG 0.0000 + 45 H 3.9426 -8.1719 -0.5346 H 1 LIG 0.0000 + 46 H -1.0637 -4.6419 2.2360 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 3.0781 -1.8012 0.0991 C.2 1 LIG 0.0000 + 8 N8 3.2409 -3.1046 0.0706 N.2 1 LIG 0.0000 + 9 C9 2.1481 -3.7043 0.6282 C.ar 1 LIG 0.0000 + 10 C10 1.8204 -5.0396 0.8428 C.ar 1 LIG 0.0000 + 11 N11 2.7221 -6.0318 0.4398 N.pl3 1 LIG 0.0000 + 12 C12 2.3995 -7.4495 0.6552 C.3 1 LIG 0.0000 + 13 C13 3.5264 -8.3282 0.1370 C.3 1 LIG 0.0000 + 14 C14 3.1918 -9.7930 0.3673 C.3 1 LIG 0.0000 + 15 C15 2.9724 -10.0559 1.8486 C.3 1 LIG 0.0000 + 16 C16 1.8411 -9.1773 2.3583 C.3 1 LIG 0.0000 + 17 C17 2.1689 -7.7095 2.1351 C.3 1 LIG 0.0000 + 18 N18 0.6569 -5.3651 1.4262 N.ar 1 LIG 0.0000 + 19 C19 -0.1946 -4.3996 1.8047 C.ar 1 LIG 0.0000 + 20 N20 0.1178 -3.1085 1.6057 N.ar 1 LIG 0.0000 + 21 C21 1.2685 -2.7255 1.0252 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 3.7219 -1.1174 -0.2445 H 1 LIG 0.0000 + 34 H 3.5858 -5.7760 0.0054 H 1 LIG 0.0000 + 35 H 1.5623 -7.6696 0.1545 H 1 LIG 0.0000 + 36 H 4.3720 -8.1018 0.6205 H 1 LIG 0.0000 + 37 H 3.6489 -8.1666 -0.8422 H 1 LIG 0.0000 + 38 H 3.9477 -10.3598 0.0398 H 1 LIG 0.0000 + 39 H 2.3592 -10.0245 -0.1359 H 1 LIG 0.0000 + 40 H 3.8105 -9.8454 2.3520 H 1 LIG 0.0000 + 41 H 2.7345 -11.0177 1.9846 H 1 LIG 0.0000 + 42 H 1.0000 -9.4054 1.8678 H 1 LIG 0.0000 + 43 H 1.7116 -9.3410 3.3362 H 1 LIG 0.0000 + 44 H 1.4066 -7.1472 2.4556 H 1 LIG 0.0000 + 45 H 2.9954 -7.4731 2.6459 H 1 LIG 0.0000 + 46 H -1.0637 -4.6419 2.2360 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.7092 -1.8806 -0.3414 C.2 1 LIG 0.0000 + 8 N8 3.0011 -3.1557 -0.2187 N.2 1 LIG 0.0000 + 9 C9 2.3575 -3.6588 0.8756 C.ar 1 LIG 0.0000 + 10 C10 2.3281 -4.9293 1.4425 C.ar 1 LIG 0.0000 + 11 N11 3.0680 -5.9559 0.8436 N.pl3 1 LIG 0.0000 + 12 C12 3.0536 -7.3065 1.4231 C.3 1 LIG 0.0000 + 13 C13 3.8040 -7.3180 2.7450 C.3 1 LIG 0.0000 + 14 C14 3.7814 -8.7149 3.3439 C.3 1 LIG 0.0000 + 15 C15 2.3474 -9.1709 3.5612 C.3 1 LIG 0.0000 + 16 C16 1.6049 -9.1614 2.2344 C.3 1 LIG 0.0000 + 17 C17 1.6195 -7.7667 1.6294 C.3 1 LIG 0.0000 + 18 N18 1.5997 -5.1611 2.5451 N.ar 1 LIG 0.0000 + 19 C19 0.8965 -4.1643 3.1040 C.ar 1 LIG 0.0000 + 20 N20 0.9248 -2.9341 2.5653 N.ar 1 LIG 0.0000 + 21 C21 1.6362 -2.6459 1.4613 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 3.0409 -1.2643 -1.0557 H 1 LIG 0.0000 + 34 H 3.6064 -5.7701 0.0216 H 1 LIG 0.0000 + 35 H 3.5060 -7.9343 0.7897 H 1 LIG 0.0000 + 36 H 3.3682 -6.6789 3.3787 H 1 LIG 0.0000 + 37 H 4.7519 -7.0395 2.5901 H 1 LIG 0.0000 + 38 H 4.2614 -8.7058 4.2211 H 1 LIG 0.0000 + 39 H 4.2385 -9.3490 2.7203 H 1 LIG 0.0000 + 40 H 1.8939 -8.5506 4.2012 H 1 LIG 0.0000 + 41 H 2.3458 -10.0975 3.9373 H 1 LIG 0.0000 + 42 H 2.0483 -9.7987 1.6041 H 1 LIG 0.0000 + 43 H 0.6580 -9.4457 2.3846 H 1 LIG 0.0000 + 44 H 1.1465 -7.7825 0.7485 H 1 LIG 0.0000 + 45 H 1.1536 -7.1328 2.2467 H 1 LIG 0.0000 + 46 H 0.3503 -4.3375 3.9235 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1949 -2.0613 -0.5395 C.2 1 LIG 0.0000 + 8 N8 2.6654 -3.2733 -0.3501 N.2 1 LIG 0.0000 + 9 C9 2.6482 -3.5564 0.9856 C.ar 1 LIG 0.0000 + 10 C10 3.0329 -4.6809 1.7094 C.ar 1 LIG 0.0000 + 11 N11 3.5460 -5.7868 1.0212 N.pl3 1 LIG 0.0000 + 12 C12 3.9593 -6.9865 1.7625 C.3 1 LIG 0.0000 + 13 C13 5.2179 -6.7018 2.5663 C.3 1 LIG 0.0000 + 14 C14 5.6444 -7.9403 3.3379 C.3 1 LIG 0.0000 + 15 C15 5.8931 -9.0837 2.3675 C.3 1 LIG 0.0000 + 16 C16 4.6346 -9.3779 1.5669 C.3 1 LIG 0.0000 + 17 C17 4.2027 -8.1381 0.8005 C.3 1 LIG 0.0000 + 18 N18 2.9108 -4.6997 3.0454 N.ar 1 LIG 0.0000 + 19 C19 2.4161 -3.6300 3.6869 C.ar 1 LIG 0.0000 + 20 N20 2.0480 -2.5390 2.9950 N.ar 1 LIG 0.0000 + 21 C21 2.1473 -2.4660 1.6561 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 2.0923 -1.5978 -1.4197 H 1 LIG 0.0000 + 34 H 3.6312 -5.7604 0.0252 H 1 LIG 0.0000 + 35 H 3.2266 -7.2434 2.3927 H 1 LIG 0.0000 + 36 H 5.0366 -5.9585 3.2102 H 1 LIG 0.0000 + 37 H 5.9525 -6.4320 1.9439 H 1 LIG 0.0000 + 38 H 4.9216 -8.1988 3.9788 H 1 LIG 0.0000 + 39 H 6.4843 -7.7445 3.8441 H 1 LIG 0.0000 + 40 H 6.1565 -9.9007 2.8805 H 1 LIG 0.0000 + 41 H 6.6309 -8.8308 1.7416 H 1 LIG 0.0000 + 42 H 4.8189 -10.1188 0.9209 H 1 LIG 0.0000 + 43 H 3.9028 -9.6535 2.1901 H 1 LIG 0.0000 + 44 H 4.9211 -7.8822 0.1536 H 1 LIG 0.0000 + 45 H 3.3592 -8.3354 0.3009 H 1 LIG 0.0000 + 46 H 2.3212 -3.6450 4.6822 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1949 -2.0613 -0.5395 C.2 1 LIG 0.0000 + 8 N8 2.6654 -3.2733 -0.3501 N.2 1 LIG 0.0000 + 9 C9 2.6482 -3.5564 0.9856 C.ar 1 LIG 0.0000 + 10 C10 3.0329 -4.6809 1.7094 C.ar 1 LIG 0.0000 + 11 N11 3.5460 -5.7868 1.0212 N.pl3 1 LIG 0.0000 + 12 C12 3.9593 -6.9865 1.7625 C.3 1 LIG 0.0000 + 13 C13 2.7429 -7.7018 2.3281 C.3 1 LIG 0.0000 + 14 C14 3.1680 -8.9460 3.0912 C.3 1 LIG 0.0000 + 15 C15 4.1127 -8.5549 4.2162 C.3 1 LIG 0.0000 + 16 C16 5.3352 -7.8465 3.6547 C.3 1 LIG 0.0000 + 17 C17 4.9110 -6.6060 2.8850 C.3 1 LIG 0.0000 + 18 N18 2.9108 -4.6997 3.0454 N.ar 1 LIG 0.0000 + 19 C19 2.4161 -3.6300 3.6869 C.ar 1 LIG 0.0000 + 20 N20 2.0480 -2.5390 2.9950 N.ar 1 LIG 0.0000 + 21 C21 2.1473 -2.4660 1.6561 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 2.0923 -1.5978 -1.4197 H 1 LIG 0.0000 + 34 H 3.6312 -5.7604 0.0252 H 1 LIG 0.0000 + 35 H 4.4330 -7.6047 1.1352 H 1 LIG 0.0000 + 36 H 2.1375 -7.9663 1.5775 H 1 LIG 0.0000 + 37 H 2.2565 -7.0854 2.9474 H 1 LIG 0.0000 + 38 H 3.6337 -9.5754 2.4691 H 1 LIG 0.0000 + 39 H 2.3603 -9.3934 3.4751 H 1 LIG 0.0000 + 40 H 4.4033 -9.3778 4.7044 H 1 LIG 0.0000 + 41 H 3.6377 -7.9426 4.8482 H 1 LIG 0.0000 + 42 H 5.9375 -7.5793 4.4070 H 1 LIG 0.0000 + 43 H 5.8238 -8.4661 3.0405 H 1 LIG 0.0000 + 44 H 4.4517 -5.9719 3.5071 H 1 LIG 0.0000 + 45 H 5.7203 -6.1648 2.4971 H 1 LIG 0.0000 + 46 H 2.3212 -3.6450 4.6822 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1949 -2.0613 -0.5395 C.2 1 LIG 0.0000 + 8 N8 2.6654 -3.2733 -0.3501 N.2 1 LIG 0.0000 + 9 C9 2.6482 -3.5564 0.9856 C.ar 1 LIG 0.0000 + 10 C10 3.0329 -4.6809 1.7094 C.ar 1 LIG 0.0000 + 11 N11 3.5460 -5.7868 1.0212 N.pl3 1 LIG 0.0000 + 12 C12 3.9593 -6.9865 1.7625 C.3 1 LIG 0.0000 + 13 C13 4.4795 -8.0454 0.8036 C.3 1 LIG 0.0000 + 14 C14 4.9123 -9.2856 1.5690 C.3 1 LIG 0.0000 + 15 C15 3.7348 -9.8319 2.3602 C.3 1 LIG 0.0000 + 16 C16 3.2162 -8.7792 3.3268 C.3 1 LIG 0.0000 + 17 C17 2.7898 -7.5356 2.5634 C.3 1 LIG 0.0000 + 18 N18 2.9108 -4.6997 3.0454 N.ar 1 LIG 0.0000 + 19 C19 2.4161 -3.6300 3.6869 C.ar 1 LIG 0.0000 + 20 N20 2.0480 -2.5390 2.9950 N.ar 1 LIG 0.0000 + 21 C21 2.1473 -2.4660 1.6561 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 2.0923 -1.5978 -1.4197 H 1 LIG 0.0000 + 34 H 3.6312 -5.7604 0.0252 H 1 LIG 0.0000 + 35 H 4.6929 -6.7370 2.3946 H 1 LIG 0.0000 + 36 H 5.2620 -7.6787 0.3006 H 1 LIG 0.0000 + 37 H 3.7549 -8.2915 0.1598 H 1 LIG 0.0000 + 38 H 5.6536 -9.0478 2.1967 H 1 LIG 0.0000 + 39 H 5.2314 -9.9803 0.9243 H 1 LIG 0.0000 + 40 H 4.0284 -10.6371 2.8754 H 1 LIG 0.0000 + 41 H 3.0034 -10.0888 1.7284 H 1 LIG 0.0000 + 42 H 2.4313 -9.1463 3.8261 H 1 LIG 0.0000 + 43 H 3.9399 -8.5387 3.9736 H 1 LIG 0.0000 + 44 H 2.0434 -7.7697 1.9405 H 1 LIG 0.0000 + 45 H 2.4777 -6.8408 3.2113 H 1 LIG 0.0000 + 46 H 2.3212 -3.6450 4.6822 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1949 -2.0613 -0.5395 C.2 1 LIG 0.0000 + 8 N8 2.6654 -3.2733 -0.3501 N.2 1 LIG 0.0000 + 9 C9 2.6482 -3.5564 0.9856 C.ar 1 LIG 0.0000 + 10 C10 3.0329 -4.6809 1.7094 C.ar 1 LIG 0.0000 + 11 N11 3.5460 -5.7868 1.0212 N.pl3 1 LIG 0.0000 + 12 C12 3.9594 -6.9867 1.7626 C.3 1 LIG 0.0000 + 13 C13 2.7413 -7.6998 2.3270 C.3 1 LIG 0.0000 + 14 C14 3.1726 -8.9434 3.0874 C.3 1 LIG 0.0000 + 15 C15 3.9400 -9.8815 2.1697 C.3 1 LIG 0.0000 + 16 C16 5.1589 -9.1630 1.6131 C.3 1 LIG 0.0000 + 17 C17 4.7366 -7.9192 0.8476 C.3 1 LIG 0.0000 + 18 N18 2.9108 -4.6997 3.0454 N.ar 1 LIG 0.0000 + 19 C19 2.4161 -3.6300 3.6869 C.ar 1 LIG 0.0000 + 20 N20 2.0480 -2.5390 2.9950 N.ar 1 LIG 0.0000 + 21 C21 2.1473 -2.4660 1.6561 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 2.0923 -1.5978 -1.4197 H 1 LIG 0.0000 + 34 H 3.6312 -5.7604 0.0252 H 1 LIG 0.0000 + 35 H 4.5512 -6.7103 2.5198 H 1 LIG 0.0000 + 36 H 2.1352 -7.9641 1.5768 H 1 LIG 0.0000 + 37 H 2.2552 -7.0844 2.9473 H 1 LIG 0.0000 + 38 H 2.3626 -9.4136 3.4377 H 1 LIG 0.0000 + 39 H 3.7595 -8.6760 3.8517 H 1 LIG 0.0000 + 40 H 3.3487 -10.1675 1.4156 H 1 LIG 0.0000 + 41 H 4.2343 -10.6858 2.6860 H 1 LIG 0.0000 + 42 H 5.7584 -8.8976 2.3683 H 1 LIG 0.0000 + 43 H 5.6512 -9.7779 0.9971 H 1 LIG 0.0000 + 44 H 5.5500 -7.4475 0.5070 H 1 LIG 0.0000 + 45 H 4.1581 -8.1851 0.0764 H 1 LIG 0.0000 + 46 H 2.3212 -3.6450 4.6822 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 2.1949 -2.0613 -0.5395 C.2 1 LIG 0.0000 + 8 N8 2.6654 -3.2733 -0.3501 N.2 1 LIG 0.0000 + 9 C9 2.6482 -3.5564 0.9856 C.ar 1 LIG 0.0000 + 10 C10 3.0329 -4.6809 1.7094 C.ar 1 LIG 0.0000 + 11 N11 3.5460 -5.7868 1.0212 N.pl3 1 LIG 0.0000 + 12 C12 3.9594 -6.9867 1.7626 C.3 1 LIG 0.0000 + 13 C13 4.4790 -8.0437 0.8016 C.3 1 LIG 0.0000 + 14 C14 4.9113 -9.2803 1.5726 C.3 1 LIG 0.0000 + 15 C15 5.9934 -8.9215 2.5784 C.3 1 LIG 0.0000 + 16 C16 5.4649 -7.8678 3.5387 C.3 1 LIG 0.0000 + 17 C17 5.0332 -6.6253 2.7762 C.3 1 LIG 0.0000 + 18 N18 2.9108 -4.6997 3.0454 N.ar 1 LIG 0.0000 + 19 C19 2.4161 -3.6300 3.6869 C.ar 1 LIG 0.0000 + 20 N20 2.0480 -2.5390 2.9950 N.ar 1 LIG 0.0000 + 21 C21 2.1473 -2.4660 1.6561 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 2.0923 -1.5978 -1.4197 H 1 LIG 0.0000 + 34 H 3.6312 -5.7604 0.0252 H 1 LIG 0.0000 + 35 H 3.1669 -7.3545 2.2491 H 1 LIG 0.0000 + 36 H 5.2612 -7.6773 0.2978 H 1 LIG 0.0000 + 37 H 3.7544 -8.2911 0.1583 H 1 LIG 0.0000 + 38 H 5.2682 -9.9606 0.9324 H 1 LIG 0.0000 + 39 H 4.1230 -9.6597 2.0570 H 1 LIG 0.0000 + 40 H 6.7914 -8.5615 2.0951 H 1 LIG 0.0000 + 41 H 6.2553 -9.7387 3.0918 H 1 LIG 0.0000 + 42 H 4.6804 -8.2386 4.0358 H 1 LIG 0.0000 + 43 H 6.1851 -7.6225 4.1877 H 1 LIG 0.0000 + 44 H 4.6688 -5.9517 3.4192 H 1 LIG 0.0000 + 45 H 5.8223 -6.2382 2.2993 H 1 LIG 0.0000 + 46 H 2.3212 -3.6450 4.6822 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2550 -2.7163 1.0272 C.2 1 LIG 0.0000 + 8 N8 2.0455 -3.7031 0.6700 N.2 1 LIG 0.0000 + 9 C9 3.1736 -3.1883 0.0981 C.ar 1 LIG 0.0000 + 10 C10 4.3068 -3.7883 -0.4423 C.ar 1 LIG 0.0000 + 11 N11 4.3995 -5.1852 -0.4417 N.pl3 1 LIG 0.0000 + 12 C12 5.5859 -5.8432 -1.0065 C.3 1 LIG 0.0000 + 13 C13 5.6078 -5.6833 -2.5181 C.3 1 LIG 0.0000 + 14 C14 6.8371 -6.3591 -3.1041 C.3 1 LIG 0.0000 + 15 C15 6.8309 -7.8340 -2.7358 C.3 1 LIG 0.0000 + 16 C16 6.8176 -7.9993 -1.2246 C.3 1 LIG 0.0000 + 17 C17 5.5925 -7.3176 -0.6365 C.3 1 LIG 0.0000 + 18 N18 5.2923 -3.0350 -0.9537 N.ar 1 LIG 0.0000 + 19 C19 5.1852 -1.6975 -0.9444 C.ar 1 LIG 0.0000 + 20 N20 4.0916 -1.1118 -0.4294 N.ar 1 LIG 0.0000 + 21 C21 3.0751 -1.8173 0.0968 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.3632 -2.8043 1.4711 H 1 LIG 0.0000 + 34 H 3.6583 -5.7353 -0.0568 H 1 LIG 0.0000 + 35 H 6.4042 -5.4126 -0.6258 H 1 LIG 0.0000 + 36 H 5.6264 -4.7099 -2.7464 H 1 LIG 0.0000 + 37 H 4.7859 -6.1009 -2.9057 H 1 LIG 0.0000 + 38 H 7.6611 -5.9276 -2.7368 H 1 LIG 0.0000 + 39 H 6.8266 -6.2643 -4.0995 H 1 LIG 0.0000 + 40 H 7.6498 -8.2707 -3.1084 H 1 LIG 0.0000 + 41 H 6.0168 -8.2673 -3.1225 H 1 LIG 0.0000 + 42 H 6.7950 -8.9731 -0.9983 H 1 LIG 0.0000 + 43 H 7.6429 -7.5866 -0.8392 H 1 LIG 0.0000 + 44 H 4.7673 -7.7525 -0.9968 H 1 LIG 0.0000 + 45 H 5.6097 -7.4085 0.3592 H 1 LIG 0.0000 + 46 H 5.9212 -1.1355 -1.3218 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.3802 2.7683 2.2165 O.3 1 LIG 0.0000 + 2 C2 1.7860 3.0786 0.8916 C.3 1 LIG 0.0000 + 3 C3 1.5340 1.8820 -0.0083 C.3 1 LIG 0.0000 + 4 O4 2.2497 0.7265 0.4097 O.3 1 LIG 0.0000 + 5 C5 1.3140 -0.2104 0.9081 C.3 1 LIG 0.0000 + 6 N6 1.8719 -1.5508 0.6824 N.pl3 1 LIG 0.0000 + 7 C7 1.2550 -2.7163 1.0272 C.2 1 LIG 0.0000 + 8 N8 2.0455 -3.7031 0.6700 N.2 1 LIG 0.0000 + 9 C9 3.1736 -3.1883 0.0981 C.ar 1 LIG 0.0000 + 10 C10 4.3068 -3.7883 -0.4423 C.ar 1 LIG 0.0000 + 11 N11 4.3995 -5.1852 -0.4417 N.pl3 1 LIG 0.0000 + 12 C12 5.5861 -5.8433 -1.0066 C.3 1 LIG 0.0000 + 13 C13 5.4533 -7.3532 -0.8907 C.3 1 LIG 0.0000 + 14 C14 6.6794 -8.0301 -1.4816 C.3 1 LIG 0.0000 + 15 C15 6.8448 -7.6376 -2.9411 C.3 1 LIG 0.0000 + 16 C16 6.9817 -6.1272 -3.0484 C.3 1 LIG 0.0000 + 17 C17 5.7577 -5.4416 -2.4626 C.3 1 LIG 0.0000 + 18 N18 5.2923 -3.0350 -0.9537 N.ar 1 LIG 0.0000 + 19 C19 5.1852 -1.6975 -0.9444 C.ar 1 LIG 0.0000 + 20 N20 4.0916 -1.1118 -0.4294 N.ar 1 LIG 0.0000 + 21 C21 3.0751 -1.8173 0.0968 C.ar 1 LIG 0.0000 + 22 C22 0.1048 -0.0102 0.0162 C.3 1 LIG 0.0000 + 23 O23 0.3461 -0.5282 -1.2881 O.3 1 LIG 0.0000 + 24 C24 0.0699 1.5063 0.0014 C.3 1 LIG 0.0000 + 25 O25 -0.6188 2.0044 -1.1365 O.3 1 LIG 0.0000 + 26 H 1.8052 2.1135 -0.9426 H 1 LIG 0.0000 + 27 H -0.7236 -0.3966 0.4217 H 1 LIG 0.0000 + 28 H -0.3630 1.8450 0.8367 H 1 LIG 0.0000 + 29 H 1.5462 3.5564 2.8092 H 1 LIG 0.0000 + 30 H 2.7609 3.3011 0.8850 H 1 LIG 0.0000 + 31 H 1.2629 3.8627 0.5577 H 1 LIG 0.0000 + 32 H 1.0999 -0.0505 1.8718 H 1 LIG 0.0000 + 33 H 0.3632 -2.8043 1.4711 H 1 LIG 0.0000 + 34 H 3.6583 -5.7353 -0.0568 H 1 LIG 0.0000 + 35 H 6.3928 -5.5499 -0.4936 H 1 LIG 0.0000 + 36 H 4.6383 -7.6529 -1.3865 H 1 LIG 0.0000 + 37 H 5.3684 -7.6051 0.0734 H 1 LIG 0.0000 + 38 H 6.5723 -9.0222 -1.4166 H 1 LIG 0.0000 + 39 H 7.4910 -7.7481 -0.9699 H 1 LIG 0.0000 + 40 H 6.0439 -7.9372 -3.4595 H 1 LIG 0.0000 + 41 H 7.6645 -8.0737 -3.3125 H 1 LIG 0.0000 + 42 H 7.7956 -5.8335 -2.5469 H 1 LIG 0.0000 + 43 H 7.0733 -5.8721 -4.0110 H 1 LIG 0.0000 + 44 H 5.8732 -4.4500 -2.5215 H 1 LIG 0.0000 + 45 H 4.9461 -5.7139 -2.9795 H 1 LIG 0.0000 + 46 H 5.9212 -1.1355 -1.3218 H 1 LIG 0.0000 + 47 H 0.3645 -1.5273 -1.2518 H 1 LIG 0.0000 + 48 H -1.5803 1.7335 -1.0892 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.4138 -0.1795 -0.1284 C.2 1 LIG 0.0000 + 8 N8 5.0129 -0.4900 -1.2558 N.2 1 LIG 0.0000 + 9 C9 4.1882 -0.1832 -2.3001 C.ar 1 LIG 0.0000 + 10 C10 4.3345 -0.3124 -3.6779 C.ar 1 LIG 0.0000 + 11 N11 5.5243 -0.8475 -4.1857 N.pl3 1 LIG 0.0000 + 12 C12 5.7034 -0.9943 -5.6370 C.3 1 LIG 0.0000 + 13 C13 4.7954 -2.0899 -6.1720 C.3 1 LIG 0.0000 + 14 C14 4.9756 -2.2400 -7.6741 C.3 1 LIG 0.0000 + 15 C15 6.4273 -2.5695 -7.9819 C.3 1 LIG 0.0000 + 16 C16 7.3391 -1.4724 -7.4560 C.3 1 LIG 0.0000 + 17 C17 7.1546 -1.3161 -5.9551 C.3 1 LIG 0.0000 + 18 N18 3.3480 0.0725 -4.5017 N.ar 1 LIG 0.0000 + 19 C19 2.2153 0.5838 -3.9957 C.ar 1 LIG 0.0000 + 20 N20 2.0651 0.7062 -2.6665 N.ar 1 LIG 0.0000 + 21 C21 3.0208 0.3379 -1.7953 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.7882 -0.2959 0.7915 H 1 LIG 0.0000 + 34 H 6.2523 -1.1299 -3.5610 H 1 LIG 0.0000 + 35 H 5.4610 -0.1310 -6.0797 H 1 LIG 0.0000 + 36 H 3.8436 -1.8540 -5.9761 H 1 LIG 0.0000 + 37 H 5.0234 -2.9547 -5.7246 H 1 LIG 0.0000 + 38 H 4.7251 -1.3841 -8.1266 H 1 LIG 0.0000 + 39 H 4.3887 -2.9777 -8.0078 H 1 LIG 0.0000 + 40 H 6.5448 -2.6501 -8.9716 H 1 LIG 0.0000 + 41 H 6.6686 -3.4364 -7.5458 H 1 LIG 0.0000 + 42 H 8.2906 -1.7118 -7.6494 H 1 LIG 0.0000 + 43 H 7.1139 -0.6096 -7.9088 H 1 LIG 0.0000 + 44 H 7.4116 -2.1686 -5.5000 H 1 LIG 0.0000 + 45 H 7.7378 -0.5735 -5.6259 H 1 LIG 0.0000 + 46 H 1.4813 0.8745 -4.6095 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.4138 -0.1795 -0.1284 C.2 1 LIG 0.0000 + 8 N8 5.0129 -0.4900 -1.2558 N.2 1 LIG 0.0000 + 9 C9 4.1882 -0.1832 -2.3001 C.ar 1 LIG 0.0000 + 10 C10 4.3345 -0.3124 -3.6779 C.ar 1 LIG 0.0000 + 11 N11 5.5243 -0.8475 -4.1857 N.pl3 1 LIG 0.0000 + 12 C12 5.7034 -0.9943 -5.6370 C.3 1 LIG 0.0000 + 13 C13 5.8514 0.3703 -6.2904 C.3 1 LIG 0.0000 + 14 C14 6.0418 0.2205 -7.7912 C.3 1 LIG 0.0000 + 15 C15 4.8509 -0.5151 -8.3842 C.3 1 LIG 0.0000 + 16 C16 4.7037 -1.8842 -7.7397 C.3 1 LIG 0.0000 + 17 C17 4.5206 -1.7362 -6.2378 C.3 1 LIG 0.0000 + 18 N18 3.3480 0.0725 -4.5017 N.ar 1 LIG 0.0000 + 19 C19 2.2153 0.5838 -3.9957 C.ar 1 LIG 0.0000 + 20 N20 2.0651 0.7062 -2.6665 N.ar 1 LIG 0.0000 + 21 C21 3.0208 0.3379 -1.7953 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.7882 -0.2959 0.7915 H 1 LIG 0.0000 + 34 H 6.2523 -1.1299 -3.5610 H 1 LIG 0.0000 + 35 H 6.5347 -1.5237 -5.8064 H 1 LIG 0.0000 + 36 H 6.6460 0.8372 -5.9023 H 1 LIG 0.0000 + 37 H 5.0286 0.9108 -6.1149 H 1 LIG 0.0000 + 38 H 6.8772 -0.2990 -7.9707 H 1 LIG 0.0000 + 39 H 6.1160 1.1258 -8.2095 H 1 LIG 0.0000 + 40 H 4.9885 -0.6266 -9.3684 H 1 LIG 0.0000 + 41 H 4.0201 0.0172 -8.2220 H 1 LIG 0.0000 + 42 H 3.9064 -2.3479 -8.1262 H 1 LIG 0.0000 + 43 H 5.5247 -2.4255 -7.9213 H 1 LIG 0.0000 + 44 H 3.6816 -1.2233 -6.0560 H 1 LIG 0.0000 + 45 H 4.4535 -2.6432 -5.8220 H 1 LIG 0.0000 + 46 H 1.4813 0.8745 -4.6095 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.4138 -0.1795 -0.1284 C.2 1 LIG 0.0000 + 8 N8 5.0129 -0.4900 -1.2558 N.2 1 LIG 0.0000 + 9 C9 4.1882 -0.1832 -2.3001 C.ar 1 LIG 0.0000 + 10 C10 4.3345 -0.3124 -3.6779 C.ar 1 LIG 0.0000 + 11 N11 5.5243 -0.8475 -4.1857 N.pl3 1 LIG 0.0000 + 12 C12 5.7034 -0.9943 -5.6370 C.3 1 LIG 0.0000 + 13 C13 7.0667 -1.5941 -5.9417 C.3 1 LIG 0.0000 + 14 C14 7.2521 -1.7514 -7.4424 C.3 1 LIG 0.0000 + 15 C15 7.1165 -0.3957 -8.1166 C.3 1 LIG 0.0000 + 16 C16 5.7512 0.2048 -7.8217 C.3 1 LIG 0.0000 + 17 C17 5.5615 0.3558 -6.3209 C.3 1 LIG 0.0000 + 18 N18 3.3480 0.0725 -4.5017 N.ar 1 LIG 0.0000 + 19 C19 2.2153 0.5838 -3.9957 C.ar 1 LIG 0.0000 + 20 N20 2.0651 0.7062 -2.6665 N.ar 1 LIG 0.0000 + 21 C21 3.0208 0.3379 -1.7953 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.7882 -0.2959 0.7915 H 1 LIG 0.0000 + 34 H 6.2523 -1.1299 -3.5610 H 1 LIG 0.0000 + 35 H 4.9963 -1.6083 -5.9877 H 1 LIG 0.0000 + 36 H 7.1373 -2.4910 -5.5051 H 1 LIG 0.0000 + 37 H 7.7796 -0.9916 -5.5829 H 1 LIG 0.0000 + 38 H 6.5552 -2.3727 -7.8008 H 1 LIG 0.0000 + 39 H 8.1603 -2.1264 -7.6283 H 1 LIG 0.0000 + 40 H 7.2218 -0.5064 -9.1049 H 1 LIG 0.0000 + 41 H 7.8279 0.2169 -7.7721 H 1 LIG 0.0000 + 42 H 5.6840 1.1031 -8.2558 H 1 LIG 0.0000 + 43 H 5.0397 -0.3958 -8.1864 H 1 LIG 0.0000 + 44 H 6.2529 0.9827 -5.9617 H 1 LIG 0.0000 + 45 H 4.6501 0.7247 -6.1384 H 1 LIG 0.0000 + 46 H 1.4813 0.8745 -4.6095 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.4138 -0.1795 -0.1284 C.2 1 LIG 0.0000 + 8 N8 5.0129 -0.4900 -1.2558 N.2 1 LIG 0.0000 + 9 C9 4.1882 -0.1832 -2.3001 C.ar 1 LIG 0.0000 + 10 C10 4.3345 -0.3124 -3.6779 C.ar 1 LIG 0.0000 + 11 N11 5.5243 -0.8475 -4.1857 N.pl3 1 LIG 0.0000 + 12 C12 5.7035 -0.9943 -5.6371 C.3 1 LIG 0.0000 + 13 C13 4.7945 -2.0903 -6.1694 C.3 1 LIG 0.0000 + 14 C14 4.9781 -2.2346 -7.6715 C.3 1 LIG 0.0000 + 15 C15 4.6640 -0.9205 -8.3685 C.3 1 LIG 0.0000 + 16 C16 5.5800 0.1693 -7.8345 C.3 1 LIG 0.0000 + 17 C17 5.4005 0.3230 -6.3326 C.3 1 LIG 0.0000 + 18 N18 3.3480 0.0725 -4.5017 N.ar 1 LIG 0.0000 + 19 C19 2.2153 0.5838 -3.9957 C.ar 1 LIG 0.0000 + 20 N20 2.0651 0.7062 -2.6665 N.ar 1 LIG 0.0000 + 21 C21 3.0208 0.3379 -1.7953 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.7882 -0.2959 0.7915 H 1 LIG 0.0000 + 34 H 6.2523 -1.1299 -3.5610 H 1 LIG 0.0000 + 35 H 6.6537 -1.2454 -5.8213 H 1 LIG 0.0000 + 36 H 3.8425 -1.8552 -5.9733 H 1 LIG 0.0000 + 37 H 5.0228 -2.9556 -5.7233 H 1 LIG 0.0000 + 38 H 4.3622 -2.9447 -8.0127 H 1 LIG 0.0000 + 39 H 5.9245 -2.4929 -7.8650 H 1 LIG 0.0000 + 40 H 3.7116 -0.6702 -8.1942 H 1 LIG 0.0000 + 41 H 4.8068 -1.0230 -9.3529 H 1 LIG 0.0000 + 42 H 6.5301 -0.0740 -8.0297 H 1 LIG 0.0000 + 43 H 5.3586 1.0351 -8.2833 H 1 LIG 0.0000 + 44 H 6.0245 1.0275 -5.9946 H 1 LIG 0.0000 + 45 H 4.4572 0.5917 -6.1374 H 1 LIG 0.0000 + 46 H 1.4813 0.8745 -4.6095 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.4138 -0.1795 -0.1284 C.2 1 LIG 0.0000 + 8 N8 5.0129 -0.4900 -1.2558 N.2 1 LIG 0.0000 + 9 C9 4.1882 -0.1832 -2.3001 C.ar 1 LIG 0.0000 + 10 C10 4.3345 -0.3124 -3.6779 C.ar 1 LIG 0.0000 + 11 N11 5.5243 -0.8475 -4.1857 N.pl3 1 LIG 0.0000 + 12 C12 5.7035 -0.9943 -5.6371 C.3 1 LIG 0.0000 + 13 C13 5.8512 0.3715 -6.2879 C.3 1 LIG 0.0000 + 14 C14 6.0426 0.2151 -7.7878 C.3 1 LIG 0.0000 + 15 C15 7.2738 -0.6291 -8.0758 C.3 1 LIG 0.0000 + 16 C16 7.1166 -1.9947 -7.4260 C.3 1 LIG 0.0000 + 17 C17 6.9280 -1.8480 -5.9245 C.3 1 LIG 0.0000 + 18 N18 3.3480 0.0725 -4.5017 N.ar 1 LIG 0.0000 + 19 C19 2.2153 0.5838 -3.9957 C.ar 1 LIG 0.0000 + 20 N20 2.0651 0.7062 -2.6665 N.ar 1 LIG 0.0000 + 21 C21 3.0208 0.3379 -1.7953 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.7882 -0.2959 0.7915 H 1 LIG 0.0000 + 34 H 6.2523 -1.1299 -3.5610 H 1 LIG 0.0000 + 35 H 4.8974 -1.4477 -6.0176 H 1 LIG 0.0000 + 36 H 6.6453 0.8391 -5.8998 H 1 LIG 0.0000 + 37 H 5.0280 0.9120 -6.1138 H 1 LIG 0.0000 + 38 H 6.1571 1.1180 -8.2020 H 1 LIG 0.0000 + 39 H 5.2375 -0.2312 -8.1786 H 1 LIG 0.0000 + 40 H 8.0835 -0.1747 -7.7046 H 1 LIG 0.0000 + 41 H 7.3776 -0.7404 -9.0641 H 1 LIG 0.0000 + 42 H 6.3185 -2.4549 -7.8150 H 1 LIG 0.0000 + 43 H 7.9355 -2.5404 -7.6036 H 1 LIG 0.0000 + 44 H 6.8048 -2.7524 -5.5160 H 1 LIG 0.0000 + 45 H 7.7365 -1.4114 -5.5300 H 1 LIG 0.0000 + 46 H 1.4813 0.8745 -4.6095 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.4138 -0.1795 -0.1284 C.2 1 LIG 0.0000 + 8 N8 5.0129 -0.4900 -1.2558 N.2 1 LIG 0.0000 + 9 C9 4.1882 -0.1832 -2.3001 C.ar 1 LIG 0.0000 + 10 C10 4.3345 -0.3124 -3.6779 C.ar 1 LIG 0.0000 + 11 N11 5.5243 -0.8475 -4.1857 N.pl3 1 LIG 0.0000 + 12 C12 5.7035 -0.9943 -5.6371 C.3 1 LIG 0.0000 + 13 C13 7.0672 -1.5942 -5.9390 C.3 1 LIG 0.0000 + 14 C14 7.2460 -1.7502 -7.4405 C.3 1 LIG 0.0000 + 15 C15 6.1535 -2.6405 -8.0107 C.3 1 LIG 0.0000 + 16 C16 4.7933 -2.0318 -7.7090 C.3 1 LIG 0.0000 + 17 C17 4.6042 -1.8752 -6.2086 C.3 1 LIG 0.0000 + 18 N18 3.3480 0.0725 -4.5017 N.ar 1 LIG 0.0000 + 19 C19 2.2153 0.5838 -3.9957 C.ar 1 LIG 0.0000 + 20 N20 2.0651 0.7062 -2.6665 N.ar 1 LIG 0.0000 + 21 C21 3.0208 0.3379 -1.7953 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.7882 -0.2959 0.7915 H 1 LIG 0.0000 + 34 H 6.2523 -1.1299 -3.5610 H 1 LIG 0.0000 + 35 H 5.6470 -0.0910 -6.0623 H 1 LIG 0.0000 + 36 H 7.1385 -2.4909 -5.5021 H 1 LIG 0.0000 + 37 H 7.7806 -0.9915 -5.5815 H 1 LIG 0.0000 + 38 H 8.1380 -2.1625 -7.6257 H 1 LIG 0.0000 + 39 H 7.1982 -0.8503 -7.8739 H 1 LIG 0.0000 + 40 H 6.2121 -3.5479 -7.5945 H 1 LIG 0.0000 + 41 H 6.2709 -2.7197 -9.0006 H 1 LIG 0.0000 + 42 H 4.7301 -1.1339 -8.1447 H 1 LIG 0.0000 + 43 H 4.0774 -2.6289 -8.0709 H 1 LIG 0.0000 + 44 H 3.7151 -1.4544 -6.0287 H 1 LIG 0.0000 + 45 H 4.6411 -2.7751 -5.7742 H 1 LIG 0.0000 + 46 H 1.4813 0.8745 -4.6095 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 2.9782 -0.6756 -1.3367 C.2 1 LIG 0.0000 + 8 N8 4.0746 -0.8079 -2.0485 N.2 1 LIG 0.0000 + 9 C9 4.9983 0.1024 -1.6209 C.ar 1 LIG 0.0000 + 10 C10 6.2988 0.3800 -2.0311 C.ar 1 LIG 0.0000 + 11 N11 6.8542 -0.3687 -3.0756 N.pl3 1 LIG 0.0000 + 12 C12 8.2256 -0.0951 -3.5273 C.3 1 LIG 0.0000 + 13 C13 8.2875 1.2452 -4.2422 C.3 1 LIG 0.0000 + 14 C14 9.7065 1.5325 -4.7060 C.3 1 LIG 0.0000 + 15 C15 10.1720 0.4236 -5.6359 C.3 1 LIG 0.0000 + 16 C16 10.1199 -0.9181 -4.9228 C.3 1 LIG 0.0000 + 17 C17 8.7029 -1.2033 -4.4518 C.3 1 LIG 0.0000 + 18 N18 7.0047 1.3502 -1.4308 N.ar 1 LIG 0.0000 + 19 C19 6.4550 2.0563 -0.4309 C.ar 1 LIG 0.0000 + 20 N20 5.1983 1.7974 -0.0336 N.ar 1 LIG 0.0000 + 21 C21 4.4462 0.8366 -0.5985 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1416 -1.2146 -1.4341 H 1 LIG 0.0000 + 34 H 6.3177 -1.0897 -3.5143 H 1 LIG 0.0000 + 35 H 8.8265 -0.0615 -2.7287 H 1 LIG 0.0000 + 36 H 7.9930 1.9668 -3.6157 H 1 LIG 0.0000 + 37 H 7.6793 1.2239 -5.0357 H 1 LIG 0.0000 + 38 H 10.3133 1.5784 -3.9125 H 1 LIG 0.0000 + 39 H 9.7274 2.4059 -5.1926 H 1 LIG 0.0000 + 40 H 11.1116 0.6077 -5.9246 H 1 LIG 0.0000 + 41 H 9.5764 0.3941 -6.4386 H 1 LIG 0.0000 + 42 H 10.4110 -1.6388 -5.5519 H 1 LIG 0.0000 + 43 H 10.7332 -0.8972 -4.1332 H 1 LIG 0.0000 + 44 H 8.0956 -1.2570 -5.2445 H 1 LIG 0.0000 + 45 H 8.6869 -2.0739 -3.9600 H 1 LIG 0.0000 + 46 H 6.9822 2.7769 0.0195 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 2.9782 -0.6756 -1.3367 C.2 1 LIG 0.0000 + 8 N8 4.0746 -0.8079 -2.0485 N.2 1 LIG 0.0000 + 9 C9 4.9983 0.1024 -1.6209 C.ar 1 LIG 0.0000 + 10 C10 6.2988 0.3800 -2.0311 C.ar 1 LIG 0.0000 + 11 N11 6.8542 -0.3687 -3.0756 N.pl3 1 LIG 0.0000 + 12 C12 8.2256 -0.0951 -3.5273 C.3 1 LIG 0.0000 + 13 C13 9.2260 -0.5319 -2.4693 C.3 1 LIG 0.0000 + 14 C14 10.6457 -0.2542 -2.9368 C.3 1 LIG 0.0000 + 15 C15 10.8055 1.2299 -3.2243 C.3 1 LIG 0.0000 + 16 C16 9.8126 1.6700 -4.2881 C.3 1 LIG 0.0000 + 17 C17 8.3927 1.3862 -3.8251 C.3 1 LIG 0.0000 + 18 N18 7.0047 1.3502 -1.4308 N.ar 1 LIG 0.0000 + 19 C19 6.4550 2.0563 -0.4309 C.ar 1 LIG 0.0000 + 20 N20 5.1983 1.7974 -0.0336 N.ar 1 LIG 0.0000 + 21 C21 4.4462 0.8366 -0.5985 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1416 -1.2146 -1.4341 H 1 LIG 0.0000 + 34 H 6.3177 -1.0897 -3.5143 H 1 LIG 0.0000 + 35 H 8.3973 -0.6128 -4.3654 H 1 LIG 0.0000 + 36 H 9.1203 -1.5118 -2.3003 H 1 LIG 0.0000 + 37 H 9.0529 -0.0272 -1.6236 H 1 LIG 0.0000 + 38 H 10.8303 -0.7765 -3.7694 H 1 LIG 0.0000 + 39 H 11.2907 -0.5265 -2.2227 H 1 LIG 0.0000 + 40 H 11.7354 1.4052 -3.5479 H 1 LIG 0.0000 + 41 H 10.6415 1.7483 -2.3850 H 1 LIG 0.0000 + 42 H 9.9171 2.6508 -4.4529 H 1 LIG 0.0000 + 43 H 9.9910 1.1689 -5.1349 H 1 LIG 0.0000 + 44 H 8.2035 1.9133 -2.9966 H 1 LIG 0.0000 + 45 H 7.7509 1.6533 -4.5439 H 1 LIG 0.0000 + 46 H 6.9822 2.7769 0.0195 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 2.9782 -0.6756 -1.3367 C.2 1 LIG 0.0000 + 8 N8 4.0746 -0.8079 -2.0485 N.2 1 LIG 0.0000 + 9 C9 4.9983 0.1024 -1.6209 C.ar 1 LIG 0.0000 + 10 C10 6.2988 0.3800 -2.0311 C.ar 1 LIG 0.0000 + 11 N11 6.8542 -0.3687 -3.0756 N.pl3 1 LIG 0.0000 + 12 C12 8.2256 -0.0951 -3.5273 C.3 1 LIG 0.0000 + 13 C13 8.6024 -1.0307 -4.6647 C.3 1 LIG 0.0000 + 14 C14 10.0191 -0.7460 -5.1369 C.3 1 LIG 0.0000 + 15 C15 10.9864 -0.9193 -3.9770 C.3 1 LIG 0.0000 + 16 C16 10.6187 0.0206 -2.8400 C.3 1 LIG 0.0000 + 17 C17 9.1995 -0.2581 -2.3717 C.3 1 LIG 0.0000 + 18 N18 7.0047 1.3502 -1.4308 N.ar 1 LIG 0.0000 + 19 C19 6.4550 2.0563 -0.4309 C.ar 1 LIG 0.0000 + 20 N20 5.1983 1.7974 -0.0336 N.ar 1 LIG 0.0000 + 21 C21 4.4462 0.8366 -0.5985 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1416 -1.2146 -1.4341 H 1 LIG 0.0000 + 34 H 6.3177 -1.0897 -3.5143 H 1 LIG 0.0000 + 35 H 8.2733 0.8477 -3.8574 H 1 LIG 0.0000 + 36 H 7.9680 -0.8965 -5.4260 H 1 LIG 0.0000 + 37 H 8.5451 -1.9769 -4.3460 H 1 LIG 0.0000 + 38 H 10.0739 0.1921 -5.4789 H 1 LIG 0.0000 + 39 H 10.2602 -1.3825 -5.8695 H 1 LIG 0.0000 + 40 H 11.9145 -0.7142 -4.2878 H 1 LIG 0.0000 + 41 H 10.9451 -1.8638 -3.6511 H 1 LIG 0.0000 + 42 H 11.2517 -0.1179 -2.0783 H 1 LIG 0.0000 + 43 H 10.6824 0.9663 -3.1586 H 1 LIG 0.0000 + 44 H 9.1443 -1.1935 -2.0223 H 1 LIG 0.0000 + 45 H 8.9594 0.3843 -1.6439 H 1 LIG 0.0000 + 46 H 6.9822 2.7769 0.0195 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 2.9782 -0.6756 -1.3367 C.2 1 LIG 0.0000 + 8 N8 4.0746 -0.8079 -2.0485 N.2 1 LIG 0.0000 + 9 C9 4.9983 0.1024 -1.6209 C.ar 1 LIG 0.0000 + 10 C10 6.2988 0.3800 -2.0311 C.ar 1 LIG 0.0000 + 11 N11 6.8542 -0.3687 -3.0756 N.pl3 1 LIG 0.0000 + 12 C12 8.2258 -0.0950 -3.5274 C.3 1 LIG 0.0000 + 13 C13 8.2848 1.2455 -4.2417 C.3 1 LIG 0.0000 + 14 C14 9.7059 1.5276 -4.7017 C.3 1 LIG 0.0000 + 15 C15 10.6522 1.5354 -3.5119 C.3 1 LIG 0.0000 + 16 C16 10.5912 0.1903 -2.8057 C.3 1 LIG 0.0000 + 17 C17 9.1735 -0.0988 -2.3388 C.3 1 LIG 0.0000 + 18 N18 7.0047 1.3502 -1.4308 N.ar 1 LIG 0.0000 + 19 C19 6.4550 2.0563 -0.4309 C.ar 1 LIG 0.0000 + 20 N20 5.1983 1.7974 -0.0336 N.ar 1 LIG 0.0000 + 21 C21 4.4462 0.8366 -0.5985 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1416 -1.2146 -1.4341 H 1 LIG 0.0000 + 34 H 6.3177 -1.0897 -3.5143 H 1 LIG 0.0000 + 35 H 8.5049 -0.8131 -4.1650 H 1 LIG 0.0000 + 36 H 7.9899 1.9675 -3.6159 H 1 LIG 0.0000 + 37 H 7.6777 1.2244 -5.0361 H 1 LIG 0.0000 + 38 H 9.7358 2.4194 -5.1532 H 1 LIG 0.0000 + 39 H 9.9914 0.8181 -5.3460 H 1 LIG 0.0000 + 40 H 10.3818 2.2582 -2.8759 H 1 LIG 0.0000 + 41 H 11.5855 1.7029 -3.8296 H 1 LIG 0.0000 + 42 H 10.8827 -0.5274 -3.4380 H 1 LIG 0.0000 + 43 H 11.2022 0.2056 -2.0142 H 1 LIG 0.0000 + 44 H 9.1465 -0.9951 -1.8962 H 1 LIG 0.0000 + 45 H 8.8896 0.6038 -1.6863 H 1 LIG 0.0000 + 46 H 6.9822 2.7769 0.0195 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 2.9782 -0.6756 -1.3367 C.2 1 LIG 0.0000 + 8 N8 4.0746 -0.8079 -2.0485 N.2 1 LIG 0.0000 + 9 C9 4.9983 0.1024 -1.6209 C.ar 1 LIG 0.0000 + 10 C10 6.2988 0.3800 -2.0311 C.ar 1 LIG 0.0000 + 11 N11 6.8542 -0.3687 -3.0756 N.pl3 1 LIG 0.0000 + 12 C12 8.2258 -0.0950 -3.5274 C.3 1 LIG 0.0000 + 13 C13 9.2239 -0.5327 -2.4678 C.3 1 LIG 0.0000 + 14 C14 10.6412 -0.2539 -2.9414 C.3 1 LIG 0.0000 + 15 C15 10.9152 -0.9900 -4.2431 C.3 1 LIG 0.0000 + 16 C16 9.9163 -0.5436 -5.2990 C.3 1 LIG 0.0000 + 17 C17 8.4955 -0.8220 -4.8350 C.3 1 LIG 0.0000 + 18 N18 7.0047 1.3502 -1.4308 N.ar 1 LIG 0.0000 + 19 C19 6.4550 2.0563 -0.4309 C.ar 1 LIG 0.0000 + 20 N20 5.1983 1.7974 -0.0336 N.ar 1 LIG 0.0000 + 21 C21 4.4462 0.8366 -0.5985 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1416 -1.2146 -1.4341 H 1 LIG 0.0000 + 34 H 6.3177 -1.0897 -3.5143 H 1 LIG 0.0000 + 35 H 8.3257 0.8884 -3.6783 H 1 LIG 0.0000 + 36 H 9.1183 -1.5125 -2.2980 H 1 LIG 0.0000 + 37 H 9.0520 -0.0274 -1.6221 H 1 LIG 0.0000 + 38 H 11.2888 -0.5627 -2.2449 H 1 LIG 0.0000 + 39 H 10.7529 0.7290 -3.0881 H 1 LIG 0.0000 + 40 H 10.8250 -1.9747 -4.0944 H 1 LIG 0.0000 + 41 H 11.8430 -0.7834 -4.5538 H 1 LIG 0.0000 + 42 H 10.0240 0.4374 -5.4607 H 1 LIG 0.0000 + 43 H 10.0894 -1.0424 -6.1482 H 1 LIG 0.0000 + 44 H 7.8513 -0.5034 -5.5303 H 1 LIG 0.0000 + 45 H 8.3784 -1.8055 -4.6977 H 1 LIG 0.0000 + 46 H 6.9822 2.7769 0.0195 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 2.9782 -0.6756 -1.3367 C.2 1 LIG 0.0000 + 8 N8 4.0746 -0.8079 -2.0485 N.2 1 LIG 0.0000 + 9 C9 4.9983 0.1024 -1.6209 C.ar 1 LIG 0.0000 + 10 C10 6.2988 0.3800 -2.0311 C.ar 1 LIG 0.0000 + 11 N11 6.8542 -0.3687 -3.0756 N.pl3 1 LIG 0.0000 + 12 C12 8.2258 -0.0950 -3.5274 C.3 1 LIG 0.0000 + 13 C13 8.5999 -1.0319 -4.6645 C.3 1 LIG 0.0000 + 14 C14 10.0165 -0.7414 -5.1331 C.3 1 LIG 0.0000 + 15 C15 10.1321 0.7023 -5.5953 C.3 1 LIG 0.0000 + 16 C16 9.7612 1.6329 -4.4516 C.3 1 LIG 0.0000 + 17 C17 8.3439 1.3518 -3.9787 C.3 1 LIG 0.0000 + 18 N18 7.0047 1.3502 -1.4308 N.ar 1 LIG 0.0000 + 19 C19 6.4550 2.0563 -0.4309 C.ar 1 LIG 0.0000 + 20 N20 5.1983 1.7974 -0.0336 N.ar 1 LIG 0.0000 + 21 C21 4.4462 0.8366 -0.5985 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1416 -1.2146 -1.4341 H 1 LIG 0.0000 + 34 H 6.3177 -1.0897 -3.5143 H 1 LIG 0.0000 + 35 H 8.8535 -0.2473 -2.7640 H 1 LIG 0.0000 + 36 H 7.9654 -0.8984 -5.4259 H 1 LIG 0.0000 + 37 H 8.5440 -1.9781 -4.3460 H 1 LIG 0.0000 + 38 H 10.2444 -1.3506 -5.8927 H 1 LIG 0.0000 + 39 H 10.6527 -0.8982 -4.3777 H 1 LIG 0.0000 + 40 H 9.5123 0.8564 -6.3647 H 1 LIG 0.0000 + 41 H 11.0722 0.8858 -5.8827 H 1 LIG 0.0000 + 42 H 10.3962 1.4913 -3.6922 H 1 LIG 0.0000 + 43 H 9.8222 2.5806 -4.7649 H 1 LIG 0.0000 + 44 H 8.1237 1.9567 -3.2134 H 1 LIG 0.0000 + 45 H 7.7047 1.5180 -4.7296 H 1 LIG 0.0000 + 46 H 6.9822 2.7769 0.0195 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.3221 0.8272 -1.7036 C.2 1 LIG 0.0000 + 8 N8 4.3035 0.1746 -2.2843 N.2 1 LIG 0.0000 + 9 C9 4.8079 -0.7455 -1.4103 C.ar 1 LIG 0.0000 + 10 C10 5.8369 -1.6757 -1.5206 C.ar 1 LIG 0.0000 + 11 N11 6.5480 -1.7601 -2.7236 N.pl3 1 LIG 0.0000 + 12 C12 7.6392 -2.7342 -2.8654 C.3 1 LIG 0.0000 + 13 C13 8.8259 -2.3249 -2.0078 C.3 1 LIG 0.0000 + 14 C14 9.9541 -3.3340 -2.1493 C.3 1 LIG 0.0000 + 15 C15 10.3726 -3.4281 -3.6077 C.3 1 LIG 0.0000 + 16 C16 9.1910 -3.8454 -4.4686 C.3 1 LIG 0.0000 + 17 C17 8.0592 -2.8410 -4.3224 C.3 1 LIG 0.0000 + 18 N18 6.1377 -2.4771 -0.4875 N.ar 1 LIG 0.0000 + 19 C19 5.4440 -2.3816 0.6571 C.ar 1 LIG 0.0000 + 20 N20 4.4532 -1.4821 0.7724 N.ar 1 LIG 0.0000 + 21 C21 4.1086 -0.6553 -0.2304 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.7730 1.5558 -2.1130 H 1 LIG 0.0000 + 34 H 6.3134 -1.1575 -3.4864 H 1 LIG 0.0000 + 35 H 7.3138 -3.6284 -2.5582 H 1 LIG 0.0000 + 36 H 8.5410 -2.2810 -1.0503 H 1 LIG 0.0000 + 37 H 9.1496 -1.4253 -2.3009 H 1 LIG 0.0000 + 38 H 9.6409 -4.2300 -1.8342 H 1 LIG 0.0000 + 39 H 10.7345 -3.0406 -1.5971 H 1 LIG 0.0000 + 40 H 11.1027 -4.1054 -3.6985 H 1 LIG 0.0000 + 41 H 10.7053 -2.5362 -3.9138 H 1 LIG 0.0000 + 42 H 9.4768 -3.8850 -5.4261 H 1 LIG 0.0000 + 43 H 8.8723 -4.7477 -4.1783 H 1 LIG 0.0000 + 44 H 8.3679 -1.9459 -4.6440 H 1 LIG 0.0000 + 45 H 7.2783 -3.1409 -4.8704 H 1 LIG 0.0000 + 46 H 5.6653 -2.9814 1.4261 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.3221 0.8272 -1.7036 C.2 1 LIG 0.0000 + 8 N8 4.3035 0.1746 -2.2843 N.2 1 LIG 0.0000 + 9 C9 4.8079 -0.7455 -1.4103 C.ar 1 LIG 0.0000 + 10 C10 5.8369 -1.6757 -1.5206 C.ar 1 LIG 0.0000 + 11 N11 6.5480 -1.7601 -2.7236 N.pl3 1 LIG 0.0000 + 12 C12 7.6392 -2.7342 -2.8654 C.3 1 LIG 0.0000 + 13 C13 7.0813 -4.1476 -2.9112 C.3 1 LIG 0.0000 + 14 C14 8.2082 -5.1567 -3.0629 C.3 1 LIG 0.0000 + 15 C15 9.1770 -5.0160 -1.8999 C.3 1 LIG 0.0000 + 16 C16 9.7442 -3.6062 -1.8548 C.3 1 LIG 0.0000 + 17 C17 8.6178 -2.5955 -1.7105 C.3 1 LIG 0.0000 + 18 N18 6.1377 -2.4771 -0.4875 N.ar 1 LIG 0.0000 + 19 C19 5.4440 -2.3816 0.6571 C.ar 1 LIG 0.0000 + 20 N20 4.4532 -1.4821 0.7724 N.ar 1 LIG 0.0000 + 21 C21 4.1086 -0.6553 -0.2304 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.7730 1.5558 -2.1130 H 1 LIG 0.0000 + 34 H 6.3134 -1.1575 -3.4864 H 1 LIG 0.0000 + 35 H 8.1237 -2.5519 -3.7210 H 1 LIG 0.0000 + 36 H 6.4576 -4.2307 -3.6884 H 1 LIG 0.0000 + 37 H 6.5843 -4.3334 -2.0636 H 1 LIG 0.0000 + 38 H 8.6923 -4.9887 -3.9217 H 1 LIG 0.0000 + 39 H 7.8283 -6.0817 -3.0699 H 1 LIG 0.0000 + 40 H 9.9254 -5.6695 -2.0128 H 1 LIG 0.0000 + 41 H 8.6953 -5.2055 -1.0443 H 1 LIG 0.0000 + 42 H 10.3646 -3.5239 -1.0748 H 1 LIG 0.0000 + 43 H 10.2460 -3.4241 -2.7004 H 1 LIG 0.0000 + 44 H 8.1371 -2.7570 -0.8487 H 1 LIG 0.0000 + 45 H 9.0005 -1.6716 -1.7106 H 1 LIG 0.0000 + 46 H 5.6653 -2.9814 1.4261 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.3221 0.8272 -1.7036 C.2 1 LIG 0.0000 + 8 N8 4.3035 0.1746 -2.2843 N.2 1 LIG 0.0000 + 9 C9 4.8079 -0.7455 -1.4103 C.ar 1 LIG 0.0000 + 10 C10 5.8369 -1.6757 -1.5206 C.ar 1 LIG 0.0000 + 11 N11 6.5480 -1.7601 -2.7236 N.pl3 1 LIG 0.0000 + 12 C12 7.6392 -2.7342 -2.8654 C.3 1 LIG 0.0000 + 13 C13 8.2556 -2.6370 -4.2517 C.3 1 LIG 0.0000 + 14 C14 9.3880 -3.6406 -4.3988 C.3 1 LIG 0.0000 + 15 C15 8.8570 -5.0452 -4.1616 C.3 1 LIG 0.0000 + 16 C16 8.2469 -5.1498 -2.7730 C.3 1 LIG 0.0000 + 17 C17 7.1191 -4.1416 -2.6219 C.3 1 LIG 0.0000 + 18 N18 6.1377 -2.4771 -0.4875 N.ar 1 LIG 0.0000 + 19 C19 5.4440 -2.3816 0.6571 C.ar 1 LIG 0.0000 + 20 N20 4.4532 -1.4821 0.7724 N.ar 1 LIG 0.0000 + 21 C21 4.1086 -0.6553 -0.2304 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.7730 1.5558 -2.1130 H 1 LIG 0.0000 + 34 H 6.3134 -1.1575 -3.4864 H 1 LIG 0.0000 + 35 H 8.3433 -2.5295 -2.1855 H 1 LIG 0.0000 + 36 H 8.6136 -1.7135 -4.3893 H 1 LIG 0.0000 + 37 H 7.5543 -2.8284 -4.9384 H 1 LIG 0.0000 + 38 H 10.1024 -3.4372 -3.7293 H 1 LIG 0.0000 + 39 H 9.7689 -3.5800 -5.3214 H 1 LIG 0.0000 + 40 H 9.6084 -5.7001 -4.2422 H 1 LIG 0.0000 + 41 H 8.1582 -5.2538 -4.8457 H 1 LIG 0.0000 + 42 H 7.8860 -6.0727 -2.6387 H 1 LIG 0.0000 + 43 H 8.9508 -4.9642 -2.0874 H 1 LIG 0.0000 + 44 H 6.4002 -4.3479 -3.2857 H 1 LIG 0.0000 + 45 H 6.7450 -4.2003 -1.6963 H 1 LIG 0.0000 + 46 H 5.6653 -2.9814 1.4261 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.3221 0.8272 -1.7036 C.2 1 LIG 0.0000 + 8 N8 4.3035 0.1746 -2.2843 N.2 1 LIG 0.0000 + 9 C9 4.8079 -0.7455 -1.4103 C.ar 1 LIG 0.0000 + 10 C10 5.8369 -1.6757 -1.5206 C.ar 1 LIG 0.0000 + 11 N11 6.5480 -1.7601 -2.7236 N.pl3 1 LIG 0.0000 + 12 C12 7.6393 -2.7343 -2.8654 C.3 1 LIG 0.0000 + 13 C13 8.8244 -2.3227 -2.0070 C.3 1 LIG 0.0000 + 14 C14 9.9483 -3.3360 -2.1516 C.3 1 LIG 0.0000 + 15 C15 9.4673 -4.7176 -1.7380 C.3 1 LIG 0.0000 + 16 C16 8.2855 -5.1242 -2.6038 C.3 1 LIG 0.0000 + 17 C17 7.1547 -4.1178 -2.4628 C.3 1 LIG 0.0000 + 18 N18 6.1377 -2.4771 -0.4875 N.ar 1 LIG 0.0000 + 19 C19 5.4440 -2.3816 0.6571 C.ar 1 LIG 0.0000 + 20 N20 4.4532 -1.4821 0.7724 N.ar 1 LIG 0.0000 + 21 C21 4.1086 -0.6553 -0.2304 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.7730 1.5558 -2.1130 H 1 LIG 0.0000 + 34 H 6.3134 -1.1575 -3.4864 H 1 LIG 0.0000 + 35 H 7.9274 -2.7592 -3.8227 H 1 LIG 0.0000 + 36 H 8.5400 -2.2781 -1.0494 H 1 LIG 0.0000 + 37 H 9.1494 -1.4237 -2.3004 H 1 LIG 0.0000 + 38 H 10.7143 -3.0649 -1.5686 H 1 LIG 0.0000 + 39 H 10.2482 -3.3626 -3.1052 H 1 LIG 0.0000 + 40 H 9.1866 -4.6993 -0.7784 H 1 LIG 0.0000 + 41 H 10.2092 -5.3777 -1.8556 H 1 LIG 0.0000 + 42 H 8.5753 -5.1625 -3.5602 H 1 LIG 0.0000 + 43 H 7.9618 -6.0259 -2.3173 H 1 LIG 0.0000 + 44 H 6.3949 -4.3879 -3.0541 H 1 LIG 0.0000 + 45 H 6.8460 -4.0971 -1.5119 H 1 LIG 0.0000 + 46 H 5.6653 -2.9814 1.4261 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.3221 0.8272 -1.7036 C.2 1 LIG 0.0000 + 8 N8 4.3035 0.1746 -2.2843 N.2 1 LIG 0.0000 + 9 C9 4.8079 -0.7455 -1.4103 C.ar 1 LIG 0.0000 + 10 C10 5.8369 -1.6757 -1.5206 C.ar 1 LIG 0.0000 + 11 N11 6.5480 -1.7601 -2.7236 N.pl3 1 LIG 0.0000 + 12 C12 7.6393 -2.7343 -2.8654 C.3 1 LIG 0.0000 + 13 C13 7.0788 -4.1466 -2.9110 C.3 1 LIG 0.0000 + 14 C14 8.2099 -5.1505 -3.0641 C.3 1 LIG 0.0000 + 15 C15 8.9967 -4.8669 -4.3337 C.3 1 LIG 0.0000 + 16 C16 9.5580 -3.4550 -4.2786 C.3 1 LIG 0.0000 + 17 C17 8.4329 -2.4434 -4.1290 C.3 1 LIG 0.0000 + 18 N18 6.1377 -2.4771 -0.4875 N.ar 1 LIG 0.0000 + 19 C19 5.4440 -2.3816 0.6571 C.ar 1 LIG 0.0000 + 20 N20 4.4532 -1.4821 0.7724 N.ar 1 LIG 0.0000 + 21 C21 4.1086 -0.6553 -0.2304 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.7730 1.5558 -2.1130 H 1 LIG 0.0000 + 34 H 6.3134 -1.1575 -3.4864 H 1 LIG 0.0000 + 35 H 8.2482 -2.6540 -2.0763 H 1 LIG 0.0000 + 36 H 6.4545 -4.2301 -3.6877 H 1 LIG 0.0000 + 37 H 6.5827 -4.3334 -2.0630 H 1 LIG 0.0000 + 38 H 7.8279 -6.0734 -3.1116 H 1 LIG 0.0000 + 39 H 8.8205 -5.0826 -2.2751 H 1 LIG 0.0000 + 40 H 8.3933 -4.9549 -5.1262 H 1 LIG 0.0000 + 41 H 9.7485 -5.5215 -4.4129 H 1 LIG 0.0000 + 42 H 10.1775 -3.3768 -3.4975 H 1 LIG 0.0000 + 43 H 10.0603 -3.2668 -5.1226 H 1 LIG 0.0000 + 44 H 8.8200 -1.5230 -4.0728 H 1 LIG 0.0000 + 45 H 7.8266 -2.5022 -4.9221 H 1 LIG 0.0000 + 46 H 5.6653 -2.9814 1.4261 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.3221 0.8272 -1.7036 C.2 1 LIG 0.0000 + 8 N8 4.3035 0.1746 -2.2843 N.2 1 LIG 0.0000 + 9 C9 4.8079 -0.7455 -1.4103 C.ar 1 LIG 0.0000 + 10 C10 5.8369 -1.6757 -1.5206 C.ar 1 LIG 0.0000 + 11 N11 6.5480 -1.7601 -2.7236 N.pl3 1 LIG 0.0000 + 12 C12 7.6393 -2.7343 -2.8654 C.3 1 LIG 0.0000 + 13 C13 8.2538 -2.6350 -4.2523 C.3 1 LIG 0.0000 + 14 C14 9.3860 -3.6396 -4.3927 C.3 1 LIG 0.0000 + 15 C15 10.4503 -3.3836 -3.3378 C.3 1 LIG 0.0000 + 16 C16 9.8295 -3.4893 -1.9539 C.3 1 LIG 0.0000 + 17 C17 8.6978 -2.4852 -1.8031 C.3 1 LIG 0.0000 + 18 N18 6.1377 -2.4771 -0.4875 N.ar 1 LIG 0.0000 + 19 C19 5.4440 -2.3816 0.6571 C.ar 1 LIG 0.0000 + 20 N20 4.4532 -1.4821 0.7724 N.ar 1 LIG 0.0000 + 21 C21 4.1086 -0.6553 -0.2304 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.7730 1.5558 -2.1130 H 1 LIG 0.0000 + 34 H 6.3134 -1.1575 -3.4864 H 1 LIG 0.0000 + 35 H 7.2684 -3.6547 -2.7419 H 1 LIG 0.0000 + 36 H 8.6115 -1.7115 -4.3906 H 1 LIG 0.0000 + 37 H 7.5532 -2.8275 -4.9394 H 1 LIG 0.0000 + 38 H 9.7941 -3.5522 -5.3015 H 1 LIG 0.0000 + 39 H 9.0230 -4.5643 -4.2779 H 1 LIG 0.0000 + 40 H 10.8303 -2.4672 -3.4633 H 1 LIG 0.0000 + 41 H 11.1794 -4.0620 -3.4285 H 1 LIG 0.0000 + 42 H 9.4698 -4.4133 -1.8237 H 1 LIG 0.0000 + 43 H 10.5289 -3.3036 -1.2638 H 1 LIG 0.0000 + 44 H 8.2870 -2.5825 -0.8966 H 1 LIG 0.0000 + 45 H 9.0604 -1.5591 -1.9072 H 1 LIG 0.0000 + 46 H 5.6653 -2.9814 1.4261 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.0079 0.3478 -1.7922 C.2 1 LIG 0.0000 + 8 N8 4.0970 -0.1379 -2.3437 N.2 1 LIG 0.0000 + 9 C9 4.9843 -0.4741 -1.3617 C.ar 1 LIG 0.0000 + 10 C10 6.2645 -1.0178 -1.4026 C.ar 1 LIG 0.0000 + 11 N11 6.8358 -1.3132 -2.6462 N.pl3 1 LIG 0.0000 + 12 C12 8.1876 -1.8884 -2.7165 C.3 1 LIG 0.0000 + 13 C13 9.2243 -0.8497 -2.3070 C.3 1 LIG 0.0000 + 14 C14 10.6346 -1.4211 -2.3259 C.3 1 LIG 0.0000 + 15 C15 10.6604 -2.9012 -2.6817 C.3 1 LIG 0.0000 + 16 C16 9.7171 -3.6383 -1.7456 C.3 1 LIG 0.0000 + 17 C17 8.3060 -3.0720 -1.7698 C.3 1 LIG 0.0000 + 18 N18 6.9357 -1.2539 -0.2652 N.ar 1 LIG 0.0000 + 19 C19 6.3708 -0.9646 0.9171 C.ar 1 LIG 0.0000 + 20 N20 5.1375 -0.4345 0.9638 N.ar 1 LIG 0.0000 + 21 C21 4.4196 -0.1784 -0.1439 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1943 0.6713 -2.2754 H 1 LIG 0.0000 + 34 H 6.3247 -1.1331 -3.4866 H 1 LIG 0.0000 + 35 H 8.3718 -2.1910 -3.6516 H 1 LIG 0.0000 + 36 H 9.0162 -0.5319 -1.3820 H 1 LIG 0.0000 + 37 H 9.1788 -0.0790 -2.9424 H 1 LIG 0.0000 + 38 H 11.0407 -1.3022 -1.4198 H 1 LIG 0.0000 + 39 H 11.1746 -0.9195 -3.0017 H 1 LIG 0.0000 + 40 H 11.5886 -3.2577 -2.5749 H 1 LIG 0.0000 + 41 H 10.3623 -3.0259 -3.6280 H 1 LIG 0.0000 + 42 H 9.6810 -4.5994 -2.0193 H 1 LIG 0.0000 + 43 H 10.0733 -3.5702 -0.8137 H 1 LIG 0.0000 + 44 H 7.6750 -3.7885 -2.0673 H 1 LIG 0.0000 + 45 H 8.0611 -2.7741 -0.8472 H 1 LIG 0.0000 + 46 H 6.8691 -1.1442 1.7653 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.0079 0.3478 -1.7922 C.2 1 LIG 0.0000 + 8 N8 4.0970 -0.1379 -2.3437 N.2 1 LIG 0.0000 + 9 C9 4.9843 -0.4741 -1.3617 C.ar 1 LIG 0.0000 + 10 C10 6.2645 -1.0178 -1.4026 C.ar 1 LIG 0.0000 + 11 N11 6.8358 -1.3132 -2.6462 N.pl3 1 LIG 0.0000 + 12 C12 8.1876 -1.8884 -2.7165 C.3 1 LIG 0.0000 + 13 C13 8.1779 -3.3219 -2.2004 C.3 1 LIG 0.0000 + 14 C14 9.5529 -3.9666 -2.2973 C.3 1 LIG 0.0000 + 15 C15 10.5828 -3.0513 -2.9449 C.3 1 LIG 0.0000 + 16 C16 10.0355 -2.5801 -4.2820 C.3 1 LIG 0.0000 + 17 C17 8.6771 -1.9082 -4.1556 C.3 1 LIG 0.0000 + 18 N18 6.9357 -1.2539 -0.2652 N.ar 1 LIG 0.0000 + 19 C19 6.3708 -0.9646 0.9171 C.ar 1 LIG 0.0000 + 20 N20 5.1375 -0.4345 0.9638 N.ar 1 LIG 0.0000 + 21 C21 4.4196 -0.1784 -0.1439 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1943 0.6713 -2.2754 H 1 LIG 0.0000 + 34 H 6.3247 -1.1331 -3.4866 H 1 LIG 0.0000 + 35 H 8.8117 -1.3393 -2.1607 H 1 LIG 0.0000 + 36 H 7.5305 -3.8569 -2.7432 H 1 LIG 0.0000 + 37 H 7.8883 -3.3194 -1.2433 H 1 LIG 0.0000 + 38 H 9.4778 -4.8013 -2.8429 H 1 LIG 0.0000 + 39 H 9.8642 -4.1978 -1.3756 H 1 LIG 0.0000 + 40 H 11.4368 -3.5518 -3.0874 H 1 LIG 0.0000 + 41 H 10.7531 -2.2632 -2.3535 H 1 LIG 0.0000 + 42 H 10.6799 -1.9268 -4.6793 H 1 LIG 0.0000 + 43 H 9.9463 -3.3707 -4.8878 H 1 LIG 0.0000 + 44 H 8.7498 -0.9670 -4.4856 H 1 LIG 0.0000 + 45 H 8.0159 -2.4076 -4.7154 H 1 LIG 0.0000 + 46 H 6.8691 -1.1442 1.7653 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.0079 0.3478 -1.7922 C.2 1 LIG 0.0000 + 8 N8 4.0970 -0.1379 -2.3437 N.2 1 LIG 0.0000 + 9 C9 4.9843 -0.4741 -1.3617 C.ar 1 LIG 0.0000 + 10 C10 6.2645 -1.0178 -1.4026 C.ar 1 LIG 0.0000 + 11 N11 6.8358 -1.3132 -2.6462 N.pl3 1 LIG 0.0000 + 12 C12 8.1876 -1.8884 -2.7165 C.3 1 LIG 0.0000 + 13 C13 8.5870 -2.1200 -4.1684 C.3 1 LIG 0.0000 + 14 C14 9.9989 -2.6757 -4.2843 C.3 1 LIG 0.0000 + 15 C15 10.6900 -2.8008 -2.9335 C.3 1 LIG 0.0000 + 16 C16 10.6208 -1.4554 -2.2304 C.3 1 LIG 0.0000 + 17 C17 9.1976 -0.9370 -2.0952 C.3 1 LIG 0.0000 + 18 N18 6.9357 -1.2539 -0.2652 N.ar 1 LIG 0.0000 + 19 C19 6.3708 -0.9646 0.9171 C.ar 1 LIG 0.0000 + 20 N20 5.1375 -0.4345 0.9638 N.ar 1 LIG 0.0000 + 21 C21 4.4196 -0.1784 -0.1439 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1943 0.6713 -2.2754 H 1 LIG 0.0000 + 34 H 6.3247 -1.1331 -3.4866 H 1 LIG 0.0000 + 35 H 8.2044 -2.7587 -2.2243 H 1 LIG 0.0000 + 36 H 8.5400 -1.2503 -4.6597 H 1 LIG 0.0000 + 37 H 7.9484 -2.7703 -4.5800 H 1 LIG 0.0000 + 38 H 10.5373 -2.0644 -4.8644 H 1 LIG 0.0000 + 39 H 9.9534 -3.5812 -4.7062 H 1 LIG 0.0000 + 40 H 11.6458 -3.0632 -3.0665 H 1 LIG 0.0000 + 41 H 10.2277 -3.4944 -2.3810 H 1 LIG 0.0000 + 42 H 11.0146 -1.5514 -1.3162 H 1 LIG 0.0000 + 43 H 11.1544 -0.7922 -2.7553 H 1 LIG 0.0000 + 44 H 8.9841 -0.8273 -1.1245 H 1 LIG 0.0000 + 45 H 9.1313 -0.0505 -2.5533 H 1 LIG 0.0000 + 46 H 6.8691 -1.1442 1.7653 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.0079 0.3478 -1.7922 C.2 1 LIG 0.0000 + 8 N8 4.0970 -0.1379 -2.3437 N.2 1 LIG 0.0000 + 9 C9 4.9843 -0.4741 -1.3617 C.ar 1 LIG 0.0000 + 10 C10 6.2645 -1.0178 -1.4026 C.ar 1 LIG 0.0000 + 11 N11 6.8358 -1.3132 -2.6462 N.pl3 1 LIG 0.0000 + 12 C12 8.1859 -1.8877 -2.7164 C.3 1 LIG 0.0000 + 13 C13 9.2223 -0.8463 -2.3060 C.3 1 LIG 0.0000 + 14 C14 10.6421 -1.3744 -2.4486 C.3 1 LIG 0.0000 + 15 C15 10.6792 -2.7982 -2.9811 C.3 1 LIG 0.0000 + 16 C16 9.9074 -2.8314 -4.2917 C.3 1 LIG 0.0000 + 17 C17 8.4928 -2.2857 -4.1517 C.3 1 LIG 0.0000 + 18 N18 6.9357 -1.2539 -0.2652 N.ar 1 LIG 0.0000 + 19 C19 6.3708 -0.9646 0.9171 C.ar 1 LIG 0.0000 + 20 N20 5.1375 -0.4345 0.9638 N.ar 1 LIG 0.0000 + 21 C21 4.4196 -0.1784 -0.1439 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1943 0.6713 -2.2754 H 1 LIG 0.0000 + 34 H 6.3247 -1.1331 -3.4866 H 1 LIG 0.0000 + 35 H 8.2490 -2.6870 -2.1188 H 1 LIG 0.0000 + 36 H 9.0658 -0.5926 -1.3515 H 1 LIG 0.0000 + 37 H 9.1175 -0.0391 -2.8869 H 1 LIG 0.0000 + 38 H 11.0837 -1.3552 -1.5515 H 1 LIG 0.0000 + 39 H 11.1434 -0.7822 -3.0795 H 1 LIG 0.0000 + 40 H 10.2544 -3.4182 -2.3214 H 1 LIG 0.0000 + 41 H 11.6266 -3.0770 -3.1382 H 1 LIG 0.0000 + 42 H 10.3981 -2.2802 -4.9665 H 1 LIG 0.0000 + 43 H 9.8556 -3.7783 -4.6089 H 1 LIG 0.0000 + 44 H 8.3952 -1.4824 -4.7392 H 1 LIG 0.0000 + 45 H 7.8434 -2.9898 -4.4391 H 1 LIG 0.0000 + 46 H 6.8691 -1.1442 1.7653 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.0079 0.3478 -1.7922 C.2 1 LIG 0.0000 + 8 N8 4.0970 -0.1379 -2.3437 N.2 1 LIG 0.0000 + 9 C9 4.9843 -0.4741 -1.3617 C.ar 1 LIG 0.0000 + 10 C10 6.2645 -1.0178 -1.4026 C.ar 1 LIG 0.0000 + 11 N11 6.8358 -1.3132 -2.6462 N.pl3 1 LIG 0.0000 + 12 C12 8.1859 -1.8877 -2.7164 C.3 1 LIG 0.0000 + 13 C13 8.1741 -3.3228 -2.1993 C.3 1 LIG 0.0000 + 14 C14 9.5706 -3.9263 -2.1733 C.3 1 LIG 0.0000 + 15 C15 10.6328 -2.9479 -2.6493 C.3 1 LIG 0.0000 + 16 C16 10.5238 -1.6868 -1.8055 C.3 1 LIG 0.0000 + 17 C17 9.1213 -1.0939 -1.8177 C.3 1 LIG 0.0000 + 18 N18 6.9357 -1.2539 -0.2652 N.ar 1 LIG 0.0000 + 19 C19 6.3708 -0.9646 0.9171 C.ar 1 LIG 0.0000 + 20 N20 5.1375 -0.4345 0.9638 N.ar 1 LIG 0.0000 + 21 C21 4.4196 -0.1784 -0.1439 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1943 0.6713 -2.2754 H 1 LIG 0.0000 + 34 H 6.3247 -1.1331 -3.4866 H 1 LIG 0.0000 + 35 H 8.5179 -1.8666 -3.6594 H 1 LIG 0.0000 + 36 H 7.5932 -3.8768 -2.7957 H 1 LIG 0.0000 + 37 H 7.8015 -3.3293 -1.2713 H 1 LIG 0.0000 + 38 H 9.5844 -4.7300 -2.7682 H 1 LIG 0.0000 + 39 H 9.7842 -4.2017 -1.2360 H 1 LIG 0.0000 + 40 H 10.4819 -2.7256 -3.6126 H 1 LIG 0.0000 + 41 H 11.5405 -3.3526 -2.5388 H 1 LIG 0.0000 + 42 H 10.7689 -1.9103 -0.8622 H 1 LIG 0.0000 + 43 H 11.1626 -1.0057 -2.1634 H 1 LIG 0.0000 + 44 H 8.7585 -1.0997 -0.8858 H 1 LIG 0.0000 + 45 H 9.1698 -0.1523 -2.1507 H 1 LIG 0.0000 + 46 H 6.8691 -1.1442 1.7653 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 3.0079 0.3478 -1.7922 C.2 1 LIG 0.0000 + 8 N8 4.0970 -0.1379 -2.3437 N.2 1 LIG 0.0000 + 9 C9 4.9843 -0.4741 -1.3617 C.ar 1 LIG 0.0000 + 10 C10 6.2645 -1.0178 -1.4026 C.ar 1 LIG 0.0000 + 11 N11 6.8358 -1.3132 -2.6462 N.pl3 1 LIG 0.0000 + 12 C12 8.1859 -1.8877 -2.7164 C.3 1 LIG 0.0000 + 13 C13 8.5839 -2.1188 -4.1708 C.3 1 LIG 0.0000 + 14 C14 9.9424 -2.7944 -4.2851 C.3 1 LIG 0.0000 + 15 C15 10.5582 -3.0892 -2.9264 C.3 1 LIG 0.0000 + 16 C16 9.5604 -3.9118 -2.1252 C.3 1 LIG 0.0000 + 17 C17 8.1959 -3.2431 -2.0270 C.3 1 LIG 0.0000 + 18 N18 6.9357 -1.2539 -0.2652 N.ar 1 LIG 0.0000 + 19 C19 6.3708 -0.9646 0.9171 C.ar 1 LIG 0.0000 + 20 N20 5.1375 -0.4345 0.9638 N.ar 1 LIG 0.0000 + 21 C21 4.4196 -0.1784 -0.1439 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 2.1943 0.6713 -2.2754 H 1 LIG 0.0000 + 34 H 6.3247 -1.1331 -3.4866 H 1 LIG 0.0000 + 35 H 8.8417 -1.2748 -2.2756 H 1 LIG 0.0000 + 36 H 8.6207 -1.2366 -4.6403 H 1 LIG 0.0000 + 37 H 7.8960 -2.6996 -4.6061 H 1 LIG 0.0000 + 38 H 10.5586 -2.1930 -4.7935 H 1 LIG 0.0000 + 39 H 9.8323 -3.6555 -4.7816 H 1 LIG 0.0000 + 40 H 10.7524 -2.2323 -2.4489 H 1 LIG 0.0000 + 41 H 11.4068 -3.6052 -3.0434 H 1 LIG 0.0000 + 42 H 9.4499 -4.8016 -2.5680 H 1 LIG 0.0000 + 43 H 9.9207 -4.0416 -1.2014 H 1 LIG 0.0000 + 44 H 7.5138 -3.8324 -2.4599 H 1 LIG 0.0000 + 45 H 7.9644 -3.1182 -1.0622 H 1 LIG 0.0000 + 46 H 6.8691 -1.1442 1.7653 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.0996 -0.6589 -0.2171 C.2 1 LIG 0.0000 + 8 N8 4.8064 -0.8024 -1.3153 N.2 1 LIG 0.0000 + 9 C9 4.3645 0.0881 -2.2514 C.ar 1 LIG 0.0000 + 10 C10 4.7621 0.3456 -3.5599 C.ar 1 LIG 0.0000 + 11 N11 5.8121 -0.4006 -4.1083 N.pl3 1 LIG 0.0000 + 12 C12 6.2511 -0.1478 -5.4891 C.3 1 LIG 0.0000 + 13 C13 5.1887 -0.6185 -6.4745 C.3 1 LIG 0.0000 + 14 C14 5.5886 -0.3344 -7.9150 C.3 1 LIG 0.0000 + 15 C15 6.9141 0.4075 -8.0177 C.3 1 LIG 0.0000 + 16 C16 6.8378 1.6526 -7.1499 C.3 1 LIG 0.0000 + 17 C17 6.4710 1.3405 -5.7075 C.3 1 LIG 0.0000 + 18 N18 4.1459 1.2957 -4.2794 N.ar 1 LIG 0.0000 + 19 C19 3.1420 2.0008 -3.7358 C.ar 1 LIG 0.0000 + 20 N20 2.7494 1.7538 -2.4752 N.ar 1 LIG 0.0000 + 21 C21 3.3317 0.8148 -1.7088 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.2096 -1.1803 0.6291 H 1 LIG 0.0000 + 34 H 6.2635 -1.1055 -3.5612 H 1 LIG 0.0000 + 35 H 7.1051 -0.6388 -5.6614 H 1 LIG 0.0000 + 36 H 4.3310 -0.1438 -6.2770 H 1 LIG 0.0000 + 37 H 5.0577 -1.6036 -6.3632 H 1 LIG 0.0000 + 38 H 4.8758 0.2223 -8.3416 H 1 LIG 0.0000 + 39 H 5.6692 -1.2037 -8.4026 H 1 LIG 0.0000 + 40 H 7.0819 0.6685 -8.9683 H 1 LIG 0.0000 + 41 H 7.6562 -0.1817 -7.6978 H 1 LIG 0.0000 + 42 H 7.7287 2.1066 -7.1625 H 1 LIG 0.0000 + 43 H 6.1458 2.2660 -7.5305 H 1 LIG 0.0000 + 44 H 7.2122 1.6489 -5.1112 H 1 LIG 0.0000 + 45 H 5.6303 1.8294 -5.4744 H 1 LIG 0.0000 + 46 H 2.6851 2.7117 -4.2703 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.0996 -0.6589 -0.2171 C.2 1 LIG 0.0000 + 8 N8 4.8064 -0.8024 -1.3153 N.2 1 LIG 0.0000 + 9 C9 4.3645 0.0881 -2.2514 C.ar 1 LIG 0.0000 + 10 C10 4.7621 0.3456 -3.5599 C.ar 1 LIG 0.0000 + 11 N11 5.8121 -0.4006 -4.1083 N.pl3 1 LIG 0.0000 + 12 C12 6.2511 -0.1478 -5.4891 C.3 1 LIG 0.0000 + 13 C13 6.9499 1.2029 -5.5810 C.3 1 LIG 0.0000 + 14 C14 7.4574 1.4819 -6.9882 C.3 1 LIG 0.0000 + 15 C15 7.2049 0.3215 -7.9409 C.3 1 LIG 0.0000 + 16 C16 7.7821 -0.9420 -7.3247 C.3 1 LIG 0.0000 + 17 C17 7.2342 -1.2189 -5.9334 C.3 1 LIG 0.0000 + 18 N18 4.1459 1.2957 -4.2794 N.ar 1 LIG 0.0000 + 19 C19 3.1420 2.0008 -3.7358 C.ar 1 LIG 0.0000 + 20 N20 2.7494 1.7538 -2.4752 N.ar 1 LIG 0.0000 + 21 C21 3.3317 0.8148 -1.7088 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.2096 -1.1803 0.6291 H 1 LIG 0.0000 + 34 H 6.2635 -1.1055 -3.5612 H 1 LIG 0.0000 + 35 H 5.4568 -0.1531 -6.0966 H 1 LIG 0.0000 + 36 H 7.7255 1.2097 -4.9499 H 1 LIG 0.0000 + 37 H 6.3031 1.9203 -5.3220 H 1 LIG 0.0000 + 38 H 8.4416 1.6535 -6.9458 H 1 LIG 0.0000 + 39 H 6.9924 2.2937 -7.3416 H 1 LIG 0.0000 + 40 H 7.6494 0.5024 -8.8183 H 1 LIG 0.0000 + 41 H 6.2214 0.2090 -8.0825 H 1 LIG 0.0000 + 42 H 7.5596 -1.7170 -7.9163 H 1 LIG 0.0000 + 43 H 8.7753 -0.8435 -7.2637 H 1 LIG 0.0000 + 44 H 6.7679 -2.1036 -5.9395 H 1 LIG 0.0000 + 45 H 7.9956 -1.2479 -5.2858 H 1 LIG 0.0000 + 46 H 2.6851 2.7117 -4.2703 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.0996 -0.6589 -0.2171 C.2 1 LIG 0.0000 + 8 N8 4.8064 -0.8024 -1.3153 N.2 1 LIG 0.0000 + 9 C9 4.3645 0.0881 -2.2514 C.ar 1 LIG 0.0000 + 10 C10 4.7621 0.3456 -3.5599 C.ar 1 LIG 0.0000 + 11 N11 5.8121 -0.4006 -4.1083 N.pl3 1 LIG 0.0000 + 12 C12 6.2511 -0.1478 -5.4891 C.3 1 LIG 0.0000 + 13 C13 7.4000 -1.0789 -5.8557 C.3 1 LIG 0.0000 + 14 C14 7.8544 -0.8766 -7.2938 C.3 1 LIG 0.0000 + 15 C15 7.0113 0.1532 -8.0333 C.3 1 LIG 0.0000 + 16 C16 5.5491 -0.2404 -7.9063 C.3 1 LIG 0.0000 + 17 C17 5.1091 -0.4027 -6.4597 C.3 1 LIG 0.0000 + 18 N18 4.1459 1.2957 -4.2794 N.ar 1 LIG 0.0000 + 19 C19 3.1420 2.0008 -3.7358 C.ar 1 LIG 0.0000 + 20 N20 2.7494 1.7538 -2.4752 N.ar 1 LIG 0.0000 + 21 C21 3.3317 0.8148 -1.7088 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.2096 -1.1803 0.6291 H 1 LIG 0.0000 + 34 H 6.2635 -1.1055 -3.5612 H 1 LIG 0.0000 + 35 H 6.5531 0.8018 -5.5732 H 1 LIG 0.0000 + 36 H 7.0985 -2.0255 -5.7416 H 1 LIG 0.0000 + 37 H 8.1705 -0.8985 -5.2443 H 1 LIG 0.0000 + 38 H 7.7895 -1.7501 -7.7763 H 1 LIG 0.0000 + 39 H 8.8056 -0.5682 -7.2890 H 1 LIG 0.0000 + 40 H 7.2728 0.1730 -8.9983 H 1 LIG 0.0000 + 41 H 7.1535 1.0575 -7.6308 H 1 LIG 0.0000 + 42 H 4.9884 0.4688 -8.3336 H 1 LIG 0.0000 + 43 H 5.4087 -1.1084 -8.3827 H 1 LIG 0.0000 + 44 H 4.3728 0.2471 -6.2707 H 1 LIG 0.0000 + 45 H 4.7732 -1.3351 -6.3263 H 1 LIG 0.0000 + 46 H 2.6851 2.7117 -4.2703 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.0996 -0.6589 -0.2171 C.2 1 LIG 0.0000 + 8 N8 4.8064 -0.8024 -1.3153 N.2 1 LIG 0.0000 + 9 C9 4.3645 0.0881 -2.2514 C.ar 1 LIG 0.0000 + 10 C10 4.7621 0.3456 -3.5599 C.ar 1 LIG 0.0000 + 11 N11 5.8121 -0.4006 -4.1083 N.pl3 1 LIG 0.0000 + 12 C12 6.2505 -0.1482 -5.4873 C.3 1 LIG 0.0000 + 13 C13 5.1856 -0.6201 -6.4723 C.3 1 LIG 0.0000 + 14 C14 5.6378 -0.4564 -7.9159 C.3 1 LIG 0.0000 + 15 C15 7.0420 0.1173 -8.0209 C.3 1 LIG 0.0000 + 16 C16 7.9755 -0.7705 -7.2116 C.3 1 LIG 0.0000 + 17 C17 7.5120 -0.9482 -5.7721 C.3 1 LIG 0.0000 + 18 N18 4.1459 1.2957 -4.2794 N.ar 1 LIG 0.0000 + 19 C19 3.1420 2.0008 -3.7358 C.ar 1 LIG 0.0000 + 20 N20 2.7494 1.7538 -2.4752 N.ar 1 LIG 0.0000 + 21 C21 3.3317 0.8148 -1.7088 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.2096 -1.1803 0.6291 H 1 LIG 0.0000 + 34 H 6.2635 -1.1055 -3.5612 H 1 LIG 0.0000 + 35 H 6.4278 0.8275 -5.6167 H 1 LIG 0.0000 + 36 H 4.3536 -0.0835 -6.3311 H 1 LIG 0.0000 + 37 H 4.9921 -1.5862 -6.3014 H 1 LIG 0.0000 + 38 H 5.0034 0.1591 -8.3835 H 1 LIG 0.0000 + 39 H 5.6224 -1.3518 -8.3609 H 1 LIG 0.0000 + 40 H 7.0565 1.0477 -7.6547 H 1 LIG 0.0000 + 41 H 7.3320 0.1311 -8.9778 H 1 LIG 0.0000 + 42 H 8.0202 -1.6695 -7.6471 H 1 LIG 0.0000 + 43 H 8.8861 -0.3571 -7.2063 H 1 LIG 0.0000 + 44 H 7.3258 -1.9170 -5.6084 H 1 LIG 0.0000 + 45 H 8.2377 -0.6398 -5.1571 H 1 LIG 0.0000 + 46 H 2.6851 2.7117 -4.2703 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.0996 -0.6589 -0.2171 C.2 1 LIG 0.0000 + 8 N8 4.8064 -0.8024 -1.3153 N.2 1 LIG 0.0000 + 9 C9 4.3645 0.0881 -2.2514 C.ar 1 LIG 0.0000 + 10 C10 4.7621 0.3456 -3.5599 C.ar 1 LIG 0.0000 + 11 N11 5.8121 -0.4006 -4.1083 N.pl3 1 LIG 0.0000 + 12 C12 6.2505 -0.1482 -5.4873 C.3 1 LIG 0.0000 + 13 C13 6.9499 1.2046 -5.5773 C.3 1 LIG 0.0000 + 14 C14 7.3431 1.5442 -7.0073 C.3 1 LIG 0.0000 + 15 C15 6.9269 0.4646 -7.9939 C.3 1 LIG 0.0000 + 16 C16 5.4315 0.2337 -7.8366 C.3 1 LIG 0.0000 + 17 C17 5.0368 -0.0882 -6.4016 C.3 1 LIG 0.0000 + 18 N18 4.1459 1.2957 -4.2794 N.ar 1 LIG 0.0000 + 19 C19 3.1420 2.0008 -3.7358 C.ar 1 LIG 0.0000 + 20 N20 2.7494 1.7538 -2.4752 N.ar 1 LIG 0.0000 + 21 C21 3.3317 0.8148 -1.7088 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.2096 -1.1803 0.6291 H 1 LIG 0.0000 + 34 H 6.2635 -1.1055 -3.5612 H 1 LIG 0.0000 + 35 H 6.8695 -0.8738 -5.7877 H 1 LIG 0.0000 + 36 H 7.7744 1.1808 -5.0119 H 1 LIG 0.0000 + 37 H 6.3313 1.9120 -5.2351 H 1 LIG 0.0000 + 38 H 8.3362 1.6531 -7.0502 H 1 LIG 0.0000 + 39 H 6.9021 2.4035 -7.2664 H 1 LIG 0.0000 + 40 H 7.4231 -0.3817 -7.7998 H 1 LIG 0.0000 + 41 H 7.1279 0.7623 -8.9272 H 1 LIG 0.0000 + 42 H 4.9477 1.0603 -8.1242 H 1 LIG 0.0000 + 43 H 5.1621 -0.5309 -8.4221 H 1 LIG 0.0000 + 44 H 4.4149 0.6209 -6.0693 H 1 LIG 0.0000 + 45 H 4.5728 -0.9738 -6.3835 H 1 LIG 0.0000 + 46 H 2.6851 2.7117 -4.2703 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 0.1006 1.5750 2.4406 O.3 1 LIG 0.0000 + 2 C2 -0.5499 2.1212 1.3026 C.3 1 LIG 0.0000 + 3 C3 0.0733 1.5491 0.0394 C.3 1 LIG 0.0000 + 4 O4 1.4556 1.8246 -0.0978 O.3 1 LIG 0.0000 + 5 C5 2.2010 0.7963 0.5413 C.3 1 LIG 0.0000 + 6 N6 3.1890 0.3303 -0.4413 N.pl3 1 LIG 0.0000 + 7 C7 4.0996 -0.6589 -0.2171 C.2 1 LIG 0.0000 + 8 N8 4.8064 -0.8024 -1.3153 N.2 1 LIG 0.0000 + 9 C9 4.3645 0.0881 -2.2514 C.ar 1 LIG 0.0000 + 10 C10 4.7621 0.3456 -3.5599 C.ar 1 LIG 0.0000 + 11 N11 5.8121 -0.4006 -4.1083 N.pl3 1 LIG 0.0000 + 12 C12 6.2505 -0.1482 -5.4873 C.3 1 LIG 0.0000 + 13 C13 7.4008 -1.0813 -5.8524 C.3 1 LIG 0.0000 + 14 C14 7.9432 -0.7930 -7.2445 C.3 1 LIG 0.0000 + 15 C15 7.2206 0.3623 -7.9192 C.3 1 LIG 0.0000 + 16 C16 7.2999 1.5703 -6.9978 C.3 1 LIG 0.0000 + 17 C17 6.7737 1.2753 -5.5997 C.3 1 LIG 0.0000 + 18 N18 4.1459 1.2957 -4.2794 N.ar 1 LIG 0.0000 + 19 C19 3.1420 2.0008 -3.7358 C.ar 1 LIG 0.0000 + 20 N20 2.7494 1.7538 -2.4752 N.ar 1 LIG 0.0000 + 21 C21 3.3317 0.8148 -1.7088 C.ar 1 LIG 0.0000 + 22 C22 1.2030 -0.2914 0.8991 C.3 1 LIG 0.0000 + 23 O23 1.7119 -1.5945 0.6501 O.3 1 LIG 0.0000 + 24 C24 0.0305 0.0380 -0.0005 C.3 1 LIG 0.0000 + 25 O25 0.2108 -0.4241 -1.3330 O.3 1 LIG 0.0000 + 26 H -0.4122 1.9105 -0.7567 H 1 LIG 0.0000 + 27 H 0.9332 -0.2066 1.8583 H 1 LIG 0.0000 + 28 H -0.8252 -0.3065 0.3856 H 1 LIG 0.0000 + 29 H -0.3093 1.9514 3.2715 H 1 LIG 0.0000 + 30 H -0.4460 3.1158 1.3046 H 1 LIG 0.0000 + 31 H -1.5219 1.8875 1.3301 H 1 LIG 0.0000 + 32 H 2.6543 1.1449 1.3616 H 1 LIG 0.0000 + 33 H 4.2096 -1.1803 0.6291 H 1 LIG 0.0000 + 34 H 6.2635 -1.1055 -3.5612 H 1 LIG 0.0000 + 35 H 5.4871 -0.2829 -6.1191 H 1 LIG 0.0000 + 36 H 7.0735 -2.0257 -5.8219 H 1 LIG 0.0000 + 37 H 8.1377 -0.9622 -5.1870 H 1 LIG 0.0000 + 38 H 7.8350 -1.6123 -7.8075 H 1 LIG 0.0000 + 39 H 8.9141 -0.5653 -7.1702 H 1 LIG 0.0000 + 40 H 6.2638 0.1182 -8.0769 H 1 LIG 0.0000 + 41 H 7.6593 0.5728 -8.7929 H 1 LIG 0.0000 + 42 H 8.2554 1.8568 -6.9267 H 1 LIG 0.0000 + 43 H 6.7583 2.3116 -7.3942 H 1 LIG 0.0000 + 44 H 7.5151 1.4016 -4.9406 H 1 LIG 0.0000 + 45 H 6.0308 1.9115 -5.3917 H 1 LIG 0.0000 + 46 H 2.6851 2.7117 -4.2703 H 1 LIG 0.0000 + 47 H 2.4825 -1.7739 1.2617 H 1 LIG 0.0000 + 48 H 0.1806 -1.4236 -1.3462 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 2.3854 -0.1973 -1.6953 O.3 1 LIG 0.0000 + 2 C2 3.1332 0.2466 -0.5727 C.3 1 LIG 0.0000 + 3 C3 2.1852 0.7595 0.4959 C.3 1 LIG 0.0000 + 4 O4 1.4508 1.8350 -0.0691 O.3 1 LIG 0.0000 + 5 C5 0.0644 1.5666 0.0113 C.3 1 LIG 0.0000 + 6 N6 -0.5631 2.1614 1.1994 N.pl3 1 LIG 0.0000 + 7 C7 -1.8604 2.5739 1.2675 C.2 1 LIG 0.0000 + 8 N8 -2.0630 3.0442 2.4775 N.2 1 LIG 0.0000 + 9 C9 -0.9063 2.9435 3.1963 C.ar 1 LIG 0.0000 + 10 C10 -0.5843 3.2891 4.5052 C.ar 1 LIG 0.0000 + 11 N11 -1.5714 3.8593 5.3179 N.pl3 1 LIG 0.0000 + 12 C12 -1.2563 4.2334 6.7049 C.3 1 LIG 0.0000 + 13 C13 -0.3181 5.4336 6.7270 C.3 1 LIG 0.0000 + 14 C14 -0.0024 5.8780 8.1478 C.3 1 LIG 0.0000 + 15 C15 -0.7496 5.0629 9.1943 C.3 1 LIG 0.0000 + 16 C16 -2.2320 5.0946 8.8614 C.3 1 LIG 0.0000 + 17 C17 -2.5263 4.6134 7.4492 C.3 1 LIG 0.0000 + 18 N18 0.6545 3.0778 4.9752 N.ar 1 LIG 0.0000 + 19 C19 1.5871 2.5308 4.1804 C.ar 1 LIG 0.0000 + 20 N20 1.2816 2.1897 2.9177 N.ar 1 LIG 0.0000 + 21 C21 0.0575 2.3798 2.3947 C.ar 1 LIG 0.0000 + 22 C22 0.0117 0.0546 0.0042 C.3 1 LIG 0.0000 + 23 O23 -1.2211 -0.4536 0.4961 O.3 1 LIG 0.0000 + 24 C24 1.1851 -0.3144 0.8892 C.3 1 LIG 0.0000 + 25 O25 0.8707 -0.2259 2.2730 O.3 1 LIG 0.0000 + 26 H 2.6974 1.0696 1.2969 H 1 LIG 0.0000 + 27 H 0.1696 -0.2838 -0.9235 H 1 LIG 0.0000 + 28 H 1.5314 -1.2242 0.6604 H 1 LIG 0.0000 + 29 H 3.0100 -0.5353 -2.3993 H 1 LIG 0.0000 + 30 H 3.7495 0.9826 -0.8527 H 1 LIG 0.0000 + 31 H 3.6680 -0.5147 -0.2062 H 1 LIG 0.0000 + 32 H -0.3871 1.9161 -0.8097 H 1 LIG 0.0000 + 33 H -2.5350 2.5272 0.5308 H 1 LIG 0.0000 + 34 H -2.4907 4.0122 4.9553 H 1 LIG 0.0000 + 35 H -0.8192 3.4613 7.1663 H 1 LIG 0.0000 + 36 H -0.7509 6.1918 6.2393 H 1 LIG 0.0000 + 37 H 0.5352 5.1859 6.2682 H 1 LIG 0.0000 + 38 H -0.2588 6.8395 8.2473 H 1 LIG 0.0000 + 39 H 0.9801 5.7771 8.3043 H 1 LIG 0.0000 + 40 H -0.5988 5.4580 10.1005 H 1 LIG 0.0000 + 41 H -0.4216 4.1183 9.1837 H 1 LIG 0.0000 + 42 H -2.7178 4.5061 9.5078 H 1 LIG 0.0000 + 43 H -2.5609 6.0344 8.9543 H 1 LIG 0.0000 + 44 H -3.1243 3.8134 7.4980 H 1 LIG 0.0000 + 45 H -2.9885 5.3449 6.9479 H 1 LIG 0.0000 + 46 H 2.5116 2.3768 4.5291 H 1 LIG 0.0000 + 47 H -1.9618 -0.1847 -0.1195 H 1 LIG 0.0000 + 48 H 0.2123 -0.9399 2.5115 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 2.3854 -0.1973 -1.6953 O.3 1 LIG 0.0000 + 2 C2 3.1332 0.2466 -0.5727 C.3 1 LIG 0.0000 + 3 C3 2.1852 0.7595 0.4959 C.3 1 LIG 0.0000 + 4 O4 1.4508 1.8350 -0.0691 O.3 1 LIG 0.0000 + 5 C5 0.0644 1.5666 0.0113 C.3 1 LIG 0.0000 + 6 N6 -0.5631 2.1614 1.1994 N.pl3 1 LIG 0.0000 + 7 C7 -1.8604 2.5739 1.2675 C.2 1 LIG 0.0000 + 8 N8 -2.0630 3.0442 2.4775 N.2 1 LIG 0.0000 + 9 C9 -0.9063 2.9435 3.1963 C.ar 1 LIG 0.0000 + 10 C10 -0.5843 3.2891 4.5052 C.ar 1 LIG 0.0000 + 11 N11 -1.5714 3.8593 5.3179 N.pl3 1 LIG 0.0000 + 12 C12 -1.2563 4.2334 6.7049 C.3 1 LIG 0.0000 + 13 C13 -2.4840 4.8298 7.3819 C.3 1 LIG 0.0000 + 14 C14 -2.2091 5.1906 8.8344 C.3 1 LIG 0.0000 + 15 C15 -0.8029 4.8080 9.2752 C.3 1 LIG 0.0000 + 16 C16 -0.5828 3.3377 8.9607 C.3 1 LIG 0.0000 + 17 C17 -0.8295 3.0078 7.4968 C.3 1 LIG 0.0000 + 18 N18 0.6545 3.0778 4.9752 N.ar 1 LIG 0.0000 + 19 C19 1.5871 2.5308 4.1804 C.ar 1 LIG 0.0000 + 20 N20 1.2816 2.1897 2.9177 N.ar 1 LIG 0.0000 + 21 C21 0.0575 2.3798 2.3947 C.ar 1 LIG 0.0000 + 22 C22 0.0117 0.0546 0.0042 C.3 1 LIG 0.0000 + 23 O23 -1.2211 -0.4536 0.4961 O.3 1 LIG 0.0000 + 24 C24 1.1851 -0.3144 0.8892 C.3 1 LIG 0.0000 + 25 O25 0.8707 -0.2259 2.2730 O.3 1 LIG 0.0000 + 26 H 2.6974 1.0696 1.2969 H 1 LIG 0.0000 + 27 H 0.1696 -0.2838 -0.9235 H 1 LIG 0.0000 + 28 H 1.5314 -1.2242 0.6604 H 1 LIG 0.0000 + 29 H 3.0100 -0.5353 -2.3993 H 1 LIG 0.0000 + 30 H 3.7495 0.9826 -0.8527 H 1 LIG 0.0000 + 31 H 3.6680 -0.5147 -0.2062 H 1 LIG 0.0000 + 32 H -0.3871 1.9161 -0.8097 H 1 LIG 0.0000 + 33 H -2.5350 2.5272 0.5308 H 1 LIG 0.0000 + 34 H -2.4907 4.0122 4.9553 H 1 LIG 0.0000 + 35 H -0.5158 4.9054 6.7079 H 1 LIG 0.0000 + 36 H -3.2279 4.1623 7.3493 H 1 LIG 0.0000 + 37 H -2.7560 5.6563 6.8889 H 1 LIG 0.0000 + 38 H -2.8682 4.7113 9.4140 H 1 LIG 0.0000 + 39 H -2.3227 6.1778 8.9465 H 1 LIG 0.0000 + 40 H -0.7042 4.9612 10.2584 H 1 LIG 0.0000 + 41 H -0.1323 5.3625 8.7824 H 1 LIG 0.0000 + 42 H 0.3616 3.0998 9.1875 H 1 LIG 0.0000 + 43 H -1.2074 2.7936 9.5209 H 1 LIG 0.0000 + 44 H 0.0136 2.6442 7.1006 H 1 LIG 0.0000 + 45 H -1.5504 2.3173 7.4378 H 1 LIG 0.0000 + 46 H 2.5116 2.3768 4.5291 H 1 LIG 0.0000 + 47 H -1.9618 -0.1847 -0.1195 H 1 LIG 0.0000 + 48 H 0.2123 -0.9399 2.5115 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 2.3854 -0.1973 -1.6953 O.3 1 LIG 0.0000 + 2 C2 3.1332 0.2466 -0.5727 C.3 1 LIG 0.0000 + 3 C3 2.1852 0.7595 0.4959 C.3 1 LIG 0.0000 + 4 O4 1.4508 1.8350 -0.0691 O.3 1 LIG 0.0000 + 5 C5 0.0644 1.5666 0.0113 C.3 1 LIG 0.0000 + 6 N6 -0.5631 2.1614 1.1994 N.pl3 1 LIG 0.0000 + 7 C7 -1.8604 2.5739 1.2675 C.2 1 LIG 0.0000 + 8 N8 -2.0630 3.0442 2.4775 N.2 1 LIG 0.0000 + 9 C9 -0.9063 2.9435 3.1963 C.ar 1 LIG 0.0000 + 10 C10 -0.5843 3.2891 4.5052 C.ar 1 LIG 0.0000 + 11 N11 -1.5714 3.8593 5.3179 N.pl3 1 LIG 0.0000 + 12 C12 -1.2567 4.2329 6.7032 C.3 1 LIG 0.0000 + 13 C13 -1.0522 2.9818 7.5516 C.3 1 LIG 0.0000 + 14 C14 -0.8098 3.3234 9.0144 C.3 1 LIG 0.0000 + 15 C15 -0.8499 4.8213 9.2731 C.3 1 LIG 0.0000 + 16 C16 -2.1798 5.3527 8.7599 C.3 1 LIG 0.0000 + 17 C17 -2.4294 4.9945 7.3011 C.3 1 LIG 0.0000 + 18 N18 0.6545 3.0778 4.9752 N.ar 1 LIG 0.0000 + 19 C19 1.5871 2.5308 4.1804 C.ar 1 LIG 0.0000 + 20 N20 1.2816 2.1897 2.9177 N.ar 1 LIG 0.0000 + 21 C21 0.0575 2.3798 2.3947 C.ar 1 LIG 0.0000 + 22 C22 0.0117 0.0546 0.0042 C.3 1 LIG 0.0000 + 23 O23 -1.2211 -0.4536 0.4961 O.3 1 LIG 0.0000 + 24 C24 1.1851 -0.3144 0.8892 C.3 1 LIG 0.0000 + 25 O25 0.8707 -0.2259 2.2730 O.3 1 LIG 0.0000 + 26 H 2.6974 1.0696 1.2969 H 1 LIG 0.0000 + 27 H 0.1696 -0.2838 -0.9235 H 1 LIG 0.0000 + 28 H 1.5314 -1.2242 0.6604 H 1 LIG 0.0000 + 29 H 3.0100 -0.5353 -2.3993 H 1 LIG 0.0000 + 30 H 3.7495 0.9826 -0.8527 H 1 LIG 0.0000 + 31 H 3.6680 -0.5147 -0.2062 H 1 LIG 0.0000 + 32 H -0.3871 1.9161 -0.8097 H 1 LIG 0.0000 + 33 H -2.5350 2.5272 0.5308 H 1 LIG 0.0000 + 34 H -2.4907 4.0122 4.9553 H 1 LIG 0.0000 + 35 H -0.4333 4.8000 6.7259 H 1 LIG 0.0000 + 36 H -0.2618 2.4791 7.2015 H 1 LIG 0.0000 + 37 H -1.8685 2.4081 7.4843 H 1 LIG 0.0000 + 38 H 0.0889 2.9753 9.2810 H 1 LIG 0.0000 + 39 H -1.5159 2.8826 9.5685 H 1 LIG 0.0000 + 40 H -0.0969 5.2690 8.7909 H 1 LIG 0.0000 + 41 H -0.7697 4.9983 10.2540 H 1 LIG 0.0000 + 42 H -2.9155 4.9651 9.3153 H 1 LIG 0.0000 + 43 H -2.1832 6.3486 8.8503 H 1 LIG 0.0000 + 44 H -3.2497 4.4255 7.2424 H 1 LIG 0.0000 + 45 H -2.5696 5.8361 6.7796 H 1 LIG 0.0000 + 46 H 2.5116 2.3768 4.5291 H 1 LIG 0.0000 + 47 H -1.9618 -0.1847 -0.1195 H 1 LIG 0.0000 + 48 H 0.2123 -0.9399 2.5115 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 2.3854 -0.1973 -1.6953 O.3 1 LIG 0.0000 + 2 C2 3.1332 0.2466 -0.5727 C.3 1 LIG 0.0000 + 3 C3 2.1852 0.7595 0.4959 C.3 1 LIG 0.0000 + 4 O4 1.4508 1.8350 -0.0691 O.3 1 LIG 0.0000 + 5 C5 0.0644 1.5666 0.0113 C.3 1 LIG 0.0000 + 6 N6 -0.5631 2.1614 1.1994 N.pl3 1 LIG 0.0000 + 7 C7 -1.8604 2.5739 1.2675 C.2 1 LIG 0.0000 + 8 N8 -2.0630 3.0442 2.4775 N.2 1 LIG 0.0000 + 9 C9 -0.9063 2.9435 3.1963 C.ar 1 LIG 0.0000 + 10 C10 -0.5843 3.2891 4.5052 C.ar 1 LIG 0.0000 + 11 N11 -1.5714 3.8593 5.3179 N.pl3 1 LIG 0.0000 + 12 C12 -1.2567 4.2329 6.7032 C.3 1 LIG 0.0000 + 13 C13 -2.4871 4.8298 7.3791 C.3 1 LIG 0.0000 + 14 C14 -2.1803 5.3109 8.7897 C.3 1 LIG 0.0000 + 15 C15 -0.7238 5.0966 9.1702 C.3 1 LIG 0.0000 + 16 C16 0.1425 5.7738 8.1188 C.3 1 LIG 0.0000 + 17 C17 -0.1781 5.3049 6.7060 C.3 1 LIG 0.0000 + 18 N18 0.6545 3.0778 4.9752 N.ar 1 LIG 0.0000 + 19 C19 1.5871 2.5308 4.1804 C.ar 1 LIG 0.0000 + 20 N20 1.2816 2.1897 2.9177 N.ar 1 LIG 0.0000 + 21 C21 0.0575 2.3798 2.3947 C.ar 1 LIG 0.0000 + 22 C22 0.0117 0.0546 0.0042 C.3 1 LIG 0.0000 + 23 O23 -1.2211 -0.4536 0.4961 O.3 1 LIG 0.0000 + 24 C24 1.1851 -0.3144 0.8892 C.3 1 LIG 0.0000 + 25 O25 0.8707 -0.2259 2.2730 O.3 1 LIG 0.0000 + 26 H 2.6974 1.0696 1.2969 H 1 LIG 0.0000 + 27 H 0.1696 -0.2838 -0.9235 H 1 LIG 0.0000 + 28 H 1.5314 -1.2242 0.6604 H 1 LIG 0.0000 + 29 H 3.0100 -0.5353 -2.3993 H 1 LIG 0.0000 + 30 H 3.7495 0.9826 -0.8527 H 1 LIG 0.0000 + 31 H 3.6680 -0.5147 -0.2062 H 1 LIG 0.0000 + 32 H -0.3871 1.9161 -0.8097 H 1 LIG 0.0000 + 33 H -2.5350 2.5272 0.5308 H 1 LIG 0.0000 + 34 H -2.4907 4.0122 4.9553 H 1 LIG 0.0000 + 35 H -0.9429 3.4306 7.2110 H 1 LIG 0.0000 + 36 H -3.2023 4.1322 7.4236 H 1 LIG 0.0000 + 37 H -2.8106 5.6047 6.8362 H 1 LIG 0.0000 + 38 H -2.7578 4.8085 9.4332 H 1 LIG 0.0000 + 39 H -2.3874 6.2875 8.8482 H 1 LIG 0.0000 + 40 H -0.5209 4.1178 9.1977 H 1 LIG 0.0000 + 41 H -0.5450 5.4995 10.0678 H 1 LIG 0.0000 + 42 H -0.0052 6.7616 8.1697 H 1 LIG 0.0000 + 43 H 1.1017 5.5697 8.3142 H 1 LIG 0.0000 + 44 H -0.4958 6.0864 6.1689 H 1 LIG 0.0000 + 45 H 0.6519 4.9312 6.2919 H 1 LIG 0.0000 + 46 H 2.5116 2.3768 4.5291 H 1 LIG 0.0000 + 47 H -1.9618 -0.1847 -0.1195 H 1 LIG 0.0000 + 48 H 0.2123 -0.9399 2.5115 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 2.3854 -0.1973 -1.6953 O.3 1 LIG 0.0000 + 2 C2 3.1332 0.2466 -0.5727 C.3 1 LIG 0.0000 + 3 C3 2.1852 0.7595 0.4959 C.3 1 LIG 0.0000 + 4 O4 1.4508 1.8350 -0.0691 O.3 1 LIG 0.0000 + 5 C5 0.0644 1.5666 0.0113 C.3 1 LIG 0.0000 + 6 N6 -0.5631 2.1614 1.1994 N.pl3 1 LIG 0.0000 + 7 C7 0.0715 2.3770 2.3863 C.2 1 LIG 0.0000 + 8 N8 -0.7979 2.9229 3.2064 N.2 1 LIG 0.0000 + 9 C9 -1.9943 3.0612 2.5628 C.ar 1 LIG 0.0000 + 10 C10 -3.2223 3.5742 2.9693 C.ar 1 LIG 0.0000 + 11 N11 -3.3535 4.0640 4.2743 N.pl3 1 LIG 0.0000 + 12 C12 -4.6400 4.6111 4.7280 C.3 1 LIG 0.0000 + 13 C13 -4.5323 5.0761 6.1712 C.3 1 LIG 0.0000 + 14 C14 -5.8627 5.6469 6.6345 C.3 1 LIG 0.0000 + 15 C15 -6.2733 6.8111 5.7472 C.3 1 LIG 0.0000 + 16 C16 -6.3836 6.3374 4.3066 C.3 1 LIG 0.0000 + 17 C17 -5.0558 5.7678 3.8334 C.3 1 LIG 0.0000 + 18 N18 -4.2608 3.5957 2.1201 N.ar 1 LIG 0.0000 + 19 C19 -4.1154 3.1209 0.8736 C.ar 1 LIG 0.0000 + 20 N20 -2.9313 2.6293 0.4727 N.ar 1 LIG 0.0000 + 21 C21 -1.8583 2.5824 1.2816 C.ar 1 LIG 0.0000 + 22 C22 0.0117 0.0546 0.0042 C.3 1 LIG 0.0000 + 23 O23 -1.2211 -0.4536 0.4961 O.3 1 LIG 0.0000 + 24 C24 1.1851 -0.3144 0.8892 C.3 1 LIG 0.0000 + 25 O25 0.8707 -0.2259 2.2730 O.3 1 LIG 0.0000 + 26 H 2.6974 1.0696 1.2969 H 1 LIG 0.0000 + 27 H 0.1696 -0.2838 -0.9235 H 1 LIG 0.0000 + 28 H 1.5314 -1.2242 0.6604 H 1 LIG 0.0000 + 29 H 3.0100 -0.5353 -2.3993 H 1 LIG 0.0000 + 30 H 3.7495 0.9826 -0.8527 H 1 LIG 0.0000 + 31 H 3.6680 -0.5147 -0.2062 H 1 LIG 0.0000 + 32 H -0.3871 1.9161 -0.8097 H 1 LIG 0.0000 + 33 H 1.0250 2.1594 2.5950 H 1 LIG 0.0000 + 34 H -2.5719 4.0417 4.8977 H 1 LIG 0.0000 + 35 H -5.3340 3.8934 4.6710 H 1 LIG 0.0000 + 36 H -3.8272 5.7819 6.2400 H 1 LIG 0.0000 + 37 H -4.2848 4.3001 6.7515 H 1 LIG 0.0000 + 38 H -5.7744 5.9661 7.5781 H 1 LIG 0.0000 + 39 H -6.5621 4.9337 6.5880 H 1 LIG 0.0000 + 40 H -5.5861 7.5350 5.8081 H 1 LIG 0.0000 + 41 H -7.1581 7.1651 6.0502 H 1 LIG 0.0000 + 42 H -7.0867 5.6289 4.2456 H 1 LIG 0.0000 + 43 H -6.6372 7.1097 3.7242 H 1 LIG 0.0000 + 44 H -5.1513 5.4417 2.8929 H 1 LIG 0.0000 + 45 H -4.3570 6.4822 3.8691 H 1 LIG 0.0000 + 46 H -4.8902 3.1331 0.2416 H 1 LIG 0.0000 + 47 H -1.9618 -0.1847 -0.1195 H 1 LIG 0.0000 + 48 H 0.2123 -0.9399 2.5115 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.7962 -1.5631 0.1870 C.2 1 LIG 0.0000 + 8 N8 -2.8849 -1.7377 0.9016 N.2 1 LIG 0.0000 + 9 C9 -3.0052 -0.7097 1.7923 C.ar 1 LIG 0.0000 + 10 C10 -3.9581 -0.4195 2.7640 C.ar 1 LIG 0.0000 + 11 N11 -5.0409 -1.2907 2.9327 N.pl3 1 LIG 0.0000 + 12 C12 -6.0602 -1.0067 3.9515 C.3 1 LIG 0.0000 + 13 C13 -6.8907 0.2052 3.5408 C.3 1 LIG 0.0000 + 14 C14 -7.9025 0.5868 4.6111 C.3 1 LIG 0.0000 + 15 C15 -7.8244 -0.3185 5.8303 C.3 1 LIG 0.0000 + 16 C16 -6.3923 -0.2957 6.3432 C.3 1 LIG 0.0000 + 17 C17 -5.3792 -0.6601 5.2663 C.3 1 LIG 0.0000 + 18 N18 -3.8363 0.6797 3.5236 N.ar 1 LIG 0.0000 + 19 C19 -2.7916 1.5029 3.3462 C.ar 1 LIG 0.0000 + 20 N20 -1.8651 1.2260 2.4139 N.ar 1 LIG 0.0000 + 21 C21 -1.9377 0.1398 1.6246 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -1.4640 -2.1634 -0.5406 H 1 LIG 0.0000 + 34 H -5.1204 -2.1063 2.3595 H 1 LIG 0.0000 + 35 H -6.6534 -1.8026 4.0730 H 1 LIG 0.0000 + 36 H -7.3795 -0.0091 2.6951 H 1 LIG 0.0000 + 37 H -6.2776 0.9795 3.3843 H 1 LIG 0.0000 + 38 H -8.8215 0.5230 4.2220 H 1 LIG 0.0000 + 39 H -7.7268 1.5284 4.8983 H 1 LIG 0.0000 + 40 H -8.0790 -1.2517 5.5768 H 1 LIG 0.0000 + 41 H -8.4443 0.0149 6.5406 H 1 LIG 0.0000 + 42 H -6.1867 0.6236 6.6785 H 1 LIG 0.0000 + 43 H -6.3106 -0.9506 7.0945 H 1 LIG 0.0000 + 44 H -4.7675 0.1174 5.1198 H 1 LIG 0.0000 + 45 H -4.8477 -1.4491 5.5743 H 1 LIG 0.0000 + 46 H -2.7026 2.3244 3.9094 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.3224 -1.6415 1.1994 C.2 1 LIG 0.0000 + 8 N8 -2.5764 -1.7852 1.5643 N.2 1 LIG 0.0000 + 9 C9 -3.2736 -0.6621 1.2219 C.ar 1 LIG 0.0000 + 10 C10 -4.6089 -0.3042 1.3809 C.ar 1 LIG 0.0000 + 11 N11 -5.4835 -1.2067 1.9979 N.pl3 1 LIG 0.0000 + 12 C12 -6.8983 -0.8525 2.1777 C.3 1 LIG 0.0000 + 13 C13 -7.6115 -0.8329 0.8352 C.3 1 LIG 0.0000 + 14 C14 -9.0766 -0.4715 1.0195 C.3 1 LIG 0.0000 + 15 C15 -9.1847 0.8899 1.6873 C.3 1 LIG 0.0000 + 16 C16 -8.4801 0.8729 3.0344 C.3 1 LIG 0.0000 + 17 C17 -7.0164 0.5045 2.8524 C.3 1 LIG 0.0000 + 18 N18 -5.0459 0.8878 0.9470 N.ar 1 LIG 0.0000 + 19 C19 -4.1923 1.7388 0.3574 C.ar 1 LIG 0.0000 + 20 N20 -2.9008 1.4021 0.2057 N.ar 1 LIG 0.0000 + 21 C21 -2.4093 0.2213 0.6203 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.5897 -2.3104 1.3253 H 1 LIG 0.0000 + 34 H -5.1454 -2.0923 2.3162 H 1 LIG 0.0000 + 35 H -7.3303 -1.5403 2.7611 H 1 LIG 0.0000 + 36 H -7.5455 -1.7373 0.4136 H 1 LIG 0.0000 + 37 H -7.1772 -0.1557 0.2412 H 1 LIG 0.0000 + 38 H -9.5198 -1.1601 1.5935 H 1 LIG 0.0000 + 39 H -9.5270 -0.4414 0.1272 H 1 LIG 0.0000 + 40 H -10.1494 1.1157 1.8223 H 1 LIG 0.0000 + 41 H -8.7597 1.5797 1.1012 H 1 LIG 0.0000 + 42 H -8.5437 1.7791 3.4526 H 1 LIG 0.0000 + 43 H -8.9193 0.1997 3.6292 H 1 LIG 0.0000 + 44 H -6.5696 1.1959 2.2847 H 1 LIG 0.0000 + 45 H -6.5708 0.4688 3.7469 H 1 LIG 0.0000 + 46 H -4.5183 2.6258 0.0303 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.3224 -1.6415 1.1994 C.2 1 LIG 0.0000 + 8 N8 -2.5764 -1.7852 1.5643 N.2 1 LIG 0.0000 + 9 C9 -3.2736 -0.6621 1.2219 C.ar 1 LIG 0.0000 + 10 C10 -4.6089 -0.3042 1.3809 C.ar 1 LIG 0.0000 + 11 N11 -5.4835 -1.2067 1.9979 N.pl3 1 LIG 0.0000 + 12 C12 -6.8983 -0.8525 2.1777 C.3 1 LIG 0.0000 + 13 C13 -7.6417 -1.9854 2.8670 C.3 1 LIG 0.0000 + 14 C14 -9.1047 -1.6190 3.0585 C.3 1 LIG 0.0000 + 15 C15 -9.7370 -1.3267 1.7073 C.3 1 LIG 0.0000 + 16 C16 -9.0021 -0.1885 1.0173 C.3 1 LIG 0.0000 + 17 C17 -7.5373 -0.5506 0.8318 C.3 1 LIG 0.0000 + 18 N18 -5.0459 0.8878 0.9470 N.ar 1 LIG 0.0000 + 19 C19 -4.1923 1.7388 0.3574 C.ar 1 LIG 0.0000 + 20 N20 -2.9008 1.4021 0.2057 N.ar 1 LIG 0.0000 + 21 C21 -2.4093 0.2213 0.6203 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.5897 -2.3104 1.3253 H 1 LIG 0.0000 + 34 H -5.1454 -2.0923 2.3162 H 1 LIG 0.0000 + 35 H -6.9548 -0.0352 2.7510 H 1 LIG 0.0000 + 36 H -7.2255 -2.1576 3.7598 H 1 LIG 0.0000 + 37 H -7.5793 -2.8104 2.3054 H 1 LIG 0.0000 + 38 H -9.1716 -0.8081 3.6399 H 1 LIG 0.0000 + 39 H -9.5848 -2.3811 3.4929 H 1 LIG 0.0000 + 40 H -10.6942 -1.0694 1.8395 H 1 LIG 0.0000 + 41 H -9.6878 -2.1458 1.1358 H 1 LIG 0.0000 + 42 H -9.4172 -0.0204 0.1232 H 1 LIG 0.0000 + 43 H -9.0706 0.6372 1.5772 H 1 LIG 0.0000 + 44 H -7.4678 -1.3570 0.2446 H 1 LIG 0.0000 + 45 H -7.0590 0.2160 0.4034 H 1 LIG 0.0000 + 46 H -4.5183 2.6258 0.0303 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.3224 -1.6415 1.1994 C.2 1 LIG 0.0000 + 8 N8 -2.5764 -1.7852 1.5643 N.2 1 LIG 0.0000 + 9 C9 -3.2736 -0.6621 1.2219 C.ar 1 LIG 0.0000 + 10 C10 -4.6089 -0.3042 1.3809 C.ar 1 LIG 0.0000 + 11 N11 -5.4835 -1.2067 1.9979 N.pl3 1 LIG 0.0000 + 12 C12 -6.8985 -0.8525 2.1777 C.3 1 LIG 0.0000 + 13 C13 -7.0360 0.2436 3.2220 C.3 1 LIG 0.0000 + 14 C14 -8.5001 0.6114 3.4004 C.3 1 LIG 0.0000 + 15 C15 -9.0893 1.0807 2.0798 C.3 1 LIG 0.0000 + 16 C16 -8.9525 -0.0222 1.0421 C.3 1 LIG 0.0000 + 17 C17 -7.4903 -0.3943 0.8545 C.3 1 LIG 0.0000 + 18 N18 -5.0459 0.8878 0.9470 N.ar 1 LIG 0.0000 + 19 C19 -4.1923 1.7388 0.3574 C.ar 1 LIG 0.0000 + 20 N20 -2.9008 1.4021 0.2057 N.ar 1 LIG 0.0000 + 21 C21 -2.4093 0.2213 0.6203 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.5897 -2.3104 1.3253 H 1 LIG 0.0000 + 34 H -5.1454 -2.0923 2.3162 H 1 LIG 0.0000 + 35 H -7.3964 -1.6612 2.4911 H 1 LIG 0.0000 + 36 H -6.5258 1.0504 2.9242 H 1 LIG 0.0000 + 37 H -6.6676 -0.0810 4.0931 H 1 LIG 0.0000 + 38 H -8.5762 1.3454 4.0752 H 1 LIG 0.0000 + 39 H -9.0051 -0.1900 3.7210 H 1 LIG 0.0000 + 40 H -8.5999 1.8948 1.7672 H 1 LIG 0.0000 + 41 H -10.0565 1.3012 2.2061 H 1 LIG 0.0000 + 42 H -9.4608 -0.8272 1.3479 H 1 LIG 0.0000 + 43 H -9.3258 0.2967 0.1710 H 1 LIG 0.0000 + 44 H -7.4198 -1.1345 0.1859 H 1 LIG 0.0000 + 45 H -6.9852 0.4029 0.5239 H 1 LIG 0.0000 + 46 H -4.5183 2.6258 0.0303 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.3224 -1.6415 1.1994 C.2 1 LIG 0.0000 + 8 N8 -2.5764 -1.7852 1.5643 N.2 1 LIG 0.0000 + 9 C9 -3.2736 -0.6621 1.2219 C.ar 1 LIG 0.0000 + 10 C10 -4.6089 -0.3042 1.3809 C.ar 1 LIG 0.0000 + 11 N11 -5.4835 -1.2067 1.9979 N.pl3 1 LIG 0.0000 + 12 C12 -6.8985 -0.8525 2.1777 C.3 1 LIG 0.0000 + 13 C13 -7.6091 -0.8335 0.8340 C.3 1 LIG 0.0000 + 14 C14 -9.0734 -0.4731 1.0250 C.3 1 LIG 0.0000 + 15 C15 -9.7457 -1.4754 1.9495 C.3 1 LIG 0.0000 + 16 C16 -9.0327 -1.4852 3.2924 C.3 1 LIG 0.0000 + 17 C17 -7.5675 -1.8483 3.1114 C.3 1 LIG 0.0000 + 18 N18 -5.0459 0.8878 0.9470 N.ar 1 LIG 0.0000 + 19 C19 -4.1923 1.7388 0.3574 C.ar 1 LIG 0.0000 + 20 N20 -2.9008 1.4021 0.2057 N.ar 1 LIG 0.0000 + 21 C21 -2.4093 0.2213 0.6203 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.5897 -2.3104 1.3253 H 1 LIG 0.0000 + 34 H -5.1454 -2.0923 2.3162 H 1 LIG 0.0000 + 35 H -6.9538 0.0592 2.5849 H 1 LIG 0.0000 + 36 H -7.5430 -1.7376 0.4117 H 1 LIG 0.0000 + 37 H -7.1760 -0.1557 0.2399 H 1 LIG 0.0000 + 38 H -9.5341 -0.4821 0.1375 H 1 LIG 0.0000 + 39 H -9.1389 0.4409 1.4253 H 1 LIG 0.0000 + 40 H -9.7004 -2.3873 1.5417 H 1 LIG 0.0000 + 41 H -10.7025 -1.2167 2.0822 H 1 LIG 0.0000 + 42 H -9.0985 -0.5776 3.7071 H 1 LIG 0.0000 + 43 H -9.4673 -2.1576 3.8915 H 1 LIG 0.0000 + 44 H -7.1090 -1.8292 3.9999 H 1 LIG 0.0000 + 45 H -7.4993 -2.7663 2.7208 H 1 LIG 0.0000 + 46 H -4.5183 2.6258 0.0303 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -2.4022 0.2317 0.6096 C.2 1 LIG 0.0000 + 8 N8 -3.2840 -0.5640 1.1715 N.2 1 LIG 0.0000 + 9 C9 -2.6659 -1.7219 1.5482 C.ar 1 LIG 0.0000 + 10 C10 -3.1354 -2.8736 2.1723 C.ar 1 LIG 0.0000 + 11 N11 -4.4888 -2.9511 2.5221 N.pl3 1 LIG 0.0000 + 12 C12 -5.0094 -4.1567 3.1821 C.3 1 LIG 0.0000 + 13 C13 -5.0289 -5.3218 2.2060 C.3 1 LIG 0.0000 + 14 C14 -5.5619 -6.5681 2.8942 C.3 1 LIG 0.0000 + 15 C15 -4.6973 -6.9162 4.0953 C.3 1 LIG 0.0000 + 16 C16 -4.6866 -5.7485 5.0689 C.3 1 LIG 0.0000 + 17 C17 -4.1514 -4.4979 4.3898 C.3 1 LIG 0.0000 + 18 N18 -2.2995 -3.8902 2.4331 N.ar 1 LIG 0.0000 + 19 C19 -1.0054 -3.7966 2.0908 C.ar 1 LIG 0.0000 + 20 N20 -0.5466 -2.6900 1.4831 N.ar 1 LIG 0.0000 + 21 C21 -1.3389 -1.6415 1.1989 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -2.5793 1.1449 0.2427 H 1 LIG 0.0000 + 34 H -5.1013 -2.1861 2.3228 H 1 LIG 0.0000 + 35 H -5.9438 -3.9780 3.4902 H 1 LIG 0.0000 + 36 H -4.0999 -5.4957 1.8793 H 1 LIG 0.0000 + 37 H -5.6179 -5.0943 1.4305 H 1 LIG 0.0000 + 38 H -5.5526 -7.3314 2.2482 H 1 LIG 0.0000 + 39 H -6.4994 -6.4012 3.1995 H 1 LIG 0.0000 + 40 H -3.7637 -7.1044 3.7904 H 1 LIG 0.0000 + 41 H -5.0691 -7.7256 4.5499 H 1 LIG 0.0000 + 42 H -5.6186 -5.5769 5.3881 H 1 LIG 0.0000 + 43 H -4.1034 -5.9751 5.8490 H 1 LIG 0.0000 + 44 H -4.1711 -3.7353 5.0365 H 1 LIG 0.0000 + 45 H -3.2102 -4.6589 4.0929 H 1 LIG 0.0000 + 46 H -0.3812 -4.5524 2.2885 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -2.4022 0.2317 0.6096 C.2 1 LIG 0.0000 + 8 N8 -3.2840 -0.5640 1.1715 N.2 1 LIG 0.0000 + 9 C9 -2.6659 -1.7219 1.5482 C.ar 1 LIG 0.0000 + 10 C10 -3.1354 -2.8736 2.1723 C.ar 1 LIG 0.0000 + 11 N11 -4.4888 -2.9511 2.5221 N.pl3 1 LIG 0.0000 + 12 C12 -5.0097 -4.1575 3.1826 C.3 1 LIG 0.0000 + 13 C13 -6.4998 -4.0042 3.4610 C.3 1 LIG 0.0000 + 14 C14 -7.0853 -5.2517 4.1065 C.3 1 LIG 0.0000 + 15 C15 -6.0610 -6.3683 4.2546 C.3 1 LIG 0.0000 + 16 C16 -5.4282 -6.6248 2.8969 C.3 1 LIG 0.0000 + 17 C17 -4.8194 -5.3716 2.2876 C.3 1 LIG 0.0000 + 18 N18 -2.2995 -3.8902 2.4331 N.ar 1 LIG 0.0000 + 19 C19 -1.0054 -3.7966 2.0908 C.ar 1 LIG 0.0000 + 20 N20 -0.5466 -2.6900 1.4831 N.ar 1 LIG 0.0000 + 21 C21 -1.3389 -1.6415 1.1989 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -2.5793 1.1449 0.2427 H 1 LIG 0.0000 + 34 H -5.1013 -2.1861 2.3228 H 1 LIG 0.0000 + 35 H -4.5235 -4.3006 4.0446 H 1 LIG 0.0000 + 36 H -6.9745 -3.8333 2.5976 H 1 LIG 0.0000 + 37 H -6.6359 -3.2273 4.0758 H 1 LIG 0.0000 + 38 H -7.8397 -5.5820 3.5393 H 1 LIG 0.0000 + 39 H -7.4306 -5.0112 5.0136 H 1 LIG 0.0000 + 40 H -6.5125 -7.1995 4.5788 H 1 LIG 0.0000 + 41 H -5.3561 -6.0949 4.9091 H 1 LIG 0.0000 + 42 H -4.7085 -7.3108 3.0037 H 1 LIG 0.0000 + 43 H -6.1313 -6.9730 2.2769 H 1 LIG 0.0000 + 44 H -3.8403 -5.5216 2.1499 H 1 LIG 0.0000 + 45 H -5.2568 -5.1952 1.4058 H 1 LIG 0.0000 + 46 H -0.3812 -4.5524 2.2885 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -2.4022 0.2317 0.6096 C.2 1 LIG 0.0000 + 8 N8 -3.2840 -0.5640 1.1715 N.2 1 LIG 0.0000 + 9 C9 -2.6659 -1.7219 1.5482 C.ar 1 LIG 0.0000 + 10 C10 -3.1354 -2.8736 2.1723 C.ar 1 LIG 0.0000 + 11 N11 -4.4888 -2.9511 2.5221 N.pl3 1 LIG 0.0000 + 12 C12 -5.0091 -4.1560 3.1817 C.3 1 LIG 0.0000 + 13 C13 -5.0285 -5.3250 2.2019 C.3 1 LIG 0.0000 + 14 C14 -5.6427 -6.5719 2.8208 C.3 1 LIG 0.0000 + 15 C15 -6.1017 -6.3415 4.2520 C.3 1 LIG 0.0000 + 16 C16 -7.0542 -5.1553 4.2563 C.3 1 LIG 0.0000 + 17 C17 -6.4449 -3.9133 3.6202 C.3 1 LIG 0.0000 + 18 N18 -2.2995 -3.8902 2.4331 N.ar 1 LIG 0.0000 + 19 C19 -1.0054 -3.7966 2.0908 C.ar 1 LIG 0.0000 + 20 N20 -0.5466 -2.6900 1.4831 N.ar 1 LIG 0.0000 + 21 C21 -1.3389 -1.6415 1.1989 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -2.5793 1.1449 0.2427 H 1 LIG 0.0000 + 34 H -5.1013 -2.1861 2.3228 H 1 LIG 0.0000 + 35 H -4.4432 -4.3834 3.9743 H 1 LIG 0.0000 + 36 H -4.0900 -5.5302 1.9243 H 1 LIG 0.0000 + 37 H -5.5643 -5.0649 1.3986 H 1 LIG 0.0000 + 38 H -4.9601 -7.3026 2.8159 H 1 LIG 0.0000 + 39 H -6.4310 -6.8485 2.2711 H 1 LIG 0.0000 + 40 H -5.3125 -6.1449 4.8338 H 1 LIG 0.0000 + 41 H -6.5723 -7.1556 4.5925 H 1 LIG 0.0000 + 42 H -7.8783 -5.4043 3.7475 H 1 LIG 0.0000 + 43 H -7.2981 -4.9437 5.2027 H 1 LIG 0.0000 + 44 H -6.9893 -3.6574 2.8213 H 1 LIG 0.0000 + 45 H -6.4592 -3.1673 4.2861 H 1 LIG 0.0000 + 46 H -0.3812 -4.5524 2.2885 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.9284 0.1533 1.6221 C.2 1 LIG 0.0000 + 8 N8 -2.9755 -0.6115 1.8342 N.2 1 LIG 0.0000 + 9 C9 -2.9343 -1.6743 0.9778 C.ar 1 LIG 0.0000 + 10 C10 -3.7862 -2.7583 0.7892 C.ar 1 LIG 0.0000 + 11 N11 -4.9313 -2.8671 1.5873 N.pl3 1 LIG 0.0000 + 12 C12 -5.8477 -4.0034 1.4076 C.3 1 LIG 0.0000 + 13 C13 -7.0120 -3.9012 2.3850 C.3 1 LIG 0.0000 + 14 C14 -8.0061 -5.0384 2.2005 C.3 1 LIG 0.0000 + 15 C15 -7.6332 -5.9586 1.0463 C.3 1 LIG 0.0000 + 16 C16 -7.4375 -5.1124 -0.2007 C.3 1 LIG 0.0000 + 17 C17 -6.4145 -4.0048 -0.0030 C.3 1 LIG 0.0000 + 18 N18 -3.5090 -3.6821 -0.1435 N.ar 1 LIG 0.0000 + 19 C19 -2.4061 -3.5606 -0.8980 C.ar 1 LIG 0.0000 + 20 N20 -1.5823 -2.5139 -0.7252 N.ar 1 LIG 0.0000 + 21 C21 -1.8105 -1.5600 0.1946 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -1.7050 0.9979 2.1085 H 1 LIG 0.0000 + 34 H -5.1262 -2.1722 2.2794 H 1 LIG 0.0000 + 35 H -5.3532 -4.8577 1.5680 H 1 LIG 0.0000 + 36 H -7.4835 -3.0318 2.2370 H 1 LIG 0.0000 + 37 H -6.6546 -3.9319 3.3185 H 1 LIG 0.0000 + 38 H -8.9093 -4.6486 2.0207 H 1 LIG 0.0000 + 39 H -8.0371 -5.5769 3.0426 H 1 LIG 0.0000 + 40 H -8.3663 -6.6213 0.8927 H 1 LIG 0.0000 + 41 H -6.7855 -6.4433 1.2616 H 1 LIG 0.0000 + 42 H -7.1279 -5.7050 -0.9443 H 1 LIG 0.0000 + 43 H -8.3138 -4.6984 -0.4472 H 1 LIG 0.0000 + 44 H -5.6655 -4.1365 -0.6524 H 1 LIG 0.0000 + 45 H -6.8543 -3.1235 -0.1758 H 1 LIG 0.0000 + 46 H -2.1970 -4.2510 -1.5906 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.9284 0.1533 1.6221 C.2 1 LIG 0.0000 + 8 N8 -2.9755 -0.6115 1.8342 N.2 1 LIG 0.0000 + 9 C9 -2.9343 -1.6743 0.9778 C.ar 1 LIG 0.0000 + 10 C10 -3.7862 -2.7583 0.7892 C.ar 1 LIG 0.0000 + 11 N11 -4.9313 -2.8671 1.5873 N.pl3 1 LIG 0.0000 + 12 C12 -5.8465 -4.0020 1.4079 C.3 1 LIG 0.0000 + 13 C13 -6.5867 -3.8756 0.0800 C.3 1 LIG 0.0000 + 14 C14 -7.6098 -4.9864 -0.1054 C.3 1 LIG 0.0000 + 15 C15 -7.6560 -5.9348 1.0823 C.3 1 LIG 0.0000 + 16 C16 -7.9082 -5.1092 2.3350 C.3 1 LIG 0.0000 + 17 C17 -6.8945 -3.9864 2.5097 C.3 1 LIG 0.0000 + 18 N18 -3.5090 -3.6821 -0.1435 N.ar 1 LIG 0.0000 + 19 C19 -2.4061 -3.5606 -0.8980 C.ar 1 LIG 0.0000 + 20 N20 -1.5823 -2.5139 -0.7252 N.ar 1 LIG 0.0000 + 21 C21 -1.8105 -1.5600 0.1946 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -1.7050 0.9979 2.1085 H 1 LIG 0.0000 + 34 H -5.1262 -2.1722 2.2794 H 1 LIG 0.0000 + 35 H -5.3354 -4.8610 1.4341 H 1 LIG 0.0000 + 36 H -5.9225 -3.9196 -0.6662 H 1 LIG 0.0000 + 37 H -7.0582 -2.9940 0.0550 H 1 LIG 0.0000 + 38 H -7.3722 -5.5087 -0.9245 H 1 LIG 0.0000 + 39 H -8.5135 -4.5747 -0.2231 H 1 LIG 0.0000 + 40 H -6.7845 -6.4182 1.1644 H 1 LIG 0.0000 + 41 H -8.3945 -6.5976 0.9586 H 1 LIG 0.0000 + 42 H -8.8227 -4.7088 2.2761 H 1 LIG 0.0000 + 43 H -7.8589 -5.7120 3.1313 H 1 LIG 0.0000 + 44 H -7.3747 -3.1095 2.4886 H 1 LIG 0.0000 + 45 H -6.4384 -4.0955 3.3929 H 1 LIG 0.0000 + 46 H -2.1970 -4.2510 -1.5906 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.6269 -0.2547 1.9033 C.2 1 LIG 0.0000 + 8 N8 -2.7783 -0.8769 2.0197 N.2 1 LIG 0.0000 + 9 C9 -3.1043 -1.4430 0.8206 C.ar 1 LIG 0.0000 + 10 C10 -4.1983 -2.1975 0.4080 C.ar 1 LIG 0.0000 + 11 N11 -5.2100 -2.4855 1.3319 N.pl3 1 LIG 0.0000 + 12 C12 -6.3759 -3.2805 0.9210 C.3 1 LIG 0.0000 + 13 C13 -7.2497 -2.4774 -0.0288 C.3 1 LIG 0.0000 + 14 C14 -8.4508 -3.3053 -0.4563 C.3 1 LIG 0.0000 + 15 C15 -7.9922 -4.5857 -1.1358 C.3 1 LIG 0.0000 + 16 C16 -7.1231 -5.3855 -0.1783 C.3 1 LIG 0.0000 + 17 C17 -5.9169 -4.5661 0.2520 C.3 1 LIG 0.0000 + 18 N18 -4.2765 -2.6402 -0.8561 N.ar 1 LIG 0.0000 + 19 C19 -3.2962 -2.3543 -1.7267 C.ar 1 LIG 0.0000 + 20 N20 -2.2400 -1.6218 -1.3367 N.ar 1 LIG 0.0000 + 21 C21 -2.1097 -1.1538 -0.0830 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -1.1493 0.2450 2.6260 H 1 LIG 0.0000 + 34 H -5.1394 -2.1502 2.2713 H 1 LIG 0.0000 + 35 H -6.9108 -3.5126 1.7334 H 1 LIG 0.0000 + 36 H -6.7166 -2.2259 -0.8366 H 1 LIG 0.0000 + 37 H -7.5662 -1.6488 0.4330 H 1 LIG 0.0000 + 38 H -9.0077 -2.7740 -1.0947 H 1 LIG 0.0000 + 39 H -8.9962 -3.5362 0.3494 H 1 LIG 0.0000 + 40 H -7.4642 -4.3580 -1.9540 H 1 LIG 0.0000 + 41 H -8.7903 -5.1297 -1.3948 H 1 LIG 0.0000 + 42 H -7.6605 -5.6298 0.6288 H 1 LIG 0.0000 + 43 H -6.8099 -6.2182 -0.6349 H 1 LIG 0.0000 + 44 H -5.3680 -5.0978 0.8970 H 1 LIG 0.0000 + 45 H -5.3642 -4.3429 -0.5510 H 1 LIG 0.0000 + 46 H -3.3521 -2.6874 -2.6679 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.5124 -1.7411 0.6605 C.2 1 LIG 0.0000 + 8 N8 -2.6998 -1.8523 1.2120 N.2 1 LIG 0.0000 + 9 C9 -3.1656 -0.6076 1.5260 C.ar 1 LIG 0.0000 + 10 C10 -4.3471 -0.1720 2.1182 C.ar 1 LIG 0.0000 + 11 N11 -5.3049 -1.1203 2.4970 N.pl3 1 LIG 0.0000 + 12 C12 -6.5619 -0.6856 3.1249 C.3 1 LIG 0.0000 + 13 C13 -6.2948 -0.1583 4.5291 C.3 1 LIG 0.0000 + 14 C14 -7.5677 0.3417 5.1965 C.3 1 LIG 0.0000 + 15 C15 -8.7801 0.2567 4.2795 C.3 1 LIG 0.0000 + 16 C16 -8.4523 0.9726 2.9798 C.3 1 LIG 0.0000 + 17 C17 -7.1964 0.4327 2.3136 C.3 1 LIG 0.0000 + 18 N18 -4.5600 1.1372 2.3196 N.ar 1 LIG 0.0000 + 19 C19 -3.6301 2.0308 1.9490 C.ar 1 LIG 0.0000 + 20 N20 -2.4850 1.6170 1.3818 N.ar 1 LIG 0.0000 + 21 C21 -2.2198 0.3184 1.1554 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.9406 -2.4928 0.3318 H 1 LIG 0.0000 + 34 H -5.1344 -2.0932 2.3407 H 1 LIG 0.0000 + 35 H -7.1933 -1.4594 3.1749 H 1 LIG 0.0000 + 36 H -5.6411 0.5963 4.4726 H 1 LIG 0.0000 + 37 H -5.9067 -0.8948 5.0831 H 1 LIG 0.0000 + 38 H -7.4353 1.2958 5.4651 H 1 LIG 0.0000 + 39 H -7.7419 -0.2126 6.0104 H 1 LIG 0.0000 + 40 H -9.5655 0.6946 4.7171 H 1 LIG 0.0000 + 41 H -8.9947 -0.7019 4.0919 H 1 LIG 0.0000 + 42 H -9.2214 0.8614 2.3504 H 1 LIG 0.0000 + 43 H -8.3187 1.9443 3.1746 H 1 LIG 0.0000 + 44 H -7.4360 0.0802 1.4090 H 1 LIG 0.0000 + 45 H -6.5358 1.1772 2.2170 H 1 LIG 0.0000 + 46 H -3.7900 3.0070 2.0953 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.5124 -1.7411 0.6605 C.2 1 LIG 0.0000 + 8 N8 -2.6998 -1.8523 1.2120 N.2 1 LIG 0.0000 + 9 C9 -3.1656 -0.6076 1.5260 C.ar 1 LIG 0.0000 + 10 C10 -4.3471 -0.1720 2.1182 C.ar 1 LIG 0.0000 + 11 N11 -5.3049 -1.1203 2.4970 N.pl3 1 LIG 0.0000 + 12 C12 -6.5619 -0.6856 3.1249 C.3 1 LIG 0.0000 + 13 C13 -7.4399 0.0303 2.1061 C.3 1 LIG 0.0000 + 14 C14 -8.7702 0.4583 2.7084 C.3 1 LIG 0.0000 + 15 C15 -8.9275 0.0105 4.1549 C.3 1 LIG 0.0000 + 16 C16 -8.6810 -1.4874 4.2250 C.3 1 LIG 0.0000 + 17 C17 -7.3314 -1.8872 3.6495 C.3 1 LIG 0.0000 + 18 N18 -4.5600 1.1372 2.3196 N.ar 1 LIG 0.0000 + 19 C19 -3.6301 2.0308 1.9490 C.ar 1 LIG 0.0000 + 20 N20 -2.4850 1.6170 1.3818 N.ar 1 LIG 0.0000 + 21 C21 -2.2198 0.3184 1.1554 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.9406 -2.4928 0.3318 H 1 LIG 0.0000 + 34 H -5.1344 -2.0932 2.3407 H 1 LIG 0.0000 + 35 H -6.3579 -0.0651 3.8821 H 1 LIG 0.0000 + 36 H -7.6154 -0.5872 1.3394 H 1 LIG 0.0000 + 37 H -6.9575 0.8420 1.7767 H 1 LIG 0.0000 + 38 H -9.5103 0.0593 2.1670 H 1 LIG 0.0000 + 39 H -8.8318 1.4558 2.6731 H 1 LIG 0.0000 + 40 H -9.8533 0.2153 4.4728 H 1 LIG 0.0000 + 41 H -8.2641 0.4888 4.7303 H 1 LIG 0.0000 + 42 H -8.7179 -1.7733 5.1826 H 1 LIG 0.0000 + 43 H -9.3997 -1.9544 3.7098 H 1 LIG 0.0000 + 44 H -6.7920 -2.3289 4.3663 H 1 LIG 0.0000 + 45 H -7.4779 -2.5307 2.8982 H 1 LIG 0.0000 + 46 H -3.7900 3.0070 2.0953 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + +@MOLECULE +CHEMBL85549 + 48 51 +SMALL +USER_CHARGES +@ATOM + 1 O1 1.4960 0.9962 -2.2395 O.3 1 LIG 0.0000 + 2 C2 1.7412 2.1762 -1.4886 C.3 1 LIG 0.0000 + 3 C3 1.4208 1.9213 -0.0261 C.3 1 LIG 0.0000 + 4 O4 0.0678 1.5479 0.1809 O.3 1 LIG 0.0000 + 5 C5 0.0479 0.1353 0.0757 C.3 1 LIG 0.0000 + 6 N6 -1.2021 -0.4145 0.6180 N.pl3 1 LIG 0.0000 + 7 C7 -1.5124 -1.7411 0.6605 C.2 1 LIG 0.0000 + 8 N8 -2.6998 -1.8523 1.2120 N.2 1 LIG 0.0000 + 9 C9 -3.1656 -0.6076 1.5260 C.ar 1 LIG 0.0000 + 10 C10 -4.3471 -0.1720 2.1182 C.ar 1 LIG 0.0000 + 11 N11 -5.3049 -1.1203 2.4970 N.pl3 1 LIG 0.0000 + 12 C12 -6.5603 -0.6861 3.1241 C.3 1 LIG 0.0000 + 13 C13 -7.4342 -1.8951 3.4430 C.3 1 LIG 0.0000 + 14 C14 -8.7828 -1.4834 4.0147 C.3 1 LIG 0.0000 + 15 C15 -8.9345 0.0267 4.1094 C.3 1 LIG 0.0000 + 16 C16 -8.6795 0.6134 2.7291 C.3 1 LIG 0.0000 + 17 C17 -7.3376 0.1858 2.1504 C.3 1 LIG 0.0000 + 18 N18 -4.5600 1.1372 2.3196 N.ar 1 LIG 0.0000 + 19 C19 -3.6301 2.0308 1.9490 C.ar 1 LIG 0.0000 + 20 N20 -2.4850 1.6170 1.3818 N.ar 1 LIG 0.0000 + 21 C21 -2.2198 0.3184 1.1554 C.ar 1 LIG 0.0000 + 22 C22 1.2289 -0.2783 0.9254 C.3 1 LIG 0.0000 + 23 O23 0.8604 -0.1399 2.2913 O.3 1 LIG 0.0000 + 24 C24 2.2471 0.7769 0.5370 C.3 1 LIG 0.0000 + 25 O25 2.9941 1.1909 1.6707 O.3 1 LIG 0.0000 + 26 H 1.6134 2.7506 0.4985 H 1 LIG 0.0000 + 27 H 1.5430 -1.2031 0.7109 H 1 LIG 0.0000 + 28 H 2.8611 0.4187 -0.1663 H 1 LIG 0.0000 + 29 H 1.7069 1.1640 -3.2025 H 1 LIG 0.0000 + 30 H 1.1632 2.9163 -1.8325 H 1 LIG 0.0000 + 31 H 2.7029 2.4349 -1.5790 H 1 LIG 0.0000 + 32 H 0.1777 -0.1507 -0.8738 H 1 LIG 0.0000 + 33 H -0.9406 -2.4928 0.3318 H 1 LIG 0.0000 + 34 H -5.1344 -2.0932 2.3407 H 1 LIG 0.0000 + 35 H -6.3656 -0.1746 3.9610 H 1 LIG 0.0000 + 36 H -6.9611 -2.4691 4.1113 H 1 LIG 0.0000 + 37 H -7.5845 -2.4164 2.6029 H 1 LIG 0.0000 + 38 H -8.8762 -1.8737 4.9306 H 1 LIG 0.0000 + 39 H -9.5054 -1.8424 3.4240 H 1 LIG 0.0000 + 40 H -8.2716 0.3939 4.7618 H 1 LIG 0.0000 + 41 H -9.8602 0.2563 4.4099 H 1 LIG 0.0000 + 42 H -9.4058 0.3093 2.1126 H 1 LIG 0.0000 + 43 H -8.6959 1.6109 2.7971 H 1 LIG 0.0000 + 44 H -7.4967 -0.3300 1.3086 H 1 LIG 0.0000 + 45 H -6.7982 1.0023 1.9440 H 1 LIG 0.0000 + 46 H -3.7900 3.0070 2.0953 H 1 LIG 0.0000 + 47 H 0.1898 -0.8428 2.5285 H 1 LIG 0.0000 + 48 H 3.5266 0.4194 2.0189 H 1 LIG 0.0000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 + diff --git a/example/expect_output/input/input.smi b/example/expect_output/input/input.smi new file mode 100644 index 0000000..36e3691 --- /dev/null +++ b/example/expect_output/input/input.smi @@ -0,0 +1 @@ +OC[C@H]1OC(N2C=NC3=C(NC4CCCCC4)N=CN=C32)[C@H](O)[C@@H]1O CHEMBL85549 diff --git a/example/expect_output/input/name.txt b/example/expect_output/input/name.txt new file mode 100644 index 0000000..670b81b --- /dev/null +++ b/example/expect_output/input/name.txt @@ -0,0 +1 @@ +name.txt 1 CHEMBL85549 OC[C@H]1OC(N2C=NC3=C(NC4CCCCC4)N=CN=C32)[C@H](O)[C@@H]1O | NO_LONG_NAME diff --git a/example/expect_output/input/output.mol2 b/example/expect_output/input/output.mol2 new file mode 100644 index 0000000..8cd50e4 --- /dev/null +++ b/example/expect_output/input/output.mol2 @@ -0,0 +1,108 @@ +@MOLECULE +CHEMBL85549 +48 51 1 0 0 +SMALL +USER_CHARGES +@ATOM +1 O1 1.9760 -1.8040 -0.8120 O.3 1 LIG -0.5600 +2 C2 1.8140 -1.6330 0.5890 C.3 1 LIG 0.0900 +3 C3 1.3090 -0.2270 0.8720 C.3 1 LIG 0.1000 +4 O4 2.2600 0.6950 0.3790 O.3 1 LIG -0.3400 +5 C5 1.5540 1.8560 -0.0340 C.3 1 LIG 0.2700 +6 N6 1.8320 3.0250 0.8120 N.pl3 1 LIG -0.4900 +7 C7 2.3680 4.1960 0.3650 C.2 1 LIG 0.2700 +8 N8 2.4680 5.0050 1.3960 N.2 1 LIG -0.4600 +9 C9 2.0030 4.3670 2.5110 C.ar 1 LIG -0.1200 +10 C10 1.8870 4.7680 3.8380 C.ar 1 LIG 0.5000 +11 N11 2.3040 6.0560 4.1960 N.3 1 LIG -0.7000 +12 C12 2.1920 6.5040 5.5910 C.3 1 LIG 0.1600 +13 C13 0.7310 6.6990 5.9660 C.3 1 LIG -0.1200 +14 C14 0.6130 7.1570 7.4110 C.3 1 LIG -0.1100 +15 C15 1.3780 8.4580 7.5970 C.3 1 LIG -0.1200 +16 C16 2.8410 8.2650 7.2310 C.3 1 LIG -0.1000 +17 C17 2.9600 7.8000 5.7880 C.3 1 LIG -0.1200 +18 N18 1.3840 3.9300 4.7560 N.ar 1 LIG -0.5800 +19 C19 0.9910 2.6990 4.3940 C.ar 1 LIG 0.3700 +20 N20 1.0950 2.3070 3.1130 N.ar 1 LIG -0.5400 +21 C21 1.5920 3.1060 2.1520 C.ar 1 LIG 0.3300 +22 C22 0.0700 1.5520 0.0610 C.3 1 LIG 0.0200 +23 O23 -0.4870 2.0150 1.2820 O.3 1 LIG -0.4900 +24 C24 0.0940 0.0410 0.0150 C.3 1 LIG 0.0900 +25 O25 -1.0730 -0.5260 0.5950 O.3 1 LIG -0.5200 +26 H 1.1210 -0.0870 1.8440 H 1 LIG 0.1100 +27 H1 -0.4240 1.9270 -0.7230 H 1 LIG 0.0800 +28 H2 0.2300 -0.2900 -0.9190 H 1 LIG 0.0900 +29 H3 2.3080 -2.7280 -0.9990 H 1 LIG 0.3900 +30 H4 2.6930 -1.7700 1.0450 H 1 LIG 0.0500 +31 H5 1.1530 -2.3000 0.9310 H 1 LIG 0.0600 +32 H6 1.7890 2.0680 -0.9820 H 1 LIG 0.1200 +33 H7 2.6370 4.4020 -0.5760 H 1 LIG 0.2100 +34 H8 2.6780 6.6720 3.5020 H 1 LIG 0.4200 +35 H9 2.5850 5.8030 6.1860 H 1 LIG 0.0700 +36 H10 0.2430 5.8340 5.8540 H 1 LIG 0.0700 +37 H11 0.3270 7.3900 5.3670 H 1 LIG 0.0500 +38 H12 0.9950 6.4570 8.0150 H 1 LIG 0.0600 +39 H13 -0.3500 7.3020 7.6360 H 1 LIG 0.0600 +40 H14 1.3110 8.7460 8.5520 H 1 LIG 0.0600 +41 H15 0.9800 9.1620 7.0080 H 1 LIG 0.0600 +42 H16 3.3260 9.1330 7.3400 H 1 LIG 0.0600 +43 H17 3.2450 7.5790 7.8350 H 1 LIG 0.0600 +44 H18 2.5860 8.5020 5.1830 H 1 LIG 0.0600 +45 H19 3.9240 7.6500 5.5690 H 1 LIG 0.0600 +46 H20 0.6200 2.0720 5.0790 H 1 LIG 0.1900 +47 H21 -0.4920 3.0150 1.2880 H 1 LIG 0.3700 +48 H22 -1.8620 -0.3360 0.0100 H 1 LIG 0.3800 +@BOND +1 1 2 1 +2 2 3 1 +3 3 4 1 +4 4 5 1 +5 5 6 1 +6 6 7 1 +7 7 8 2 +8 8 9 1 +9 9 10 ar +10 10 11 1 +11 11 12 1 +12 12 13 1 +13 13 14 1 +14 14 15 1 +15 15 16 1 +16 16 17 1 +17 17 12 1 +18 10 18 ar +19 18 19 ar +20 19 20 ar +21 20 21 ar +22 21 9 ar +23 21 6 1 +24 5 22 1 +25 22 23 1 +26 22 24 1 +27 24 3 1 +28 24 25 1 +29 3 26 1 +30 22 27 1 +31 24 28 1 +32 1 29 1 +33 2 30 1 +34 2 31 1 +35 5 32 1 +36 7 33 1 +37 11 34 1 +38 12 35 1 +39 13 36 1 +40 13 37 1 +41 14 38 1 +42 14 39 1 +43 15 40 1 +44 15 41 1 +45 16 42 1 +46 16 43 1 +47 17 44 1 +48 17 45 1 +49 19 46 1 +50 23 47 1 +51 25 48 1 +@SUBSTRUCTURE +1 LIG 1 RESIDUE 1 A LIG 1 diff --git a/example/expect_output/input/output.solv b/example/expect_output/input/output.solv new file mode 100644 index 0000000..06ef177 --- /dev/null +++ b/example/expect_output/input/output.solv @@ -0,0 +1,49 @@ +outputinput.mol2 48 0.0 -11.95 353.94 0.66 -11.29 + -0.5600 0.30 12.47 -1.30 -1.00 + 0.0900 0.09 7.03 0.13 0.22 + 0.1000 0.21 3.55 0.16 0.37 + -0.3400 -1.04 10.68 -1.10 -2.14 + 0.2700 -0.22 4.18 0.32 0.10 + -0.4900 -0.34 2.51 -1.34 -1.68 + 0.2700 -0.32 12.77 3.23 2.91 + -0.4600 -1.30 11.28 -2.25 -3.55 + -0.1200 -0.66 6.84 0.75 0.09 + 0.5000 2.40 7.33 1.98 4.38 + -0.7000 -2.01 5.45 -1.59 -3.60 + 0.1600 0.31 2.51 0.24 0.55 + -0.1200 -0.24 5.54 0.24 -0.00 + -0.1100 -0.07 6.22 0.27 0.20 + -0.1200 0.08 6.14 0.26 0.34 + -0.1000 0.10 6.18 0.27 0.37 + -0.1200 0.04 5.62 0.24 0.28 + -0.5800 -3.20 8.94 -1.78 -4.98 + 0.3700 1.70 12.72 3.21 4.91 + -0.5400 -2.98 8.50 -1.72 -4.70 + 0.3300 1.30 5.64 1.54 2.84 + 0.0200 -0.04 4.04 0.17 0.13 + -0.4900 -1.04 9.80 -0.94 -1.98 + 0.0900 -0.01 3.21 0.13 0.12 + -0.5200 -0.47 13.20 -1.26 -1.73 + 0.1100 0.36 7.18 0.25 0.61 + 0.0800 -0.58 7.35 0.26 -0.32 + 0.0900 -0.14 6.35 0.22 0.08 + 0.3900 -2.16 9.18 -1.22 -3.38 + 0.0500 0.05 7.35 0.26 0.31 + 0.0600 0.02 7.35 0.26 0.28 + 0.1200 -0.74 7.28 0.25 -0.49 + 0.2100 -1.69 7.35 0.26 -1.43 + 0.4200 0.77 8.63 -0.57 0.20 + 0.0700 0.18 7.29 0.25 0.43 + 0.0700 0.19 6.31 0.22 0.41 + 0.0500 0.11 7.35 0.26 0.37 + 0.0600 0.07 7.35 0.26 0.33 + 0.0600 0.04 7.35 0.26 0.30 + 0.0600 -0.08 7.35 0.26 0.18 + 0.0600 -0.05 7.36 0.26 0.21 + 0.0600 -0.14 7.35 0.26 0.12 + 0.0600 -0.04 7.34 0.26 0.22 + 0.0600 -0.07 7.35 0.26 0.19 + 0.0600 -0.04 7.35 0.26 0.22 + 0.1900 0.48 7.35 0.26 0.74 + 0.3700 0.56 7.28 -0.96 -0.40 + 0.3800 -1.64 9.19 -1.22 -2.86 diff --git a/example/expect_output/input/outputinput.mol2 b/example/expect_output/input/outputinput.mol2 new file mode 100644 index 0000000..a82f78e --- /dev/null +++ b/example/expect_output/input/outputinput.mol2 @@ -0,0 +1,110 @@ +@MOLECULE +CHEMBL85549 + 48 51 1 0 0 +SMALL +No Charge or Current Charge + + +@ATOM + 1 O1 1.9760 -1.8040 -0.8120 O.3 1 LIG 0.000000 + 2 C2 1.8140 -1.6330 0.5890 C.3 1 LIG 0.000000 + 3 C3 1.3090 -0.2270 0.8720 C.3 1 LIG 0.000000 + 4 O4 2.2600 0.6950 0.3790 O.3 1 LIG 0.000000 + 5 C5 1.5540 1.8560 -0.0340 C.3 1 LIG 0.000000 + 6 N6 1.8320 3.0250 0.8120 N.pl3 1 LIG 0.000000 + 7 C7 2.3680 4.1960 0.3650 C.2 1 LIG 0.000000 + 8 N8 2.4680 5.0050 1.3960 N.2 1 LIG 0.000000 + 9 C9 2.0030 4.3670 2.5110 C.ar 1 LIG 0.000000 + 10 C10 1.8870 4.7680 3.8380 C.ar 1 LIG 0.000000 + 11 N11 2.3040 6.0560 4.1960 N.3 1 LIG 0.000000 + 12 C12 2.1920 6.5040 5.5910 C.3 1 LIG 0.000000 + 13 C13 0.7310 6.6990 5.9660 C.3 1 LIG 0.000000 + 14 C14 0.6130 7.1570 7.4110 C.3 1 LIG 0.000000 + 15 C15 1.3780 8.4580 7.5970 C.3 1 LIG 0.000000 + 16 C16 2.8410 8.2650 7.2310 C.3 1 LIG 0.000000 + 17 C17 2.9600 7.8000 5.7880 C.3 1 LIG 0.000000 + 18 N18 1.3840 3.9300 4.7560 N.ar 1 LIG 0.000000 + 19 C19 0.9910 2.6990 4.3940 C.ar 1 LIG 0.000000 + 20 N20 1.0950 2.3070 3.1130 N.ar 1 LIG 0.000000 + 21 C21 1.5920 3.1060 2.1520 C.ar 1 LIG 0.000000 + 22 C22 0.0700 1.5520 0.0610 C.3 1 LIG 0.000000 + 23 O23 -0.4870 2.0150 1.2820 O.3 1 LIG 0.000000 + 24 C24 0.0940 0.0410 0.0150 C.3 1 LIG 0.000000 + 25 O25 -1.0730 -0.5260 0.5950 O.3 1 LIG 0.000000 + 26 H 1.1210 -0.0870 1.8440 H 1 LIG 0.000000 + 27 H1 -0.4240 1.9270 -0.7230 H 1 LIG 0.000000 + 28 H2 0.2300 -0.2900 -0.9190 H 1 LIG 0.000000 + 29 H3 2.3080 -2.7280 -0.9990 H 1 LIG 0.000000 + 30 H4 2.6930 -1.7700 1.0450 H 1 LIG 0.000000 + 31 H5 1.1530 -2.3000 0.9310 H 1 LIG 0.000000 + 32 H6 1.7890 2.0680 -0.9820 H 1 LIG 0.000000 + 33 H7 2.6370 4.4020 -0.5760 H 1 LIG 0.000000 + 34 H8 2.6780 6.6720 3.5020 H 1 LIG 0.000000 + 35 H9 2.5850 5.8030 6.1860 H 1 LIG 0.000000 + 36 H10 0.2430 5.8340 5.8540 H 1 LIG 0.000000 + 37 H11 0.3270 7.3900 5.3670 H 1 LIG 0.000000 + 38 H12 0.9950 6.4570 8.0150 H 1 LIG 0.000000 + 39 H13 -0.3500 7.3020 7.6360 H 1 LIG 0.000000 + 40 H14 1.3110 8.7460 8.5520 H 1 LIG 0.000000 + 41 H15 0.9800 9.1620 7.0080 H 1 LIG 0.000000 + 42 H16 3.3260 9.1330 7.3400 H 1 LIG 0.000000 + 43 H17 3.2450 7.5790 7.8350 H 1 LIG 0.000000 + 44 H18 2.5860 8.5020 5.1830 H 1 LIG 0.000000 + 45 H19 3.9240 7.6500 5.5690 H 1 LIG 0.000000 + 46 H20 0.6200 2.0720 5.0790 H 1 LIG 0.000000 + 47 H21 -0.4920 3.0150 1.2880 H 1 LIG 0.000000 + 48 H22 -1.8620 -0.3360 0.0100 H 1 LIG 0.000000 +@BOND + 1 1 2 1 + 2 2 3 1 + 3 3 4 1 + 4 4 5 1 + 5 5 6 1 + 6 6 7 1 + 7 7 8 2 + 8 8 9 1 + 9 9 10 ar + 10 10 11 1 + 11 11 12 1 + 12 12 13 1 + 13 13 14 1 + 14 14 15 1 + 15 15 16 1 + 16 16 17 1 + 17 17 12 1 + 18 10 18 ar + 19 18 19 ar + 20 19 20 ar + 21 20 21 ar + 22 21 9 ar + 23 21 6 1 + 24 5 22 1 + 25 22 23 1 + 26 22 24 1 + 27 24 3 1 + 28 24 25 1 + 29 3 26 1 + 30 22 27 1 + 31 24 28 1 + 32 1 29 1 + 33 2 30 1 + 34 2 31 1 + 35 5 32 1 + 36 7 33 1 + 37 11 34 1 + 38 12 35 1 + 39 13 36 1 + 40 13 37 1 + 41 14 38 1 + 42 14 39 1 + 43 15 40 1 + 44 15 41 1 + 45 16 42 1 + 46 16 43 1 + 47 17 44 1 + 48 17 45 1 + 49 19 46 1 + 50 23 47 1 + 51 25 48 1 +@SUBSTRUCTURE + 1 LIG 1 TEMP 0 **** **** 0 ROOT diff --git a/example/input/input.smi b/example/input/input.smi new file mode 100644 index 0000000..36e3691 --- /dev/null +++ b/example/input/input.smi @@ -0,0 +1 @@ +OC[C@H]1OC(N2C=NC3=C(NC4CCCCC4)N=CN=C32)[C@H](O)[C@@H]1O CHEMBL85549 diff --git a/example/run_script/run.sh b/example/run_script/run.sh new file mode 100644 index 0000000..bb2815a --- /dev/null +++ b/example/run_script/run.sh @@ -0,0 +1 @@ +~/Software/db2_converter/ligand/generate/build_ligand.sh input 100 diff --git a/ligand/amsol/.gitignore b/ligand/amsol/.gitignore new file mode 100644 index 0000000..d252291 --- /dev/null +++ b/ligand/amsol/.gitignore @@ -0,0 +1 @@ +amsol-mod4 diff --git a/ligand/amsol/.make_amsol71_input.2.py.swp b/ligand/amsol/.make_amsol71_input.2.py.swp new file mode 100644 index 0000000..19930a1 Binary files /dev/null and b/ligand/amsol/.make_amsol71_input.2.py.swp differ diff --git a/ligand/amsol/README b/ligand/amsol/README new file mode 100644 index 0000000..f4c5f8a --- /dev/null +++ b/ligand/amsol/README @@ -0,0 +1,8 @@ +1. Install notes + +You need to download, compile & install AMSOL7.1 here. The executable should be named +amsol7.1 + +2. Location + +http://comp.chem.umn.edu/amsol/ diff --git a/ligand/amsol/amsol7.1_patched b/ligand/amsol/amsol7.1_patched new file mode 100755 index 0000000..4494fbd Binary files /dev/null and b/ligand/amsol/amsol7.1_patched differ diff --git a/ligand/amsol/calc_solvation.csh b/ligand/amsol/calc_solvation.csh new file mode 100755 index 0000000..4c5650a --- /dev/null +++ b/ligand/amsol/calc_solvation.csh @@ -0,0 +1,161 @@ +#!/bin/csh -f +# doamsol.csh + +# modified by Trent E Balius Nov, 2013 +# modified by T.B. Adler, Shoichet group +# modified by Teague Sterling, Sept. 2014 (Fix missing file when antechamber is missing) + +set mol2file = $1 +set amsoltlimit = 1m + +# obtain the name of the protonated molecule from the mol2-file name: +set mol2_file_FullName = "$1" #e.g. ZINC00000.0.mol2 +set constituents = `echo $mol2_file_FullName:q | sed 's/\./ /g'` +set ProtonatedMoleculeName = "$constituents[1].$constituents[2]" +echo "ProtonatedMoleculeName: $ProtonatedMoleculeName" +set MoleculeName = $ProtonatedMoleculeName + + +# obtain the name of the protonated molecule from the mol2-file name: +set mol2_file_FullName = "$1" #e.g. ZINC00000.0.mol2 +set constituents = `echo $mol2_file_FullName:q | sed 's/\./ /g'` +set ProtonatedMoleculeName = "$constituents[1].$constituents[2]" +echo "ProtonatedMoleculeName: $ProtonatedMoleculeName" +set MoleculeName = $ProtonatedMoleculeName + + +if -e temp.mol2 then + echo "warning: temp.mol2. Rewriting link." +endif + +echo " Preparing AMSOL7.1 input for $mol2file (first: transformation to ZmatMOPAC by openbabel)" +echo " If there is any trouble, make sure that your DOCKBASE and OBABELBASE" +echo " is correctly set in ~/.cshrc or ~/.bashrc" + +ln -svfn $mol2file temp.mol2 +if ! $?AMSOLEXE then + set AMSOLEXE = $DOCKBASE/ligand/amsol/amsol7.1 +endif +echo "AMSOLEXE is $AMSOLEXE ." + +if ! $?OBABELEXE then + set OBABELEXE=$OBABELBASE/obabel + if ! -e $OBABELEXE then + set OBABELEXE=$OBABELBASE/bin/obabel + endif +echo " OBABELEXE is ${OBABELEXE} ." +if ! -e ${OBABELEXE} then + echo "Couldn't fine OBABLE at ${OBABELEXE}" + exit -1 +endif + +# obtain the entire current path: +set current_path = `pwd` +echo "current_path ::: $current_path" + +# omega does not always assign proper SYBYL atom types (e.g., just S, instead of S.O2 for example): +# This can lead to obabel warnings during conversion from mol2 to ZmatMOPAC format: +# Therefore, if antechamber is available, we use it to avoid these warnings and we trust antechamber's ability +# to assign correct atom types. + +set TEMP_FILE = "${current_path}/temp.mol2" +if( `where antechamber || echo ''` == "" ) then + echo "antechamber (part of ambertools (downloadable for free!)) is not available on your computer"; + echo "obabel might write out a warning since atom types cannot be translated/interpreted correctly."; + echo "The obabel warnings can be confidently disregarded. They don't affect the docking."; +else + echo "antechamber is used to create reliable SYBYL atom types in temp.mol2 file: --> temp_AtomTypesFixed.mol2"; + echo "antechamber -i ${TEMP_FILE} -fi mol2 -o "${current_path}/temp_AtomTypesFixed.mol2" -fo mol2 -at sybyl;" + time antechamber -i ${TEMP_FILE} -fi mol2 -o "${current_path}/temp_AtomTypesFixed.mol2" -fo mol2 -at sybyl; + if ( -e ${current_path}/temp_AtomTypesFixed.mol2 ) then + echo "Antechamber Success !"; + set TEMP_FILE = "${current_path}/temp_AtomTypesFixed.mol2"; + else + echo "Antechamber Failed !"; + endif +endif + + +echo "obabel -i mol2 temp_AtomTypesFixed.mol2 -o mopin -O temp.ZmatMOPAC" +${OBABELEXE} -i mol2 ${TEMP_FILE} -o mopin -O ${current_path}/temp.ZmatMOPAC + +# prepare the use of python: +if ! $?PYTHONPATH then + setenv PYTHONPATH $DOCKBASE/ligand/common +else + setenv PYTHONPATH "$DOCKBASE/ligand/common:$PYTHONPATH" +endif + +# create AMSOL7.1 input files (SM5.42R calculations in water and hexadecane solvents) using a Z-matrix in MOPAC style: +# + +# python $DOCKBASE/ligand/amsol/make_amsol71_input.py ${current_path}/temp.ZmatMOPAC ${MoleculeName} +perl $DOCKBASE/ligand/amsol/make_amsol71_input.pl ${TEMP_FILE} ${MoleculeName} + +# run the AMSOL7.1 calculations: + +echo " running AMSOL7.1: SM5.42R (in water solvent) " +timeout $amsoltlimit $SHELL -c "$AMSOLEXE < temp.in-wat > temp.o-wat" +if ( $status ) then + echo "AMSOL water calculation failed or stalled. Aborting" + exit -1 +endif + +echo " running AMSOL7.1: SM5.42R (in water solvent) " +timeout $amsoltlimit $SHELL -c "$AMSOLEXE < temp.in-hex > temp.o-hex" +if ( $status ) then + echo "AMSOL hexadecane calculation failed or stalled. Aborting" + exit -1 +endif + +echo " extract data from AMSOL7.1 water and hexadecane output files:" +echo " starting process_amsol_mol2.py :" +echo $mol2file + +python3.6 $DOCKBASE/ligand/amsol/process_amsol_mol2.py ${current_path}/temp.o-wat ${current_path}/temp.o-hex ${TEMP_FILE} ${current_path}/output + +echo "process_amsol_mol2.py has finished." + + +if ( -e ${current_path}/output.solv ) then + echo "AMSOL Success !"; +else + + python $DOCKBASE/ligand/amsol/make_amsol71_input.py ${current_path}/temp.ZmatMOPAC ${MoleculeName} + + echo " running AMSOL7.1: SM5.42R (in water solvent) " + timeout $amsoltlimit $SHELL -c "$AMSOLEXE < temp.in-wat > temp.o-wat" + if ( $status ) then + echo "AMSOL water calculation failed or stalled. Aborting" + exit -1 + endif + + echo " running AMSOL7.1: SM5.42R (in water solvent) " + timeout $amsoltlimit $SHELL -c "$AMSOLEXE < temp.in-hex > temp.o-hex" + if ( $status ) then + echo "AMSOL hexadecane calculation failed or stalled. Aborting" + exit -1 + endif + + echo " extract data from AMSOL7.1 water and hexadecane output files:" + echo " starting process_amsol_mol2.py :" + echo $mol2file + + python3.6 $DOCKBASE/ligand/amsol/process_amsol_mol2.py ${current_path}/temp.o-wat ${current_path}/temp.o-hex ${TEMP_FILE} ${current_path}/output +endif + + + +# Ensure (temporary) but expected files are correct +mv -v ${TEMP_FILE} temp-working.mol2 +cp -v temp-working.mol2 temp.mol2 + +#cp temp_AtomTypesFixed.mol2 temp.mol2 + +# Remove intermediate files +rm fort.* +rm temp.* +rm *.log +rm temp-working.mol2 +rm A* + diff --git a/ligand/amsol/make_amsol71_input.2.py b/ligand/amsol/make_amsol71_input.2.py new file mode 100755 index 0000000..d416b20 --- /dev/null +++ b/ligand/amsol/make_amsol71_input.2.py @@ -0,0 +1,159 @@ +import os +import sys +import math +from openeye.oechem import * + +#-------------------------------------------------------------------------------------------------------------------------- + +def read_ZmatMOPAC(Zmat_file): + + print("") + print("just entered read_ZmatMOPAC()") + print("") + + infile_ZmatMOPAC = open(Zmat_file,'r') + lines = infile_ZmatMOPAC.readlines() + + ZmatMOPAC_lines = {} + line_key_infile = 0 + line_key_out = 0 + spl = [] + + # loop over all the lines in infile_ZmatMOPAC, whose first 3 lines + # contain information which can be disregarded + for line in lines: + line_key_infile += 1 + # + if ( line_key_infile < 4): # effect: cut the first three lines off. They must be disregarded. + pass + else: + line_key_out += 1 # after cutting the first 3 lines, the fourth line should be the new first line and so forth. + # + # in the first three lines of the Z-matrix, obabel writes 1 too often. This would rise a non-fatal error message in amsol7.1. + # this error message should be avoided, therefore the first three Z-matrix lines should be slightly modified + if (line_key_out == 1): + spl = line.split() + spl[2] = "0" # instead of 1 + spl[4] = "0" # instead of 1 + spl[6] = "0" # instead of 1 + line = "%-2s %10.6f %2d %11.6f %2d %11.6f %2d %5d %3d %3d\n" % (spl[0],float(spl[1]),int(spl[2]),float(spl[3]),int(spl[4]),float(spl[5]),int(spl[6]),int(spl[7]),int(spl[8]),int(spl[9])) + if (line_key_out == 2): + spl = line.split() + spl[4] = "0" # instead of 1 + spl[6] = "0" # instead of 1 + line = "%-2s %10.6f %2d %11.6f %2d %11.6f %2d %5d %3d %3d\n" % (spl[0],float(spl[1]),int(spl[2]),float(spl[3]),int(spl[4]),float(spl[5]),int(spl[6]),int(spl[7]),int(spl[8]),int(spl[9])) + if (line_key_out == 3): + spl = line.split() + spl[6] = "0" # instead of 1 + line = "%-2s %10.6f %2d %11.6f %2d %11.6f %2d %5d %3d %3d\n" % (spl[0],float(spl[1]),int(spl[2]),float(spl[3]),int(spl[4]),float(spl[5]),int(spl[6]),int(spl[7]),int(spl[8]),int(spl[9])) + + ZmatMOPAC_lines[line_key_out] = line + infile_ZmatMOPAC.close() + + print("") + print("read_ZmatMOPAC() has finished.") + print("") + + return ZmatMOPAC_lines + +#------------------------------------------------------------------------------------------------------------------------- + +def create_amsol71_inputfile(Path_and_NameZmatMOPACFile,MoleculeName,ZmatMOPAC_Data): + + print("") + print("just entered the function create_amsol71_inputfile(): ") + print("") + print("in the case of problems:") + print("Make sure that OpenEye OEChem is installed on your system.") + print("") + + string_Path_And_NameZmatMOPACFile = Path_and_NameZmatMOPACFile + + # slice off the ending .ZmatMOPAC from string_Path_And_NameZmatMOPACFile by using [0:-10]: + + # open a file for the SM5.42R calculation in water solvent: + Actual_Amsol71_InputFile_Water = open("%s" % ( string_Path_And_NameZmatMOPACFile[0:-10] + ".in-wat") ,'w') + + # open a file for the SM5.42R calculation in hexadecane solvent: + Actual_Amsol71_InputFile_Hexadecane = open("%s" % ( string_Path_And_NameZmatMOPACFile[0:-10] + ".in-hex") ,'w') + + # the AMSOL7.1 input needs the net charge of the molecule (in its specific protonated state): + # The net charge will be extracted from temp.mol2 by adding the partial charges in this mol2-file + # An OpenEye python tool will be used to do this. + # + mol = OEMol() + infile = string_Path_And_NameZmatMOPACFile[0:-10] + ".mol2" + ifs = oemolistream(infile) + OEReadMolecule(ifs, mol) + # OENetCharge(): + # Determines the net charge on a molecule. If the molecule has specified partial charges, see OEChem's OEHasPartialCharges function, + # this function returns the sum of the partial charges rounded to an integer. + # Otherwise this function returns the sum of the formal charges on each atom of the molecule. + netcharge = OENetCharge(mol) + print("netcharge of molecule in temp.mol2 (sum of partial charges):", netcharge) + ifs.close() + # + # COMMENT: DOCK's mol2amsol.py could also be used to sum up the partial charges in temp.mol2 file! + + # write the AMSOL7.1 keywords for a SM5.42R point calculation in water to the AMSOL7.1 water input-file: + Water_Amsol71_SM542R_Keywords = """CHARGE=%s AM1 1SCF TLIMIT=15 GEO-OK SM5.42R\n& SOLVNT=WATER\n""" % netcharge + Actual_Amsol71_InputFile_Water.write(Water_Amsol71_SM542R_Keywords) + + # write the AMSOL7.1 keywords for a SM5.42R point calculation in hexadecane to the AMSOL7.1 hexadecane input-file: + Hexadecane_Amsol71_SM542R_Keywords = """CHARGE=%s AM1 1SCF TLIMIT=15 GEO-OK SM5.42R\n& SOLVNT=GENORG IOFR=1.4345 ALPHA=0.00 BETA=0.00 GAMMA=38.93\n& DIELEC=2.06 FACARB=0.00 FEHALO=0.00 DEV\n""" % netcharge + Actual_Amsol71_InputFile_Hexadecane.write(Hexadecane_Amsol71_SM542R_Keywords) + + # write the name of the currently treated protonated state of the molecule into the AMSOL7.1 file + # plus the number of atoms in the molecule + print("len(ZmatMOPAC_Data) = number of atoms in molecule : ", len(ZmatMOPAC_Data)) + NumberOfAtomsInMolecule = len(ZmatMOPAC_Data) + Molecule_Name_NrAtoms = ( "%s %d\n" % (MoleculeName, NumberOfAtomsInMolecule) ) + Actual_Amsol71_InputFile_Water.write(Molecule_Name_NrAtoms) + Actual_Amsol71_InputFile_Hexadecane.write(Molecule_Name_NrAtoms) + + # write a blank line after the keywords block and the line showing the name of the protonated state of the molecule to the AMSOL7.1 input-files + blank_line = "\n" + Actual_Amsol71_InputFile_Water.write(blank_line) + Actual_Amsol71_InputFile_Hexadecane.write(blank_line) + + # write the lines of the MOPAC Z-matrix to the AMSOL7.1 input-files + for line_keys in ZmatMOPAC_Data: + Actual_Amsol71_InputFile_Water.write(ZmatMOPAC_Data[line_keys]) + Actual_Amsol71_InputFile_Hexadecane.write(ZmatMOPAC_Data[line_keys]) + + Actual_Amsol71_InputFile_Water.close() + Actual_Amsol71_InputFile_Hexadecane.close() + + print("") + print("just finished the function create_amsol71_inputfile(). ") + print("") + + return + +#------------------------------------------------------------------------------------------------------------------------- +def main(): + + print("") + print("just entering main program in make_amsol71_input.py: ") + print("") + + if len(sys.argv) != 3: # if no input + print(" make_amsol71_input.py needs a ZmatMOPAC file as input.") + print(" The ZmatMOPAC file must have been generated by 'obabel ... -o mopin ...' (MOPAC Internals)") + print(" Make sure that obabel is installed on your computer !!!") + return + + path_and_file_ZmatMOPAC = sys.argv[1] + MoleculeName = sys.argv[2] + + ZmatMOPAC_data = {} + ZmatMOPAC_data = read_ZmatMOPAC(path_and_file_ZmatMOPAC) + + print("") + print("calling create_amsol71_inputfile(): ") + print("") + create_amsol71_inputfile(path_and_file_ZmatMOPAC,MoleculeName,ZmatMOPAC_data) + + return +################################################################################################################# +main() diff --git a/ligand/amsol/make_amsol71_input.pl b/ligand/amsol/make_amsol71_input.pl new file mode 100644 index 0000000..97f67e9 --- /dev/null +++ b/ligand/amsol/make_amsol71_input.pl @@ -0,0 +1,151 @@ +#!/usr/bin/perl + +# Niu Huang, Lab of Comp. Chem, UMAB, Dec, 2002 +# +# Modified by Qiuyu 2020 +# $[ = 1; # set array base to 1 +$/ = "\n"; # set input record separator +$, = ' '; # set output field separator +$\ = "\n"; # set output record separator + +if ( $#ARGV < 1 ) { + die "missing arguments\nusage: amsol.pl input.mol2 MolName\n"; +} + +$inmol2file = "$ARGV[0]"; +$name = "$ARGV[1]"; + +open( MOL2, "<$inmol2file" ) || die "can't open $inmol2file\n"; #goto label +open( AMSOLIN1, ">temp.in-wat" ) || die "can't create *.in-wat\n"; +open( AMSOLIN2, ">temp.in-hex" ) || die "can't create *.in-hex\n"; + +# read in a mol2 record, store all data + +$_ = ; + +if (/$^\@\MOLECULE/) { + $_ = ; + chomp; + $id = $_ ; + $_ = ; + @Fld = split( ' ', $_, 999 ); + $natom = $Fld[0]; + print "Natom:",$natom; + $nbond = $Fld[1]; + print "Nbond",$nbond; + $heavy = $natom; # initialize heavy atom counter + $h = 0; # initialize hydrogen counter + $chrg = 0; # initialize charge counter + + while (1) { + $_ = ; + last if (/$^\@\ATOM/); + } + + unless ( /$^\@\ATOM/ ) { + warn "Invalid mol2 format. @ATOM not found.\n"; + } + + # determine atom type, also count Hydrogens + for ( $i = 0 ; $i < $natom ; $i++ ) { + $_ = ; + $_ =~ s/^\s+//; + $_ =~ s/\s+$//; + @Fld = split /\s+/ ; + print @Fld; + + if ( $Fld[5] =~ m/Br/ ) { + $atom = '35'; + } + elsif ( $Fld[5] =~ m/O/ ) { + $atom = '8'; + } + elsif ( $Fld[5] =~ m/Cl/ ) { + $atom = '17'; + } + elsif ( $Fld[5] =~ m/N/ ) { + $atom = '7'; + } + elsif ( $Fld[5] =~ m/H/ ) { + $atom = '1'; + $h++; + $heavy--; + } + elsif ( $Fld[5] =~ m/S/ ) { + $atom = '16'; + } + elsif ( $Fld[5] =~ m/F/ ) { + $atom = '9'; + } + elsif ( $Fld[5] =~ m/C/ ) { + $atom = '6'; + } + elsif ( $Fld[5] =~ m/I/ ) { + $atom = '53'; + } + elsif ( $Fld[5] =~ m/P/ ) { + $atom = '15'; + } + else { + $atom = '99'; # delete troublesome molecules; + warn "unkown element type: $Fld[5] in $id\n"; + close(MOL2); + close(AMSOLIN1); + close(AMSOLIN2); + } + $chrg += $Fld[5]; + $Type[$i] = $atom; + $X[$i] = $Fld[2]; + $Y[$i] = $Fld[3]; + $Z[$i] = $Fld[4]; + } + + + $_ = ; + unless ( /^\@\BOND/ ) { + warn "Invalid bond line in $id"; + } + for ( $i = 0 ; $i < $nbond ; $i++ ) { + $_ = ; + } + if ( $chrg < 0 ) { + $netchg = int $chrg - 0.5; # adjust formal charge + } + else { + $netchg = int $chrg + 0.5; # adjust formal charge + } + + # write amsol input with Cartesian coordinates + $keyword1 = + "SOLVNT=WATER CHARGE=$netchg AM1 SM5.42R 1SCF GEO-OK CART TLIMIT=100" + ; # increase time limit to 100 s. + $keyword2 = +"SOLVNT=GENORG IOFR=1.4345 ALPHA=0.00 BETA=0.00 GAMMA=38.93\n& DIELEC=2.06 FACARB=0.00 FEHALO=0.00 CHARGE=$netchg AM1 SM5.42R 1SCF\n& GEO-OK CART TLIMIT=100"; + + if ( 1 ) { + +# print AMSOLIN1 " "; # one blank line precede each record, not working for amsol6.8 +# print AMSOLIN2 " "; + print AMSOLIN1 $keyword1; + print AMSOLIN2 $keyword2; + print AMSOLIN1 $name, $natom, + "\n"; #blank line to separate keyword and Z matrix, required + print AMSOLIN2 $name, $natom, "\n"; + + for ( $i = 0 ; $i < $natom ; $i++ ) { + printf AMSOLIN1 "%1s %10.4f %1s %10.4f %1s %10.4f %1s\n", + $Type[$i], $X[$i], "1", $Y[$i], "1", $Z[$i], "1"; + printf AMSOLIN2 "%1s %10.4f %1s %10.4f %1s %10.4f %1s\n", + $Type[$i], $X[$i], "1", $Y[$i], "1", $Z[$i], "1"; + } + + print AMSOLIN1 " "; # one blank line trailing each record + print AMSOLIN2 " "; + + } +} + +close(MOL2) || die "can't close $inmol2file.mol2\n"; +close(AMSOLIN1) || die "can't close temp.in-wat\n"; +close(AMSOLIN2) || die "can't close temp.in-hex\n"; + diff --git a/ligand/amsol/make_amsol71_input.py b/ligand/amsol/make_amsol71_input.py new file mode 100755 index 0000000..ee272b8 --- /dev/null +++ b/ligand/amsol/make_amsol71_input.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python +import os +import sys +import math +# from openeye.oechem import * + +#-------------------------------------------------------------------------------------------------------------------------- + +def read_ZmatMOPAC(Zmat_file): + + print("") + print("just entered read_ZmatMOPAC()") + print("") + + infile_ZmatMOPAC = open(Zmat_file,'r') + lines = infile_ZmatMOPAC.readlines() + + ZmatMOPAC_lines = {} + line_key_infile = 0 + line_key_out = 0 + spl = [] + + # loop over all the lines in infile_ZmatMOPAC, whose first 3 lines + # contain information which can be disregarded + for line in lines: + line_key_infile += 1 + # + if ( line_key_infile < 4): # effect: cut the first three lines off. They must be disregarded. + pass + else: + line_key_out += 1 # after cutting the first 3 lines, the fourth line should be the new first line and so forth. + # + # in the first three lines of the Z-matrix, obabel writes 1 too often. This would rise a non-fatal error message in amsol7.1. + # this error message should be avoided, therefore the first three Z-matrix lines should be slightly modified + if (line_key_out == 1): + spl = line.split() + spl[2] = "0" # instead of 1 + spl[4] = "0" # instead of 1 + spl[6] = "0" # instead of 1 + line = "%-2s %10.6f %2d %11.6f %2d %11.6f %2d %5d %3d %3d\n" % (spl[0],float(spl[1]),int(spl[2]),float(spl[3]),int(spl[4]),float(spl[5]),int(spl[6]),int(spl[7]),int(spl[8]),int(spl[9])) + if (line_key_out == 2): + spl = line.split() + spl[4] = "0" # instead of 1 + spl[6] = "0" # instead of 1 + line = "%-2s %10.6f %2d %11.6f %2d %11.6f %2d %5d %3d %3d\n" % (spl[0],float(spl[1]),int(spl[2]),float(spl[3]),int(spl[4]),float(spl[5]),int(spl[6]),int(spl[7]),int(spl[8]),int(spl[9])) + if (line_key_out == 3): + spl = line.split() + spl[6] = "0" # instead of 1 + line = "%-2s %10.6f %2d %11.6f %2d %11.6f %2d %5d %3d %3d\n" % (spl[0],float(spl[1]),int(spl[2]),float(spl[3]),int(spl[4]),float(spl[5]),int(spl[6]),int(spl[7]),int(spl[8]),int(spl[9])) + + ZmatMOPAC_lines[line_key_out] = line + infile_ZmatMOPAC.close() + + print("") + print("read_ZmatMOPAC() has finished.") + print("") + + return ZmatMOPAC_lines + +#------------------------------------------------------------------------------------------------------------------------- + +def create_amsol71_inputfile(Path_and_NameZmatMOPACFile,MoleculeName,ZmatMOPAC_Data): + + print("") + print("just entered the function create_amsol71_inputfile(): ") + print("") + print("in the case of problems:") + print("Make sure that OpenEye OEChem is installed on your system.") + print("") + + string_Path_And_NameZmatMOPACFile = Path_and_NameZmatMOPACFile + + # slice off the ending .ZmatMOPAC from string_Path_And_NameZmatMOPACFile by using [0:-10]: + + # open a file for the SM5.42R calculation in water solvent: + Actual_Amsol71_InputFile_Water = open("%s" % ( string_Path_And_NameZmatMOPACFile[0:-10] + ".in-wat") ,'w') + + # open a file for the SM5.42R calculation in hexadecane solvent: + Actual_Amsol71_InputFile_Hexadecane = open("%s" % ( string_Path_And_NameZmatMOPACFile[0:-10] + ".in-hex") ,'w') + + # the AMSOL7.1 input needs the net charge of the molecule (in its specific protonated state): + # The net charge will be extracted from temp.mol2 by adding the partial charges in this mol2-file + # An OpenEye python tool will be used to do this. + # + # mol = OEMol() #### MARK + # infile = string_Path_And_NameZmatMOPACFile[0:-10] + ".mol2" + # ifs = oemolistream(infile) + # OEReadMolecule(ifs, mol) + # # OENetCharge(): + # # Determines the net charge on a molecule. If the molecule has specified partial charges, see OEChem's OEHasPartialCharges function, + # # this function returns the sum of the partial charges rounded to an integer. + # # Otherwise this function returns the sum of the formal charges on each atom of the molecule. + + # netcharge = OENetCharge(mol) #### Can be replaced, this function only adds up formal charges + + ## Modified by qiuyu + infile = string_Path_And_NameZmatMOPACFile[0:-10] + ".mol2" + atomlines = list() + flag = False + for line in open(infile): + if "@ATOM" in line: + flag = True + continue + elif "@BOND" in line: + flag = False + continue + if flag: + if line.strip(): + atomlines.append(line) + netcharge = 0.0 + for line in atomlines: + netcharge += float(line.split()[8]) + + netcharge = 1.0 * round(netcharge) + print("netcharge of molecule in temp.mol2 (sum of partial charges):", netcharge) + + # ifs.close() + + # + # COMMENT: DOCK's mol2amsol.py could also be used to sum up the partial charges in temp.mol2 file! + + # write the AMSOL7.1 keywords for a SM5.42R point calculation in water to the AMSOL7.1 water input-file: + Water_Amsol71_SM542R_Keywords = """CHARGE=%s AM1 1SCF TLIMIT=15 GEO-OK SM5.42R\n& SOLVNT=WATER\n""" % netcharge + Actual_Amsol71_InputFile_Water.write(Water_Amsol71_SM542R_Keywords) + + # write the AMSOL7.1 keywords for a SM5.42R point calculation in hexadecane to the AMSOL7.1 hexadecane input-file: + Hexadecane_Amsol71_SM542R_Keywords = """CHARGE=%s AM1 1SCF TLIMIT=15 GEO-OK SM5.42R\n& SOLVNT=GENORG IOFR=1.4345 ALPHA=0.00 BETA=0.00 GAMMA=38.93\n& DIELEC=2.06 FACARB=0.00 FEHALO=0.00 DEV\n""" % netcharge + Actual_Amsol71_InputFile_Hexadecane.write(Hexadecane_Amsol71_SM542R_Keywords) + + # write the name of the currently treated protonated state of the molecule into the AMSOL7.1 file + # plus the number of atoms in the molecule + print("len(ZmatMOPAC_Data) = number of atoms in molecule : ", len(ZmatMOPAC_Data)) + NumberOfAtomsInMolecule = len(ZmatMOPAC_Data) + Molecule_Name_NrAtoms = ( "%s %d\n" % (MoleculeName, NumberOfAtomsInMolecule) ) + Actual_Amsol71_InputFile_Water.write(Molecule_Name_NrAtoms) + Actual_Amsol71_InputFile_Hexadecane.write(Molecule_Name_NrAtoms) + + # write a blank line after the keywords block and the line showing the name of the protonated state of the molecule to the AMSOL7.1 input-files + blank_line = "\n" + Actual_Amsol71_InputFile_Water.write(blank_line) + Actual_Amsol71_InputFile_Hexadecane.write(blank_line) + + # write the lines of the MOPAC Z-matrix to the AMSOL7.1 input-files + for line_keys in ZmatMOPAC_Data: + Actual_Amsol71_InputFile_Water.write(ZmatMOPAC_Data[line_keys]) + Actual_Amsol71_InputFile_Hexadecane.write(ZmatMOPAC_Data[line_keys]) + + Actual_Amsol71_InputFile_Water.close() + Actual_Amsol71_InputFile_Hexadecane.close() + + print("") + print("just finished the function create_amsol71_inputfile(). ") + print("") + + return + +#------------------------------------------------------------------------------------------------------------------------- +def main(): + + print("") + print("just entering main program in make_amsol71_input.py: ") + print("") + + if len(sys.argv) != 3: # if no input + print(" make_amsol71_input.py needs a ZmatMOPAC file as input.") + print(" The ZmatMOPAC file must have been generated by 'obabel ... -o mopin ...' (MOPAC Internals)") + print(" Make sure that obabel is installed on your computer !!!") + return + + path_and_file_ZmatMOPAC = sys.argv[1] + MoleculeName = sys.argv[2] + + ZmatMOPAC_data = {} + ZmatMOPAC_data = read_ZmatMOPAC(path_and_file_ZmatMOPAC) + + print("") + print("calling create_amsol71_inputfile(): ") + print("") + create_amsol71_inputfile(path_and_file_ZmatMOPAC,MoleculeName,ZmatMOPAC_data) + + return +################################################################################################################# +main() diff --git a/ligand/amsol/mol2amsol.py b/ligand/amsol/mol2amsol.py new file mode 100644 index 0000000..beb8d48 --- /dev/null +++ b/ligand/amsol/mol2amsol.py @@ -0,0 +1,484 @@ +#!/user/bin/python + +################################################################################################################# +## +## This libary was writen by Trent Balius and Sudipto Mukherjee in +## the Rizzo Research Group at Stony Brook University released in 2012 +## +################################################################################################################# +## Modified by Trent Balius in the Shoichet Lab, UCSF in 2013 +################################################################################################################# + + +import math, sys +import os.path +import cmath +from math import sqrt + +################################################################################################################# +################################################################################################################# +# data structure to store information about each residue with the docked ligand. +class Mol: + def __init__(self,name,atom_list,bond_list,residue_list): + self.name = str(name) + self.atom_list = atom_list + self.bond_list = bond_list + self.residue_list = residue_list + +class atom: + def __init__(self,X,Y,Z,Q,type,name,num,resnum,resname): + self.X = float(X) + self.Y = float(Y) + self.Z = float(Z) + self.Q = float(Q) + self.heavy_atom = False + self.type = type + self.name = name + self.num = int(num) + self.resnum = int(resnum) + self.resname = resname +class bond: + def __init__(self,a1_num,a2_num,num,type): + self.a1_num = int(a1_num) + self.a2_num = int(a2_num) + self.num = int(num) + self.type = type +class residue: + def __init__(self,atom_list,resnum,resname): + self.atom_list = atom_list + self.resnum = int(resnum) + self.resname = resname + + +################################################################################################################# +################################################################################################################# +#def read_Mol2_filehandel(filehandel,startline): +# lines = filehandel.readlines() +def read_Mol2_lines(lines,startline): + # reads in data from multi-Mol2 file. + + #print lines[startline] + Name = '' + atom_list = [] + bond_list = [] + residue_list = {} + + flag_atom = False + flag_bond = False + flag_substr = False + flag_nextmol = False + flag_mol_set = False + flag_mol = False + flag_getName = False + + + #data = Mol('',[],[],[]) + + i = 0 # i is the num of molecules read so far + lnum = 0 + #print len(lines) + + for lnum in range(startline,len(lines)): + line = lines[lnum] + linesplit = line.split() #split on white space + if (len(linesplit) == 1): + if(linesplit[0] == "@MOLECULE"): + flag_mol_set = True + + if (flag_bond or flag_substr): + #print "I AM HERE" + flag_nextmol = True + i = i + 1 + #print "READING IN MOL #" + str(i) + #print "read in molecule info:" + line_num = 0 + flag_mol = True + flag_atom = False + flag_bond = False + flag_substr = False + + if(linesplit[0] == "@ATOM"): + #print "read in atom info:" + flag_atom = True + flag_bond = False + flag_substr = False + flag_mol = False + + if(linesplit[0] == "@BOND"): + #print "read in bond info:" + flag_bond = True + flag_substr = False + flag_mol = False + flag_atom = False + + if(linesplit[0] == "@SUBSTRUCTURE"): + #print "read in substructure info:" + flag_substr = True + flag_mol = False + flag_atom = False + flag_bond = False + if (flag_mol and (not flag_getName) and len(linesplit)==1 ): + if (line_num == 1): + line_num = 0 + Name = linesplit[0] + flag_getName = True + line_num = line_num + 1 + + if ((len(linesplit) >= 9 )and (flag_atom)): + atom_num = linesplit[0] + atom_name = linesplit[1] + X = linesplit[2] + Y = linesplit[3] + Z = linesplit[4] + atom_type = linesplit[5] + res_num = int(linesplit[6]) + res_name = linesplit[7] + Q = linesplit[8] + temp_atom = atom(X,Y,Z,Q,atom_type,atom_name,atom_num,res_num,res_name) + atom_list.append(temp_atom) + if res_num in residue_list: + residue_list[res_num].append(temp_atom) + else: + residue_list[res_num] = [temp_atom] + + elif (len(linesplit) == 4 and flag_bond): + bond_num = linesplit[0] + a1_num = linesplit[1] + a2_num = linesplit[2] + bond_type = linesplit[3] + temp_bond = bond(a1_num,a2_num,bond_num,bond_type) + bond_list.append(temp_bond) + + #elif (flag_substr or flag_nextmol ): + elif ( flag_nextmol ): ## we will braek the loop when we hit the next molecule + #ID_heavy_atoms(atom_list) + #data = Mol(Name,atom_list,bond_list,residue_list) + flag_getName = False + flag_substr = False + flag_nextmol = False + #atom_list = [];bond_list = [] + #if (lnum != startline): + print(lnum, startline) + break + + ## we are reading in one molecule at a time + ID_heavy_atoms(atom_list) + data = Mol(Name,atom_list,bond_list,residue_list) + atom_list = [];bond_list = [] + print("flag_mol_set", flag_mol_set) + + return flag_mol_set, data, lnum + +################################################################################################################# +################################################################################################################# +def read_Mol2_file(file): + # reads in data from multi-Mol2 file. + + Name = '' + file1 = open(file,'r') + lines = file1.readlines() + file1.close() + + atom_list = [] + bond_list = [] + residue_list = {} + mol_list = [] + + flag_atom = False + flag_bond = False + flag_substr = False + flag_mol = False + flag_getName = False + flag_frist_mol = True + + i = 0 # i is the num of molecules read so far + for line in lines: + linesplit = line.split() #split on white space + if (len(linesplit) == 1): + if(linesplit[0] == "@MOLECULE"): + i = i + 1 + #print "READING IN MOL #" + str(i) + #print "read in molecule info:" + line_num = 0 + flag_mol = True + flag_atom = False + flag_bond = False + flag_substr = False + + if flag_frist_mol: + flag_frist_mol = False + else: # when we have come to a new molecule put the pervious on on the list and reset arrays + ID_heavy_atoms(atom_list) + data = Mol(Name,atom_list,bond_list,residue_list) + mol_list.append(data) + atom_list = [];bond_list = [] + + + if(linesplit[0] == "@ATOM"): + #print "read in atom info:" + flag_atom = True + flag_bond = False + flag_substr = False + flag_mol = False + + if(linesplit[0] == "@BOND"): + #print "read in bond info:" + flag_bond = True + flag_substr = False + flag_mol = False + flag_atom = False + + if(linesplit[0] == "@SUBSTRUCTURE"): + #print "read in substructure info:" + flag_substr = True + flag_mol = False + flag_atom = False + flag_bond = False + if (flag_mol and (not flag_getName) and len(linesplit)==1 ): + if (line_num == 1): + line_num = 0 + Name = linesplit[0] + flag_getName = True + line_num = line_num + 1 + + if ((len(linesplit) >= 9 )and (flag_atom)): + atom_num = linesplit[0] + atom_name = linesplit[1] + X = linesplit[2] + Y = linesplit[3] + Z = linesplit[4] + atom_type = linesplit[5] + res_num = int(linesplit[6]) + res_name = linesplit[7] + Q = linesplit[8] + temp_atom = atom(X,Y,Z,Q,atom_type,atom_name,atom_num,res_num,res_name) + atom_list.append(temp_atom) + if res_num in residue_list: + residue_list[res_num].append(temp_atom) + else: + residue_list[res_num] = [temp_atom] + + elif (len(linesplit) == 4 and flag_bond): + bond_num = linesplit[0] + a1_num = linesplit[1] + a2_num = linesplit[2] + bond_type = linesplit[3] + temp_bond = bond(a1_num,a2_num,bond_num,bond_type) + bond_list.append(temp_bond) + + elif (flag_substr): + flag_getName = False + flag_substr = False + # for the last molecule. + ID_heavy_atoms(atom_list) + data = Mol(Name,atom_list,bond_list,residue_list) + mol_list.append(data) + atom_list = [];bond_list = [] + + return mol_list + +################################################################################################################# +################################################################################################################# +def write_mol2(molecule,filename): + + # define a dictionary for help renumbering + atom_dic = {} + resid_dic = {} + count = 1 + for atom in molecule.atom_list: + if atom.num not in atom_dic: + atom_dic[atom.num] = count + #print atom.num, ",", count,",", atom_dic[atom.num] + count=count+1 + count = 1 + for resnum in list(molecule.residue_list.keys()): + resid_dic[resnum] = count + count=count+1 + + outmol2 = open(filename,'w') + outmol2.write("@MOLECULE\n") #start the MOLECULE RTI (Record Type Indicator) + outmol2.write(molecule.name+'\n') #print MOL2FILE name of the molecule + outmol2.write("%-5d %-5d %-5d 0 0\n" % (len(molecule.atom_list), + len(molecule.bond_list), len(list(molecule.residue_list.keys())))) + # For now, the number of residues is hard-coded to 1. To be fixed. + outmol2.write("SMALL\n") #mol_type + outmol2.write("USER_CHARGES\n") #charge_type + + outmol2.write("@ATOM\n") #start the ATOM RTI (Record Type Indicator) + for j in range(0,len(molecule.atom_list)): + #print atom_dic[molecule.atom_list[j].num], molecule.atom_list[j].num + outmol2.write("%-6d %-4s %9.4f %9.4f %9.4f %-5s %4s %6s %9.4f\n" % + (atom_dic[molecule.atom_list[j].num], molecule.atom_list[j].name, molecule.atom_list[j].X, molecule.atom_list[j].Y, + molecule.atom_list[j].Z, molecule.atom_list[j].type, resid_dic[molecule.atom_list[j].resnum], + molecule.atom_list[j].resname, molecule.atom_list[j].Q)) + + outmol2.write("@BOND\n") + count = 1 + for m in range(0,len(molecule.bond_list)): + outmol2.write("%-5d %-5d %-5d %s\n" % (count, + atom_dic[molecule.bond_list[m].a1_num], atom_dic[molecule.bond_list[m].a2_num], molecule.bond_list[m].type)) + count = count + 1 + + outmol2.write("@SUBSTRUCTURE\n") + count = 1 + for resnum in list(molecule.residue_list.keys()): + #outmol2.write("%-3d %-5s %-5d RESIDUE 1 A %-5s 1\n" % (resnum, + outmol2.write("%-3d %-5s %-5d RESIDUE 1 A %-5s 1\n" % (resid_dic[resnum], + molecule.residue_list[resnum][0].resname, # residue name + atom_dic[molecule.residue_list[resnum][0].num], molecule.residue_list[resnum][0].resname[0:3])) # atom num of first atom in this residue + count = count + 1 + outmol2.close() + return +################################################################################################################# +def get_pdbcode_list(filename): + systems_list = open(file,'r') + lines = systems_list.readlines() + return lines +################################################################################################################# +def ID_heavy_atoms(atom_list): + for i in range(len(atom_list)): + if (atom_list[i].type[0] != 'H'): + atom_list[i].heavy_atom = True + return atom_list +################################################################################################################# +################################################################################################################# +def distance2_vec(vector1,vector2): + if (len(vector1)!=len(vector2)): + print('function distance(): vectors differ in length') + sys.exit(1) + distance2 = 0 + for i in range(len(vector1)): + distance2 += (vector1[i]-vector2[i])**2 + return distance2 +################################################################################################################## +################################################################################################################## +#def norm(vector1): +# norm = 0 +# for i in range(len(vector1)): +# norm += (vector1[i])*(vector1[i]) +# return sqrt(norm) +################################################################################################################## +################################################################################################################## +def distance2(atom1,atom2): + return (atom1.X - atom2.X )**2 + (atom1.Y - atom2.Y )**2 + (atom1.Z - atom2.Z )**2 +################################################################################################################# +################################################################################################################# +# Make sure the heavy atoms are being declared as heavy +# i.e call ID_heavy atoms function +def heavy_atom_RMSD(ref,pose): + if (len(ref.atom_list) != len(pose.atom_list)): + return -1 # when atom numbers do not agree + sum = 0.0 + num_hvy_atoms = 0 + for i in range(len(ref.atom_list)): + if (ref.atom_list[i].heavy_atom and pose.atom_list[i].heavy_atom): + sum += distance2(ref.atom_list[i],pose.atom_list[i]) + num_hvy_atoms+=1 + return sqrt(sum/num_hvy_atoms) + +################################################################################################################# +################################################################################################################# +def formal_charge(molecule): + total = 0 + for i in range(len(molecule.atom_list)): + total += molecule.atom_list[i].Q + return total +################################################################################################################# +def centre_of_mass(molecule): + # Dictionary of atomic weights of elements + atom_mass = {'O':15.9994 ,'N':14.00674 ,'C':12.011 ,'F':18.9984032 ,'Cl':35.4527 ,'Br':79.904 + ,'I':126.90447 ,'H':1.00794 ,'B':10.811 ,'S':32.066 ,'P':30.973762 ,'Li':6.941 ,'Na':22.98968 + ,'Mg':24.3050 ,'Al':26.981539 ,'Si':28.0855 ,'K':39.0983 ,'Ca':40.078 ,'Cr':51.9961 ,'Mn':54.93805 + ,'Fe':55.847 ,'Co':58.93320 ,'Cu':63.546 ,'Zn':65.39 ,'Se':78.96 ,'Mo':95.94 ,'Sn':118.710 ,'LP':0.0 } + + cmass = [0,0,0] + centroid = [0,0,0] + molecular_weight = 0 + for k in range(0,len(molecule.atom_list)): + element = molecule.atom_list[k].type.split('.')[0] + cmass[0] += molecule.atom_list[k].X * atom_mass[element] + cmass[1] += molecule.atom_list[k].Y * atom_mass[element] + cmass[2] += molecule.atom_list[k].Z * atom_mass[element] + centroid[0] += molecule.atom_list[k].X + centroid[1] += molecule.atom_list[k].Y + centroid[2] += molecule.atom_list[k].Z + molecular_weight += atom_mass[element] + #print "Molecular Weight =",molecular_weight + cmass[0] /= molecular_weight + cmass[1] /= molecular_weight + cmass[2] /= molecular_weight + centroid[0] /= len(molecule.atom_list) + centroid[1] /= len(molecule.atom_list) + centroid[2] /= len(molecule.atom_list) + #print 'Centroid =',centroid + return cmass +################################################################################################################# +def molecular_weight(molecule): + # Dictionary of atomic weights of elements + atom_mass = {'O':15.9994 ,'N':14.00674 ,'C':12.011 ,'F':18.9984032 ,'Cl':35.4527 ,'Br':79.904 + ,'I':126.90447 ,'H':1.00794 ,'B':10.811 ,'S':32.066 ,'P':30.973762 ,'Li':6.941 ,'Na':22.98968 + ,'Mg':24.3050 ,'Al':26.981539 ,'Si':28.0855 ,'K':39.0983 ,'Ca':40.078 ,'Cr':51.9961 ,'Mn':54.93805 + ,'Fe':55.847 ,'Co':58.93320 ,'Cu':63.546 ,'Zn':65.39 ,'Se':78.96 ,'Mo':95.94 ,'Sn':118.710 ,'LP':0.0 } + + molecular_weight = 0 + for k in range(0,len(molecule.atom_list)): + element = molecule.atom_list[k].type.split('.')[0] + molecular_weight += atom_mass[element] + return molecular_weight +################################################################################################################# +def calc_dipole_moment(molecule): + uIsum=0 + uJsum=0 + uKsum=0 + dipolemoment=0 + conversion = 4.796 # Convert partialcharge*angstroms --> Coulombs*meters (Debye) + + cmass = centre_of_mass(molecule) + #print "Centre of mass = ",cmass + + #cmass = [molecule.atom_list[0].X, molecule.atom_list[0].Y, molecule.atom_list[0].Z] + for k in range(0,len(molecule.atom_list)): + uIsum += molecule.atom_list[k].Q * (molecule.atom_list[k].X - cmass[0]) + uJsum += molecule.atom_list[k].Q * (molecule.atom_list[k].Y - cmass[1]) + uKsum += molecule.atom_list[k].Q * (molecule.atom_list[k].Z - cmass[2]) + + umag = sqrt( (uIsum*uIsum) + (uJsum*uJsum) + (uKsum*uKsum) ) + dipolemoment = umag*conversion; + uvector = [uIsum,uJsum,uKsum] + + return uvector, dipolemoment +################################################################################################################# +# Takes a single Mol object and returns a Mol object without the hydrogens +# Have to remove H from atom_list, bond_list and residue_list +def remove_hydrogens(m): + atom_list = [] + bond_list = [] + residue_list = {} + + # Retain only heavy atoms in atom_list + num_hvy_atoms = 0 + for i in range(len(m.atom_list)): + if (m.atom_list[i].heavy_atom): + atom_list.append(m.atom_list[i]) + num_hvy_atoms+=1 + + # Retain only bonds containing heavy atoms + for bond_id in range(len(m.bond_list)): + retain_bond = True + for atom_id in range(len(m.atom_list)): + if (m.atom_list[atom_id].heavy_atom): + continue + # Atoms down here are always hydrogen + if (m.bond_list[bond_id].a1_num == m.atom_list[atom_id].num): + retain_bond = False + if (m.bond_list[bond_id].a2_num == m.atom_list[atom_id].num): + retain_bond = False + if (retain_bond): + bond_list.append(m.bond_list[bond_id]) + + # Assuming that residue list does not change + + data = Mol(m.name,atom_list,bond_list,m.residue_list) + return data +################################################################################################################# + diff --git a/ligand/amsol/patches/amsol7.1_port_intcar.f.diff b/ligand/amsol/patches/amsol7.1_port_intcar.f.diff new file mode 100644 index 0000000..b8e94e7 --- /dev/null +++ b/ligand/amsol/patches/amsol7.1_port_intcar.f.diff @@ -0,0 +1,5 @@ +101c101,102 +< IF(YZA.LT.1.D-4)GOTO 70 +--- +> GOTO 70 +> C IF(YZA.LT.1.D-4)GOTO 70 diff --git a/ligand/amsol/process_amsol_mol2.py b/ligand/amsol/process_amsol_mol2.py new file mode 100755 index 0000000..41b1857 --- /dev/null +++ b/ligand/amsol/process_amsol_mol2.py @@ -0,0 +1,464 @@ +import mol2amsol ## this is a libary Trent Balius and Sudipto Mukherjee wrote. +import math +import sys +import os +import os.path +import gzip +from math import sqrt + +################################################################################################################# +# written by Trent E Balius, B.K. Shoichet lab, Nov. 2013 +# and modified and commented with respect to the changes in AMSOL7.1 output-files +# by Thomas B. Adler, B.K. Shoichet lab +# +# this script reads in AMSOL7.1 output-files (for water (.o-wat) and hexadecane (.o-hex)) +# and processes them. +# +# process_amsol_mol2.py is a replacement for the following scripts: +# $DOCK_BASE/etc/SubstrSolv2.pl +# $DOCK_BASE/etc/3Step.csh2 temp.o-wat +# $DOCK_BASE/etc/3Step.csh2 temp.o-hex +# $DOCK_BASE/etc/SubstrSolv2.pl temp.o-hex.d temp.o-wat.d temp.solv temp.err +# $DOCK_BASE/etc/UpdatChrg.pl temp.mol2 temp.solv temp.nmol2 temp.err2 +# +# !!! consider adding in: running amsol itself in future. +# +################################################################################################################# + +def is_int(a): + """Returns true if a can be an integer""" + try: + int (a) + return True + except: + return False + + +################################################################################################################# +# +def process_amsol_file(file,outputprefix,watorhex): + # reads in data amsol output. + + print("") + print("**** starting the function process_amsol_file() ****") + print("") + + if not (os.path.exists(file)): + print(file + "does not exist. \n\n Exiting script . . .") + exit() + + ## read in both gzip and uncompresed file. + splitfile = file.split('.') + N = len(splitfile)-1 + print(splitfile[N]) + if (splitfile[N] == 'gz'): + file1 = gzip.open(file, 'rb') + else: + file1 = open(file,'r') + + ## open up output file + outputfilename = outputprefix +watorhex +str(".log") + file2 = open(outputfilename,'w') + lines = file1.readlines() + + name = '' + numatoms = 0 + alist = [] + total_line = [] + + ## loops over the file + for line in lines: + linesplit = line.split() #split on white space + # + # identifying and writing certain lines of the AMSOL7.1 output file into outputfilename.log : + # + # infos originally coming from the AMSOL7.1 input, which are reprinted in the AMSOL7.1 output-file: + # i.e., molecule's name and number of atoms in this molecule: + # i.e., ZINC00000000.0.1_1 37 + if (len(linesplit) == 2 and is_int(linesplit[1]) and name == ''): # get the name and atom cout. + file2.write(line) + name = linesplit[0] + numatoms = int(linesplit[1]) + + # evaluating the large table close to the end of the AMSOL7.1 output-file : + + # amsol-mod4: table had just 8 columns: + # if (len(linesplit) == 8 and is_int(linesplit[0]) ): + # AMSOL7.1: table has an additional column "Sigma k cal/(Ang**2)" + # AMSOL7.1 table: table has 9 columns + if (len(linesplit) == 9 and is_int(linesplit[0]) and ( linesplit[4] is not "*") and not linesplit[1].isdigit() ): ## this gets that per-atom break-down of solvation calculation + file2.write(line) + alist.append(linesplit) + + # alist is a list running over the atoms i, where each atom i is associated with a list of data: + # alist contains the following data ::: + # for each atom i, a list of 9 values exists: + # + # alist[i][0] Atom number (1 up to number of atoms in molecule) + # alist[i][1] Chem. symbol + # alist[i][2] CM2 chg. (CM2 partial atomic charge) + # alist[i][3] G_P (kcal/mol) (atomic polar contribution to solvation free energy) + # alist[i][4] Area (Ang**2) (surface area) + # alist[i][5] Sigma (kcal/Ang**2) (sigma, cf. "Modeling free Energies of Solvation and Transfer", Computational Thermochemistry, Chapter 15, + # D.J. Giesen, D.G. Truhlar, 1998) + # alist[i][6] SS G_CDS (kcal/mol) (atomic apolar contribution to solvation free energy) + # alist[i][7] Subtotal (kcal/mol) (atomic solvation free energy (polar+apolar)) + # alist[i][8] M value + + + ## Extracting the first "Total: ..." line from the amsol-mod4 output-file : + #elif (len(linesplit) == 6 and linesplit[0] == "Total:" ): + # + # Extracting the first "Total: ..." line from the AMSOL7.1 output-file : + # 6 is not changed, the new column in the large AMSOL7.1 output table is not considered in the first "Total: ..." line + elif (len(linesplit) == 6 and linesplit[0] == "Total:" ): + total_line = linesplit + # total_line is a list containing now: + # + # total_line[0] = "Total:" + # total_line[1] = CM2 chg. + # total_line[2] = G_P, i.e. polar contribution to solvation free energy or also called Polarization free energy (in kcal/mol) + # total_line[3] = Area (Ang**2) (in amsol-mod4: Area (CD) (Ang**2)) + # total_line[4] = SS G_CDS in kcal/mol (in amsol-mod4: G-CD) + # total_line[5] = Subtotal in kcal/mol, i.e. sum of all atomic polar (G_P[i]) and apolar (SS G_CDS[i]) contributions to the solvation free energy + # Subtotal = solvation free energy + # Subtotal = "(5) G-P-CDS(sol) = G-P(sol) + G-CDS(sol) = (2) + (4) -XX.XXX kcal" + # With respect to Subtotal, be aware of ::: + # **** NOTA BENE **** + # This is the net solvation energy for this exact molecular structure + # (nuclear and electronic)! The standard-state solvation energy should be + # obtained as the difference between the heat of formation plus delta-G solvation + # for the relaxed solvated system and that for the relaxed gas-phase system. + + # in the entire process_amsol_mol2.py machinery ::: + # + # total_line --> tot_wat --> totwat + # total_line --> tot_hex --> tothex + + file2.write(line) + file2.close() + + print("") + print(" **** The function process_amsol_file() was finished. ****") + print("") + + return alist,total_line,name,numatoms + +################################################################################################################# +################################################################################################################# + +def diff_amsol71_files(atom_listwat,totwat,atom_listhex,tothex,name,numatom,outputprefix): + + print("") + print("**** starting the function diff_amsol71_files() ****") + print("") + ## this function will compare hex with wat and write an *.solv output file: + ## The difference "water minus hexadecane" will be calculated. + ## + ## The content of the *.solv file will have the following format: + ## + ## ZINC000000 52 0.0 -16.55 436.86 7.27 -9.28 + ## -0.1645 -0.19 19.39 0.56 0.37 + ## -0.6804 0.77 5.64 -0.98 -0.21 + ## -0.3203 0.27 6.50 -0.84 -0.57 + ## -0.1644 -0.92 13.19 0.70 -0.22 + ## . . . . . + ## . . . . . + ## . . . . . + ## . . . . . + ## + ## The first line from the above-mentioned table contains the following information : + ## ZINC000000 52 0.0 -16.55 436.86 7.27 -9.28 means : + ## + ## column 1 molecule name + ## column 2 number of atoms + ## column 3 formal charge, i.e., net charge of the entire molecule + ## column 4 difference of total polarization free energies for water and hex + ## column 5 Area in (Ang**2) just from hexadecane AMSOL7.1 output-file + ## column 6 difference of SS G-CDS values from water and hexadecane AMSOL7.1 outputs + ## column 7 sum of column 4 and column 6: sum of the differences of the total polar and apolar atomic contributions to the solvation free energies for water and hexadecane + ## + ## the following lines are the per-atom break-down: + ## cf.: + ## -0.1645 -0.19 19.39 0.56 0.37 et cetera linea: + ## + ## column 1 is atomic partial charge just from the hexadecane (!!!) output file (hexadecane should simulate a protein-like environment: The ligand will be docked + ## into a protein pocket. The later use of partial charges obtained for a hexadecane environment in the electrostatic docking term is reasonable.) + ## column 2 is the difference of the atomic polarization free energies obtained in water and hexadecane(kcal/mol): (wat - hex) + ## column 3 is Area (Ang**2) just from hex (is the same for water and hex. hence the source-file (whether hex or water output-files) does not really matter.) + ## column 4 is SS G-CDS (kcal/mol) (((in amsol-mod 4 called "G-CD"))) + ## column 5 is Subtotal: (kcal/mol) (((in amsol-mod4 output called "Total Solv. free energy"))) + + N = len(atom_listwat) + if len(atom_listwat) != len(atom_listhex): + print("Error: len(atom_listwat) != len(atom_listhex):" + str(len(atom_listwat))+" != "+str(len(atom_listhex))) + sys.exit() + + if N != numatom: + print("\n".join(' '.join(l) for l in atom_listwat)) + print("Error: len(atom_listwat) != numatom: " + str(N) +" != "+str(numatom)) + sys.exit() + + fileline = ''## generate string output to write to a file + + print("atom_listwat[i][j] + -- + atom_listhex[i][j] +; ::::") + for i in range(N): + # amsol-mod4 for j in range(0,8): + for j in range(0,9): + print(atom_listwat[i][j] +" -- "+ atom_listhex[i][j] +'; ', end=' ') + print("\n", end=' ') + + # initialize the lists/arrays: + Chghex = []; Polhex = []; SAA = []; + Apolhex = []; Polwat = []; + Apolwat = []; + Sigmahex = [] + diff_Pol = []; diff_Apol = []; diff_AtomicSolv = []; + + for i in range(N): + Chghex.append(0.0) # list of partial atomic charges from AMSOL7.1 SM5.42R solvation calculation in hexadecane solvent + Polhex.append(0.0) # list of atomic polar contributions to solvation free energy: G_P obtained for hexadecane solvent + SAA.append(0.0) # list of atomic surface area contributions taken from hexadecane output + Sigmahex.append(0.0) # list of sigma coefficients + Apolhex.append(0.0) # list of atomic apolar contributions to solvation free energy: SS G_CDS obtained for hexadecane solvent + + Polwat.append(0.0) # list of atomic polar contributions to solvation free energy: G_P obtained for water solvent + Apolwat.append(0.0) # list of atomic apolar contributions to solvation free energy: SS G_CDS obtained for water solvent + + diff_Pol.append(0.0) # list of differences of the atomic polar contributions to solvation free energy in water and hexadecane: wat - hex + diff_Apol.append(0.0) # list of differences of the atomic polar contributions to solvation free energy in water and hexadecane: wat - hex + diff_AtomicSolv.append(0.0) # list of differences of the atomic solvation free energies (polar + apolar contributions) in water and hexadecane: wat - hex + + # Initializing the sums (over the atomic contributions): + + Chghexsum = 0.0 # sum of the partial charges (CM2: Truhlar's charge model 2 charges) of each atom in hexadecane (!) solvent + Polhexsum = 0.0 # sum of the atomic polar contributions to solvation free enthalpy: Polarization Free Energy (G_P) + SAAsum = 0.0 # sum of the atomic surface area contibutions in Angstrom + sum_Apolhex = 0.0 # sum of the atomic apolar contributions to solvation free enthalpy: SS G_CDS (in amsol-mod4: just called G_CD, but contained S) + # CDS means: cavity-dispersion-solvent structure (reordering) + # sum_Apolhex is the same for water or hexadecane solvent. Therefore, just the hexadecane case has been considered here. + + FreeEnergyHex_sum = 0.0 # sum of the atomic contributions to the total solvation free energy obtained in hexadecane: In AMSOL7.1 output-table called: Subtotal + + tot_diff_Pol = 0.0 # total of the atomic polar contributions to solvation free enthalpy: wat - hex + tot_diff_Apol = 0.0 # total of the atomic apolar contributions to solvation free enthalpy: wat - hex + tot_diff_PolPlusApol = 0.0 # sum of polar and apolar: wat - hex + + + + for i in range(N): + # alist[i][0] Atom number (1 up to number of atoms in molecule) + # alist[i][1] Chem. symbol + # alist[i][2] CM2 chg. (CM2 partial atomic charge) + # alist[i][3] G_P (kcal/mol) (atomic polar contribution to solvation free energy) + # alist[i][4] Area (Ang**2) (surface area) + # alist[i][5] Sigma (kcal/Ang**2) (from AMSOL7.1 source code: Sigma = 1000D0*SRFACT(L)/ATAR(L)) + # (i.e., Sigma[i] = 1000 * SS G_CDS[i]/Area[i], for atom i) + # ("Modeling free Energies of Solvation and Transfer", Computational Thermochemistry, Chapter 15, + # D.J. Giesen, D.G. Truhlar, 1998) + # alist[i][6] SS G_CDS (kcal/mol) (atomic apolar contribution to solvation free energy) + # alist[i][7] Subtotal (kcal/mol) (atomic solvation free energy (polar+apolar)) + # alist[i][8] M value + + + # hexadecane: + Chghex[i] = float(atom_listhex[i][2]) # partial charges (CM2: Truhlar's charge model 2 charges) of each atom in hexadecane solvent + Polhex[i] = float(atom_listhex[i][3]) # atomic polar contributions to solvation free enthalpy in hexadecane: Polarization Free Energy (G_P) in kcal/mol + SAA[i] = float(atom_listhex[i][4]) # atomic surface area contibutions in Angstrom^2 + Sigmahex[i] = float(atom_listhex[i][5]) # Sigma (kcal/Ang**2) + # in amsol-mod4 output::: + #Apolhex[i] = float(atom_listhex[i][5]); # atomic apolar contributions to solvation free enthalpy in hexadecane: SS G_CDS in kcal/mol + Apolhex[i] = float(atom_listhex[i][6]) # atomic apolar contributions to solvation free enthalpy in hexadecane: SS G_CDS in kcal/mol + + # water: + Polwat[i] = float(atom_listwat[i][3]) # atomic polar contributions to solvation free enthalpy in water: Polarization Free Energy (G_P) in kcal/mol + # in amsol-mod4 output::: + #Apolwat[i] = float(atom_listwat[i][5]) # atomic apolar contributions to solvation free enthalpy in water: SS G_CDS in kcal/mol + Apolwat[i] = float(atom_listwat[i][6]) # atomic apolar contributions to solvation free enthalpy in water: SS G_CDS in kcal/mol + + ## sums over atomic contributions: + + Chghexsum += Chghex[i] # sum of the partial charges (CM2: Truhlar's charge model 2 charges) of each atom in hexadecane (!) solvent + Polhexsum += Polhex[i] # sum of the atomic polar contributions to solvation free enthalpy: Polarization Free Energy (G_P) + SAAsum += SAA[i] # sum of the atomic surface area contibutions in Angstrom + # is independent of the solvent under consideration + # !!! former apolsum + sum_Apolhex += Apolhex[i] # sum of the atomic apolar contributions to solvation free enthalpy: SS G_CDS from hexadecane calculation (!!!!) + # !!! former energy_sum + # in amsol-mod4 output::: + #FreeEnergyHex_sum = FreeEnergyHex_sum + float(atom_listhex[i][6]); # sum of the atomic contributions to the total solvation free energy + # for hexadecane (!!!) solvent: In AMSOL7.1 output-table called: Subtotal (in kcal/mol) + FreeEnergyHex_sum += float(atom_listhex[i][7]); # sum of the atomic contributions to + # for hexadecane (!!!) solvent: In AMSOL7.1 output-table called: Subtotal (in kcal/mol) + #print tothex + #print "len(tothex) :::", len(tothex) + #print "tothex :::", tothex + #print "Chghexsum :::", Chghexsum + #print "Polhexsum :::", Polhexsum + #print "SAAsum :::", SAAsum + #print "sum_Apolhex :::", sum_Apolhex + #print "FreeEnergyHex_sum :::", FreeEnergyHex_sum + # + # + # The information written in the "Total: ..." line close to the end of the hexadecane AMSOL7.1 output: + # + # tothex[0] = "Total:" + # tothex[1] = CM2 chg. + # tothex[2] = G_P, i.e. polar contribution to solvation free energy or also called Polarization free energy (in kcal/mol) + # tothex[3] = Area (Ang**2) (in amsol-mod4: Area (CD) (Ang**2)): sum of all atomic contributions (!) + # tothex[4] = SS G_CDS in kcal/mol (in amsol-mod4: G-CD) + # tothex[5] = Subtotal in kcal/mol, i.e. sum of all atomic polar (G_P[i]) and apolar (SS G_CDS[i]) contributions to the solvation free energy + # Subtotal = solvation free energy + # Subtotal = "(5) G-P-CDS(sol) = G-P(sol) + G-CDS(sol) = (2) + (4) -XX.XXX kcal" + + cs_coeff = (float(tothex[4]) - sum_Apolhex)/float(tothex[3]) # cs_coeff = total LS contribution / total AreaSAA + # (total SS G_CDS - sum of atomic all atomic apolar contributions to free energy of solvation)/ total Area + # = total CS/LS contribution divided by total Area + + #print "" + #print "tothex[4] (SS G_CDS):::", float(tothex[4]) + #print "totwat[4] (SS G_CDS):::", float(totwat[4]) + #print "sum_Apolhex :::", sum_Apolhex + #print "tothex[3] (Area) :::", float(tothex[3]) + #print "CS coeff ::: ", cs_coeff + + sum_csTimesSAA = 0.0 + + # !!! WATER minus HEXADECANE: performing wat-hex difference !!! : + for i in range(N): # do substraction + diff_Pol[i] = Polwat[i] - Polhex[i] # diff_Pol[i] is the difference of the atomic polar contribution to solvation free energy + # obtained in water vs. the one obtained in hexadecane + + tot_diff_Pol = tot_diff_Pol + diff_Pol[i] # tot_diff_Pol is the sum of all differences of atomic polar contributions to solvation + # free energy obtained in water vs. in hexadecane + + sum_csTimesSAA = sum_csTimesSAA + cs_coeff * SAA[i] # sum_i cs_coeff * SAA[i] = sum_i (LS contribution/ total Area) * atomic Surface Area SAA[i] = LS contribution + + # - (Apolhex[i] + cs_coeff * SAA[i]): minus since: wat MINUS hex. cs_coeff and LS contribution only present in hex (Large Solvent) + diff_Apol[i] = Apolwat[i] - (Apolhex[i] + cs_coeff * SAA[i]) # diff_Apol[i] is the difference of the atomic apolar contribution to solvation free energy + # obtained in water vs. the one obtained in hexadecane minus cs_coeff * SAA[i] + + tot_diff_Apol = tot_diff_Apol + diff_Apol[i] # tot_diff_Apol is sum of all atomic diff_Apol[i] + + diff_AtomicSolv[i] = diff_Pol[i] + diff_Apol[i] # diff_AtomicSolv[i] is the sum of the atomic diff_Pol[i] and diff_Apol[i] (see above for diff_Pol[i] and diff_Apol[i]) + # diff_AtomicSolv[i] considers the difference between water and hexadecane results for each atom!!! + + tot_diff_PolPlusApol = tot_diff_PolPlusApol + diff_AtomicSolv[i] # tot_diff_PolPlusApol is the sum over all atomic contributions to the difference of solvation free energies + # in water and hexadecane, i.e. the difference + # of the final solvation free energies obtained in water and hexadecane + + ## write out the solvation file + file = open(outputprefix+'.solv','w') + file.write( "%s %3d %4.1f %8.2f %8.2f %8.2f %8.2f\n" % (name,numatom,float(totwat[1]),tot_diff_Pol,float(totwat[3]),tot_diff_Apol,tot_diff_PolPlusApol)) # formal charge is the same for water or hexadecane + for i in range(N): + file.write("%8.4f%8.2f%7.2f%8.2f%8.2f\n" % (Chghex[i],diff_Pol[i],SAA[i],diff_Apol[i],diff_AtomicSolv[i])) + file.close() + + print("") + print("**** The function diff_amsol71_files() was finished. ****") + print("") + + return + +################################################################################################################# +################################################################################################################# + +def modify_charges_mol2_file(mol2file, atom_list_hex, outputprefix): + ## read in mol2 file + + print("") + print("**** starting the function modify_charges_mol2_file() *****") + print("") + print(" CM2 charges from an AMSOL7.1 SM5.42R calculation in hexadecane (!!!) ") + print(" are written to mol2-file. Former charges are overwritten.") + + mol = mol2amsol.read_Mol2_file(mol2file)[0] + + n = len(atom_list_hex) + if n != len(mol.atom_list): + print("Error: n != len(mol.atom_list) : " + str(n) + " !=" + str(len(mol.atom_list))) + exit() + + + for i in range(n): + charge = atom_list_hex[i][2] + print(mol.atom_list[i].Q, charge) + mol.atom_list[i].Q = float(charge) + + filename = outputprefix + '.mol2' + mol2amsol.write_mol2(mol,filename) + + print("") + print("**** The function modify_charges_mol2_file() was finished. ****") + print("") + + return + +################################################################################################################# +################################################################################################################# +def main(): + + print("") + print("**** entering the main program in process_amsol71_mol2.py ****") + print("") + + if len(sys.argv) != 5: # if no input + print(" This script needs the following:") + print(" (1) amsol water output file ") + print(" (2) amsol hex output file ") + print(" (3) amsol hex output file ") + print(" (4) outputprefix ") + return + + filenamewat = sys.argv[1] + filenamehex = sys.argv[2] + mol2file = sys.argv[3] + outputprefix = sys.argv[4] + + atom_list_wat,tot_wat,name_wat,numat_wat = process_amsol_file(filenamewat,outputprefix,"wat") + atom_list_hex,tot_hex,name_hex,numat_hex = process_amsol_file(filenamehex,outputprefix,"hex") + + + # tot_wat and tot_hex are lists: + # ( see def process_amsol_file(...) above) + # + # tot_wat[0] or tot_hex[0] : total_line[0] = "Total:" + # tot_wat[1] or tot_hex[1] : total_line[1] = CM2 chg. + # tot_wat[2] or tot_hex[2] : total_line[2] = G_P, i.e. polar contribution to solvation free energy or also called Polarization free energy (in kcal/mol) + # tot_wat[3] or tot_hex[3] : total_line[3] = Area (Ang**2) (in amsol-mod4: Area (CD) (Ang**2)) + # tot_wat[4] or tot_hex[4] : total_line[4] = SS G_CDS in kcal/mol (in amsol-mod4: G-CD) + # tot_wat[5] or tot_hex[5] : total_line[5] = Subtotal in kcal/mol, i.e. sum of all atomic polar (G_P[i]) and apolar (SS G_CDS[i]) contributions to the solvation free energy + # Subtotal = solvation free energy + # Subtotal = "(5) G-P-CDS(sol) = G-P(sol) + G-CDS(sol) = (2) + (4) -XX.XXX kcal" + + + + if (name_hex != name_wat or numat_hex != numat_wat): + print("Error: Name or Atom counts do not agree") + # + #else: + print("Wat-name = " + name1) + print("Wat-atom cout = " + str(numat1)) + print("Hex-name = " + name2) + print("Hex-atom cout = " + str(numat2)) + + print("") + print("just before diff_amsol71_files() function") + print("") + diff_amsol71_files(atom_list_wat, tot_wat, atom_list_hex, tot_hex, name_wat, numat_wat, outputprefix) + + print("") + print("just before modify_charges_mol2_file() function") + print("") + modify_charges_mol2_file(mol2file, atom_list_hex, outputprefix) + + print("") + print("**** The main program in process_amsol71_mol2.py was finished for ****") + print("%s and %s." % (filenamewat, filenamehex)) + print("*******************************************************************") + print("") + # + return +################################################################################################################# +################################################################################################################# +main() diff --git a/ligand/generate/build_ligand.sh b/ligand/generate/build_ligand.sh new file mode 100755 index 0000000..d85729f --- /dev/null +++ b/ligand/generate/build_ligand.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Defination, Env +source ~/.bashrc +export PATH="$PATH:/home/soft/amber/19/bin/" +conda activate rdkit +export DOCKBASE='/pubhome/qyfu02/Software/db2_converter' +export OBABELBASE='/pubhome/qyfu02/miniconda3/envs/rdkit/bin' +export AMSOLEXE='/pubhome/qyfu02/Software/db2_converter/ligand/amsol/amsol7.1_patched' + +CONF_EXE='/pubhome/qyfu02/Software/conformator/conformator' +PYTHON3='/usr/bin/python3.6' + +# Read command line inputs +number=$1 +max_conf=$2 + +# Make working dir ( also output directory, make sure this can be workable even run multiple times + +mkdir $number +mv $number.smi $number + +# Enter dir +cd $number + + # Generate conformations by Conformator + $CONF_EXE -i $number.smi -o conformer.$number.mol2 -q 2 -n $max_conf --hydrogens + + # derive molecule smile and name from *.smi file + zinc=`cat $number.smi|awk '{print $2}'` + smile=`cat $number.smi|awk '{print $1}'` + + # derive first mol2 conformation for amsol + $PYTHON3 $DOCKBASE/ligand/generate/derive_first_mol2.py conformer.$number.mol2 output$number.mol2 + + # prapare.py ( Don't why, keep it ) + $PYTHON3 $DOCKBASE/ligand/generate/prepare.py output$number.mol2 --name=$zinc --smiles=$smile + + # AMSOL ( very complicated in it, but not much work ) + $DOCKBASE/ligand/amsol/calc_solvation.csh output$number.mol2 + + + # Match and convert ( Avoid api of mol2db2.py but use match_and_convert_mol2.py instead. + rm -rf db2 + $PYTHON3 $DOCKBASE/ligand/mol2db2/match_and_convert_mol2.py conformer.$number.mol2 output + + # clean + rm -r mol2 sdf + + # Merge multiple db2 fils into one + cd db2 + zcat -f *.db2.gz > all.db2 + rm *.gz + gzip all.db2 + mv all.db2.gz ../ + cd .. + rmdir db2 + +# Back +cd .. + + diff --git a/ligand/generate/build_ligand_rdkit.sh b/ligand/generate/build_ligand_rdkit.sh new file mode 100755 index 0000000..ee0a247 --- /dev/null +++ b/ligand/generate/build_ligand_rdkit.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +# Defination, Env +source ~/.bashrc +export PATH="$PATH:/home/soft/amber/19/bin/" +conda activate rdkit +export DOCKBASE='/pubhome/qyfu02/Software/db2_converter' +export OBABELBASE='/pubhome/qyfu02/miniconda3/envs/rdkit/bin' +export AMSOLEXE='/pubhome/qyfu02/Software/db2_converter/ligand/amsol/amsol7.1_patched' + +CONF_EXE='/pubhome/qyfu02/Software/conformator/conformator' +PYTHON3='/usr/bin/python3.6' + +# Read command line inputs +number=$1 +max_conf=$2 + +# Make working dir ( also output directory, make sure this can be workable even run multiple times + +mkdir $number +mv $number.smi $number + +# Enter dir +cd $number + + # derive molecule smile and name from *.smi file + zinc=`cat $number.smi|awk '{print $2}'` + smile=`cat $number.smi|awk '{print $1}'` + + # Generate conformations by Conformator + $CONF_EXE -i $number.smi -o conformer.TMP.mol2 -q 2 -n 1 --hydrogens + $PYTHON3 $DOCKBASE/ligand/rdkit/generate_conformers.py -m conformer.TMP.mol2 -N $zinc -r 1.0 -n $max_conf -o conformer.$number.mol2 -t conformer.TMP.mol2 + # rm conformer.TMP.mol2 + + # derive first mol2 conformation for amsol + $PYTHON3 $DOCKBASE/ligand/generate/derive_first_mol2.py conformer.$number.mol2 output$number.mol2 + + # prapare.py ( Don't why, keep it ) + $PYTHON3 $DOCKBASE/ligand/generate/prepare.py output$number.mol2 --name=$zinc --smiles=$smile + + # AMSOL ( very complicated in it, but not much work ) + $DOCKBASE/ligand/amsol/calc_solvation.csh output$number.mol2 + + # Match and convert ( Avoid api of mol2db2.py but use match_and_convert_mol2.py instead. + rm -rf db2 + $PYTHON3 $DOCKBASE/ligand/mol2db2/match_and_convert_mol2.py conformer.$number.mol2 output + + # clean + rm -r mol2 sdf + + # Merge multiple db2 fils into one + cd db2 + zcat -f *.db2.gz > all.db2 + rm *.gz + gzip all.db2 + mv all.db2.gz ../ + cd .. + rmdir db2 + +# Back +cd .. + + diff --git a/ligand/generate/derive_first_mol2.py b/ligand/generate/derive_first_mol2.py new file mode 100755 index 0000000..ce0b18b --- /dev/null +++ b/ligand/generate/derive_first_mol2.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3.6 +import sys,os + +infile = sys.argv[1] +outfile = sys.argv[2] + +with open(outfile,'w') as ofp: + start = True + for line in open(infile): + if "@MOLECULE" in line and start: + start = False + ofp.write(line) + elif "@MOLECULE" in line and not start: + break + else: + ofp.write(line) + + + diff --git a/ligand/generate/prepare.py b/ligand/generate/prepare.py new file mode 100755 index 0000000..8b9d760 --- /dev/null +++ b/ligand/generate/prepare.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python +import argparse +from io import StringIO +import os +import logging +import shutil +import sys + + +log = logging # Placeholder for future betterness + + +def prepare(molfile, namedata=None, namepath=None, tempdir=os.getcwd()): + tempdir = tempdir.rstrip('/') + + # Create working directory + if not os.path.isdir(tempdir): + log.info("Creating molecule temp dir: {}".format(tempdir)) + os.makedirs(tempdir) + + srcbase = os.path.basename(molfile) + tempmol = os.path.join(tempdir, srcbase) + namefile = os.path.join(tempdir, "name.txt") + + # Bring mol2 into working directory + if not os.path.exists(tempmol) or not os.path.samefile(molfile, tempmol): + log.info("Copying mol file to temp dir: {}".format(tempmol)) + shutil.copy(molfile, tempmol) + + if namedata is not None: + log.info("Writing name.txt") + f = open(namefile, 'w') + f.write(namedata + "\n") + f.close() + elif namepath is not None and not os.path.samefile(namepath, namefile): + log.info("Copying namefile from {0}".format(namepath)) + shutil.copy(namepath, namefile) + else: + log.warning("Skipping name.txt generation") + + +def create_namedata(name, smiles, longname, prot_id=None, temp_id=None): + if temp_id is None: + temp_id = 1 + if prot_id is None: + line = "name.txt {tmp} {name} {smiles} | {longname}".format(tmp=temp_id, + name=name, + smiles=smiles, + longname=longname,) + else: + line = "name.cxcalc.txt {tmp} {name} {conf} {smiles} _ | {longname}".format(tmp=temp_id, + name=name, + conf=prot_id, + smiles=smiles, + longname=longname) + return line + + +def main(args): + parser = argparse.ArgumentParser("Prepare mol2 for database generation") + parser.add_argument('mol2', help="Path to mol2 file") + parser.add_argument('-d', '--dir', nargs='?', default=os.getcwd(), help="Directory to prpare ligand in") + parser.add_argument('-f', '--namefile', default=None, help="Existing namefile to use") + parser.add_argument('-S', '--smilesfile', default=None, help="Read name and SMILES from SMILES file (first line)") + parser.add_argument('-n', '--name', default=None, help="Ligand name") + parser.add_argument('-p', '--prot_id', default=None, help="Ligand protomer ID") + parser.add_argument('-s', '--smiles', default=None, help="Ligand SMILES") + parser.add_argument('-l', '--long_name', default="NO_LONG_NAME", help="Ligand long name") + parser.add_argument('-t', '--temp_id', default=None, help="Ligand temporary (internal) ID") + params = parser.parse_args(args) + + if params.namefile is None: + if params.smilesfile is not None: + sf = open(params.smilesfile) + smiles, name = next(sf).split()[0:2] + elif params.name is None: + log.error("No name or namefile provided!") + sys.exit(-1) + elif params.smiles is None: + log.warn("SHOULD include ligand smiles OR namefile. Using empty smiles") + smiles = "none" + else: + name = params.name + smiles = params.smiles + namefile = None + namedata = create_namedata(name=name, + smiles=smiles, + longname=params.long_name, + prot_id=params.prot_id, + temp_id=params.temp_id) + else: + namefile = params.namefile + namedata = None + prepare(params.mol2, namedata=namedata, namepath=namefile, tempdir=params.dir) + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) + diff --git a/ligand/mol2db2/README.md b/ligand/mol2db2/README.md new file mode 100644 index 0000000..f9429c3 --- /dev/null +++ b/ligand/mol2db2/README.md @@ -0,0 +1,9 @@ +copy of mol2db2 + +This takes mol2 files, solv files and 'name.txt' files and converts them +into mol2db2 file, a hierarchical ligand database format. This replaces mol2db. + +official version here: + +https://github.com/ryancoleman/mol2db2 +License: GPLv2, using code from Penn diff --git a/ligand/mol2db2/atom_color_table.py b/ligand/mol2db2/atom_color_table.py new file mode 100755 index 0000000..ebfc968 --- /dev/null +++ b/ligand/mol2db2/atom_color_table.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python + +#Ryan G. Coleman, Brian K. Shoichet Lab +#implements atom color table, 2 parts, 1 part is color to int mapping +# other part is rules for mapping sybyl atoms to colors +# defaults are encoded and writable so users can edit them +# this code is slated for deprecation unless somebody can show that colors help + +import string +import sys +import operator + +class ColorTable(object): + '''implements the color table and all the things it needs''' + defaultColorDefault = 'neutral' # the default color + #note that if you change the 7 classes here you have to change INDOCK + colorIntsDefault = {'positive': 1, + 'negative': 2, + 'acceptor': 3, + 'donor': 4, + 'ester_o': 5, + 'amide_o': 6, + 'neutral': 7} + #rules are last match counts. so even though all Ns are positive, the later + # rule N.ar matches acceptor so N.ar are acceptor + #first rules ar beginning of sybyl atom text -> type + #later rules are Atom NotBondedTo Atom -> type like + # O. -1 N.2 -> negative + #other rules are Atom BondsAwayFrom Atom -> type like + # C.2 1 N. -> positive or + # 0.2 2 N.3 -> amide_o + #again rules are read in order and the last matching rule is the one used + rulesTableDefault = [('N.4', 'positive'), + ('O.co2', 'negative'), + ('O.2', 'acceptor'), + ('O.3', 'acceptor'), + ('S.2', 'acceptor'), + ('N.ar', 'acceptor'), + ('P.3', 1, 'O.co2', 'negative'), + ('S.o2', 1, 'O.co2', 'negative'), + ('N.2', 1, 'H', 'donor'), + ('N.am', 1, 'H', 'donor'), + ('N.pl3', 1, 'H', 'donor'), + ('O.3', 1, 'H', 'donor'), + ('N.ar', -1, 'H', 'acceptor'), + ('N.ar', -1, 'C.3', 'acceptor'), + ('N.ar', 1, 'H', 'donor'), + ('O.3', 1, 'H', 'donor'), + ('O.2', 2, 'O.3', 'ester_o'), + ('O.2', 2, 'N.pl3', 'amide_o'), + ('O.2', 2, 'N.am', 'amide_o'), + ('O.2', 2, 'N.3', 'amide_o')] + + def __init__(self, parameterFileName=None): + '''constructs from defaults or reads from file''' + if parameterFileName is not None: + parameterFile = open(parameterFileName, 'r') + phase = 0 # 0 = default, 1 = color/ints, 2 = rules + self.colorInts = {} + self.rulesTable = [] + try: + for line in parameterFile: + if 0 == phase: + self.defaultColor = string.split(line)[0] + phase = 1 # only one line to define default color + elif 1 == phase: + tokens = string.split(line) + if 1 == len(tokens) and tokens[0] == 'rules': + phase = 2 # rules table is next + else: + self.colorInts[tokens[0]] = int(tokens[1]) + elif 2 == phase: + tokens = string.split(line) + if 2 == len(tokens): # normal rule + self.rulesTable.append((tokens[0], tokens[1])) + elif 4 == len(tokens): # rule about bonds + self.rulesTable.append( + (tokens[0], int(tokens[1]), tokens[2], tokens[3])) + except StopIteration: + pass # EOF + else: # no parameter file, use defaults + self.defaultColor = self.defaultColorDefault + self.colorInts = self.colorIntsDefault + self.rulesTable = self.rulesTableDefault + + def printParameters(self): + '''prints to standard out the parameters used in a readable format''' + print(self.defaultColor) + thisColorInts = list(self.colorInts.items()) + thisColorInts.sort(key=operator.itemgetter(1)) + for aColor, anInt in thisColorInts: + print(aColor, anInt) + print("rules") + for rule in self.rulesTable: + for rulePart in rule: + print(rulePart, ) + print("") # force newline + #that's all. rules are printed + + def convertMol2color(self, mol2data, atomNum): + '''uses the rules in the color table to produce the integer of the color''' + actualNum = atomNum - 1 + actualName = mol2data.atomType[actualNum] + lastColorFound = self.defaultColor + #go through each rule in order. apply it if it matches. + for rule in self.rulesTable: + if 2 == len(rule): # easy rule + if 0 == string.find(actualName, rule[0]): # means it matched + lastColorFound = rule[1] + elif 4 == len(rule): # rule about bonds + if rule[1] == -1: # means not bonded to + if 0 == string.find(actualName, rule[0]): # matched the first part + if not mol2data.bondedTo(atomNum, rule[2]): + lastColorFound = rule[3] + else: # has a positive number like 1 or 2 + if 0 == string.find(actualName, rule[0]): # matched the first part + if mol2data.bondedTo(atomNum, rule[2], rule[1]): + lastColorFound = rule[3] + return self.colorInts[lastColorFound] + +#if -1 != string.find(sys.argv[0], "atom_color_table.py"): +if -1 != sys.argv[0].find("atom_color_table.py"): + #if program is called from the command line, assume user wants a copy of the + #default parameter file written to standard out. this is the only command use. + #usually this will be imported and run from somewhere else. + if len(sys.argv) > 1: + ColorTable(sys.argv[1]).printParameters() + else: + ColorTable().printParameters() diff --git a/ligand/mol2db2/buckets.py b/ligand/mol2db2/buckets.py new file mode 100644 index 0000000..09b11e1 --- /dev/null +++ b/ligand/mol2db2/buckets.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python2.7 + +#Ryan G. Coleman +#buckets class is used for fast 3d point overlapping +#puts all points into buckets in each dimension +#only compare to reasonably nearby points +#assumes tolerance <<<< 1 + +from geometry import distL2Squared3 +import math + +class Bucket3d(object): + '''buckets class is used for fast 3d point overlapping + puts all points into buckets in each dimension + only compare to reasonably nearby points + assumes tolerance <<<< 1 angstrom''' + + bigBucket = 100 # arbitrary huge bucket size, want to avoid O(n^2) + + def __init__(self, pointList, tolerance): + '''takes the point list and makes buckets for searching later. O(n)''' + self.tolerance2 = tolerance ** 2. # square the tolerance for speed + self.pointList = pointList + self.coords = [ + [point[0] for point in pointList], + [point[1] for point in pointList], + [point[2] for point in pointList]] + self.mins = [10000, 10000, 10000] + self.maxs = [-10000, -10000, -10000] + for dimension in range(3): + self.mins[dimension] = int( + math.floor(min(self.coords[dimension]) - tolerance)) + self.maxs[dimension] = int( + math.ceil(max(self.coords[dimension]) + tolerance)) + self.buckets = [ + [set() for count in range(1 + self.maxs[0] - self.mins[0])], + [set() for count in range(1 + self.maxs[1] - self.mins[1])], + [set() for count in range(1 + self.maxs[2] - self.mins[2])]] + for dimension in range(3): + for count, point in enumerate(self.coords[dimension]): + bucketOne = int(math.floor(point - tolerance)) - self.mins[dimension] + bucketTwo = int(math.floor(point + tolerance)) - self.mins[dimension] + for aBucket in range(bucketOne, bucketTwo + 1): + self.buckets[dimension][aBucket].add(count) + self.possiblyNearbyPoints = [] # list of sets basically. no order. + for xCount in range(1 + self.maxs[0] - self.mins[0]): + for yCount in range(1 + self.maxs[1] - self.mins[1]): + for zCount in range(1 + self.maxs[2] - self.mins[2]): + newSet = self.buckets[0][xCount].intersection( + self.buckets[1][yCount], self.buckets[2][zCount]) + if len(newSet) > 0: + self.possiblyNearbyPoints.append(list(newSet)) + + def getWithinCluster(self, clusters): + '''souped up for speed version of code. puts nearby points into the + unionfind data structure 'clusters'. does every possible shortcut i can + think of for now. super fast now.''' + #for bucket in self.possiblyNearbyPoints: + # print len(bucket), + #print "bucket lengths" + for bucket in self.possiblyNearbyPoints: + #print len(bucket), len(self.pointList) + indicesLeft = set(range(len(bucket))) + while len(indicesLeft) > 0: + oneIndex = indicesLeft.pop() + oneXyzIndex = bucket[oneIndex] + if len(bucket) > self.bigBucket: + thisCluster = clusters.getList(oneXyzIndex) # O(n), don't do lots + #print "trying to skip", len(thisCluster), len(bucket) + if len(thisCluster) >= len(bucket): # means we should at least quit + #doing this bucket, nothing left to union + break + oneXyz = self.pointList[oneXyzIndex] + for twoIndex in range(len(bucket)): + twoXyzIndex = bucket[twoIndex] + if len(bucket) > self.bigBucket: + if twoXyzIndex in thisCluster: + continue # skip this iteration of the twoIndex for loop + twoXyz = self.pointList[twoXyzIndex] + if distL2Squared3(oneXyz, twoXyz) < self.tolerance2: + clusters.union(oneXyzIndex, twoXyzIndex) + try: + indicesLeft.remove(twoIndex) + except KeyError: + pass # really quite okay + if len(bucket) == len(self.pointList): # might be able to quit now if + #all unioned together already after a single pass. + clusterList = clusters.toLists() + if len(clusterList) == 1: # only one cluster means quit now + return None # just quit entirely + + def getWithin(self): + '''returns pairs of points within the tolerance. + only compare within buckets. slower but doesn't require unionfind + data structure, kept for testing, etc.''' + returnPairs = set() + for bucket in self.possiblyNearbyPoints: + for oneIndex, oneXyzIndex in enumerate(bucket): + oneXyz = self.pointList[oneXyzIndex] + for twoIndex in range(oneIndex + 1, len(bucket)): + twoXyzIndex = bucket[twoIndex] + twoXyz = self.pointList[twoXyzIndex] + if distL2Squared3(oneXyz, twoXyz) < self.tolerance2: + if twoXyzIndex < oneXyzIndex: + oneXyzIndex, twoXyzIndex = twoXyzIndex, oneXyzIndex + returnPairs.add((oneXyzIndex, twoXyzIndex)) + return returnPairs diff --git a/ligand/mol2db2/clash.py b/ligand/mol2db2/clash.py new file mode 100755 index 0000000..fc6811c --- /dev/null +++ b/ligand/mol2db2/clash.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python2.7 + +#Ryan G. Coleman +#reads in file containing clash definitions. writes defaults. + +import string +import sys +from geometry import distL2Squared3 +from collections import defaultdict + +class Clash(object): + '''holds parameters that determine what a clashed conformation contains. + rules have the format ('min|max', bond, cmp, "X", "Y", dist) which is: + min|max - whether the constraint is a minimum or maximum + bond - how many bonds are between the atoms. + cmp - how to use the bond distance. -1 means there must be less than that many + 0 means there must be exactly that many and + 1 means there must be more than that many bonds between the atoms + X - atom type X, * means all + Y - atom type Y, * means all + dist - float that is the distance constraint''' + #old rules, necessary for mix'n'match, but not for simple hydroxyl rotations + # rulesDefault = [("max", 1, 0, "*", "*", 2.2), + # ("min", 3, 1, "O", "O", 2.0), + # ("min", 3, 1, "*", "*", 1.50), + # ("min", 1, 0, "O", "O", 2.0), + # ("min", 1, 0, "*", "*", 0.95)] + # rulesDefault = [("min", 2, 1, "*", "*", 1.70)] + rulesDefault = [("min", 2, 1, "H", "H", 1.70)] # only H-H!! + + def __init__(self, parameterFileName=None): + '''constructs from defaults or reads from file''' + if parameterFileName is not None: + parameterFile = open(parameterFileName, 'r') + self.rules = [] + try: + for line in parameterFile: + tokens = string.split(line) + self.rules.append(( + tokens[0], int(tokens[1]), int(tokens[2]), + tokens[3], tokens[4], float(tokens[5]), float(tokens[5])**2.)) + except StopIteration: + pass # EOF + else: # no parameter file, use defaults + self.rules = [] + for defaultRule in self.rulesDefault: + ruleWithSquared = list(defaultRule) + ruleWithSquared.append(defaultRule[5]**2.) + self.rules.append(tuple(ruleWithSquared)) + + def printParameters(self): + '''prints to standard out the parameters used in a readable format''' + for rule in self.rules: + for part in rule[0:6]: # don't print out the distance squared term + print(part, ) + print("") # force newline + + def decide(self, mol2data, xyzData): + '''mol2data is the mol2.Mol2 object. xyzData is a list of coords. + use self.rules to return True (clashed) or False (not clashed).''' + dists = defaultdict(list) # format is atomNum -> (otherNum, dist, bondDist) + #all dists in list are euclidean distance squared + atomNums = list(range(len(xyzData))) + atomNums.sort() + for atomNumOne in atomNums: + for atomNumTwo in atomNums: + if atomNumTwo > atomNumOne: + thisDist = distL2Squared3(xyzData[atomNumOne], xyzData[atomNumTwo]) + bondDist = mol2data.bondsBetweenActual(atomNumOne, atomNumTwo) + dists[atomNumOne].append((atomNumTwo, thisDist, bondDist)) + dists[atomNumTwo].append((atomNumOne, thisDist, bondDist)) + for rule in self.rules: + #match atom types first + for atomNum in atomNums: + if rule[3] == "*" or \ + 0 == string.find(mol2data.atomType[atomNum], rule[3]): + for dist in dists[atomNum]: # for every distance + if rule[4] == "*" or \ + 0 == string.find(mol2data.atomType[dist[0]], rule[4]): + brokeRule = False + if rule[0] == "max": # is a max distance constraint + if dist[1] > rule[6]: # broke the rule + brokeRule = True + elif rule[0] == "min": # is a min distance constraint + if dist[1] < rule[6]: # broke the rule + brokeRule = True + if brokeRule: # check to make sure actually broken + if not cmp(dist[2], rule[1]) == rule[2]: # this amounts + #to checking to see if the right number of bonds lie between + #the atoms in question. + brokeRule = False + if brokeRule: # rule has been broken so there is a clash + #print rule, atomNum, dist #debug the rules broken + return True # can quit after first broken rule + #if everything passed, return False indicating no clashes + return False + +# if -1 != string.find(sys.argv[0], "clash.py"): +if -1 != sys.argv[0].find("clash.py"): + #if program is called from the command line, assume user wants a copy of the + #default parameter file written to standard out. this is the only command use. + #usually this will be imported and run from somewhere else. + if len(sys.argv) > 1: + Clash(sys.argv[1]).printParameters() + else: + Clash().printParameters() diff --git a/ligand/mol2db2/combinatorics.py b/ligand/mol2db2/combinatorics.py new file mode 100644 index 0000000..b9693c6 --- /dev/null +++ b/ligand/mol2db2/combinatorics.py @@ -0,0 +1,17 @@ + +#Ryan G. Coleman, Brian K. Shoichet 2010 +#combinatorics primitives + +def allCombinations(inputLists): + '''takes a list of lists. returns all possible ways of picking one element + from each list. as a new list.''' + stack = [[]] + for inputList in inputLists: + newStack = [] + for old in stack: + for inputListItem in inputList: + oldCopy = old[:] + oldCopy.append(inputListItem) # data is added here + newStack.append(oldCopy) + stack = newStack + return stack diff --git a/ligand/mol2db2/divisive_clustering.py b/ligand/mol2db2/divisive_clustering.py new file mode 100644 index 0000000..cfd5dca --- /dev/null +++ b/ligand/mol2db2/divisive_clustering.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python + +#Ryan G. Coleman, Brian K. Shoichet Lab +#utility for divisive bisective clustering. +#common use is to cluster positions of ligand atoms +#written generally to cluster lists of points, returns indices into the +#original lists as lists of lists where each sub-list is a cluster + +import sys +import pca # for bisective PCA part of clustering +try: + import LinearAlgebra # for error handling. ugh. numeric +except: + try: + import numpy.linalg as LinearAlgebra # error handling for numpy + except: + pass + pass + +class SplitZeroError(Exception): + '''error thrown when the cluster fails to split, i.e. all points project + to the same point''' + + def __init__(self, indicesSplit): + '''simple assignment, not used currently''' + self.indicesSplit = indicesSplit + +def getListForIndices(pointListList, indices): + '''for each index, get the pointList. return newListList''' + newListList = [] + for index in indices: + newListList.append(pointListList[index]) + return newListList + +def findLongestSubList(clusters): + '''helper function to find the longest sublist''' + longestIndex = None + for index in range(len(clusters)): + if longestIndex is None: + longestIndex = index + elif len(clusters[longestIndex]) < len(clusters[index]): + longestIndex = index + return longestIndex + +def findOrigSplitIndices(origList, splitIndices): + '''the orig list is a bunch of indices. splitIndices maps into it. return + 2 lists, one for each splitIndices, post-remapping them onto the original''' + newSplits = [[] for count in range(len(splitIndices))] + for splitIndex in range(len(splitIndices)): + for oneIndex in splitIndices[splitIndex]: + newSplits[splitIndex].append(origList[oneIndex]) + return newSplits + +def divisiveClustering( + pointListList, numClusters=30, limit=None, + startClusters=None, verbose=False, overlap=0): + '''utility for divisive bisective clustering. + common use is to cluster positions of ligand atoms + written generally to cluster lists of points, returns indices into the + original lists as lists of lists where each sub-list is a cluster''' + if startClusters is None: # start with some clusters already split + clusters = [[count for count in range(len(pointListList))]] + else: + clusters = startClusters + while len(clusters) < numClusters: # until we have enough clusters + #step 1 is find largest cluster + biggestClusterIndex = findLongestSubList(clusters) + biggestCluster = clusters[biggestClusterIndex] + if 1 == len(biggestCluster): + break # no reason to keep dividing, all clusters unique! + if limit is not None and limit > len(biggestCluster): + break # no reason to keep dividing, all clusters small enough + #get just those clusters points + clusterToSplit = getListForIndices(pointListList, biggestCluster) + try: + splitIndices = pca.findProjectAndSplit( + clusterToSplit, altSplit=False, overlap=overlap) + if 0 == len(splitIndices[0]) or 0 == len(splitIndices[1]): + raise SplitZeroError(splitIndices) + origSplits = findOrigSplitIndices(biggestCluster, splitIndices) + del clusters[biggestClusterIndex] # remove this cluster + clusters.extend(origSplits) # add the 2 new clusters + except LinearAlgebra.LinAlgError: + if verbose: + print("convergence problem during clustering. quitting with ", ) + print(len(clusters), " clusters, which should be enough for anybody") + break # quit now if we can't converge. means cluster too similar. + except SplitZeroError: + if verbose: + print("projection/split problem during clustering. quitting with ", ) + print(len(clusters), " clusters, which should be enough for anybody") + break # quit now if we can't converge. means cluster too similar. + #print clusters #debugging + if verbose: + print("size of each cluster", ) + for cluster in clusters: + print(len(cluster), ) + print(" ") # more debugging + #if we get here, all clusters are singletons or numClusters have been reached + return clusters diff --git a/ligand/mol2db2/floydwarshall.py b/ligand/mol2db2/floydwarshall.py new file mode 100644 index 0000000..4e206b8 --- /dev/null +++ b/ligand/mol2db2/floydwarshall.py @@ -0,0 +1,55 @@ +#ryan g. coleman ryangc@mail.med.upenn.edu +# floyd warshall code +#adapted from CLRS of course +#O(n^3) all pairs shortest paths +#just gives distances currently, not actual paths (no Pi matrix) + +def makeMatrix(size, infinity=99999999): + if size > 0: + retMat = [] + for count in range(size): + oneRow = [infinity for count in range(size)] + retMat.append(oneRow) + return retMat + else: + return False + +#this version takes a dictionary of neighbors and distances. format is: +# startnode->[[neighbor, dist], [neighbor, dist], [...]] +def floydWarshall(neighbors, infinity=999999999): + size = len(neighbors) + oldMat = makeMatrix(size, infinity) + orderKeys = {} + #now initialize from the neighbors + orderedKeys = list(neighbors.keys()) + orderedKeys.sort() + for order, key in enumerate(orderedKeys): + orderKeys[key] = order + for diagonal in range(size): + oldMat[diagonal][diagonal] = 0 + for key in orderedKeys: + neighborList = neighbors[key] + for neigh, dist in neighborList: + oldMat[orderKeys[key]][orderKeys[neigh]] = dist + #symmetric case be done later + newMat = oldMat[:] + for mac in range(size): + oldMat = newMat + for row in range(size): + for col in range(size): + newMat[row][col] = min( + oldMat[row][col], oldMat[row][mac] + oldMat[mac][col]) + return newMat, orderKeys + +#testing code +def runTests(): + print("testing...") + neighborTest = {} + neighborTest[0] = [[1, 2]] + neighborTest[1] = [[0, 2], [2, 1]] + neighborTest[2] = [[1, 1], [3, 4]] + neighborTest[3] = [[4, 5], [2, 4]] + neighborTest[4] = [[3, 5]] + neighborTest[5] = [[6, 2]] + neighborTest[6] = [[5, 2]] + floydWarshall(neighborTest) diff --git a/ligand/mol2db2/geometry.py b/ligand/mol2db2/geometry.py new file mode 100644 index 0000000..8bbd6b4 --- /dev/null +++ b/ligand/mol2db2/geometry.py @@ -0,0 +1,721 @@ +#ryan g coleman, ryangc@mail.med.upenn.edu +#copyright 2006-7 ryan g coleman, kim sharp crystal.med.upenn.edu +#geometric primitives like distance functions and such + +import math +import logging +useNumeric = True # use numeric, if available +useNumpy = False +try: # to use numeric + import Numeric + import Matrix + import LinearAlgebra +except ImportError: # fallback to numpy if possible + try: + import numpy + useNumpy = True + except ImportError: # otherwise fallback to hard coded single use code + useNumeric = False # found a simple matrix class in pure python + logging.warning("Could not find numpy or numeric") + try: + import pMatrix + #http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/189971 + except ImportError: + logging.critical("Could not find any matrix library (Numeric, numpy, pMatrix)! Cannot proceed") + raise + +def distL2(a, b): + '''no error checking, very fast, should use everywhere''' + sum = 0. + for count in range(len(a)): + sum += (b[count] - a[count])**2. + return math.sqrt(sum) # is this faster than **0.5? + +def distL2Squared3(a, b): + '''no error checking, unrolled loop''' + return (b[0] - a[0])**2. + (b[1] - a[1])**2. + (b[2] - a[2])**2. + +def distL2Squared(a, b): + '''no error checking, very fast, should use everywhere, doesn't square root''' + sum = 0. + for count in range(len(a)): + sum += (b[count]-a[count])**2. + return sum + +def dist(a, b, metric='L2'): + '''a and b should be lists of equal length (any dimension) + calculates distance needed and returns it (L1,L2,LINF,L2SQUARED). + these new versions are twice the speed of using list comprehensions.''' + if metric == 'L2': + sum = 0. + for count in range(len(a)): + sum += (b[count]-a[count])**2. + return sum**0.5 + elif metric == 'LINF': + max = 0. + for count in range(len(a)): + new = abs(b[count]-a[count]) + if new > max: + max = new + return max + elif metric == 'L2SQUARED': + sum = 0. + for count in range(len(a)): + sum += (b[count]-a[count])**2. + return sum + elif metric == 'L1': + sum = 0. + for count in range(len(a)): + sum += abs(b[count]-a[count]) + return sum + +def longestAndMeanDist(pts): + '''given a list of points, finds the largest distance between any 2. also + finds mean distance between all pairs. returns both, in that order.''' + longestDist = 0. + sumDists, countDists = 0., 0 + for indexOne, ptOne in enumerate(pts): + for ptTwo in pts[indexOne + 1:]: # no duplicates, minimal looping + thisDist = distL2(ptOne, ptTwo) + longestDist = max(thisDist, longestDist) + sumDists += thisDist + countDists += 1 + return longestDist, sumDists/float(countDists) + +def getAngle(a, b): + '''helper function for triangle interior, returns angle between two vectors''' + ab = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] # all inlined for speed + aSquared = a[0]**2. + a[1]**2. + a[2]**2. + bSquared = b[0]**2. + b[1]**2. + b[2]**2. + #ab = 0. #tons of debugging here + #aSquared = 0. + #bSquared = 0. + #for index in xrange(len(a)): + # ab += a[index] * b[index] + # aSquared += a[index]**2. + # bSquared += b[index]**2. + return math.acos( + max(-1., min(1., (ab) / (((aSquared)**0.5)*((bSquared)**0.5))))) + +def calcTriAreaList(abc): + '''uses heron's formula''' + a, b, c = abc # unpack + dists = [distL2(a, b), distL2(b, c), distL2(a, c)] + s = (dists[0] + dists[1] + dists[2])*0.5 + triArea = (s*(s-dists[0])*(s-dists[1])*(s-dists[2]))**(0.5) + return triArea + +def calcTriArea(a, b, c): # 3 points in 3d + '''uses heron's formula''' + dists = [distL2(a, b), distL2(b, c), distL2(a, c)] + s = (dists[0] + dists[1] + dists[2])*0.5 + triArea = (s*(s-dists[0])*(s-dists[1])*(s-dists[2]))**(0.5) + return triArea + +def getVector(a, b): + '''does a-b, returns''' + return [a[i]-b[i] for i in range(len(a))] + +def getNormalVector(a, b): + '''normal(a-b)''' + return normalizeVector(getVector(a, b)) + +def getVector(a, b): + '''does a-b, returns''' + return [a[i]-b[i] for i in range(len(a))] + +def normalizeVector(vector): + '''divides each by the total components squared''' + total = 0. + for coord in vector: + total += coord**2. + total = total**0.5 + newVect = [] + for coord in vector: + newVect.append(coord/total) + return newVect + +def length(vector): + '''vector length''' + total = 0. + for coord in vector: + total += coord**2. + total = total**0.5 + return total + +def dot(x, y): + '''gives dot product of two vectors of any dimension, assumes same length''' + dot = 0. + for index in range(len(x)): + dot += x[index] * y[index] + return dot + +def cross(x, y): + '''gives cross product of two vectors''' + return [ + x[1] * y[2] - x[2] * y[1], + x[2] * y[0] - x[0] * y[2], + x[0] * y[1] - x[1] * y[0]] + +def getDihedralUnited(all): + '''list of 4 xyzs, gets the dihedral''' + return getDihedral(all[0], all[1], all[2], all[3]) + +def getDihedral(a, b, c, d): + '''4 xyzs, gets the dihedral''' + cross1 = normalizeVector( + cross(getNormalVector(a, b), getNormalVector(b, c))) + cross2 = normalizeVector( + cross(getNormalVector(b, c), getNormalVector(c, d))) + try: + dihedral1 = math.acos(dot(cross1, cross2)) + except ValueError: + dihedral1 = 0.0 # sometimes the dot ends up a tiny bit above 1.0 + #have to figure out +- direction + planeD = calculatePlaneD(cross1, b) + planeFull = (cross1[0], cross1[1], cross1[2], planeD) + if not checkPlaneSide(planeFull, d): + dihedral1 = -dihedral1 + return dihedral1 + +def rotateAboutLine(aIn, dIn, xyz, theta): + '''rotates the point xyz about the line d-a to an angle of theta radians''' + #based on http://inside.mines.edu/~gmurray/ArbitraryAxisRotation/ + # ArbitraryAxisRotation.html + #first we have to constrain theta to be within -pi to +pi + while theta < math.pi: + theta += 2 * math.pi + while theta > math.pi: + theta -= 2 * math.pi + da = getVector(dIn, aIn) # line through a and d + #break down and just use the worst notation ever. someone punch me in the face + a, b, c = aIn # unpack many things + d, e, f = dIn + u, v, w = da + x, y, z = xyz + #shortcuts + uvw = length(da) + uvw2 = uvw * uvw + #long stupid equations + newX = ( + a * (v**2. + w**2.) + u * (- b * v - c * w + u * x + v * y + w * z) + + (- a * (v**2. + w**2.) + u * (b * v + c * w - v * y - w * z) + + x * (v**2. + w**2.)) * math.cos(theta) + + (- c * v + b * w - w * y + v * z) * math.sin(theta) * uvw) / uvw2 + newY = ( + b * (u**2. + w**2.) + v * (- a * u - c * w + u * x + v * y + w * z) + + (- b * (u**2. + w**2.) + v * (a * u + c * w - u * x - w * z) + + y * (u**2. + w**2.)) * math.cos(theta) + + (c * u - a * w + w * x - u * z) * math.sin(theta) * uvw) / uvw2 + newZ = ( + c * (v**2. + u**2.) + w * (- a * u - b * v + u * x + v * y + w * z) + + (- c * (v**2. + u**2.) + w * (a * u + b * v - u * x - v * y) + + z * (v**2. + u**2.)) * math.cos(theta) + + (- b * u + a * v - v * x + u * y) * math.sin(theta) * uvw) / uvw2 + return newX, newY, newZ + +def getTriNormalList(united): + return getTriNormal(united[0], united[1], united[2]) + +def getTriNormal(a, b, c, firstTime=True): + '''a, b and c are triange points in clockwise order, returns normal vector + that points out. returns NORMALIZED vector now. or 0s.''' + #find a-b and c-b + #vecAB = normalizeVector(getVector(a, b)) + #vecCB = normalizeVector(getVector(c, b)) + vecAB = getVector(a, b) + vecCB = getVector(c, b) + #does the cross product, that's all there is to it + normal = cross(vecAB, vecCB) + #only enter this part if all 0 and if first time being called + if not firstTime: # has been called recursively. + return normal # don't check 0s.don't normalize + elif firstTime and normal[0] == 0. and normal[1] == 0. and normal[2] == 0.: + '''this is a big problem. attempt to call after permuting values''' + newNor = getTriNormal(b, c, a, firstTime=False) # still maintains clockwise + if newNor[0] == 0. and newNor[1] == 0. and newNor[2] == 0.: + lastNo = getTriNormal(c, a, b, firstTime=False) # again + #if this is zero we still have to return it + if lastNo[0] == 0. and lastNo[1] == 0. and lastNo[2] == 0.: + return lastNo # 0s knowingly returned + else: + return normalizeVector(lastNo) + else: + return normalizeVector(newNor) + else: + return normalizeVector(normal) + +def getAverage(listPoints): + '''averages any number of 3d points passed in as list''' + average = [0., 0., 0.] + for point in listPoints: + for index in range(len(average)): + average[index] += point[index] + for index in range(len(average)): + average[index] /= len(listPoints) + return average + +def getAverage1(listPoints): + '''averages any number of 1d points passed in as list''' + average = 0. + for point in listPoints: + average += point + average /= len(listPoints) + return average + +def getAverageArbitraryDimension(listPoints, dimension=2): + '''averages any number of nD points passed in as list''' + average = [0. for count in range(dimension)] + for point in listPoints: + for index in range(len(average)): + average[index] += point[index] + for index in range(len(average)): + average[index] /= len(listPoints) + return average + +def planeDistToOrigin(normal): + '''uses formula from http://mathworld.wolfram.com/Plane.html + normal is a, b, c, d of plane + dist = d / ((a^2 + b^2 + c^2) ^ (1/2))''' + a, b, c, d = normal # unpack tuple for laziness + return d / ((a**2. + b**2. + c**2.) ** 0.5) + +def fixNormalZeros(vector): + '''if all 0s, return unchanged, that's fine. + if 1 or 2 0s, permute a tiny bit so there are no 0s. normalize and return''' + alpha = 0.0000000000000000001 + if vector[0] == 0. and vector[1] == 0. and vector[2] == 0.: + return vector # all zeros + elif vector[0] == 0. or vector[1] == 0. or vector[2] == 0.: + newVec = vector[:] # deep copy, since gets modified + if vector[0] == 0.: + newVec[0] += alpha + if vector[1] == 0.: + newVec[1] += alpha + if vector[2] == 0.: + newVec[2] += alpha + return normalizeVector(newVec) + else: + return vector # no zeros + +def withinTolerance(pointA, pointB, tolerance): + '''trying to make something fast to check if pointA and pointB are within + the tolerance of each other. + exact distance function (l2, l1, linf) not a big deal''' + if abs(pointA[0] - pointB[0]) < tolerance: + if abs(pointA[1] - pointB[1]) < tolerance: + if abs(pointA[2] - pointB[2]) < tolerance: + return True + return False + +def perturbTriangle(p1, p2, p3): + '''used to change triangles slightly for intersection checks''' + p1new = [x+.0000001 for x in p1] + p2new = [x-.000001 for x in p2] + p3new = [x+.00001 for x in p3] + return p1new, p2new, p3new + +#p1, p2, p3 are the plane, p4, p5 are the line +#returns the point that is the intersection +#doesn't do uniqueness checks, etc. +#math from Eric W. Weisstein. "Line-Plane Intersection." +#From MathWorld--A Wolfram Web Resource. +#http://mathworld.wolfram.com/Line-PlaneIntersection.html +# t = - |1 1 1 1 | +# |x1 x2 x3 x4| +# |y1 y2 y3 y4| +# |z1 z2 z3 z4| +# ---------------- +# |1 1 1 0 | +# |x1 x2 x3 x5-x4| +# |y1 y2 y3 y5-y4| +# |z1 y2 z3 z5-z4| +#plug t into: +# x = x4 + (x5-x4)t +# y = y4 + (y5-z4)t +# z = z4 + (y5-z4)t +#uses pMatrix class for now--maybe switch to numericpython if needed +def linePlaneIntersection(p1, p2, p3, p4, p5): + top = pMatrix.pMatrix( + [ + [1., 1., 1., 1.], + [p1[0], p2[0], p3[0], p4[0]], [p1[1], p2[1], p3[1], p4[1]], + [p1[2], p2[2], p3[2], p4[2]]]) + topDet = top.determinant() + bottom = pMatrix.pMatrix( + [ + [1., 1., 1., 0.], + [p1[0], p2[0], p3[0], p5[0] - p4[0]], + [p1[1], p2[1], p3[1], p5[1] - p4[1]], + [p1[2], p2[2], p3[2], p5[2] - p4[2]]]) + botDet = bottom.determinant() + if topDet == 0.0 or botDet == 0.0: + return False + t = -topDet/botDet + x = p4[0] + (p5[0]-p4[0]) * t + y = p4[1] + (p5[1]-p4[1]) * t + z = p4[2] + (p5[2]-p4[2]) * t + return [x, y, z] + +#p1, p2, p3 are the plane, p4, p5 are the line +#returns the point that is the intersection +#doesn't do uniqueness checks, etc. +#math from Eric W. Weisstein. "Line-Plane Intersection." +# From MathWorld--A Wolfram Web Resource. +# http://mathworld.wolfram.com/Line-PlaneIntersection.html +# t = - |1 1 1 1 | +# |x1 x2 x3 x4| +# |y1 y2 y3 y4| +# |z1 z2 z3 z4| +# ---------------- +# |1 1 1 0 | +# |x1 x2 x3 x5-x4| +# |y1 y2 y3 y5-y4| +# |z1 y2 z3 z5-z4| +#plug t into: +# x = x4 + (x5-x4)t +# y = y4 + (y5-z4)t +# z = z4 + (y5-z4)t +#uses NumericPython for matrix stuff... falls back to pMatrix standalone funct +def linePlaneIntersectionNumeric(p1, p2, p3, p4, p5): + if not useNumeric: + return linePlaneIntersection(p1, p2, p3, p4, p5) + if useNumpy: + top = [ + [1., 1., 1., 1.], + [p1[0], p2[0], p3[0], p4[0]], [p1[1], p2[1], p3[1], p4[1]], + [p1[2], p2[2], p3[2], p4[2]]] + topDet = numpy.linalg.det(top) + bottom = [ + [1., 1., 1., 0.], [p1[0], p2[0], p3[0], p5[0]-p4[0]], + [p1[1], p2[1], p3[1], p5[1]-p4[1]], [p1[2], p2[2], p3[2], p5[2]-p4[2]]] + botDet = numpy.linalg.det(bottom) + else: # actually use numeric + top = Matrix.Matrix( + [[1., 1., 1., 1.], [p1[0], p2[0], p3[0], p4[0]], [p1[1], p2[1], + p3[1], p4[1]], [p1[2], p2[2], p3[2], p4[2]]]) + topDet = LinearAlgebra.determinant(top) + bottom = Matrix.Matrix( + [[1., 1., 1., 0.], [p1[0], p2[0], p3[0], p5[0]-p4[0]], [p1[1], + p2[1], p3[1], p5[1]-p4[1]], [p1[2], p2[2], p3[2], p5[2]-p4[2]]]) + botDet = LinearAlgebra.determinant(bottom) + if topDet == 0.0 or botDet == 0.0: + return False + t = -topDet/botDet + x = p4[0] + (p5[0]-p4[0]) * t + y = p4[1] + (p5[1]-p4[1]) * t + z = p4[2] + (p5[2]-p4[2]) * t + return [x, y, z] + +def intPointInsideTri(p1, p2, p3, intPt): + '''helper function that checks to see if the intPt is inside + the triangle p1, p2, p3 + do three checks, make sure intPt is closer to every + set of 2 vectors than they are to each other''' + #print "p1, p2, p3, intPt =", p1,",", p2,",", p3,",", intPt + p2p3ang = getAngle(getVector(p2, p1), getVector(p3, p1)) + if p2p3ang < getAngle(getVector(p2, p1), getVector(intPt, p1)) or \ + p2p3ang < getAngle(getVector(p3, p1), getVector(intPt, p1)): + return False + p1p2ang = getAngle(getVector(p1, p3), getVector(p2, p3)) + if p1p2ang < getAngle(getVector(p2, p3), getVector(intPt, p3)) or \ + p1p2ang < getAngle(getVector(p1, p3), getVector(intPt, p3)): + return False + p3p1ang = getAngle(getVector(p3, p2), getVector(p1, p2)) + if p3p1ang < getAngle(getVector(p3, p2), getVector(intPt, p2)) or \ + p3p1ang < getAngle(getVector(p1, p2), getVector(intPt, p2)): + return False + return True + +def intPointInsideTriTuple(triTuple, intPt): + '''helper function that checks to see if the intPt is inside the + triangle p1, p2, p3''' + # the tuple format is ((x), (y), (z), (x-y), (y-x), (y-z), (z-y), (x-z),(z-x)) + #do three checks, make sure intPt is closer to every + # set of 2 vectors than they are to each other + inside = True + #print "triTuple, intPt =", triTuple,",", intPt + p2p3ang = getAngle(triTuple[4], triTuple[8]) + if p2p3ang < getAngle(triTuple[4], getVector(intPt, triTuple[0])) or \ + p2p3ang < getAngle(triTuple[8], getVector(intPt, triTuple[0])): + return False + p1p2ang = getAngle(triTuple[7], triTuple[5]) + if p1p2ang < getAngle(triTuple[7], getVector(intPt, triTuple[2])) or \ + p1p2ang < getAngle(triTuple[5], getVector(intPt, triTuple[2])): + return False + p3p1ang = getAngle(triTuple[3], triTuple[6]) + if p3p1ang < getAngle(triTuple[3], getVector(intPt, triTuple[1])) or \ + p3p1ang < getAngle(triTuple[6], getVector(intPt, triTuple[1])): + return False + return inside + +def getTriNormalList(united): + return getTriNormal(united[0], united[1], united[2]) + +def getTriNormal(a, b, c, firstTime=True): + '''a, b and c are triange points in clockwise order, returns normal vector + that points out. returns NORMALIZED vector now. or 0s.''' + #find a-b and c-b + #vecAB = normalizeVector(getVector(a, b)) + #vecCB = normalizeVector(getVector(c, b)) + vecAB = getVector(a, b) + vecCB = getVector(c, b) + #does the cross product, that's all there is to it + normal = cross(vecAB, vecCB) + #only enter this part if all 0 and if first time being called + if not firstTime: # has been called recursively. don't check 0s. + return normal # don't normalize + elif firstTime and normal[0] == 0. and normal[1] == 0. and normal[2] == 0.: + '''this is a big problem. attempt to call after permuting values''' + newNor = getTriNormal(b, c, a, firstTime=False) # still maintains clockwise + if newNor[0] == 0. and newNor[1] == 0. and newNor[2] == 0.: + lastNo = getTriNormal(c, a, b, firstTime=False) # again + #if this is zero we still have to return it + if lastNo[0] == 0. and lastNo[1] == 0. and lastNo[2] == 0.: + return lastNo # 0s knowingly returned + else: + return normalizeVector(lastNo) + else: + return normalizeVector(newNor) + else: + return normalizeVector(normal) + +def getAverage(listPoints): + '''averages any number of 3d points passed in as list''' + average = [0., 0., 0.] + for point in listPoints: + for index in range(len(average)): + average[index] += point[index] + for index in range(len(average)): + average[index] /= len(listPoints) + return average + +def getAverageArbitraryDimension(listPoints, dimension=2): + '''averages any number of nD points passed in as list''' + average = [0. for count in range(dimension)] + for point in listPoints: + for index in range(len(average)): + average[index] += point[index] + for index in range(len(average)): + average[index] /= len(listPoints) + return average + +def findMinsMaxsSpheres(spheres): + '''goes through all spheres, finds the min and max in each dimension. + spheres are expected in [x, y, z, r] format''' + if 0 == len(spheres): + return False, False # indicates failure + mins, maxs = [], [] + for xyz in range(3): + mins.append(spheres[0][xyz] - spheres[0][3]) # x-radius then y-rad, z-rad + maxs.append(spheres[0][xyz] + spheres[0][3]) # x+radius then y+rad, z+rad + for sphere in spheres[1:]: # already did the first + for xyz in range(3): + mins[xyz] = min(mins[xyz], sphere[xyz]-sphere[3]) + maxs[xyz] = max(maxs[xyz], sphere[xyz]+sphere[3]) + return mins, maxs + +def lineSphereIntersection(minLine, maxLine, sphere): + '''line goes from minline to maxline, sphere is x, y, z,radius, + returns 2 points of intersection, or if failure returns False + math is from http://en.wikipedia.org/wiki/Ray-sphere_intersection''' + #move sphere and line so that line starts at 0, 0, 0 + newSphere = [] + for coord in range(3): + newSphere.append(sphere[coord]-minLine[coord]) + newSphere.append(sphere[3]) # radius + #convert line to necessary form + dirLine = [] + for coord in range(3): + dirLine.append(maxLine[coord]-minLine[coord]) + dirLine = normalizeVector(dirLine) + partA = 0. + partB = 0. + partC = 0. + for coord in range(3): + partA += dirLine[coord]*newSphere[coord] # lxsx + lysx + lzsz + partB += dirLine[coord]**2. # lx2 + ly2 + lz2 + partC += newSphere[coord]**2. # sx2 + sy2 + sz2 + partC -= newSphere[3]**2. # -sr2 + try: + oneIntersectionD = (partA + ((partA**2.)-partB*partC)**0.5)/(partB) + twoIntersectionD = (partA - ((partA**2.)-partB*partC)**0.5)/(partB) + intersections = [oneIntersectionD, twoIntersectionD] + if intersections[1] < intersections[0]: + intersections.reverse() + #construct output points from original input line + outputPoints = [[], []] + for coord in range(3): + for which in range(2): + outputPoints[which].append( + minLine[coord] + dirLine[coord]*intersections[which]) + #print minLine, maxLine, sphere, outputPoints #debugging + return outputPoints + except ValueError: + return False # didn't work + +def countPathTriIntersections(pathPoints, triangle): + '''checks each line segment against one triangle, counts intersections + assume pathpoints and triangle have length 3 and are XYZ ordered''' + intersectionCount = 0 + lastPathPt = pathPoints[0] # init for loop + for nextPathPt in pathPoints[1:]: + triPts0 = triangle[0] + triPts1 = triangle[1] + triPts2 = triangle[2] + posPt, maxIt = False, 5000 + while False == posPt: + posPt = linePlaneIntersectionNumeric( + triPts0, triPts1, triPts2, lastPathPt, nextPathPt) + if False == posPt: + triPts0, triPts1, triPts2 = perturbTriangle(triPts0, triPts1, triPts2) + maxIt -= 1 + if maxIt < 0: + print(("had to perturb points 5000 times", triPts0, triPts1, triPts2, \ + lastPathPt, nextPathPt, "giving up")) + sys.exit(1) + if posPt is not False: + if distL2(lastPathPt, nextPathPt) >= distL2(lastPathPt, posPt) and \ + distL2(lastPathPt, nextPathPt) >= distL2(nextPathPt, posPt): + if intPointInsideTri(triPts0, triPts1, triPts2, posPt): + # broken when using large tri? + intersectionCount += 1 + lastPathPt = nextPathPt # for next loop + return intersectionCount + +def perturbLine(longAxis, shortAxis1, shortAxis2, startPt, endPt, itersLeft): + '''makes a slightly different line''' + #perturb starting line, try again + newStartPt = [-1., -1., -1.] + newEndPt = [-1., -1., -1.] + newStartPt[longAxis] = startPt[longAxis] + newEndPt[longAxis] = endPt[longAxis] + if itersLeft % 4 == 3: # alternate back and forth around line + newStartPt[shortAxis1] = startPt[shortAxis1] + \ + float(0.0000000001*(5001.-itersLeft)) + newStartPt[shortAxis2] = startPt[shortAxis2] - \ + float(0.000000001*(5001.-itersLeft)) + newEndPt[shortAxis1] = endPt[shortAxis1] + \ + float(0.00000001*(5001.-itersLeft)) + newEndPt[shortAxis2] = endPt[shortAxis2] - \ + float(0.000000001*(5001.-itersLeft)) + elif itersLeft % 4 == 2: # alternate back and forth around line + newStartPt[shortAxis1] = startPt[shortAxis1] - \ + float(0.0000001*(5001.-itersLeft)) + newStartPt[shortAxis2] = startPt[shortAxis2] + \ + float(0.000000001*(5001.-itersLeft)) + newEndPt[shortAxis1] = endPt[shortAxis1] + \ + float(0.00000001*(5001.-itersLeft)) + newEndPt[shortAxis2] = endPt[shortAxis2] - \ + float(0.000000001*(5001.-itersLeft)) + elif itersLeft % 4 == 1: # alternate back and forth around line + newStartPt[shortAxis1] = startPt[shortAxis1] + \ + float(0.0000000001*(5001.-itersLeft)) + newStartPt[shortAxis2] = startPt[shortAxis2] - \ + float(0.000001*(5001.-itersLeft)) + newEndPt[shortAxis1] = endPt[shortAxis1] - \ + float(0.0000001*(5001.-itersLeft)) + newEndPt[shortAxis2] = endPt[shortAxis2] + \ + float(0.0000000001*(5001.-itersLeft)) + else: + newStartPt[shortAxis1] = startPt[shortAxis1] - \ + float(0.0000001*(5001.-itersLeft)) + newStartPt[shortAxis2] = startPt[shortAxis2] + \ + float(0.0000001*(5001.-itersLeft)) + newEndPt[shortAxis1] = endPt[shortAxis1] - \ + float(0.000000001*(5001.-itersLeft)) + newEndPt[shortAxis2] = endPt[shortAxis2] + \ + float(0.00000001*(5001.-itersLeft)) + return newStartPt, newEndPt + +def getLongestEdge(triList, pointList, direction=-1): + '''helper function, finds the longest edge in the molecular surface + direction is 0, 1,2 for the axis to use for projection, + or -1 to find the euclidean''' + longestEdge = 0.0 + if -1 == direction: + for triangle in triList: + distAB = distL2( + pointList[triangle[1]-1][1:], pointList[triangle[2]-1][1:]) + distBC = distL2( + pointList[triangle[2]-1][1:], pointList[triangle[3]-1][1:]) + distCA = distL2( + pointList[triangle[3]-1][1:], pointList[triangle[1]-1][1:]) + longestEdge = max(distAB, distBC, distCA, longestEdge) + else: + pi = [0, 0] + if 0 == direction: + pi = [2, 3] # add 1 + elif 1 == direction: + pi = [1, 3] # add 1 + elif 2 == direction: + pi = [1, 2] # add 1 + for triangle in triList: + distAB = distL2( + [pointList[triangle[1]-1][pi[0]], pointList[triangle[1]-1][pi[1]]], + [pointList[triangle[2]-1][pi[0]], pointList[triangle[2]-1][pi[1]]]) + distBC = distL2( + [pointList[triangle[2]-1][pi[0]], pointList[triangle[2]-1][pi[1]]], + [pointList[triangle[3]-1][pi[0]], pointList[triangle[3]-1][pi[1]]]) + distCA = distL2( + [pointList[triangle[3]-1][pi[0]], pointList[triangle[3]-1][pi[1]]], + [pointList[triangle[1]-1][pi[0]], pointList[triangle[1]-1][pi[1]]]) + longestEdge = max(distAB, distBC, distCA, longestEdge) + return longestEdge + +def cacheTriangle(triList, pointList, allowedTris=[-1]): + '''speed-up function, cache all the various vectors made from a triangle need + since all triangles get used a couple times, this should be worth it (if you + have the memory)''' + #make a vector of tuples + # the tuple format is ((x), (y), (z), (x-y), (y-x), (y-z), (z-y), + # (x-z), (z-x), (tri#)) + #apparently not [] evaluates to true... so fix that + cacheDict = {} + for tri in triList: + if [-1] == allowedTris or tri[0] in allowedTris: + x = pointList[tri[1]-1][1:] + y = pointList[tri[2]-1][1:] + z = pointList[tri[3]-1][1:] + xy = getVector(x, y) + yx = getVector(y, x) + yz = getVector(y, z) + zy = getVector(z, y) + xz = getVector(x, z) + zx = getVector(z, x) + tupleRow = (x[0], x[1], x[2]), (y[0], y[1], y[2]), (z[0], z[1], z[2]), \ + (xy[0], xy[1], xy[2]), (yx[0], yx[1], yx[2]), \ + (yz[0], yz[1], yz[2]), (zy[0], zy[1], zy[2]), \ + (xz[0], xz[1], xz[2]), (zx[0], zx[1], zx[2]), \ + (tri[1], tri[2], tri[3]), (tri[0]) + cacheDict[tri[0]] = tupleRow + return cacheDict + +def calculatePlaneD(normal, pointOnP): + '''calculates the d of a plane where d = -ax -by -cz where normal = a, b, c + and point on plane = x, y, z''' + return - normal[0] * pointOnP[0] - normal[1] * pointOnP[1] - normal[2] * \ + pointOnP[2] + +def checkPlaneSide(plane, point): + '''plane is normal + D (from function calculatePlaneD). sees if point is + in the direction of normal or not, return boolean''' + sign = plane[0] * point[0] + plane[1] * point[1] + plane[2] * point[2] + \ + plane[3] + if sign >= 0: + return True + else: + return False + +def planeDistToOrigin(normal): + '''uses formula from http://mathworld.wolfram.com/Plane.html + normal is a , b, c, d of plane + dist = d / ((a^2 + b^2 + c^2) ^ (1 / 2))''' + a, b, c, d = normal # unpack tuple for laziness + return d / ((a**2. + b**2. + c**2.) ** 0.5) + +def calculateSphericity(area, volume): + '''from wikipedia http://en.wikipedia.org/wiki/Sphericity + Wadell Sphericity, J Geol 1935. + sphericity = pi^(1/3)(6volume)^(2/3) / area''' + return ((math.pi**(1./3.))*((6 * volume)**(2. / 3.))) / area diff --git a/ligand/mol2db2/hierarchy.py b/ligand/mol2db2/hierarchy.py new file mode 100755 index 0000000..29f15ca --- /dev/null +++ b/ligand/mol2db2/hierarchy.py @@ -0,0 +1,647 @@ +#!/usr/bin/env python2.7 + +#Ryan G. Coleman +#uses mol2 file to generate a hierarchy + +import string +import sys +from unionfind2 import unionFind +import geometry +import buckets +import gzip +import operator +import math +import time +import shortestpaths + +def printClusterHelper(clusterList): + '''stupid function used for debugging, prints list of pymol out.???.mol2 lines + to copy/paste and run to see what the clusters are. + run mol2hydroxyls.py -r and mol2tomultimol2.py first to get out.???.mol2 files + ''' + for clusters in clusterList: + print("pymol ", ) + for conf in clusters: + print("out." + string.zfill(conf, 3) + ".mol2 ", ) + print(" ") + +def computeBreaks(limitError, options): + '''3 diff requirements, make sure we break it into enough pieces to meet them + all.''' + #have to break the atomXyz into multiple sets so the hierarchy isn't too big + try: + breaksS = int(math.ceil(limitError.getSets() / float(options.limitset))) + except TypeError: # means None was used + breaksS = 1 + try: + breaksC = int(math.ceil(limitError.getConfs() / float(options.limitconf))) + except TypeError: # means None was used + breaksC = 1 + try: + breaksX = int(math.ceil(limitError.getCoords() / float(options.limitcoord))) + except TypeError: # means None was used + breaksX = 1 + #print breaksS, breaksC, breaksX # see which breaks is higher + breaks = max(breaksS, breaksC, breaksX) # use the max of any of these + return breaks + +class TooBigError(Exception): + '''error raised when the hierarchy has too many conformations of input + after the hydroxyls have been rotated.''' + + def __init__(self, confs, sets, coords): + self.confs = confs + self.coords = coords + self.sets = sets + + def __str__(self): + return repr(self.confs) + ", " + repr(self.coords) + ", " + repr(self.sets) + + def getConfs(self): + '''actually used to figure out how many sub-groups to split input confs''' + return self.confs + + def getCoords(self): + '''actually used to figure out how many sub-groups to split input confs''' + return self.coords + + def getSets(self): + '''actually used to figure out how many sub-groups to split input confs''' + return self.sets + +class Hierarchy(object): + '''uses data from a mol2 file to make a hierarchy of conformations. + the following constants are used when writing out the confs/groups and are + based on the 80 character limit in fortran. yeah seriously. + they might change if something serious happens but it is better that they + are here than hardcoded several times later + these are floats so that the division works''' + grGrPerLine = 17. # group -> group children per line in output + grCoPerLine = 9. # group -> conf + coCoPerLine = 9. # conf -> conf + coSePerLine = 8. # conf -> set + + def __init__( + self, mol2data, clashDecider, tolerance=0.001, verbose=False, + timeit=False, limitset=9999999999, limitconf=9999999999, + limitcoord=9999999999, solvdata=None): + '''takes a mol2data class as input. makes a hierarchy.''' + if solvdata is not None: + self.solvdata = solvdata + if timeit: + startTime = time.time() + #first step is to count the number of positions each atom has. + #the tolerance is taken into account here and only here. + totalCoords = len(mol2data.atomXyz) * len(mol2data.atomXyz[0]) + if verbose: + print("total number of sets (complete confs):", len(mol2data.atomXyz)) + if len(mol2data.atomXyz) > limitset: # quit now, way too many sets + raise TooBigError(None, len(mol2data.atomXyz), totalCoords) + if len(mol2data.atomXyz) > 50: + if verbose: + print("using faster count positions algorithm for large data") + self._countPositions(mol2data.atomXyz, tolerance, verbose) + else: + if verbose: + print("using default count positions algorithm for smaller data") + self._countPositionsFewPoints(mol2data.atomXyz, tolerance) + if timeit: + countTime = time.time() + print("time to count unique positions:", countTime-startTime) + if verbose: + print("unique positions, atoms:", self.posCount, len(mol2data.atomXyz)) + if totalCoords > limitcoord: + raise TooBigError(None, len(mol2data.atomXyz), totalCoords) + #this breaks out of the init stage, needs fewer confs to be passed in. + #the rigid component is the biggest set of bonded non-moving atoms + self._findRigidComponent(mol2data.atomBonds) # also uses self.posCount + if timeit: + rigidTime = time.time() + print("time to find rigid component:", rigidTime-countTime) + if verbose: + print("rigid atoms, others:", self.rigidComponent, self.atomsNotAssigned) + #new algorithm, find bonded atoms that move together, put in conformations + self._findRigidHeavy(mol2data.atomType) + self.heavyAtomNums = None + self._setHeavy(mol2data.atomType) + self._findConformations(mol2data.atomBonds, mol2data.atomXyz) + self._findSets() # puts conformations in sets + if timeit: + flexTime = time.time() + print("time to find flexible components:", flexTime-rigidTime) + if verbose: + print("total number of confs:", self.confNums[-1]) + if self.confNums[-1] > limitconf: + raise TooBigError( + self.confNums[-1], len(mol2data.atomXyz), totalCoords) + #this breaks out of the init stage, needs fewer confs to be passed in. + #now want to actually put atom positions into hierarchy groups + self._assignCoords(mol2data.atomXyz) + if timeit: + assignCoordsTime = time.time() + print("time to assign coords:", assignCoordsTime-flexTime) + self._identifyClashSetnums(clashDecider, mol2data) + if timeit: + afterClash = time.time() + print("time to identify clash sets:", afterClash-assignCoordsTime) + if verbose: + print("number of broken/clashed sets:", len(self.brokenSets)) + #the mol2data is needed during output so save it. + self.mol2data = mol2data + if timeit: + afterXyz = time.time() + print("time to identify conf atoms:", afterXyz - afterClash) + self.clusters = None # used to detect if clustering/clouding was done + self._makeClouds() # highest level of ligand sampling + if timeit: + afterClouds = time.time() + print("time to make clouds:", afterClouds - afterXyz) + + def _countPositions(self, xyzData, tolerance, verbose=False): + '''for a list of list of xyz data, count the number of positions each + atom takes based on the tolerance and the distance. tolerance is compared + to the euclidean difference squared to determine if a position is equal. + actually uses a clustering algorithm and uses a unionfind data structure.''' + self.posCount = [] + self.posClusters = [] # just save all the data since we made it + self.posClusterLists = [] # just save all the data since we made it + tolerance2 = tolerance ** 2. # square the tolerance since it is compared + for oneSet in range(len(xyzData[0])): # goes from 0 to atom count + #if verbose: + # print oneSet, " atom positions being calculated" + clusters = unionFind() + xyzList = [] + for oneIndex in range(len(xyzData)): # 0 to number of positions (mol2#s) + clusters.find(oneIndex) # initiate each position + xyzList.append(xyzData[oneIndex][oneSet]) + bucket = buckets.Bucket3d(xyzList, tolerance) # constructor to make fast + bucket.getWithinCluster(clusters) + #for pointA, pointB in bucket.getWithin(clusters): + # clusters.union(pointA, pointB) + tempLists = clusters.toLists() + self.posCount.append(len(tempLists)) + self.posClusters.append(clusters) + self.posClusterLists.append(tempLists) + + def _countPositionsFewPoints(self, xyzData, tolerance): + '''for a list of list of xyz data, count the number of positions each + atom takes based on the tolerance and the distance. tolerance is compared + to the euclidean difference squared to determine if a position is equal. + actually uses a clustering algorithm and uses a unionfind data structure.''' + self.posCount = [] + self.posClusters = [] # just save all the data since we made it + self.posClusterLists = [] # just save all the data since we made it + tolerance2 = tolerance ** 2. # square the tolerance since it is compared + for oneSet in range(len(xyzData[0])): # goes from 0 to atom count + clusters = unionFind() + xyzList = [] + for oneIndex in range(len(xyzData)): # 0 to number of positions (mol2#s) + clusters.find(oneIndex) # initiate each position + xyzList.append(xyzData[oneIndex][oneSet]) + for oneIndex in range(len(xyzData)): # 0 to positions + oneXyz = xyzList[oneIndex] + for twoIndex in range(oneIndex+1, len(xyzData)): + # count from oneIndex to positions + if geometry.distL2Squared3(oneXyz, xyzList[twoIndex]) < tolerance2: + clusters.union(oneIndex, twoIndex) + tempLists = clusters.toLists() + self.posCount.append(len(tempLists)) + self.posClusters.append(clusters) + self.posClusterLists.append(tempLists) + + def _findRigidComponent(self, atomBonds): + '''uses bond and position count information to find largest set of atoms + that don't move. this is the rigid component. set into self.rigidComponent + also find the complement of atomnums and the rigid component and set into + self.atomsNotAssigned for use later''' + clusters = unionFind() + for atomNum in range(len(self.posCount)): + if 1 == self.posCount[atomNum]: + for otherNum, bondType in atomBonds[atomNum]: + if 1 == self.posCount[otherNum]: + clusters.union(atomNum, otherNum) + maxSize = 0 + maxCluster = None + clusterLists = clusters.toLists() + # print("clusterLists: ", clusterLists) + for clusterList in clusterLists: + if len(clusterList) > maxSize: + maxSize = len(clusterList) + maxCluster = clusterList + self.rigidComponent = maxCluster + +# print("self.rigidComponent: " + str(self.rigidComponent)) + if self.rigidComponent == None: + self.atomsAssigned = set([]) + else: + self.atomsAssigned = set(self.rigidComponent) + + self.atomsNotAssigned = set() + for atomNum in range(len(self.posCount)): + # if atomNum not in self.rigidComponent: + if atomNum not in self.atomsAssigned: + self.atomsNotAssigned.add(atomNum) + + def _findRigidHeavy(self, atomTypes): + '''counts the heavy atoms in the rigid component and puts in + self.heavyRigidCount''' + self.heavyRigidCount = 0 + self.heavyRigidAtomNums = [] + for atomNum in self.atomsAssigned: + if atomTypes[atomNum].find('H') == -1: + self.heavyRigidAtomNums.append(atomNum) + self.heavyRigidCount += 1 + #print self.heavyRigidCount + + def _setHeavy(self, atomTypes): + '''for all atoms, finds the heavy ones, put in self.heavyAtomNums, return''' + if self.heavyAtomNums is None: # only do this once, it never changes + self.heavyAtomNums = [] + for atomNum in range(len(atomTypes)): + if atomTypes[atomNum].find('H') == -1: + self.heavyAtomNums.append(atomNum) + return self.heavyAtomNums + + def _findConformations(self, atomBonds, xyzData): + '''uses bond and xyzs to figure out what sets of neighboring atoms move + together and assign them to conformations and assign each set a specific + bunch of conformations. + self.rigidComponent is the list of atom numbers for the rigid comp + self.atomsAssigned is the set of atom numbers for the rigid comp (@start) + self.atomsNotAssigned is the rest of the atom numbers''' + self.confNums = [1] # rigid starts + self.confAtoms = {} # maps to atom numbers + self.confAtoms[1] = list(self.atomsAssigned) + self.confInput = {} # maps to the input xyz lists + self.confInput[1] = list(range(len(xyzData))) + confClusters = {} + for atomNum in self.atomsNotAssigned: + for listInputs in self.posClusterLists[atomNum]: + tupleInputs = tuple(listInputs) # can't use lists as keys + if tupleInputs not in list(confClusters.keys()): + confClusters[tupleInputs] = unionFind() + confClusters[tupleInputs].find(atomNum) # in case of singletons + for otherNum, bondType in atomBonds[atomNum]: + if listInputs in self.posClusterLists[otherNum]: + confClusters[tupleInputs].union(atomNum, otherNum) + for tupleInputs, clusters in confClusters.items(): + for atomLists in clusters.toLists(): + #make a conf for each + thisConf = self.confNums[-1] + 1 + self.confAtoms[thisConf] = atomLists + self.confInput[thisConf] = tupleInputs + self.confNums.append(thisConf) + #print self.confNums, self.confAtoms, self.confInput + #that's it, confs have been built + + def _findSets(self): + '''puts conformations together into sets''' + self.setToConfs = {} # maps set numbers to conf lists + for confNum in self.confNums: + for tupleInput in self.confInput[confNum]: + if tupleInput not in self.setToConfs: + self.setToConfs[tupleInput] = [] + self.setToConfs[tupleInput].append(confNum) + #print self.setToConfs + #self.setToConfs contains relevant mapping + + def _assignCoords(self, xyzData): + '''for each conf (including rigid) find atom positions for each atom''' + self.outAtoms = 0 # counter to indicate how many there are + self.outAtomOrigAtom = {} # maps to original atom numbers from mol2 + self.outAtomInputConf = {} + self.outAtomConfNum = {} + self.confNumAtomList = {} + for confNum in self.confNums: + self.confNumAtomList[confNum] = [] + for atomNum in self.confAtoms[confNum]: + self.outAtoms += 1 + globalAtomNum = self.outAtoms + self.outAtomOrigAtom[globalAtomNum] = atomNum + self.outAtomInputConf[globalAtomNum] = self.confInput[confNum][0] + self.outAtomConfNum[globalAtomNum] = confNum + self.confNumAtomList[confNum].append(globalAtomNum) + + def _identifyClashSetnums(self, clashDecider, mol2data): + '''for each set decide if it is broken/clashed + and add it to the self.brokenConfs list if it is. clashDecider is a + clash.Clash object that figures out what a clash is. mol2data is the + mol2.Mol2 object that has atom type information and bondedTo method.''' + self.brokenSets = [] + for aSet in list(self.setToConfs.keys()): + if clashDecider.decide(mol2data, mol2data.atomXyz[aSet]): + #means there was a clash + self.brokenSets.append(aSet) + #otherwise we do nothing + + def _initClusters(self, clusters): + '''initializes or reinitializes the clusters of conformations''' + self.clusters = {} + self.setNameRemap = {} # maps old sets to new names + self.setNameOutOrder = [] + self.setNameFirst = {} + self.setNameLast = {} + curSetName = 1 + for clusterIndex, cluster in enumerate(clusters): # save each cluster + self.clusters[clusterIndex] = tuple(cluster) + self.setNameFirst[clusterIndex] = curSetName + for setName in cluster: + self.setNameRemap[setName] = curSetName # map from old to new + self.setNameOutOrder.append(setName) + curSetName += 1 # advance counter + self.setNameLast[clusterIndex] = curSetName - 1 # doing inclusive + + def _findAdditionalMatchSpheres(self, numSpheres=5, cutoff=2.5): + '''for each cluster, find a couple matching spheres for distant atoms + that are relatively localized in space. + data ends up in dict self.clusterSpheres. + numSpheres is the max# of spheres to add for each cluster. will not always + find as many as requested. + cutoff is used as a cutoff to decide + whether or not to add a sphere for that atom, mean pairwise dist?''' + atomDists = self.mol2data.distFromAtoms(self.rigidComponent) # useful + possibleAtoms = set(self.heavyAtomNums) # only heavy can be matching + possibleAtoms.difference_update(self.rigidComponent) # no need to repeat + possAtomDist = [] # useful for sorting by distance + for possibleAtom in possibleAtoms: + possAtomDist.append((possibleAtom, atomDists[possibleAtom])) + possAtomDist.sort(key=operator.itemgetter(1), reverse=True) + #use possAtomDist for each cluster now to find the best candidates + self.clusterSpheres = {} # indexed by clusterIndex just like self.clusters + for clusterIndex in list(self.clusters.keys()): + cluster = self.clusters[clusterIndex] # cluster is a tuple of confs + #print "cluster", cluster #debugging + self.clusterSpheres[clusterIndex] = [] + for possibleAtom, atomDist in possAtomDist: + xyzPositions = self.mol2data.getXyzManyConfs(cluster, possibleAtom) + okayToAdd = False + if 1 == len(xyzPositions): # singleton cluster, definitely okay + okayToAdd = True + else: + longDist, meanDist = geometry.longestAndMeanDist(xyzPositions) + if meanDist <= cutoff: # passes cutoff + okayToAdd = True + if okayToAdd: # either singleton or passes cutoff + avgPoint = geometry.getAverage(xyzPositions) + self.clusterSpheres[clusterIndex].append((possibleAtom, avgPoint)) + #print possibleAtom # debugging + if len(self.clusterSpheres[clusterIndex]) == numSpheres: # done + break # out of for loop, no need to go on + #print self.clusterSpheres[clusterIndex] #debugging + + def _makeClouds(self): + '''highest level of hierachical ligand sampling, breaks the input + sets into a few clouds representing gross levels of similar conformations''' + atomDists = self.mol2data.distFromAtoms(self.rigidComponent) + #needs switched to divisive bisecting k-means clustering to be fast. + clusters = self.mol2data.divisiveClustering() + #printClusterHelper(clusters) # debug cluster assignments + self._initClusters(clusters) + #now that we have clusters, want to find additional matching spheres + #(with colors even though coloring is bad) + #data ends up in dict self.clusterSpheres + self._findAdditionalMatchSpheres() + + def _colorWriter(self, outFile, mol2data): + '''writes the color table if it was changed from the default''' + if mol2data.colorConverter.colorInts != \ + mol2data.colorConverter.colorIntsDefault: # if not default + colors = list(mol2data.colorConverter.colorInts.items()) + colors.sort(key=operator.itemgetter(1)) + for colorName, colorKey in colors: + outFile.write('T %2d %8s\n' % (colorKey, colorName)) + + def _allButSetWriter( + self, outFile, mol2data, solvdata, setsTotal, clustersTotal=0): + '''writes the M A B X R and C lines''' + #now the molecule section, facts about the whole molecule, 5 lines + outFile.write( + 'M %16s %9s %3d %3d %6d %6d %6d %6d %6d %6d\n' % ( + mol2data.name[-16:], mol2data.protName[-9:], + len(mol2data.atomNum), len(mol2data.bondStart), + self.outAtoms, self.confNums[-1], setsTotal, + self.heavyRigidCount, 5, clustersTotal)) + #second molecule line, solvation and charge data + outFile.write( + 'M %+9.4f %+10.3f %+10.3f %+10.3f %9.3f\n' % ( + solvdata.totalCharge, solvdata.totalPolarSolv, + solvdata.totalApolarSolv, solvdata.totalSolv, + solvdata.totalSurface)) + #smiles and long version of name + outFile.write('M %-76s\n' % (mol2data.smiles[-76:])) + outFile.write('M %-76s\n' % (mol2data.longname[-76:])) + #best dud energy, computed and put in later. idea is to store the best + #energy that can be found using the old DOCK/db methods and make sure + #we aren't totally missing the ball. + outFile.write('M %+10.4f\n' % 999.999) + #atom line, 1 per atom + for atomNum in range(len(mol2data.atomNum)): + outFile.write( + 'A %3d %-4s %-5s %2d %2d %+9.4f %+10.3f %+10.3f %+10.3f %9.3f\n' % ( + mol2data.atomNum[atomNum], mol2data.atomName[atomNum], + mol2data.atomType[atomNum], + mol2data.dockNum[atomNum], mol2data.colorNum[atomNum], + solvdata.charge[atomNum], solvdata.polarSolv[atomNum], + solvdata.apolarSolv[atomNum], solvdata.solv[atomNum], + solvdata.surface[atomNum])) + #now all the bonds. + for bondNum in range(len(mol2data.bondStart)): + outFile.write( + 'B %3d %3d %3d %-2s\n' % ( + mol2data.bondNum[bondNum], mol2data.bondStart[bondNum], + mol2data.bondEnd[bondNum], mol2data.bondType[bondNum])) + #now all the coordinates. this section is complex to output since not + # all atoms*input coordinates are output. + for xyzNum in range(self.outAtoms): + xyzNum += 1 # 1-index nonsense + atomNum = self.outAtomOrigAtom[xyzNum] + inputConfNum = self.outAtomInputConf[xyzNum] + confNum = self.outAtomConfNum[xyzNum] + xyz = self.mol2data.atomXyz[inputConfNum][atomNum] + #atomnum needs incremented by 1 to make it match up with the input atom# + outFile.write( + 'X %9d %3d %6d %+9.4f %+9.4f %+9.4f\n' % + (xyzNum, atomNum+1, confNum, xyz[0], xyz[1], xyz[2])) + #amazingly these coordinates are not converted to integers. + #rigid xyzs, or really just the ligand xyzs to be used for matching + self.rigidNumSeen = 0 + for rigidNum in self.heavyRigidAtomNums: + self.rigidNumSeen += 1 + atomColor = mol2data.colorNum[rigidNum] + xyz = self.mol2data.atomXyz[0][rigidNum] + outFile.write( + 'R %6d %2d %+9.4f %+9.4f %+9.4f\n' % + (self.rigidNumSeen, atomColor, xyz[0], xyz[1], xyz[2])) + #conformations... + for confNum in self.confNums: + coordStart = min(self.confNumAtomList[confNum]) + coordEnd = max(self.confNumAtomList[confNum]) + outFile.write('C %6d %9d %9d\n' % (confNum, coordStart, coordEnd)) + + def _setWriter(self, outFile, mol2data, solvdata): + '''writes the S lines. no more limit here.''' + #set conf list S + if self.clusters is not None: # if clusters weren't made + curSets = list(self.setToConfs.keys()) # this order is fine + curSets.sort() + else: + curSets = self.setNameOutOrder + for outSetNum, curSet in enumerate(curSets): # all sets + if self.clusters is not None: # if clusters weren't made + outSetNum += 1 # 1 index since it is fortran + else: + outSetNum = self.setNameRemap[curSet] + curConfs = self.setToConfs[curSet] + totalConfs = len(curConfs) + if 0 == totalConfs: # means there are no children, this shouldn't happen + print("set", curSet, "has no conformations in it.", curConfs) + sys.exit(1) + else: + totalLines = int(math.ceil(totalConfs / self.coSePerLine)) + lastLineLen = totalConfs % int(self.coSePerLine) + if 0 == lastLineLen: + lastLineLen += int(self.coSePerLine) # correct count when 0 + #the first line that says how many more are coming and has data + inInput = 0 # mix-n-match + confEnergy = 999999.999 + outHydro = 3 # mix-n-match + #this makes the confEnergy a mmff internal energy, ignoring hydroxyls + #that have been rotated for now. + confEnergy = mol2data.inputEnergy[curSet] - min(mol2data.inputEnergy) + outHydro = mol2data.inputHydrogens[curSet] + brokenSet = 0 # not broken + if curSet in self.brokenSets: + brokenSet = 1 # broken + outFile.write( + 'S %6d %6d %3d %1d %1d %+11.3f\n' % ( + outSetNum, totalLines, totalConfs, brokenSet, outHydro, + confEnergy)) + fullLineFormat = 'S %6d %6d %1d' + for count in range(int(self.coSePerLine)): + fullLineFormat += ' %6d' + fullLineFormat += '\n' + for lineNum in range(totalLines - 1): # each full line + outData = [outSetNum, lineNum + 1, self.coSePerLine] + for count in range(int(self.coSePerLine)): + outData.append( + curConfs[lineNum * int(self.coSePerLine) + count]) + outFile.write(fullLineFormat % tuple(outData)) + #now write last line separately and carefully + partLineFormat = 'S %6d %6d %1d' + outData = [outSetNum, totalLines, lastLineLen] + for count in range(lastLineLen): + partLineFormat += ' %6d' + outData.append( + curConfs[(totalLines - 1) * int(self.coSePerLine) + count]) + partLineFormat += '\n' + outFile.write(partLineFormat % tuple(outData)) + + def _cloudWriter(self, outFile, mol2data): + '''write the cloud data''' + self.cloudNumSeen = 0 + for clusterId in list(self.clusters.keys()): + outClusId = clusterId + 1 + countSph = len(self.clusterSpheres[clusterId]) + #next line gets around a bug produced when countSph is 0 + maxSphCount = max(self.cloudNumSeen + countSph, self.cloudNumSeen + 1) + outFile.write( + 'D %6d %6d %6d %3d %3d %3d\n' % ( + outClusId, self.setNameFirst[clusterId], + self.setNameLast[clusterId], countSph, self.cloudNumSeen + 1, + maxSphCount)) + for matchAtom, matchXyz in self.clusterSpheres[clusterId]: + self.cloudNumSeen += 1 # advance counter + atomColor = mol2data.colorNum[matchAtom] + outFile.write( + 'D %6d %2d %+9.4f %+9.4f %+9.4f\n' % ( + self.cloudNumSeen, atomColor, + matchXyz[0], matchXyz[1], matchXyz[2])) + + def write( + self, db2gzFileName, verbose=False, timeit=False, + limitset=9999999, writeMode='w'): + '''writes to the new db2 file format. already gzipped. + writeMode allows append instead of write(over)''' + try: # to open the file + outFile = gzip.GzipFile(db2gzFileName, writeMode) + try: + mol2data = self.mol2data + except AttributeError: + print('mol2data missing when output stage encountered.(3)') + sys.exit(1) + try: + solvdata = self.solvdata + except AttributeError: + print('solvdata missing when output stage encountered.(4)') + sys.exit(1) + #check if default colors changed, write if they have. + self._colorWriter(outFile, mol2data) + self._allButSetWriter( + outFile, mol2data, solvdata, + len(list(self.setToConfs.keys())), len(self.clusters)) + self._setWriter(outFile, mol2data, solvdata) + if self.clusters is not None: # if makeclouds was run + self._cloudWriter(outFile, mol2data) # this sucks, have to only + #write clouds for sets that were written. need to rething huge hack + outFile.write('E\n') # write the E line here + outFile.close() + except IOError: + print("error opening output file", db2gzFileName) + sys.exit(1) + if verbose: + print(db2gzFileName + " file written out") + + def writeMol2( + self, mol2fileName, verbose=False, timeit=False, separateClusters=True): + '''writes multi-mol2 files instead of db2 files. useful for debugging + the clustering (or other procedures). each cluster can be written separately + and will be given a prefix of cluster.00001. etc''' + if self.clusters is None: + separateClusters = False # don't write non-existent clusters + if separateClusters: + currentCluster = list(self.clusters.keys())[0] + 1 + currentPrefix = "cluster." + string.zfill(currentCluster, 5) + "." + currentName = currentPrefix + mol2fileName + else: + currentName = mol2fileName + try: # to open the file + outFile = open(currentName, 'w') + try: + mol2data = self.mol2data + except AttributeError: + print('mol2data missing when output stage encountered.(1)') + sys.exit(1) + try: + solvdata = self.solvdata + except AttributeError: + print('solvdata missing when output stage encountered.(2)') + sys.exit(1) + if self.clusters is not None: # if makeclouds was run + outFile.close() # close the open and empty file. stupid stupid hack. + for clusterId in list(self.clusters.keys()): + currentCluster = clusterId + 1 + currentPrefix = "cluster." + string.zfill(currentCluster, 5) + "." + currentName = currentPrefix + mol2fileName + outFile = open(currentName, 'w') + outNums = [] + for confNumber in range( + self.setNameFirst[clusterId], self.setNameLast[clusterId] + 1): + outNum = self.setNameOutOrder[confNumber - 1] # hate 1-indexing + outNums.append(outNum) + self.mol2data.writeMol2File(outFile, outNums) + if verbose: + print(currentName + " file written out") + outFile.close() + else: + self.mol2data.writeMol2File(outFile) # just write them all + outFile.close() + except IOError: + print("error opening output file", currentName) + sys.exit(1) + if verbose: + print(currentName + " file written out") + +# if -1 != string.find(sys.argv[0], "hierarchy.py"): +if -1 != sys.argv[0].find("hierarchy.py"): + #nothing to do if called from commandline + pass diff --git a/ligand/mol2db2/hydrogens.py b/ligand/mol2db2/hydrogens.py new file mode 100755 index 0000000..02acc93 --- /dev/null +++ b/ligand/mol2db2/hydrogens.py @@ -0,0 +1,211 @@ +#!/usr/bin/env python2.7 + +#Ryan G. Coleman +#reads in file containing terminal rotatable hydrogen definitions. +#writes default file + +import string +import sys +import math +import geometry +import combinatorics +from collections import defaultdict + +class Hydrogens(object): + '''holds parameters that determine what a rotatable terminal hydrogen is + rules have the format (1, Atom, bond, Atom, bond, Atom, Degrees) which is: + Atom - Atom name like "C.ar" or "C" which matches all starting with C + bond - "1", "2", "3" or "ar" or "*" which means any + Degrees - "120,240" or "180" or "-" (or something else crazy) "-" means don't + rotate this hydrogen + OR the format (2, bond, bond, Atom, bond, Atom, Degrees) which is: + where the two bonds at front are both applied to the same Atom (the first) + rules are processed in order so you can exclude certain things with - + all things not specified are - (no rotation) + + ''' + rulesDefault = [(1, "C.ar", "1", "S", "1", "H", "180"), + (1, "C.ar", "1", "O", "1", "H", "180"), + (1, "C.1", "1", "S", "1", "H", "-"), + (1, "C.1", "1", "O", "1", "H", "-"), + (1, "C", "1", "S", "1", "H", "120,240"), + (1, "C", "1", "O", "1", "H", "120,240"), + (2, "2", "2", "N", "1", "H", "-"), + (2, "1", "2", "N", "1", "H", "180")] + + def __init__(self, parameterFileName=None): + '''constructs from defaults or reads from file''' + if parameterFileName is not None: + parameterFile = open(parameterFileName, 'r') + self.rules = [] + try: + for line in parameterFile: + tokens = string.split(line) + self.rules.append(( + int(tokens[0]), tokens[1], tokens[2], tokens[3], tokens[4], + tokens[5], tokens[6])) + except StopIteration: + pass # EOF + else: # no parameter file, use defaults + self.rules = self.rulesDefault + + def printParameters(self): + '''prints to standard out the parameters used in a readable format''' + for rule in self.rules: + for part in rule: # don't print out the distance squared term + print(part, ) + print("") # force newline + + def findTerminalHydrogens(self, mol2data): + '''takes a Mol2 class, finds all atoms that meet the rules. called first.''' + atomNums = mol2data.atomNum + atomNums.sort() + mol2data.hydrogenRotAngles = [] + mol2data.hydrogensToRotate = 0 + mol2data.dihedrals = None # set in findDihedrals later + for count, atomNum in enumerate(atomNums): + atomType = mol2data.atomType[count] + result = "-" + for rule in self.rules: + if 1 == rule[0]: # type 1 rule (1, "C.1", "1", "O", "1", "H", "-"), + if -1 != atomType.find(rule[5]): # -1 means not found + if mol2data.bondedTo(atomNum, rule[3], 1, rule[4]): + if mol2data.bondedTo(atomNum, rule[1], 2, rule[2]): + result = rule[6] + break # quit this, don't look at the rest of the rules + elif 2 == rule[0]: # type 2 rule + if -1 != atomType.find(rule[5]): # -1 means not found + if mol2data.bondedTo(atomNum, rule[3], 1, rule[4]): + if mol2data.bondedTo(atomNum, "", 2, rule[2]): + if mol2data.bondedTo(atomNum, "", 2, rule[2]): + result = rule[6] + break # quit this, don't look at the rest of the rules + #print atomNum, atomType, result + mol2data.hydrogenRotAngles.append(result) + if result != "-": + mol2data.hydrogensToRotate += 1 + + def _findDihedrals(self, mol2data): + '''private function called from both rotate and reset that finds the atom + numbers to use for dihedral rotations for any non-"-" hydrogen''' + if mol2data.dihedrals is None: + mol2data.dihedrals = {} # maps atom number to dihedral atom numbers + mol2data.rotAngles = {} + #these are 4 atoms that are all bonded in series. last is hydrogen + for count, angles in enumerate(mol2data.hydrogenRotAngles): + if angles != "-": # don't care about the ones that can't rotate/reset + dihedral = [-1, -1, -1, -1] + hydrogenNum = mol2data.atomNum[count] + dihedral[3] = hydrogenNum + dihedral[2] = mol2data.bondedTo(hydrogenNum, "", 1, None, True)[1] + dihedral[1] = mol2data.bondedTo(hydrogenNum, "", 2, None, True)[1] + dihedral[0] = mol2data.bondedTo(hydrogenNum, "", 3, None, True)[1] + mol2data.dihedrals[hydrogenNum] = dihedral + mol2data.rotAngles[hydrogenNum] = [] + for tempAngle in string.split(angles, ","): + mol2data.rotAngles[hydrogenNum].append(float(tempAngle)) + + def _getCurDihedral(self, atomNum, xyzCount, mol2data): + '''for a given atomNum, get the dihedral in the mol2''' + curDihedralNums = mol2data.dihedrals[atomNum] + curXyz = [] + for curDihedralNum in curDihedralNums: + curXyz.append(mol2data.getXyz(xyzCount, curDihedralNum)) + dihedral1 = geometry.getDihedralUnited(tuple(curXyz)) + return curXyz, dihedral1 + + def resetHydrogens(self, mol2data): + '''runs after findTerminalHydrogens, resets the rotatable hydrogens to 0 + instead of the potentially bad angle they were set at.''' + self._findDihedrals(mol2data) + for xyzCount in range(mol2data.xyzCount): # iterate over conformations + for atomIndex, atomNum in enumerate(mol2data.atomNum): + if atomNum in list(mol2data.dihedrals.keys()) and \ + 180. in mol2data.rotAngles[atomNum]: # only planar get reset + curXyz, dihedral1 = self._getCurDihedral(atomNum, xyzCount, mol2data) + #want to find a new rotation angle, 0, and reset + newTheta = 0 - dihedral1 # radians!! + #print newTheta + newHxyz = geometry.rotateAboutLine( + curXyz[1], curXyz[2], curXyz[3], newTheta) + #print curXyz[3], newHxyz + mol2data.atomXyz[xyzCount][atomIndex] = newHxyz + mol2data.inputHydrogens[xyzCount] = 1 # means reset + #print curDihedralNums, dihedral1, dihedral1*(180./math.pi) + #following code checks to make sure everything worked as expected + #curXyz = [] + #for curDihedralNum in curDihedralNums: + # curXyz.append(mol2data.getXyz(xyzCount, curDihedralNum)) + #dihedral2 = geometry.getDihedralUnited(tuple(curXyz)) + #print dihedral1, dihedral2, math.degrees(dihedral2) + + def rotateHydrogens(self, mol2data): + '''runs after findTerminalHydrogens, rotates the rotatable hydrogens to + the angles specified by the rules. differs in that it copies everything + and makes all combinations of hydrogen rotations''' + self._findDihedrals(mol2data) # first call in case reset was not done + rotatedMol2data = mol2data.copy() # copy this one, put all new in rotated + rotatedMol2data.atomXyz = [] # clear + rotatedMol2data.inputEnergy = [] # clear + rotatedMol2data.inputHydrogens = [] # clear + rotatedMol2data.origXyzCount = mol2data.xyzCount + for xyzCount in range(mol2data.xyzCount): # iterate over orig confs + indexToCoords = [] # list of lists + originals = [] + for atomIndex, atomNum in enumerate(mol2data.atomNum): + if atomNum in list(mol2data.dihedrals.keys()): + thisCoords = [] + curXyz, dihedral1 = self._getCurDihedral(atomNum, xyzCount, mol2data) + thisCoords.append(curXyz[3]) # original saved here + originals.append(curXyz[3]) # also save orig here + for newAngle in mol2data.rotAngles[atomNum]: + #want to find a new rotation angle and move to that + newTheta = math.radians(newAngle) # convert to radians!! + #print dihedral1, newAngle, newTheta, + newHxyz = geometry.rotateAboutLine( + curXyz[1], curXyz[2], curXyz[3], newTheta) + thisCoords.append(newHxyz) # save new ones here + indexToCoords.append(thisCoords) + #have to make all possible combinations + combinations = combinatorics.allCombinations(indexToCoords) + for aCombo in combinations: + if aCombo != originals: # don't need to do anything for the original + #need to copy inputEnergy and atomXyz, then replace atomXyz + atomXyzCopy = mol2data.atomXyz[xyzCount][:] + #replace hydrogen positions here + replaceIndex = 0 + for atomIndex, atomNum in enumerate(mol2data.atomNum): + if atomNum in list(mol2data.dihedrals.keys()): + atomXyzCopy[atomIndex] = aCombo[replaceIndex] # replace coord + replaceIndex += 1 # move this counter forward + rotatedMol2data.atomXyz.append(atomXyzCopy) + rotatedMol2data.inputEnergy.append(mol2data.inputEnergy[xyzCount]) + rotatedMol2data.inputHydrogens.append(2) # means rotate + else: # aCombo is the original set + atomXyzCopy = mol2data.atomXyz[xyzCount][:] + rotatedMol2data.atomXyz.append(atomXyzCopy) + rotatedMol2data.inputEnergy.append(mol2data.inputEnergy[xyzCount]) + rotatedMol2data.inputHydrogens.append( + mol2data.inputHydrogens[xyzCount]) + rotatedMol2data.xyzCount = len(rotatedMol2data.atomXyz) # finally set this + return rotatedMol2data + + def findAngles(self, mol2data): + '''runs after findTerminalHydrogens, find the current angles of the + terminal hydrogens''' + self._findDihedrals(mol2data) # first call in case reset was not done + for xyzCount in range(mol2data.xyzCount): # iterate over orig confs + for atomIndex, atomNum in enumerate(mol2data.atomNum): + if atomNum in list(mol2data.dihedrals.keys()): + curXyz, dihedral1 = self._getCurDihedral(atomNum, xyzCount, mol2data) + print("%+5.10f" % dihedral1) + +# if -1 != string.find(sys.argv[0], "hydrogens.py"): +if -1 != sys.argv[0].find("hydrogens.py"): + #if program is called from the command line, assume user wants a copy of the + #default parameter file written to standard out. this is the only command use. + #usually this will be imported and run from somewhere else. + if len(sys.argv) > 1: + Hydrogens(sys.argv[1]).printParameters() + else: + Hydrogens().printParameters() diff --git a/ligand/mol2db2/match_and_convert_mol2.py b/ligand/mol2db2/match_and_convert_mol2.py new file mode 100755 index 0000000..d0b9f19 --- /dev/null +++ b/ligand/mol2db2/match_and_convert_mol2.py @@ -0,0 +1,365 @@ +#!/usr/bin/env python3.6 +import sys, os +from rdkit import Chem + +### Define const +babel_bin = os.environ["OBABELBASE"] + "/obabel" +dockbase = os.environ["DOCKBASE"] +try: + matchversion = os.environ['MATCHVERSION'] +except: + matchversion = 'Highest' + +python2_bin = "/usr/bin/python2" +EPS = 0.05 +EPS_modify = 1e-4 + +infile = sys.argv[1] +outprefix = sys.argv[2] + + +def load_coords(ref, conf, index): + """ Load conformer coordinates""" + coords = list() + conf = ref.GetConformer(id=conf) + for i in index: + c = conf.GetAtomPosition(i) + x, y, z = c.x, c.y, c.z + coords.append((x, y, z)) + print("Return coords:", coords) + return coords + + +def dist_2(c1, c2): + """ Calculate the distance**2 between two points""" + return (c1[0] - c2[0]) ** 2 + (c1[1] - c2[1]) ** 2 + (c1[2] - c2[2]) ** 2 + + +def is_same(ref, i1, i2, index, eps=EPS, eps_modify=EPS_modify): + """ A function that checks whether two conformers share the same coordinates for a part of the whole molecule. + Here, two cutoffs are applied: + EPS: The cutoff to define two coordinate are different. + EPS_modify: two coordinate distance > EPS_modify are also regarded as same. This script will assign the exact same coordinates to the second conformer to the first conformer. Thus, two conformer would share the same coordinates. + """ + same_index = list() + not_same = list() + eps_2 = eps ** 2 + eps_modify_2 = eps_modify ** 2 + + conf1 = ref.GetConformer(id=i1) + conf2 = ref.GetConformer(id=i2) + + for i in index: + tmp = conf1.GetAtomPosition(i) + c1 = tmp.x, tmp.y, tmp.z + + tmp = conf2.GetAtomPosition(i) + c2 = tmp.x, tmp.y, tmp.z + + if dist_2(c1, c2) > eps_2: + not_same.append(i) + elif eps_modify_2 < dist_2(c1, c2) <= eps_2: + same_index.append( + i + ) # see them as same coordinate. But new conformation should be assign IDENTICAL coordinate. + conf2.SetAtomPosition(i, conf1.GetAtomPosition(i)) # Assign + else: + same_index.append(i) + + # print("Same_index: %s" % same_index) + if len(same_index) <= 1: + return False, same_index + else: + return True, same_index + + +def f_AlignMolConformers(ref, atomIds, maxIters, reflect, RMSlist=None): + """ Align conformers """ + index = atomIds + rmsd = list() + + if ( + len(ref.GetConformers()) == 1 + ): # if Only one conformation, then no alignation is needed. + return [[0]] + else: + AlignMolConformers( + ref, atomIds=atomIds, maxIters=500, reflect=True, RMSlist=rmsd + ) + + all_index = list() + current = list() + i = 0 + + start = True + while True: + if i >= len(rmsd): + break + if start: + current.append(0) + start = False + + else: + same_flag, same_index = is_same(ref, i - 1, i, index=index, eps=EPS) + if same_flag: + current.append(i) + index = same_index + else: + all_index.append(current) + current = list() + current.append(i) + index = atomIds + + i += 1 + + all_index.append(current) + + return all_index + +def f_AlignMolConformers_working2(ref, atomIds, maxIters, reflect, RMSlist=None): + """ Align conformers """ + index = atomIds + rmsd = list() + + if ( + len(ref.GetConformers()) == 1 + ): # if Only one conformation, then no alignation is needed. + return [[0]] + else: + AlignMolConformers( + ref, atomIds=atomIds, maxIters=500, reflect=True, RMSlist=rmsd + ) + + all_families = list() + all_indexes = list() + + # Go through all conformations + for i in range(len(rmsd) + 1): + flag_match = False + + # Go match all exist families ( But match most one ) + for current_family, current_index,tmpi in zip(all_families, all_indexes,range(len(all_families)) ): + fam_ref = current_family[0] + fam_index = current_index + same_flag, same_index = is_same(ref, fam_ref, i, index=fam_index) + if same_flag: # Matched + flag_match = True + if len(same_index) == len(index): # Matched and no change + all_families[tmpi].append(i) + pass + else: # Match and change + all_indexes[tmpi] = same_index[:] + all_families[tmpi].append(i) + break + if not flag_match: # Do not match, Create new family + all_families.append( + [i,] + ) + all_indexes.append(atomIds[:]) + else: # Do nothing + pass + + return all_families + +def f_AlignMolConformers_working3(ref, atomIds, maxIters, reflect, RMSlist=None): + """ Align conformers """ + index = atomIds + rmsd = list() + + if ( + len(ref.GetConformers()) == 1 + ): # if Only one conformation, then no alignation is needed. + return [[0]] + else: + AlignMolConformers( + ref, atomIds=atomIds, maxIters=500, reflect=True, RMSlist=rmsd + ) + + all_families = list() + all_indexes = list() + + # Go through all conformations + for i in range(len(rmsd) + 1): + flag_match = False + + # Go match all exist families ( But match most one ) + for current_family, current_index,tmpi in zip(all_families, all_indexes,range(len(all_families)) ): + fam_ref = current_family[0] + fam_index = current_index + same_flag, same_index = is_same(ref, fam_ref, i, index=fam_index) + if same_flag and len(same_index) == len(index): + flag_match = True + all_families[tmpi].append(i) + break + # if same_flag: # Matched + # flag_match = True + # if len(same_index) == len(index): # Matched and no change + # all_families[tmpi].append(i) + # pass + # else: # Match and change + # flag_match = False + # # all_indexes[tmpi] = same_index[:] + # # all_families[tmpi].append(i) + # break + if not flag_match: # Do not match, Create new family + all_families.append( + [i,] + ) + all_indexes.append(atomIds[:]) + else: # Do nothing + pass + + return all_families + +# Core function +def f_AlignMolConformers_bak(ref, atomIds, maxIters, reflect, RMSlist=None): + """ This function would not be used.""" + rmsd = list() + + if len(ref.GetConformers()) == 1: + return [[0]] + else: + AlignMolConformers( + ref, atomIds=atomIds, maxIters=500, reflect=True, RMSlist=rmsd + ) + # print("RMSD:") + # for tmp in rmsd: + # print(tmp) + + all_index = list() + current = list() + i = 0 + current_rmsd = 0 + start = True + while True: + if i >= len(rmsd): + break + if start: + current_rmsd = 0 + current.append(0) + start = False + elif abs(current_rmsd - rmsd[i]) <= EPS: + current.append(i) + else: + all_index.append(current) + current = list() + current.append(i) + current_rmsd = rmsd[i] + i += 1 + all_index.append(current) + + return all_index + +# Read mol2 molecule once per time +def next_mol2_lines(infile): + """Method to return one mol2 block once.""" + lines = list() + + for line in open(infile): + if "@MOLECULE" in line: + if len(lines) == 0: + lines.append(line) + else: + yield lines + lines = list() + lines.append(line) + else: + lines.append(line) + + yield lines + +# load all block +all_blocks = [x for x in next_mol2_lines(infile)] + +# Staffs on first molecule +mol = Chem.MolFromMol2Block("".join(all_blocks[0]), removeHs=False) + +# Get atom name to serial number mapping +if True: + index_of_name = dict() + for atom in mol.GetAtoms(): + name = atom.GetPropsAsDict()["_TriposAtomName"] + sn = atom.GetIdx() + index_of_name[name] = sn + +# Get break down fragments +if True: + # patt = Chem.MolFromSmarts('[!$([NH]!@C(=O))&!D1&!$(*#*)]-&!@[!$([NH]!@C(=O))&!D1&!$(*#*)]') + patt = Chem.MolFromSmarts("[!$(*#*)&!D1]-&!@[!$(*#*)&!D1]") + + # find the rotatable bonds + bonds = mol.GetSubstructMatches(patt) + + # create an editable molecule, break the bonds, and add dummies: + em = Chem.EditableMol(mol) + nAts = mol.GetNumAtoms() + for a, b in bonds: + em.RemoveBond(a, b) + em.AddAtom(Chem.Atom(0)) + em.AddBond(a, nAts, Chem.BondType.SINGLE) + em.AddAtom(Chem.Atom(0)) + em.AddBond(b, nAts + 1, Chem.BondType.SINGLE) + nAts += 2 + p = em.GetMol() + Chem.SanitizeMol(p) + + frags = [x for x in Chem.GetMolFrags(p, asMols=True)] + fragsindex = [] + for frag in frags: + tmp = list() + # print(len(frag.GetAtoms())) + if len(frag.GetAtoms()) < 2: + continue + for atom in frag.GetAtoms(): + if atom.GetAtomicNum() > 1: + name = atom.GetPropsAsDict()["_TriposAtomName"] + tmp.append(index_of_name[name]) + if len(tmp) >= 2: + fragsindex.append(tmp) + print("fragsindex: %s" % fragsindex) + +# Alignment molecules and output. # Second version. +if True: + if matchversion == 'Highest': + match_func = f_AlignMolConformers_working3 + else: + pass + # match_func = f_AlignMolConformers_working + matchversion + + # Load reference molecule + ref = Chem.MolFromMol2Block("".join(all_blocks[0]), removeHs=False) + + # load all other molecules + all_mols = [ + Chem.MolFromMol2Block("".join(x), removeHs=False) for x in all_blocks[1:] + ] + + # add all molecules to ref molecule's conformations + for mol in all_mols: + mol_conf = mol.GetConformer() + ref.AddConformer(mol_conf, assignId=True) + + # Load pre-module + from rdkit.Chem.rdMolAlign import AlignMolConformers + + # Aligning every frag + i = 0 + os.system("mkdir sdf mol2 db2") + for index in fragsindex: + + all_index = match_func(ref, atomIds=index, maxIters=500, reflect=True) + print("Index:", index) + print("All_index:", all_index) + + for conf_index in all_index: + writer = Chem.SDWriter(f"sdf/output.{i}.sdf") + for conf in conf_index: + writer.write(ref, confId=conf) + writer.close() + os.system( + f"{babel_bin} -isdf sdf/output.{i}.sdf -omol2 -O mol2/output.{i}.mol2" + ) + os.system( + f"{python2_bin} {dockbase}/ligand/mol2db2/mol2db2.py -m mol2/output.{i}.mol2 -s output.solv -o db2/output.{i}.db2.gz" + ) + i += 1 diff --git a/ligand/mol2db2/mimic_omega_mol2.py b/ligand/mol2db2/mimic_omega_mol2.py new file mode 100755 index 0000000..2e42c59 --- /dev/null +++ b/ligand/mol2db2/mimic_omega_mol2.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +import sys,os + +infile = sys.argv[1] +outfile = sys.argv[2] + +def next_mol2_lines(infile): + '''Method to return one mol2 block once.''' + lines = list() + + for line in open(infile): + if '@MOLECULE' in line : + if len(lines) == 0: + lines.append(line) + else: + yield lines + lines = list() + lines.append(line) + else: + lines.append(line) + + yield lines + +all_blocks = [x for x in next_mol2_lines(infile)] + + +with open(outfile,'w') as ofp: + for block in all_blocks: + line2 = block[2].strip() + newline2 = f"{line2} 0 0 0\n" + + block.pop(2) + block.insert(2,newline2) + block.insert(5,'\n') + block.insert(6,'mmff94s = 1515.15\n') + + if block[-1].strip() == '': + block.pop() + + for line in block: + ofp.write(line) + + + diff --git a/ligand/mol2db2/mol2.py b/ligand/mol2db2/mol2.py new file mode 100755 index 0000000..4bd2a90 --- /dev/null +++ b/ligand/mol2db2/mol2.py @@ -0,0 +1,724 @@ +#!/usr/bin/env python2.7 + +#Ryan G. Coleman +#mol2 reader/writer + +import string +import sys +import sybyl2dock +import atom_color_table +import collections +import gzip +import operator +import floydwarshall # all pairs shortest paths routine +import shortestpaths # from one point to all others +import geometry # for distance function +import unionfind2 +import divisive_clustering + +class Mol2(object): + '''reads mol2 files into a bunch of lists (for speed instead of objects). + reads multi-mol2 files containing the same molecule but in diff confs, + only xyzs are read in separately and no checking is done to ensure the + molecule is the same. (garbage in garbage out).''' + + def blankNew(self): + '''create and blank everything''' + self.name = "fake" # at some point these need to be capped at 9 characters + self.protName = "fake" # yeah this too, 9 characters only + self.atomNum = [] + self.atomName = [] # all this stuff might need to get optimized + self.atomXyz = [] # kept for every conformation + self.inputEnergy = [] # kept for every conformation + self.inputHydrogens = [] # for every conf. 0 means input. 1 means reset. + #2 means rotated. 3 means mix-n-match so who knows + self.atomType = [] + self.atomCharge = [] #read in but overriden by solv data + self.atomBonds = [] + self.bondNum = [] + self.bondStart = [] + self.bondEnd = [] + self.bondType = [] + self.xyzCount = -1 + self.origXyzCount = -1 + self.smiles = "fake" + self.longname = "fake" + self.bondDists = None + self.rmsdTable = None + + def __init__(self): + '''makes a totally fake version, for copying into''' + self.blankNew() + + def __init__(self, mol2fileName=None, nameFileName=None, mol2text=None): + '''reads in the file''' + self.blankNew() + #read from files/text + if mol2text is not None: + for line in mol2text: + self.processLine(line) + self.xyzCount += 1 + #read the name.txt file which is one line and is made by the toolchain + if nameFileName is not None: + try: + #name.txt is grepped out from the dict file which has a random format + namefile = open(nameFileName, 'r') + firstLine = namefile.readlines()[0] + tokens = firstLine.split() + maxsplit = 0 + if 9 == len(tokens[2]) and "P" == tokens[2][0]: + maxsplit = 6 #decoys name.txt file + elif 12 == len(tokens[0]) and "T"==tokens[0][0] and 9 != len(tokens[1]): + maxsplit = 2 #dbgen file + elif tokens[0] == 'name.txt': #new dbstart + maxsplit = 6 + elif tokens[0] == 'name.cxcalc.txt': #new dbstart cxcalc version + maxsplit = 8 + else: + maxsplit = 4 #ligands name.txt file + #do the split again, with maxsplit + tokens = firstLine.split(None, maxsplit) #None forces use of whitespace + if tokens[0] == 'name.txt': #new dbstart + self.name = tokens[2] + self.protName = "none" + self.smiles = string.strip(tokens[3]) + self.longname = string.strip(tokens[5]) + elif tokens[0] == 'name.cxcalc.txt': #new dbstart + self.name = tokens[2] + self.protName = tokens[3] + self.smiles = string.strip(tokens[4]) + self.longname = string.strip(tokens[7]) + elif 7 == len(tokens): #decoys name.txt file + self.name = tokens[1] + self.protName = tokens[2] + self.smiles = string.strip(tokens[3]) + self.longname = string.strip(tokens[6]) + elif 5 == len(tokens): #ligands name.txt file + self.name = tokens[1] + self.protName = "none" + self.smiles = string.strip(tokens[2]) + self.longname = string.strip(tokens[4]) + elif 3 == len(tokens): #dbgen name.txt file + self.name = tokens[0] + self.protName = "none" + self.smiles = string.strip(tokens[1]) + self.longname = string.strip(tokens[2]) + #print self.name, self.protName, self.smiles, self.longname #debug + except StopIteration: #end of file + namefile.close() + if mol2fileName is not None: + if mol2fileName.endswith(".gz"): + mol2file = gzip.GzipFile(mol2fileName, 'r') + else: + mol2file = open(mol2fileName, 'r') + self.phase = 0 + try: + for line in mol2file: + self.processLine(line) + except StopIteration: + mol2file.close() + finally: + self.xyzCount += 1 #really this needs to be done + self.origXyzCount = self.xyzCount + while len(self.inputEnergy) < self.xyzCount: + self.inputEnergy.append(9999.99) + while len(self.inputHydrogens) < self.xyzCount: + self.inputHydrogens.append(0) + #print self.atomName, self.atomType, self.atomCharge + #print self.bondStart, self.bondEnd, self.bondType + #print self.xyzCount + + def processLine(self, line): + '''reads a single line, processes it''' + if line[:17] == "@MOLECULE": + self.phase = 1 #header phase + elif line[:13] == "@ATOM": + self.phase = 2 #atoms phase + self.xyzCount += 1 #first one is numbered 0 + self.atomXyz.append([]) #list of lists + elif line[:13] == "@BOND": + self.phase = 3 #bonds phase + elif line[:9] == "@": + self.phase = 0 #fake phase that reads nothing... + elif line[0] == '#': #comment line, ignore + pass + elif len(line) == 1: #comment line, ignore + pass + else: + if 1 == self.phase: + if self.name == "fake": + self.name = string.strip(line) + tokens = string.split(string.strip(line)) + if len(line) > 1 and tokens[0][0:7] == "mmff94s": + self.inputEnergy.append(float(tokens[2])) + self.inputHydrogens.append(0) + self.phase = 0 #rest of header ignored + elif 2 == self.phase: + tokens = string.split(line) + if 0 == self.xyzCount: #only read in some stuff for first mol2 + self.atomNum.append(int(tokens[0])) + self.atomName.append(tokens[1]) + self.atomType.append(tokens[5]) + self.atomCharge.append(float(tokens[-1])) #last column is charge + self.atomBonds.append([]) #start new list + self.atomXyz[self.xyzCount].append( \ + (float(tokens[2]), float(tokens[3]), float(tokens[4]))) + elif 3 == self.phase and 0 == self.xyzCount: + #bonds only read in for first molecule, assumed the same after + tokens = string.split(line) + self.bondNum.append(int(tokens[0])) + self.bondStart.append(int(tokens[1])) + self.bondEnd.append(int(tokens[2])) + self.bondType.append(tokens[3]) + self.atomBonds[int(tokens[1]) - 1].append( \ + (int(tokens[2]) - 1, tokens[3])) + self.atomBonds[int(tokens[2]) - 1].append( \ + (int(tokens[1]) - 1, tokens[3])) + + def copy(self): + '''returns new mol2 object''' + newM = Mol2() + newM.name = self.name + newM.protName = self.protName + newM.atomNum = self.atomNum + newM.atomName = self.atomName + newM.atomXyz = self.atomXyz[:] #only this + newM.inputEnergy = self.inputEnergy[:] #and this + newM.xyzCount = self.xyzCount #and this + newM.origXyzCount = self.origXyzCount #and this + newM.inputHydrogens = self.inputHydrogens[:] #and this are to be messed with + newM.atomType = self.atomType + newM.atomCharge = self.atomCharge + newM.atomBonds = self.atomBonds + newM.bondNum = self.bondNum + newM.bondStart = self.bondStart + newM.bondEnd = self.bondEnd + newM.bondType = self.bondType + newM.smiles = self.smiles + newM.longname = self.longname + try: + newM.colorConverter = self.colorConverter + newM.dockNum = self.dockNum + newM.colorNum = self.colorNum + except AttributeError: + pass #this is fine + newM.bondDists = None #don't copy this, regenerate + return newM #new Mol2 object that can be manipulated + + def initFromDb2Lines(self, mlines): + '''reads data from lines in the db2 file. start with a blank, init obj. + mlines is lines starting with M''' + tokens = [] + for mline in mlines[0:4]: #1st 4 mlines only + tokens.append(string.split(mline)) + self.name = tokens[0][1] #2d array, 0th line, 1st token + self.protName = tokens[0][2] + self.smiles = tokens[2][1] + self.longname = tokens[3][1] + self.atomNum = [] + self.atomName = [] #all this stuff might need to get optimized if lists suck + self.atomXyz = [] #kept for every conformation + self.inputEnergy = [] #kept for every conformation + self.inputHydrogens = [] #for every conf. 0 means input. 1 means reset. + #2 means rotated. 3 means mix-n-match so who knows + self.atomType = [] + self.atomCharge = [] #read in but overriden by solv data + self.atomBonds = [] + self.bondNum = [] + self.bondStart = [] + self.bondEnd = [] + self.bondType = [] + self.xyzCount = -1 + self.origXyzCount = -1 + + def keepConfsOnly(self, first, last): + ''' delete input confs outside of the first, last range''' + if last > self.xyzCount: #can't copy beyond end + last = self.xyzCount + self.xyzCount = last - first + self.atomXyz = self.atomXyz[first:last] + self.inputEnergy = self.inputEnergy[first:last] + self.inputHydrogens = self.inputHydrogens[first:last] + + def bondsBetween(self, atomNum, atomOther): + '''returns number of bonds between any 2 atoms (see bondsBetweenActual) + atomNum and otherNum is the mol2 numbering (1-based). ''' + actualNum = atomNum - 1 #assume 1-based to 0-based conversion + actualOther = atomOther - 1 #assume 1-based to 0-based conversion + return self.bondedToActual(actualNum, atomOther) + + def bondsBetweenActual(self, actualNum, actualOther): + '''returns the number of bonds between the two atom numbers specified. + directly bonded => 1 + one atom in between => 2 + two atoms => 3, etc.''' + if self.bondDists is None: #generate them + self.calcBondDists() + row = self.bondDistsOrderKeys[actualNum] + col = self.bondDistsOrderKeys[actualOther] + return self.bondDists[row][col] + + def distFromAtoms(self, atoms): + '''using a particular set of atoms (usually rigid component) as 0, + find the bond distance to all other atoms''' + neighbors = {} + for atomNum in xrange(len(self.atomNum)): + neighbors[atomNum] = [] + for otherBond in self.atomBonds[atomNum]: + neighbors[atomNum].append((otherBond[0], 1)) + dists = shortestpaths.shortestPaths(neighbors.keys(), neighbors, 0, atoms) + return dists + + def calcBondDists(self): + '''uses floyd warshall all pairs shortest paths algorithm to generate + the # of bonds between all pairs of atoms. cache results and don't redo''' + neighbors = {} + for atomNum in xrange(len(self.atomNum)): + neighbors[atomNum] = [] + for otherBond in self.atomBonds[atomNum]: + neighbors[atomNum].append((otherBond[0], 1)) + distances, orderKeys = floydwarshall.floydWarshall(neighbors) + self.bondDists = distances + self.bondDistsOrderKeys = orderKeys + #no return, we're done here + + def bondedTo(self, atomNum, firstName, bondsAway=1, lastBond=None, \ + returnAtom=False): + '''returns true if atomNum has a bond to any other atom with a name starting + with firstName. atomNum is the mol2 numbering (1-based). bondsAway + controls how far the search proceeds before checking. must be exact.''' + actualNum = atomNum - 1 #assume 1-based to 0-based conversion + return self.bondedToActual(actualNum, firstName, bondsAway, lastBond, \ + returnAtom) + + def bondedToAll(self, atomNum, firstName, bondsAway=1, lastBond=None): + '''returns all atoms bonded, for other functions to process. calls + bondedToActualAll, see for more documentation''' + actualNum = atomNum - 1 #assume 1-based to 0-based conversion + return self.bondedToActualAll(actualNum, firstName, bondsAway, lastBond) + + def bondedToActual(self, actualNum, firstName, bondsAway=1, lastBond=None, \ + returnAtom=False): + '''returns true if actualNum has a bond to any other atom with a name + starting with firstName. actualNum is the 0-based numbering. bondsAway + controls how far the search proceeds before checking. must be exact. + lastBond controls the type of the lastBond found (to the one just before + the ones being checked) useful for finding only certain types of bonds. + if returnAtom is True, it returns the atom number of the atom that matched. + ''' + bondedAwayNums = self.bondedToActualAll(actualNum, firstName, bondsAway, \ + lastBond) + for anAtomNum in bondedAwayNums[bondsAway]: + if -1 != string.find(self.atomType[anAtomNum], firstName): + if not returnAtom: + return True #found a matching atom at the other end of a bond + else: #returnAtom is True + return True, self.atomNum[anAtomNum] + if not returnAtom: + return False #no bonded atoms with that first letter + else: #returnAtom is True + return False, False + + def bondedToActualAll(self, actualNum, firstName, bondsAway=1, \ + lastBond=None): + '''returns all atoms a certain number of bonds away, obeying lastBond as + bondedToActual documents''' + bondedAwayNums = collections.defaultdict(list) #defaults to empty list + bondedAwayNums[0].append(actualNum) + checked = 0 + while checked < bondsAway: #check up to bondsaway bonds away from start + for startNum in bondedAwayNums[checked]: #for each atom in cur level + for otherBond in self.atomBonds[startNum]: + #check to make sure otherBond[0] not in any previous list + okayToAdd = True + for checkList in bondedAwayNums.itervalues(): + if otherBond[0] in checkList: + okayToAdd = False + if okayToAdd and (lastBond is not None) and (checked +1 == bondsAway): + if lastBond != "*": #same as none, basically allow anything + if -1 == otherBond[1].find(lastBond): #-1 means no match + okayToAdd = False #which means this bond isn't correct + if okayToAdd: + bondedAwayNums[checked + 1].append(otherBond[0]) + checked += 1 #move 1 more away + return bondedAwayNums + + def isAtomBondedOtherThan(self, atomNum, count, otherThan): + '''for each atom, if it is bonded to any of [count] atoms that are not of + type [otherThan], return true''' + bondedAwayNums = self.bondedToAll(atomNum, "")[1] #only want 1 bond away + otherThanCount = 0 + for atomNumActual in bondedAwayNums: + if self.atomType[atomNumActual] not in otherThan: + otherThanCount += 1 + if otherThanCount not in count: + return True + else: + return False + + def convertDockTypes(self, parameterFileName=None): + '''adds self.dockNum to each atom record based on sybyl2dock''' + dockConverter = sybyl2dock.AtomConverter(parameterFileName) + self.dockNum = [] #new data on each dock atom number + for atomNumber in self.atomNum: + self.dockNum.append(dockConverter.convertMol2atomNum(self, atomNumber)) + + def addColors(self, parameterFileName=None): + '''adds self.colorNum to each atom record based on rules''' + colorConverter = atom_color_table.ColorTable(parameterFileName) + self.colorConverter = colorConverter #save for later use in output + self.colorNum = [] #map from atom to colors + for atomNumber in self.atomNum: + self.colorNum.append(colorConverter.convertMol2color(self, atomNumber)) + + def countConfs(self): + '''returns the number of conformations in the file''' + return len(self.atomXyz) + + def getXyz(self, xyzCount, atomNum): + '''returns the xyz for an atom number and an xyz count (conformation)''' + atomIndex = self.atomNum.index(atomNum) + return self.atomXyz[xyzCount][atomIndex] + + def getXyzManyConfs(self, xyzCounts, atomIndex): + '''returns a lits of xyzs for many confs of one atom''' + xyzConfs = [] + for xyzCount in xyzCounts: + xyzConfs.append(self.atomXyz[xyzCount][atomIndex]) + return xyzConfs + + def getRMSD(self, xyzOne, xyzTwo): + '''calculates just the rmsd of the two conformations''' + sumSquared = 0.0 + for atomIndex in xrange(len(self.atomXyz[xyzOne])): + sumSquared += geometry.distL2Squared3( \ + self.atomXyz[xyzOne][atomIndex], + self.atomXyz[xyzTwo][atomIndex]) + rmsd = (sumSquared / len(self.atomXyz[xyzOne])) ** 0.5 + return rmsd + + def getRMSDtable(self, forceRedo=False): + '''for each conformation (xyzcount) to all others, find the rmsd. return + as dictionary of dictionaries of rmsds''' + if self.rmsdTable is None or forceRedo: + self.rmsdTable = {} + self.rmsdList = [] + for xyzCount in xrange(len(self.atomXyz)): + self.rmsdTable[xyzCount] = {} #set to empty dicts first + for xyzCount in xrange(len(self.atomXyz)): + for otherXyz in xrange(xyzCount + 1, len(self.atomXyz)): #just half + rmsd = self.getRMSD(xyzCount, otherXyz) + self.rmsdTable[xyzCount][otherXyz] = rmsd + self.rmsdTable[otherXyz][xyzCount] = rmsd + self.rmsdList.append((rmsd, otherXyz, xyzCount)) + self.rmsdList.sort(key=operator.itemgetter(0)) + return self.rmsdTable + + def getRMSDlist(self): + '''gets the rmsds between all pairs as a list of rmsd, conf, conf tuples''' + self.getRMSDtable() + return self.rmsdList + + def getRMSDclusters(self, rmsdCutoff=None, numClusters=1): + '''uses the rmsdlist to make clusters of conformations based on rmsd. + goes until either the rmsdCutoff is reached or numClusters is reached. + using the numClusters will make this run very slowly. + uses single linkage to make a new cluster.''' + self.getRMSDtable() #make the table, or ensure it is made + #self.rmsdList is a tuple of (rmsd, conf, conf) + clusters = unionfind2.unionFind() + for xyzCount in xrange(len(self.atomXyz)): + clusters.find(xyzCount) # initialize all these to singleton clusters + if rmsdCutoff is None: + rmsdCutoff = self.rmsdList[-1][0] + 1.0 #make it never happen + for rmsdTuple in self.rmsdList: + if rmsdTuple[0] > rmsdCutoff: + break #quit combining things! + clusters.union(rmsdTuple[1], rmsdTuple[2]) + return clusters.toLists() + + def getRMSDclustersAll(self, rmsdCutoff=None, numClusters=1): + '''uses the rmsdlist to make clusters of conformations based on rmsd. + goes until either the rmsdCutoff is reached or numClusters is reached. + using the numClusters will make this run very slowly. uses ALL linkage not + single linkage.''' + self.getRMSDtable() #make the table, or ensure it is made + #self.rmsdList is a tuple of (rmsd, conf, conf) + #self.rmsdTable is a dict of [conf][conf] -> rmsd + clusters = unionfind2.unionFind() + for xyzCount in xrange(len(self.atomXyz)): + clusters.find(xyzCount) #init + if rmsdCutoff is None: + rmsdCutoff = self.rmsdList[-1][0] + 1.0 #make it never happen + for rmsdTuple in self.rmsdList: + if rmsdTuple[0] > rmsdCutoff: + break #quit combining things! + #have to do all linkage not just single.. oh my + if clusters.different(rmsdTuple[1], rmsdTuple[2]): #otherwise already join + combine = True + clusterOne = clusters.getList(rmsdTuple[1]) + clusterTwo = clusters.getList(rmsdTuple[2]) + #print clusterOne, clusterTwo, + for clusterOneRep in clusterOne: + for clusterTwoRep in clusterTwo: + thisRMSD = self.rmsdTable[clusterOneRep][clusterTwoRep] + #print thisRMSD, + if thisRMSD > rmsdTuple[0]: #means we can't combine yet + combine = False + break + if not combine: + break + #print combine + if combine: + clusters.union(rmsdTuple[1], rmsdTuple[2]) + return clusters.toLists() + + def divisiveClustering(self): + '''takes all conformations. bisects them along the longest dimension + (in N*atoms*3 space). Repeat on the biggest remaining cluster until there + are numClusters left, return the clusters as lists.''' + numClusters = min(20, int(self.origXyzCount/3.)) + #print numClusters #debugging, find out target # of clusters + clusters = divisive_clustering.divisiveClustering(self.atomXyz, numClusters) + return clusters + + def addSolvDataPartialCharges(self, partialCharges): + '''adds partial charge data from list, must be in correct order''' + for count in xrange(len(self.atomCharge)): + self.atomCharge[count] = partialCharges[count] + #that's it. no return. + + def writeMol2File(self, outFile, whichXyz=None): + '''writes the data to an already open file. don't close it.''' + if whichXyz is None: + whichXyz = range(self.xyzCount) + for oneXyz in whichXyz: + outFile.write("@MOLECULE\n") + if self.protName == "fake": #don't write fake + outFile.write(self.name + "\n") + else: + outFile.write(self.name + " " + self.protName + "\n") + outFile.write("%5d %5d %5d %5d %5d\n" % (len(self.atomNum), \ + len(self.bondNum), 0, 0, 0)) + outFile.write("SMALL\nUSER_CHARGES\n\n") + outFile.write("mmff94s_NoEstat = %5.2f\n" % self.inputEnergy[oneXyz]) + outFile.write("@ATOM\n") + for oneAtom in xrange(len(self.atomNum)): + outFile.write( \ + "%7d %6s % 8.4f % 8.4f % 8.4f %5s 1 <0> % 8.4f\n" % \ + (self.atomNum[oneAtom], string.ljust(self.atomName[oneAtom], 6), \ + self.atomXyz[oneXyz][oneAtom][0], \ + self.atomXyz[oneXyz][oneAtom][1], \ + self.atomXyz[oneXyz][oneAtom][2], \ + string.ljust(self.atomType[oneAtom], 5), \ + self.atomCharge[oneAtom])) + outFile.write("@BOND\n") + for oneBond in xrange(len(self.bondNum)): + outFile.write( \ + "%6d%5d%5d %2s\n" % \ + (self.bondNum[oneBond], self.bondStart[oneBond], \ + self.bondEnd[oneBond], string.ljust(self.bondType[oneBond], 2))) + + def writeMol2(self, outName, whichXyz=None): + '''writes the data to a mol2 file.''' + outFile = open(outName, 'w') + self.writeMol2File(outFile, whichXyz) + outFile.close() + + def deleteBond (self, bondInd): + '''deletes the bond at index bondInd and adjust the rest of the indexing''' + nbonds = len(self.bondNum) + bondi = bondInd+1; + while (bondi < nbonds): + self.bondNum[bondi] = self.bondNum[bondi]-1 + bondi = bondi+1 + + del self.bondNum[bondInd] + del self.bondStart[bondInd] + del self.bondEnd[bondInd] + del self.bondType[bondInd] + + def deleteAtom (self, atomInd): + '''deletes atom number atomInd from all tables and adjust the rest of the + indexing and bond numbers accordingly''' + + #removes atomnum and adjusts numbering + #print atomInd + natoms = len(self.atomNum) + atomn = self.atomNum[atomInd] + atomi = atomInd+1; + while (atomi < natoms): + self.atomNum[atomi] = self.atomNum[atomi]-1 + atomi = atomi+1 + + #removes atom from atoms tables + del self.atomNum[atomInd] + del self.atomType[atomInd] + del self.atomBonds[atomInd] + del self.atomName[atomInd] + del self.atomCharge[atomInd] + del self.dockNum[atomInd] + del self.colorNum[atomInd] + for x in self.atomXyz: + del x[atomInd] + + #delete any bond containing the involved atom + nbonds = len(self.bondNum) + bondi = 0 + while (bondi < nbonds): + if (self.bondStart[bondi]==atomn or self.bondEnd[bondi]==atomn): + self.deleteBond(bondi) + bondi = bondi-1 + nbonds = len(self.bondNum) + bondi = bondi+1 + + #adjust bonds atom numbering + nbonds = len(self.bondNum) + bondi = 0 + while (bondi < nbonds): + if (self.bondStart[bondi] >= atomn): + self.bondStart[bondi] = self.bondStart[bondi] - 1 + if (self.bondEnd[bondi] >= atomn): + self.bondEnd[bondi] = self.bondEnd[bondi] - 1 + bondi = bondi+1 + + natoms = len(self.atomNum) + atomi = 0 + while (atomi < natoms): + nbonds = len(self.atomBonds[atomi]) + bondi = 0 + while (bondi < nbonds): + if (self.atomBonds[atomi][bondi][0] >= atomInd): + tmpBond = (self.atomBonds[atomi][bondi][0]-1, self.atomBonds[atomi][bondi][1]) + self.atomBonds[atomi][bondi]=tmpBond + bondi = bondi+1 + atomi = atomi+1 + + def recolorCovalentAttachment (self, covAtomType): + '''assumes the covalent dummy atom is already removed, and the covalent attachmet + atom type is already set to 'cov' will color it "8" and it's bonded neighbours: + 9, 10, 11''' + + #find the covalent attachment atom + for atom in self.atomType: + if (atom == "cov"): + cov_index = self.atomType.index(atom) + + color = 8 #well known covalent color :) + self.colorNum[cov_index] = color + for bond in self.atomBonds[cov_index]: + color = color + 1 + neighbor = bond[0] + self.colorNum[neighbor] = color + #reset the original covalent atom type returned by removeCovalentDummyAtom + self.atomType[cov_index] = covAtomType + + def removeCovalentDummyAtom (self): + '''if this is a covalent ligand marked by a SiH3 dummy atom, removes the Si + emoves the 3H it is connected to, their bonds, and colors the covalent + attachment atom approprietly''' + + indicesList = [] + + #find out what the Si atom index is and mark it for deletion + for atom in self.atomType: + if (atom == "Si"): + si_index = self.atomType.index(atom) + self.atomType[si_index] = "del" + + #find out the indices of it's hydrogen neighbours and cov attach point + + for bond in self.atomBonds[si_index]: + if self.atomType[bond[0]] == "H": + self.atomType[bond[0]] = "del" + print str(bond[0]) + " to be deleted" + else: + covAtomType = self.atomType[bond[0]] + self.atomType[bond[0]] = "cov" + print str(bond[0]) + " is the cov attach" + # explicitly remove the bond to the covalent attachment point + nbonds = len(self.atomBonds[bond[0]]) + bondi = 0 + while (bondi < nbonds): + print nbonds + print bond[0] + print bondi + tmpbond = self.atomBonds[bond[0]][bondi] + if (tmpbond[0] == si_index): + del self.atomBonds[bond[0]][bondi] + nbonds = nbonds - 1 + bondi = bondi - 1 + bondi = bondi + 1 + + #find the indices of the atoms to be removed, so we can + #also remove them from the output.solv output + natoms = len(self.atomNum) + + #now actually go ahead and delete these atoms + atomindex = 0 + while (atomindex < natoms): + if self.atomType[atomindex] == "del": + indicesList.append(atomindex) + self.deleteAtom(atomindex) + atomindex = atomindex-1 + natoms = len(self.atomNum) + print "natoms " + str(natoms) + atomindex = atomindex+1 + + return covAtomType, indicesList + +def readDockMol2file(mol2fileName, recdes=False, ligdes=False, charge=False, \ + elec=False): + '''reads a dock output mol2 file, since each ligand has different connectivity + this returns a list of Mol2 data classes instead of just one big one. + if desired, can return the receptor desolvation as a list and/or + the polar ligand desolvation scores as well''' + mol2lines = [] + mol2data = [] + mol2rd = [] + mol2ld = [] + mol2charge = [] + mol2elec = [] + mol2file = open(mol2fileName, 'r') + mol2names = [] + for mol2line in mol2file: + if mol2line[:17] == "@MOLECULE": + if len(mol2lines) > 0: + mol2data.append(Mol2(mol2text=mol2lines)) + mol2lines = [] + if mol2line[0] != "#" and len(mol2line) > 1: + mol2lines.append(mol2line) + if mol2line[:32] == '########## Name:': + mol2names.append(string.split(mol2line)[2]) + if mol2line[:32] == '########## Ligand Polar Desolv:': + mol2ld.append(float(string.split(mol2line)[4])) + if mol2line[:32] == '########## Receptor Desolvation:': + mol2rd.append(float(string.split(mol2line)[3])) + if mol2line[:32] == '########## Ligand Charge:': + mol2charge.append(float(string.split(mol2line)[3])) + if mol2line[:32] == '########## Electrostatic:': + mol2elec.append(float(string.split(mol2line)[2])) + if len(mol2lines) > 0: + mol2data.append(Mol2(mol2text=mol2lines)) + for count, oneMol2 in enumerate(mol2data): + oneMol2.name = mol2names[count] + retList = [mol2data] + if recdes: + retList.append(mol2rd) + if ligdes: + retList.append(mol2ld) + if charge: + retList.append(mol2charge) + if elec: + retList.append(mol2elec) + return tuple(retList) + +if 0 == string.find(sys.argv[0], "mol2.py"): + #if called from commandline, read in all arguments as mol2 files and print + #out statistics about the molecule or confirm that it was read in who knows + for mol2file in sys.argv[1:]: + mol2data = Mol2(mol2file) + print mol2data.name, + print len(mol2data.atomName), len(mol2data.bondStart) #debugging??? + mol2data.convertDockTypes() + print mol2data.dockNum diff --git a/ligand/mol2db2/mol2db2.py b/ligand/mol2db2/mol2db2.py new file mode 100755 index 0000000..502ca43 --- /dev/null +++ b/ligand/mol2db2/mol2db2.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python + +#Ryan G. Coleman + +import string +import sys +import optparse +import sybyl2dock +import mol2 +import hierarchy +import solv +import clash +import hydrogens +import time +import math + +from hierarchy import TooBigError + +def mol2db2(options): + '''function that does all the actual work you may want to do to convert a + mol2 file and solv file into a db2 file.''' + if options.timeit: + timeStart = time.time() + else: + timeStart = None + mol2data = mol2.Mol2(options.mol2file, nameFileName=options.namefile) + mol2data.convertDockTypes(options.atomtypefile) + mol2data.addColors(options.colortablefile) + solvdata = solv.Solv(options.solvfile) + if options.covalent: + covAtomType,indicesList = mol2data.removeCovalentDummyAtom() + mol2data.recolorCovalentAttachment(covAtomType) + for index in indicesList: + del solvdata.charge[index] + del solvdata.polarSolv[index] + del solvdata.surface[index] + del solvdata.apolarSolv[index] + del solvdata.solv[index] + + if options.verbose: + print(("names:", mol2data.name, mol2data.protName, mol2data.smiles, \ + mol2data.longname)) + print(("dock atom types:", mol2data.atomType)) + print(("dock atom type numbers:", mol2data.dockNum)) + print(("dock color type numbers:", mol2data.colorNum)) + clashDecider = clash.Clash(options.clashfile) + hydrogenRotater = hydrogens.Hydrogens(options.hydrogenfile) + if options.timeit: + timeReadIn = time.time() + print(("time to read in files:", timeReadIn-timeStart)) + #0th step is to do the hydrogen operation directly on the mol2data. + #done here so the hierarchy knows exactly how many conformations it must deal + #with, not some estimate. and so each hierarchy has the max # of allowed sets + #again, without guessing. + if options.rotateh or options.reseth: + hydrogenRotater.findTerminalHydrogens(mol2data) + if options.verbose: + print((mol2data.hydrogensToRotate, " hydrogens need rotated")) + if options.reseth and 0 < mol2data.hydrogensToRotate: + hydrogenRotater.resetHydrogens(mol2data) + if options.rotateh and 0 < mol2data.hydrogensToRotate: + mol2data = hydrogenRotater.rotateHydrogens(mol2data) + if options.timeit: + hydTime = time.time() + print(("time to move hydrogens:", hydTime-timeReadIn)) + if options.verbose: + print((len(mol2data.atomXyz), " conformations in input")) + + def hierarchyDataGenerator(this_mol2data, depth=1): + '''Generators to pipeline hierarchy generation''' + try: + yield hierarchy.Hierarchy( + this_mol2data, clashDecider, tolerance=options.tolerance, + verbose=options.verbose, timeit=options.timeit, + limitset=options.limitset, limitconf=options.limitconf, + limitcoord=options.limitcoord, solvdata=solvdata) + except TooBigError as limitError: + if depth > options.maxrecursiondepth: + raise + breaks = hierarchy.computeBreaks(limitError, options) + origConfsPer = max(len(this_mol2data.atomXyz)/(breaks + 1), 1) # at least 1 + if options.verbose: + print(("splitting original input conformations into", breaks + 1, "parts", "(current depth: ", depth, ')')) + for snap in range(breaks + 1): # extra one to do leftovers + newMol2data = this_mol2data.copy() # copy orig before hydrogen rotations + first = origConfsPer * snap + last = origConfsPer * (snap + 1) + newMol2data.keepConfsOnly(first, last) + if len(newMol2data.atomXyz) > 0: + subgen = hierarchyDataGenerator(newMol2data, depth=depth+1) + for subhier in subgen: + yield subhier + if options.timeit: + timeHier = time.time() + print(("time to (start) construction hierarchy (subtotal):", timeHier-hydTime)) + return timeStart, hierarchyDataGenerator(mol2data) + +def mol2db2writeDb2(options, timeStart, hierarchyDatas): + '''does the writing of the output files. separate so you can make but + not write. requires timeStart (can be None if no times wanted) and + all the hierarchyDatas from the mol2db2 function''' + if options.timeit: + timeHier = time.time() + # Clear db2gzfile + open(options.db2gzfile, 'wb').close() + for hierarchyData in hierarchyDatas: + hierarchyData.write( + db2gzFileName=options.db2gzfile, verbose=options.verbose, + timeit=options.timeit, limitset=options.limitset, + writeMode='a') # append so we don't overwrite + yield hierarchyData + if options.timeit: + timeHierOut = time.time() + print(("time to save db2:", timeHierOut-timeHier)) + if options.timeit: + timeFinal = time.time() + print(("time to do everything (total):", timeFinal-timeStart)) + +def parserDefaults(): + '''uses optparse to make an options parser. useful here to allow calling by + other python modules without command line interface.''' + description = "Convert multimol2 and solv files into db2 files" + usage = "%prog [options]" + parser = optparse.OptionParser(usage=usage, description=description) + parser.add_option( + "-v", "--verbose", action="store_true", dest="verbose", default=False, + help="lots of debugging output") + parser.add_option( + "--covalent", action="store_true", dest="covalent", default=False, + help="make a DOCKovalent compatible db (assumes SiH2 dummy atom)") + parser.add_option( + "-a", "--time", action="store_true", dest="timeit", default=False, + help="timing output") + parser.add_option( + "-m", "--mol2", type="string", action="store", dest="mol2file", + default="db.mol2.gz", help="multimol2 input file, (default: %default)") + parser.add_option( + "-n", "--namemol2", type="string", action="store", dest="namefile", + default="name.txt", help="mol2 name file, (default: %default)") + parser.add_option( + "-s", "--solv", type="string", action="store", dest="solvfile", + default="db.solv", help="solv input file, (default: %default)") + parser.add_option( + "-o", "--db", type="string", action="store", dest="db2gzfile", + default="db.db2.gz", help="db2.gz output file, (default: %default)") + parser.add_option( + "-t", "--atomtype", type="string", action="store", dest="atomtypefile", + default=None, help="atom type conversion file, (default: %default)") + parser.add_option( + "-c", "--colortable", type="string", action="store", + dest="colortablefile", + default=None, help="color table conversion file, (default: %default)") + parser.add_option( + "-d", "--clash", type="string", action="store", dest="clashfile", + default=None, help="clash checking parameter file, (default: %default)") + parser.add_option( + "-y", "--hydrogens", type="string", action="store", dest="hydrogenfile", + default=None, + help="terminal hydrogen parameter file, (default: %default)") + parser.add_option( + "-r", "--noreseth", action="store_false", dest="reseth", default=True, + help="reset the planar terminal hydrogen positions, (default: %default)") + parser.add_option( + "-z", "--norotateh", action="store_false", dest="rotateh", default=True, + help="rotate the terminal hydrogen positions, (default: %default)") + #yes you can do reset and rotate in any combination! + parser.add_option( + "-x", "--disttol", type="float", action="store", dest="tolerance", + default=0.001, + help="distance tolerance in angstroms, (default: %default)") + parser.add_option( + "-l", "--limitset", type="long", action="store", dest="limitset", + default=500, help="limit on the number of sets, (default: %default)") + parser.add_option( + "--limitconf", type="long", action="store", dest="limitconf", + default=2000, help="limit on the number of confs, (default: %default)") + parser.add_option( + "--limitcoord", type="long", action="store", dest="limitcoord", + default=40000, help="limit on the number of coords, (default: %default)") + parser.add_option( + "--maxrecursiondepth", type=int, action="store", dest="maxrecursiondepth", + default=2, help="Max recursive subdivision steps to take (default: %default)") + return parser + +# if -1 != string.find(sys.argv[0], "mol2db2.py") and __name__ == '__main__': +if -1 != sys.argv[0].find("mol2db2.py") and __name__ == '__main__': + parser = parserDefaults() + options, args = parser.parse_args() # default reads from argv[1:] + if 0 != len(args): + parser.error("mol2db2.py takes no positional arguments" + + " Use --help for more information") + else: + #print options + if options.verbose: + print("verbose debugging requested.") + print(options) + timeStart, hierarchyDatas = mol2db2(options) # main program call + finishedHierarchyDatas = mol2db2writeDb2( + options, timeStart, hierarchyDatas) # write output + for hierarchyData in finishedHierarchyDatas: + if options.verbose: + print("Cleaning up") + del hierarchyData diff --git a/ligand/mol2db2/mol2hydroxyl.py b/ligand/mol2db2/mol2hydroxyl.py new file mode 100755 index 0000000..b6b87d8 --- /dev/null +++ b/ligand/mol2db2/mol2hydroxyl.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python + +#Ryan G. Coleman + +import string +import sys +import optparse +import mol2 +import hydrogens +import time + +def mol2hydroxyl(options): + '''function that reads multi-mol2 input file, rotates or resets hydrogens, + writes a new multimol2 file back out''' + if options.timeit: + timeStart = time.time() + mol2data = mol2.Mol2(options.mol2file) + hydrogenRotater = hydrogens.Hydrogens(options.hydrogenfile) + if options.rotateh or options.reseth: + hydrogenRotater.findTerminalHydrogens(mol2data) + if options.verbose: + print((mol2data.hydrogensToRotate, " terminal hydrogens found.")) + if options.reseth: + hydrogenRotater.resetHydrogens(mol2data) + if options.rotateh: + mol2data = hydrogenRotater.rotateHydrogens(mol2data) + mol2data.writeMol2(options.mol2outfile) + if options.timeit: + timeEnd = time.time() + print(("time to do everything (total):", timeEnd - timeStart)) + +if -1 != string.find(sys.argv[0], "mol2hydroxyl.py"): + description = "Convert multimol2 hydroxyls, rotate, reset, etc" + usage = "%prog [options]" + parser = optparse.OptionParser(usage=usage, description=description) + parser.add_option( + "-v", "--verbose", action="store_true", dest="verbose", default=False, + help="lots of debugging output") + parser.add_option( + "-a", "--time", action="store_true", dest="timeit", default=False, + help="timing output") + parser.add_option( + "-m", "--mol2", type="string", action="store", dest="mol2file", + default="db.mol2", help="multimol2 input file, (default: %default)") + parser.add_option( + "-o", "--outmol2", type="string", action="store", dest="mol2outfile", + default="out.mol2", help="mol2 output file, (default: %default)") + parser.add_option( + "-y", "--hydrogens", type="string", action="store", dest="hydrogenfile", + default=None, + help="terminal hydrogen parameter file, (default: %default)") + parser.add_option( + "-r", "--reseth", action="store_true", dest="reseth", default=False, + help="reset the planar terminal hydrogen positions, (default: %default)") + parser.add_option( + "-z", "--norotateh", action="store_false", dest="rotateh", default=True, + help="rotate the terminal hydrogen positions, (default: %default)") + #yes you can do reset and rotate in any combination! + options, args = parser.parse_args() # default reads from argv[1:] + if 0 != len(args): + parser.error("mol2hydroxyl.py takes no positional arguments" + + " Use --help for more information") + else: + #print options + if options.verbose: + print("verbose debugging requested.") + print(options) + mol2hydroxyl(options) # main program call diff --git a/ligand/mol2db2/pca.py b/ligand/mol2db2/pca.py new file mode 100755 index 0000000..bf012ae --- /dev/null +++ b/ligand/mol2db2/pca.py @@ -0,0 +1,344 @@ +#!/usr/bin/env python + +#use numeric utility to compute principal components of points +#written in Sharp lab by Ryan Coleman 2008-9 +#edited, extended in Shoichet Lab by Ryan Coleman 2011-2015 +#let penn & ucsf spend millions on lawyers, i've got work to do. + +try: # to use numeric (old) + from Matrix import Matrix + from LinearAlgebra import eigenvectors +except ImportError: # use numpy (new) + #import numpy.oldnumeric as Numeric + from numpy import matrix as Matrix + from numpy.linalg import eig as eigenvectors +except ImportError: + print("you do not have numpy or numeric installed under this python version") + exit(1) +import operator # for sorting tricks +import geometry # for getAverage of points, and dot product +import math + +def pca2d(pointList): + '''sets up the pca for a list of points in 2d. solves eig problem''' + matrixList = [[0, 0], [0, 0]] # init to 0 + avgPt = geometry.getAverageArbitraryDimension(pointList, 2) + diffs = [0, 0] + for point in pointList: + for index in range(2): + diffs[index] = point[index] - avgPt[index] + #matrix is old plus a2 ab + # ba b2 + # only compute upper diagonal now + matrixList[0][0] += diffs[0] * diffs[0] # just hardcode it + matrixList[0][1] += diffs[0] * diffs[1] + matrixList[1][1] += diffs[1] * diffs[1] + #make symmetric + matrixList[1][0] = matrixList[0][1] + actualMatrix = Matrix(matrixList) + val, vec = eigenvectors(actualMatrix) + return val, vec + +def pca3d(pointList): + '''sets up the pca for a list of points in 3d. solves eig problem''' + matrixList = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] # init to 0 + avgPt = geometry.getAverage(pointList) + diffs = [0, 0, 0] + for point in pointList: + for index in range(3): + diffs[index] = point[index] - avgPt[index] + #matrix is old plus a2 ab ac + # ba b2 bc + # ca cb c2 only compute upper diagonal now + matrixList[0][0] += diffs[0] * diffs[0] # just hardcode it + matrixList[0][1] += diffs[0] * diffs[1] + matrixList[0][2] += diffs[0] * diffs[2] + matrixList[1][1] += diffs[1] * diffs[1] + matrixList[1][2] += diffs[1] * diffs[2] + matrixList[2][2] += diffs[2] * diffs[2] + #make symmetric + matrixList[1][0] = matrixList[0][1] + matrixList[2][0] = matrixList[0][2] + matrixList[2][1] = matrixList[1][2] + actualMatrix = Matrix(matrixList) + val, vec = eigenvectors(actualMatrix) + return val, vec + +def flatten(pointListList): + '''flattens an input list of lists of lists into a list of lists, removing the + least significant list (lowest order)''' + #let's go ahead and flatten the input list! + flattenedList = [] + for pointList in pointListList: + flatTemp = [pts for sublist in pointList for pts in sublist] + flattenedList.append(flatTemp) + return flattenedList + +def pcaN3d(pointListList): + '''sets up the pca for a list of list of points in 3d. solves eig problem. + the pointListList is a list of sets of points of the same length.''' + length = len(pointListList[0]) * 3 # know 3d points times length(list of pts) + #print 'making a square matrix of size', length + oneList = [0. for count in range(length)] # bunch of 0.0s + matrixList = [oneList[:] for count in range(length)] # copy list of 0.0s + #let's go ahead and flatten the input list! + #print 'makin flattened list of size', length + flattenedList = flatten(pointListList) + avgPt = geometry.getAverageArbitraryDimension( + flattenedList, dimension=length) + diffs = oneList[:] + #print 'filling a square matrix of size', length + for point in flattenedList: # this point has length dimensions + for index in range(length): + diffs[index] = point[index] - avgPt[index] + #matrix is old plus a2 ab ac ad etc + # ba b2 bc bd etc + # ca cb c2 cd etc + # da db dc d2 etc + # etc etc etc etc etc (etc) + #only compute upper diagonal now + #can't get away with hardcoding anymore + for row in range(length): + for col in range(row, length): + matrixList[row][col] += diffs[row] * diffs[col] + #make symmetric + for row in range(length): + for col in range(0, row): + matrixList[row][col] = matrixList[col][row] + #print "mat" #debugging madness + #for row in xrange(length): + # for col in xrange(length): + # print matrixList[row][col], + # print " " + actualMatrix = Matrix(matrixList) + #print 'running eigenvector calculation', type(actualMatrix) + val, vec = eigenvectors(actualMatrix) + return val, vec + +def findLongestProjectedDirection(pointListList): + '''does pca, gets the eigenresult, find the longest direction, returns it. + done for a list of 3d points, projects them onto 1d using the eigenvector + and dot product.''' + eigenvalues, eigenvectors = pcaN3d(pointListList) + maxVal, maxIndex = 0, 0 + try: + for index in range(len(eigenvalues)): + if maxVal < eigenvalues[index]: + maxVal = eigenvalues[index] + maxIndex = index + maxVec = eigenvectors[maxIndex] + except TypeError: # caused by complex numbers + for index in range(len(eigenvalues)): + if maxVal < eigenvalues[index].real: # real prevents imaginary problems + maxVal = eigenvalues[index].real + maxIndex = index + maxVec = eigenvectors[maxIndex].real + try: + maxVecRet = maxVec.tolist() # stupid numpy new2010 + except AttributeError: + maxVecRet = maxVec + if 1 == len(maxVecRet): + maxVecRet = maxVecRet[0] + return maxVecRet + +def findBiggestGapSplit(projectedPts, overlap=0): + '''finds the biggest gap (diff between adjacent pts), splits on either side''' + sortedPts = projectedPts[:] # copy + sortedPts.sort() + biggestGap, biggestIndex = 0., -1 + for index in range(len(sortedPts) - 1): + diff = sortedPts[index + 1] - sortedPts[index] + if diff > biggestGap: + biggestIndex = index + biggestGap = diff + #print biggestIndex, biggestGap + breakPoint = sortedPts[biggestIndex] + #next 2 lines take care of overlapping conditions + breakPointLow = sortedPts[max(biggestIndex - overlap, 0)] + breakPointHigh = sortedPts[min(biggestIndex + overlap, len(sortedPts) - 1)] + #print "index, length of split", biggestIndex, len(sortedPts) #debugging + splits = ([], []) + for index, point in enumerate(projectedPts): + if point <= breakPointHigh: # if overlap is >0, can end up in both! + splits[0].append(index) + if point >= breakPointLow: + splits[1].append(index) + print((len(splits[0]), len(splits[1]))) + return splits + +def findBisectiveSplit(projectedPts, avgPoint, overlap=0): + '''for a given list of points, find the best split, based on average.''' + overlapDist = 0.0 + if overlap > 0: + dists = [] + for index, point in enumerate(projectedPts): + dists.append(math.fabs(point - avgPoint)) + dists.sort() + overlapDist = dists[overlap] + splits = ([], []) + for index, point in enumerate(projectedPts): + if point <= avgPoint + overlapDist: # if overlap > 0, then can be in both! + splits[0].append(index) + if point >= avgPoint - overlapDist: + splits[1].append(index) + if 0 == len(splits[1]): # nothing in second half. try splitting w/o = + splits = ([], []) + for index, point in enumerate(projectedPts): + if point < avgPoint + overlapDist: # just < not <= + splits[0].append(index) + if point > avgPoint - overlapDist: + splits[1].append(index) + return splits + +def findProjectAndSplit(pointListList, altSplit=False, overlap=0): + '''finds the eigs, projects the points, splits into 2 sub lists. returns + indices from orig pointListList split into 2 groups. + altsplit true means biggest gap splitting + altsplit false means bisective splitting (based on average) + maybe want a 3rd option to split on median (equal subgroups). + overlap parameter allows some points to be returned in both clusters. + useful sometimes maybe.''' + maxVecRet = findLongestProjectedDirection(pointListList) + flattenedList = flatten(pointListList) + projectedPts = [] + for pointList in flattenedList: + projectedPt = geometry.dot(maxVecRet, pointList) + try: + projectedPt = projectedPt.real # in case it is complex + except AttributeError: + pass # this is okay, not a complex number + projectedPts.append(projectedPt) + if not altSplit: # use bisective splitting, i.e. split based on mean + avgPoint = geometry.getAverage1(projectedPts) + indicesSplit = findBisectiveSplit(projectedPts, avgPoint, overlap) + else: + indicesSplit = findBiggestGapSplit(projectedPts, overlap) + return indicesSplit + +def findLongestDirection(pointList): + '''does pca, gets the eigenresult, find the longest direction, returns it''' + eigenvalues, eigenvectors = pca3d(pointList) + maxVal, maxIndex = 0, 0 + try: + for index in range(len(eigenvalues)): + if maxVal < eigenvalues[index]: + maxVal = eigenvalues[index] + maxIndex = index + maxVec = eigenvectors[maxIndex] + except TypeError: # caused by complex numbers + for index in range(len(eigenvalues)): + if maxVal < eigenvalues[index].real: # real prevents imaginary problems + maxVal = eigenvalues[index].real + maxIndex = index + maxVec = eigenvectors[maxIndex].real + try: + maxVecRet = maxVec.tolist() # stupid numpy new2010 + except AttributeError: + maxVecRet = maxVec + return maxVecRet + +def sortDirections(pointList): + '''finds the eigenvalues and eigenvectors, sorts based on eigenvalue and + returns list of direction vectorsin descending order''' + eigenvalues, eigenvectors = pca3d(pointList) + maxVal, maxIndex = 0, 0 + #print eigenvalues, eigenvectors + try: + newEigList = [] + for index in range(len(eigenvalues)): + newEigList.append((eigenvalues[index], eigenvectors[index])) + newEigList.sort(key=operator.itemgetter(0)) + newEigList.reverse() + except TypeError: # imaginary problem + newEigList = [] + for index in range(len(eigenvalues)): + newEigList.append((eigenvalues[index].real, eigenvectors[index].real)) + newEigList.sort(key=operator.itemgetter(0)) + newEigList.reverse() + retEigVecList = [] + for eigenvalue, eigenvector in newEigList: + try: + newEig = eigenvector.tolist() # stupid numpy new 2010 [0] before? + retEigVecList.append(newEig) + except AttributeError: # numpy is actually not being run, not a problem + retEigVecList.append(eigenvector) + return retEigVecList + +def findLongestDimension(pointList): + '''calls direction, returns length in that direction''' + direction = findLongestDirection(pointList) + #direction is a unit vector, so can do scalar projection, i.e. + #dot product of each point with direction gives the length in that direction + #and is negative if in the opposite direction, so just find max-min and return + firstPoint = pointList[0] + try: + if 1 == len(direction): + direction = direction[0] # numpy/numeric return differently + except TypeError: + pass + min = geometry.dot(firstPoint, direction) + max = min # same for now + for point in pointList[1:]: # already done first point + newScalar = geometry.dot(point, direction) + try: + if newScalar < min: + min = newScalar + if newScalar > max: + max = newScalar + except TypeError: + newScalar = newScalar.real + min = min.real + max = max.real + if newScalar < min: + min = newScalar + if newScalar > max: + max = newScalar + return max - min + +def findDimensions(pointList): + '''finds the dimension in the 3 principal directions, longest first''' + dimensions = [] + directions = sortDirections(pointList) + for direction in directions: + firstPoint = pointList[0] + try: + if 1 == len(direction): + direction = direction[0] # stupid numpy + except TypeError: + pass + min = geometry.dot(firstPoint, direction) + max = min # same for now + for point in pointList[1:]: # already done first point + newScalar = geometry.dot(point, direction) + try: + if newScalar < min: + min = newScalar + if newScalar > max: + max = newScalar + except TypeError: + newScalar = newScalar.real + min = min.real + max = max.real + if newScalar < min: + min = newScalar + if newScalar > max: + max = newScalar + dimensions.append(max - min) + return dimensions + +#disable testing now +''' +import sys,string +if -1 != string.find(sys.argv[0], "pca.py"): + print findLongestDimension([[1,1,1], [0, 0, 0], [-1,-1,-1]]) #stupid test + print findLongestDimension([[10,10,10], [9,9,9], [8,8,8]]) #stupid test + print findLongestDimension([[10,9,1], [9,9,9], [8,7,8]]) #stupid test + print findDimensions([[10,9,1], [9,9,9], [8,7,8], [1,1,1]]) #stupid test + print findProjectAndSplit( + [[[10,4,2], [9,8,7], [8,6,8], [1,2,4]], [[10,9,1], [9,9,9], [8,7,8], + [1,1,1]], [[-10,-9,-1], [-9,-9,-9], [-8,-7,-8], [-1,-1,-1]], + [[90,90,10], [90,80,80], [70,70,80], [8,9,10]]]) + print findProjectAndSplit( + [[[10,4,2], [9,8,7], [8,6,8], [1,2,4]], [[10,9,1], [9,9,9], [8,7,8], + [1,1,1]], [[-10,-9,-1], [-9,-9,-9], [-8,-7,-8], [-1,-1,-1]]]) +''' diff --git a/ligand/mol2db2/priodict.py b/ligand/mol2db2/priodict.py new file mode 100644 index 0000000..fc9d1e4 --- /dev/null +++ b/ligand/mol2db2/priodict.py @@ -0,0 +1,73 @@ +# Priority dictionary using binary heaps +# David Eppstein, UC Irvine, 8 Mar 2002 +# under python license +# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/117228 + +#from __future__ import generators #disabled for 2.5 + +class priorityDictionary(dict): + def __init__(self): + '''Initialize priorityDictionary by creating binary heap +of pairs (value,key). Note that changing or removing a dict entry will +not remove the old pair from the heap until it is found by smallest() or +until the heap is rebuilt.''' + self.__heap = [] + dict.__init__(self) + + def smallest(self): + '''Find smallest item after removing deleted items from heap.''' + if len(self) == 0: + raise IndexError("smallest of empty priorityDictionary") + heap = self.__heap + while heap[0][1] not in self or self[heap[0][1]] != heap[0][0]: + lastItem = heap.pop() + insertionPoint = 0 + while 1: + smallChild = 2 * insertionPoint + 1 + if smallChild + 1 < len(heap) and \ + heap[smallChild] > heap[smallChild + 1]: + smallChild += 1 + if smallChild >= len(heap) or lastItem <= heap[smallChild]: + heap[insertionPoint] = lastItem + break + heap[insertionPoint] = heap[smallChild] + insertionPoint = smallChild + return heap[0][1] + + def __iter__(self): + '''Create destructive sorted iterator of priorityDictionary.''' + def iterfn(): + while len(self) > 0: + x = self.smallest() + yield x + del self[x] + return iterfn() + + def __setitem__(self, key, val): + '''Change value stored in dictionary and add corresponding +pair to heap. Rebuilds the heap if the number of deleted items grows +too large, to avoid memory leakage.''' + dict.__setitem__(self, key, val) + heap = self.__heap + if len(heap) > 2 * len(self): + self.__heap = [(v1, k1) for k1, v1 in list(self.items())] + self.__heap.sort() # builtin sort likely faster than O(n) heapify + else: + newPair = (val, key) + insertionPoint = len(heap) + heap.append(None) + while insertionPoint > 0 and \ + newPair < heap[(insertionPoint - 1)//2]: + heap[insertionPoint] = heap[(insertionPoint - 1)//2] + insertionPoint = (insertionPoint - 1)//2 + heap[insertionPoint] = newPair + + def setdefault(self, key, val): + '''Reimplement setdefault to call our customized __setitem__.''' + if key not in self: + self[key] = val + return self[key] + + def update(self, other): + for key in list(other.keys()): + self[key] = other[key] diff --git a/ligand/mol2db2/shortestpaths.py b/ligand/mol2db2/shortestpaths.py new file mode 100644 index 0000000..44b1393 --- /dev/null +++ b/ligand/mol2db2/shortestpaths.py @@ -0,0 +1,29 @@ +#ryan coleman +#adaptation of shortest paths code from my phd for more general case. kind of. +#no objects, just a method, gpl since penn/phd + +import priodict + +def shortestPaths(nodes, edges, startDist, initialNodes): + '''simple shortest paths algorithm, using advanced data structure. calculates + all distances from the starting set of nodes to all other nodes. returns + nodes to distance mapping. nodes is a list, edges is a dict from nodes to + other nodes with distance as a tuple, startdist is a float, initialnodes + is a list.''' + currentNodes = priodict.priorityDictionary() + #currentNodes holds data on nodes left to process + nodeDist = {} + for initialNode in initialNodes: + currentNodes[initialNode] = startDist + while len(currentNodes) > 0: + currentNode = currentNodes.smallest() + lastDist = currentNodes.pop(currentNodes.smallest()) + if currentNode not in nodeDist or lastDist < nodeDist[currentNode]: + #update the dist, add neighbors to heap + nodeDist[currentNode] = lastDist + for neighborNode, nbDist in edges[currentNode]: + newDist = lastDist + nbDist + if neighborNode not in currentNodes or \ + newDist <= currentNodes[neighborNode]: + currentNodes[neighborNode] = newDist # updates prio dict + return nodeDist diff --git a/ligand/mol2db2/solv.py b/ligand/mol2db2/solv.py new file mode 100755 index 0000000..bde68cb --- /dev/null +++ b/ligand/mol2db2/solv.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python2.7 + +#Ryan G. Coleman +#solvation file output reader. i think these are from amsol. + +import string +import sys + +class Solv(object): + '''reads .solv files from amsol output''' + + def __init__(self, solvFileName=None): + '''reads in the file''' + self.name = "fake" + self.charge = [] + self.polarSolv = [] + self.apolarSolv = [] + self.solv = [] + self.surface = [] + if solvFileName is not None: + solvfile = open(solvFileName, 'r') + try: + for line in solvfile: + tokens = string.split(line) + if self.name == "fake": # first line... different from the others + self.name = tokens[0] + self.totalAtoms = int(tokens[1]) + self.totalCharge = float(tokens[2]) + self.totalPolarSolv = float(tokens[3]) + self.totalSurface = float(tokens[4]) + self.totalApolarSolv = float(tokens[5]) + self.totalSolv = float(tokens[6]) + else: # all the other lines, one per atom + try: + self.charge.append(float(tokens[0])) + self.polarSolv.append(float(tokens[1])) + self.surface.append(float(tokens[2])) + self.apolarSolv.append(float(tokens[3])) + self.solv.append(float(tokens[4])) + except ValueError: # same solv file repeated multiple times???? + raise self.MultiSolvException(line) + except (StopIteration, self.MultiSolvException): + pass # eof okay + solvfile.close() + + class MultiSolvException(Exception): + '''stupid exception class since sometimes solv files have more than 1 mol''' + + def __init__(self, value): + self.value = value + + def __str__(self): + return repr(self.value) + +# if -1 != string.find(sys.argv[0], "solv.py"): +if -1 != sys.argv[0].find("solv.py"): + #if called from commandline, read in all arguments as mol2 files and print + #out statistics about the molecule or confirm that it was read in who knows + for solvfile in sys.argv[1:]: + solvdata = Solv(solvfile) + print((solvdata.name, sum(solvdata.charge), solvdata.totalCharge)) diff --git a/ligand/mol2db2/sybyl2dock.py b/ligand/mol2db2/sybyl2dock.py new file mode 100755 index 0000000..a206a76 --- /dev/null +++ b/ligand/mol2db2/sybyl2dock.py @@ -0,0 +1,137 @@ +#!/usr/bin/env python + +#Ryan G. Coleman, Brian K. Shoichet Lab +#converts sybyl atom types from the ligand building toolchain to dock atom +#types (beginning of mol2db2). reads from parameter file (default can be written +#by calling program in appropriate way) + +import string +import sys + +class AtomConverter(object): + '''converts from sybyl to dock atom types. reads from parameter file if + present. otherwise use defaults. can also write defaults used to a parameter + file that can be edited/tweaked by users who desire such a feature.''' + + #these are the default parameters in a dictionary. it maps all sybyl types + #from page 7 of: + # http://tripos.com/tripos_resources/fileroot/pdfs/mol2_format.pdf + #this file is also ~rgc/Documents/mol2_format.pdf + # to the dock atom types. currently these are the same as in mol2db + # and correspond to the atom types in the vdw.parms.amb.mindock file + #also in ~rgc/Documents/vdw.parms.amb.mindock + #the format is 'sybylname': dock integer type + #exceptions are for where sybyl has 1 type and dock has 2 + #the one of these presently is 'H': 6 and 'H-C': 7 where the code + #deduces that carbon-bonded hydrogens get type 7 though it is general enough + #to do this for any atom type if the user adds lines to the parameter file + convertTypesDefault = {'C.3': 5, + 'C.2': 1, + 'C.ar': 1, + 'C.1': 1, + 'N.3': 10, + 'N.2': 8, + 'N.1': 8, + 'O.3': 12, + 'O.2': 11, + 'S.3': 14, + 'N.ar': 8, + 'P.3': 13, + 'H': 6, + 'H-C': 7, + 'Br': 17, + 'Cl': 16, + 'F': 15, + 'I': 18, + 'S.2': 14, + 'N.pl3': 8, + 'LP': 25, + 'Na': 19, + 'K': 19, + 'Ca': 21, + 'Li': 20, + 'Al': 20, + 'Du': 25, + 'Du.C': 25, + 'Si': 24, + 'N.am': 8, + 'S.o': 14, + 'S.o2': 14, +# added by qiuyu fu + 'S.O2': 14, +# added by qiuyu fu + 'N.4': 9, + 'O.co2': 11, + 'C.cat': 1, + 'H.spc': 6, + 'O.spc': 11, + 'H.t3p': 6, + 'O.t3p': 11, + 'ANY': 25, + 'HEV': 25, + 'HET': 25, + 'HAL': 25, + 'Mg': 20, + 'Cr.oh': 25, + 'Cr.th': 25, + 'Se': 25, + 'Fe': 25, + 'Cu': 25, + 'Zn': 26, + 'Sn': 25, + 'Mo': 25, + 'Mn': 25, + 'Co.oh': 25} + + def __init__(self, parameterFileName=None): + '''reads the parameter file if present, just reconstruct convertTypes''' + if parameterFileName is not None: + self.convertTypes = {} # new dictionary + parameterFile = open(parameterFileName, 'r') + try: + lines = parameterFile.readlines() + except StopIteration: + pass # end of file + finally: + for line in lines: + tokens = string.split(line) + self.convertTypes[tokens[0]] = int(tokens[1]) + else: + self.convertTypes = self.convertTypesDefault + self.specialKeys = {} + for aKey in list(self.convertTypes.keys()): + if -1 != string.find(aKey, '-'): # aKey has a - in it + index = string.find(aKey, '-') + justFirstPart = aKey[:index] + self.specialKeys[aKey] = justFirstPart + + def printParameters(self): + '''prints to standard out the parameters used in a readable format''' + atomkeys = list(self.convertTypes.keys()) + atomkeys.sort() + for key in atomkeys: + print((key, self.convertTypes[key])) + + def convertMol2atomNum(self, mol2data, atomNum): + '''takes a given atom number from the mol2data and returns the dock + type translated.''' + actualNum = atomNum - 1 + actualName = mol2data.atomType[actualNum] + if actualName not in list(self.specialKeys.values()): # don't worry about bonds + return self.convertTypes[actualName] + else: # have to worry about bonds + for key in list(self.specialKeys.keys()): # check each special bond + if mol2data.bondedTo(atomNum, key[-1]): # found a match + return self.convertTypes[key] # so return the exception + return self.convertTypes[actualName] # nothing special bonded found + +#if -1 != string.find(sys.argv[0], "sybyl2dock.py"): +if -1 != sys.argv[0].find("sybyl2dock.py"): + #if program is called from the command line, assume user wants a copy + #of the default parameter file written to standard out. this is the + #only command use. usually this will be imported and run from + #somewhere else. + if len(sys.argv) > 1: + AtomConverter(sys.argv[1]).printParameters() + else: + AtomConverter().printParameters() diff --git a/ligand/mol2db2/unionfind2.py b/ligand/mol2db2/unionfind2.py new file mode 100755 index 0000000..b5626a8 --- /dev/null +++ b/ligand/mol2db2/unionfind2.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python + +#new unionfind code, still using dictionaries but not as weird as other version +#also rewritten from scratch using orig paper + clrs as a guide + +class unionFind(object): + '''allows union, find, tolists, uses path compression and join by rank, + from CLRS algorithms textbook and previous c implementation by ryan coleman. + should be much faster than other implementations and w/o object overhead''' + + def __init__(self): + '''just set up, nothing else done''' + self._parents = {} + self._ranks = {} + + def printPar(self): + '''debugging function''' + print((self._parents)) + print((self._ranks)) + + def check(self, name): + '''return true if seen already, false otherwise, don't add''' + if name in self._parents: + return True + else: + return False + + def find(self, name, attachData=False): + '''looks up name, returns root, does compression along the way''' + if name not in self._parents: # hasn't been seen before + self._parents[name] = name + self._ranks[name] = 0 + return name + else: + path = [name] + parent = self._parents[name] + while parent != path[-1]: + path.append(parent) + parent = self._parents[parent] + for item in path[:-1]: # don't need to do last, already done + self._parents[item] = parent + #del self._ranks[item] # never used again, save space?? XXX?? + return parent + + def union(self, name, other): + '''unions the 2 sets, inserts them if they haven't been seen before''' + onePar = self.find(name) + otherPar = self.find(other) + if onePar == otherPar: # already joined + return onePar + else: + if self._ranks[onePar] < self._ranks[otherPar]: # other is bigger in rank + self._parents[onePar] = otherPar # other becomes parent + return otherPar + else: # one is bigger in rank + self._parents[otherPar] = onePar # one becomes parent + if self._ranks[onePar] == self._ranks[otherPar]: # if equal + self._ranks[onePar] = self._ranks[onePar] + 1 # one's rank goes up + return onePar + + def different(self, itemA, itemB): + '''returns true if different, false if same''' + parA = self.find(itemA) + parB = self.find(itemB) + if parA == parB: + return False + else: + return True + + def getList(self, name): + '''returns the list of all objects in same group as name, + again this is O(n) since this data is not cached or anything''' + parent = self.find(name) + returnList = [] + for item in list(self._parents.keys()): + self.find(item) # makes direct pointer for everything + for item, par in list(self._parents.items()): + if par == parent: + returnList.append(item) + return returnList + + def toLists(self): + '''takes a long time (O(n)), but returns lists of each unioned set''' + lists = {} + for item in list(self._parents.keys()): + self.find(item) # makes direct pointer for everything + for item, par in list(self._parents.items()): + try: + lists[par].append(item) + except KeyError: + lists[par] = [item] + listOfLists = [] # turn into lists of lists + for aList in list(lists.values()): + listOfLists.append(aList) + return listOfLists + +class unionFindAttach(unionFind): + '''contains attached data carried with each union, unions data together''' + + def __init__(self): + '''just set up, nothing else done''' + unionFind.__init__(self) # call superclass + self.__attach = {} + + def find(self, name, attachData=False): + '''looks up name, returns root, does compression along the way''' + parent = unionFind.find(self, name) # call superclass + #print "find", self.__attach, name, attachData + if parent not in self.__attach: + self.__attach[parent] = set() + if attachData and len(attachData) > 0: + self.__attach[parent].update(attachData) + #print "findpost", self.__attach, name + return parent + + def union(self, name, other): + '''unions the 2 sets, inserts them if they haven't been seen before''' + onePar = self.find(name) + otherPar = self.find(other) + if onePar == otherPar: # already joined + return onePar + else: # must do union + if self._ranks[onePar] < self._ranks[otherPar]: # other is bigger in rank + self._parents[onePar] = otherPar # other becomes parent + self.__attach[otherPar].update(self.__attach[onePar]) + return otherPar + else: + self._parents[otherPar] = onePar # one becomes parent + if self._ranks[onePar] == self._ranks[otherPar]: # if equal rank + self._ranks[onePar] = self._ranks[onePar] + 1 # increment one's rank + self.__attach[onePar].update(self.__attach[otherPar]) + return onePar + + def getAttached(self, name): + '''returns the attached set''' + parent = self.find(name) + return self.__attach[parent] + + def clearAttached(self, name): + '''returns the attached set''' + parent = self.find(name) + self.__attach[parent] = set() + +''' +#commented out this testing code, not even that good of a test +import string,sys #only needed for testing +if -1 != string.find(sys.argv[0], "unionfind2.py"): + import time + a = time.time() + uf = unionFind() + #uf = unionFindAttach() + for blah in range(1,5000000): + #uf.find(blah, set([blah])) + #print uf.getAttached(blah) + uf.union(1,blah) + b = time.time() + out = uf.toLists() + c = time.time() + print b-a, c-b + #print uf.getAttached(2) +''' diff --git a/ligand/rdkit/generate_conformers.py b/ligand/rdkit/generate_conformers.py new file mode 100644 index 0000000..7794550 --- /dev/null +++ b/ligand/rdkit/generate_conformers.py @@ -0,0 +1,355 @@ +#!/usr/bin/env python + + +# FROM +# http://rdkit.org/UGM/2012/Ebejer_20110926_RDKit_1stUGM.pdf +# http://pubs.acs.org/doi/abs/10.1021/ci2004658 + +import argparse +import logging +import multiprocessing +import operator +import sys +import os + + +from rdkit.Chem import ( + MolFromSmiles, + MolFromMol2File, + SanitizeMol, + MolToMolBlock, # TODO Implement real mol2 + MolToPDBBlock, # TODO Implement real mol2 + AddHs, +) +from rdkit.Chem.rdDistGeom import EmbedMultipleConfs +from rdkit.Chem.ChemicalForceFields import ( + MMFFGetMoleculeForceField, + MMFFGetMoleculeProperties, + UFFGetMoleculeForceField, +) +from rdkit.Chem.rdMolAlign import AlignMol +from rdkit.Chem.rdMolDescriptors import CalcNumRotatableBonds + +if 'ANTECHAMBER_BIN' in os.environ: + antechamber_bin = os.environ['ANTECHAMBER_BIN'] +else: + antechamber_bin = os.popen('which antechamber').read().strip() + +RD_NAME = '_Name' +CONF_ENERGY = 'Conformer Energy' +SDF_MODEL_END = '$$$$' + +FORCEFIELDS = { + 'mmff94': lambda mol, *args, **kwargs: MMFFGetMoleculeForceField(mol, MMFFGetMoleculeProperties(mol, mmffVariant='MMFF94'), *args, **kwargs), + 'mmff94s': lambda mol, *args, **kwargs: MMFFGetMoleculeForceField(mol, MMFFGetMoleculeProperties(mol, mmffVariant='MMFF94s'), *args, **kwargs), + 'uff': UFFGetMoleculeForceField, +} +DEFAULT_FORCEFIELD = 'mmff94s' + + +# Heuristic from original paper +# NOTE: increasing these numbers by x2 to x4 will occasioanlly find lower +# engery conformations without adding too much compute time. +# Something investigate in the future +def get_num_confs_for_mol(m): + rb = CalcNumRotatableBonds(m) + if rb <= 7: + return 50 + elif 8 <= rb <= 12: + return 200 + else: + return 300 + +def convert_by_template( template, mol2block ): + newblock = '' + newblocklines = list() + lines = template + mol2lines = mol2block.split('\n') + + xyz = dict() + atomflag = False + for line in mol2lines: + if '@ATOM' in line: + atomflag = True + continue + if '@BOND' in line: + atomflag = False + continue + if atomflag : + items = line.split() + atomname = items[0] + x = float(items[2]) + y = float(items[3]) + z = float(items[4]) + xyz[atomname] = (x,y,z) + + atomflag = False + for line in lines: + if '@ATOM' in line: + atomflag = True + newblocklines.append(line) + continue + if '@BOND' in line: + atomflag = False + newblocklines.append(line) + continue + if atomflag : + items = line.split() + atomname = items[0] + x,y,z = xyz[atomname] + items[2] = str(x) + items[3] = str(y) + items[4] = str(z) + newline = ' '.join(items) + '\n' + newblocklines.append(newline) + else: + newblocklines.append(line) + + newblock = ''.join(newblocklines) + return newblock + +def optimize_single_conformer(mol, conf_id, interfragment, max_steps, forcefield=DEFAULT_FORCEFIELD): + ignore_frag = not interfragment + get_forcefield = FORCEFIELDS[forcefield] + forcefield = get_forcefield(mol, confId=conf_id, + ignoreInterfragInteractions=ignore_frag) + for _ in range(max_steps): # Run up to ten steps + if forcefield.Minimize() == 0: # If convergence + break + energy = forcefield.CalcEnergy() + return energy + + +def optimize_single_conformer_star(args): + return optimize_single_conformer(*args) + + +def optimize_conformers(mol, interfragment=True, max_steps=10, parallelism=None, forcefield=DEFAULT_FORCEFIELD): + conf_energy = {} + conf_ids = [conf.GetId() for conf in mol.GetConformers()] + + if parallelism is None: + for conf_id in conf_ids: + energy = optimize_single_conformer(mol, conf_id, forcefield=forcefield, + interfragment=interfragment, + max_steps=max_steps) + conf_energy[conf_id] = energy + else: + args = [(mol, conf_id, interfragment, max_steps, forcefield) for conf_id in conf_ids] + pool = multiprocessing.Pool(processes=parallelism) + energy = pool.map(optimize_single_conformer_star, args) + conf_energy = dict(list(zip(conf_ids, energy))) + + return conf_energy + + +def generate_conformers(mol, add_hydrogens=True, + rmsd_threshold=2.0, # Arbitrarily selected + num_conformers=None, # None means best guess + parallelism=None, + forcefield=DEFAULT_FORCEFIELD, + log=logging): + if add_hydrogens: + log.info("Adding implicit hydrogens") + mol = AddHs(mol) + + if num_conformers is None: + num_conformers = get_num_confs_for_mol(mol) + + log.info("Attempting to generate {0} conformations with min RMSD of {1:.4f}".format(num_conformers, rmsd_threshold)) + orig_conf_ids = EmbedMultipleConfs(mol, numConfs=num_conformers, + pruneRmsThresh=rmsd_threshold, + ignoreSmoothingFailures=True) # Prevents crashes in some situations + log.info("Generated {0} initial conformations".format(len(orig_conf_ids))) + + log.info("Optimizing and calculating energies using {0}".format(forcefield)) + conf_energy = optimize_conformers(mol, interfragment=True, + parallelism=parallelism, + forcefield=forcefield) + sorted_by_energy = sorted(iter(conf_energy.items()), key=operator.itemgetter(1)) + + log.info("Filtering similar conformers") + selected = [] + min_rmsd, max_rmsd = float('inf'), float('-inf') + for idx, id_energy in enumerate(sorted_by_energy): + conf_id, energy = id_energy + keep = True + for comp_id, other_energy in sorted_by_energy[idx+1:]: + rmsd = AlignMol(mol, mol, prbCid=comp_id, refCid=conf_id) + if rmsd <= rmsd_threshold: + mol.RemoveConformer(conf_id) + keep = False + break + else: + if rmsd < min_rmsd: + min_rmsd = rmsd + if rmsd > max_rmsd: + max_rmsd = rmsd + if keep: + selected.append(id_energy) + + log.debug("Removed {0} after post-optimization RMSD filtering".format(len(orig_conf_ids) - len(selected))) + log.info("RMSD: min={0:.4f} max={1:.4f}".format(min_rmsd, max_rmsd)) + return mol, selected + + +def dump_conformers_sdf(mol, output, conf_ids=None, + energies=None, + renumber=True, + template=False): + if conf_ids is None: + conformers = mol.GetConformers() + else: + conformers = (mol.GetConformer(conf_id) for conf_id in conf_ids) + + # Record state of properties that may be overwritten + original_name = mol.GetProp(RD_NAME) + if energies is not None and mol.HasProp(CONF_ENERGY): + original_energy = mol.GetProp(CONF_ENERGY) + else: + original_energy = None + + conformer_names = [] + + # Render conformers + tmpdir = 'TMP_DIR' + if os.path.isdir(tmpdir): + os.system(f"rm -r {tmpdir}") + os.system(f"mkdir {tmpdir}") + os.chdir(tmpdir) + if True: + for idx, conf in enumerate(conformers): + conf_id = conf.GetId() + if renumber: + conf_idx = idx + else: + conf_idx = conf_id + + if energies is not None and conf_id in energies: + energy = energies[conf_id] + mol.SetProp(CONF_ENERGY, "{0:0.4f}".format(energy)) + + conf_name = "{0}_{1}".format(original_name, conf_idx) + mol.SetProp(RD_NAME, conf_name) + conformer_names.append(conf_name) + # block = MolToMolBlock(mol, includeStereo=True, confId=conf_id) + block = MolToPDBBlock(mol, confId=conf_id) + + with open(f"{conf_name}.pdb",'w') as ofp: + ofp.write(block) + os.system(f"{antechamber_bin} -i {conf_name}.pdb -fi pdb -o {conf_name}.mol2 -fo mol2 -at sybyl") + os.system("rm A*") + mol2block = open(f"{conf_name}.mol2").read() + if template: + mol2block = convert_by_template( template, mol2block ) + else: + pass + # + print(mol2block, file=output, end="") + # + + os.chdir("..") + os.system(f"rm -r {tmpdir}") + + # Reset changes to mol properties + mol.SetProp(RD_NAME, original_name) + if original_energy is not None: + mol.SetProp(CONF_ENERGY, original_energy) + else: + mol.ClearProp(CONF_ENERGY) + + return conformer_names + + +def main(args, log=logging): + parser = argparse.ArgumentParser( + """RDKit-based conformer generation proof-of-concept. + This program accepts either a mol2 file or a SMILES string and produces an SD file + """) + input_group = parser.add_mutually_exclusive_group(required=True) + input_group.add_argument('-m', '--mol2', type=str, help="Mol2 file to gererate conformers for") + input_group.add_argument('-s', '--smiles', type=str, help="SMILES string of molecule") + + input_group2 = parser.add_mutually_exclusive_group(required=True) + input_group2.add_argument('-o', type=str, help="Output mol2 file") + + parser.add_argument('-N', '--name', type=str, default=None, help="Molecule name") + parser.add_argument('-H', '--no-hydrogens', action='store_true', + default=False, + help="Do NOT explicitly add implicit Hydrogens to conformers [default: %(default)s]") + parser.add_argument('-r', '--rmsd-threshold', type=float, + default=2.0, + help="Only accept conformers that have an RMSD of at least this value from previously seen conformers [default: %(default)s") + parser.add_argument('-n', '--num-conformers', type=int, + default=None, + help="Number of conformers to initially generate [default: auto]") + parser.add_argument('-F', '--forcefield', type=str, + default=DEFAULT_FORCEFIELD, + choices=list(FORCEFIELDS.keys()), + help="Forcefield to use for optimization [default: %(default)s]") + parser.add_argument('-P', '--parallelism', type=int, + default=None, + help="Number of processes to use [default: 1]") + parser.add_argument('-t', '--template', type=str, + default='', + help="Mol2 file template") + params = parser.parse_args(args) + + # Load input molecule + if hasattr(params, 'mol2') and params.mol2 is not None: + mol = MolFromMol2File(params.mol2, sanitize=False) + else: + mol = MolFromSmiles(params.smiles, sanitize=False) + + try: + SanitizeMol(mol) + except ValueError as e: + log.critical("Could not sanitize molecule: {0}:".format(str(e))) + sys.exit(2) + except Exception: # This is `Boost.Python.ArgumentError` + log.critical("Could not parse molecule!") + sys.exit(2) + + + # Assign user-provided name if applicable + if params.name is not None: + mol.SetProp(RD_NAME, params.name) + elif not mol.HasProp(RD_NAME): + mol.SetProp(RD_NAME, 'Ligand') + + # Generate 3D conformers + embedded, selected = generate_conformers(mol, + add_hydrogens=not params.no_hydrogens, + rmsd_threshold=params.rmsd_threshold, + num_conformers=params.num_conformers, + parallelism=params.parallelism, + forcefield=params.forcefield, + log=log) + + log.info("Conformers selected: {0}".format(len(selected))) + log.info("Energy: min={0:.4f} kcal/mol max={1:.4f} kcal/mol".format(selected[0][1], selected[-1][1])) + + # Find lowest-energy conformers + sorted_by_energy = [item[0] for item in selected] + + # Render SDF file + template = open(params.template).readlines() + with open(params.o,'w') as output: + names = dump_conformers_sdf(embedded, output, conf_ids=sorted_by_energy, + renumber=True, template = template) + + for name, (conf_id, energy) in zip(names, selected): + log.info("\t{0}: {1:0.4f} kcal/mol".format(name, energy)) + + return 0 + + +if __name__ == '__main__': + log = logging.getLogger() + log.addHandler(logging.StreamHandler(sys.stderr)) + log.setLevel(logging.DEBUG) + main(sys.argv[1:],log=log) + + + + diff --git a/scripts/compute_rotatable_bonds_dihedral.py b/scripts/compute_rotatable_bonds_dihedral.py new file mode 100755 index 0000000..ea95ccd --- /dev/null +++ b/scripts/compute_rotatable_bonds_dihedral.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python +import sys,os +from rdkit import Chem +import rdkit.Chem.rdMolTransforms +import math + +def list_dihedrals(mol): + RotatableBond = Chem.MolFromSmarts('[!$(*#*)&!D1]-&!@[!$(*#*)&!D1]') + rotatablebonds = mol.GetSubstructMatches(RotatableBond) + dihedrals = list() + for bond in rotatablebonds: + j,k = bond + atomj = mol.GetAtomWithIdx(j) + atomk = mol.GetAtomWithIdx(k) + jneighbors = atomj.GetNeighbors() + kneighbors = atomk.GetNeighbors() + i = None + for tmp in jneighbors: + if tmp.GetIdx() != k : + i = tmp.GetIdx() + break + l = None + for tmp in kneighbors: + if tmp.GetIdx() != j : + l = tmp.GetIdx() + break + if i != None and l != None: + namei = mol.GetAtomWithIdx(i).GetPropsAsDict()['_TriposAtomName'] + namej = mol.GetAtomWithIdx(j).GetPropsAsDict()['_TriposAtomName'] + namek = mol.GetAtomWithIdx(k).GetPropsAsDict()['_TriposAtomName'] + namel = mol.GetAtomWithIdx(l).GetPropsAsDict()['_TriposAtomName'] + allname = f"{namei}-{namej}-{namek}-{namel}" + dihedrals.append( (allname,(i,j,k,l)) ) + return dihedrals + +def compute_d(mol,dihedral): + conformer = mol.GetConformers()[0] + i,j,k,l = dihedral + result = rdkit.Chem.rdMolTransforms.GetDihedralDeg(conformer, i,j,k,l) + epsilon = 1e-3 + if result <= 0 - math.pi + epsilon : + result += math.pi + elif result > math.pi: + result -= math.pi + else: + pass + return (result) + +def next_mol2_block(infile): + block = '' + for line in open(infile): + if "@MOLECULE" in line: + if block == '': + pass + else: + yield block + block = '' + block = block + line + else: + block = block + line + yield block + +infile = sys.argv[1] + +mols = [ Chem.MolFromMol2Block(x,sanitize=True) for x in next_mol2_block(infile) ] +dihedrals = list_dihedrals(mols[0]) + +names = [ x[0] for x in dihedrals ] +print("\t".join(names)) +for mol in mols: + values = [ "%8.3f"%compute_d(mol,x) for (i,x) in dihedrals ] + print("\t".join(values)) + diff --git a/scripts/compute_rotatable_bonds_dihedral_pdb.py b/scripts/compute_rotatable_bonds_dihedral_pdb.py new file mode 100755 index 0000000..da1f96b --- /dev/null +++ b/scripts/compute_rotatable_bonds_dihedral_pdb.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python +import sys,os +from rdkit import Chem +import rdkit.Chem.rdMolTransforms +import math + +def list_dihedrals(mol): + RotatableBond = Chem.MolFromSmarts('[!$(*#*)&!D1]-&!@[!$(*#*)&!D1]') + rotatablebonds = mol.GetSubstructMatches(RotatableBond) + dihedrals = list() + for bond in rotatablebonds: + j,k = bond + atomj = mol.GetAtomWithIdx(j) + atomk = mol.GetAtomWithIdx(k) + jneighbors = atomj.GetNeighbors() + kneighbors = atomk.GetNeighbors() + i = None + for tmp in jneighbors: + if tmp.GetIdx() != k : + i = tmp.GetIdx() + break + l = None + for tmp in kneighbors: + if tmp.GetIdx() != j : + l = tmp.GetIdx() + break + if i != None and l != None: + namei = mol.GetAtomWithIdx(i).GetPDBResidueInfo().GetName().strip() + namej = mol.GetAtomWithIdx(j).GetPDBResidueInfo().GetName().strip() + namek = mol.GetAtomWithIdx(k).GetPDBResidueInfo().GetName().strip() + namel = mol.GetAtomWithIdx(l).GetPDBResidueInfo().GetName().strip() + # namei = mol.GetAtomWithIdx(i).GetPropsAsDict()['_TriposAtomName'] + # namej = mol.GetAtomWithIdx(j).GetPropsAsDict()['_TriposAtomName'] + # namek = mol.GetAtomWithIdx(k).GetPropsAsDict()['_TriposAtomName'] + # namel = mol.GetAtomWithIdx(l).GetPropsAsDict()['_TriposAtomName'] + allname = f"{namei}-{namej}-{namek}-{namel}" + dihedrals.append( (allname,(i,j,k,l)) ) + return dihedrals + +def compute_d(mol,dihedral): + conformer = mol.GetConformers()[0] + i,j,k,l = dihedral + result = rdkit.Chem.rdMolTransforms.GetDihedralDeg(conformer, i,j,k,l) + epsilon = 1e-3 + if result <= 0 - math.pi + epsilon : + result += math.pi + elif result > math.pi: + result -= math.pi + else: + pass + return (result) + +def next_mol2_block(infile): + block = '' + for line in open(infile): + if "COMPND" in line: + block = '' + block = block + line + elif "ENDMDL" in line: + block = block + line + yield block + else: + block = block + line + +infile = sys.argv[1] + +mols = [ Chem.MolFromPDBBlock(x,sanitize=True) for x in next_mol2_block(infile) ] +dihedrals = list_dihedrals(mols[0]) + +names = [ x[0] for x in dihedrals ] +print("\t".join(names)) +for mol in mols: + values = [ "%8.3f"%compute_d(mol,x) for (i,x) in dihedrals ] + print("\t".join(values)) + diff --git a/scripts/data b/scripts/data new file mode 100644 index 0000000..bee5fd4 --- /dev/null +++ b/scripts/data @@ -0,0 +1,86 @@ + 4590 AA2AR_new_DUDE_1 all.list + 3213 ABL1_new_DUDE_1 all.list + 5049 ACES_new_DUDE_1 all.list + 6732 ADA_new_DUDE_1 all.list + 6630 ADRB2_new_DUDE_1 all.list + 3213 AMPC_new_DUDE_1 all.list + 10098 ANDR_new_DUDE_1 all.list + 7140 CSF1R_new_DUDE_1 all.list + 4488 CXCR4_new_DUDE_1 all.list + 3774 D4_new_DUDE_1 all.list + 5508 DEF_new_DUDE_1 all.list + 8670 EGFR_new_DUDE_1 all.list + 2652 FA10_new_DUDE_1 all.list + 4386 FA7_new_DUDE_1 all.list + 4590 FABP4_new_DUDE_1 all.list + 7242 FGFR1_new_DUDE_1 all.list + 4692 FKB1A_new_DUDE_1 all.list + 4386 GLCM_new_DUDE_1 all.list + 8364 HDAC8_new_DUDE_1 all.list + 6528 HIVPR_new_DUDE_1 all.list + 3876 HMDH_new_DUDE_1 all.list + 7140 HS90A_new_DUDE_1 all.list + 4488 ITAL_new_DUDE_1 all.list + 6076 KITH_new_DUDE_1 all.list + 5304 KIT_new_DUDE_1 all.list + 8058 LCK_new_DUDE_1 all.list + 7956 MAPK2_new_DUDE_1 all.list + 4590 MK01_new_DUDE_1 all.list + 4386 MT1_new_DUDE_1 all.list + 11322 NRAM_new_DUDE_1 all.list + 12546 PARP1_new_DUDE_1 all.list + 4386 PLK1_new_DUDE_1 all.list + 4896 PPARA_new_DUDE_1 all.list + 3924 PTN1_new_DUDE_1 all.list + 866 PUR2_new_DUDE_1 all.list + 3348 RENI_new_DUDE_1 all.list + 1994 ROCK1_new_DUDE_1 all.list + 3800 SRC_new_DUDE_1 all.list + 2562 THRB_new_DUDE_1 all.list + 3082 TRY1_new_DUDE_1 all.list + 1887 TRYB1_new_DUDE_1 all.list + 4390 UROK_new_DUDE_1 all.list + 3469 XIAP_new_DUDE_1 all.list + 73 AA2AR_new_DUDE_1 fail.list + 32 ABL1_new_DUDE_1 fail.list + 153 ACES_new_DUDE_1 fail.list + 35 ADA_new_DUDE_1 fail.list + 53 ADRB2_new_DUDE_1 fail.list + 74 AMPC_new_DUDE_1 fail.list + 84 ANDR_new_DUDE_1 fail.list + 72 CSF1R_new_DUDE_1 fail.list + 33 CXCR4_new_DUDE_1 fail.list + 38 D4_new_DUDE_1 fail.list + 59 DEF_new_DUDE_1 fail.list + 66 EGFR_new_DUDE_1 fail.list + 17 FA10_new_DUDE_1 fail.list + 34 FA7_new_DUDE_1 fail.list + 33 FABP4_new_DUDE_1 fail.list + 56 FGFR1_new_DUDE_1 fail.list + 44 FKB1A_new_DUDE_1 fail.list + 47 GLCM_new_DUDE_1 fail.list + 63 HDAC8_new_DUDE_1 fail.list + 57 HIVPR_new_DUDE_1 fail.list + 41 HMDH_new_DUDE_1 fail.list + 58 HS90A_new_DUDE_1 fail.list + 89 ITAL_new_DUDE_1 fail.list + 227 KITH_new_DUDE_1 fail.list + 81 KIT_new_DUDE_1 fail.list + 166 LCK_new_DUDE_1 fail.list + 148 MAPK2_new_DUDE_1 fail.list + 60 MK01_new_DUDE_1 fail.list + 83 MT1_new_DUDE_1 fail.list + 127 NRAM_new_DUDE_1 fail.list + 209 PARP1_new_DUDE_1 fail.list + 47 PLK1_new_DUDE_1 fail.list + 118 PPARA_new_DUDE_1 fail.list + 378 PTN1_new_DUDE_1 fail.list + 224 PUR2_new_DUDE_1 fail.list + 206 RENI_new_DUDE_1 fail.list + 257 ROCK1_new_DUDE_1 fail.list + 147 SRC_new_DUDE_1 fail.list + 433 THRB_new_DUDE_1 fail.list + 688 TRY1_new_DUDE_1 fail.list + 328 TRYB1_new_DUDE_1 fail.list + 350 UROK_new_DUDE_1 fail.list + 772 XIAP_new_DUDE_1 fail.list diff --git a/scripts/output.png b/scripts/output.png new file mode 100644 index 0000000..45ac5e4 Binary files /dev/null and b/scripts/output.png differ diff --git a/scripts/plot.py b/scripts/plot.py new file mode 100755 index 0000000..130d5d6 --- /dev/null +++ b/scripts/plot.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python +import matplotlib.pyplot as plt +import matplotlib.colors as mcolors +import sys,os +import numpy as np +import math +from rdkit import Chem +from pathlib import Path +import argparse +from rdkit.Chem import AllChem +from rdkit.Chem import Draw +from mpl_toolkits.axes_grid1.inset_locator import inset_axes + +parser = argparse.ArgumentParser("Analysis of dihedrals") +parser.add_argument('-i', '--input', required = True, nargs= '+', help="Input csv files") +parser.add_argument('-m','--mol2', help = 'Input mol2 molecule', default='') + +args = parser.parse_args() + +all_input_files = args.input +mol2 = args.mol2 +# p = Path(".") +# all_input_files = list(p.glob("*.csv")) + +dataset = dict() +for tmp in all_input_files: + # name = tmp.name + name = tmp + tag = name[:-4] + dataset[name] = tag + +all_data = dict() +all_bonds = dict() + +if mol2 : + mol2 = Chem.MolFromMol2File(mol2) + AllChem.Compute2DCoords(mol2) + # Draw.MolToFile(mol2,'tmp.png') + a = Draw.MolToMPL(mol2) + for i in dir(a): + print(i) + for b in a.get_children(): + print(b) + from matplotlib.backend_bases import RendererBase + a.draw( renderer = RendererBase ) + a.show() + sys.exit() + +for filename,name in dataset.items(): +# print(name) + data = [] + lines = open(filename).readlines() + bonds = lines[0].strip().split() # rotatable bonds list in first line + all_bonds[name] = bonds + + for line in lines[1:]: + data.append(line.split()) + data = np.array(data,dtype=np.float32) + all_data[name] = data + + +ncate = len(all_data) +name = next(iter(all_data.keys())) + +for i,bond in enumerate(all_bonds[name]): + + r = 1.0 + dr = 0.2 + + outputfile = "%s.png"%(bond) + plt.xticks( [] ) + plt.yticks( [] ) + plt.xlabel(" Dihedral distribution ") + fig,ax = plt.subplots(figsize = (6,6)) + ax.set_xlim( [0-r-ncate*dr-0.2,r+ncate*dr+0.2] ) + ax.set_ylim( [0-r-ncate*dr-0.2,r+ncate*dr+0.2] ) + + # color = colors.pop() + colors = list(mcolors.TABLEAU_COLORS) + + for name,data in all_data.items(): + + x = data[...,i] + + scale = np.random.random_sample(x.shape) + tmpx = (scale * dr + r ) * np.cos( x*np.pi/180. ) + tmpy = (scale * dr + r ) * np.sin( x*np.pi/180. ) + + ax.scatter(tmpx,tmpy,label = name,color = colors.pop() ,alpha = 0.3) + + r += dr + + plt.title( bond,fontsize ='xx-large' ) + ax.legend() + plt.savefig(outputfile) + plt.cla() + + +# for name,data in all_data.items(): +# for i,bond in enumerate(all_bonds[name]): +# x = data[...,i] +# +# scale = np.random.random_sample(x.shape) +# tmpx = (scale * dr + r ) * np.cos( x*np.pi/180. ) +# tmpy = (scale * dr + r ) * np.sin( x*np.pi/180. ) +# +# outputfile = "%s.%s.png"%(name,bond) +# +# plt.figure(figsize=(6,6)) +# plt.xlim( [0-r-dr-0.2,r+dr+0.2] ) +# plt.ylim( [0-r-dr-0.2,r+dr+0.2] ) +# plt.xticks( [] ) +# plt.yticks( [] ) +# plt.xlabel(" Dihedra distribution ") +# +# plt.scatter(tmpx,tmpy,label = bond,color = 'g',alpha = 0.5) +# plt.title( name,fontsize ='xx-large' ) +# plt.legend() +# plt.savefig(outputfile) +# plt.cla() + + diff --git a/scripts/prepare.py b/scripts/prepare.py new file mode 100755 index 0000000..3af771e --- /dev/null +++ b/scripts/prepare.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python +import sys,os +import argparse +from pathlib import Path + +parser = argparse.ArgumentParser(description='Generate db2 for smile library') +parser.add_argument('-i', type=str, required = True, help="Input file *.smi. Make sure there are compound names there") +parser.add_argument('-o', type=str, default = 'DB2_Generating', help = 'Working dir' ) +parser.add_argument('-s', type=int, default = 500, help = 'Max number of compounds in each directory' ) + +args = parser.parse_args() + +infile = args.i +outdir = args.o +N = args.s + +p = Path('.') + +work_dir = p/outdir +work_dir.mkdir(exist_ok = True) + +n_split = 0 +count = 0 +split_dir = None +for line in open( infile ): + if len(line.split()) < 2: + sys.stderr.write("##### Error. There's no atom name for compound. \n") + sys.stderr.write("##### That a required option. Otherwise, db2 file can not trace back to origin molecule\n") + sys.stderr.write("##### Error line is:\n") + sys.stderr.write(line) + sys.exit(1) + smile = line.split()[0] + name = line.strip().split()[-1] + newline = f"{smile} {name}\n" + if count % N == 0: + n_split += 1 + split_dir = work_dir/f'split_{n_split}' + split_dir.mkdir(exist_ok = True) + db2_dir = split_dir/f'{count}' + db2_dir.mkdir( exist_ok = True ) + db2_smi = db2_dir/f'{count}.smi' + db2_smi.write_text( newline ) + + count += 1 + +