schrodinger.structutils.interactionfp module¶
Calculate structural interaction fingerprints.
The fingerprints are similar to those described in Deng et al, J. Med Chem (2004), 47, 337.
Copyright Schrodinger, LLC. All rights reserved.
- class schrodinger.structutils.interactionfp.StructuralInteractionFingerprintGenerator¶
Bases:
object
A class which generates Structural Interaction Fingerprints. Based on the work described in: J. Med. Chem., 47 (2), 337-344, 2004. ‘Structural Interaction Fingerprint (SIFt): A Novel Method for Analyzing Three-Dimensional Protein-Ligand Binding Interactions’
- POLAR_RESIDUES = 'res. ARG, ASP, GLU, HIS, ASN, GLN, LYS, SER, THR, ARN, ASH, GLH, HID, HIE, LYN'¶
- HYDROPHOBIC_RESIDUES = 'res. PHE, LEU, ILE, TYR, TRP, VAL, MET, PRO, CYS, ALA, CYX'¶
- AROMATIC_RESIDUES = 'res. PHE, TYR, TRP, TYO'¶
- CHARGED_RESIDUES = 'res. ARG, ASP, GLU, LYS, HIP, CYT, SRO, TYO, THO'¶
- NUM_BITS_PER_RESIDUE = 9¶
- CONTACT_POS = 0¶
- BACKBONE_POS = 1¶
- SIDECHAIN_POS = 2¶
- POLAR_POS = 3¶
- HYDROPHOBIC_POS = 4¶
- ACCEPTOR_POS = 5¶
- DONOR_POS = 6¶
- AROMATIC_POS = 7¶
- CHARGED_POS = 8¶
- ANY_CONTACT = 'Any Contact'¶
- BACKBONE_INTERACTION = 'Backbone Interaction'¶
- SIDECHAIN_INTERACTION = 'Sidechain Interaction'¶
- POLAR_RESIDUE = 'Polar Residues'¶
- HYDROPHOBIC_RESIDUE = 'Hydrophobic Residues'¶
- HYDROGEN_BOND_ACCEPTOR = 'Hydrogen Bond Acceptor'¶
- HYDROGEN_BOND_DONOR = 'Hydrogen Bond Donor'¶
- AROMATIC_RESIDUE = 'Aromatic Residue'¶
- CHARGED_RESIDUE = 'Charged Residue'¶
- INTERACTION_NAMES = ['Any Contact', 'Backbone Interaction', 'Sidechain Interaction', 'Polar Residues', 'Hydrophobic Residues', 'Hydrogen Bond Acceptor', 'Hydrogen Bond Donor', 'Aromatic Residue', 'Charged Residue']¶
- __init__()¶
Constructor - no args
- reset()¶
Clear all the lists of fingerprints and associated data
- setHbondParameters(dist, donor_angle, acceptor_angle)¶
Set the hydrogen bonding parameters, maximum distance, minimum donor angle and mi mum acceptor angle
- setInteractionCutoff(cutoff=4.0, h_cutoff=2.5)¶
Sets the maximum interaction cutoff. No atom interactions beyond this distance will be counted
- setIncludeContact(include)¶
Set whether we will include the generalized contact bit
- setIncludeBackbone(include)¶
Set whether we will include the backbone contact bit
- setIncludeSidechain(include)¶
Set whether we will include the side-chain contact bit
- setIncludePolar(include)¶
Set whether we will include the polar residue contact bit
- setIncludeHydrophobic(include)¶
Set whether we will include the hydrophobic residue contact bit
- setIncludeAcceptor(include)¶
Set whether we will include the hydrogen bond acceptor contact bit
- setIncludeDonor(include)¶
Set whether we will include the hydrogen bond donor contact bit
- setIncludeCharged(include)¶
Set whether we will include the charged residue contact bit
- setIncludeAromatic(include)¶
Set whether we will include the aromatic residue contact bit
- getMinRes()¶
Return the first residue index for which an interaction is detected
- getMaxRes()¶
Return the last residue index for which an interaction is detected
- getLigandID(idx)¶
Return the ID for the idx’th ligand
- getLigandTitle(idx)¶
Returns the title for the idx’th ligand (if it exists)
- getResidueType(idx)¶
Returns the PDB residue type for the idx’th residue
- getResidueID(idx)¶
Return the ID for the idx’th residue
- getReceptorID()¶
Returns the ID (usually an entry ID) associated with the structure
- setReceptorStructure(receptor_st, id)¶
Set the structure to be treated as the receptor and setup some lists and sets of atoms we’ll use in calculating subsequent interactions.
If non-conformer proteins are used, use this method to set the reference structure.
- generateFingerprint(ligand, id, receptor_region, ligand_title=None, nonpolar_hydrogens=False, receptor_st=None, aligned_residues=None)¶
Generate a structural interaction fingerprint for the given ligand with id. The receptor_region parameter is a list of receptor atom numbers corresponding to the receptor residues that are to be considered as interacting with the ligand. No other residues will be considered (their bits in the fingerprint will all be 0). If receptor_region is None then it will be calculated automatically
The fingerprints generated are stored in internal lists and can be accessed via other methods (or written to disk ).
- Parameters
ligand (Structure class object) – the ligand structure to calculate fingerprints for
id (str) – the entry id of the ligand in the project table
receptor_region (None or list) – custom list of atoms in the receptor site. If None or empty list, the receptor set in setReceptorStructure() will be used.
ligand_title (str) – the name of the ligand being calculated
nonpolar_hydrogens (bool) – True if nonpolar hydrogens should be included in the calculation, False if not.
aligned_residues (list(structure._Residue|None)) – List of residues from this complex that correspond to
- writeFPFile(file_name, all_props=False)¶
Write the stored fingerprints to a Canvas FP file given by ‘file_name’
- Parameters
all_props (bool) – Whether to also export all CT-level properties.
- writeCSVFile(file_name, all_props=False, for_binaryFP=False)¶
Write the stored fingerprints to a CSV file given by
file_name
- Parameters
all_props (bool) – Whether to also export all CT-level properties.
for_binaryFP – Whether to add “BIT” prefix to the binary column headers.
- Bype for_binaryFP
bool
- writeInteractionsFile(file_name, all_props=False)¶
Write ligand atom indices involved in interactions to a CSV file given by
file_name
- Parameters
file_name (str) – name of CSV file
all_props (bool) – Whether to also export all CT-level properties.
- __len__()¶
Return the length of the fingerprint list
- getInteractionMatrix(which_interaction)¶
Returns a tuple containing: i) matrix of 0s and 1s for the specified interaction. The matrix is only generated between the first and last residue which had an interaction with any ligand 2) An array of length N where each element is the total number of bits turned on across all ligands the current interaction and N is the number of residues which have an interaction 3) An array of length M where each element is the number of bits turned on for the i’th ligand across all residues and M is the number of Ligands
Returns None, None, None if no interactions were found.
- getFingerprintString(ligand_index, residue_index)¶
Returns a string which summarizes the interactions between between ligand ‘ligand_index’ and residue ‘residue_index’
- getPropertyNames()¶
Returns sorted list of property names.
- Returns
ligand properties
- Return type
list[str]
- schrodinger.structutils.interactionfp.chm_sparse_bitset_from_string(on_string)¶
Convert the on_string to a canvas fingerprint
- Parameters
on_string (
str
) – ‘,’ or ‘ ‘ separated string of keys whose bits should be set- Returns
finger print bitset
- Return type
canvas.ChmSparseBitset