OESubSearchScreenTypeBase

Attention

This is a preliminary API 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
0.9.0
MDL SubSearch Screen

GetName

std::string GetName() const

Returns the name of the screen type.

GetScreenType

unsigned int GetScreenType() const

Returns the screen type defined in the OESubSearchScreenType namespace.

GetScreenTypeString

std::string GetScreenTypeString() const

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

GetSize

unsigned int GetSize() const

Returns the number of bits in of the screen type.

GetVersion

unsigned short GetVersion() const

Returns the current version of the screen type.

GetVersionString

std::string GetVersionString() const

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

Note

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.