OEAbsoluteConfTest

class OEAbsoluteConfTest : public OEConfTestBase

This class represents OEAbsoluteConfTest.

This implementation of OEConfTestBase combines subsequent connection tables into a multi-conformer molecule if they:

  1. Have the same number of atoms and bonds in the same order.
  2. Each atom and bond must have identical properties with its order correspondent in the subsequent connection table.
  3. Have the same title (optional).

Note

OEAbsoluteConfTest shouldn’t be used for reading multi-conformer molecules in PDB or XYZ file format. These file formats typically require the use of OEDetermineConnectivity (and OEPerceiveBondOrders) which may potentially perceive and create bonds in different orders (or arbitrarily assign bond orders and Kekulé forms differently) for different conformers of the same molecule. This disrupts the ordering (and property) constraints described above. Generally, file formats other than PDB and XYZ should be used for storing multi-conformer molecules (as consecutive connection tables), but if unavoidable, the OEAbsCanonicalConfTest class should be used instead.

The following methods are publicly inherited from OEConfTestBase:

CombineMols CompareMols CreateCopy

Constructors

OEAbsoluteConfTest(bool compTitles=true)

Constructs an OEAbsoluteConfTest object. The argument ‘compTitle’ specifies whether to compare molecule titles (accessed by OEMolBase::GetTitle). If the constructor is called with no arguments or with the argument true, molecule titles will be required to be the same. Otherwise, the titles will not be compared. In the latter instance, each conformer will have the individual title of its original connection table and the multi-conformer molecule will reflect the title of the active conformer.

CombineMols

bool CombineMols(OEMCMolBase &m1, OEMolBase &m2)

CompareMols

bool CompareMols(OEMolBase &m1, OEMolBase &m2) const

Returns whether the two OEMolBase objects are the same by checking the three conditions listed at the top.

Before the comparison all atom and bond stereo values of ‘m2’ are set to OEAtomStereo::Undefined and OEBondStereo::Undefined, respectively, followed by canonical ordering of its atoms by OECanonicalOrderAtoms

CreateCopy

OEConfTestBase *CreateCopy() const

Deep copy constructor that returns a copy of the object. The memory for the returned OEAbsoluteConfTest 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.