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.gz
X.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 309
stopifnot(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.2928
meta$a_NS[1] # number of scans
## [1] 128
meta$a_OVERFLW[1] # overflow
## [1] 0
meta$p_SI[1] # nb of points in spectrum (zero filled)
## [1] 32768
meta$p_LB[1] # line broadening factor
## [1] 0.3
library(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.1
Li, 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.