FastROCS TK 1.7.0¶
New features¶
OEShapeDatabase now consumes approximately 50% less main memory. This improvement was gained by compressing color information in a more concise way. There should be negligible difference in color Tanimoto scores (only seen in the 4th decimal place).
Tversky similarity scoring is now available in FastROCS TK in addition to the default Tanimoto scoring. The following APIs have been added to support this new scoring:
OEShapeDatabaseOptions::SetSimFunc
andOEShapeDatabaseOptions::GetSimFunc
methods have been added to set and retrieve the scoring type.OEShapeDatabaseOptions::SetTverskyCoeffs
method has been included to allow custom tuning of the alpha and beta coefficients.OEShapeDatabaseOptions::GetTverskyAlpha
andOEShapeDatabaseOptions::GetTverskyBeta
methods have been added to retrieve the coefficients.OEShapeDatabaseScore::GetColorTversky
,OEShapeDatabaseScore::GetShapeTversky
,OEShapeDatabaseScore::GetTverskyCombo
,OEShapeDatabaseScore::GetColorScore
,OEShapeDatabaseScore::GetShapeScore
, andOEShapeDatabaseScore::GetScore
methods have been provided for retrieving Tversky scores.
For more details about Tversky similarity scoring, see the Molecular Shape section of the Shape TK theory documentation.
OEFastROCSIsGPUReady
function has been added to easily determine if the GPU is ready to accept FastROCS TK queries. It returnstrue
if OEShapeDatabase can successfully execute queries on a supported accelerator device, and otherwise returnsfalse
. This function checks for the presence and status of GPU devices on the system, throwing an error message if the GPU is not ready for use. This function allows for any potential GPU issues to be caught prior to loading large databases.OEShapeDatabase::PrintMemoryUsage
has been added to write out simple statistics about how much memory a particular OEShapeDatabase object is using and for what kinds of data.Driver support has been extended to include driver
361.*
. A list of currently supported NVIDIA drivers for FastROCS TK can be found in the Installation section.
Major bug fixes¶
OEShapeDatabase::GetScores
andOEShapeDatabase::GetSortedScores
will no longer add color atoms to queries passed as OEConfBase objects. Previously, the following code would yield non-deterministic color scores and bugs:for conf in mol.GetConfs(): for score in shapedb.GetScores(conf): ...
Users were previously instructed to make a temporary copy of the conformer into a new OEGraphMol before passing it to the methods that should have been logically
const
. This is no longer necessary.OEShapeDatabaseScore::Transform
will now only change the coordinates of the molecule as the name implies. The method will transform hydrogens and color atoms in the molecule.ShapeDatabaseServer.py will now remove hydrogens from hit lists so that results from a cached OEB file (
OEPrepareFastROCSMol
) are identical to when the server is started on a non-cached OEB file.
Minor bug fixes¶
OEShapeDatabase::Open
andOEShapeDatabase::GetScores
methods now throw an error message if a molecule contains no heavy atoms.
Python-specific changes¶
OEShapeDatabaseScore methods will no longer release the Python global interpreter lock.
Documentation changes¶
ShapeDatabasePrep.py example now has an optional argument to trim to a desired lower number of conformers.
BestShapeOverlay.py example will now output the proper filenames when a problem occurs while opening them.
Bugs in ShapeDatabaseServer.py, ShapeDatabaseClient.py, and ShapeDatabaseHistogram.py that were exposed when tested using Python 3.5 have been fixed. Python 3.5 now has a more efficient caching system in which file objects are required to be explicitly closed to ensure data writes are flushed.