Tools for Nuclear Magnetic Resonance (NMR) Spectra Alignment, Peak Based Processing, Quantitative Analysis and Visualizations

Makes Nuclear Magnetic Resonance spectroscopy (NMR spectroscopy) data analysis as easy as possible by only requiring a small set of functions to perform an entire analysis. 'speaq' offers the possibility of raw spectra alignment and quantitation but also an analysis based on features whereby the spectra are converted to peaks which are then grouped and turned into features. These features can be processed with any number of statistical tools either included in 'speaq' or available elsewhere on CRAN. More detail can be found in Vu et al. (2011) and Beirnaert et al. (2018) .


speaq 2.1:


  • HMDB searchfunction added
  • general bugfixes

speaq 2.0:


implemented new functionality to allow peak based analysis of NMR spectra by using wavelet based peak detection. New functions include:

  • Peak picking with wavelets
  • Peak grouping
  • Peak Filling
  • Linear model based differential analysis
  • Silhouette values (check for alignment quality)
  • Converting raw spectra of unequal length (unequal measurement time) to matrix of equal length spectra
  • SCANT: a function to scale, normalise or transform a data matrix (included besides the standard are pareto scaling, probabilistic quotient normalization, range scaling, etc.)
  • Plot functions for raw spectra
  • etc.

speaq 1.2.3:


  • Allow to automatically detect the optimal value for maxShift in function dohCluster(). The default setting (maxShift=100) usually works well for NMR spectra. However, for other types of spectra such as chromatograms, this value might be too large. In this new version, when the value of maxShift is set by NULL (maxShift=NULL), CluPA will automatically learn to select the optimal value based on the median Pearson correlation coefficent between spectra. It is worth noting that this metric is significantly effected by high peaks in the spectra, so it might not be the best measure for evaluating alignment performances. However, it is fast for the purpose of detecting the suitable maxShift value. A plot of correlation across the maxShift values also reported if the verbose=TRUE is applied.
  • Do scaling data before Fast Fourier Transformation (FFT) cross-correlation in function findShiftStepFFT() if the input spectra are very low abundant (possible in chromatograms).
  • Fix small bugs of detectSpecPeaks() when errors happen in function peakDetectionCWT() of MassSpecWavelet package.

speaq 1.2.2:


  • Fix the issue of "if (condition) return;" might happen in function dohClusterCustommedSegments(). I acknowledge Duncan Murdoch [email protected] for the alert.

speaq 1.2.1:


  • Replace R version depends to R (>= 3.1.0) in order to remove the error of using anyNA().
  • Remove the period mark in the end of the package title.
  • Convert the title field to title case.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


2.3.1 by Charlie Beirnaert, 3 months ago

Browse source code at

Authors: Charlie Beirnaert, Trung Nghia Vu, Pieter Meysman, Kris Laukens and Dirk Valkenborg

Documentation:   PDF Manual  

Task views: Chemometrics and Computational Physics

Apache License 2.0 license

Imports MassSpecWavelet, mQTL, parallel, doSNOW, data.table, foreach, stats, cluster, utils, graphics, grDevices, ggplot2, gridExtra, reshape2, rvest, xml2, missForest, impute

Suggests datasets, knitr, rmarkdown, grid, gridBase

Imported by specmine.

Suggested by ChemoSpec.

See at CRAN