Identify hydrogen bonds based on cutoffs for the Donor-H...Acceptor distance and angle.
The criterion employed is \(\theta > 120\) and \(r_\text{H...Acceptor} < 2.5 A\).
When donor the donor is ‘N’ and the acceptor is ‘O’, this corresponds to the definition established in [R20]. The donors considered by this method are NH and OH, and the acceptors considered are O and N.
Parameters: | traj : md.Trajectory
freq : float, default=0.1
exclude_water : bool, default=True
periodic : bool, default=True
|
---|---|
Returns: | hbonds : np.array, shape=[n_hbonds, 3], dtype=int
|
See also
Notes
Each hydrogen bond is distinguished for the purpose of this function by the indices of the donor, hydrogen, and acceptor atoms. This means that, for example, when an ARG sidechain makes a hydrogen bond with its NH2 group, you might see what appear like double counting of the h-bonds, since the hydrogen bond formed via the H_1 and H_2 are counted separately, despite their “chemical indistinguishably”
References
[R20] | (1, 2) Baker, E. N., and R. E. Hubbard. “Hydrogen bonding in globular proteins.” Progress in Biophysics and Molecular Biology 44.2 (1984): 97-179. |
Examples
>>> md.baker_hubbard(t)
array([[ 0, 10, 8],
[ 0, 11, 7],
[ 69, 73, 54],
[ 76, 82, 65],
[119, 131, 89],
[140, 148, 265],
[166, 177, 122],
[181, 188, 231]])
>>> label = lambda hbond : '%s -- %s' % (t.topology.atom(hbond[0]), t.topology.atom(hbond[2]))
>>> for hbond in hbonds:
>>> print label(hbond)
GLU1-N -- GLU1-OE2
GLU1-N -- GLU1-OE1
GLY6-N -- SER4-O
CYS7-N -- GLY5-O
TYR11-N -- VAL8-O
MET12-N -- LYS20-O