Path A - Module 37: Hydrogen Bonds & Salt Bridges#

Covalent bonds build the skeleton, but Non-Covalent Interactions define the life of a molecular complex. For Amyloid fibrils, a dense network of backbone Hydrogen Bonds is what makes them so incredibly stable and hard to degrade.

In this module, you will learn to identify and analyze these critical interactions using MolSysMT.

import molsysmt as msm
from molsysmt import systems

# Load our complex (must have hydrogens!)
fibril = msm.convert('pdb:2BEG', to_form='molsysmt.MolSys')
msm.build.add_missing_heavy_atoms(fibril)
msm.build.add_missing_hydrogens(fibril)

peptide = msm.build.build_peptide('KLVFF')
msm.build.add_missing_hydrogens(peptide)

molsys = msm.merge([fibril, peptide])

1. Detecting Hydrogen Bonds#

The function get_hbonds() identifies pairs of Donor-Hydrogen-Acceptor that satisfy geometric criteria (distance and angle).

# Find H-bonds between the peptide and the fibril
hbonds = msm.hbonds.get_hbonds(molsys, selection='molecule_type=="peptide"', 
                               selection_2='molecule_type=="protein"')

print(f"Found {len(hbonds)} hydrogen bonds at the interface.")
print(f"Example H-bond (Donor, H, Acceptor indices):\n{hbonds[0] if len(hbonds)>0 else 'None'}")

2. Identifying Salt Bridges#

Salt bridges occur between residues with opposite charges (e.g., Lysine/Arginine and Aspartate/Glutamate).

# Find all salt bridges in the whole complex
salt_bridges = msm.structure.get_salt_bridges(molsys)

print(f"Found {len(salt_bridges)} salt bridges in the system.")

3. Reporting Interaction Partners#

Let’s use our labeling skills (from Module 17) to see which specific residues are forming these H-bonds.

if len(hbonds) > 0:
    donors = [hb[0] for hb in hbonds]
    acceptors = [hb[2] for hb in hbonds]
    
    donor_labels = msm.get_label(molsys, selection=donors)
    acceptor_labels = msm.get_label(molsys, selection=acceptors)
    
    print("Interfacial H-Bonds:")
    for d, a in zip(donor_labels, acceptor_labels):
        print(f" {d} ---> {a}")

🏆 Path A Challenge: The Chemist#

  1. Calculate all internal hydrogen bonds within the Amyloid-Beta chain 0.

  2. How many of those H-bonds are between backbone atoms (N and O)? Hint: Use selection='(atom_name=="N" or atom_name=="O") and chain_index==0'.

  3. Check if your peptide KLVFF has any internal H-bonds.

Understanding these interactions is the key to drug design. In Module 38, we will explore even more sophisticated H-Bond Algorithms for deep biophysical characterization.