hbond

Calculate hydrogen bonds using geometric criteria.

hbond [<dsname>] 
      [out <filename>] 
      [<mask>] 
      [angle <acut>] 
      [dist <dcut>]
      [donormask <dmask> [donorhmask <dhmask>]] 
      [acceptormask <amask>]    
      [avgout <filename>] 
      [printatomnum] 
      [nointramol] 
      [image]
      [solventdonor <sdmask>]
      [solventacceptor <samask>][solvout <filename>] 
      [bridgeout <filename>]
      [series [uuseries <filename>][uvseries <filename>]]
      [bseries [bseriesfile ]] 
      [uuresmatrix [uuresmatrixnorm {none|frames}] [uuresmatrixout ]]
      [splitframe ]

[<dsname>] Data set name.
[out <filename>] Write # of solute-solute hydrogen bonds (aspect [UU]) vs time to this file. If searching for solute-solvent hydrogen bonds, write # of solute-solvent hydrogen bonds (aspect [UV]) and # of bridging solvent molecules (aspect [Bridge]), as well as the residue # of the bridging solvent and the solute residues being bridged with format ’<solvent resnum>(<solute res1>+<solute res2>+…+),…’ (aspect [ID]).
[<mask>] Atoms to search for solute hydrogen bond donors/acceptors.
[angle <acut>] Angle cutoff for hydrogen bonds (default 135°). Can be disabled by specifying -1.
[dist <dcut>] Distance cutoff for hydrogen bonds (acceptor to donor heavy atom, default 3.0 Å).
[donormask <dmask>] Use atoms in <dmask> as solute donor heavy atoms. If ’donorhmask’ not specified only atoms bonded to hydrogen will be considered donors.
[donorhmask <dhmask>] Use atoms in <dmask> as solute donor hydrogen atoms. Should only be specified if ’donormask’ is. Should be a 1 to 1 correspondence between donormask and donorhmask.
[acceptormask <amask>] Use atoms in <amask> as solute acceptor atoms.
[avgout <filename>] Write solute-solute hydrogen bond averages to <filename>.
[printatomnum] Add atom numbers to the output, in addtion to residue name, residue number and atom name.
[nointramol] Ignore intramolecular hydrogen bonds.
[image] Turn on imaging of distances/angles.
[solventdonor <sdmask>] Use atoms in <sdmask> as solvent donors. Can specify ions as well.
[solventacceptor <samask>] Use atoms in <samask> as solvent acceptors. Can specify ions as well.
[solvout <filename>] Write solute-solvent hydrogen bond averages to <filename>. If not specified and ’avgout’ is, solute-solvent hydrogen bonds averages will be written to that file.
[bridgeout <filename>] Write information on detected solvent bridges to <filename>. If not specified, will be written to same place as ’solvout’.
[series] Save hydrogen bond formed (1.0) or not formed (0.0) per frame for any detected hydrogen bond. Solute-solute hydrogen bonds are saved with aspect [solutehb], solute-solvent hydrogen bonds are saved with aspect [solventhb]. [uuseries <filename>] File to write solute-solute hbond time series data to. [uvseries <filename>] File to write solute-solvent hbond time series data to.
[bseries] Save bridge formed (1.0) or not formed (0.0) per frame for any detected bridge. Bridges are saved with aspect [bridge_<indexlist>], where is an underscore (‘_’) delimited list of bridged atom/residue numbers (depending on bridgebyatom).
[bseriesfile <filename>] File to write bridge time series data to.
[uuresmatrix] If specified, create a matrix with aspect [UUresmat] containing # of hydrogen bonds between each possible solute residue pair.
[uuresmatrixnorm {none|frames}] Control how matrix is normalized: none=no normalization, frames=normalize by total # frames.
[uuresmatrixout <file>] If specified, write matrix data to specified file.
[splitframe <comma-separated-list>] If specified, aplit the average hydrogen bond (avgout, solvout, bridgeout) analysis into sections delimited by the frame numbers. For example, ‘splitframe 250,500,1000’ will divide analysis into frames 1-249, 250-499, 500-999, and 1000 to end.

Data Sets Created:

 <dsname>[UU] Number of solute-solute hydrogen bonds.
 <dsname>[UV] (only for solventdonor/solventacceptor) Number of solute-solvent hydrogen bonds.
 <dsname>[Bridge] (only for solventdonor/solventacceptor) Number of bridging solvent molecules.
 <dsname>[ID] (only for solventdonor/solventacceptor) String identifying bridging solvent residues and the solute residues they bridge.
 <dsname>[solutehb] (series only) Time series for solute-solute hydrogen bonds; 1 for present, 0 for not present.
 <dsname>[solventhb] (series only) Time series for solute-solvent hydrogen bonds; 1 for present, 0 for not present.
<dsname>[bridge_] (bseries only) Time series for bridge; 1 for present, 0 for not present. The is an underscore ('_') delimited list of bridged atom/residue numbers (depending on bridgebyatom). 
<dsname>[UUresmatr] (uuresmatrix only) Solute residue hydrogen bond matrix.

Note that series data sets are not generated until hydrogen bonds are actually determined (i.e. run is called).

Determine hydrogen bonds in each coordinate frame using simple geometric criteria. A hydrogen bond is defined as being between an acceptor heavy atom A, a donor hydrogen atom H, and a donor heavy atom D. If the A to D distance is less than the distance cutoff and the A-H-D angle is greater than the angle cutoff a hydrogen bond is considered formed. Imaging of distances/angles is not performed by default, but can be turned on using the image keyword.

Potential hydrogen bond donor/acceptor atoms are searched for as follows:
1. If just <mask> is specified donors and acceptors will be automatically determined from <mask>.
2. If <donormask> is specified donors will be determined from <dmask> (only atoms bonded to hydrogen will be considered valid).
Optionally, donorhmask can be used in conjunction with donormask to explicitly specify the hydrogen atoms bonded to donor atoms.
Acceptors will be automatically determined from <mask>.
3. If acceptormask is specified acceptors will be determined from <amask>. Donors will be automatically determined from <mask>.
4. If both acceptormask and donormask are specified only <amask> and <dmask> will be used; no searching will occur in <mask>.

Automatic determination of hydrogen bond donors/acceptors uses the simplistic criterion that “hydrogen bonds are FON”, i.e., hydrogens bonded to F, O, and N atoms are considered donors, and F, O, and N atoms are considered acceptors. Intra-molecular hydrogen bonds can be ignored using the nointramol keyword. The number of hydrogen bonds present at each frame will be determined and written to the file specified by out. If desired, the bridge [ID] data can be used in conjunction with the keep command to generate structures that only contain bridging solvent. If the series keyword is specified the time series for each hydrogen bond (1 for present, 0 for not present) will also be saved for subsequent analysis (e.g. with lifetime); solute-solute hydrogen bonds will be saved to ‘[solutehb]’ and solute-solvent hydrogen bonds will be saved to ‘[solventhb]’.  The data set legends are set with the residues and atoms involved in the hydrogen bonds. In the case of solute to non-specic solvent hydrogen bonds, a V is used in place of solvent.

If avgout is specified the average of each solute-solute hydrogen bond (sorted by population) formed over the course of the trajectory is printed with the format:

Acceptor     DonorH     Donor     Frames     Frac     AvgDist     AvgAng

where Acceptor, DonorH, and Donor are the residue and atom name of the atoms involved in the hydrogen bond, Frames is the number of frames the bond is present, Frac is the fraction of frames the bond is present, AvgDist is the average distance of the bond when present, and AvgAng is the average angle of the bond when present. The printatomnum keyword can be used to print atom numbers as well. Solute to non-specific solvent hydrogen bonds can be tracked by using the solventdonor and/or solventacceptor keywords. The number of solute-solvent hydrogen bonds and number of “bridging” solvent molecules (i.e. solvent that is hydrogen bonded to two or more different solute residues at the same time) will also be written to the file specified by out. These keywords can also be used to track non-specific interactions with ions. If avgout or solvavg is specified the average of each solute solvent hydrogen bond will be printed with the format:

Acceptor     DonorH     Donor     Count     Frac       AvgDist     AvgAng

where Acceptor, DonorH, and Donor are either the residue and atom name of the solute atoms or “SolventAcc”/”SolventH”/”SolventDnr” representing solvent, Count is the total number of interactions between solute and solvent (note this can be greater than the total number of frames since for any given frame more than one solvent molecule can hydrogen bond to the same place on solute and vice versa), AvgDist is the average distance of the bond when present, and AvgAng is the average angle of the bond when present.

If avgout or bridgeout is specified information on residues that were bridged by a solvent molecule over the course of the trajectory will be written to <bfilename> with format:

Bridge    Res    <N0:RES0>    <N1:RES1> ... ,    <X>    frames.

where ’<N0:RES0> …’ is a list of residues that were bridged (residue # followed by residue name) and <X> is the number of frames the residues were bridged.

An example of the us of the bond comand is available following this recipe

hbond Examples

To search for all hydrogen bonds within residues 1-22, writing the number of hydrogen bonds per frame to “nhb.dat” and information on each hydrogen bond found to “avghb.dat”:

hbond :1-22 out nhb.dat avgout avghb.dat

To search for all hydrogen bonds formed between donors in residue 1 and acceptors in residue 2:

hbond donormask :1 acceptormask :2 out nhb.dat avgout avghb.dat

To search for all intermolecular hydrogen bonds only and solute-solvent hydrogen bonds, saving time series data to HB:

hbond HB out nhb.dat avgout solute_avg.dat \
 solventacceptor :WAT@O solventdonor :WAT \
 solvout solvent_avg.dat bridgeout bridge.dat \
 series uuseries uuhbonds.agr uvseries uvhbonds.agr

To search for non-specific hydrogen bonds between solute and ions named Na+:

hbond HB-Ion out nhb.agr avgout ion_avg.dat solventacceptor :Na+ solventdonor :Na+