raisinfit¶
Python port of the RAISIN hierarchical generalized linear model for differential expression. raisinfit estimates mean expression and both cell-level and sample-level variance components given a sample × cell-type design, optionally correcting for batch with ComBat before fitting. The returned fit object is consumed by run_pairwise_tests, which runs the actual pairwise contrasts and emits volcano plots. Supports unpaired, paired, continuous, and custom designs.
Source: sample_clustering/RAISIN.py:202
Signature¶
def raisinfit(
adata,
sample_col,
testtype="unpaired",
group_col=None,
individual_col=None,
batch_col=None,
sample_to_clade=None,
custom_design=None,
intercept=True,
filtergene=False,
filtergenequantile=0.5,
n_jobs=None,
verbose=True,
seed=42,
)
Parameters¶
| Name | Type | Default | Description |
|---|---|---|---|
adata |
AnnData | — | Single-cell or pseudobulk AnnData. |
sample_col |
str | — | Sample identifier column. |
testtype |
str | "unpaired" |
One of "unpaired", "paired", "continuous", "custom". |
group_col |
str, optional | None |
Column with grouping/feature variable. Takes precedence over sample_to_clade when present. |
individual_col |
str, optional | None |
Subject column for paired designs. |
batch_col |
str, optional | None |
Triggers ComBat before fitting. |
sample_to_clade |
dict, optional | None |
{sample_id: group_label} — used when group_col is absent. |
custom_design |
dict, optional | None |
Required when testtype="custom"; keys "X", "Z", "group". |
intercept |
bool | True |
Include intercept in the fixed-effect design. |
filtergene |
bool | False |
Drop lowly expressed genes before fitting. |
filtergenequantile |
float | 0.5 |
Quantile threshold used when filtergene=True. |
n_jobs |
int, optional | None |
CPU cores for parallel fitting (default: all cores). |
verbose |
bool | True |
Print progress. |
seed |
int | 42 |
Random seed for reproducible fitting. |
Returns¶
dict — the fit object with keys:
| Key | Meaning |
|---|---|
"mean" |
gene × sample expression mean matrix |
"sigma2" |
gene × group between-sample variance |
"omega2" |
gene × sample within-sample variance |
"X" |
fixed-effect design matrix |
"Z" |
random-effect design matrix |
"group" |
group assignment per sample |
"failgroup" |
groups where variance estimation failed |
"sample_names" |
ordered sample identifiers |
"batch_corrected" |
whether ComBat was applied |
Usage¶
from sampledisco.sample_clustering.RAISIN import raisinfit
from sampledisco.sample_clustering.RAISIN_TEST import run_pairwise_tests
fit = raisinfit(
adata=adata_cell,
sample_col="sample",
sample_to_clade=expr_clusters,
testtype="unpaired",
batch_col=None,
intercept=True,
n_jobs=8,
)
run_pairwise_tests(
fit=fit,
output_dir="sampledisco_demo_output/rna/raisin_results_expression",
fdr_threshold=0.05,
)