FastROCS TK 1.7.0¶
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 and OEShapeDatabaseOptions::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 and OEShapeDatabaseOptions::GetTverskyBeta methods have been added to retrieve the coefficients.
- OEShapeDatabaseScore::GetColorTversky, OEShapeDatabaseScore::GetShapeTversky, OEShapeDatabaseScore::GetTverskyCombo, OEShapeDatabaseScore::GetColorScore, OEShapeDatabaseScore::GetShapeScore, and OEShapeDatabaseScore::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 returns true if OEShapeDatabase can successfully execute queries on a supported accelerator device, and otherwise returns false. 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.
Driver support has been extended to include driver 361.*. A list of currently supported NVIDIA drivers for FastROCS TK can be found in the fastrocs_nvidia_drivers section.
Major bug fixes¶
OEShapeDatabase::GetScores and OEShapeDatabase::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¶
- OEShapeDatabaseScore methods will no longer release the Python global interpreter lock.
- 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.