Stateless adapters from MultiAssayExperiment to established bulk transcriptomics methods.
Each analysis call names an MAE, one SummarizedExperiment leaf, and an assay. bulkMAE aligns samples through sampleMap and returns the backend’s native object. It does not keep analysis history, mutate the input MAE, or wrap results in a new class. DESeq2 still returns a DESeqDataSet. edgeR still returns its fit and test objects. limma still returns an MArrayLM.
The public API is <family>_<method>() or <family>_<operation>(). Typing de_, enrich_, score_, coexpr_, or surv_ shows one family in autocomplete.
Read the pkgdown site for reference pages and executable tutorials.
Install
Install the current GitHub Release (v0.4.0):
# install.packages("pak")
pak::pak("Younthing/bulkMAE@v0.4.0")Or install the source tarball attached to that release:
install.packages(
"https://github.com/Younthing/bulkMAE/releases/download/v0.4.0/bulkMAE_0.4.0.tar.gz",
repos = NULL,
type = "source"
)The development tree on main is:
pak::pak("Younthing/bulkMAE")Analysis backends stay optional. Install only the engines a project uses. See Dependencies and the Chinese pak installation guide.
Quick start
mae_simulate() builds a small synthetic MAE for examples. The annotations and outcomes have no biological meaning.
library(bulkMAE)
mae <- mae_simulate(n_features = 120, n_samples = 8, seed = 1)
mae_validate(mae, "rna")
mae_assays(mae, "rna")Import a real feature-by-sample matrix with aligned sample metadata:
mae <- mae_from_matrix(
expression = counts,
samples = sample_data,
row_data = feature_data,
experiment = "rna",
assay = "counts"
)Helpers such as mae_add_assay() and mae_subset_features() return modified copies. The input MAE stays unchanged.
Analysis families
Each backend name links to its official package page. Official pages for wrappers outside this table are RUVSeq, ReactomePA, singscore, STRINGdb, CIBERSORTx, uwot, Rtsne, and OmnipathR.
activity_decouple() can run enrichment-style statistics (aucell, fgsea, gsva, ora) or network-aware estimators (mlm, ulm, viper, wmean, wsum), and can ask decoupleR for a consensus. Use activity_methods() to list methods in the installed decoupleR release. For signed or weighted methods, map the resource weight column with mor = "weight" or the matching column name.
coexpr_wgcna() applies goodSamplesGenes() before the network fit. It warns when samples or features are removed and appends their names plus the native quality result to the returned list.
Call shape
result <- analysis_function(
x = mae,
experiment = "rna",
assay = "counts",
...
)-
xis the MAE that holds samples and assays. -
experimentis always named. There is no hidden active assay. -
assayis named whenever more than one scale is plausible. - Samples are aligned with
MultiAssayExperiment::getWithColData(). - Fits and transformed matrices are returned. They are not written back.
Bridges that used to be assembled by hand include de_design(), de_contrast(), de_masigpro_design(), adjust_covariates(), gene_sets_prepare(), annotation_orgdb(), annotate_rekey(), deconv_reference(), surv_formula(), de_table(), and coexpr_modules().
What you supply
Expression and sample metadata do not determine study facts or reference biology. Survival outcomes, pairing and time semantics, RUV negative controls, locked signature weights, transcript or effective lengths, a tissue-matched single-cell reference, validation cohorts, and cross-study effect estimates must come from the study or a declared resource.
BioMart, KEGG, STRING, OmniPath, MSigDB, and LINCS are online or cache-backed. CIBERSORTx execution is external. bulkMAE does not fill those gaps with simulation.
Documentation
- Getting started (Chinese executable guide)
- airway QC and paired differential expression
- airway GO ORA, GSEA, and plots
- Method-selection guide
- Input-completeness audit
- Adapter-to-source map
-
0.4 naming migration for upgrades from 0.3 or earlier. Call
bulkmae_rename()to map an old name.
Installed copies also live under system.file("guides", package = "bulkMAE").
Tests and CI
Pull requests run one Ubuntu R-release CMD check against hard dependencies. After merge, main runs macOS, Windows, and Ubuntu-devel portability checks, the full-backend job, coverage, pkgdown, and BiocCheck. Those heavier workflows also run nightly or from Actions → Run workflow. Network-backed tests stay opt-in so BioMart, KEGG, STRING, OmniPath, or LINCS outages do not block ordinary changes.
The pkgdown site rebuilds from main and from a published Release, then deploys to gh-pages.
Dependencies
Hard imports are MAE and SE infrastructure plus ggplot2. Analysis engines are checked when their wrapper is called.
MuSiC, immunedeconv, and BayesPrism are optional and are not on every standard Bioconductor or CRAN repository. Install them from their official sources and record the commit or release in the project lockfile.
The Chinese pak installation guide lists CRAN and Bioconductor backends, verified GitHub specifications, and resources that package installation cannot provide.
License
bulkMAE is released under the Artistic License 2.0.
