From: Josh Vermaas (
Date: Mon Feb 01 2016 - 08:56:09 CST

The degrees angle in VMD is the angle for A-D-H, which always threw me,
since the angle I was expecting to measure was D-H-A like I think you
are using it. I've never used another h-bond measurement device than
VMD, but it doesn't surprise me that they disagree. The defaults for VMD
are really quite restrictive, as they are the distances between the
heavy atoms, not the H-A distance. Weaker hydrogen bonds usually need a
slightly longer cutoff (3.5 A or so), and many hydrogen bonds I'm
interested in don't always make it under 20 degrees, which is quite a
strong interaction. Since the two codes have different definitions of a
hydrogen bond, its quite natural that their results disagree. Its up to
you to figure out which one portrays the data the best. I tend to like
VMD's defintion since I can just use the H-bonds representation and
visually inspect which h-bonds I agree with and which I don't. I just
fiddle with the exact cutoffs as I go over the trajectories until I'm
happy with the result.

-Josh Vermaas

On 02/01/2016 07:24 AM, debra ragland wrote:
> Hello VMD users,
> Forgive me first if this is repetitive. I have searched the mailing list archive and the vmd documentation but I can't seem to nail down the answer to my problem.
> Previously, I ran trajectories using AMBER and carried out Hbond measurements in VMD without concern. Now that my lab (and myself) has switched to Schrödinger/Desmond software I find that there is a difference in geometric criteria that I don't understand. In VMD documentation I have found the following;
> Under measure documentation
> "hbonds cutoff angle selection1 [selection2]: Find all hydrogen bonds in the given selection(s), using simple geometric criteria. Donor and acceptor must be within the cutoff distance, and the angle formed by the donor, hydrogen, and acceptor must be less than angle from 180 degrees. Only non-hydrogen atoms are considered in either selection. If both selection1 and selection2 are given, the selection1 is considered the donor and selection2 is considered the acceptor. If only one selection is given, all non-hydrogen atoms in the selection are considered as both donors and acceptors. The two selections must be from the same molecule. The function returns three lists; each element in each list corresponds to one hydrogen bond. The first list contains the indices of the donors, the second contains the indices of the acceptors, and the third contains the index of the hydrogen atom in the hydrogen bond.
> Known Issue: The output of hbonds cannot be considered 100% accurate if the donor and acceptor selection share a common set of atoms."
> I recognize the defaults are a distance of 3.0Å and 20degrees. However, I'm not sure if the angle measure is just 20 degrees or 20 degrees FROM 180. From the archives, I think it's standard for a user to find their angle cutoff by using the GUI and measuring the angle between D and A via selecting points at the donor to the hydrogen to the acceptor(angle D-H-A). When I do this for my HIV protease trajectories, say between residues 32 and 84 I get a measure of 162.5 degrees and a distance of ~2Å. Using this information I leave the distance cutoff as such when I run the script from the command line, and changed the angle (if I understand correctly) to 170 degrees to ensure good measurement across all frames(as well as making sure the other selection criteria is appropriate). I have tested many angle cutoffs and I seem to hit a maximum hbond occupancy after about 170 degrees.
> In Schrödinger the geometric criteria of an hbond is;
> 1. The H::A distance must be less than or equal to 2.5Å
> 2. The D-H::A angle must be at least 120 degrees
> 3. The H::A-AA angle must be at least 90 degrees -- *I don't know if this is a given in the VMD code*
> Here :: is a potential Hbond and AA is the atom attached to the acceptor.
> In any case, the results that I get from VMD are drastically different from the ones that I get from Schrödinger. For instance the pair I mentioned above where residue 84 is the donor and 32 is the acceptor specifically, I get a maximum occupancy of about 62%. For the same pair and criteria--measured using the same trajectory and number of frames-- in Schrödinger I get an occupancy of 99%. I should point out that the angle measurements in the Maestro GUI differ from those using the VMD GUI.
> Has this ever been an issue before(e.g. VMD measurements vs other software)? Do I understand the VMD criterion correctly? Admittedly, tinkering with the Schrödinger python API is far more difficult than adjusting settings in VMD, but I'm wondering is it better to use the native software that the trajectory was run on if there's the option.