Attention
This API is currently available in C++ and Python.
OESiteHopperDatabase¶
class OESiteHopperDatabase : public OEShape::OESiteHopperDatabaseBase
This class allows creation and searching of one or more OESiteHopper patches, built from OEDesignUnits. When adding data to the database, it can be opened in either Create or Append mode. For searching, open in Search (ReadOnly) mode for thread safety and to prevent accidentally changing the data.
Constructors¶
OESiteHopperDatabase()
OESiteHopperDatabase(const OESiteHopperDatabase &)
Default constructors.
Open¶
bool Open(const std::string &dbfile, const unsigned int mode,
const OESiteHopperDatabaseOptions &opts=OESiteHopperDatabaseOptions())
Open a file as an OESiteHopperDatabase.
To create a new database, use the mode
OESiteHopperDatabaseMode::CREATE
. If the file
already exists, it will be overwritten. The options used to create the
database can be changed by passing an new version of OESiteHopperDatabaseOptions.
To append to an existing database, use the mode
OESiteHopperDatabaseMode::APPEND
. If the file
does not yet exists, it will be created like the Create mode.
To read or search a file, open using the mode
OESiteHopperDatabaseMode::SEARCH
. This opens the
database in read-only mode and will not allow adding new entries.
Note
OESiteHopperDatabaseOptions are only used in CREATE mode. Otherwise, options already stored in the database will be used.
operator bool¶
operator bool() const
Add¶
unsigned int Add(const std::string &filename)
unsigned int Add(const OEBio::OEDesignUnit &du)
Add a single OEDesignUnit file or object to an open database. This method will fail if the database is not open or if not opened in Create or Append mode.
Returns the index of the newly added OEDesignUnit or UINT_MAX on failure.
AddDirectory¶
bool AddDirectory(const std::string &path, unsigned int ncpu=0,
OESystem::OETracerBase &tracer=OESystem::OENoTracer)
Add a directory of OEDesignUnit files to the database. This call will recurse the entire directory tree, looking for all available .oedu files.
By default, this call will use all available CPUs to process this set of OEDesignUnits. Setting ncpu can be used to reduce the number of CPUs used.
If you want to see a progress bar during the process, use an OEConsoleProgressTracer instead of the default OENoTracer.
Close¶
void Close()
Close the database connection. Any operations (except another call to Open) after this will fail.
GetDesignUnit¶
bool GetDesignUnit(OEBio::OEDesignUnit &du, unsigned int idx) const
Get a specific OEDesignUnit based on the database index.
GetIDByTitle¶
std::vector<unsigned int> GetIDByTitle(const std::string &title) const
Get a vector of indices based on a substring match of the passed in title to OEDesignUnit titles in the database.
GetMaxMolIdx¶
unsigned int GetMaxMolIdx() const
Internal use: Get the maximum index in the database. Used by the GPU search.
GetMolecule¶
bool GetMolecule(OEChem::OEMolBase &mol, unsigned int idx) const
Internal use: Get the patch molecule for the given index.
GetOptions¶
const OESiteHopperDatabaseOptions &GetOptions() const
Get the options used to create patches as they are added to the database.
GetSequenceInfo¶
bool GetSequenceInfo(std::vector<std::vector<std::string>> &seq,
unsigned int idx) const
Internal use: Get the sequence info for the given database index.
GetTitle¶
bool GetTitle(std::string &title, unsigned int idx) const
Get the OEDesignUnit title for the given index.