Perform the complete processing of a set of proton nuclear magnetic resonance spectra from the free induction decay (raw data) and based on a processing sequence (macro-command file). An additional file specifies all the spectra to be considered by associating their sample code as well as the levels of experimental factors to which they belong. More detail can be found in Jacob et al. (2017)
Rnmr1D is the main module in the NMRProcFlow web application (http://nmrprocflow.org) concerning the NMR spectra processing.
Inside NMRProcFlow, Rnmr1D allows users to process their NMR spectra within a GUI application and thus the macro-command sequence coming from this process can be saved.
Outside NMRProcFlow Rnmr1D become an R package allowing users to replay the macro-command sequence generated within NMRProcFlow. Moreover, without using NMRProcFlow, this package can also be used to replace any 'home-made script' by a macro-command sequence.
See the Macro-command Reference Guide to have more details about macro-commands.
You may need to install a C++ compiler if not the case yet (see https://teuder.github.io/rcpp4everyone_en/020_install.html)
Some R packages:
packages <- c("impute", "MassSpecWavelet","pcaMethods")if (length(setdiff(packages, rownames(installed.packages()))) > 0) { if (paste(R.Version()$major,R.Version()$minor, sep=".") > "3.5") { if (!requireNamespace('BiocManager', quietly = TRUE)) install.packages('BiocManager', repos='http://cran.rstudio.com/'); BiocManager::install(setdiff(packages, rownames(installed.packages())), version = '3.8'); } else { source('http://bioconductor.org/biocLite.R'); biocLite(setdiff(packages, rownames(installed.packages()))); }} packages <- c('doParallel', 'ptw', 'signal', 'speaq', 'base64enc', 'XML', 'igraph', 'ggplot2', 'plotly', 'plyr')if (length(setdiff(packages, rownames(installed.packages()))) > 0) { install.packages(setdiff(packages, rownames(installed.packages())), repos='http://cran.rstudio.com')}
require(devtools)install_github("INRA/Rnmr1D", dependencies = TRUE)
library(Rnmr1D) # Test with the provided example datadata_dir <- system.file("extra", package = "Rnmr1D")RAWDIR <- file.path(data_dir, "CD_BBI_16P02")CMDFILE <- file.path(data_dir, "NP_macro_cmd.txt")SAMPLEFILE <- file.path(data_dir, "Samples.txt") # Detect the number of CoresdetectCores() # Launch the pre-processing then the processing defined in the macro-command fileout <- Rnmr1D::doProcessing(RAWDIR, cmdfile=CMDFILE, samplefile=SAMPLEFILE, ncpu=detectCores()) # Have a look on returned data structurels(out)ls(out$specMat) ### Stacked Plot with a perspective effectdev.new()plotSpecMat(out$specMat, ppm_lim=c(0.5,5), K=0.33) ### Overlaid Plotdev.new()plotSpecMat(out$specMat, ppm_lim=c(0.5,5), K=0, pY=0.1) # Get the data matrix outMat <- getBucketsDataset(out, norm_meth='CSN') # Get the Signal/Noise Ratio (SNR) matrix outSNR <- getSnrDataset(out, c(10.2,10.5), ratio=TRUE) # Get the bucket tableoutBucket <- getBucketsTable(out) # Get the spectra dataspectra <- getSpectraData(out)
vignette("Rnmr1D")