schrodinger.structutils.interactions package

Detect interactions between structures using the same underlying rules as maestro. Currently has functions 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

with structure.StructureReader(input_file) as reader:
    recep = next(reader)
    for st in reader:
        picats = interactions.find_pi_cation_interactions(recep,
                                    struct2=st)

Pi-pi interactions:

from schrodinger.structutils import interactions
from schrodinger import structure

with structure.StructureReader(input_file) as reader:
    recep = next(reader)
    for st in reader:
        pipi = interactions.find_pi_pi_interactions(recep, struct2=st)

Find all salt bridge interactions within a protein:

from schrodinger.structutils import interactions
from schrodinger.structure import StructureReader
st = Structure.read("protein.maegz")
for atom1, atom2 in interactions.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.read("protein.mae.gz")
atoms = st.chain["C"].getAtomIndices()
for atom1, atom2 in interactions.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, lig = reader
for atom1, atom2 in interactions.get_salt_bridges(prot, struc2=lig):
    print(f"Salt bridge between atoms {atom1.index} and {atom2.index}")

Submodules