class OEOmegaConfTest : public OEConfTestBase

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

  • have the same number of atoms and bonds in the same order
  • have atoms and bonds with identical properties in the same order
  • have the same atom and bond stereochemistry, except for invertible nitrogen stereochemistry
  • have the same title (optional)

OEOmegaConfTest 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).

The following methods are publicly inherited from OEConfTestBase:

CombineMols CompareMols CreateCopy


OEOmegaConfTest(bool compTitles=true)

Constructs an OEOmegaConfTest 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.


bool CombineMols(OEMCMolBase &m1, OEMolBase &m2)


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

Returns whether the two OEMolBase objects are the same by checking the four conditions listed above.


OEConfTestBase *CreateCopy() const

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

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