| name | bioconductor-matrixqcvis |
| description | Data quality assessment is an integral part of preparatory data analysis to ensure sound biological information retrieval. We present here the MatrixQCvis package, which provides shiny-based interactive visualization of data quality metrics at the per-sample and per-feature level. It is broadly applicable to quantitative omics data types that come in matrix-like format (features x samples). It enables the detection of low-quality samples, drifts, outliers and batch effects in data sets. Visualiz |
MatrixQCvis
Workflows
Standard Workflow
Data quality assessment is an integral part of preparatory data analysis to ensure sound biological information retrieval. We present here the MatrixQCvis package, which provides shiny-based interactive visualization of data quality metrics at the per-sample and per-feature level. It is broadly applicable to quantitative omics data types that come in matrix-like format (features x samples). It enables the detection of low-quality samples, drifts, outliers and batch effects in data sets. Visualiz
Steps:
- Samples measured/missing barplot
- Feature missingness histogram
- Feature missingness by condition
- UpSet plot of missingness across conditions
- Normalization
- Batch correction (default to none)
- Transformation (vsn with log2 fallback)
- Imputation (MinDet with minimum value fallback)
- CV comparison across processing stages
- Boxplot/Violin plot of processed values
- Drift Plot
- Distance Matrix Heatmap
library(MatrixQCvis)
library(SummarizedExperiment)
se_sds <- apply(assay(se), 1, sd, na.rm = TRUE)
se <- se[!is.na(se_sds) & se_sds > 0, ]
Input: A SummarizedExperiment object. Output: An interactive Shiny application that returns a processed SummarizedExperiment object upon exit.
When to Use
- Shiny-based interactive quality control and visualization of quantitative omics datasets (proteomics, metabolomics, transcriptomics).
- Detecting low-quality samples, instrument drifts, outliers, and batch effects.
- Performing simple differential expression analysis using moderated t-tests (
limma) or Wald tests (proDA) directly within the Shiny interface.
When NOT to Use
- For non-matrix-like data or raw sequencing reads (e.g., FASTQ files), use packages like
ShortRead or FastQC.
- For complex multi-factor batch correction or advanced linear modeling outside of interactive exploration, use
limma or sva directly.
Data Requirements
- A
SummarizedExperiment object where rownames(se) are feature names, colnames(se) are sample names, and colnames(se), colnames(assay(se)), and rownames(colData(se)) are all identical.
- Features with standard deviation of 0 should be filtered out before analysis.
Key Parameters
- se: A
SummarizedExperiment object containing the quantitative assay matrix and metadata.
Best Practices
- Filter out features with a standard deviation of 0 using
apply(assay(se), 1, sd, na.rm = TRUE) before launching shinyQC.
- Consult dimension reduction plots (PCA, PCoA, tSNE, UMAP) before performing batch correction, rather than relying solely on value distributions.
- Verify that sample names across
colnames(se), colnames(assay(se)), and rownames(colData(se)) are identical to prevent errors.
Common Pitfalls
- Launching
shinyQC with rownames(se) or colnames(se) set to NULL: Ensure feature and sample names are properly assigned.
- Performing batch correction based solely on boxplots/violin plots: Always inspect dimension reduction plots first to avoid over-correction.
Alternatives
limma for non-interactive batch correction and differential expression.
proDA for intensity-dependent probabilistic modeling of missing values in label-free proteomics.
sva for ComBat-based batch effect correction.
Citations
- Ahlman-Eltze and Anders 2019, proDA (differential abundance analysis)
- Ritchie et al. 2015, limma (moderated t-tests)
References