# OEFPVariogram¶

class OEFPVariogram : public OEFPHistogram


OEFPVariogram class is used to generate a variogram of similarity scores and related empirical measurements. An OEFPVariogram object is a OEFPHistogram with additional variogram data regarding user provided measurements.

The empirical variogram has the form :

$$\hat{\gamma}(h)=\frac{1}{2|N(h)|}\sum\limits_{(i,j)\in N(h)} |z_i-z_j|^2$$

Where $$N(h)$$ is the set of pairs that have a distance close to $$h$$ and $$z_i$$ is the measurement provided for the $$i$$ th molecule.

For all of our built-in similarity measures, except for Tversky, distance is calculated a $$1-similarity$$. It is not possible to calculate an empirical variogram using Tversky similarity.

The measurement in the context of a variogram can be any user provided value per fingerprint e.g. bioassay data or calculated properties.

The following methods are publicly inherited from OEFPHistogram:

## Constructors¶

OEFPVariogram(size_t numBins=200, double min=0, double max=1)


Constructors that need documenting.

size_t AddSample(const float sim, const float obs)


Adds a sample representing a pair of molecules into the variogram

sim
Similarity between fingerprints i and j
obs
Measured difference between the relevant fingerprints $$z_i-z_j$$

Note

Since we are dealing with $$|z_i-z_j|^2$$ this relationship is actually symmetrical.

## GetVariogram¶

OESystem::OEIterBase<double> *GetVariogram() const


Returns an iterator over the empirical variogram.