# MRMhub-QUANT **MRMhub-QUANT** turns targeted MRM feature intensities into curated, QC-filtered, quantified results. It is the post-processing module of [MRMhub](https://slinghub.github.io/MRMhub/), distributed as the R package `mrmhub` ([`library(mrmhub)`](https://github.com/SLINGhub/MRMhub)), and works with any intensity data — from [MRMhub-INTEGRATOR](https://slinghub.github.io/MRMhub/integrator/), Skyline, Agilent MassHunter, or generic CSV files. MRMhub-QUANT features: - **Reproducible pipelines.** Create reproducible computational pipelines with QC vizualizations. Script, re-run, and share it. - **Flexible workflows.** Metabolomics and lipidomics data post-processing using dedicated customizable functions. - **A single data object.** Data, metadata, and processing details are stored in single sharable data object (`MRMhubExperiment`). ![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdib3g9IjAgMCA5NjAgMTgyIiByb2xlPSJpbWciIGFyaWEtbGFiZWw9Ik1STWh1Yi1RVUFOVCB3b3JrZmxvdyBpbiBmaXZlIHN0YWdlcywgZWFjaCB3aXRoIGl0cyBrZXkgYWN0aW9ucy4gSW1wb3J0IGFuZCBWYWxpZGF0ZTogaW1wb3J0IGRhdGEsIGFkZCBtZXRhZGF0YSwgdmFsaWRhdGUgSURzLCBzZXQgcnVuIG9yZGVyLiBRdWFudGlmeTogSVNURCBub3JtYWxpc2F0aW9uLCBxdWFudGlmeSBieSBJU1RELCBjYWxpYnJhdGlvbiBjdXJ2ZXMsIHJlZmVyZW5jZSBjYWxpYnJhdGlvbi4gQ29ycmVjdDogZHJpZnQgY29ycmVjdGlvbiwgYmF0Y2ggZWZmZWN0cywgaW50ZXJmZXJlbmNlcy4gUUMgYW5kIEZpbHRlcjogUUMgbWV0cmljcywgUENBIGFuZCBydW4tc2NhdHRlciwgb3V0bGllciBkZXRlY3Rpb24sIGZlYXR1cmUgZmlsdGVyaW5nLiBSZXBvcnQ6IEV4Y2VsIGFuZCBDU1YsIG16VGFiLU0sIFFDIHJlcG9ydHMsIHNoYXJlYWJsZSBvYmplY3QuIiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJiMzOTtTZWdvZSBVSSYjMzk7LCBSb2JvdG8sIHNhbnMtc2VyaWY7Ij48c3R5bGU+CiAgICAucS1hcnJvdyB7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOyB9CiAgICAucS1saW5rOmhvdmVyIC5xLWFycm93IHsgb3BhY2l0eTogMC44MjsgfQogICAgLnEtbGluazpob3ZlciAucS1uYW1lIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4OyB9CiAgICAucS1uYW1lIHsgZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogNzAwOyBmaWxsOiAjMkMzRTUwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQogICAgLnEtaXRlbSB7IGZvbnQtc2l6ZTogMTZweDsgZmlsbDogIzQ2NTM1ZjsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH0KICAgIC5xLWRpdiB7IHN0cm9rZTogI2RmZTRlODsgc3Ryb2tlLXdpZHRoOiAxOyB9CiAgPC9zdHlsZT4KPGxpbmUgY2xhc3M9InEtZGl2IiB4MT0iMjM0IiB5MT0iNzAiIHgyPSIyMzQiIHkyPSIxNzYiPjwvbGluZT48bGluZSBjbGFzcz0icS1kaXYiIHgxPSI0MzMiIHkxPSI3MCIgeDI9IjQzMyIgeTI9IjE3NiI+PC9saW5lPjxsaW5lIGNsYXNzPSJxLWRpdiIgeDE9IjU5NiIgeTE9IjcwIiB4Mj0iNTk2IiB5Mj0iMTc2Ij48L2xpbmU+PGxpbmUgY2xhc3M9InEtZGl2IiB4MT0iNzY2IiB5MT0iNzAiIHgyPSI3NjYiIHkyPSIxNzYiPjwvbGluZT48YSBocmVmPSJodHRwczovL3NsaW5naHViLmdpdGh1Yi5pby9NUk1odWIvcXVhbnQvYXJ0aWNsZXMvbWFudWFsLTA0LWRhdGEtaW1wb3J0Lm1kIj48cG9seWdvbiBjbGFzcz0icS1hcnJvdyIgcG9pbnRzPSI0LDQgMjMxLDQgMjU1LDMwIDIzMSw1NiA0LDU2IiBmaWxsPSIjZDZlNGViIj48L3BvbHlnb24+PHRleHQgY2xhc3M9InEtbmFtZSIgeD0iMTE4IiB5PSIzNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+SW1wb3J0ICZhbXA7IFZhbGlkYXRlPC90ZXh0PjwvYT4gPHRleHQgY2xhc3M9InEtaXRlbSIgeD0iMjAiIHk9Ijg4Ij5JbXBvcnQgZGF0YTwvdGV4dD48dGV4dCBjbGFzcz0icS1pdGVtIiB4PSIyMCIgeT0iMTEyIj5BZGQgbWV0YWRhdGE8L3RleHQ+PHRleHQgY2xhc3M9InEtaXRlbSIgeD0iMjAiIHk9IjEzNiI+VmFsaWRhdGUgSURzPC90ZXh0Pjx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9IjIwIiB5PSIxNjAiPlNldCBydW4gb3JkZXI8L3RleHQ+PGEgaHJlZj0iaHR0cHM6Ly9zbGluZ2h1Yi5naXRodWIuaW8vTVJNaHViL3F1YW50L2FydGljbGVzL3R1dG9yaWFsLTAyLWJhc2ljLXdvcmtmbG93Lm1kIj48cG9seWdvbiBjbGFzcz0icS1hcnJvdyIgcG9pbnRzPSIyMzcsNCA0MzAsNCA0NTQsMzAgNDMwLDU2IDIzNyw1NiAyNjEsMzAiIGZpbGw9IiNkOGU2ZDQiPjwvcG9seWdvbj48dGV4dCBjbGFzcz0icS1uYW1lIiB4PSIzMzQiIHk9IjM3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5RdWFudGlmeTwvdGV4dD48L2E+IDx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9IjI1MyIgeT0iODgiPklTVEQgbm9ybWFsaXNhdGlvbjwvdGV4dD48dGV4dCBjbGFzcz0icS1pdGVtIiB4PSIyNTMiIHk9IjExMiI+UXVhbnRpZnkgYnkgSVNURDwvdGV4dD48dGV4dCBjbGFzcz0icS1pdGVtIiB4PSIyNTMiIHk9IjEzNiI+Q2FsaWJyYXRpb24gY3VydmVzPC90ZXh0Pjx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9IjI1MyIgeT0iMTYwIj5SZWZlcmVuY2UgY2FsaWJyYXRpb248L3RleHQ+PGEgaHJlZj0iaHR0cHM6Ly9zbGluZ2h1Yi5naXRodWIuaW8vTVJNaHViL3F1YW50L2FydGljbGVzL21hbnVhbC0wNy1jb3JyZWN0aW9ucy5tZCI+PHBvbHlnb24gY2xhc3M9InEtYXJyb3ciIHBvaW50cz0iNDM2LDQgNTkzLDQgNjE3LDMwIDU5Myw1NiA0MzYsNTYgNDYwLDMwIiBmaWxsPSIjZWNkMmQyIj48L3BvbHlnb24+PHRleHQgY2xhc3M9InEtbmFtZSIgeD0iNTE1IiB5PSIzNyIgdGV4dC1hbmNob3I9Im1pZGRsZSI+Q29ycmVjdDwvdGV4dD48L2E+IDx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9IjQ1MiIgeT0iODgiPkRyaWZ0IGNvcnJlY3Rpb248L3RleHQ+PHRleHQgY2xhc3M9InEtaXRlbSIgeD0iNDUyIiB5PSIxMTIiPkJhdGNoIGVmZmVjdHM8L3RleHQ+PHRleHQgY2xhc3M9InEtaXRlbSIgeD0iNDUyIiB5PSIxMzYiPkludGVyZmVyZW5jZXM8L3RleHQ+PGEgaHJlZj0iaHR0cHM6Ly9zbGluZ2h1Yi5naXRodWIuaW8vTVJNaHViL3F1YW50L2FydGljbGVzL3R1dG9yaWFsLTA1LXJ1bi1zY2F0dGVyLm1kIj48cG9seWdvbiBjbGFzcz0icS1hcnJvdyIgcG9pbnRzPSI1OTksNCA3NjMsNCA3ODcsMzAgNzYzLDU2IDU5OSw1NiA2MjMsMzAiIGZpbGw9IiNkNmU0ZWIiPjwvcG9seWdvbj48dGV4dCBjbGFzcz0icS1uYW1lIiB4PSI2ODEiIHk9IjM3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5RQyAmYW1wOyBGaWx0ZXI8L3RleHQ+PC9hPiA8dGV4dCBjbGFzcz0icS1pdGVtIiB4PSI2MTUiIHk9Ijg4Ij5RQyBtZXRyaWNzPC90ZXh0Pjx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9IjYxNSIgeT0iMTEyIj5QQ0EgJmFtcDsgcnVuLXNjYXR0ZXI8L3RleHQ+PHRleHQgY2xhc3M9InEtaXRlbSIgeD0iNjE1IiB5PSIxMzYiPk91dGxpZXIgZGV0ZWN0aW9uPC90ZXh0Pjx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9IjYxNSIgeT0iMTYwIj5GZWF0dXJlIGZpbHRlcmluZzwvdGV4dD48YSBocmVmPSJodHRwczovL3NsaW5naHViLmdpdGh1Yi5pby9NUk1odWIvcXVhbnQvYXJ0aWNsZXMvcmVjaXBlLTAyLWN1c3RvbS1xYy1yZXBvcnQubWQiPjxwb2x5Z29uIGNsYXNzPSJxLWFycm93IiBwb2ludHM9Ijc2OSw0IDkyNiw0IDk1MCwzMCA5MjYsNTYgNzY5LDU2IDc5MywzMCIgZmlsbD0iI2M4Y2ZkNiI+PC9wb2x5Z29uPjx0ZXh0IGNsYXNzPSJxLW5hbWUiIHg9Ijg0OCIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiPlJlcG9ydDwvdGV4dD48L2E+IDx0ZXh0IGNsYXNzPSJxLWl0ZW0iIHg9Ijc4NSIgeT0iODgiPkV4Y2VsICZhbXA7IENTVjwvdGV4dD48dGV4dCBjbGFzcz0icS1pdGVtIiB4PSI3ODUiIHk9IjExMiI+bXpUYWItTTwvdGV4dD48dGV4dCBjbGFzcz0icS1pdGVtIiB4PSI3ODUiIHk9IjEzNiI+UUMgcmVwb3J0czwvdGV4dD48dGV4dCBjbGFzcz0icS1pdGVtIiB4PSI3ODUiIHk9IjE2MCI+U2hhcmVhYmxlIG9iamVjdDwvdGV4dD48L3N2Zz4=) Visualise at each step with [QC plots](https://slinghub.github.io/MRMhub/quant/articles/manual-08-visualization.md) — RunScatter, PCA, run-sequence, normalization QC. [Run your first analysis (5 min) →](https://slinghub.github.io/MRMhub/quant/articles/tutorial-00-first-analysis.md) Prefer point-and-click? [`build_workflow()`](https://slinghub.github.io/MRMhub/quant/reference/build_workflow.md) opens a guided app that validates your data and metadata, warns about pipeline mismatches, and generates a downloadable Quarto (`.qmd`) workflow. ## Quick Start and Demos - **[Installation](https://slinghub.github.io/MRMhub/quant/articles/manual-00-installation.md)** — install and verify your setup - **[Your First Analysis](https://slinghub.github.io/MRMhub/quant/articles/tutorial-00-first-analysis.md)** — a 5-minute run on bundled data - **[Prepare your data](https://slinghub.github.io/MRMhub/quant/articles/manual-04-data-import.md)** — file formats and importers - **[Example: targeted lipidomics](https://slinghub.github.io/MRMhub/quant/articles/tutorial-03-lipidomics-workflow.md)** — a full lipidomics workflow - **[Example: external calibration](https://slinghub.github.io/MRMhub/quant/articles/recipe-01-ext-calibration-qc.md)** — a quantitative assay with calibration curves ## Installation and Updating Make sure to use a fresh R session without loaded packages (quit RStudio/Positron first to avoid locked packages): ``` r if (!require("pak")) install.packages("pak") pak::pak("SLINGhub/MRMhub") library(mrmhub); mrmhub::check_setup() ``` `pak` resolves locked packages and parallelises downloads; `remotes::install_github("SLINGhub/MRMhub")` is an equivalent fallback. For more details and troubleshooting see [Installation](https://slinghub.github.io/MRMhub/quant/articles/manual-00-installation.md) and [Troubleshooting & FAQ](https://slinghub.github.io/MRMhub/quant/articles/manual-10-troubleshooting.md). ## Contributing Questions, bug reports, feature requests, and suggestions are welcome via [GitHub issues](https://github.com/SLINGhub/MRMhub/issues). The project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). ## Dual licensing The source code is dual-licensed: [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) for non-commercial use, or commercial licensing — contact Jonathan Tan (). # Package index ## Getting started Functions to validate your R environment and explore the MRMhub workflow interactively. - [`check_setup()`](https://slinghub.github.io/MRMhub/quant/reference/check_setup.md) : Check MRMhub setup - [`build_workflow()`](https://slinghub.github.io/MRMhub/quant/reference/build_workflow.md) : Launch the MRMhub Workflow Builder - [`generate_workflow_qmd()`](https://slinghub.github.io/MRMhub/quant/reference/generate_workflow_qmd.md) : Generate a runnable Quarto (.qmd) mrmhub workflow ## QUANT R package reference Functions to create, access and query MRMhubExperiment objects, which are the central data object in the MRMhub workflow. - [`MRMhubExperiment()`](https://slinghub.github.io/MRMhub/quant/reference/MRMhubExperiment.md) : Constructor for the MRMhubExperiment object - [`MRMhubExperiment-class`](https://slinghub.github.io/MRMhub/quant/reference/MRMhubExperiment-class.md) : S4 class representing the MRMhub dataset - [`` `$`( ``*``*`)`](https://slinghub.github.io/MRMhub/quant/reference/cash-MRMhubExperiment-method.md) : Access slots of a MRMhubExperiment object via \$ syntax - [`set_analysis_order()`](https://slinghub.github.io/MRMhub/quant/reference/set_analysis_order.md) : Set analysis order - [`get_batch_boundaries()`](https://slinghub.github.io/MRMhub/quant/reference/get_batch_boundaries.md) : Get the start and end analysis numbers of specified batches - [`data_sum_features()`](https://slinghub.github.io/MRMhub/quant/reference/data_sum_features.md) : Sum up feature intensities per analyte - [`exclude_analyses()`](https://slinghub.github.io/MRMhub/quant/reference/exclude_analyses.md) : Exclude analyses from the dataset - [`exclude_features()`](https://slinghub.github.io/MRMhub/quant/reference/exclude_features.md) : Exclude features from the dataset - [`get_analyticaldata()`](https://slinghub.github.io/MRMhub/quant/reference/get_analyticaldata.md) : Get the annotated or the originally imported analytical data - [`set_intensity_var()`](https://slinghub.github.io/MRMhub/quant/reference/set_intensity_var.md) : Set default variable to be used as feature raw signal value - [`get_analysis_count()`](https://slinghub.github.io/MRMhub/quant/reference/get_analysis_count.md) : Get the number of analyses in the dataset - [`get_analyis_start()`](https://slinghub.github.io/MRMhub/quant/reference/get_analyis_start.md) : Get the start time of the analysis sequence - [`get_analyis_end()`](https://slinghub.github.io/MRMhub/quant/reference/get_analyis_end.md) : Get the end time of the analysis sequence - [`get_analysis_breaks()`](https://slinghub.github.io/MRMhub/quant/reference/get_analysis_breaks.md) : Get the number of analysis breaks in the analysis - [`get_analysis_duration()`](https://slinghub.github.io/MRMhub/quant/reference/get_analysis_duration.md) : Get the total duration of the analysis - [`get_runtime_median()`](https://slinghub.github.io/MRMhub/quant/reference/get_runtime_median.md) : Get the median run time - [`get_feature_count()`](https://slinghub.github.io/MRMhub/quant/reference/get_feature_count.md) : Get the number of features in the dataset - [`get_featurelist()`](https://slinghub.github.io/MRMhub/quant/reference/get_featurelist.md) : Get feature IDs ## Analysis data import Functions to import analytical data from different sources into MRMhubExperiment objects. Additionally, the file parser function used internally by these import functions are available for direct use, i.e. to import different analytical data into data frames. - [`import_data_mrmhub()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_mrmhub.md) : Import MRMhub peak integration results - [`import_data_masshunter()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_masshunter.md) : Import Agilent MassHunter Quantitative Analysis CSV files - [`import_data_skyline()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_skyline.md) : Import Skyline peak integration results - [`import_data_csv_wide()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_csv_wide.md) : Import analysis results from plain wide-format CSV files - [`import_data_csv_long()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_csv_long.md) : Import analysis results from long-format CSV files - [`import_data_mztab()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_mztab.md) : Import data from an mzTab-M file - [`parse_mrmhub_result()`](https://slinghub.github.io/MRMhub/quant/reference/parse_mrmhub_result.md) : Parses MRMhub peak integration results into a tibble - [`parse_masshunter_csv()`](https://slinghub.github.io/MRMhub/quant/reference/parse_masshunter_csv.md) : Reads and parses one Agilent MassHunter Quant CSV result file - [`parse_skyline_result()`](https://slinghub.github.io/MRMhub/quant/reference/parse_skyline_result.md) : Parses skyline peak integration results into a tibble - [`parse_plain_wide_csv()`](https://slinghub.github.io/MRMhub/quant/reference/parse_plain_wide_csv.md) : Parses a plain wide CSV file - [`parse_plain_long_csv()`](https://slinghub.github.io/MRMhub/quant/reference/parse_plain_long_csv.md) : Parses a plain long CSV file - [`import_data_csv()`](https://slinghub.github.io/MRMhub/quant/reference/import_data_csv.md) : (Deprecated) Import wide CSV files ## Metadata import Functions to import metadata describing the analyses (samples), features (analytes), internal standards and other relevant information from the MRMhub Excel template or CSV files. - [`import_metadata_analyses()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_analyses.md) : Import analysis metadata - [`import_metadata_features()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_features.md) : Import feature metadata - [`import_metadata_istds()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_istds.md) : Import internal standards (ISTD) metadata - [`import_metadata_responsecurves()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_responsecurves.md) : Import response curves metadata - [`import_metadata_qcconcentrations()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_qcconcentrations.md) : Import calibration curves metadata - [`import_metadata_msorganiser()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_msorganiser.md) : Import metadata from a MRMhub Metadata Organizer file - [`import_metadata_from_data()`](https://slinghub.github.io/MRMhub/quant/reference/import_metadata_from_data.md) : Retrieve metadata from imported analysis data - [`save_metadata_templates()`](https://slinghub.github.io/MRMhub/quant/reference/save_metadata_templates.md) : Saves a Excel (xlsx) file with metadata templates - [`save_metadata_msorganiser_template()`](https://slinghub.github.io/MRMhub/quant/reference/save_metadata_msorganiser_template.md) : Saves a MRMhub Metadata Organizer template - [`add_metadata()`](https://slinghub.github.io/MRMhub/quant/reference/add_metadata.md) : Add metadata to an MRMhubExperiment object ## Isotope correction Functions to perform type II isotopic correction - [`correct_interferences()`](https://slinghub.github.io/MRMhub/quant/reference/correct_interferences.md) : Apply interference correction - [`correct_interference_manual()`](https://slinghub.github.io/MRMhub/quant/reference/correct_interference_manual.md) : Manual isotopic interference correction ## External Calibration Function to plot and analyze external calibration curves - [`quantify_by_calibration()`](https://slinghub.github.io/MRMhub/quant/reference/quantify_by_calibration.md) : Calculate concentrations based on external calibration - [`plot_calibrationcurves()`](https://slinghub.github.io/MRMhub/quant/reference/plot_calibrationcurves.md) : Plot calibration curves - [`calc_calibration_results()`](https://slinghub.github.io/MRMhub/quant/reference/calc_calibration_results.md) : Calculate external calibration curve results - [`get_calibration_metrics()`](https://slinghub.github.io/MRMhub/quant/reference/get_calibration_metrics.md) : Get calibration metrics - [`get_qc_bias_variability()`](https://slinghub.github.io/MRMhub/quant/reference/get_qc_bias_variability.md) : Retrieve calibration regression results ## Normalization, Quantification Functions for normalization by internal standards and sample amounts, to calculate analyte concentrations based on internal standards amounts or external calibration curves. Function to for absolute or relative calibration using a reference sample. - [`normalize_by_istd()`](https://slinghub.github.io/MRMhub/quant/reference/normalize_by_istd.md) : Normalize feature intensities using internal standards - [`quantify_by_istd()`](https://slinghub.github.io/MRMhub/quant/reference/quantify_by_istd.md) : Calculate analyte concentrations using internal standards - [`calibrate_by_reference()`](https://slinghub.github.io/MRMhub/quant/reference/calibrate_by_reference.md) : Calibrate feature values using a reference sample ## Drift/Batch Correction Function for drift and batch correction correction - [`correct_drift_gaussiankernel()`](https://slinghub.github.io/MRMhub/quant/reference/correct_drift_gaussiankernel.md) : Drift correction by Gaussian kernel smoothing - [`correct_drift_cubicspline()`](https://slinghub.github.io/MRMhub/quant/reference/correct_drift_cubicspline.md) : Drift correction by cubic spline smoothing - [`correct_drift_loess()`](https://slinghub.github.io/MRMhub/quant/reference/correct_drift_loess.md) : Drift correction by LOESS smoothing - [`correct_drift_gam()`](https://slinghub.github.io/MRMhub/quant/reference/correct_drift_gam.md) : Drift correction by generalized additive model (GAM) smoothing - [`correct_batch_centering()`](https://slinghub.github.io/MRMhub/quant/reference/correct_batch_centering.md) : Batch centering correction ## Quality Control and Filtering Functions to calculate feature QC metrics and apply QC filtering, and vizualize the filtering results. - [`calc_qc_metrics()`](https://slinghub.github.io/MRMhub/quant/reference/calc_qc_metrics.md) : Calculate quality control (QC) metrics for features - [`filter_features_qc()`](https://slinghub.github.io/MRMhub/quant/reference/filter_features_qc.md) : Feature filtering based on QC criteria - [`detect_outlier_pca()`](https://slinghub.github.io/MRMhub/quant/reference/detect_outlier_pca.md) : Get list of analyses classified as technical outliers - [`plot_qc_summary_byclass()`](https://slinghub.github.io/MRMhub/quant/reference/plot_qc_summary_byclass.md) : Plot QC filtering summary by feature class - [`plot_qc_summary_overall()`](https://slinghub.github.io/MRMhub/quant/reference/plot_qc_summary_overall.md) : Plot overall QC filtering summary - [`plot_abundanceprofile()`](https://slinghub.github.io/MRMhub/quant/reference/plot_abundanceprofile.md) : Plot abundance profile ## Quality Control Plots Functions to plots diverse QC visualizatios. - [`plot_runsequence()`](https://slinghub.github.io/MRMhub/quant/reference/plot_runsequence.md) : RunSequence plot - [`plot_runscatter()`](https://slinghub.github.io/MRMhub/quant/reference/plot_runscatter.md) : RunScatter plot - [`plot_rla_boxplot()`](https://slinghub.github.io/MRMhub/quant/reference/plot_rla_boxplot.md) : Relative log abundance (RLA) plot - [`plot_pca()`](https://slinghub.github.io/MRMhub/quant/reference/plot_pca.md) : PCA plot for quality control - [`plot_pca_loading()`](https://slinghub.github.io/MRMhub/quant/reference/plot_pca_loading.md) : Plot PCA loadings - [`plot_feature_correlations()`](https://slinghub.github.io/MRMhub/quant/reference/plot_feature_correlations.md) : Plot highly correlated feature pairs - [`plot_rt_vs_chain()`](https://slinghub.github.io/MRMhub/quant/reference/plot_rt_vs_chain.md) : Plot retention time versus chain length and saturation - [`plot_qc_matrixeffects()`](https://slinghub.github.io/MRMhub/quant/reference/plot_qc_matrixeffects.md) : Plot standardized feature intensities grouped by QC type - [`plot_normalization_qc()`](https://slinghub.github.io/MRMhub/quant/reference/plot_normalization_qc.md) : Compare feature variability before and after normalization - [`plot_qcmetrics_comparison()`](https://slinghub.github.io/MRMhub/quant/reference/plot_qcmetrics_comparison.md) : Comparison of two feature QC metrics variables - [`plot_qc_interferences()`](https://slinghub.github.io/MRMhub/quant/reference/plot_qc_interferences.md) : Plot the results of interference correction ## Response Curves Functions to calculate and visualize response curves - [`plot_responsecurves()`](https://slinghub.github.io/MRMhub/quant/reference/plot_responsecurves.md) : Plot response curves - [`get_response_curve_stats()`](https://slinghub.github.io/MRMhub/quant/reference/get_response_curve_stats.md) : Linear regression statistics of response curves ## Data Reporting and Sharing Functions to export processed and raw datasets and the processing steps in different formats. - [`save_report_xlsx()`](https://slinghub.github.io/MRMhub/quant/reference/save_report_xlsx.md) : Write a data-processing report (Excel) - [`save_dataset_csv()`](https://slinghub.github.io/MRMhub/quant/reference/save_dataset_csv.md) : Export data to a CSV file - [`save_dataset_mztab()`](https://slinghub.github.io/MRMhub/quant/reference/save_dataset_mztab.md) : Export an experiment to mzTab-M (HUPO-PSI) - [`save_dataset_summarizedexperiment()`](https://slinghub.github.io/MRMhub/quant/reference/save_dataset_summarizedexperiment.md) : Export an experiment to a Bioconductor SummarizedExperiment - [`save_feature_qc_metrics()`](https://slinghub.github.io/MRMhub/quant/reference/save_feature_qc_metrics.md) : Save feature QC metrics to CSV ## Lipidomics Functions specific to lipidomics data processing and analysis. - [`parse_lipid_feature_names()`](https://slinghub.github.io/MRMhub/quant/reference/parse_lipid_feature_names.md) : Get lipid class, species and transition names ## Datasets Example datasets for testing and demonstration. - [`lipidomics_dataset`](https://slinghub.github.io/MRMhub/quant/reference/lipidomics_dataset.md) : Plasma lipidomics dataset with metadata - [`quant_lcms_dataset`](https://slinghub.github.io/MRMhub/quant/reference/quant_lcms_dataset.md) : LC-MS dataset with external calibration curve and metadata - [`data_load_example()`](https://slinghub.github.io/MRMhub/quant/reference/data_load_example.md) : Load an example MRMhubExperiment dataset ## Helper functions A collection of functions that may be useful in the context of mass spectrometry is also available. - [`cv()`](https://slinghub.github.io/MRMhub/quant/reference/cv.md) : Percent coefficient of variation (%CV) - [`cv_log()`](https://slinghub.github.io/MRMhub/quant/reference/cv_log.md) : Percent coefficient of variation (%CV) based on log-transformation - [`calc_average_molweight()`](https://slinghub.github.io/MRMhub/quant/reference/calc_average_molweight.md) : Calculate average molecular weight from chemical formulas - [`correct_drift()`](https://slinghub.github.io/MRMhub/quant/reference/correct_drift.md) : Drift correction by custom function - [`fun_gauss.kernel.smooth()`](https://slinghub.github.io/MRMhub/quant/reference/fun_gauss.kernel.smooth.md) : Gaussian kernel smoothing helper function - [`fun_loess()`](https://slinghub.github.io/MRMhub/quant/reference/fun_loess.md) : Loess smoothing helper function - [`fun_cspline()`](https://slinghub.github.io/MRMhub/quant/reference/fun_cspline.md) : Cubic spline smoothing helper function - [`fun_gam_smooth()`](https://slinghub.github.io/MRMhub/quant/reference/fun_gam_smooth.md) : Generalized additive model (GAM) smoothing helper function - [`get_mad_tails()`](https://slinghub.github.io/MRMhub/quant/reference/get_mad_tails.md) : Get MAD-based tails - [`get_iqr_tails()`](https://slinghub.github.io/MRMhub/quant/reference/get_iqr_tails.md) : Get Tukey's IQR fences - [`get_outlier_bounds()`](https://slinghub.github.io/MRMhub/quant/reference/get_outlier_bounds.md) : Get outlier bounds via different methods - [`order_chained_columns_tbl()`](https://slinghub.github.io/MRMhub/quant/reference/order_chained_columns_tbl.md) : Reorder a data frame based on a chain of linked values in two columns # Articles ### All vignettes - [Installation](https://slinghub.github.io/MRMhub/quant/articles/manual-00-installation.md): Install mrmhub, verify your setup, and fix common install errors. - [Key Concepts & Glossary](https://slinghub.github.io/MRMhub/quant/articles/manual-01-key-concepts.md): Core vocabulary of MRMhub — the data model, terminology, and the function-naming convention. - [The MRMhubExperiment Data Object](https://slinghub.github.io/MRMhub/quant/articles/manual-02-data-object.md): The primary data container of the MRMhub workflow: its data and metadata tables, the identifiers that link them, and the feature variables it stores. - [Design Decisions: Why This Architecture?](https://slinghub.github.io/MRMhub/quant/articles/manual-03-design-decisions.md): Explains the key design decisions behind MRMhub QUANT – for power users and contributors who want to understand or extend the package. - [Importing Analytical Data](https://slinghub.github.io/MRMhub/quant/articles/manual-04-data-import.md): Importing analytical data from different sources into an MRMhubExperiment. - [Importing Metadata](https://slinghub.github.io/MRMhub/quant/articles/manual-05-metadata.md): Attaching and validating sample, feature, ISTD and QC metadata on an MRMhubExperiment. - [Sample Types & QC Roles](https://slinghub.github.io/MRMhub/quant/articles/manual-06-sample-types.md): Reference for the QC-type labels used in MRMhub and their roles in quality control and data processing. - [Drift and Batch Correction](https://slinghub.github.io/MRMhub/quant/articles/manual-07-corrections.md): MRMhub: postprocessing and quality control of small molecule mass spectrometry data - [Visualisation Functions](https://slinghub.github.io/MRMhub/quant/articles/manual-08-visualization.md): Reference for the MRMhub plotting functions, grouped by workflow stage, with the canonical argument forms and customisation guidance. - [Writing Pipelines with AI Assistants](https://slinghub.github.io/MRMhub/quant/articles/manual-09-ai-assistants.md): How to use large language models (Claude, ChatGPT, or local models) to help write MRMhub QUANT pipelines – how to ground them in the real API, and how to verify what they produce. - [Troubleshooting and FAQ](https://slinghub.github.io/MRMhub/quant/articles/manual-10-troubleshooting.md): Solutions to the most common errors and questions when using MRMhub QUANT. - [Manual](https://slinghub.github.io/MRMhub/quant/articles/manual-index.md): Complete contents of the MRMhub-QUANT manual. - [MRMhub](https://slinghub.github.io/MRMhub/quant/articles/mrmhub.md): - [Quantitative assay with Ext. calibration and QC](https://slinghub.github.io/MRMhub/quant/articles/recipe-01-ext-calibration-qc.md): MRMhub: Postprocessing and Quality Control of Small-Molecule Mass Spectrometry Data - [Custom QC Report](https://slinghub.github.io/MRMhub/quant/articles/recipe-02-custom-qc-report.md): Create a detailed HTML QC report from a processed MRMhubExperiment using a parameterized Quarto template. - [Import & Export mzTab-M](https://slinghub.github.io/MRMhub/quant/articles/recipe-03-mztab-export.md): Exchange data with the HUPO-PSI mzTab-M standard format: export a processed MRMhubExperiment for sharing or MetaboLights submission, and import results from tools such as Lipid Data Analyzer, MS-DIAL or MZmine. - [Export to Bioconductor (SummarizedExperiment)](https://slinghub.github.io/MRMhub/quant/articles/recipe-04-summarizedexperiment.md): Export a processed MRMhubExperiment as a Bioconductor SummarizedExperiment, and take it downstream: differential abundance with limma, or lipid-specific analysis with lipidr. - [Your First Analysis](https://slinghub.github.io/MRMhub/quant/articles/tutorial-00-first-analysis.md): A 5-minute walkthrough: import demo data, inspect, normalize, and export. - [Preparing and importing data](https://slinghub.github.io/MRMhub/quant/articles/tutorial-01-prep-data.md): How to prepare data files and import analytical data and metadata into MRMhub. - [Basic MRMhub Workflow](https://slinghub.github.io/MRMhub/quant/articles/tutorial-02-basic-workflow.md): A realistic end-to-end workflow covering project setup, metadata import, drift/batch correction, QC filtering, and export. - [Lipidomics Data Processing](https://slinghub.github.io/MRMhub/quant/articles/tutorial-03-lipidomics-workflow.md): MRMhub: Postprocessing and Quality Control of Small-Molecule Mass Spectrometry Data - [Drift and Batch Correction](https://slinghub.github.io/MRMhub/quant/articles/tutorial-04-drift-correction.md): - [Exploring QC: RunScatter and PCA](https://slinghub.github.io/MRMhub/quant/articles/tutorial-05-run-scatter.md): - [Calibration by a Reference Sample](https://slinghub.github.io/MRMhub/quant/articles/tutorial-07-calibration-reference.md): - [Validating and Fixing Metadata](https://slinghub.github.io/MRMhub/quant/articles/tutorial-10-metadata-validation.md): How to validate analysis, feature, and ISTD annotations before processing, diagnose common defects, and generate a metadata template from your data. - [Interference Correction](https://slinghub.github.io/MRMhub/quant/articles/tutorial-11-interference-correction.md): Identify and correct isotopic or isobaric interferences between MRM transitions using a contribution-based subtraction model. - [Build a Workflow Without Code](https://slinghub.github.io/MRMhub/quant/articles/tutorial-12-workflow-builder.md): Use the point-and-click builder to validate your data and metadata and generate a runnable Quarto workflow.