Shape TK 2.0.0¶
New features¶
The Shape TK has been completely redesigned to make the library thread-safe, to make the library more flexible to use, and to allow the API to be easily extended with additional functionality.
Three new classes, OEExactShapeFunc, OEGridShapeFunc, and OEAnalyticShapeFunc, have been added to provide static shape overlap calculation based on Exact, Grid, and Analytic methods.
Three new classes, OEExactColorFunc, OEGridColorFunc, and OEAnalyticColorFunc, have been added to provide static color score calculation based on Exact, Grid, and Analytic methods.
A new class, OEShapeOptions, has been added to define options related to all OEShapeFunc evaluations.
A new class, OEColorOptions, has been added to define options related to all OEColorFunc evaluations.
A new class, OEShapeGridOptions, has been added to define options related to grid-based method evaluations.
A new class, OEAnalyticOptions, has been added to define options related to analytic method evaluations.
A new class, OEOverlapPrep, has been added that can be used to prepare molecules for shape and/or color calculations.
A new class, OEOverlay, has been added that can be used to overlay conformers of an OEMol on a reference system that can be a molecule, grid, or shape query.
A new class, OEOverlayOptions, has been added that sets all options for overlay optimization using OEOverlay. OEOverlayOptions provides flexibility to optimize based on shape or color or both, to choose any method for shape or color calculation, and to optimize overlap or Tanimoto individually for shape and color.
A new class, OEROCS, has been added that can be used to generate hits from a database on a reference system that can be a molecule, grid, or shape query. OEROCS provides top hits based on flexible scoring criterion.
A new class, OEROCSOptions, has been added to define options for generating hits using OEROCS.
A new class, OEROCSResult, has been added that extends the OEBestOverlayScore with overlaid conformer structures.
Three overloads of a new function,
OEROCSOverlay
, have been added to provide the best hit between a pair of molecules.New unary predicates have been added to terminate a hit search calculation using OEROCS:
The OEShapeQueryPublic class has been replaced by OEShapeQuery and is complete with functionality to create and edit a shape query with combinations of molecules, grids, and Gaussians.
With the introduction of the new API classes in Shape TK, several previously existing classes have been deprecated. The following table shows the deprecated classes and their replacements:
Deprecated Class
New Class
OEShape::OEOverlap
OEShape::OEColorOverlap
OEShape::OEBestOverlay
OEShape::OEColorResults
OEShape::OEShapeQueryPublic
With the introduction of the new API, several obsolete functionalities have been removed. These functionalities were added in the early development days of Shape TK and are no longer deemed useful. Methods related to such functionality, contained within the deprecated classes, are now ignored. The list of methods that fall into this category, with their current behavior, is as follows:
OEShape::OEOverlap::Overlap(const OESystem::OEScalarGrid&, OEOverlapResults&)
: The method does nothing and returnsfalse
.OEShape::OEOverlap::SetFitGrid(const OESystem::OEScalarGrid&)
: The method does nothing and returnsfalse
.OEShape::OEOverlap::SetRepresentationLevel(unsigned int)
: The method does nothing and returnsfalse
. The default representation level isOEShape::OEOverlapRepresentation::Atomic
.OEShape::OEColorOverlap::SetAllColor(bool)
: The method does nothing and returnsfalse
. The defaultAllColor
state istrue
.OEShape::OEBestOverlay::SetAllColor(bool)
: The method does nothing and returnsfalse
. The defaultAllColor
state istrue
.OEShape::OEBestOverlay::SetInertialAxialDivisions(unsigned int)
: The method does nothing and returnsfalse
.OEShape::OEBestOverlay::SetRepresentationLevel(unsigned int)
: The method does nothing and returnsfalse
. The default representation level isOEShape::OEOverlapRepresentation::Atomic
.OEShape::OEBestOverlay::Overlay(const OESystem::OEScalarGrid&)
: The method does nothing and returns an empty iterator.
Minor Bug Fixes¶
The Hermite grid generated by OEHermite was previously offset from the original frame of the molecule being expanded. This has been corrected.
Previously, using a molecule without 3D coordinates as a reference for an overlay had caused a crash. This has been fixed.
Documentation changes¶
The ShapeTK examples have been rewritten to illustrate the use of the new API. The various
bestOverlay
examples now have more descriptive names.