Package schrodinger :: Package structutils :: Package interactions :: Module pi
[hide private]
[frames] | no frames]

Module pi

A module for detecting pi-pi and pi-cation interactions.

Code example for pi-cation interactions:

   from schrodinger.structutils import interactions
   from schrodinger import structure
   recep = None
   for struct in structure.StructureReader(input_file):
       if not recep:
           recep = struct
           # Precalculate receptor rings and cations to save time
           rings = interactions.gather_rings(recep)
           cations = interactions.get_receptor_positive_centroids(recep)
       else:
           picats = interactions.find_pi_cation_interactions(recep,
                                       rings1=rings, cations1=cations,
                                       struct2=struct)

Code example for pi-pi interactions:

   from schrodinger.structutils import interactions
   from schrodinger import structure
   recep = None
   for struct in structure.StructureReader(input_file):
       if not recep:
           recep = struct
           # Precalculate receptor rings to save time
           rings = interactions.gather_rings(recep)
       else:
           pipi = interactions.find_pi_pi_interactions(recep,
                                       rings1=rings, struct2=struct)
Classes [hide private]
  Centroid
The object that stores data about a centroid
  CationPiInteraction
The object that stores the data for a Cation-Pi interaction
  PiPiInteraction
The object that stores the data for a Pi-Pi interaction
Functions [hide private]
float
squared_centroid_distance(cent1, cent2)
Compute the squared distance between two centroids.
 
unit_vector_points(a, b)
 
unit_vector(vec)
list
find_pi_cation_interactions(struct1, struct2=None, rings1=None, rings2=None, skip_unknown=None)
Determine if any positive centers are within a specified distance cutoff of any aromatic ring centroids.
 
_get_centroid_from_cpp_structure_ring(ring)
 
gather_rings(astruct, atom_subset=None)
list of PiPiInteraction objects
find_pi_pi_interactions(struct1, struct2=None, rings1=None, rings2=None, max_ftf_dist=None, max_etf_dist=None)
Find all pi-pi interactions between the rings in struct1 and struct2 (or within struct1 if only 1 structure is given).
Variables [hide private]
  __doc__ = ...
  __package__ = 'schrodinger.structutils.interactions'
Function Details [hide private]

squared_centroid_distance(cent1, cent2)

 

Compute the squared distance between two centroids. Using the squared distance saves the sqrt compute cycles.

Parameters:
  • cent1 (Centroid object) - first centroid
  • cent2 (Centroid object) - second centroid
Returns: float
the squared distance between the two centroids.

find_pi_cation_interactions(struct1, struct2=None, rings1=None, rings2=None, skip_unknown=None)

 

Determine if any positive centers are within a specified distance cutoff of any aromatic ring centroids. For those positive center/ring contacts, determine if the positive center is located on the face of the ring rather than the edge.

Code example:

   import interactions
   from schrodinger import structure
   recep = None
   for struct in structure.StructureReader(input_file):
       if not recep:
           recep = struct
           # Precalculate receptor rings and cations to save time
           rings = interactions.gather_rings(recep)
           cations = interactions.get_receptor_positive_centroids(recep)
       else:
           picats = interactions.find_pi_cation_interactions(recep,
                                       rings1=rings, cations1=cations,
                                       struct2=struct)
Parameters:
  • struct1 (schrodinger.structure.Structure object) - Receptor structure if for a ligand-receptor complex, or the first of two structures to compute pi-cations for
  • struct2 (schrodinger.structure.Structure object) - Ligand structure if for a ligand-receptor complex, or the second of two structures, or None if the first structure should be search for intramolecular interactions.
  • rings1 (list of SSSR (from gather_rings)) - SSSR of struct1. If not passed, will be computed.
  • rings2 (list of SSSR (from gather_rings)) - SSSR of struct2. If not passed, will be computed.
  • skip_unknown - UNUSED and deprecated.
Returns: list
list of CationPiInteraction interaction objects:
   # CationPiInteraction properties:
   cation_structure: structure that contains the cation
   pi_structure: structure that contains the pi group
   cation_centroid: Centroid of the positive charge
   pi_centroid: Centroid of the pi group
   distance: distance between the centroids
   angle: angle in degrees between the centroids

find_pi_pi_interactions(struct1, struct2=None, rings1=None, rings2=None, max_ftf_dist=None, max_etf_dist=None)

 

Find all pi-pi interactions between the rings in struct1 and struct2 (or within struct1 if only 1 structure is given). Interactions are classified as to whether they are face-to-face or edge-to-face.

Code example:

   import interactions
   from schrodinger import structure
   recep = None
   for struct in structure.StructureReader(input_file):
       if not recep:
           recep = struct
           # Precalculate receptor rings to save time
           rings = interactions.gather_rings(recep)
       else:
           pipi = interactions.find_pi_pi_interactions(recep,
                                       rings1=rings, struct2=struct)
Parameters:
  • struct1 (schrodinger.structure.Structure object) - first of two structures to compute pi-pi interactions for
  • struct2 (schrodinger.structure.Structure object) - second of two structures to compute pi-pi interactions for. If not given, struct1 will be searched for intramolecular interactions.
  • rings1 (list of SSSR (from gather_rings)) - SSSR of struct1 If not passed, will be computed.
  • rings2 (list of SSSR (from gather_rings)) - SSSR of struct2. If not passed, will be computed.
  • max_angle (float) - The maximum angle allowed for a face-to-face interaction. (The minimum angle allowed for edge-to-face interactions will be 90 - max_angle.)
  • max_ftf_dist (float) - The maximum distance allowed between the centroids of face-to-face rings
  • max_etf_dist (float) - The maximum distance allowed between the centroids of edge-to-face rings
Returns: list of PiPiInteraction objects
a PiPiInteraction object for each interaction found. Properties of a PiPiInteraction object are:
  • struct1: structure that contains the first ring
  • struct2: structure that contains the second ring
  • ring1: Centroid of the first ring
  • ring2: Centroid of the second ring
  • distance: distance between the centroids
  • angle: angle in degrees between the two ring planes
  • face_to_face: True if the interaction is face to face, False if it is edge to face

Variables Details [hide private]

__doc__

Value:
"""
A module for detecting pi-pi and pi-cation interactions.

Code example for pi-cation interactions::
    from schrodinger.structutils import interactions
    from schrodinger import structure
    recep = None
    for struct in structure.StructureReader(input_file):
...