schrodinger.structutils.interactions.pi module¶
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)
-
schrodinger.structutils.interactions.pi.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
Return type: float
Returns: the squared distance between the two centroids.
-
schrodinger.structutils.interactions.pi.unit_vector_points(a, b)¶
-
schrodinger.structutils.interactions.pi.unit_vector(vec)¶
-
class
schrodinger.structutils.interactions.pi.Centroid(atoms, xyz)¶ Bases:
objectThe object that stores data about a centroid
-
__init__(atoms, xyz)¶ Create a Centroid object
Parameters: - atoms (list of int) – the atom numbers involved in the centroid
- xyz (list of float) – the XYZ coordinates of the centroid
-
__class__¶ alias of
builtins.type
-
__delattr__¶ Implement delattr(self, name).
-
__dict__= mappingproxy({'__module__': 'schrodinger.structutils.interactions.pi', '__doc__': '\n The object that stores data about a centroid\n ', '__init__': <function Centroid.__init__>, '__dict__': <attribute '__dict__' of 'Centroid' objects>, '__weakref__': <attribute '__weakref__' of 'Centroid' objects>})¶
-
__dir__() → list¶ default dir() implementation
-
__eq__¶ Return self==value.
-
__format__()¶ default object formatter
-
__ge__¶ Return self>=value.
-
__getattribute__¶ Return getattr(self, name).
-
__gt__¶ Return self>value.
-
__hash__¶ Return hash(self).
-
__init_subclass__()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__¶ Return self<=value.
-
__lt__¶ Return self<value.
-
__module__= 'schrodinger.structutils.interactions.pi'¶
-
__ne__¶ Return self!=value.
-
__new__()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__()¶ helper for pickle
-
__reduce_ex__()¶ helper for pickle
-
__repr__¶ Return repr(self).
-
__setattr__¶ Implement setattr(self, name, value).
-
__sizeof__() → int¶ size of object in memory, in bytes
-
__str__¶ Return str(self).
-
__subclasshook__()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__¶ list of weak references to the object (if defined)
-
-
class
schrodinger.structutils.interactions.pi.CationPiInteraction(cation_structure, pi_structure, cation_centroid, pi_centroid)¶ Bases:
objectThe object that stores the data for a Cation-Pi interaction
-
__init__(cation_structure, pi_structure, cation_centroid, pi_centroid)¶ Create a CationPiInteraction object
Parameters: - cation_structure (schrodinger.structure.Structure object) – structure that contains the cation
- pi_structure (schrodinger.structure.Structure object) – structure that contains the pi group
- cation_centroid (Centroid object) – Centroid of the positive charge
- pi_centroid (Centroid object) – Centroid of the pi group
- distance (float) – distance between the centroids
- angle (float) – angle in degrees between the centroids
-
cation_structure= None¶ Ivar: structure that contains the cation Type: schrodinger.structure.Structure object
-
pi_structure= None¶ Ivar: structure that contains the pi group Type: schrodinger.structure.Structure object
-
cation_centroid= None¶ Ivar: Centroid of the positive charge Type: Centroid object
-
pi_centroid= None¶ Ivar: Centroid of the pi group Type: Centroid object
-
distance¶ Ivar: distance between the centroids Type: float
-
angle¶ Ivar: angle in degrees between the centroids Type: float
-
__class__¶ alias of
builtins.type
-
__delattr__¶ Implement delattr(self, name).
-
__dict__= mappingproxy({'__module__': 'schrodinger.structutils.interactions.pi', '__doc__': '\n The object that stores the data for a Cation-Pi interaction\n ', '__init__': <function CationPiInteraction.__init__>, 'distance': <property object>, 'angle': <property object>, '__dict__': <attribute '__dict__' of 'CationPiInteraction' objects>, '__weakref__': <attribute '__weakref__' of 'CationPiInteraction' objects>})¶
-
__dir__() → list¶ default dir() implementation
-
__eq__¶ Return self==value.
-
__format__()¶ default object formatter
-
__ge__¶ Return self>=value.
-
__getattribute__¶ Return getattr(self, name).
-
__gt__¶ Return self>value.
-
__hash__¶ Return hash(self).
-
__init_subclass__()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__¶ Return self<=value.
-
__lt__¶ Return self<value.
-
__module__= 'schrodinger.structutils.interactions.pi'¶
-
__ne__¶ Return self!=value.
-
__new__()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__()¶ helper for pickle
-
__reduce_ex__()¶ helper for pickle
-
__repr__¶ Return repr(self).
-
__setattr__¶ Implement setattr(self, name, value).
-
__sizeof__() → int¶ size of object in memory, in bytes
-
__str__¶ Return str(self).
-
__subclasshook__()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__¶ list of weak references to the object (if defined)
-
-
class
schrodinger.structutils.interactions.pi.PiPiInteraction(struct1, struct2, ring1, ring2, face_to_face)¶ Bases:
objectThe object that stores the data for a Pi-Pi interaction
-
__init__(struct1, struct2, ring1, ring2, face_to_face)¶ Create a PiPiInteraction object
Parameters: - struct1 (schrodinger.structure.Structure object) – structure that contains the first ring
- struct2 (schrodinger.structure.Structure object) – structure that contains the second ring
- ring1 (Centroid object) – Centroid of the first ring
- ring2 (Centroid object) – Centroid of the second ring
- distance (float) – distance between the centroids
- angle (float) – angle in degrees between the two ring planes
- face_to_face (bool) – True if the interaction is face to face, False if it is edge to face
-
distance¶ Returns: distance between the centroids Return type: float
-
angle¶ Returns: angle in degrees between the centroids Return type: float
-
__class__¶ alias of
builtins.type
-
__delattr__¶ Implement delattr(self, name).
-
__dict__= mappingproxy({'__module__': 'schrodinger.structutils.interactions.pi', '__doc__': '\n The object that stores the data for a Pi-Pi interaction\n ', '__init__': <function PiPiInteraction.__init__>, 'distance': <property object>, 'angle': <property object>, '__dict__': <attribute '__dict__' of 'PiPiInteraction' objects>, '__weakref__': <attribute '__weakref__' of 'PiPiInteraction' objects>})¶
-
__dir__() → list¶ default dir() implementation
-
__eq__¶ Return self==value.
-
__format__()¶ default object formatter
-
__ge__¶ Return self>=value.
-
__getattribute__¶ Return getattr(self, name).
-
__gt__¶ Return self>value.
-
__hash__¶ Return hash(self).
-
__init_subclass__()¶ This method is called when a class is subclassed.
The default implementation does nothing. It may be overridden to extend subclasses.
-
__le__¶ Return self<=value.
-
__lt__¶ Return self<value.
-
__module__= 'schrodinger.structutils.interactions.pi'¶
-
__ne__¶ Return self!=value.
-
__new__()¶ Create and return a new object. See help(type) for accurate signature.
-
__reduce__()¶ helper for pickle
-
__reduce_ex__()¶ helper for pickle
-
__repr__¶ Return repr(self).
-
__setattr__¶ Implement setattr(self, name, value).
-
__sizeof__() → int¶ size of object in memory, in bytes
-
__str__¶ Return str(self).
-
__subclasshook__()¶ Abstract classes can override this to customize issubclass().
This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).
-
__weakref__¶ list of weak references to the object (if defined)
-
-
schrodinger.structutils.interactions.pi.find_pi_cation_interactions(struct1, struct2=None, rings1=None, rings2=None, skip_unknown=None, params=None, honor_pbc=True)¶ 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.
- params (schrodinger.infra.structure.PiCationParams or NoneType) – Detailed parameters controlling the interaction criteria. If None, then the default values will be used.
Return type: list
Returns: 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
-
schrodinger.structutils.interactions.pi.gather_rings(astruct, atom_subset=None)¶
-
schrodinger.structutils.interactions.pi.find_pi_pi_interactions(struct1, struct2=None, rings1=None, rings2=None, params=None, honor_pbc=True)¶ 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.
- params (schrodinger.infra.structure.PiPiParams or NoneType) – Detailed parameters controlling the interaction criteria. If None, then the default values will be used.
Return type: list of PiPiInteraction objects
Returns: a PiPiInteraction object for each interaction found.