ChimeraX docs icon

Command: hbonds

hbonds   atom-spec1  [ saltOnly  true | false ] [ restrict  cross | both | any |  atom-spec2 ] [ color  colorname ] [ radius  r ] [ dashes  N ] [ name  name ] [ reveal  true | false ]  other-options

~hbondsname  name ]

The hbonds command uses atom types and geometric criteria to identify hydrogen bonds (H-bonds) involving the specified atoms. The saltOnly option allows finding just the salt bridges, and the restrict option allows finding only H-bonds within the specified set of atoms or between them and a second set (details...). The total number of H-bonds found is reported in the Log. The total includes all H-bonds consistent with the criteria, even if they could not coexist simultaneously. Distances and other details can be logged and/or saved to a file.

By default, the H-bonds are shown as dashed pseudobonds. Their color, radius, and number of dashes can be specified. The pseudobonds can be removed with the ~hbonds command. The default name of the pseudobond model(s) for creation (and for removal with the ~hbonds command) is hydrogen bonds, but different names can be assigned and used. When multiple pseudobond models have the same name, specific models can be removed with the close command.

Pseudobonds are only shown if their endpoint atoms are shown; reveal true can be used to display all involved residues so that all of the H-bonds will be shown (details...). Since a backbone atom is considered as shown when its cartoon is suppressing the backbone atoms, a pseudobond (which goes the atom position) may appear to be floating in space. Floating pseudobonds can be hidden with the command cartoon suppress false, with the side effect of showing any backbone atoms that were already displayed but suppressed.


hb ligand restrict protein reveal true
– hide all atoms, then identify H-bonds between ligand and protein, displaying the residues involved; note that the automatic classifier ligand may not specify exactly (or only) the atoms of interest, and in that case, residue names, numbers, and/or chain IDs may be used instead, as in the following example:
hb /a:nad restrict cross log true reveal true
– calculate H-bonds between the NAD residue in chain A and everything else, write results to the Log
hide; cartoon suppress f
hb (/a & protein) restrict (/b & protein) reveal true
– hide all atoms and show cartoon (enabling coincident backbone-atom display), then identify H-bonds between chain A protein and chain B protein, displaying the residues involved; the parentheses are not required, but may be included for clarity
del solvent; hide protein
hb sidechain restrict both reveal t color yellow radius .08
hb sidechain restrict both salt t name "salt bridges" col magenta radius .1
– delete solvent, hide protein atoms, and calculate all sidechain-sidechain H-bonds and their salt bridge subset as two separate pseudobond models, displaying the involved residues and making the salt-bridge pseudobonds fatter so that they are clearly visible over the others

H-Bond-Related Features

Independent of the hbonds command, reading an mmCIF file with base-pairing H-bond information automatically creates hydrogen bonds pseudobonds. The command-line specifier hbonds (not to be confused with the command) refers to pseudobonds in the pseudobond model named hydrogen bonds. An interactive histogram of pseudobond lengths can be plotted with crosslinks histogram, and a chain network diagram summarizing intra- and interchain pseudobonds can be shown with crosslinks network. See also: style, color

Command Options

Option keywords and Boolean (truth) values can be truncated, with synonyms for true: True, 1, and synonyms for false: False, 0. A vertical bar “|” designates mutually exclusive values, and default settings are indicated with bold.

saltOnly  true | false
Whether to limit the results to salt bridges, that is, H-bonds between formally charged functional groups. Such groups are identified by their atom types, where possible. In the absence of explicit hydrogens, a histidine sidechain is assumed to be formally charged unless one of its nitrogens is coordinating a metal ion or identified unambiguously as an H-bond acceptor.
restrict  cross | both | any | atom-spec2
Whether to limit H-bond detection to one of the following:
makePseudobonds  true | false
Whether to show the H-bonds in 3D by creating a pseudobond model. The pseudobonds will be drawn between the donor and acceptor atoms, or if hydrogens are present, between the hydrogens and acceptor atoms. H-bond pseudobonds are only displayed when both endpoint atoms are displayed, but the reveal option can be used to ensure all H-bonds are displayed by displaying the associated residues. For purposes of pseudobond display, backbone atoms are considered as displayed when their display is being suppressed by cartoon (ribbon).

The number of H-bonds found may exceed the apparent number of pseudobonds because the same pair of atoms could be identified as both donor-acceptor and acceptor-donor, even if only one of those interactions could form at a time.

name  name
Name for the pseudobond model (default hydrogen bonds, also the default name for deletion with ~hbonds). Using a new name creates a separate model that can be hidden/shown/closed independently. Names containing spaces must be enclosed in quotation marks.
color  colorname
Color to use for pseudobonds depicting H-bonds (but see also twoColors and slopColor). The colorname can be any color name that specifies a single color (default dark cyan). Subsequent recoloring without recalculating the H-bonds can be done with the color command, for example: color hbonds goldenrod target p
radius  r
Radius in Å to use for pseudobonds depicting H-bonds (default 0.075); can be changed later with style.
dashes  N
Number of dashes to use for pseudobonds depicting H-bonds (default 6). Only whole numbers are accepted, with 0 indicating solid sticks. Currently, odd numbers are rounded down to give an even number of dashes. The number of dashes can be changed later with style.
showDist  true | false
Whether to label the pseudobonds with the corresponding distances (not yet implemented).
However, any pseudobonds can be labeled by length with label and plotted as a histogram by length with crosslinks histogram.
reveal  true | false
Whether to display all atoms of a residue containing an H-bonding atom if that atom is not displayed initially, to ensure displaying all H-bond pseudobonds. (By default, if the atom on either end of a pseudobond representing an H-bond is not shown, the pseudobond itself is not shown, although it still exists; displaying the atom allows the H-bond to be shown.)
interSubmodel  true | false
Whether to look for H-bonds between submodels of the same model.
interModel  true | false
Whether to look for H-bonds between models.
intraModel  true | false
Whether to look for H-bonds within models.
intraMol  true | false
Whether to include intramolecular H-bonds, where a molecule is defined as a covalently bonded set of atoms.
intraRes  true | false
Whether to include intraresidue H-bonds.
cacheDA  true | false
Whether to cache and reuse donor and acceptor information rather than regenerating it each time the command is used; useful for calculations on different conformations of the same structure. The default is true for a trajectory, otherwise false.
perCoordset  true | false
Whether to calculate and retain H-bonds for each frame of a trajectory, instead of just the current frame. The default is true for a trajectory if it is the only atomic model present or specified in the command.
relax  true | false
Whether to relax the precise criteria for hydrogen bonding.
distSlop  tolerance
How much to relax the distance criteria if relax is true; tolerance is 0.4 Å by default.
angleSlop  tolerance
How much to relax the angle criteria if relax is true; tolerance is 20.0 degrees by default.
twoColors  true | false
Whether to use different colors for H-bonds meeting and not meeting the precise criteria (i.e., whether a different color should be used for H-bonds outside the precise criteria but within the tolerance values).
slopColor  colorname
If twoColors is true, the color to use for H-bonds not meeting the precise criteria but within the tolerance values. The colorname can be any color name that specifies a single color (default dark orange).
retainCurrent  true | false
Whether to keep the pseudobonds depicting a previously determined set of H-bonds through a subsequent round of detection (as opposed to replacing the old with the new). Regardless of this setting, however, pre-existing H-bond pseudobonds will not be replaced if the new pseudobond model is given a different name.
saveFile  file
Save H-bond information to a file. The information includes donor and acceptor atom specifications (see namingStyle), donor-acceptor distances, and when hydrogens are present, hydrogen atom specifications and hydrogen-acceptor distances. File is the output file pathname, enclosed in quotation marks if it includes spaces, or the word browse to specify it interactively in a file browser window.
log  true | false
Whether to write H-bond information (as described above for saveFile) to the Log.
namingStyle  simple | command | serial
How to describe atoms in H-bond information written to a file or the log: Model number will be included when multiple models are present.
batch  true | false
Whether to suppress certain errors; useful for no-GUI batch processing. Currently, the only error suppressed when batch is true is that which arises if no atoms are selected when selRestrict is specified.

Method and Geometric Criteria

Distance and angle cutoffs for H-bonding are based on a survey of small-molecule crystal structures, as described in

Three-dimensional hydrogen-bond geometry and probability information from a crystal survey. Mills JE, Dean PM. J Comput Aided Mol Des. 1996 Dec;10(6):607-22.
There are many different sets of geometric criteria, corresponding to the many different donor-acceptor combinations (see Tables 5-8 in the reference). There is an upper bound on distance and one or more angular range criteria for each category of H-bond. It is generally useful to relax the criteria since most structures are not as high-resolution as those used in the survey. User-specified tolerances are added to each criterion's upper bound and/or subtracted from its lower bound (depending on the particular criterion).

Chimera uses atom and residue names, or if these are not “standard,” the coordinates of atoms, to determine connectivity and atom types, which in turn determine which geometric criteria are appropriate for detecting a hydrogen bond between specific atoms. Possible donor groups are hydrogen-bearing nitrogen, oxygen, and sulfur atoms, and possible acceptor groups are nitrogen, oxygen, and sulfur atoms with a lone pair. H-bonds involving other types of atoms are not considered. Not all of the possible donor-acceptor combinations were listed in the Mills and Dean parameter tables; some categories of sulfur were not surveyed, and several combinations of the surveyed types were not observed frequently enough to collect good statistics on their geometries. In such cases, FindHbond applies estimated H-bond criteria.

When there are no explicit hydrogens on a potential donor atom, FindHBond will use the donor atom type to infer their presence. For functional groups where the hydrogen positions are well-determined by the positions of the nonhydrogen atoms, the H-bonds detected in the presence and absence of explicit hydrogen atoms should be virtually identical. For functional groups where the hydrogen position is not well-determined (such as rotatable hydroxyls), the presence of an explicit hydrogen atom will limit the detected H-bonds to those appropriate for the observed position, instead of all of its possible positions.

UCSF Resource for Biocomputing, Visualization, and Informatics / October 2017