OESubSearchDatabaseType¶
Attention
This API is currently available in C++ and Python.
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.
Default
The default type is OESubSearchDatabaseType::InMemoryMultiThreaded
.
InMemoryMultiThreaded
When an OESubSearchDatabase is initialized with the
OESubSearchDatabaseType::InMemoryMultiThreaded
type,
the search data, both molecules and pre-generated screens, are
pre-loaded into memory.
This mode is memory intensive, but it provides the fastest way to search a dataset when utilizing all available processors on the machine.
MolDatabaseMultiThreaded
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.
Note
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.
See also
OESubSearchDatabase class
Code Example