Get Buch hydrogen bonds#
Detecting hydrogen bonds based on the geometric distance criterion of Buch et al.
The function molsysmt.hbonds.get_buch_hbonds() calculates intra- and inter-molecular hydrogen bonds using the distance cutoff definition between donor hydrogens and acceptor atoms established by Buch et al.
Added in version 1.0.0.
API documentation
Follow this link for a detailed description of the input arguments, raised errors, and returned objects of this function: molsysmt.hbonds.get_buch_hbonds().
Basic usage#
Let’s detect all hydrogen bonds in a protein structure using the Buch geometric criterion:
import molsysmt as msm
import pyunitwizard as puw
molsys = msm.convert(msm.systems['chicken villin HP35']['chicken_villin_HP35.h5msm'])
Note
Demo Systems Catalog
This tutorial uses demonstration datasets provided by MolSysMT. To explore the full catalog of bundled systems, forms, and file paths, visit the Demo Systems guide.
We calculate the hydrogen bonds and their corresponding donor–acceptor distances:
hbonds, distances = msm.hbonds.get_buch_hbonds(molsys, distance_threshold='2.3 angstroms')
print('Total Buch hydrogen bonds detected:', len(hbonds[0]))
print('First 5 H-bond triplets [donor_heavy, bonded_H, acceptor]:\n', hbonds[0][:5])
print('First 5 H-bond distances:\n', distances[0][:5])
Total Buch hydrogen bonds detected: 38
First 5 H-bond triplets [donor_heavy, bonded_H, acceptor]:
[[ 42 43 91]
[ 51 52 90]
[ 80 81 90]
[ 92 93 47]
[112 113 58]]
First 5 H-bond distances:
[0.20208395454218767 0.16088547276897824 0.19196764452261905 0.1894413459588617 0.19011635289191178] nanometer
Hydrogen bonds between selections#
Hydrogen bonds can be evaluated between two distinct selections or atom sets by specifying selection and selection_2. Here we illustrate this general capability with an example of inter-molecular hydrogen bonds at the protein–protein interface in the Barnase–Barstar complex:
complex_sys = msm.convert(msm.systems['Barnase-Barstar']['barnase_barstar.h5msm'])
msm.info(complex_sys, element='molecule')
| index | name | type | n atoms | n groups | n components | chain index | entity index | entity name |
|---|---|---|---|---|---|---|---|---|
| 0 | BARNASE | protein | 1727 | 110 | 1 | 0 | 0 | protein 0 |
| 1 | BARSTAR | protein | 1432 | 89 | 1 | 0 | 1 | protein 1 |
We calculate the inter-molecular hydrogen bonds at the Barnase–Barstar interface:
inter_hbonds, inter_dist = msm.hbonds.get_buch_hbonds(complex_sys,
selection='molecule_name=="BARNASE"',
selection_2='molecule_name=="BARSTAR"')
print('Inter-molecular hydrogen bonds detected:', len(inter_hbonds[0]))
print('Interface H-bond triplets:\n', inter_hbonds[0][:5])
Inter-molecular hydrogen bonds detected: 16
Interface H-bond triplets:
[[ 431 432 2400]
[ 431 433 2361]
[ 858 859 2296]
[ 876 878 2969]
[ 879 880 2969]]
See also
Related Tools & References
Get Luzar-Chandler hydrogen bonds: Detect hydrogen bonds via Luzar-Chandler criteria with
molsysmt.hbonds.get_luzard_chandler_hbonds().Get acceptor atoms: Identify acceptor atoms with
molsysmt.hbonds.get_acceptor_atoms().Get donor atoms: Identify donor atoms with
molsysmt.hbonds.get_donor_atoms().