MSLipidMapper
MSLipidMapper is an interactive Shiny dashboard for lipidomics data exploration.
It converts uploaded tables into a project (SummarizedExperiment-based) and provides normalization, exploratory plots, differential analysis, and Cytoscape.js network/pathway visualization (in-browser).
- Import lipidomics tables (MS-DIAL alignment table / Generic wide-format CSV)
- Project structure based on
SummarizedExperiment - Sample metadata editor (
sample_id,class) - Normalization workflow + download normalized data
- Analysis panels (e.g., PCA / Heatmap / Volcano / Correlation; depends on build)
- Meatbolic pathway viewer + export
git clone "https://github.com/systemsomicslab/MSLipidMapper.git"
cd MSLipidMapperWindows users can start the app by double-clicking:
MSLipidMapper.bat
Important: Docker Desktop must be running before you execute the batch file.
docker build -t mslipidmapper .
docker run --rm -p 3838:3838 -p 7310:7310 mslipidmapperOpen:
- Shiny app:
http://localhost:3838 - (optional) Static server (node images etc.):
http://localhost:7310
If you see
address already in use, the port is already occupied.
MSLipidMapper does not accept raw MS files. Prepare a table exported from MS-DIAL or a generic wide-format CSV.
- Export the alignment result table from MS-DIAL (CSV/TSV).
- The file should include:
- annotation columns (lipid name/class etc.)
- sample intensity columns (one column per sample)
MSLipidMapper reads the sample intensity matrix and constructs an analysis-ready object.
A generic matrix is supported when your data are already arranged as:
- Rows: lipid molecules / features
- Columns: samples
- Cells: abundances / intensities
Minimum requirements:
- 1st column: feature ID (lipid name or any unique identifier)
- remaining columns: numeric intensities (samples)
Tip: keep sample IDs consistent across lipidome, metadata, and transcriptome files.
You can upload metadata separately (CSV) for grouping, coloring, and statistical comparisons.
Requirements:
- one row per sample
- must contain a column that matches sample IDs in the lipidomics table
- additional columns can be anything (group, condition, timepoint, batch, etc.)
In the app, you will select/map:
sample_idcolumnclasscolumn (group label; recommended)
You can optionally load transcriptome (gene expression) data.
The app attempts to align samples by sample_id when possible.
Used by multi-omics panels (e.g., lipid–gene correlation) if enabled in your build.
- Choose input type (MS-DIAL / Generic).
- Upload lipidomics file.
- (Optional) Upload sample metadata and/or transcriptome CSV.
- Enter a unique project name.
- Click Submit to build the project.
After upload, you can edit the sample table (colData) in the app.
Common fields:
sample_id: unique sample identifier used across dataclass: group label used for coloring and comparisonsuse: TRUE/FALSE to include/exclude samples in downstream analysis
Notes:
- samples with
use = FALSEare excluded from analysis outputs - columns you assign as
sample_id/classare treated as metadata (not numeric assay)
Go to the Normalize tab and run normalization to generate the normalized dataset.
- normalization is applied to the analysis-ready matrix
- normalized data can be downloaded from the app
If your build restricts analysis before normalization, you must complete this step to activate analysis tabs.
Depending on enabled modules, analysis may include:
- PCA / exploratory plots
- Heatmap (class-level aggregation and/or molecule-level views)
- Volcano / differential analysis
- Correlation (lipid–lipid, lipid–gene if transcriptome is loaded)
Typical usage:
- Load a network/pathway file (.cyjs .gml).
- Nodes may represent lipid classes, molecules, or pathway entities.
- Clicking a node opens a popup panel with plots and related information.
Export options may include:
- SVG/PNG export of the network
- export of node-linked plots/images
Example inputs are provided under:
inst/examples/
