Shape Similarity Searches

The cartridge is able to perform real-time shape similarity searches by working in concert with a FastROCS server. Once an RMI server is installed on a GPU capable machine with a pre-existing FastROCS installation, shape searches are performed using FastROCS domain operators.

Shape Indexes

To create a FastROCS index for shape searches use:

create index fastrocs_index on struct_table(conformers)
       indextype is c$arnachm1.fastrocsIndexType;

It is recommended to build FastROCS indexes on columns of pre-built multi-conformer molecules for large data tables. Building an index on a column of SMILES or SDF strings may require a prohibitive amount of compute time for a large data table.

To change the OMEGA parameters maxconfs and maxtime from their default values use:

create index fastrocs_index on nci_open(smiles)
       indextype is c$arnachm1.fastrocsIndexType parameters ('max_conf:50 max_time:10.0');

To change from the default RMI server for the index build use:

create index fastrocs_index on nci_open(smiles)
       indextype is c$arnachm1.fastrocsIndexType parameters ('rmi_hostname:name_of_remote_host');

The name_of_remote_host may either be specified as a fully qualified domain name or IP address.

To defragment the external index (remove “holes” that are created when compounds are removed or edited) use:

alter index fastrocs_index rebuild;

Note that for the FastROCS index the change log table is committed whenever the table is read.

To completely rebuild the index (deleting the current change log table and serialized Java object then rebuilding that object) use:

alter index fastrocs_index rebuild parameters('full');

To load the index into the RMI server memory use:

alter index fastrocs_index parameters('load');

To unload/remove the index from the memory of the RMI server use:

alter index fastrocs_index parameters('unload');

To validate the structure of the external file of persisted multi-conformer OEMols use:

alter index fastrocs_index parameters('validate');

The index will automatically adjust during column renames, table renames and table truncates. To delete the index use:

drop index fastrocs_index;


The RMI server spawns external processes that may continue running if the RMI server crashes or is not shut down properly. While building a FastROCS index on a column, if the RMI server process is terminated, external OMEGA processes used to create 3D conformations may be left running. This will need to be terminated manually. It is not possible to stop OMEGA external processes from within Java.

When a FastROCS index is loaded into memory, a process is created. The FastROCS proceses will be terminated upon normal shutdown of the RMI server (i.e. with the UNIX kill signal). However, if the RMI server is terminated abruptly (i.e. UNIX term signal) the processes will continue running and will need to be stopped manually.

RMI communication as implemented in the cartridge is insecure. Any distributed system is thus best run on a secure intranet or virtual private network. The RMI server must leave port 1521 open to the Oracle server.

Table Of Contents

Previous topic

Graphsim Implementation Notes

Next topic