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