schrodinger :: structutils :: analyze :: AslLigandSearcher :: Class AslLigandSearcher
[hide private]
[frames] | no frames]

Class AslLigandSearcher

object --+
         |
        AslLigandSearcher

Search a Structure instance for putative ligands with an Atom Selection Language expression. Results are returned as a list of Ligand instances.

API example:

   st = structure.StructureReader('file.mae').next()
   st_writer = structure.StructureWriter('out.mae')
   asl_searcher = AslLigandSearcher()
   ligands = asl_searcher.search(st)
   for lig in ligands:
       st_writer.append(lig.st)
   st_writer.close()

ASL evaluates molecules in a strict sense. Ligands with zero-order bonds to metal and covalently-attached ligands are difficult to find with this naive approach. See __init__ for options that workaround these limitations.

'sidechain', 'backbone', and 'ion' aliases are used by this module. They are taken from first mmasl.ini in the path, but are assumed to be defined as a list of PDB atom names that correspond to atoms of the protein side chains, protein backbone, and small ions respectively.

Since the precise definition of a ligand is context specific and impossible to generally formulate, this class attempts to provide customizable tools for identifying ligands within a structure. It is the caller's responsibility to customize the search parameters and verify that the hits are appropriate.


See Also: find_ligands for a simple functional interface to this class.

Instance Methods [hide private]
 
__init__(self, excluded_residues=None)
Initialize searcher.
 
_getLigandParameters(self)
list
search(self, st)
Find list of putative ligands matching either ligand_asl or the default internally gerenated ASL.
 
_extract_ligands(self, st, ligand_mol_atoms)

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Instance Variables [hide private]
bool copy_props
If True then copy the ct-level properties from the searched structure to all the found ligand substructures.
bool exclude_amino_acids
If True then 'sidechain and backbone' are excluded from the ASL evaluation, and therefore not considered putative ligands.
bool exclude_ions
If True then 'ions' are excluded from the ASL evaluation, and therefore not considered putative ligands.
list excluded_residues
List of three-letter PDB codes that are excluded from matching.
int max_atom_count
Maximum number of atoms for a putative ligand.
int min_atom_count
Minimum number of atoms for a putative ligand.
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, excluded_residues=None)
(Constructor)

 

Initialize searcher.

Overrides: object.__init__

search(self, st)

 

Find list of putative ligands matching either ligand_asl or the default internally gerenated ASL.

Parameters:
  • st (Structure) - Structure to search for ligands.
Returns: list
a list of Ligand instances. These are putative ligands that match the ASL expression. See Ligand for attributes.

Instance Variable Details [hide private]

copy_props

If True then copy the ct-level properties from the searched structure to all the found ligand substructures. If False, only the title will be copied. (default: True)
Type:
bool

exclude_amino_acids

If True then 'sidechain and backbone' are excluded from the ASL evaluation, and therefore not considered putative ligands. (default: False)
Type:
bool

exclude_ions

If True then 'ions' are excluded from the ASL evaluation, and therefore not considered putative ligands. (default: True)
Type:
bool

excluded_residues

List of three-letter PDB codes that are excluded from matching. These are ubiquitous small molecules that are rarely treated as ligands. See __init__ body for the full list.
Type:
list

max_atom_count

Maximum number of atoms for a putative ligand. (default: 130)
Type:
int

min_atom_count

Minimum number of atoms for a putative ligand. (default: 5)
Type:
int