schrodinger.structutils.interactions package¶
A module for detecting interactions between structures. Currently has methods to detect pi-pi interactions, pi-cation interactions, salt bridges, and steric clashes.
Examples¶
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)
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)
Find all salt bridge interactions within a protein:
from schrodinger.structutils import interactions
from schrodinger.structure import StructureReader
st = StructureReader("protein.maegz").next()
for (atom1, atom2) in interactions.get_salt_bridges(st):
print "Salt bridge between atoms %i and %i" % (atom1.index, atom2.index)
Find all salt bridges within a single protein chain:
st = StructureReader("protein.maegz").next()
atoms = st.chain["C"].getAtomIndices()
for (atom1, atom2) in interactions.get_salt_bridges(st, atoms):
print "Salt bridge between atoms %i and %i" % (atom1.index, atom2.index)
Find all salt bridges between a protein and a ligand:
reader = StructureReader("protein_and_ligand.maegz")
prot = reader.next()
lig = reader.next()
for (atom1, atom2) in interactions.get_salt_bridges(prot, struc2=lig):
print "Salt bridge between atoms %i and %i" % (atom1.index, atom2.index)