schrodinger.structutils.interactions.steric_clash module

schrodinger.structutils.interactions.steric_clash.clash_iterator(struc1, atoms1=None, struc2=None, atoms2=None, allowable_overlap=0.4)

Iterate through all steric clashes between two groups of atoms

Parameters
  • struc1 (schrodinger.structure.Structure) – The first structure to examine

  • atoms1 (list(int)) – A list of atom numbers for struc1. If given, only the specified atoms will be examined. If not given, all atoms of struc1 will be used.

  • struc2 (schrodinger.structure.Structure) – The second structure to examine. If not given struc1 will be used

  • atoms2 (list(int)) – A list of atom numbers for struc2. If given, only the specified atoms will be examined. If not given, all atoms of struc2 will be used.

  • allowable_overlap (float) – Steric clashes smaller than this will be ignored. The default (0.4 A) is a reasonable value when examining protein- protein interactions.

Returns

A generator that iterates through steric clashes. Each iteration will yield a tuple of (atom from struc1, atom from struc2, distance). The distance between the two specified atoms in Angstroms (float). Note that this is the distance between the nuclear centers, not the size of the overlap.

Return type

generator

schrodinger.structutils.interactions.steric_clash.sphere_overlap_volume(radius1, radius2, dist)

Calculate the volume of the overlap between two spheres

Parameters
  • radius1 (float) – The radius of the first sphere

  • radius2 (float) – The radius of the second sphere

  • dist (float) – The distance between the centers of the two spheres

Returns

The overlap volume

Return type

float

Note

The equation implemented here is taken from http://mathworld.wolfram.com/Sphere-SphereIntersection.html, equation 16

schrodinger.structutils.interactions.steric_clash.clash_volume(struc1, atoms1=None, struc2=None, atoms2=None)

Calculate the volume of the steric overlap between two structures

Parameters
  • struc1 (schrodinger.structure.Structure) – The first structure to examine

  • atoms1 (list) – A list of atom numbers for struc1. If given, only the specified atoms will be examined. If not given, all atoms of struc1 will be used.

  • struc1 – The second structure to examine. If not given struc1 will be used

  • atoms2 (list) – A list of atom numbers for struc2. If given, only the specified atoms will be examined. If not given, all atoms of struc2 will be used.

Returns

The steric overlap volume in cubic Angstroms

Return type

float

Note

The overlap volume is calculated as a sum of pair-wise steric clashes. This may double count overlaps for very severe steric clashes where there are really three spheres overlapping.

schrodinger.structutils.interactions.steric_clash.get_steric_clashes(st1: schrodinger.structure._structure.Structure, st1_atoms: Optional[List[int]] = None, st2: Optional[schrodinger.structure._structure.Structure] = None, st2_atoms: Optional[List[int]] = None, cutoff: float = 0.75, hbond_params: Optional[structure.AtomQueryParams] = None, salt_bridge_params: Optional[structure.SaltBridgeParams] = None) List[Tuple[schrodinger.structure._structure._StructureAtom, schrodinger.structure._structure._StructureAtom]]

Return all pairs of atoms with steric clashes.

To determine a clash, get the ratio of the distance between two atoms to the sum of their van der Waals radii:

sqrt(square_distance) / (atom1_radius + atom2_radius)

and ignore all values above a certain cutoff.

Parameters
  • st1 (structure.Structure) – First structure.

  • st1_atoms (list[int] or NoneType) – List of atom indices in the first structure, if None will use all atoms.

  • st2 (structure.Structure or NoneType) – Second structure, if None will use the first structure.

  • st2_atoms – List of atom indices in the second structure, if None will use all atoms.

  • cutoff (float) – Cutoff for clash consideration.

  • hbond_params (schrodinger.infra.structure.AtomQueryParams) – Don’t include hydrogen bonds matching hbond_params in clash list.

  • salt_bridge_params (schrodinger.infra.structure.SaltBridgeParams) – Don’t include salt bridges matching salt_bridge_params in the clash list.

Returns

Pair of all atom pairs with steric clash.

Return type

list[tuple(structure._StructureAtom, structure._StructureAtom)]