OpenStructure
Data Structures | Functions
ost.mol.alg.ligand_scoring_base Namespace Reference

Data Structures

class  LigandScorer
 
class  NoSymmetryError
 
class  NoIsomorphicSymmetryError
 
class  TooManySymmetriesError
 
class  DisconnectedGraphError
 

Functions

def CleanHydrogens (ent, clib)
 
def MMCIFPrep (mmcif_path, biounit=None, extract_nonpoly=False, fault_tolerant=False)
 
def PDBPrep (pdb_path, fault_tolerant=False)
 
def ComputeSymmetries (model_ligand, target_ligand, substructure_match=False, by_atom_index=False, return_symmetries=True, max_symmetries=1e6, model_graph=None, target_graph=None)
 

Function Documentation

◆ CleanHydrogens()

def ost.mol.alg.ligand_scoring_base.CleanHydrogens (   ent,
  clib 
)
 Ligand scoring helper - Returns copy of *ent* without hydrogens

Non-standard hydrogen naming can cause trouble in residue property
assignment which is done by the :class:`ost.conop.RuleBasedProcessor` when
loading. In fact, residue property assignment is not done for every residue
that has unknown atoms according to the chemical component dictionary. This
function therefore re-processes the entity after removing hydrogens.

:param ent: Entity to clean
:type ent: :class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView`
:param clib: Compound library to perform re-processing after hydrogen
             removal.
:type clib: :class:`ost.conop.CompoundLib`
:returns: Cleaned and re-processed ent

Definition at line 54 of file ligand_scoring_base.py.

◆ ComputeSymmetries()

def ost.mol.alg.ligand_scoring_base.ComputeSymmetries (   model_ligand,
  target_ligand,
  substructure_match = False,
  by_atom_index = False,
  return_symmetries = True,
  max_symmetries = 1e6,
  model_graph = None,
  target_graph = None 
)
Return a list of symmetries (isomorphisms) of the model onto the target
residues.

:param model_ligand: The model ligand
:type model_ligand: :class:`ost.mol.ResidueHandle` or
                    :class:`ost.mol.ResidueView`
:param target_ligand: The target ligand
:type target_ligand: :class:`ost.mol.ResidueHandle` or
                     :class:`ost.mol.ResidueView`
:param substructure_match: Set this to True to allow partial ligands
                           in the reference.
:type substructure_match: :class:`bool`
:param by_atom_index: Set this parameter to True if you need the symmetries
                      to refer to atom index (within the residue).
                      Otherwise, if False, the symmetries refer to atom
                      names.
:type by_atom_index: :class:`bool`
:type return_symmetries: If Truthy, return the mappings, otherwise simply
                         return True if a mapping is found (and raise if
                         no mapping is found). This is useful to quickly
                         find out if a mapping exist without the expensive
                         step to find all the mappings.
:type return_symmetries: :class:`bool`
:param max_symmetries: If more than that many isomorphisms exist, raise
  a :class:`TooManySymmetriesError`. This can only be assessed by
  generating at least that many isomorphisms and can take some time.
:type max_symmetries: :class:`int`
:raises: :class:`NoSymmetryError` when no symmetry can be found;
         :class:`NoIsomorphicSymmetryError` in case of isomorphic
         subgraph but *substructure_match* is False;
         :class:`TooManySymmetriesError` when more than `max_symmetries`
         isomorphisms are found; :class:`DisconnectedGraphError` if
         graph for *model_ligand*/*target_ligand* is disconnected.

Definition at line 1560 of file ligand_scoring_base.py.

◆ MMCIFPrep()

def ost.mol.alg.ligand_scoring_base.MMCIFPrep (   mmcif_path,
  biounit = None,
  extract_nonpoly = False,
  fault_tolerant = False 
)
 Ligand scoring helper - Prepares :class:`LigandScorer` input from mmCIF

Only performs gentle cleanup of hydrogen atoms. Further cleanup is delegated
to :class:`LigandScorer`.

:param mmcif_path: Path to mmCIF file that contains polymer and optionally
                   non-polymer entities
:type mmcif_path: :class:`str`
:param biounit: If given, construct specified biounit from mmCIF AU
:type biounit: :class:`str`
:param extract_nonpoly: Additionally returns a list of
                        :class:`ost.mol.EntityHandle`
                        objects representing all non-polymer (ligand)
                        entities.
:type extract_nonpoly: :class:`bool`
:param fault_tolerant: Passed as parameter to :func:`ost.io.LoadMMCIF`
:type fault_tolerant: :class:`bool`
:returns: :class:`ost.mol.EntityHandle` which only contains polymer
          entities representing the receptor structure. If *extract_nonpoly*
          is True, a tuple is returned which additionally contains a
          :class:`list` of :class:`ost.mol.EntityHandle`, where each
          :class:`ost.mol.EntityHandle` represents a non-polymer (ligand).

Definition at line 79 of file ligand_scoring_base.py.

◆ PDBPrep()

def ost.mol.alg.ligand_scoring_base.PDBPrep (   pdb_path,
  fault_tolerant = False 
)
 Ligand scoring helper - Prepares :class:`LigandScorer` input from PDB

Only performs gentle cleanup of hydrogen atoms. Further cleanup is delegated
to :class:`LigandScorer`. There is no logic to extract ligands from PDB
files. Ligands must be provided separately as SDF files in these cases.

:param pdb_path: Path to PDB file that contains polymer entities
:type pdb_path: :class:`str`
:param fault_tolerant: Passed as parameter to :func:`ost.io.LoadPDB`
:type fault_tolerant: :class:`bool`
:returns: :class:`EntityHandle` from loaded file.

Definition at line 190 of file ligand_scoring_base.py.