| Title: | Ensemble Models for Differential Analysis |
|---|---|
| Description: | The DAssemble package implements an ensemble framework for differential-abundance and differential-expression analysis across bulk RNA-seq, single-cell RNA-seq, and microbiome studies. It wraps a collection of popular DA/DE methods as core methods and combines them via Cauchy Combination Tests (CCT), optionally augmented by simple enhancers such as Wilcoxon, Kolmogorov–Smirnov, and presence–absence logistic regression. |
| Authors: | Ziyu Liu [aut], Nalin Arora [aut, cre] (ORCID: <https://orcid.org/0009-0009-1340-688X>), Chuxuan Gao [aut], Himel Mallick [aut] |
| Maintainer: | Nalin Arora <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.99.4 |
| Built: | 2026-10-11 15:47:42 UTC |
| Source: | https://github.com/bioc/DAssemble |
DAssemble provides an ensemble framework for differential-abundance and differential-expression analysis across bulk RNA-seq, single-cell RNA-seq, and microbiome studies. The package combines a user-selected core method with optional enhancer tests and aggregates evidence using the Cauchy Combination Test.
The main user-facing function is DAssemble(). It accepts either a
MultiAssayExperiment object or a feature table paired with sample metadata.
Core methods can be combined with enhancer tests including Wilcoxon rank-sum,
Kolmogorov-Smirnov, and presence-absence logistic regression.
Maintainer: Nalin Arora [email protected] (ORCID)
Authors:
Nalin Arora [email protected] (ORCID)
Ziyu Liu [email protected]
Chuxuan Gao [email protected]
Himel Mallick [email protected]
The DAssemble function implements an ensemble strategy for differential
analysis. Users can select a single core model and optionally augment it
with up to three enhancer models. Enhancers are simple, often nonparametric
tests that provide complementary evidence. P-values from the core and
enhancer models are combined using the Cauchy Combination Test (CCT).
DAssemble( features, metadata = NULL, core_method = NULL, enhancers = NULL, expVar = "group", coVars = NULL, random_effects = NULL, method_args = NULL, assay_name = NULL, p_adj = "BY", enhancer_norm = "TSS", return_components = TRUE, return_subensembles = FALSE )DAssemble( features, metadata = NULL, core_method = NULL, enhancers = NULL, expVar = "group", coVars = NULL, random_effects = NULL, method_args = NULL, assay_name = NULL, p_adj = "BY", enhancer_norm = "TSS", return_components = TRUE, return_subensembles = FALSE )
features |
A |
metadata |
A data.frame with sample metadata. Leave as |
core_method |
Character scalar naming the core method to run, or |
enhancers |
Character vector containing any of |
expVar |
Character scalar naming the binary exposure variable in
|
coVars |
Optional character vector naming covariates to include in covariate-aware core methods and logistic-regression enhancers. |
random_effects |
Optional character vector naming grouping variables for random intercepts in longitudinal-compatible methods. |
method_args |
Optional named list of method-specific control arguments.
Use |
assay_name |
Name of the assay/experiment to use when |
p_adj |
Multiple-testing correction method passed to stats::p.adjust. |
enhancer_norm |
Normalization method for enhancer tests. One of
|
return_components |
Logical; if |
return_subensembles |
Logical; if |
A list containing the CCT-ranked joint results in res, the
analyzed feature table in features, elapsed time in Time.min, and a
named components list when return_components = TRUE. Each component is
the standardized result table from one selected core method or enhancer.
Optional CCT sub-ensemble results are returned in ensembles.
features <- data.frame( taxon1 = c(12, 9, 11, 8, 25, 21, 23, 26), taxon2 = c(30, 28, 31, 29, 10, 12, 11, 9), taxon3 = c(5, 6, 4, 7, 5, 4, 6, 5), taxon4 = c(8, 7, 9, 6, 12, 13, 11, 14), row.names = paste0("sample", seq_len(8)) ) metadata <- data.frame( group = factor(rep(c("control", "case"), each = 4)), row.names = rownames(features) ) result <- DAssemble( features = features, metadata = metadata, core_method = NULL, enhancers = "LR", expVar = "group", method_args = list( LR = list(control = glm.control(maxit = 50)) ) ) head(result$res)features <- data.frame( taxon1 = c(12, 9, 11, 8, 25, 21, 23, 26), taxon2 = c(30, 28, 31, 29, 10, 12, 11, 9), taxon3 = c(5, 6, 4, 7, 5, 4, 6, 5), taxon4 = c(8, 7, 9, 6, 12, 13, 11, 14), row.names = paste0("sample", seq_len(8)) ) metadata <- data.frame( group = factor(rep(c("control", "case"), each = 4)), row.names = rownames(features) ) result <- DAssemble( features = features, metadata = metadata, core_method = NULL, enhancers = "LR", expVar = "group", method_args = list( LR = list(control = glm.control(maxit = 50)) ) ) head(result$res)