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 OESubSearchScreenTypeBase

The OESubSearchScreenTypeBase class provides an interface to type OESubSearchScreen objects. The type determines what kind of queries in mind the screen was designed for

  • SMARTS patterns
  • MDL queries
  • simple molecule queries with no complex query features

Screen types can not be constructed by themselves. The type of an OESubSearchScreen object is determined when it is initialized by calling either the OEMakeSubSearchQueryScreen or the OEMakeSubSearchTargetScreen function.

Each screen type has a version number. Version numbers are introduced in order to keep track of changes in the screen generation algorithm itself.

See also

The following code snippet shows how to interrogate the screen type.

OESubSearchScreen screen;
OEMakeSubSearchTargetScreen(screen, mol, OESubSearchScreenType::MDL);
const OESubSearchScreenTypeBase* stype = screen.GetScreenType();
std::cout << stype->GetScreenTypeString() << std::endl;
std::cout << stype->GetVersionString() << std::endl;
std::cout << stype->GetName() << std::endl;

The output of the code is:

MDL SubSearch Screen,ver=0.9.0
MDL SubSearch Screen


std::string GetName() const

Returns the name of the screen type.


unsigned int GetScreenType() const

Returns the screen type defined in the OESubSearchScreenType namespace.


std::string GetScreenTypeString() const

Returns the name and the version of the screen type in the string format.


unsigned int GetSize() const

Returns the number of bits in of the screen type.


unsigned short GetVersion() const

Returns the current version of the screen type.


std::string GetVersionString() const

Returns the current version of the screen type in the string format, such as 0.9.0 .


The version number of various screen types will not be changed with each release. It will be incremented only if modifications or bug fixes to the corresponding algorithm would result in generating a different screen for the same molecule.

Screens with an old version number will not be supported. But rather it will be required to regenerate the screen databases.