class OEMCSMaxAtomsCompleteCycles : public OEMCSFunc

This class represents OEMCSMaxAtomsCompleteCycles.

The OEMCSMaxAtomsCompleteCycles class is an implementation of OEMCSFunc designed to order maximum substructure matches by the maximum number of atoms included in the graph match, with a variable priority given to matches which contain complete cycles common to both pattern and target.

The following methods are publicly inherited from OEMCSFunc:




OEMCSMaxAtomsCompleteCycles(double a=1.0)

The constructor takes a ‘penalty’ argument, with a default value of 1.0. The penalty (or scaling) factor is used to subtract from the total score composed of matching atoms and bonds the number of pattern ring bonds that are not matches by a target bond (see scoring function below). This has the affect of scoring matches more highly when pattern ring bonds are matched.


double operator()(const OEMolBase &, const OEMolBase &, OEAtomBase **,
                  OEBondBase **)

This method is called by its parent OEMCSSearch or OECliqueSearch object. The method is called with the pattern molecule, target molecule, and arrays and atoms and bonds containing the correspondences found for the a common structure match. The method computes a value based on the number of atoms and bonds in the common structure match which is used to determine the maximum common structure match.

Scoring function:

\(num.\ of\ mapped\ atoms + \frac{num.\ of\ mapped\ bonds}{100} - penalty \times num.\ of\ unmapped\ cyclic\ query\ bonds\)

The default penalty for each unmapped cyclic query bond is 1.0.


OEMCSFunc *CreateCopy() const

Deep copy constructor that returns a copy of the object. The memory for the returned OEMCSMaxAtomsCompleteCycles object is dynamically allocated and owned by the caller.

The returned copy should be deallocated using C++ delete operator in order to prevent a memory leak.