muon-multiomics-singlecell
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.
npx skills add BioTender-max/awesome-bio-agent-skills --skill muon-multiomics-singlecell --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Orchestrates multi-modal single-cell analysis with MuData containers, enabling joint processing of RNA, ATAC, and other modalities. It includes per-modality preprocessing (RNA via scanpy workflow, ATAC via TF-IDF and LSI), construction of a Weighted Nearest Neighbor (WNN) graph across modalities, and downstream steps for UMAP embedding and Leiden clustering based on the integrated graph. It also covers cross-modal analyses (peak-to-gene linking, MOFA+ factor analysis) and visualization utilities for modality-aware plots.
How it works
- Uses MuData to store multiple AnnData modalities (e.g., RNA and ATAC) with shared obs/var axes.
- RNA preprocessing: quality control, normalization, log-transform, HVG selection, PCA; updates the RNA modality within MuData.
- ATAC preprocessing: QC, TF-IDF normalization, LSI dimensionality reduction; updates the ATAC modality within MuData.
- Per-modality neighbor graphs: computes modality-specific neighbors (optional) and then builds a joint WNN graph using both RNA and ATAC embeddings.
- Joint embedding and clustering: runs UMAP based on the WNN graph and clusters with Leiden using the WNN neighbors.
- Visualization: supports modality-aware plotting functions for joint embeddings and per-modality colorings.
- Cross-modal analysis: provides hooks for peak-to-gene annotation, differential peak analysis, and MOFA+ factor analysis, storing results in MuData structures.
When to use it
- Analyzing multi-omics data where RNA and ATAC (or other modalities) are measured in the same cells (e.g., 10x Multiome, CITE-seq).
- Building a joint embedding that integrates signals across modalities via WNN.
- Preprocessing ATAC with TF-IDF and LSI, or normalizing surface protein data with CLR.
- Performing MOFA+ factor analysis across modalities and exploring cross-modal features.
What it can touch
- MuData container holding modalities (e.g., RNA, ATAC) with shared obs; updates to mdata.mod["rna"] and mdata.mod["atac"].
- Per-modality data structures and embeddings (e.g., X_pca for RNA, X_lsi for ATAC) used in neighbor computations and UMAP.
- Visualization and clustering results stored in the MuData object (e.g., obs via Leiden clusters).
Caveats
- Requires Python packages muon>=0.1.6, scanpy>=1.10, anndata>=0.10, numpy, scipy, pandas, matplotlib, leidenalg; optional mofapy2 for MOFA+.
- MOFA+ analysis requires mofapy2; otherwise MOFA steps are skipped with an informative message.
- TF-IDF and LSI for ATAC focus on coordinated cross-modal analysis; first LSI component may reflect sequencing depth and is typically excluded in downstream use.
# 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 - Preprocessing ATAC-seq modalities (TF-IDF normalization, LSI dimensionality reduction) - Normalizing surface protein data with centered log-ratio (CLR) normalization - Performing cross-modal feature linkage (a
- Overview
- When to Use
- Prerequisites
- Quick Start
- Core API
- Module 1: MuData Creation and I/O
- Module 2: RNA Modality Preprocessing
- Module 3: ATAC Modality Preprocessing
- Module 4: WNN Graph and Joint Embedding
- Module 5: Visualization
- Module 6: Cross-Modal Analysis
- Common Workflows
- Workflow 1: Full 10x Multiome (RNA + ATAC) Joint WNN Clustering
- Workflow 2: CITE-seq (RNA + Surface Protein) Analysis
pip install "muon[all]" "scanpy[leiden]" anndata pip install mofapy2
What does the muon-multiomics-singlecell skill do?
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.
How do I install it?
Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill muon-multiomics-singlecell --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From BioTender-max/awesome-bio-agent-skills, a repository with 144 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
