Name Mode Size
.github 040000
R 040000
inst 040000
man 040000
tests 040000
vignettes 040000
.Rbuildignore 100644 0 kb
.gitignore 100644 1 kb
DESCRIPTION 100644 2 kb
LICENSE 100644 34 kb
NAMESPACE 100644 1 kb
NEWS.md 100644 7 kb
README.md 100644 3 kb
README.md
# lcmsPlot `lcmsPlot` is an R package designed for visualising Liquid Chromatography-Mass Spectrometry (LC-MS) data with high-quality plots suitable for publication. The package enables users to generate and customise chromatograms, mass traces, spectra, and more with fine-tuned aesthetics and annotation options. ## Overview The motivation for developing a dedicated R package for LC–MS data visualization comes from the limitations of existing solutions such as base `xcms` plotting functions or generic plotting libraries. While xcms and related tools are powerful for data processing and feature detection, their plotting capabilities are often designed primarily for *diagnostic purposes*, offering limited flexibility and aesthetics. Researchers frequently need **publication-quality** chromatograms, spectra, and comparative visualisations that clearly highlight subtle differences across samples or conditions, which can be cumbersome to generate with the default methods. The lcmsPlot package addresses this gap by providing: - A consistent, intuitive interface for LC–MS visualizations. - Streamlined generation of high-quality, customisable plots. - Improved reproducibility and reduced need for bespoke scripts. - Interoperability with the existing Bioconductor ecosystem (e.g., `MsExperiment`, `MSnbase`) and LC-MS ecosystem (e.g., `MZmine`, `Compound Discoverer`) - Better performance at scale. ### Example Suppose you want to plot chromatograms for a specified m/z and retention time window across all samples, grouped by sample class, with an indicator line at a specific retention time. With `xcms` base plotting, this requires several manual steps: extracting chromatograms, arranging plots by sample, handling group colors, and adding annotations: ```r # Extract chromatograms chr <- chromatogram(raw_data, mz = c(300, 305), rt = c(2500, 2550)) # Colors for groups group_cols <- c("KO" = "red", "WT" = "blue") # Plot setup: one panel per sample n_samples <- length(chr) n_col <- ceiling(sqrt(n_samples)) n_row <- ceiling(n_samples / n_col) par(mfrow = c(n_row, n_col), mar = c(4, 4, 2, 1)) for (i in seq_along(chr)) { chri <- chr[[i]] df <- as.data.frame(chri) group <- pData(raw_data)$sample_group[i] # Plot plot(df$rtime, df$intensity, type = "l", col = group_cols[group], xlab = "Retention Time (s)", ylab = "Intensity", main = paste0(names(chr)[i], " (", group, ")")) # Add vertical line abline(v = 2520, lty = 2) } ``` With `lcmsPlot`, the same task becomes much simpler and more reproducible: ```r library(lcmsPlot) lcmsPlot(raw_data, sample_id_column = "sample_name") + chromatogram(features = rbind(c( mzmin = 300, mzmax = 305, rtmin = 2500, rtmax = 2550))) + rt_line(intercept = 2520) + arrange(group_by = "sample_group") + facets(facets = "sample_id", ncol = 3) ``` ## Installation To install this package: ```r if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("lcmsPlot") ``` To install the development version: ```r if (!require("remotes", quietly = TRUE)) install.packages("remotes") remotes::install_github("computational-metabolomics/lcmsPlot") ``` ## Resources - Package-level help page: `?\`lcmsPlot-package\`` - Functions/classes help pages: `?<function>` - Vignettes: `browseVignettes("lcmsPlot")`