nmrdata 0.99.2
The nmrdata package provides example one-dimensional proton NMR spectra of murine urine samples collected in a Roux-en-Y gastric bypass study (Li et al. 2011).
Data resources are hosted on Bioconductor’s ExperimentHub (EH) and retrieved on demand; this vignette describes data resources and illustrates retrieval.
Two resources are available:
EH9905)EH9906);These resources are intended for teaching and for demonstrating the companion
package metabom8.
# checking metadata
meta_path <- system.file("extdata", "metadata.csv", package = "nmrdata")
if (file.exists(meta_path)) {
  meta <- utils::read.csv(meta_path)
  head(meta[c("Title","RDataPath")])
}##                             Title                                RDataPath
## 1         Bariatric pre-processed   records/17053134/files/bariatric.rdata
## 2 Raw Bruker experiments (tar.gz) records/17053118/files/bruker_exp.tar.gzX.pqn: matrix of PQN-processed spectrappm: chemical shift axis (parts per million)an: sample annotation (e.g., class membership)meta: acquisition/processing status parameters (TopSpin; a_*, p_*)getRawExpDir(); unpacked into the local EH cache on first use# Install from Bioconductor
# if (!require("BiocManager")) install.packages("BiocManager")
# BiocManager::install("nmrdata")library(ExperimentHub)
eh <- ExperimentHub()
query(eh, "nmrdata")## ExperimentHub with 2 records
## # snapshotDate(): 2025-10-10
## # $dataprovider: Imperial College London
## # $species: Rattus norvegicus
## # $rdataclass: list, character
## # additional mcols(): taxonomyid, genome, description,
## #   coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags,
## #   rdatapath, sourceurl, sourcetype 
## # retrieve records with, e.g., 'object[["EH9905"]]' 
## 
##            title                          
##   EH9905 | Bariatric pre-processed        
##   EH9906 | Raw Bruker experiments (tar.gz)hub_id = 'EH9905' # Bariatric pre-processed        
bariatric <- eh[[hub_id]]str(bariatric, max.level = 1)## List of 4
##  $ X.pqn: num [1:67, 1:56357] 4422 10654 7028 3707 3232 ...
##   ..- attr(*, "dimnames")=List of 2
##  $ ppm  : num [1:56357] 9.5 9.5 9.5 9.5 9.5 ...
##  $ an   :'data.frame':   67 obs. of  4 variables:
##  $ meta :'data.frame':   67 obs. of  417 variables:# visualise the first NMR spectrum
plot(bariatric$ppm, bariatric$X.pqn[1, ], type = "l",
     xlab = "Chemical shift (ppm)", ylab = "Intensity")# an: sample annotation data (row-matched to `X.pqn`)
head(bariatric$an)##   ID  Class Timepoint NMR experiment
## 1 21 Pre-op       Pre            301
## 2 27 Pre-op       Pre            302
## 5 20   RYGB        W2            305
## 6 34   RYGB        W2            306
## 7 36 Pre-op       Pre            307
## 9 33 Pre-op       Pre            309stopifnot(nrow(bariatric$an)==nrow(bariatric$X.pqn))
# meta: TopSpin acquisition and processing parameters (row-matched to `X.pqn`)
head(colnames(bariatric$meta), 10)##  [1] "a_AQSEQ"   "a_AQ_mod"  "a_AUNM"    "a_AUTOPOS" "a_BF1"     "a_BF2"    
##  [7] "a_BF3"     "a_BF4"     "a_BF5"     "a_BF6"stopifnot(nrow(bariatric$meta)==nrow(bariatric$X.pqn))
# Ex Parameters:
meta = bariatric$meta
meta$a_SFO1[1] # carrier frequency## [1] 600.2928meta$a_NS[1] # number of scans## [1] 128meta$a_OVERFLW[1] # overflow## [1] 0meta$p_SI[1] # nb of points in spectrum (zero filled)## [1] 32768meta$p_LB[1] # line broadening factor## [1] 0.3library(nmrdata)
# download once, unpack once; returns the directory path
exp_dir <- getRawExpDir(quiet = TRUE)# show experiment folder content
list.files(exp_dir, recursive = TRUE)[1:10]##  [1] "bruker_exp/1/acqu"          "bruker_exp/1/acqus"        
##  [3] "bruker_exp/1/fid"           "bruker_exp/1/pdata/1/1i"   
##  [5] "bruker_exp/1/pdata/1/1r"    "bruker_exp/1/pdata/1/proc" 
##  [7] "bruker_exp/1/pdata/1/procs" "bruker_exp/101/acqu"       
##  [9] "bruker_exp/101/acqus"       "bruker_exp/101/fid"If you have metabom8 installed, you can import/process the raw experiments:
library(metabom8)
# import Bruker 1D NMR spectra
res <- read1d_proc(exp_dir, exp_type = list(pulprog = "noesypr1d"))
# plot first spectrum
spec(res$X[1, ], res$ppm)Data are cached under a per-user directory so repeated calls don’t re-download:
# where the archive and unpacked folder live
dir <- getRawExpDir(quiet = TRUE)
print(dir)## [1] "/home/biocbuild/.cache/R/ExperimentHub/bruker_exp"packageVersion("nmrdata")## [1] '0.99.2'sessionInfo()## R version 4.5.1 Patched (2025-08-23 r88802)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.3 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.22-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: America/New_York
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] nmrdata_0.99.2       ExperimentHub_2.99.5 AnnotationHub_3.99.6
## [4] BiocFileCache_2.99.6 dbplyr_2.5.1         BiocGenerics_0.55.3 
## [7] generics_0.1.4       BiocStyle_2.37.1    
## 
## loaded via a namespace (and not attached):
##  [1] rappdirs_0.3.3       sass_0.4.10          BiocVersion_3.22.0  
##  [4] RSQLite_2.4.3        digest_0.6.37        magrittr_2.0.4      
##  [7] evaluate_1.0.5       bookdown_0.45        fastmap_1.2.0       
## [10] blob_1.2.4           jsonlite_2.0.0       AnnotationDbi_1.71.1
## [13] DBI_1.2.3            tinytex_0.57         BiocManager_1.30.26 
## [16] httr_1.4.7           purrr_1.1.0          Biostrings_2.77.2   
## [19] httr2_1.2.1          jquerylib_0.1.4      cli_3.6.5           
## [22] crayon_1.5.3         rlang_1.1.6          XVector_0.49.1      
## [25] Biobase_2.69.1       bit64_4.6.0-1        withr_3.0.2         
## [28] cachem_1.1.0         yaml_2.3.10          tools_4.5.1         
## [31] memoise_2.0.1        dplyr_1.1.4          filelock_1.0.3      
## [34] curl_7.0.0           vctrs_0.6.5          R6_2.6.1            
## [37] png_0.1-8            magick_2.9.0         stats4_4.5.1        
## [40] lifecycle_1.0.4      Seqinfo_0.99.2       KEGGREST_1.49.2     
## [43] S4Vectors_0.47.4     IRanges_2.43.5       bit_4.6.0           
## [46] pkgconfig_2.0.3      pillar_1.11.1        bslib_0.9.0         
## [49] Rcpp_1.1.0           glue_1.8.0           xfun_0.53           
## [52] tibble_3.3.0         tidyselect_1.2.1     knitr_1.50          
## [55] htmltools_0.5.8.1    rmarkdown_2.30       compiler_4.5.1Li, Jia V, Hutan Ashrafian, Marco Bueter, James Kinross, Charles Sands, Carel W le Roux, Stephen R Bloom, et al. 2011. “Metabolic Surgery Profoundly Influences Gut Microbial-Host Metabolic Cross-Talk.” Gut 60 (9): 1214–23.