delnx.tl.nb_fitΒΆ
- delnx.tl.nb_fit(adata, condition_key=None, formula=None, design=None, design_column_names=None, reference=None, covariate_keys=None, size_factors='normed_sum', layer=None, overdispersion=True, batch_size=512, maxiter=100, verbose=True, overdispersion_shrinkage=True, do_cox_reid_adjustment=True)[source]ΒΆ
Fit Gamma-Poisson (negative binomial) GLMs to count data.
This implements the glmGamPoi approach for fast and accurate differential expression analysis using GPU-accelerated Newton-Raphson with quasi-likelihood dispersion shrinkage.
- Parameters:
adata (
AnnData) β AnnData object containing count data.condition_key (
str|None(default:None)) β Column inadata.obsfor condition labels. Creates a design matrix with intercept + condition indicators. Mutually exclusive withformula.formula (
str|None(default:None)) β R-style formula for the design matrix (e.g.,"~ treatment + batch"or"~ treatment * batch"). Parsed by patsy. Mutually exclusive withcondition_key.design (
ndarray|None(default:None)) β Custom design matrix. If provided, overridescondition_key,formula,reference, andcovariate_keys. Shape should be (n_samples, n_coefficients).design_column_names (
list[str] |None(default:None)) β Column names for a customdesignmatrix. Enables string-basedcontrastinnb_test(). If None with customdesign, generic namescoef_0,coef_1, β¦ are used.reference (
str|None(default:None)) β Reference level for the condition. This level becomes the intercept. If None, the alphabetically first level is used.covariate_keys (
list[str] |None(default:None)) β Columns inadata.obsto include as covariates in the design matrix. Only used withcondition_key(include covariates informuladirectly).size_factors (
str|ndarray|None(default:'normed_sum')) βSize factors for normalization. Can be:
"normed_sum": Compute using normalized sum method"poscounts": DESeq2-style positive counts methodnp.ndarray: Pre-computed size factors
None: No size factor normalization (all 1s)
layer (
str|None(default:None)) β Layer inadata.layerscontaining counts. If None, usesadata.X.overdispersion (
bool(default:True)) β Whether to estimate overdispersion. If False, uses Poisson (disp=0).batch_size (
int(default:512)) β Number of genes to process in each batch.maxiter (
int(default:100)) β Maximum iterations for Newton-Raphson.verbose (
bool(default:True)) β Whether to show progress.overdispersion_shrinkage (
bool(default:True)) β Whether to apply quasi-likelihood shrinkage to dispersions.do_cox_reid_adjustment (
bool(default:True)) β Whether to apply Cox-Reid adjustment to dispersion MLE.
- Return type:
- Returns:
NBFitResult Fitted model results containing coefficients, dispersions, and fitted values.
Examples
Basic usage with condition comparison:
>>> import delnx as dx >>> fit = dx.tl.nb_fit(adata, condition_key="treatment") >>> results = dx.tl.nb_test(adata, fit, contrast="treatment[T.drugA]")
With reference level and covariates:
>>> fit = dx.tl.nb_fit(adata, condition_key="treatment", reference="control", ... covariate_keys=["batch", "sex"])
Formula-based design with interactions:
>>> fit = dx.tl.nb_fit(adata, formula="~ treatment * batch") >>> results = dx.tl.nb_test(adata, fit, contrast="treatment[T.drugA]:batch[T.batch2]")
Continuous covariate:
>>> fit = dx.tl.nb_fit(adata, formula="~ age + sex") >>> results = dx.tl.nb_test(adata, fit, contrast="age")