OEMolComplexCategorizer

class OEMolComplexCategorizer : public OEMolComplexCategorizerBase

Concrete class functor used by OESplitMolComplex and OEGetMolComplexComponents to assign functional roles to molecular fragments. The OESplitMolComplexOptions class holds a OEMolComplexCategorizer object by default.

The following methods are publicly inherited from OEMolComplexCategorizerBase:

operator()

GetBundleCofactors

CreateCopy

UsingExplicitLigandName

GetResidueCategoryData

Constructors

OEMolComplexCategorizer(const OEMolComplexCategorizer &rhs)
OEMolComplexCategorizer(const std::string &ligName=std::string())

Constructor and copy constructor. If ligName is specified in the call to the constructor, the method UsingExplicitLigandName will return true and components will be recognized as ligands if and only if they have a matching residue name string.

operator=

OEMolComplexCategorizer &operator=(const OEMolComplexCategorizer &rhs)

Assignment operator.

operator()

std::string operator()(OESystem::OERoleSet &roles,
                       std::map<std::string, unsigned> &counts,
                       const OEChem::OEAtomBondSet& frag,
                       bool isCovalent = false) const

Method to examine the OEAtomBondSet frag and return three things required by OESplitMolComplex and OEGetMolComplexComponents to process the component:

  • a new title string

  • a OERoleSet containing the functional roles associated with this fragment (see OEMolComplexFilterCategory)

  • an updated map of how many times a residue has been seen to date

If isCovalent is true, additional tests may be performed to determine whether the fragment might be considered a (covalent) ligand which is indicated with the OEMolComplexFilterCategory::Ligand OERole in roles.

AddLigandName

void AddLigandName(const std::string &ligName)

Store an additional ligand name in the OEResidueCategoryData associated with this object. Method UsingExplicitLigandName will return true and components will be recognized as ligands if and only if they have a residue name string matching one of the OEResidueDatabaseCategory::Ligand entries.

ClearLigandSubSearch

void ClearLigandSubSearch()

Clear any ligand subsearch pattern.

CreateCopy

OEMolComplexCategorizerBase *CreateCopy() const

CreateCopy method.

GetBundleCofactors

bool GetBundleCofactors() const

Returns true if cofactors (other than metals) are associated with the category OEMolComplexFilterCategory::ProtComplex.

GetLigandSubSearch

OEChem::OESubSearch GetLigandSubSearch() const

Return the subsearch pattern used to identify the ligand by graph.

GetMaxLigAtoms

unsigned GetMaxLigAtoms() const

Return the maximum number of non-hydrogen atoms in a ligand.

GetMaxLigResidues

unsigned GetMaxLigResidues() const

Return the maximum number of residues in a ligand.

GetMaxPeptideResidues

unsigned GetMaxPeptideResidues() const

Return the maximum number of residues in a peptide.

GetMaxProteinAtoms

unsigned GetMaxProteinAtoms() const

Return the maximum number of non-hydrogen atoms in a protein.

GetMinLigAtoms

unsigned GetMinLigAtoms() const

Return the minimum number of non-hydrogen atoms in a ligand.

GetResidueCategoryData

OEResidueCategoryData *GetResidueCategoryData() const

Return a new copy of the OEResidueCategoryData object used to define all the molecular components that are not ligands.

To avoid a memory leak in C++, the returned pointer should be stored in a variable of the OEOwnedPtr template class or deallocated with the delete operator.

OEResidueCategoryData& GetResidueCategoryData()

Returns a reference to the OEResidueCategoryData object used to define all the molecular components that are not ligands.

SetBundleCofactors

void SetBundleCofactors(bool bundle=true)

Controls whether cofactors (other than metals) should be associated with the category OEMolComplexFilterCategory::ProtComplex.

SetLigandSubSearch

void SetLigandSubSearch(const char *smarts)
void SetLigandSubSearch(const OEChem::OESubSearch &ss)

Define a subsearch pattern used to identify the ligand by graph.

SetMaxLigAtoms

void SetMaxLigAtoms(unsigned n)

Set the maximum number of non-hydrogen atoms in a ligand. Default = 70.

Note

When no ligand is found, other molecules such as peptides, nucleic acids, or sugars may be treated as ligands. If this occurs, this restriction will not apply.

SetMaxLigResidues

void SetMaxLigResidues(unsigned n)

Set the maximum number of residues in a ligand. Default = 3.

Note

When no ligand is found, other molecules such as peptides, nucleic acids, or sugars may be treated as ligands. If this occurs, this restriction will not apply.

SetMaxPeptideResidues

void SetMaxPeptideResidues(unsigned n)

Set the maximum number of residues to be considered a peptide. Default = 49.

SetMaxProteinAtoms

void SetMaxProteinAtoms(unsigned n)

Set the maximum number of non-hydrogen atoms in a protein. Default = 0, meaning unlimited.

SetMinLigAtoms

void SetMinLigAtoms(unsigned n)

Set the minimum number of non-hydrogen atoms in a ligand. Default = 4.

Note

When no ligand is found, other molecules such as peptides, nucleic acids, or sugars may be treated as ligands. If this occurs, this restriction will not apply.

SetResidueCategoryData

void SetResidueCategoryData(const OEResidueCategoryData &db)

Set the OEResidueCategoryData object used to define all the molecular components that are not ligands.

UsingExplicitLigandName

bool UsingExplicitLigandName() const

Returns true if an explicit ligand residue name is being used to identify the ligand.