Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Related software

CytePool brings the sample-level methods of several R packages into one Python package, reads the pseudobulk layouts of the scverse tools, and works beside other tools that answer neighbouring questions. Licences and versions were read from each project’s CRAN or Bioconductor index entry, PyPI page or repository on 26 October 2026.

Reimplemented and validated against

CytePool implements these methods from their papers and documentation, and runs the packages as separate programs to compare results (Validation). The validation uses the versions the Validation page lists, which can be older than the current releases below.

ToolWhat it doesLicenceCurrent release
limmaLinear models with empirical Bayes moderation; voom, sample quality weights, gene-set tests Ritchie et al., 2015GPL (>= 2)Bioconductor 3.68.5
edgeRNegative binomial models, quasi-likelihood F-tests, TMM normalization, expression filtering Chen et al., 2025GPL (>= 2)Bioconductor 4.10.7
DESeq2Negative binomial models with shrunken dispersions; Wald and likelihood ratio tests Love et al., 2014LGPL (>= 3)Bioconductor 1.52.0
variancePartitionLinear mixed models of expression: variance partitioning and dream Hoffman & Schadt, 2016Hoffman & Roussos, 2021GPL-2Bioconductor 1.42.0
specklepropeller tests of cell-type proportions Phipson et al., 2022GPL-3Bioconductor 1.12.0
metaforMeta-analysis Viechtbauer, 2010GPL (>= 2)CRAN 5.2-1
lme4 and lmerTestLinear mixed models; Satterthwaite’s and Kenward-Roger’s tests Bates et al., 2015Kuznetsova et al., 2017GPL (>= 2)CRAN 2.1-0 and 3.2-1
PyDESeq2A Python implementation of DESeq2 Muzellec et al., 2023; CytePool also adapts some of its constants, as THIRD_PARTY_NOTICES.md recordsMITPyPI 0.5.4

Because limma, edgeR, DESeq2, variancePartition, speckle, metafor, lme4 and lmerTest are under copyleft licences, CytePool is written from their papers and documentation and never from their source code, so that it can be distributed under the BSD 3-Clause license.

Read and written by CytePool

CytePool reads the pseudobulk layouts these tools write and writes them back (from_anndata, to_anndata, from_mudata, to_mudata), and its cube files are Zarr v3 stores.

ToolWhat it doesLicenceCurrent release
scanpySingle-cell analysis; get.aggregate sums cells into pseudobulk profiles Wolf et al., 2018BSD 3-ClausePyPI 1.12.4
decouplerActivity scores of pathways and regulators; pp.pseudobulk Mompel et al., 2022BSD 3-ClausePyPI 2.3.0
LIANA+Cell-cell communication; adata_to_views makes a MuData of pseudobulk views Dimitrov et al., 2024BSD 3-ClausePyPI 1.10.0
anndata and mudataAnnotated data matrices and multimodal containers Virshup et al., 2024Bredikhin et al., 2022BSD 3-ClausePyPI 0.13.4 and 0.4.1
zarr-pythonThe Python implementation of Zarr; opens cube filesMITPyPI 3.4.1

Beside CytePool

These tools answer neighbouring questions, or the same ones by other models. CytePool neither uses nor reads them.

ToolWhat it doesLicenceCurrent release
dreamletPrecision-weighted mixed models on the pseudobulk profiles of every cell type Hoffman et al., 2026Artistic-2.0Bioconductor 1.10.0
muscatDifferential state analysis of multi-sample, multi-condition single-cell data, with pseudobulk and mixed models Crowell et al., 2020GPL-3Bioconductor 1.26.0
crumblrPrecision-weighted mixed models of cell-type composition Hoffman & Roussos, 2026Artistic-2.0Bioconductor 1.4.5
sccompBayesian tests of composition and its variability Mangiola et al., 2023GPL-3Bioconductor 2.4.0
miloRDifferential abundance in neighbourhoods of a k-nearest neighbour graph Dann et al., 2022GPL-3Bioconductor 2.8.1
fgseaFast preranked gene set enrichment analysisMITBioconductor 1.38.0
glmGamPoiGamma-Poisson generalized linear models for single-cell countsGPL-3Bioconductor 1.24.0
pertpyPerturbation analysis in the scverse ecosystem, with composition and differential expression tools Heumos et al., 2026MITPyPI 1.4.0
statsmodelsStatistical models in Python, including generalized linear and mixed modelsBSD 3-ClausePyPI 0.15.0
GSEApyGene set enrichment analysis in PythonBSD 3-ClausePyPI 1.3.1
scvi-toolsProbabilistic models of single-cell omics dataBSD 3-ClausePyPI 1.5.1

Independent Python ports of the copyleft R packages exist too. CytePool neither uses nor reads them.

ToolWhat it doesLicenceCurrent release
pylimmaA Python port of limmaGPL-3.0-or-laterPyPI 0.2.0
python-limmaA Python port of limmaLGPL-3.0-or-laterPyPI 0.1.0
edgePythonA Python port of edgeRGPL-3.0-or-laterPyPI 0.5.0
InMoosePython ports of limma, edgeR, DESeq2 and ComBat, among other toolsGPL-3.0-or-laterPyPI 0.9.1
dreampyA Python implementation of the dreamlet frameworkMIT, as its repository statesGitHub
References
  1. 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
  2. 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
  3. 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
  4. Hoffman, G. E., & Schadt, E. E. (2016). variancePartition: interpreting drivers of variation in complex gene expression studies. BMC Bioinformatics, 17(1), 483. 10.1186/s12859-016-1323-z
  5. Hoffman, G. E., & Roussos, P. (2021). Dream: powerful differential expression analysis for repeated measures designs. Bioinformatics, 37(2), 192–201. 10.1093/bioinformatics/btaa687
  6. Phipson, B., Sim, C. B., Porrello, E. R., Hewitt, A. W., Powell, J., & Oshlack, A. (2022). propeller: testing for differences in cell type proportions in single cell data. Bioinformatics, 38(20), 4720–4726. 10.1093/bioinformatics/btac582
  7. Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1–48. 10.18637/jss.v036.i03
  8. Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. 10.18637/jss.v067.i01
  9. Kuznetsova, A., Brockhoff, P. B., & Christensen, R. H. B. (2017). lmerTest package: tests in linear mixed effects models. Journal of Statistical Software, 82(13), 1–26. 10.18637/jss.v082.i13
  10. Muzellec, B., Teleńczuk, M., Cabeli, V., & Andreux, M. (2023). PyDESeq2: a python package for bulk RNA-seq differential expression analysis. Bioinformatics, 39(9), btad547. 10.1093/bioinformatics/btad547
  11. Wolf, F. A., Angerer, P., & Theis, F. J. (2018). SCANPY: large-scale single-cell gene expression data analysis. Genome Biology, 19(1), 15. 10.1186/s13059-017-1382-0
  12. Badia-i Mompel, P., Vélez Santiago, J., Braunger, J., Geiss, C., Dimitrov, D., Müller-Dott, S., Taus, P., Dugourd, A., Holland, C. H., Ramirez Flores, R. O., & Saez-Rodriguez, J. (2022). decoupleR: ensemble of computational methods to infer biological activities from omics data. Bioinformatics Advances, 2(1), vbac016. 10.1093/bioadv/vbac016
  13. Dimitrov, D., Schäfer, P. S. L., Farr, E., Rodriguez-Mier, P., Lobentanzer, S., Badia-i Mompel, P., Dugourd, A., Tanevski, J., Ramirez Flores, R. O., & Saez-Rodriguez, J. (2024). LIANA+ provides an all-in-one framework for cell-cell communication inference. Nature Cell Biology, 26(9), 1613–1622. 10.1038/s41556-024-01469-w
  14. Virshup, I., Rybakov, S., Theis, F. J., Angerer, P., & Wolf, F. A. (2024). anndata: access and store annotated data matrices. Journal of Open Source Software, 9(101), 4371. 10.21105/joss.04371
  15. Bredikhin, D., Kats, I., & Stegle, O. (2022). MUON: multimodal omics analysis framework. Genome Biology, 23(1), 42. 10.1186/s13059-021-02577-8