Package interactions
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.interactions import SaltBridgeFinder
from schrodinger.structure import StructureReader
st = StructureReader("protein.maegz").next()
for (atom1, atom2) in SaltBridgeFinder.find(st):
print "Salt bridge between atoms %i and %i" % (atom1, atom2)
Find all salt bridges within a single protein chain:
st = StructureReader("protein.maegz").next()
atoms = st.chain["C"].getAtomList()
for (atom1, atom2) in SaltBridgeFinder.find(st, atoms):
print "Salt bridge between atoms %i and %i" % (atom1, atom2)
Find all salt bridges between a protein and a ligand:
from schrodinger.structutils.interactions import SaltBridgeFinder
from schrodinger.structure import StructureReader
reader = StructureReader("protein_and_ligand.maegz")
prot = reader.next()
lig = reader.next()
for (atom1, atom2) in SaltBridgeFinder.find(prot, struc2=lig):
print "Salt bridge between atoms %i and %i" % (atom1, atom2)
|
ACCEPTORS = ' ((SMARTS. "[n;+0;!X3;!$([n;H1](cc)cc)]") ...
|
|
ALIPHATIC_FLUORINES = ' ((SMARTS. "CF") AND NOT ...
|
|
AMIDINE = ' (SMARTS. "[NH2][CX3](=[NH2+])") '
|
|
AROMATICS = ' ((SMARTS. "[a;R]")) '
|
|
AROMATIC_FLUORINES = ' ((SMARTS. "cF") AND NOT ...
|
|
DONORS = ' ((SMARTS. "[N&!H0&v3,n&H1&+0]") OR (SMARTS ...
|
|
GEMINAL_FLUORINES = ' ((SMARTS. "C(F)F") AND NOT ...
|
|
HYDROGENS = ' (atom.ele H) '
|
|
HYDROPHOBES = ' ((SMARTS. "[#6;+0;!$([#6]~[#7,#8,#9])]") ...
|
|
IMIDAZOLE = ' (SMARTS. "[#6X3]1:[#7X3H+]:[#6X3]:[#6X3]:[#7X3H]1") '
|
|
METALS = ' (SMARTS. "[#26,#27]") '
|
|
MISC = ' ((SMARTS. "[Sv6X4&H0&+0]") OR (SMARTS. "[Sv4X3 ...
|
|
NEGATIVES = ' ((SMARTS. "[C,S](=[O,S,P])-[O;H0&-1]") ...
|
|
POLAR_CARBONS = ' ((SMARTS. "[$([#6]~[#7,#8,#9])]") ...
|
|
POSITIVES = ' ((SMARTS. "[$([N;H3&+1][N,C,S,c;!$(C=*)])]") ...
|
|
SPECIAL = ' (SMARTS. "[$([NH-]-[Sv6X4](=O)=O)]") '
|
|
UNKNOWN_RESIDUE_SKIP_LIST = [ ' CL ' , ' GOL ' , ' SO4 ' ]
|
|
__package__ = ' schrodinger.structutils.interactions '
|
|
features_list = [ ' ((SMARTS. "[$([N;H3&+1][N,C,S,c;!$(C=*)])]") ...
|
|
receptor_atom_flags = None
hash(x)
|
|
templates = None
hash(x)
|
ACCEPTORS
- Value:
' ((SMARTS. "[n;+0;!X3;!$([n;H1](cc)cc)]") OR (SMARTS. "[$
([N;H0]#[C&v4])]") OR (SMARTS. "[O,S;H1;v2]")
OR (SMARTS. "[O;H0;v2;!$(O=N-*)]") OR (SMARTS. "[o;+0]"
) OR (SMARTS. "[$([S;X1]=[#6])]") OR (SMARTS
. "=[Nv3X2]") OR (SMARTS. "[$([OX1]=[NX2])]")
OR (SMARTS. "[S,s;v2X2;H0;+0]") OR (SMARTS. "[$([Nv3X3;
H0,H1;+0]);!$([NX3][CX3](=[OX1]));!$([NX3][SX4](=[OX1])=[OX1])]")
OR (SMARTS. "[Sv2X1;H0;+0]") OR (SMARTS. "[N;v3;
...
|
|
ALIPHATIC_FLUORINES
- Value:
' ((SMARTS. "CF") AND NOT (SMARTS. "C(F)F") AND
NOT (SMARTS. "C")) '
|
|
AROMATIC_FLUORINES
- Value:
' ((SMARTS. "cF") AND NOT (SMARTS. "c")) '
|
|
DONORS
- Value:
' ((SMARTS. "[N&!H0&v3,n&H1&+0]") OR (SMARTS. "[O,S;H1;+0]")
OR (SMARTS. "[$([NH-]-[Sv6X4](=O)=O)]")) '
|
|
GEMINAL_FLUORINES
- Value:
' ((SMARTS. "C(F)F") AND NOT (SMARTS. "C")) '
|
|
HYDROPHOBES
- Value:
' ((SMARTS. "[#6;+0;!$([#6]~[#7,#8,#9])]") OR (SMARTS. "
[s,S;v2X2;H0;+0]") OR (SMARTS. "[$([SX3v3;H0;+0;!$([SX3
v3;H0;+0]~[#7,#8,#9])])]") OR (SMARTS. "[$([SX4v4;H0;+0
;!$([SX4v4;H0;+0]~[#7,#8,#9])])]") OR (SMARTS. "[$([Cl,
Br,I;v1X1;H0;+0]([!Cl&!Br&!I]))]") OR (SMARTS. "[B]")) '
|
|
MISC
- Value:
' ((SMARTS. "[Sv6X4&H0&+0]") OR (SMARTS. "[Sv4X3&H0&+0]")
OR (SMARTS. "[Nv3X3&H0&+0]") OR (SMARTS. "[Pv5X4;H0;+0]")
OR (SMARTS. "[Pv4X4;H0;+0]") OR (SMARTS. "[$([#9]-[!#6]
)]") OR (SMARTS. "[$([Cl,Br,I])&!$([Cl,Br,I;v1X1;H0;+0]([!Cl&!
Br&!I]))]")) '
|
|
NEGATIVES
- Value:
' ((SMARTS. "[C,S](=[O,S,P])-[O;H0&-1]") OR (SMARTS. "[PX4
]-[O;H0&-1]") OR (SMARTS. "[n;X2;H0&-1]") OR
(SMARTS. "[Nv2X2&H0&-1]") OR (SMARTS. "([NX3+](=O)[O-])"
) OR (SMARTS. "[$([NH-]-[Sv6X4](=O)=O)]") OR
(SMARTS. "[O-]") OR (SMARTS. "[N-]") OR (SM
ARTS. "[$([S;H0-1]-P)]") OR (SMARTS. "[$([SX1;H0;-1])]"))
'
|
|
POLAR_CARBONS
- Value:
' ((SMARTS. "[$([#6]~[#7,#8,#9])]") OR (SMARTS. "[$([S
X3v3;H0;+0]~[#7,#8,#9])]") OR (SMARTS. "[$([SX4v4;H0;
+0]~[#7,#8,#9])]")) '
|
|
POSITIVES
- Value:
' ((SMARTS. "[$([N;H3&+1][N,C,S,c;!$(C=*)])]") OR (SMARTS.
"[$([N;H2&+1]([C,c;!$(C=*)])([C,c;!$(C=*)]))]") OR (SMAR
TS. "[$([N;H1&+1]([C,c;!$(C=*)])([C,c;!$(C=*)])([C,c;!$(C=*)]))]")
OR (SMARTS. "[$([N;H0&+1]([C,c;!$(C=*)])([C,c;!$(C=*)])([C,c
;!$(C=*)])([C,c;!$(C=*)]))]") OR (SMARTS. "[Nv4X4&H0&+1;!
$(N(=O)O)]") OR (SMARTS. "[Nv4X3&H0&+1;!$(N(=O)O)]")
OR (SMARTS. "[nv4X3;H1;+1;r6,r5]") OR (SMARTS. "
*=[Nv4X3H2+]") OR (SMARTS. "*=[Nv4X3H+]") OR
...
|
|
features_list
- Value:
[ ' ((SMARTS. "[$([N;H3&+1][N,C,S,c;!$(C=*)])]") OR (SMARTS
. "[$([N;H2&+1]([C,c;!$(C=*)])([C,c;!$(C=*)]))]") OR (SMA
RTS. "[$([N;H1&+1]([C,c;!$(C=*)])([C,c;!$(C=*)])([C,c;!$(C=*)]))]")
OR (SMARTS. "[$([N;H0&+1]([C,c;!$(C=*)])([C,c;!$(C=*)])([C,
c;!$(C=*)])([C,c;!$(C=*)]))]") OR (SMARTS. "[Nv4X4&H0&+1;
!$(N(=O)O)]") OR (SMARTS. "[Nv4X3&H0&+1;!$(N(=O)O)]")
OR (SMARTS. "[nv4X3;H1;+1;r6,r5]") OR (SMARTS.
"*=[Nv4X3H2+]") OR (SMARTS. "*=[Nv4X3H+]") O
...
|
|