Added support for reading the V3000 file format for molecules, queries, and reactions. By default, whether to read the V3000 format will be detected automatically from the header inside .sdf, .mol, and .rxn files.
OEGroupBase class added as a container of atoms and bonds inside a OEMolBase to store MDL enhanced stereo information. See the OEGroupType namespace for the different types of enhanced stereo information that can be processed. Only the following subset of OEChem functions handle OEGroupBase information at this time:
Adding the following predicates for handling OEGroupBase objects on molecules.
OEAssignZap9Radii has been updated to use the method published in the 2010 Journal of Computer-Aided Molecular Design by Nicholls, Wlodek, and Grant. The old behavior can be accessed by passing constants found in the OEZap9Version namespace.
oemolithread now works with CDX files.
OEIFlavor.PDB.FORMALCHARGE input flavor for PDB file reading added. This flavor is provided for advanced users who wish to read the formal charge from the file and do their own bond and hydrogen perception. It is not yet turned on by default.
SD data tags and value in SDF files can now be up to 64 kilobytes in length, up from the previous limit of just 4 kilobytes.
OEMolecularFormula extended to include hydrogen isotopes deuterium (D) and tritium (T) in the molecular formula output. Note, the default behavior has not changed, the user is required to pass an additional parameter to enable this feature.
The Amber C-terminal capping residue OEResidueIndex.NME is now supported. Support for the Amber C-terminal capping residue OEChem::OEResidueIndex::NMH is incomplete.
OESubsetMol will no longer crash non-deterministically when setting the RGroup parameter to true.
OEInterface had a rare one time initialization thread safety bug when dealing with molecule parameters that has been fixed.
OEMCSType.Approximate search method will now terminate once the OEMCSSearch.GetMaxMatches limit has been reached. The previous behavior was to keep enumerating all possible matches, then choose the first matches up to the limit. This significantly speeds up OEMCSType.Approximate searches that results in a lot of matches, e.g., matching a molecule onto itself.
It is highly recommended to call OESuppressHydrogens before trying to perform a self match on a molecule.