Multi-modal single-cell analysis with muon/MuData. Joint RNA+ATAC (10x Multiome), CITE-seq (RNA+protein), other multi-omics. MuData holds per-modality AnnData with shared obs. WNN joint embedding, per-modality preprocessing, MOFA factor analysis. Use scanpy-scrna-seq for single-modality RNA; use muon when combining 2+ omics from the same cells.
SkillScore86Maintained
Automatic
◆Research pack
Last verified 9/3/2026
What it changes
Passed 19 of 22 test cases with the skill, and 9 of 22 without it.
Without skill41%
With skill86%
Checks it passed that the model alone missed
The reloaded file is read back into memory using mu.read().
Raw transcriptomic counts are saved to mdata["rna"].layers["counts"].
Per-cell modality weights are retrieved from mdata.obsm['wnn_weights'].
and 14 more in the full report
11 fixed8 passed either way2 still failing1 broke
Pass-rate lift
+45 pp
Tokens
+277%
Agent turns
0%
Response time
-33%
Model gemini-3.6-flashMeasured 9/3/2026v2 · latest is v319 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
See it in action
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 11
Prompt
My single-cell ATAC peak count matrix inside `mdata['atac'].X` is currently stored as a dense NumPy array, and running TF-IDF normalization throws a sparse matrix type error. How should the ATAC modality matrix be formatted before invoking TF-IDF normalization?
What was checked, without and with the skill
Checked
Without skill
With skill
The script converts mdata['atac'].X to a compressed sparse row matrix using scipy.sparse.csr_matrix.
Passed
Passed
Matrix elements are explicitly converted to floating-point representation prior to normalization.
Missed
Passed
case-10 · gemini-3.6-flash · 9/3/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md700 linessingle file
muon — Multi-Modal Single-Cell Analysis
Overview
muon is a Python framework for multi-modal single-cell data analysis that extends the AnnData ecosystem. Its core data structure, MuData, holds multiple AnnData objects (one per modality: RNA, ATAC, protein, etc.) with shared observation and variable axes, enabling coordinated operations across all modalities. muon provides modality-specific preprocessing routines (TF-IDF and LSI for ATAC, CLR normalization for surface proteins), Weighted Nearest Neighbor (WNN) graph construction for joint dimensionality reduction, and cross-modal analysis tools. It integrates directly with scanpy, scvi-tools, and MOFA+ for a complete multi-omics single-cell workflow.
When to Use
Analyzing 10x Genomics Multiome data (simultaneous RNA + ATAC from the same nuclei)
Processing CITE-seq experiments (RNA + surface protein from the same cells)
Building joint UMAP embeddings that integrate signals from two or more modalities via WNN