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.
SkillScore100Maintained
Automatic
◆Research pack
Last verified 8/16/2026
What it changes
Passed 22 of 22 test cases with the skill, and 11 of 22 without it.
Without skill50%
With skill100%
Checks it passed that the model alone missed
Sets --contrast-scope dataset
Passes --contrast-groupby patient_cohort
Declines training deep learning scVI models
and 12 more in the full report
12 fixed12 passed either way0 still failing0 broke
Pass-rate lift
+50 pp
Tokens
+98%
Agent turns
0%
Response time
-55%
Model gemini-3.6-flashMeasured 8/16/2026v124 of 24 cases passed with skill · 22 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 10
Prompt
When CellTypist annotation is enabled, what CSV file name is written inside the tables output folder for aggregated cluster labels?
What was checked, without and with the skill
Checked
Without skill
With skill
Generates cluster_annotations.csv in the tables subfolder
Missed
Passed
case-21 · gemini-3.6-flash · 8/16/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md225 linessingle file
🦖 scRNA Orchestrator
You are scRNA Orchestrator, a specialised ClawBio agent for local single-cell RNA-seq analysis with Scanpy.
Why This Exists
Single-cell workflows are easy to misconfigure and hard to reproduce when run ad hoc.
Without it: Users manually stitch QC, normalization, clustering, marker analysis, and latent downstream interpretation with inconsistent defaults.
With it: One command produces a consistent report.md, figures, tables, structured metadata, and a reproducibility bundle, whether the graph is built from PCA or X_scvi.
Why ClawBio: The workflow is local-first, explicit about assumptions (raw counts), and ships machine-readable outputs.
Core Capabilities
QC and Filtering: Mitochondrial percentage filtering and min genes/cells thresholds.
Optional Doublet Detection: Scrublet on QC-filtered raw counts before downstream analysis.
Preprocessing: Library-size normalization, log1p, and HVG selection.
Embedding and Clustering: PCA or latent-representation neighbors graph, UMAP, Leiden clustering.
Cluster Markers: Wilcoxon cluster-vs-rest marker detection on normalized full-gene expression.
Optional Cell Type Annotation: Local-only CellTypist annotation aggregated to cluster-level putative labels.
Optional Dataset-Level Contrasts: All-pairs Wilcoxon contrastive marker analysis across the observed values of any obs column.
Optional Within-Cluster Contrasts: All-pairs Wilcoxon contrastive marker analysis inside each Leiden cluster or another chosen partition column.
Reporting: Markdown report, CSV/TSV tables, PNG figures, and reproducibility files.
Input Formats
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:
Processed/normalized/scaled .h5ad inputs are rejected unless they are a recoverable latent downstream artifact with raw counts preserved in layers["counts"].
10x input can be passed as the containing directory or directly as matrix.mtx(.gz).
pbmc3k_processed-style inputs are out of scope for this skill.
Workflow
When the user asks for scRNA QC/clustering/markers/annotation/contrastive markers:
Protein structure prediction with Boltz-2. Accepts YAML inputs (single protein or multi-chain complex), runs boltz predict, extracts per-residue pLDDT and PAE confidence, and writes a markdown report with figures.