molsysmt.build.get_disulfide_bonds#

molsysmt.build.get_disulfide_bonds(molecular_system, selection='all', structure_index=0, max_bond_length=None, group_names=['CYS'], pbc=True, syntax='MolSysMT', engine='MolSysMT', sorted=True, skip_digestion=False)[source]#

Identifying disulfide bonds between sulfur atoms.

This function detects disulfide bonds in a molecular system by finding pairs of sulfur atoms that belong to specified residue types (e.g., CYS) and lie within a covalent bond distance. These S–S bridges are returned as atom index pairs.

Parameters:
  • molecular_system (molecular system) – Molecular system in any of the supported forms to be analyzed.

  • selection (index, tuple, list, numpy.ndarray or str, default 'all') – Selection of atoms to be considered for disulfide bond detection. This can be a list, tuple, or array of atom indices (0-based), or a string parsed using the specified selection syntax.

  • structure_index (int, default 0) – Index of the structure (frame) in which disulfide bonds will be searched.

  • max_bond_length (float or str with units, optional) – Maximum distance between two sulfur atoms to be considered a disulfide bond. If not provided, a default threshold (typically 2.05 Å) will be used.

  • group_names (list of str, default ['CYS']) – List of residue names to be considered as potential cysteine-like residues forming disulfide bonds.

  • pbc (bool, default True) – Whether to apply periodic boundary conditions when computing distances.

  • syntax (str, default 'MolSysMT') – Supported syntax used to parse the selection argument (if string).

  • engine ({'MolSysMT'}, default 'MolSysMT') – Engine used to perform the analysis. Currently only ‘MolSysMT’ is supported.

  • sorted (bool, default True) – Whether to sort the indices in each pair (i.e., smaller index first).

Returns:

Array of atom index pairs (each a disulfide bond) detected in the selected atoms and structure.

Return type:

numpy.ndarray of shape (n, 2)

Raises:
  • NotSupportedFormError – If the molecular system format is not supported.

  • ArgumentError – If input values do not meet required conditions.

Notes

  • Sulfur atoms are identified based on element type and filtered by group name (e.g., ‘CYS’).

  • This function assumes that disulfide bonds are formed between SG atoms of cysteines or equivalent residues.

  • Distance units are internally standardized to nanometers.

See also

molsysmt.build.add_bonds()

Manually add bonds between specific atom pairs.

molsysmt.structure.get_neighbors()

Find neighboring atoms within a distance or bond limit.

molsysmt.build.get_missing_bonds()

Automatically infer missing covalent bonds.

Examples

>>> import molsysmt as msm
>>> molsys = msm.convert('5XJH')
>>> s_s_pairs = msm.build.get_disulfide_bonds(molsys, max_bond_length='2.15 angstroms')
>>> s_s_pairs.shape
(2, 2)

User guide

Follow this link for a tutorial on how to work with this function: User Guide > Tools > Build > Get disulfide bonds

Added in version 1.0.0.