class OEPosit

OEPosit is used to pose predict multiconformer molecules in an active site. The score returned is the probability that the molecule, if bound, has the returned pose.

Use the following procedure to dock and score molecules with this class.

  1. Select whether you wish to do a full conformational search on the input ligand using the OEPositOptions class. Setting this option to false disables the rotamer search portion of the flexible search algorithm.

  2. Initialize the active sites by adding receptors to the OEPosit instance(see Receptors chapter) to the OEPosit.Initialize method.

  3. Dock molecules using the OEPosit.DockMultiConformerMolecule method.

  4. Score docked molecules with the following methods

    ScoreLigand returns the value of OEPosit.GetInvalidScore if used to Score a ligand that was not docked.


OEPosit( const OEPositOptions &options = OEPositOptions() )

Constructs the OEPosit object to use the options specified by a the supplied OEPositOptions instance. The default instance turns on full conformational searching when posing the ligand.


bool IsInitialized() const

Returns true if this object has been successfully initialized and is ready to dock molecules.


bool Initialize(const OEChem::OEMolBase& receptor)

Initialize receptor to pose ligand against.

This function returns true if setup was successful and false otherwise.

A receptor describing the active site of the target protein (see Receptors chapter). This object does not depend upon receptor once this call is completed (i.e. receptor can be destroyed after calling this method).


Both overloads of this method dock inputMol into the receptor added by the OEPosit.Initialize method.

The return value of this method describes the result of the docking, with a value from the OEDockingReturnCode namespace. A result of OEDockingReturnCode.Success indicates docking was successful.

unsigned int DockMultiConformerMolecule(OEChem::OEMolBase& dockedMol,
                                        const OEChem::OEMCMolBase& inputMol)

This overload of OEPosit.DockMultiConformerMolecule returns the top scoring pose.

Docked pose with the best pose prediction probability of inputMol.
A multiconformer representation of a molecule to dock.

The score of the docked pose can be obtained by calling the GetEnergy method of dockedMol.

unsigned int DockMultiConformerMolecule(OEChem::OEMCMolBase& dockedMol,
                                        const OEChem::OEMCMolBase& inputMol,
                                        unsigned int numPoses = 1)

This overload of OEPosit.DockMultiConformerMolecule can return alternate docked poses, in addition to the top scoring pose.

Docked poses of inputMol. Poses are stored as conformers of the OEMCMolBase and are sorted by score.
A multiconformer representation of a molecule to dock.
Maximum number of top scoring docked poses to return in dockedMol. Typically this will be the number of poses returned, however, in highly restricted sites fewer than numPoses may be returned. The value of numPoses must be greater than zero.

The score of the docked poses can be obtained by calling the GetEnergy method on the conformers of dockedMol.


bool GetHighScoresAreBetter() const

Returns true if higher scores indicate a better result.

Returns false if lower scores indicate a better result.


std::string GetName() const ;

Returns the name of the scoring function docked poses are scored with.


float  GetInvalidScore() const

Returns the invalid score returned by OEPosit, these values are set up to sort invalid values in reverse order from the best reported values.


float ScoreLigand(const OEChem::OEMolBase& pose)

Rescores a pose within the active site.

Structure of a pose within the active site

If an error occurs this function will return FLT_MAX if OEPosit.GetHighScoresAreBetter returns false or -FLT_MAX otherwise.


This function caches the current scoring setup of the OEPosit object onto a receptor object. When another OEPosit object is initialized with this receptor the it will read in the cached score data rather than recalculating it from scratch, thus improving the startup time of the OEPosit object.

bool CacheScoringSetup(OEChem::OEMolBase& receptor, bool clearOldData=true)
A receptor object. This must be the same receptor object the OEPosit object was initialized with or an exact copy.
Flag to clear cached data from a prior call to CacheScoringSetup with this receptor. The cached data can be quite sizable (hundreds of megabytes), so leaving this flag at the default value of true is recommended.


The cached score data on a receptor will be saved when the receptor is written to a file.