RAISIN cluster DGE¶
Two-step cluster-level differential expression: raisinfit fits the RAISIN hierarchical GLM (mean + sample-level + cell-level variance components) given a sample-to-cluster mapping, then run_pairwise_tests iterates over every group pair and emits volcano plots, results CSVs, and cross-cluster summary figures.
Call¶
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, # from cluster(...)
testtype="unpaired",
group_col=None,
batch_col=None,
intercept=True,
filtergene=False,
n_jobs=8,
verbose=True,
)
run_pairwise_tests(
fit=fit,
output_dir="sampledisco_demo_output/rna/raisin_results_expression",
fdrmethod="fdr_bh",
n_permutations=100,
fdr_threshold=0.05,
top_n_genes=50,
make_summary_plots=True,
)
Output¶
Writes → sampledisco_demo_output/rna/raisin_results_expression/:
- One subdirectory per pair (
0_vs_1/,0_vs_2/, ...) each containingraisin_results.csv,volcano.png, and a labeled variant. summary_plots/pseudobulk_heatmap.png— top DE genes across all clusters.summary_plots/summary_dotplot.png— per-pair DE counts.summary_plots/all_results_combined.csv.
Result¶

Left: one pair's volcano. Middle: cross-cluster pseudobulk heatmap of top genes. Right: DE gene count per comparison.
See the API pages for raisinfit and run_pairwise_tests.