FastROCS vs ROCSΒΆ
OpenEye makes available two separate shape based virtual screening technologies:
- ROCS
Thousands of conformers per second
- FastROCS
Millions of conformers per second
The ROCS technology is also embodied in the Shape TK. The Shape TK is a very flexible toolkit for experimenting with molecular shape and different ways that it can be applied. FastROCS is also deployed as a toolkit, but with a very different goal in mind: raw performance. In order to achieve this raw performance GPU hardware is utilized. The use of GPUs required the complete rewrite of the ROCS algorithm to work well on GPUs. Furthermore, the opportunity was taken to completely rethink all trade-offs the algorithm makes in preference to speed. Therefore, it is expected that ROCS and FastROCS will output slightly different results.
In order for FastROCS to achieve a throughput of millions of conformers per second the entire informatics base of shape comparison had to be reimagined. FastROCS operates on millions of conformers in memory, in parallel, all at once. Whereas, the Shape TK will typically only operate on a single molecule at a time. Therefore, FastROCS is designed as a web service to serve shape queries from a database pre-loaded into memory: ShapeDatabaseServer.py example. The ShapeDatabaseServer.py is the best place for new users to start.
The ShapeDatabaseServer.py example is built around the most important
API in FastROCS TK, the OEShapeDatabase
. The
OEShapeDatabase
class is built to be a natural
extension of the OEMolDatabase
class in OEChem
TK. The OEShapeDatabase
object will manage the
storage of conformers in memory and interacting with any GPU in the
system. Theoretically, the user of
OEShapeDatabase
should not have to know that
their calculation is being performed on a GPU.
Note
For batch processing operations where databases are brought into memory temporarily, the BestShapeOverlay.py is a better first script to read and alter.