Docking is the process of determining the structure of a ligand bound in the active site of a target protein. In the Docking Toolkit this is done with the OEDock class that takes a multiconformer representation of a ligand and returns the top scoring pose (or poses if desired) within the active site. Docking is done using an exhaustive search algorithm, followed by optimization of the best poses from the exhaustive search (see Docking Algorithm section).

Docking Molecules is an example program that uses the OEDock class to dock, score and annotate multiconformer molecules.

Scoring Functions and Search Resolution

The resolution of the exhaustive search and scoring functions are required inputs when constructing a OEDock object.

dockMethod is an unsigned int constant from the OEDockMethod namespace, that specifies the combination of scoring functions (or method) OEDock uses for the exhaustive search and optimization. The available scoring methods are:

dockResolution is an unsigned int constant from the OESearchResolution namespace, that specifies the docking resolution to use. The docking resolution is the rotational and translational stepsize used during the exhaustive search and optimization (the rotational stepsize is the furthest distance any heavy atom of the ligand will move in a single rotational step). The following resolutions are supported

Resolution Exhaustive Translational Exhaustive Rotational
OESearchResolution.High 1.0 1.0
OESearchResolution.Standard 1.0 1.5
OESearchResolution.Low 1.5 2.0
Resolution Optimization Translational Optimization Rotational
OESearchResolution.High 0.5 0.5
OESearchResolution.Standard 0.5 0.75
OESearchResolution.Low 0.75 1.0

All resolutions are in Angstroms.

See also

Section Docking Algorithm for more information docking algorithm.

Hybrid Method

The hybrid (OEDockMethod.Hybrid2) docking method is distinguished from other docking methods because it uses information present in the structure of a bound ligand to enhance docking performance.

The bound ligand information is used during the exhaustive search stage of the docking process (see Docking Algorithm section) by using the Chemical Gaussian Overlay scoring function, which scores poses based on how well a docked pose overlays the shape of the bound ligand and mimics the same hydrogen bonding and interactions the bound ligand makes. After the exhaustive search, optimization is performed with Chemgauss4 which is a standard structure based scoring function.

The final score a ligand receives using the hybrid docking method is based only on its interactions with the protein. Ligand information is used only to guide the selection of poses during the exhaustive search.


In order to use the hybrid docking method the receptor object must have a bound ligand (see section_receptor_bound_ligand section).


An OEDock object must be initialized with a receptor object, prior to docking, scoring or annotating any molecules. This is done by passing a OEDesignUnit containing a receptor (see chapter_receptor) to the OEDock.Initialize method.

Docking Molecules

Once the OEDock object has been initialized molecules are docked using the OEDock.DockMultiConformerMolecule method.

Docking requires a multiconformer representation of the molecule as input. Docking selects the top scoring docked pose from the provided ensemble of conformers. The score of the docked molecule can be obtained by calling the OEMolBase.GetEnergy method of pose.

OEDock can also return alternate as well as top scoring poses of the docked molecule.

Scoring Molecules

The final score of a molecule (using the optimization scoring function) docked with the OEDock.DockMultiConformerMolecule method can be obtained by calling the OEMolBase.GetEnergy.

OEDock can also recalculate a score of a pose (using the optimization scoring function), and calculate the contribution for each individual component of the score as in the following example.

Docking Algorithm

OEDock docks multiconformer molecules using an exhaustive search that systematically searches rotations and translations of each conformer of the ligand within the active site. Following the exhaustive search the top scoring poses are optimized and assigned a final score. These two steps are described in more detail below

Exhaustive Search

  1. Enumerates, to given resolution, every possible rotation and translation of each conformer of the ligand being docked within a box enclosing the active site. The resolution of the exhaustive search is determined by the overall resolution setting of OEDock (see Scoring Functions and Search Resolution section).
  2. Discard out poses that either clash with the protein or extend to far from the binding site using the receptor’s negative image outer contour (see Negative Image section).
  3. If the negative image inner contour is enabled discard any poses that do not have at least one heavy atom that falls within the inner contour. (see Negative Image section).
  4. Discard any poses that do no match any user specified constraints. (see Constraints section).
  5. Score all remaining poses. The scoring function used here depends on what scoring method is being used (see Scoring Functions and Search Resolution section).
  6. Sort poses by score and pass the top scoring poses to optimization. The number of posses passed to optimization depends on the search resolution (see OESearchResolution constant namespace).


  1. Each pose moved to 729 nearby positions, scored and the top scoring position become the new optimized pose. The positions are generated by having the initial pose take one positive and one negative step for each translational and rotational degree of freedom. The resolution of these steps is half that of the exhaustive search, and is determined by the overall resolution setting of OEDock (see Scoring Functions and Search Resolution section).
  2. The best scoring pose of the 729 tests poses is selected as the final docked structure (and score) for the ligand.