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.

Capability matrix

Every method below is compared with an independent reference, usually the package that defined it, run as a separate program on the same inputs. The tier says how closely: exact, a relative difference of at most 1e-10, for closed-form results; close, at most 1e-6, for iterative fits; calibrated, within simulation error with the same calls, for methods that draw random rotations. Where CytePool differs from the reference on purpose, the Validation page reports each difference with its size; its sections give every check.

Implemented

MethodCytePoolChecked againstTierScript
Pseudobulk profiles pooled from cellsfrom_cellsscanpy 1.12.4, decoupler 2.2.0exactpool_cells.py
Bulk counts as a cubefrom_bulkdecoupler 2.2.0exactpool_cells.py
Selecting, merging groups, pooling samples; means, variances, detectionCubescanpy 1.12.4exactcube.py
Cube fileswrite_cube, read_cubezarr-python 3.4.1exactcube_files.py
Reads of selected features from cube filesread_cube, Cube.selectzarr-python 3.4.1exactcube_reads.py
Fingerprints of cubesCube.fingerprint, Cube.digeststhe documented encoding, with zarr-python 3.4.1exactcube_fingerprints.py
AnnData and MuData layouts of scanpy, decoupler and LIANAto_anndata, from_anndata, to_mudata, from_mudatascanpy 1.12.4, decoupler 2.2.0, LIANA 1.10.0, anndata 0.13.4, mudata 0.4.1exactanndata_conversion.py
TMM, upper-quartile and RLE factors; CPM and log-CPM; filterByExprtmm_factors, upper_quartile_factors, rle_factors, cpm, log_cpm, filter_by_expressionedgeR 4.4.0exactnormalization.py
DESeq2’s median-of-ratios size factorsmedian_ratio_size_factorsDESeq2 1.46.0exactnormalization.py
Model matrices from R formulas, named contrasts, design checksDesign, model_matrix, make_contrasts, Design.checkR 4.4.3, limma 3.62.1, lme4 2.0.6exactdesign.py
Linear models of every gene, contrasts (limma’s lmFit, contrasts.fit)fit_linear_model, contrasts_fitlimma 3.62.1exactlinear_models.py
Mixed models with random intercepts by REML or ML, Satterthwaite’s t-testsfit_mixed_model, fixed_effect_testslme4 2.0.6, lmerTest 3.2.1closemixed_models.py
voom precision weights, limma’s span rulevoom, choose_lowess_spanlimma 3.62.1, edgeR 4.4.0exact; close on rarefied countsvoom.py
Sample quality weights (arrayWeights, voomWithQualityWeights)sample_quality_weights, voom_with_quality_weightslimma 3.62.1, edgeR 4.4.0closesample_quality_weights.py
Negative binomial models of every gene (edgeR’s glmFit), deviancesfit_negative_binomial_model, negative_binomial_deviance, negative_binomial_unit_devianceedgeR 4.4.0, mpmath 1.3.0closenegative_binomial_fits.py
Quasi-likelihood F-tests (edgeR 4’s glmQLFit, glmQLFTest)fit_quasi_likelihood, quasi_likelihood_f_test, common_dispersion, average_log_cpmedgeR 4.4.0, limma 3.62.1, mpmath 1.3.0closequasi_likelihood.py
DESeq2’s dispersions, Wald tests and likelihood ratio testsfit_deseq2, deseq2_dispersions, deseq2_wald_test, deseq2_likelihood_ratio_testDESeq2 1.46.0, PyDESeq2 0.5.4closedeseq2_tests.py
Empirical Bayes moderation, moderated t and F, B-statistics, TREATmoderated_statistics, treat, squeeze_variances, fit_f_distribution, fit_f_distribution_robust, fit_f_distribution_likelihoodlimma 3.62.1exact; close for the robust and likelihood priorsempirical_bayes.py
Gene-set tests camera and frycamera, frylimma 3.62.1exact; close with robust moderation; 1e-3 for fry’s default standardization, which differs on purposegene_set_tests.py
Rotation gene-set tests roast, mroast and romerroast, mroast, romerlimma 3.62.1calibrated; exact given limma’s rotationsrotation_gene_set_tests.py
Adjustment for multiple testing (R’s p.adjust)adjust_p_valuesR 4.4.3exactmultiple_testing.py
limma-voom and limma-trend on every cell type of a cubelimma_voom, limma_trendlimma 3.62.1, edgeR 4.4.0exact; close with robust moderationdifferential_expression.py
Options for pseudobulk data: quality weights, weights from cell numbers, a minimum count, adjustment across cell typeslimma_voom, limma_trendlimma 3.62.1, edgeR 4.4.0exact; close with quality weightsdifferential_expression_options.py
dream on every cell type of a cubedream_voom, voom_with_dream_weights, moderated_fixed_effect_testsvariancePartition 1.36.2, limma 3.62.1, lme4 1.1-38, lmerTest 3.1-3closedream.py
limma-voom on published single-cell data (Kang et al. 2018)from_cells, limma_voomlimma 3.62.1, edgeR 4.4.0exactinterferon_stimulated_pbmcs.py
Cell-type composition (speckle’s propeller)propellerspeckle 1.6.0, limma 3.62.1exact; close for the robust priorcomposition_tests.py
Meta-analysis by fixed and random effects (metafor’s rma.uni)meta_analysis, differential_expression_meta_analysismetafor 5.0.1exact; close for REML and Paule-Mandelmeta_analysis.py
Figures of limma, edgeR, DESeq2, speckle and metafor (MDS, voom’s trend, plotSA, MD and volcano plots, barcode plots, dispersions, composition, forest plots)cytepool.plottinglimma 3.62.1, edgeR 4.4.0, DESeq2 1.46.0, speckle 1.6.0, metafor 5.0.1exact for what is drawn; close for plotSA’s priorplotting.py
Tails and quantiles of distributions, special functionscytepool.stats.distributions, cytepool.stats.specialmpmath 1.3.0exact (1e-15 to 1e-12)distributions.py
LOWESS, natural spline baseslowess, natural_spline_basisR 4.4.3close for LOWESS; exact for spline basessmoothing.py

Not implemented yet

These methods come up in the questions that studies ask (Overview) and have no CytePool function yet: