CytePool’s tests compare samples, not cells: each takes one profile per sample, so that
a difference is measured against the variation between donors. Cells of one donor share
its genetics and environment, and a test that treats them as independent replicates
finds differences that do not hold across donors Squair et al., 2021Zimmerman et al., 2021Murphy & Skene, 2022. Pool the cells of each sample and cell type into a cube first
(from_cells); the methods below then run on its pseudobulk profiles.
Genes that change in each cell type¶
| The design | Function | What it fits |
|---|---|---|
Conditions, with covariates or a pairing as fixed effects, such as ~ donor + condition | limma_voom | Log-CPM values with voom’s precision weights, a weighted linear model, empirical Bayes moderation Law et al., 2014Ritchie et al., 2015 |
| The same, with library sizes within about threefold of each other | limma_trend | Log-CPM values, a linear model, a prior variance that follows the expression level |
| Several samples of each donor, and a variable that differs between donors, such as disease or sex | dream_voom | voom’s weights from mixed models, a random intercept per donor, Satterthwaite’s t-tests, empirical Bayes Hoffman & Roussos, 2021 |
Each runs on every group (cell type) of a cube, one at a time, and returns a
DifferentialExpressionResult with a table for every cell type and contrast
(DifferentialExpressionResult.table), a summary, and which samples each fit used
and why the others were left out. The limma User’s
Guide
(sections 15.4 and 15.5) says that limma-trend usually works well when the largest
library size is not more than about three times the smallest, and that voom is more
powerful when library sizes are quite variable. Pseudobulk library sizes grow with the
number of cells pooled, which can differ severalfold between samples, and
limma_voom is the default.
A fixed effect per donor (~ donor + condition) compares the samples of each donor with
each other, which removes the differences between donors from the noise. It cannot test
a variable that is constant within each donor, such as sex: that variable is confounded
with the donor effects, and Design.check says so. A random intercept per donor
(dream_voom) keeps the correlation between the samples of a donor and still
estimates donor-level effects. Mixed models, REML and dream explains
the model.
One matrix of counts¶
Bulk RNA-seq, or one cell type taken out of a cube, is a samples x genes matrix of counts. Three families of methods test it:
limma:
voom,fit_linear_model,contrasts_fit, thenmoderated_statisticsortreatfor a fold-change threshold. A bulk experiment can also become a cube with one group (from_bulk), on whichlimma_voomruns the same steps.edgeR’s quasi-likelihood F-tests:
fit_quasi_likelihoodandquasi_likelihood_f_test, negative binomial models with a moderated quasi-dispersion for every gene Chen et al., 2025.DESeq2:
fit_deseq2, withdeseq2_wald_testfor one coefficient or contrast anddeseq2_likelihood_ratio_testfor several coefficients at once, such as every level of a factor Love et al., 2014.
All three moderate the variability of each gene by borrowing from the others, and they agree on genes with clear effects. They differ in the scale they model (log counts per million, or counts) and in how they shrink: limma moderates residual variances towards a prior, edgeR moderates quasi-dispersions, DESeq2 shrinks dispersions towards a trend in the mean count. Count models gives the equations. In this version, edgeR’s and DESeq2’s methods run on one matrix at a time, not on every group of a cube.
Other questions¶
| Question | Functions | Explained in |
|---|---|---|
| Do the genes of a pathway respond together? | camera, fry, roast, mroast, romer | Gene-set tests |
| Does the share of a cell type change? | propeller | Composition tests |
| Do studies agree, and what is their common effect? | differential_expression_meta_analysis, meta_analysis | Meta-analysis |
| How many of the calls are false? | adjust_p_values | Multiple testing |
Choices that matter in every method¶
Samples with few cells. A profile pooled from a handful of cells is noisy.
min_cells(10 by default) leaves such samples out of a cell type’s fit, andmin_countssets the least total count a sample needs; the scverse best practices keep samples with at least 10 cells and 1,000 counts Heumos et al., 2023.prior_weights="n_cells"instead keeps every sample and weights it by its number of cells Hoffman et al., 2026.Genes with low counts. Genes are filtered by expression with the design, by edgeR’s rule (
filter_by_expression; Chen et al. (2016)), before voom’s trend is fitted.Outlying samples.
quality_weights=Trueestimates a weight for every sample from how well it follows the model, instead of removing it Liu et al., 2015, androbust=Trueprotects the prior from genes with outlying variances Phipson et al., 2016.Many cell types. p-values are adjusted within each cell type and contrast;
adjust_across_groups=Trueadds an adjustment over every cell type (Multiple testing).
- Squair, J. W., Gautier, M., Kathe, C., Anderson, M. A., James, N. D., Hutson, T. H., Hudelle, R., Qaiser, T., Matson, K. J. E., Barraud, Q., Levine, A. J., La Manno, G., Skinnider, M. A., & Courtine, G. (2021). Confronting false discoveries in single-cell differential expression. Nature Communications, 12(1), 5692. 10.1038/s41467-021-25960-2
- Zimmerman, K. D., Espeland, M. A., & Langefeld, C. D. (2021). A practical solution to pseudoreplication bias in single-cell studies. Nature Communications, 12(1), 738. 10.1038/s41467-021-21038-1
- Murphy, A. E., & Skene, N. G. (2022). A balanced measure shows superior performance of pseudobulk methods in single-cell RNA-sequencing analysis. Nature Communications, 13(1), 7851. 10.1038/s41467-022-35519-4
- Law, C. W., Chen, Y., Shi, W., & Smyth, G. K. (2014). voom: precision weights unlock linear model analysis tools for RNA-seq read counts. Genome Biology, 15(2), R29. 10.1186/gb-2014-15-2-r29
- Ritchie, M. E., Phipson, B., Wu, D., Hu, Y., Law, C. W., Shi, W., & Smyth, G. K. (2015). limma powers differential expression analyses for RNA-sequencing and microarray studies. Nucleic Acids Research, 43(7), e47. 10.1093/nar/gkv007
- Hoffman, G. E., & Roussos, P. (2021). Dream: powerful differential expression analysis for repeated measures designs. Bioinformatics, 37(2), 192–201. 10.1093/bioinformatics/btaa687
- Chen, Y., Chen, L., Lun, A. T. L., Baldoni, P. L., & Smyth, G. K. (2025). edgeR v4: powerful differential analysis of sequencing data with expanded functionality and improved support for small counts and larger datasets. Nucleic Acids Research, 53(2), gkaf018. 10.1093/nar/gkaf018
- 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. 10.1186/s13059-014-0550-8
- Heumos, L., Schaar, A. C., Lance, C., Litinetskaya, A., Drost, F., Zappia, L., Lücken, M. D., Strobl, D. C., Henao, J., Curion, F., Single-cell Best Practices Consortium, Schiller, H. B., & Theis, F. J. (2023). Best practices for single-cell analysis across modalities. Nature Reviews Genetics, 24(8), 550–572. 10.1038/s41576-023-00586-w
- Hoffman, G. E., Lee, D., Bendl, J., Prashant, N. M., Hong, A., Casey, C., Alvia, M., Shao, Z., Argyriou, S., Therrien, K., Venkatesh, S., Voloudakis, G., Haroutunian, V., Fullard, J. F., & Roussos, P. (2026). Efficient differential expression analysis of large-scale single-cell transcriptomics data using Dreamlet. Nature Communications, 17(1), 9597. 10.1038/s41467-026-75680-8
- Chen, Y., Lun, A. T. L., & Smyth, G. K. (2016). From reads to genes to pathways: differential expression analysis of RNA-Seq experiments using Rsubread and the edgeR quasi-likelihood pipeline. F1000Research, 5, 1438. 10.12688/f1000research.8987.2
- Liu, R., Holik, A. Z., Su, S., Jansz, N., Chen, K., Leong, H. S., Blewitt, M. E., Asselin-Labat, M.-L., Smyth, G. K., & Ritchie, M. E. (2015). Why weight? Modelling sample and observational level variability improves power in RNA-seq analyses. Nucleic Acids Research, 43(15), e97. 10.1093/nar/gkv412
- Phipson, B., Lee, S., Majewski, I. J., Alexander, W. S., & Smyth, G. K. (2016). Robust hyperparameter estimation protects against hypervariable genes and improves power to detect differential expression. The Annals of Applied Statistics, 10(2), 946–963. 10.1214/16-AOAS920