Skip to content

Chromatographic Models

Retention times and chromatographic behaviour of chemicals are controlled by the Column classes. A column assigns each chemical an offset and optional drift that modifies its chromatogram.

Clean Columns

CleanColumn applies reproducible offsets to all chemicals, keeping their elution order fixed. A simple example uses fixed offsets in minutes:

from vimms.Column import CleanColumn

column = CleanColumn.from_fixed_offsets([chemicals], 0.0, 1.0, 2.0)

Offsets can instead be sampled from normal or uniform distributions using from_gaussian_offsets or from_uniform_offsets.

Linear Drift

LinearColumn extends CleanColumn with a retention time drift function, allowing systematic shifts across injections. Provide either fixed offsets or a custom drift_fn which returns the drift for a given ROI and injection index:

from vimms.Column import LinearColumn

col = LinearColumn.from_fixed_offsets(chemicals, start=0.0, step=1.0, drift=0.5)

Drift can help emulate column ageing or temperature effects between samples.

Empirical Chromatograms

Chemicals generated from mzML files use EmpiricalChromatogram objects that reproduce observed intensities. You can also define functional chromatograms via distributions such as Gaussian or Gamma by creating FunctionalChromatogram instances.

See vimms.Column and vimms.Chromatograms for complete details.