JMol can be used to identify Hydrogen bonds in proteins by the script "calculate HBONDS". By outputting the state of the network, we can obtain a lisdt of H-bonds.

Here's one line from an example output (PDB ID number 1a1x):

74    540    4096    0.001    -2.507   hbond;

I believe the correct interpretation of the first two numbers is that atom 74 is H-bonded to atom 540. (I'm not really sure what the other numbers mean.)

Question: How can we determine which atom is the donor and which is the acceptor?

In the above example, atom 74 is a Nitrogen atom and atom 540 is a Carbon atom, so presumably the Nitrogen atom is the donor. But, how can we tell in general?


2 Answers 2


I dont know about JMol, but this can be easily done with UCSF Chimera.

I loaded the 1a1x structure. Then selected: Tools > Structure Analysis > FindHBond

I kept the default values and selected Write information to reply log

Then clicked OK

On the structure the H Bonds will be identified with a coloured line.

To view which is the donor and acceptor go to: Favorites > Reply log

An output of the reply log is below:

H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
ASP 12.A N    GLU 25.A OE2  no hydrogen  3.012  N/A
HIS 13.A N    GLU 25.A OE1  no hydrogen  3.338  N/A
HIS 13.A ND1  ASP 12.A OD2  no hydrogen  2.835  N/A
LEU 14.A N    TRP 70.A O    no hydrogen  2.934  N/A
TRP 15.A N    ARG 23.A O    no hydrogen  2.866  N/A
120 hydrogen bonds found

As you can see the donor and acceptor has been identified as defined in the header line.

If you wish, the information can also be written to a file by selecteing Write to text file in the FindHBond window.


I also had to do the same using Jmol, and I figured it out how to get a list of all the hbonds.

Step 1: Calculate the hbonds with or without RASMOL method. It's up to you, e.g.,

jmolScriptWait("select not hydrogen; set hbondsRasmol FALSE; calculate HBONDS")

Step 2: Only display the hbonds

jmolScriptWait("display connected(hbond)")

Step 3: Export the bonding info to JavaScript array


You will have an array of objects each will contain the atoms connected by this hbond and the bond length.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .