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. These bonds play an important role in stabilizing tertiary and quaternary structures. Detecting them is particularly useful when analyzing protein connectivity or preparing systems for molecular simulations.
Added in version 1.0.0.
How this function works#
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()
.
This function analyzes a molecular system to detect disulfide bonds by identifying bonded sulfur atom pairs. These are typically inferred based on distance thresholds and covalent connectivity criteria.
Let’s now explore how this function can be used in practice, using the PDB entry 5XJH as an example. This structure contains multiple disulfide bridges that we can automatically retrieve.
import molsysmt as msm
molsys = msm.convert('5XJH')
We now apply the function to retrieve disulfide bonds based on the standard maximum sulfur–sulfur bond 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.
msm.get(molsys, element='atom', selection='atom_type=="S"', n_atoms=True)
12
Next, we can get the pairs of sulfulr atoms meeting both atoms the condition that one is the first neighbor of the other, and also their distances:
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')>])
We found that another disulfide bond could be identified increasing slightly the maximum bond length from 2.05 angstroms to 2.15:
msm.build.get_disulfide_bonds(molsys, max_bond_length='2.15 angstroms')
[[1251, 1519], [1782, 1907]]
See also
User guide > Tools > Build > Add bonds:
Manually add bonds between selected pairs of atoms.
User guide > Tools > Build > Add missing bonds:
Automatically detect and add plausible covalent bonds.
User guide > Tools > Structure > Get neighbors:
Find neighboring atoms.