
metaXpress: End-to-End Bulk RNA-seq Meta-Analysis
Source:R/metaXpress-package.R
metaXpress-package.RdmetaXpress 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
metaXpressStudyHolds 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, ormx_load_local.metaXpressResultHolds 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_geoDownload count matrices and sample metadata from GEO for one or more accession IDs; applies the 10-point QC checklist automatically.
mx_fetch_sraDownload raw RNA-seq data for SRA project IDs (requires sratools).
mx_load_localConstruct
metaXpressStudyobjects from local count-matrix files orSummarizedExperimentobjects.mx_qc_studyScore a study against a 10-point data-level QC checklist.
mx_cluster_samplesAutomatically assign samples to case/control groups using metadata clustering.
mx_filter_studiesRetain only studies whose
qc_scoremeets a minimum threshold.
Module 2 — Normalisation and Harmonisation
mx_reannotateConvert gene identifiers to a unified namespace (SYMBOL, ENSEMBL, or ENTREZID) using AnnotationDbi.
mx_normalizeNormalise within-study counts by TMM, VST, CPM, TPM, or quantile methods.
mx_correct_library_typeAdjust for systematic bias between polyA-selected and rRNA-depleted libraries.
mx_remove_batchRemove cross-study batch effects via ComBat-seq, ComBat, limma, or Harmony.
mx_align_genesRestrict all studies to their common gene universe.
Module 3 — Per-Study Differential Expression
mx_deRun DE on a single
metaXpressStudyusing DESeq2, edgeR, or limma-voom.mx_de_allApply
mx_deto every study in a list, in parallel via BiocParallel.mx_de_summaryTabulate significant DEG counts across studies at user-specified thresholds.
Module 4 — Meta-Analysis Statistics
mx_metaCombine 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_heterogeneityCompute per-gene Cochran's Q, I\(^2\), \(\tau^2\), and heterogeneity p-values.
mx_sensitivityLeave-one-out sensitivity analysis: rerun meta-analysis excluding each study in turn to assess result stability.
mx_study_overviewSummarise each study's contribution to the meta-analysis.
Module 5 — Missing Gene Handling
mx_missing_summaryReport gene-by-study coverage as a binary presence/absence matrix.
mx_filter_coverageRetain only genes detected in at least
min_studiesstudies.mx_imputeImpute missing per-study statistics (zero, mean, median, or Bayesian shrinkage).
Module 6 — Pathway Meta-Analysis
mx_pathway_metaRun cross-study ORA or GSEA against MSigDB gene sets (Hallmarks, KEGG, Reactome, GO) using clusterProfiler.
mx_pathway_consensusIdentify pathways enriched across a majority of individual studies.
mx_pathway_dedupRemove redundant pathways via kappa-coefficient overlap clustering.
mx_pathway_heatmapHeatmap of enrichment scores or \(-\log_{10}\)(padj) for top pathways.
Module 7 — Visualisation
mx_volcanoVolcano plot of meta log2FC vs. combined \(-\log_{10}\)(padj) with optional gene labels.
mx_forestForest plot showing per-study log2FC ± 95% CI and the pooled meta-estimate for a single gene.
mx_heatmapHeatmap of log2FC values for the top n meta-significant genes across all studies.
mx_heterogeneity_plotHistogram of the I\(^2\) distribution across all tested genes.
mx_upsetUpSet plot of DEG overlap across studies.
mx_study_overviewMulti-panel QC summary: scores, sample sizes, sequencing depths, and gene detection rates.
Module 8 — Reporting and Export
mx_reportRender a fully reproducible HTML or PDF analysis report from a parameterised R Markdown template.
mx_exportWrite the gene-level meta-analysis table to CSV, Excel, or RDS.
mx_session_infoCapture 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