Skip to contents

Chemical shift calibration using a reference signal for 1D NMR spectra.

Usage

calibrate(X, ppm, type = c("tsp", "glucose", "alanine"))

Arguments

X

Numeric matrix. NMR data matrix with spectra in rows and chemical shift positions in columns.

ppm

Numeric vector. Chemical shift values corresponding to the columns of X.

type

Either a character string or numeric vector. Options include:

  • "tsp": calibrates to 0 ppm using the highest peak in the interval [−0.2, 0.2] ppm (TSP signal).

  • "glucose": calibrates to 5.23 ppm using glucose doublet (5.15–5.30 ppm).

  • "alanine": calibrates to 1.48 ppm using alanine doublet (1.40–1.53 ppm).

  • Numeric vector of length 2: custom ppm range. Spectrum is shifted so the maximum peak in this interval aligns with mean(type).

Value

A numeric matrix of the same dimensions as X, with spectra calibrated to the chosen reference.

Details

Calibration is typically part of the technical quality control pipeline and is commonly done using a reference signal such as TSP at 0 ppm.

References

Dona, A.C., et al. (2014). Precision high-throughput proton NMR spectroscopy of human urine, serum, and plasma for large-scale metabolic phenotyping. Analytical Chemistry, 86(19), 9887–9894.

See also

Examples

data(covid_raw)
X <- covid_raw$X
ppm <- covid_raw$ppm
X_tsp <- calibrate(X, ppm, type = "tsp")
X_glu <- calibrate(X, ppm, type = "glucose")
X_custom <- calibrate(X, ppm, type = c(1.9, 2.1))