The OEChem::OEReadMolFromString and
OEChem::OEWriteMolToString functions use internal buffers for
the encoding or decoding of molecules from bytes. Previously, depending
on library load order, internal buffers could be initialized without the
complete set of binary input/output handlers. This could result in the
loss of custom datatypes when translating to or from bytes.
These internal buffers now are updated during subsequent loads of
OpenEye libraries to ensure that the complete set of custom datatypes
is handled correctly.
The implementations of OEChem::OEDBMol and
OEChem::OEMiniMol have been corrected to avoid a potential crash
after an OEMolBase.Compress and
OEMolBase.UnCompress call sequence when the molecule
contains OEGroupBase objects (e.g., reaction component
information or V3000 enhanced stereo information). While the
OEChem::OEMiniMol supports OEGroupBase objects,
it cannot save and restore following
OEMolBase.UnCompress calls, so this class must never be
used if OEGroupBase information is to be maintained.
The OEChem::OEDBMol implementation is the preferred class for
low memory footprint applications when OEGroupBase
may be present.
When writing a 2D molecule with explicit hydrogens to an MDL file,
the coordinates of the stereo hydrogens are now reassigned by
calling the OESet2DHydrogenGeom function
if they are identical to their parent heavy atom coordinates.
This ensures that reinterpretation of the MDL file does not
inadvertently flip stereo configurations.
A deprecated overload of the OEPRECompress function,
OEPRECompress(OEMol&,constOEMCMolBase&), has been removed from
the C++ API. OEPrepareFastROCSMol should now be
used to create molecules optimized for ROCS-type calculations.
The documentation has been updated to reflect this change.