3
$\begingroup$

I'm using OpenBabel 3.1.1 and the Python to C++ bindings to load pdbqt files and convert them to pdb with explicit hydrogens. Unfortunately, I can't add nonpolar hydrogens using OpenBabel. I can do this using Autodock's PMV GUI as a test and comparison, so my concern is not the underlying molecule.

In the python bindings, I've tried combinations of AddHydrogens(), AddNewHydrogens(), AddPolarHydrogens(), AddNonPolarHydrogens(), checking the OBMol.NumAtoms() each time, and nothing changes.

In the OpenBabel GUI I've loaded the pdbqt files and tried combinations of "Add hydrogens (make explicit)", "Add hydrogens to nonpolar atoms only", and "Adds hydrogens to polar atoms only". Nothing changes the pdb output. Note: There is one polar-hydrogen present which can be removed and added back.

Ultimately, I must determine why the Python bindings aren't adding hydrogens. Using the GUI was a sanity check.

I've included for you below a copy & paste of a pdbqt file.

Many thanks for your help.

REMARK VINA RESULT:    -8.009      0.000      0.000
REMARK INTER + INTRA:         -11.923
REMARK INTER:                 -10.819
REMARK INTRA:                  -1.105
REMARK UNBOUND:                -1.105
REMARK  Name = ZINC000004125379
REMARK                            x       y       z     vdW  Elec       q    Type
REMARK                         _______ _______ _______ _____ _____    ______ ____
ROOT
ATOM      1  C   LIG    1       -7.551 101.695  50.079  0.00  0.00    -0.030 A 
ATOM      2  C   LIG    1       -7.837 101.486  48.730  0.00  0.00    +0.090 A 
ATOM      3  C   LIG    1       -9.147 101.402  48.306  0.00  0.00    +0.030 A 
ATOM      4  C   LIG    1      -10.180 101.524  49.216  0.00  0.00    -0.050 A 
ATOM      5  C   LIG    1       -9.907 101.732  50.562  0.00  0.00    +0.130 A 
ATOM      6  C   LIG    1      -11.610 101.431  48.746  0.00  0.00    +0.100 C 
ATOM      7  C   LIG    1       -8.592 101.813  50.998  0.00  0.00    +0.120 A 
ENDROOT
BRANCH   1  13
ATOM      8  C   LIG    1       -3.446 102.767  52.833  0.00  0.00    +0.240 A 
ATOM      9  N   LIG    1       -2.257 102.405  52.445  0.00  0.00    -0.250 NA
ATOM     10  N   LIG    1       -2.330 101.778  51.323  0.00  0.00    -0.230 NA
ATOM     11  C   LIG    1       -3.581 101.712  50.944  0.00  0.00    +0.080 A 
ATOM     12  S   LIG    1       -4.712 101.147  49.709  0.00  0.00    +0.190 S 
ATOM     13  C   LIG    1       -6.145 101.786  50.535  0.00  0.00    +0.170 A 
ATOM     14  N   LIG    1       -5.709 102.349  51.619  0.00  0.00    -0.250 NA
ATOM     15  N   LIG    1       -4.348 102.331  51.887  0.00  0.00    -0.340 N 
BRANCH   8  17
ATOM     16  C   LIG    1       -3.372 102.687  55.311  0.00  0.00    +0.060 C 
ATOM     17  C   LIG    1       -3.777 103.522  54.095  0.00  0.00    +0.160 C 
ENDBRANCH   8  17
ENDBRANCH   1  13
BRANCH   5  18
ATOM     18  N   LIG    1      -10.956 101.853  51.480  0.00  0.00    -0.620 N 
ATOM     19  H   LIG    1      -11.561 102.610  51.427  0.00  0.00    +0.410 HD
BRANCH  18  20
ATOM     20  C   LIG    1      -11.124 100.921  52.438  0.00  0.00    +0.510 C 
ATOM     21  S   LIG    1      -10.962  99.261  52.056  0.00  0.00    -0.470 S 
BRANCH  20  22
ATOM     22  N   LIG    1      -11.419 101.297  53.699  0.00  0.00    -0.640 N 
ATOM     23  H   LIG    1      -12.344 101.330  53.991  0.00  0.00    +0.410 HD
ATOM     24  C   LIG    1      -10.431 101.629  54.553  0.00  0.00    +0.530 C 
ATOM     25  O   LIG    1       -9.272 101.589  54.186  0.00  0.00    -0.380 OA
BRANCH  24  26
ATOM     26  C   LIG    1      -10.754 102.041  55.932  0.00  0.00    -0.180 A 
ATOM     27  C   LIG    1      -10.619 103.376  56.316  0.00  0.00    +0.070 A 
ATOM     28  C   LIG    1      -10.922 103.754  57.607  0.00  0.00    +0.000 A 
ATOM     29  C   LIG    1      -11.361 102.814  58.524  0.00  0.00    +0.080 A 
ATOM     30  C   LIG    1      -11.500 101.489  58.153  0.00  0.00    -0.010 A 
ATOM     31  C   LIG    1      -11.205 101.095  56.861  0.00  0.00    +0.170 A 
ATOM     32  F   LIG    1      -11.341  99.801  56.499  0.00  0.00    -0.110 F 
ENDBRANCH  24  26
ENDBRANCH  20  22
ENDBRANCH  18  20
ENDBRANCH   5  18
TORSDOF 6

EDIT #1 I suspect I do not understand the underlying mechanism behind adding hydrogens in OpenBabel. I created a benzene ring in Avogadro and then removed the hydrogens. Avogadro and Autodock PMV can add hydrogens back, but OpenBabel will not. This is the test benzen.pdb:

COMPND    UNNAMED
AUTHOR    GENERATED BY OPEN BABEL 2.3.90
HETATM    1  C   UNL     1       0.371  -1.202   1.209  1.00  0.00           C1-
HETATM    2  C   UNL     1      -1.019  -1.145   1.197  1.00  0.00           C1-
HETATM    3  C   UNL     1      -1.701  -1.052  -0.011  1.00  0.00           C1-
HETATM    4  C   UNL     1      -0.994  -1.017  -1.209  1.00  0.00           C1-
HETATM    5  C   UNL     1       0.396  -1.074  -1.197  1.00  0.00           C1-
HETATM    6  C   UNL     1       1.078  -1.167   0.011  1.00  0.00           C1-
CONECT    1    2    6                                                 
CONECT    2    1    3                                                 
CONECT    3    2    4                                                 
CONECT    4    3    5                                                 
CONECT    5    4    6                                                 
CONECT    6    1    5                                                 
MASTER        0    0    0    0    0    0    0    0    6    0    6    0
END
$\endgroup$
0

1 Answer 1

4
$\begingroup$

Like a .cif (see here), your .pdbqt does not store the bond order between atoms in your model. So OpenBabel (or other programs) have to guess by presence of other atoms already present if the addition of hydrogens is sensible by valence rules, or not. There equally are checks for interatomic distances and geometry before hydrogens can be add on idealized positions. If the conformer presents a case outside the thresholds, the addition of hydrogens on idealized / riding positions will fail.

You can run a forcefield optimization followed by an addition of hydrogens all over the molecule

obabel example.pdbqt --gen3d -O intermediate.pdb
obabel intermediate.pdb -h -O output.pdb

however on expense to loose this conformer to obtain one OpenBabel* assumes good enough (depends on the force field selected). It is not obvious if this is acceptable for your in silico docking.

The problems become (interactively) visible if you load the structure e.g., Jmol and subsequently request an addition of hydrogens. On the program's console

load "example.pdbqt";
connect aromatic modify;
calculate aromatic;
calculate hydrogens;

yields a visualization. Note the nitrogen bound hydrogens, the methyl/methylene group (pointing to the west), and the ethyl/ethylene group (to south east):

enter image description here

Here, you need additional information about the molecule initially submitted to your docking experiment. For example, was there a $\ce{-CH3}$ methyl group and is there evidence it still is there? What happened to the (presumed) carbonyl $\ce{C=O}$ which appears now elongated like an alcohol? The unit of thiourea?

The structure exported, by an additional write ex2.pdb;:

ATOM      1  C   LIG     1      -7.551 101.695  50.079  0.00  0.00           C  
ATOM      2  C   LIG     1      -7.837 101.486  48.730  0.00  0.00           C  
ATOM      3  C   LIG     1      -9.147 101.402  48.306  0.00  0.00           C  
ATOM      4  C   LIG     1     -10.180 101.524  49.216  0.00  0.00           C  
ATOM      5  C   LIG     1      -9.907 101.732  50.562  0.00  0.00           C  
ATOM      6  C   LIG     1     -11.610 101.431  48.746  0.00  0.00           C  
ATOM      7  C   LIG     1      -8.592 101.813  50.998  0.00  0.00           C  
ATOM      8  C   LIG     1      -3.446 102.767  52.833  0.00  0.00           C  
ATOM      9  N   LIG     1      -2.257 102.405  52.445  0.00  0.00           N  
ATOM     10  N   LIG     1      -2.330 101.778  51.323  0.00  0.00           N  
ATOM     11  C   LIG     1      -3.581 101.712  50.944  0.00  0.00           C  
ATOM     12  S   LIG     1      -4.712 101.147  49.709  0.00  0.00           S  
ATOM     13  C   LIG     1      -6.145 101.786  50.535  0.00  0.00           C  
ATOM     14  N   LIG     1      -5.709 102.349  51.619  0.00  0.00           N  
ATOM     15  N   LIG     1      -4.348 102.331  51.887  0.00  0.00           N  
ATOM     16  C   LIG     1      -3.372 102.687  55.311  0.00  0.00           C  
ATOM     17  C   LIG     1      -3.777 103.522  54.095  0.00  0.00           C  
ATOM     18  N   LIG     1     -10.956 101.853  51.480  0.00  0.00           N  
ATOM     19  H   LIG     1     -11.561 102.610  51.427  0.00  0.00           H  
ATOM     20  C   LIG     1     -11.124 100.921  52.438  0.00  0.00           C  
ATOM     21  S   LIG     1     -10.962  99.261  52.056  0.00  0.00           S  
ATOM     22  N   LIG     1     -11.419 101.297  53.699  0.00  0.00           N  
ATOM     23  H   LIG     1     -12.344 101.330  53.991  0.00  0.00           H  
ATOM     24  C   LIG     1     -10.431 101.629  54.553  0.00  0.00           C  
ATOM     25  O   LIG     1      -9.272 101.589  54.186  0.00  0.00           O  
ATOM     26  C   LIG     1     -10.754 102.041  55.932  0.00  0.00           C  
ATOM     27  C   LIG     1     -10.619 103.376  56.316  0.00  0.00           C  
ATOM     28  C   LIG     1     -10.922 103.754  57.607  0.00  0.00           C  
ATOM     29  C   LIG     1     -11.361 102.814  58.524  0.00  0.00           C  
ATOM     30  C   LIG     1     -11.500 101.489  58.153  0.00  0.00           C  
ATOM     31  C   LIG     1     -11.205 101.095  56.861  0.00  0.00           C  
ATOM     32  F   LIG     1     -11.341  99.801  56.499  0.00  0.00           F  
ATOM     33  H33 LIG     1      -7.017 101.388  48.003  1.00  0.00           H  
ATOM     34  H34 LIG     1      -9.370 101.238  47.241  1.00  0.00           H  
ATOM     35  H35 LIG     1     -12.434 101.528  49.468  1.00  0.00           H  
ATOM     36  H36 LIG     1     -11.829 101.266  47.681  1.00  0.00           H  
ATOM     37  H37 LIG     1      -8.372 101.970  52.064  1.00  0.00           H  
ATOM     38  H38 LIG     1      -1.411 102.587  52.945  1.00  0.00           H  
ATOM     39  H39 LIG     1      -1.753 102.201  50.624  1.00  0.00           H  
ATOM     40  H40 LIG     1      -6.345 102.790  52.253  1.00  0.00           H  
ATOM     41  H41 LIG     1      -2.291 102.489  55.276  1.00  0.00           H  
ATOM     42  H42 LIG     1      -3.920 101.733  55.300  1.00  0.00           H  
ATOM     43  H43 LIG     1      -3.614 103.238  56.232  1.00  0.00           H  
ATOM     44  H44 LIG     1      -4.239 104.520  54.135  1.00  0.00           H  
ATOM     45  H45 LIG     1     -10.678  99.132  50.794  1.00  0.00           H  
ATOM     46  H46 LIG     1      -9.234 101.292  53.232  1.00  0.00           H  
ATOM     47  H47 LIG     1     -10.271 104.126  55.590  1.00  0.00           H  
ATOM     48  H48 LIG     1     -10.815 104.806  57.909  1.00  0.00           H  
ATOM     49  H49 LIG     1     -11.600 103.123  59.552  1.00  0.00           H  
ATOM     50  H50 LIG     1     -11.846 100.747  58.888  1.00  0.00           H  
CONECT    1   13   13
CONECT    2    3    3
CONECT    4    6    6
CONECT    5    7    7
CONECT    8   17   17
CONECT   26   31   31
CONECT   27   28   28
CONECT   29   30   30

* Note, you seem to use an old version of OpenBabel. It currently is shipped as version 3.1.1 (source of the releases, and the most recent documentation).

$\endgroup$
1
  • $\begingroup$ Thank you, I suspected, but I wasn't sure this was the case. You raise an excellent point concerning losing the conformation. The incoming drugs are from an Autodock Vina virtual screen, and therefore I can't mess with the heavy atom conformation. Autodoc Vina uses a united atom force field; the only hydrogens are polar hydrogens. Your answer had helped, and I've been left with food for thought. Thanks $\endgroup$ Aug 24, 2023 at 16:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.