Atom and bond expressions of query molecules have been optimized for substructure search. The graphs below show the performance improvement since the 2018.Oct release. Optimization has been turned on for both MDL queries and SMARTS patterns and can be controlled by the following options:
A new OEFormat.OEZ compressed binary format has been added with the .oez extension. This file format only supports multi-conformer molecules derived from the OEMCMolBase class. Each molecule is individually compressed in the file using the Zstandard compression algorithm. See the Compressed Input and Output section for more details.
This new file format is not backwards compatible. OpenEye applications and toolkits released before April 2019 will not be able to read or write this file format.
Multi-conformer molecule overloads have been added to the following existing APIs:
New input flavors, OEIFlavor.MDL.SuppressEmptyMolSkip, OEIFlavor.SDF.SuppressEmptyMolSkip, and OEIFlavor.RDF.SuppressEmptyMolSkip, have been added to the MDL formats to allow returning empty molecule records. This allows the SD data to be recovered from these records.
New output flavors, OEOFlavor.MDL.SuppressTimestamps and OEOFlavor.SDF.SuppressTimestamps, have been added to the MDL formats to explicitly suppress timestamps in the file header. This is convenient for generating diffable test files.
The following new classes have been added to provide alternative ways to access tagged property data in molecules:
A new OELibraryGen.NumPossibleProducts method has been added that returns the number of possible products that can be generated.
A new OEShortestPath overload function has been added that disallows traversing excluded bonds in the path.
A new OEAtomBondSet.GetParent method has been added.
A new OEGetResidueIndexFromCode function has been added.
The OEPDBOrderAtoms function has been updated to take an argument that preserves the PDB residue order. It defaults to false to preserve backwards compatibility.
The following preliminary APIs have been added to handle design units:
The above classes and functions are currently used by Spruce TK for protein handling.