Get disulfide bonds#
Identifying disulfide bridges between sulfur atoms in protein structures.
Disulfide bonds are covalent links that typically form between the sulfur atoms of cysteine residues in proteins, playing a key role in stabilizing tertiary and quaternary structures. The function molsysmt.build.get_disulfide_bonds() identifies candidate sulfur atom pairs within a maximum distance threshold. A candidate does not establish that a covalent bond is recorded in the topology.
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.build.get_disulfide_bonds().
Basic usage#
Let’s show how this function works using a protein structure loaded from PDB ID 5XJH:
import molsysmt as msm
molsys = msm.convert('5XJH')
We now apply the function to retrieve disulfide bonds based on the default maximum sulfur–sulfur distance:
msm.build.get_disulfide_bonds(molsys)
[[1782, 1907]]
The default threshold for S–S bond detection is retrieved from a predefined dictionary of typical bond lengths:
msm.element.bond.max_expected_bond_length['protein']['S']['S']
Let’s check how many sulfur atoms are present in the system using molsysmt.basic.get():
msm.get(molsys, element='atom', selection='atom_type=="S"', n_atoms=True)
12
Next, we find pairs of sulfur atoms that are mutual nearest neighbors using molsysmt.structure.get_neighbors():
msm.structure.get_neighbors(molsys, selection='atom_type=="S"', n_neighbors=1, output_type='pairs', mutual_only=True, output_indices='atom')
([[[724, 911], [1251, 1519], [1653, 1692], [1782, 1907]]],
[<Quantity([0.68968444 0.21195179 0.33566942 0.20483012], 'nanometer')>])
By slightly increasing the maximum bond length threshold to 2.15 angstroms, an additional disulfide candidate is identified:
msm.build.get_disulfide_bonds(molsys, max_bond_length='2.15 angstroms')
[[1251, 1519], [1782, 1907]]
Per-structure candidates and distances#
The canonical analysis API returns candidate atom pairs and their measured distances for each requested structure. The order of both lists follows structure_indices:
pairs_by_structure, distances_by_structure = msm.interactions.disulfides.get_disulfide_candidates(
molsys, structure_indices=[0], max_bond_length='2.15 angstroms'
)
pairs_by_structure[0], distances_by_structure[0]
See also
Related Tools & References
Convert: Convert molecular systems between different forms with
molsysmt.basic.convert().Get disulfide bonds: Identify disulfide bridges between sulfur atoms with
molsysmt.build.get_disulfide_bonds().Get: Retrieve attribute values from a molecular system with
molsysmt.basic.get().Get neighbors: Find neighboring atoms within a specified distance threshold with
molsysmt.structure.get_neighbors().