3.1 Overlap methods

This nature of the algorithm used to calculate overlap is determined by the SetMethod() member of OEOverlap. At present there are four types of algorithms implemented: Exact, Analytic, Analytic2, and Grid. These are defined in the OEOverlapMethod namespace.

The Exact option is as detailed above: all pairs are considered and the gaussian overlaps are calculated exactly. The two Analytic options use an approximation to the overlap between two gaussians that is accurate to about one part in a thousand. In addition, Analytic2 uses a proximity grid to only calculate those atoms pairs that are within a certain threshold distance (by default 4.5Å). This approximation adds another one part in a thousand average error but is faster for larger molecules. The final option, Grid, uses a grid representation of the volume of the target molecule. It requires significant set-up time relative to the cost of a single overlap calculation ( 0.01s compared to 0.0001s) but is significantly faster than other methods for the evaluation of each overlap once set. Grid suffers a few caveats and drawbacks. First is that, currently, although reference radii are all treated as given, fit atoms are all treated as if they have one radius (that assigned to carbon, and setable via SetCarbonRadius()). The second is that the approximation is slightly worse, typically a few parts in a thousand, at typical grid resolutions. Both Analytic2 and Grid improve performance when the fit molecule is large (>20 atoms) because, if there are $n$ atoms in the fit and $m$ in the reference, the work per atom in the fit is proportional to a constant not $n$.

By default, OEOverlap performs an Exact overlap calculation. The OEBestOverlay object (used in ROCS) uses Grid for speed.