OEOmegaConfTest¶
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:
Constructors¶
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.
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 four conditions listed above.
CreateCopy¶
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.