This namespace contains constants representing how search data (molecules and pre-generated screens) are stored and searched in an OESubSearchDatabase object.
This namespace contains the following constants.
The default type is OESubSearchDatabaseType::InMemoryMultiThreaded.
This mode is memory intensive, but it provides the fastest way to search a dataset when utilizing all available processors on the machine.
When an OESubSearchDatabase is initialized with the OESubSearchDatabaseType::MolDatabaseMultiThreaded type, only the pre-generated screens are pre-loaded into memory. During the search, if a molecule can not be rejected based on its screen, then it has to be loaded from disk on-the-fly to perform atom-by-atom validation.
This mode is not as fast as OESubSearchDatabaseType::InMemoryMultiThreaded mode, however, it requires significantly less memory, allowing to searches on larger datasets. The performance loss is highly dependent on the query and its screening performance. If a significantly large number of hits can be pre-screened, searching only a couple thousands molecules can be done very fast even with the added I/O cost of loading molecules on the fly.
In both modes, searches can be executed in single or multi-treaded way based on the parameter (maximum number of processors) that was determined when the database was constructed.
- OESubSearchDatabase class