Get acceptor atoms#
Identifying hydrogen bond acceptor atoms based on chemical rules and electronegative centers.
The function molsysmt.interactions.hbonds.get_acceptor_atoms() identifies potential hydrogen bond acceptor atoms within molecular systems using customizable chemical inclusion and exclusion selection criteria.
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.interactions.hbonds.get_acceptor_atoms().
Basic usage#
Let’s identify the hydrogen bond acceptor atoms in a protein structure:
import molsysmt as msm
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 inspect the built-in default inclusion and exclusion rules defined in MolSysMT:
print('Default inclusion rules:', msm.interactions.hbonds.acceptor_inclusion_rules)
print('Default exclusion rules:', msm.interactions.hbonds.acceptor_exclusion_rules)
Default inclusion rules: ["atom_type=='O'", "atom_type=='N'", "atom_type=='S'"]
Default exclusion rules: ["atom_name=='NE2' and group_name=='GLN'", "(atom_name=='NE2' and group_name=='HIS') bonded to (atom_type=='H')", "(atom_name=='ND1' and group_name=='HIS') bonded to (atom_type=='H')"]
Now let’s find all acceptor atoms within the first three residues (group_index in [1, 2, 3]):
acceptor_atoms = msm.interactions.hbonds.get_acceptor_atoms(molsys, selection='group_index==[1, 2, 3]')
print('Acceptor atom indices:', acceptor_atoms)
Acceptor atom indices: [ 6 11 18 23 28 42 47 51]
Inspecting acceptor atom metadata#
We can query detailed attribute information for the identified acceptor atoms:
msm.info(molsys, element='atom', selection=acceptor_atoms)
| index | id | name | type | group index | group id | group name | group type | component index | chain index | molecule index | molecule type | entity index | entity name |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6 | 7 | N | N | 1 | 41 | MET | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 11 | 12 | O | O | 1 | 41 | MET | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 18 | 19 | SD | S | 1 | 41 | MET | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 23 | 24 | N | N | 2 | 42 | LEU | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 28 | 29 | O | O | 2 | 42 | LEU | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 42 | 43 | N | N | 3 | 43 | SER | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 47 | 48 | O | O | 3 | 43 | SER | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 51 | 52 | OG | O | 3 | 43 | SER | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
Custom inclusion and exclusion rules#
Users can specify custom inclusion or exclusion rules to tailor acceptor definitions for non-standard molecules or specific chemical centers:
custom_acceptors = msm.interactions.hbonds.get_acceptor_atoms(molsys, selection='group_index==[1, 2, 3]',
inclusion_rules="atom_name=='O'")
msm.info(molsys, element='atom', selection=custom_acceptors)
| index | id | name | type | group index | group id | group name | group type | component index | chain index | molecule index | molecule type | entity index | entity name |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6 | 7 | N | N | 1 | 41 | MET | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 11 | 12 | O | O | 1 | 41 | MET | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 18 | 19 | SD | S | 1 | 41 | MET | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 23 | 24 | N | N | 2 | 42 | LEU | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 28 | 29 | O | O | 2 | 42 | LEU | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 42 | 43 | N | N | 3 | 43 | SER | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 47 | 48 | O | O | 3 | 43 | SER | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
| 51 | 52 | OG | O | 3 | 43 | SER | amino acid | 0 | 0 | 0 | peptide | 0 | VILLIN |
See also
Related Tools & References
Get donor atoms: Identify hydrogen bond donor atoms with
molsysmt.interactions.hbonds.get_donor_atoms().Get Buch hydrogen bonds: Detect hydrogen bonds via Buch criteria with
molsysmt.interactions.hbonds.get_buch_hbonds().Get Luzar-Chandler hydrogen bonds: Detect hydrogen bonds via Luzar-Chandler criteria with
molsysmt.interactions.hbonds.get_luzard_chandler_hbonds().