schrodinger.application.phase.subset_screening module

This module contains classes and APIs to support pharmacophore screening against subsets of atoms in potentially large structures, such as proteins.

Copyright Schrodinger LLC, All Rights Reserved.

class schrodinger.application.phase.subset_screening.SubsetExtractorResult(structure: Structure, sites: list, ligand: PhpLigand, site_mappings: dict)

Bases: object

Class that holds the result of extracting pharmacophore sites from a subset of atoms in a structure. The member data are defined as follows:

structure - The extracted structure.Structure composed of static

fragments.

sites - The PhpSite objects associated with the static fragments.

These will be of type A, D, H, N or P (i.e., no Q sites).

ligand - A PhpLigand that holds a copy of the underlying extracted

CT and the sites. May be used to create a PhpStructureBus that can be screened with a pharmacophore hypothesis.

site_mappings - A dictionary that maps 0-based PhpSite numbers in sites

to 0-based PhpSite numbers in the original structure. Useful for finding the original sites associated with the matches to a pharmacophore screen of the extracted ligand.

structure: Structure
sites: list
ligand: PhpLigand
site_mappings: dict
__init__(structure: Structure, sites: list, ligand: PhpLigand, site_mappings: dict) None
class schrodinger.application.phase.subset_screening.SubsetExtractor(fd: Optional[list[phase.PhpFeatureDefinition]] = None)

Bases: object

Extracts pharmacophore sites from a subset of atoms in a structure, where each site is associated with at least one atom from the subset. Thus if the subset contains atoms 7,8,9 and those atoms are part of an aromatic ring in the original structure, an aromatic site will be extracted with the same location and orientation as the corresponding aromatic site in the original structure.

Various data are created from the extracted sites, including a PhpLigand, which facilitates pharmacophore-based sceening against the atom subset.

__init__(fd: Optional[list[phase.PhpFeatureDefinition]] = None)

Constructor taking feature definitions that will be used for mapping pharmacophore sites. If omitted, default definitions are used.

extract(st: Structure, atom_subset: Iterable[int]) SubsetExtractorResult

Performs extraction of static pharmacophore sites and associated data from the provided structure and a 1-based iterable of atoms in that structure. This typically requires a fraction of a second for a protein containing a few thousand atoms and one or more seconds for a protein containing > 10,000 atoms.

class schrodinger.application.phase.subset_screening.SubsetScreener(hypo: PhpHypoAdaptor, match_options: PhpMatchOptions)

Bases: object

Screens a subset of atoms in a structure against a pharmacophore hypothesis and aligns the structure to the hypothesis according to the match(es).

__init__(hypo: PhpHypoAdaptor, match_options: PhpMatchOptions)

Constructor taking a pharmacophore hypothesis and matching options. Note that since screening is performed against static fragments, volume scores are effectively meaningless, so the associated weights are set to 0 when computing Fitness scores.

screen(st: Structure, atom_subset: Iterable[int]) list[schrodinger.structure._structure.Structure]

Performs a pharmacophore screen against a 1-based subset of atoms in the provided structure. Hits are returned in order of decreasing PHASE_FITNESS score. The returned list will be empty if no matches are found.

schrodinger.application.phase.subset_screening.extract_hypothesis(hypo_id: str, st: Structure, atom_subset: Iterable[int], fd: Optional[list[phase.PhpFeatureDefinition]] = None) PhpHypoAdaptor

Uses the SubsetExtractor class to create a Pharmacophore hypothesis from a 1-based subset of atoms in a structure. The returned hypothesis is composed of static sites, each of which is associated with at least one of the provided atoms.

schrodinger.application.phase.subset_screening.get_atom_list(atoms: str) list[int]

Returns a list of atom numbers parsed from a comma-delimited string or read from the first line of a CSV file.

schrodinger.application.phase.subset_screening.get_atom_shell(receptor: Structure, ligand: Structure, dmin: float, dmax: float) list[int]

Returns a 1-based list of atoms in receptor that are within the specified distance range of any atom in ligand. Useful for testing extraction in the vicinity of a binding site.

schrodinger.application.phase.subset_screening.remap_matched_ligand_sites(old_sites_str: str, site_mappings: dict[int, int]) str

Given an old matched ligand sites string and a dictionary that maps old site numbers to new site numbers, this function returns a new matched ligand sites string that reflects the new site numbering.