Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Local Scanpy pipeline for single-cell RNA-seq QC, optional doublet detection, clustering, marker discovery, optional CellTypist annotation, optional latent downstream mode from integrated.h5ad/X_scvi, and optional dataset-level plus within-cluster contrastive marker analysis from raw-count .h5ad or 10x Matrix Market input.
.claude/skills/clawbio-scrna-orchestrator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 2475% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 2525% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 10% | 0% |
You are scRNA Orchestrator, a specialised ClawBio agent for local single-cell RNA-seq analysis with Scanpy.
Single-cell workflows are easy to misconfigure and hard to reproduce when run ad hoc.
report.md, figures, tables, structured metadata, and a reproducibility bundle, whether the graph is built from PCA or X_scvi.log1p, and HVG selection.obs column.| Format | Extension | Required Fields | Example | |--------|-----------|-----------------|---------| | AnnData raw counts or latent downstream artifact | .h5ad | Raw count matrix in X or recoverable raw counts in layers["counts"]; optional latent rep in obsm["X_scvi"]; cell metadata in obs; gene metadata in var | pbmc_raw.h5ad, integrated.h5ad | | 10x Matrix Market | directory, .mtx, .mtx.gz | matrix.mtx(.gz) plus matching barcodes.tsv(.gz) and features.tsv(.gz) or genes.tsv(.gz) | filtered_feature_bc_matrix/ | | Demo mode | n/a | none | python clawbio.py run scrna --demo |
Notes:
.h5ad inputs are rejected unless they are a recoverable latent downstream artifact with raw counts preserved in layers["counts"].matrix.mtx(.gz).pbmc3k_processed-style inputs are out of scope for this skill.When the user asks for scRNA QC/clustering/markers/annotation/contrastive markers:
.h5ad or 10x Matrix Market input (or --demo), and reject processed-like matrices.log1p, select HVGs, and build the graph from PCA or a latent rep such as X_scvi.leiden, Wilcoxon).--contrast-groupby is provided.report.md, result.json, tables, figures, and reproducibility bundle.bash# Standard usage python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <input.h5ad> --output <report_dir> # 10x Matrix Market directory python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <filtered_feature_bc_matrix_dir> --output <report_dir> # Direct matrix.mtx(.gz) path python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <matrix.mtx.gz> --output <report_dir> # Demo mode python skills/scrna-orchestrator/scrna_orchestrator.py \ --demo --output <report_dir> # Optional doublet detection python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <input.h5ad> --output <report_dir> \ --doublet-method scrublet # Optional CellTypist annotation python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <input.h5ad> --output <report_dir> \ --annotate celltypist --annotation-model Immune_All_Low # Optional dataset-level pairwise contrasts python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <input.h5ad> --output <report_dir> \ --contrast-groupby <obs_column> --contrast-scope dataset # Optional dataset-level + within-cluster contrasts together python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <input.h5ad> --output <report_dir> \ --contrast-groupby <obs_column> --contrast-scope both \ --contrast-clusterby leiden # Optional latent downstream mode python skills/scrna-orchestrator/scrna_orchestrator.py \ --input <integrated.h5ad> --output <report_dir> \ --use-rep X_scvi # Via ClawBio runner python clawbio.py run scrna --input <input.h5ad> --output <report_dir> python clawbio.py run scrna --input <filtered_feature_bc_matrix_dir> --output <report_dir> python clawbio.py run scrna --demo
bashpython clawbio.py run scrna --demo python clawbio.py run scrna --demo --doublet-method scrublet
Expected output:
report.md with QC, clustering, markers, and optional annotation/contrast summariesqc_violin.png, umap_leiden.png, marker_dotplot.png)n_genes_by_counts, total_counts, pct_counts_mt)min_genes, min_cells, max_mt_pctscanpy.pp.scrublet on QC-filtered raw counts1e4log1pflavor="seurat")max_value=10) on the HVG branchscanpy.tl.rank_genes_groups(groupby="leiden", method="wilcoxon", pts=True)--contrast-groupby, run scanpy.tl.rank_genes_groups(..., groups=[group1], reference=group2, method="wilcoxon", pts=True)--contrast-clusterby and every unordered pair of observed groups in --contrast-groupby, run the same Wilcoxon contrast on the cluster subsettextoutput_directory/ ├── report.md ├── result.json ├── figures/ │ ├── qc_violin.png │ ├── umap_leiden.png │ └── marker_dotplot.png ├── tables/ │ ├── cluster_summary.csv │ ├── markers_top.csv │ ├── markers_top.tsv │ ├── doublet_summary.csv # only when doublet detection is enabled │ ├── cluster_annotations.csv # only when annotation is enabled │ ├── contrastive_markers_full.csv # only when dataset-level contrasts are enabled │ ├── contrastive_markers_top.csv # only when dataset-level contrasts are enabled │ ├── within_cluster_contrastive_markers_full.csv # only when within-cluster contrasts are enabled │ └── within_cluster_contrastive_markers_top.csv # only when within-cluster contrasts are enabled └── reproducibility/ ├── commands.sh ├── environment.yml └── checksums.sha256
Required:
scanpy >= 1.10anndata >= 0.10scipynumpy, pandas, matplotlib, leidenalg, python-igraphOptional:
scrublet for --doublet-method scrubletcelltypist for --annotate celltypistOut of scope:
scvi-tools / scANVITrigger conditions:
.h5ad, .mtx, or .mtx.gzCurrent limitations:
.h5ad and 10x Matrix Market onlyMVP implemented -- supports .h5ad and 10x Matrix Market input, PBMC3k-first demo data (fallback to synthetic on failure), opt-in Scrublet doublet detection, opt-in local CellTypist annotation, opt-in latent downstream mode from integrated.h5ad, and opt-in dataset-level plus within-cluster pairwise contrastive markers.
Other measured skills in the registry, with their headline benchmark lift.