R package for the statistical and functional analysis of 13C labelling data.
devtools::install_github("AlexanderKirchmair/c13ms")
Isotopologue abundances are required as a main input. The workflow is centered around the ‘TracerExperiment’ class object, which acts as an integrative storage of isotopologue abundances, isotopologue and metabolite annotations, sample annotations and other metadata.
Here are some basic functionalities:
C13 <- exampleTracerExperiment(nsamples = 6, nmets = 5)
isoData(C13)
metData(C13)
colnames(C13)
metnames(C13)
rownames(C13)
colData(C13)
C13$group
C13 <- makeTracerExperiment(cbind(isoData(C13), assay(C13, "raw")), metData = metData(C13), colData = colData(C13))
C13 %>% subset(group == "A")
C13groups <- split(C13, by = ~ group)
C13 <- with(C13groups, A + B)
assay(C13, "raw")
sumMets(C13, assay = "raw")
A typical analysis workflow may look like as demonstrated below.
Pre-processing (imputation, natural isotope abundance correction, normalization, …):
C13 %<>% impute(assay = "raw", nan = 0, na = NULL)
C13 %<>% correctIso(assay = "imp")
C13 %<>% normalize(method = ~ COLSUM, assay = "corr")
Calculation of relative mass isotopomer distributions (MID), fractional enrichment and summarization of isotopologues to metabolite levels:
C13 %<>% MID()
C13 %<>% isoEnrichment()
C13 %<>% sumMets()
Statistical testing for differences in abundances and labelling:
contrasts <- list(groupBvsA = list("group" = c("B", "A")))
C13 %<>% diffTest(contrasts = contrasts, formula = ~ group, type = "met", assay = "norm", method = "ttest")
C13 %<>% diffTest(contrasts = contrasts, formula = ~ group, type = "met", assay = "frac", method = "beta")
C13 %<>% diffTest(contrasts = contrasts, formula = ~ group, type = "iso", assay = "mid", method = "beta")
results(C13, "iso", "mid", "beta") %>% head(10)
isoplot(C13, mets = metnames(C13)[1], cumulative = T)