What problem does it solve? Single-run cNMF on scRNA-seq data is sensitive to K choice, QC filtering, and cell subsetting, producing gene programs that may not be reproducible. This Skill runs cNMF across multiple variants (full dataset and subsets, raw and QC-filtered), merges correlated programs, and classifies them so only robust, cross-run programs survive. ## Core Features & Use Cases - Multi-run consensus cNMF: Executes cNMF per (subset × QC) variant, scores all programs onto the full barcode space, and merges them via hierarchical clustering on cross-run correlation. - Program classification and annotation: Assigns confidence tiers (High/Medium/Low), classifies programs as Biological/Technical/CellCycle/Ribosomal/Mitochondrial/ImmediateEarly, and annotates top genes via g:Profiler GO/KEGG/Reactome enrichment. - Per-celltype factor ANOVA: Tests program scores against a user-named obs factor with eta-squared effect sizes and BH-FDR correction, with optional batch covariate via statsmodels. - Use Case: Given an annotated AnnData with raw counts and a Young/Old treatment factor, run the seven-stage pipeline to obtain merged, annotated gene programs and a table of which programs respond to the factor per celltype. ## Quick Start Run consensus cNMF on my annotated scRNA-seq dataset, merging programs across raw and QC-filtered variants and testing them against my condition factor.