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 (boolean) – True if nonpolar hydrogens should be included in the calculation, False if not.

:type aligned_residues list(structure._Residue|None) :param aligned_residues: 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

__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’

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