FastROCS TK 1.1.0

Major Bug Fixes

  • Fixed color bug that was calculating incorrect static color scores. Large errors were caused whenever the shape optimization produced large translations.
  • Fixed bug that was causing certain database molecules (usually flat molecules) to be collapsed to a single point during the inertial alignment step of loading the database. This would sometimes manifest as tanimotos being outside the normal 0-1 range.

Minor Bug Fixes

  • Fixed incorrect color Gaussian width used in the color score calculation.
  • Handle zero division error in the color tanimoto calculation caused whenever a molecule has no color atoms. These tanimotos will now be 0.0.
  • In the event an error occurs in the OpenCL driver and a command queue can not be opened to the GPU device only retry a finite amount of time. That is, don’t loop infinitely in the event of a lower level error.
  • Fixing order dependence problem caused whenever PYTHONPATH was explicitly set overriding the search path explicitly set inside ShapeDatabaseServer.py.
  • Fixed bug in ShapeDatabaseServer.py caused by OEHeader objects in OEB files. This will be fixed in a more general sense by the next toolkit release.
  • ShapeDatabaseServer.py will only allow one client query to process at a time to ensure that GPU resources are not exhausted. This restriction may be lifted in a future version, but for now this is the best way to keep the server robust in a multi-user environments.
  • Cached color in OEB files use compressed color atoms in order to not corrupt the OEB rotor offset compression format. Also use the cached “AllColor” self term as it is closer to how the grid color overlap is calculated.

Major Features

  • Added support for Shape Query (.sq) files generated from vROCS. These files can now be passed directly to ShapeDatabaseClient.(py/java).
  • Significant performance improvement to post scoring with static color. Post scoring with static color is now essentially “free” as it occurs on the CPU after the shape optimization on the GPU. To achieve this at least 2 CPU cores per Fermi GPU is recommended.

Minor Features

  • Significant performance improvement by caching the underlying GPU context more effectively. Some queries were seeing a 1-2 second overhead per GPU device because the GPU context could not be cached. Later versions of the driver seem to support this without crashing. If this version starts giving odd crashing behavior, try updating the NVidia driver first.
  • ShapeDatabaseChunker.py is a little more robust in choosing output file names.
  • Added ability to use 8 inertial starting points.
  • Added the CacheStuff.py script to cache as much as possible to improve database load time. ShapeDatabaseChunker.py updated to cache color stuff as well.
  • Totally revamped the output of Debug mode to allow for timing the more asynchronous nature of FastROCS now.