FastROCS TK 1.4.0

  • The structure of the FastROCS tar-ball has changed to mimic an openeye distribution tree usually seen on Linux. All programs can now be found in the openeye/bin directory.

  • This version of FastROCS was built with the NVIDIA 310 driver included in this distribution. FastROCS should continue to work with the 295 driver as OpenCL and CUDA have not changed version between these driver versions. However, if problems are experienced during the upgrade, please try upgrading the NVIDIA driver to the 310 version.

Features

  • FlaskROCS, an example web page service has been added. See openeye/FlaskROCS/README for more information.

  • ShapeDatabaseClient (both Python and Java) no longer requires the OpenEye toolkits to run. This should make client applications a lot more portable and easier to write. Clients written against version 1.3.1 servers and prior versions will still continue to work. The following demonstrates client commands and that their behavior is unchanged when upgrading the server to version 1.4.0.

    The 1.3.1 and prior clients: ./ShapeDatabaseClient.py 1_3_1_server_addr query.sdf results.oeb # still works ./ShapeDatabaseClient.py 1_3_1_server_addr query.oeb results.oeb # still works ./ShapeDatabaseClient.py 1_3_1_server_addr query.sdf results.sdf # would never work, results had to be an oeb file

    ./ShapeDatabaseClient.py 1_4_0_server_addr query.sdf results.oeb # still works ./ShapeDatabaseClient.py 1_4_0_server_addr query.oeb results.oeb # still works ./ShapeDatabaseClient.py 1_4_0_server_addr query.sdf results.sdf # would never work, results had to be an oeb file

    The 1.4.0 client will only work with 1.3.1 servers when the input and output format is oeb. However, the results file no longer needs to be oeb when running the 1.4.0 client against a 1.4.0 server. The following demonstrates client commands and that their behavior unchanged when upgrading the server to version 1.4.0.

    The 1.4.0 client: ./ShapeDatabaseClient.py 1_3_1_server_addr query.sdf results.oeb # won’t work, query is sdf file ./ShapeDatabaseClient.py 1_3_1_server_addr query.oeb results.oeb # still works ./ShapeDatabaseClient.py 1_3_1_server_addr query.sdf results.sdf # would never work, results had to be an oeb file

    ./ShapeDatabaseClient.py 1_4_0_server_addr query.sdf results.oeb # still works ./ShapeDatabaseClient.py 1_4_0_server_addr query.oeb results.oeb # still works ./ShapeDatabaseClient.py 1_4_0_server_addr query.sdf results.sdf # works now! results can be any file format

Note

The servers (ShapeDatabaseServer.py and ShapeDatabaseProxy.py) still require an OEChem license. Though it is a long term to remove this deficiency in licensing.

The following client scripts still require OEChem: * ShapeDatabaseIsLoaded.py * ShapeDatabaseOEThrowSetLevel.py

This can be coded around upon customer request.

Note

the distribution no longer ships with the OpenEye Java jar files.

  • ShapeDatabasePrep multi-threaded program added to replace the CacheStuff.py script to quickly and efficiently prepare OEB database files for faster load times into FastROCS. It is now highly recommended to run this program on your database to save on load time performance by the server.

  • The memory footprint of the ShapeDatabaseServer.py has been reduced by about half by making use of new experimental OEChem technology, the OEMolDatabase. This effectively uses the database file itself to serve requests for molecule connection tables. This also improved database load time performance by 2x. Load time is now affected by disk bandwidth, so better load times can be achieved by investing in faster hard drive, e.g., solid state drives.

    Note: it is now highly recommended to pass ShapeDatabaseServer.py an uncompressed .oeb file instead of a .oeb.gz file.

  • ShapeDatabaseAddMols.py has been removed from the distribution. ShapeDatabaseServer.py is now a “read-only” database after it finishes loading.

  • ShapeDatabaseOEThrowSetLevel.py can now set the server into the “Error” level, that is, warnings are not even printed.

  • The ShapeDatabaseServer’s XML RPC SubmitQuery method now takes 2 additional optional arguments: iformat=’.oeb’ and iformat=’.oeb’. The iformat arguments specifies what file format the query is being sent in at the first argument to SubmitQuery, querymolstr. The oformat argument specified what file format the results should be back in from the QueryResults method. The default is OEB since clients prior to this version always sent data in the OEB format.

  • Added the NumConfs method to the OEShapeDatabase object.

  • OEFastROCSGetRelease added to return the version number of the library.

  • CustomColorFFPrep.py script added to demonstrate how to cache color atoms on molecules to force the server and client to use a custom color force field.

  • Support has been added for custom OEColorForceFields to the OEShapeDatabase and OEShapeDatabaseOptions objects. The color force field given to the OEShapeDatabaseOptions must be a subset of the color force field used to construct the OEShapeDatabase.

Bug Fixes

  • Fixed a license check issue that would call sys.exit when no OEChem license was present while importing the oeshapedatabase module.

  • Fixed a crash that would be caused by using OESetMemPoolMode after loading the oeshapedatabase module.

  • FastROCS results will now be returned in a deterministic order when the scores are identical. The order of hits with identical scores would sometimes appear in a different order upon subsequent runs due to results being sorted in parallel by the server. FastROCS will now break this tie by falling back to the order that the molecules are in the database.