Skip to contents

metaXpress provides a unified, reproducible pipeline for integrating multiple bulk RNA-seq studies into a single meta-analysis. Starting from raw GEO accession IDs, the package handles every step: data ingestion and QC, gene-ID harmonisation, library-type correction and batch removal, per-study differential expression, meta-analysis statistics (p-value combination and effect-size models), missing-gene imputation, pathway-level enrichment, and production-quality reporting.

The pipeline is built around two S4 classes that flow through every step: metaXpressStudy (one object per study, output of ingestion) and metaXpressResult (the combined meta-analysis result). All public functions are prefixed mx_ and parallelised via BiocParallel.

S4 Classes

metaXpressStudy

Holds a single RNA-seq study: raw count matrix, sample metadata, accession ID, organism, QC score, and per-study DE result. Created by mx_fetch_geo, mx_fetch_sra, or mx_load_local.

metaXpressResult

Holds the combined meta-analysis output: gene-level statistics (meta log2FC, combined p-value, FDR, I\(^2\)), heterogeneity table, and (optionally) pathway enrichment results. Created by mx_meta.

Module 1 — Data Ingestion and QC

mx_fetch_geo

Download count matrices and sample metadata from GEO for one or more accession IDs; applies the 10-point QC checklist automatically.

mx_fetch_sra

Download raw RNA-seq data for SRA project IDs (requires sratools).

mx_load_local

Construct metaXpressStudy objects from local count-matrix files or SummarizedExperiment objects.

mx_qc_study

Score a study against a 10-point data-level QC checklist.

mx_cluster_samples

Automatically assign samples to case/control groups using metadata clustering.

mx_filter_studies

Retain only studies whose qc_score meets a minimum threshold.

Module 2 — Normalisation and Harmonisation

mx_reannotate

Convert gene identifiers to a unified namespace (SYMBOL, ENSEMBL, or ENTREZID) using AnnotationDbi.

mx_normalize

Normalise within-study counts by TMM, VST, CPM, TPM, or quantile methods.

mx_correct_library_type

Adjust for systematic bias between polyA-selected and rRNA-depleted libraries.

mx_remove_batch

Remove cross-study batch effects via ComBat-seq, ComBat, limma, or Harmony.

mx_align_genes

Restrict all studies to their common gene universe.

Module 3 — Per-Study Differential Expression

mx_de

Run DE on a single metaXpressStudy using DESeq2, edgeR, or limma-voom.

mx_de_all

Apply mx_de to every study in a list, in parallel via BiocParallel.

mx_de_summary

Tabulate significant DEG counts across studies at user-specified thresholds.

Module 4 — Meta-Analysis Statistics

mx_meta

Combine per-study DE results with random-effects (REML/PM/DL, optional Hartung-Knapp), fixed-effect, directional Fisher, Stouffer, weighted inverse-normal, minP, maxP or rOP methods. Returns a metaXpressResult.

mx_heterogeneity

Compute per-gene Cochran's Q, I\(^2\), \(\tau^2\), and heterogeneity p-values.

mx_sensitivity

Leave-one-out sensitivity analysis: rerun meta-analysis excluding each study in turn to assess result stability.

mx_study_overview

Summarise each study's contribution to the meta-analysis.

Module 5 — Missing Gene Handling

mx_missing_summary

Report gene-by-study coverage as a binary presence/absence matrix.

mx_filter_coverage

Retain only genes detected in at least min_studies studies.

mx_impute

Impute missing per-study statistics (zero, mean, median, or Bayesian shrinkage).

Module 6 — Pathway Meta-Analysis

mx_pathway_meta

Run cross-study ORA or GSEA against MSigDB gene sets (Hallmarks, KEGG, Reactome, GO) using clusterProfiler.

mx_pathway_consensus

Identify pathways enriched across a majority of individual studies.

mx_pathway_dedup

Remove redundant pathways via kappa-coefficient overlap clustering.

mx_pathway_heatmap

Heatmap of enrichment scores or \(-\log_{10}\)(padj) for top pathways.

Module 7 — Visualisation

mx_volcano

Volcano plot of meta log2FC vs. combined \(-\log_{10}\)(padj) with optional gene labels.

mx_forest

Forest plot showing per-study log2FC ± 95% CI and the pooled meta-estimate for a single gene.

mx_heatmap

Heatmap of log2FC values for the top n meta-significant genes across all studies.

mx_heterogeneity_plot

Histogram of the I\(^2\) distribution across all tested genes.

mx_upset

UpSet plot of DEG overlap across studies.

mx_study_overview

Multi-panel QC summary: scores, sample sizes, sequencing depths, and gene detection rates.

Module 8 — Reporting and Export

mx_report

Render a fully reproducible HTML or PDF analysis report from a parameterised R Markdown template.

mx_export

Write the gene-level meta-analysis table to CSV, Excel, or RDS.

mx_session_info

Capture R session information, timestamp, and package version for reproducibility records.

Getting started

The fastest way to explore the package is the quickstart vignette: vignette("quickstart", package = "metaXpress"). For the complete GEO-to-report workflow see vignette("full_workflow", package = "metaXpress").

References

Heberle, B.A. et al. (2024) Systematic review and meta-analysis of bulk RNAseq studies in human Alzheimer's disease brain tissue. bioRxiv. doi:10.1101/2024.11.07.622520

Fisher, R.A. (1932) Statistical Methods for Research Workers. 4th edn. Edinburgh: Oliver & Boyd.

DerSimonian, R. & Laird, N. (1986) Meta-analysis in clinical trials. Controlled Clinical Trials, 7(3), 177–188. doi:10.1016/0197-2456(86)90046-2

Cochran, W.G. (1954) The combination of estimates from different experiments. Biometrics, 10(1), 101–129. doi:10.2307/3001666

Higgins, J.P.T. & Thompson, S.G. (2002) Quantifying heterogeneity in a meta-analysis. Statistics in Medicine, 21(11), 1539–1558. doi:10.1002/sim.1186

Love, M.I., Huber, W. & Anders, S. (2014) Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2. Genome Biology, 15(12), 550. doi:10.1186/s13059-014-0550-8

Robinson, M.D., McCarthy, D.J. & Smyth, G.K. (2010) edgeR: a Bioconductor package for differential expression analysis of digital gene expression data. Bioinformatics, 26(1), 139–140. doi:10.1093/bioinformatics/btp616

Ritchie, M.E. et al. (2015) limma powers differential expression analyses for RNA-sequencing and microarray studies. Nucleic Acids Research, 43(7), e47. doi:10.1093/nar/gkv007

Johnson, W.E., Li, C. & Rabinovic, A. (2007) Adjusting batch effects in microarray expression data using empirical Bayes methods. Biostatistics, 8(1), 118–127. doi:10.1093/biostatistics/kxj037

Author

Md. Jubayer Hossain contact.jubayerhossain@gmail.com