class OEMolComplexCategorizerBase

Abstract base class functor for objects stored in OESplitMolComplexOptions objects which are used by OESplitMolComplex and OEGetMolComplexComponents to assign functional roles to molecular fragments.

The following OESplitMolComplexOptions methods get or set an OEMolComplexCategorizerBase:



The following classes derive from this class:


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

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.


OEMolComplexCategorizerBase *CreateCopy() const =0

CreateCopy method.


bool GetBundleCofactors() const

Returns true if cofactors (other than metals) are associated with the category OEMolComplexFilterCategory_Cofactor.


OEResidueCategoryData* GetResidueCategoryData() const = 0

Pure virtual method.

OEResidueCategoryData& GetResidueCategoryData() = 0

Pure virtual method.


bool UsingExplicitLigandName() const

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