🌸 delnx¢

PyPI version Tests Codecov pre-commit.ci status Documentation Status

delnx (/dΙͺˈlΙ’nΙͺks/ | "de-lo-nix") is a python package for differential expression analysis of (single-cell) genomics data. It enables scalable analyses of atlas-level datasets through GPU-accelerated regression models and statistical tests implemented in JAX.

πŸš€ InstallationΒΆ

PyPIΒΆ

pip install delnx

Development versionΒΆ

pip install git+https://github.com/joschif/delnx.git@main

⚑ Quickstart¢

Negative binomial DE (count data):

import delnx as dx

# Fit negative binomial GLMs with quasi-likelihood dispersion shrinkage
fit = dx.tl.nb_fit(adata, condition_key="treatment", reference="control")

# Test for differential expression
results = dx.tl.nb_test(adata, fit, contrast="treatment[T.drugA]")

General-purpose DE (log-normalized / binary data):

# Logistic regression with likelihood ratio test
results = dx.tl.de(
    adata,
    condition_key="treatment",
    reference="control",
    contrast="treatment[T.drugA]",
)

# Formula-based design with covariates
results = dx.tl.de(
    adata,
    formula="~ treatment + batch",
    contrast="treatment[T.drugA]",
    method="anova",
)

πŸ’Ž FeaturesΒΆ

  • Negative binomial GLMs: GPU-accelerated glmGamPoi-style fitting with quasi-likelihood dispersion shrinkage for count data.

  • General-purpose DE: Logistic regression, ANOVA, and binomial GLM for log-normalized, scaled, or binary data.

  • Formula interface: R-style formulas (~ treatment + batch) parsed by patsy, with treatment coding and reference levels.

  • Rank-based markers: Fast AUROC-based one-vs-all marker detection with Numba-optimized ranking.

  • Pseudobulking: Perform DE on large multi-sample datasets by using pseudobulk aggregation.

  • Effect sizes: Log2 fold change and AUROC computation for pairwise condition comparisons.

  • GPU acceleration: Core methods are implemented in JAX, enabling GPU acceleration for scalable DE analysis on large datasets.