class OEIsomericConfTest : public OEConfTestBase
This class represents OEIsomericConfTest.
This implementation of OEConfTestBase combines subsequent connection tables into a multi-conformer molecule if they:
- Have the same numbers of atoms and bonds in the same order
- Each atom and bond must have identical properties with its order correspondent in the subsequent connection table
- Have the same atom and bond stereochemistry
- Have the same title (optional)
OEIsomericConfTest 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:
Constructs an OEIsomericConfTest 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 at the top.
OEConfTestBase *CreateCopy() const
Deep copy constructor that returns a copy of the object. The memory for the returned OEIsomericConfTest 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.