schrodinger.structutils.interactions.salt_bridge module

Find salt-bridge interactions.

Examples

Find all salt bridge interactions within a protein:

st = structure.Structure.read("protein.mae.gz")
for atom1, atom2 in get_salt_bridges(st):
    print(f"Salt bridge between atoms {atom1.index} and {atom2.index}")

Find all salt bridges within a single protein chain:

st = structure.Structure.read("protein.mae.gz")
atoms = st.chain["C"].getAtomIndices()
for atom1, atom2 in get_salt_bridges(st, atoms):
    print(f"Salt bridge between atoms {atom1.index} and {atom2.index}")

Find all salt bridges between a protein and a ligand:

with StructureReader("protein_and_ligand.mae.gz") as reader:
    prot, lib = reader
for atom1, atom2 in get_salt_bridges(prot, struc2=lig):
    print(f"Salt bridge between atoms {atom1.index} and {atom2.index}")
class schrodinger.structutils.interactions.salt_bridge.OrderBy

Bases: enum.Enum

An enumeration.

AnionCation = 1
InputOrder = 2
schrodinger.structutils.interactions.salt_bridge.get_salt_bridges(struc1, group1=None, struc2=None, group2=None, cutoff=5, order_by=<OrderBy.AnionCation: 1>, honor_pbc=True)

Calculate all salt bridges within or between the specified atoms. If struc2 or group2 are given, then this function will return salt bridges between the two structures/groups of atoms. If neither struc2 nor group2 are given, then this function will return salt bridges within a single structure/group of atoms.

Parameters:
  • struc1 (schrodinger.structure.Structure) – The structure to analyze
  • group1 (list) – The list of atom indices in struc1 to analyze. If not given, all atoms in struc1 will be analyzed.
  • struc2 (schrodinger.structure.Structure) – The second structure to analyze. If group2 is given but struc2 is not, then struc1 will be used.
  • group2 (list) – The list of atom indices in struc2 to analyze. If struc2 is given but group2 is not, then all atoms in struc2 will be analyzed.
  • cutoff (float) – The maximum distance allowed for salt bridges
  • order_by (OrderBy) – How the returned salt bridge atom should be ordered. If OrderBy.AnionCation, then each salt bridge will be returned as a tuple of (anion atom, cation atom). If OrderBy.InputOrder, then each salt bridge will be returned as a tuple of (atom from struc1/group1, atom from struc2/group2).
Returns:

A list of salt bridges, where each salt bridge is represented by a tuple of two schrodinger.structure._StructureAtom objects.

Return type:

list