PRELIMINARY-IMAGE This is a preliminary API until Spring 2021 and may be improved based on user feedback. It is currently available in C++ and Python.

class OECreateSubSearchDatabaseOptions

This class represents the OECreateSubSearchDatabaseOptions class that encapsulates properties that determine how a substructure search database is generated when calling the OECreateSubSearchDatabaseFile function.

The OECreateSubSearchDatabaseOptions class stores the following properties:

Property Default Get method Set method Corresponding namespace / class / type
screen type   GetScreenType Constructor OESubSearchScreenTypeBase class
database sorting true GetSortByBitCounts SetSortByBitCounts boolean
handling molecule titles false GetKeepTitle SetKeepTitle boolean
number of processors 0 (0 means OEGetNumProcessors) GetNumProcessors SetNumProcessors unsigned integer


OECreateSubSearchDatabaseOptions(const OESubSearchScreenTypeBase *)

Constructs an OESubSearchScreenTypeBase object with the given screen type.


bool GetKeepTitle() const

Returns whether the molecule titles are kept in the output substructure search database. The default is false.


unsigned GetNumProcessors() const

Returned the number of processors used during the database generation.


const OESubSearchScreenTypeBase *GetScreenType() const

Returns the type of the screen that will be generated for each molecule in substructure search database.

See also


bool GetSortByBitCounts() const

Returns whether to sort the molecules based on their screen bit counts. The default is true.


void SetKeepTitle(const bool keep)

Sets whether to keep molecule titles taken from the input file as unique identifiers. If false, a 16 character long UUID will be assigned for each molecule as a new title.


If the original molecule titles are kept, these titles should be unique. OECreateSubSearchDatabaseFile will not check or throw any warnings for non-unique title when generating the substructure database files.

By keeping the titles when the database is generated, an external id (such as corporate or vendor id) can be associate with each molecule in the substructure search database. When searching the database, the titles of the matched molecules can be retrieved by the OESubSearchDatabase::GetMatchTitles method.


void SetNumProcessors(const unsigned)

Sets the number of threads that are used to generate the substructure search database when calling the OECreateSubSearchDatabaseFile function. When set to 0, the number of processors used will be the number returned by the OEGetNumProcessors function.


void SetSortByBitCounts(const bool sort)

Sets whether to sort the molecules based on their screen bit counts.


The OESubSearchDatabase works with both sorted and unsorted input database files. While sorting the database at generation can take slightly more time, this pays off at search time. Based on the query molecule, significant portion of the screen matches can be skipped without losing any matches when using a sorted input database.