scrna-orchestrator
Local Scanpy pipeline for single-cell RNA-seq QC, clustering, marker discovery, and optional two-group differential expression from raw-count .h5ad.
- License 许可
- MIT
- 最近更新
- 2026-03-12
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- scrna-orchestrator
- tags
- [ "scrna", "single-cell", "scanpy", "clustering", "differential-expression" ]
- author
- Yonghao Zhao
- license
- MIT
- version
- 0.1.0
- metadata
- { "openclaw": { "os": [ "macos", "linux" ], "emoji": "?", "always": false, "install": [ { "bins": [], "kind": "uv", "package": "scanpy" }, { "bins": [], "kind": "uv", "package": "anndata" } ], "homepage": "https://github.com/ClawBio/ClawBio", "requires": { "env": [], "bins": [ "python3" ], "config": [] }, "trigger_keywords": [ "scrna", "single-cell", "scanpy", "h5ad", "leiden", "marker genes", "differential expression" ] } }
- description
- Local Scanpy pipeline for single-cell RNA-seq QC, clustering, marker discovery, and optional two-group differential expression from raw-count .h5ad.
03 SKILL.md 正文
? 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, and marker/DE steps with inconsistent defaults.
- With it: One command produces a consistent
report.md, figures, tables, and reproducibility bundle. - 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.
- Preprocessing: Library-size normalization,
log1p, and HVG selection. - Embedding and Clustering: PCA, neighbors graph, UMAP, Leiden clustering.
- Cluster Markers: Wilcoxon cluster-vs-rest marker detection.
- Optional Group DE (v1): Two-group Wilcoxon DE on any
obscolumn. - Optional Volcano Plot: Generate DE volcano plot with
--de-volcano. - Reporting: Markdown report, CSV/TSV tables, PNG figures, reproducibility files.
Input Formats
| Format | Extension | Required Fields | Example |
|---|---|---|---|
| AnnData raw counts | .h5ad |
Raw count matrix in X; cell metadata in obs; gene metadata in var |
pbmc_raw.h5ad |
| Demo mode | n/a | none | python clawbio.py run scrna --demo |
Notes:
- Processed/normalized/scaled
.h5adinputs are rejected with an actionable error. pbmc3k_processed-style inputs are out of scope for this skill.
Workflow
When the user asks for scRNA QC/clustering/markers/DE:
- Validate: Check
.h5adinput (or--demo), and reject processed-like matrices. - Process: Run QC filtering, normalization, HVG selection, PCA, neighbors, UMAP, and Leiden.
- Analyze:
- Always run cluster marker analysis (
leiden, Wilcoxon). - Optionally run DE if
--de-groupby --de-group1 --de-group2are all provided.
- Generate: Write
report.md,result.json, tables, figures, and reproducibility bundle.
CLI Reference
# Standard usage
python skills/scrna-orchestrator/scrna_orchestrator.py \
--input <input.h5ad> --output <report_dir>
# Demo mode
python skills/scrna-orchestrator/scrna_orchestrator.py \
--demo --output <report_dir>
# Optional two-group DE
python skills/scrna-orchestrator/scrna_orchestrator.py \
--input <input.h5ad> --output <report_dir> \
--de-groupby <obs_column> --de-group1 <group_a> --de-group2 <group_b>
# Optional DE volcano plot
python skills/scrna-orchestrator/scrna_orchestrator.py \
--input <input.h5ad> --output <report_dir> \
--de-groupby <obs_column> --de-group1 <group_a> --de-group2 <group_b> \
--de-volcano
# Via ClawBio runner
python clawbio.py run scrna --input <input.h5ad> --output <report_dir>
python clawbio.py run scrna --demo
Demo
python clawbio.py run scrna --demo
Expected output:
report.mdwith QC, clustering, and marker summaries- figure files (
qc_violin.png,umap_leiden.png,marker_dotplot.png) - optional DE figure (
de_volcano.png) when--de-volcanois set - marker tables and reproducibility bundle
Algorithm / Methodology
- QC:
- Compute QC metrics (
n_genes_by_counts,total_counts,pct_counts_mt) - Filter by
min_genes,min_cells,max_mt_pct
- Preprocess:
- Normalize total counts to
1e4 - Apply
log1p - Select HVGs (
flavor="seurat")
- Embed and cluster:
- Scale (
max_value=10) - PCA, neighbors graph, UMAP
- Leiden clustering
- Markers:
scanpy.tl.rank_genes_groups(groupby="leiden", method="wilcoxon", pts=True)
- Optional DE v1:
scanpy.tl.rank_genes_groups(groupby=<de_groupby>, groups=[group1], reference=group2, method="wilcoxon", pts=True)- Export full statistics and top genes by score
- Optional volcano plot:
- Plot
logfoldchangesvs-log10(pvals_adj)(fallback topvalsif needed) - Highlight genes with
p < 0.05and|log2FC| >= 1
Example Queries
- "Run standard QC and clustering on my h5ad file"
- "Find marker genes for each cluster"
- "Generate a UMAP coloured by cluster"
- "Run differential expression for treated vs control"
Output Structure
output_directory/
├── report.md
├── result.json
├── figures/
│ ├── qc_violin.png
│ ├── umap_leiden.png
│ ├── marker_dotplot.png
│ └── de_volcano.png # only when DE volcano is enabled
├── tables/
│ ├── cluster_summary.csv
│ ├── markers_top.csv
│ ├── markers_top.tsv
│ ├── de_full.csv # only when DE is enabled
│ └── de_top.csv # only when DE is enabled
└── reproducibility/
├── commands.sh
├── environment.yml
└── checksums.sha256
Dependencies
Required:
scanpy>= 1.10anndata>= 0.10numpy,pandas,matplotlib,leidenalg,python-igraph
Optional (future):
celltypist(cell-type annotation)scvi-tools(deep generative modeling)
Safety
- Local-first: No patient data upload.
- Disclaimer: Reports include the ClawBio medical disclaimer.
- Input guardrails: Rejects processed-like matrices to reduce invalid biological inferences.
- Reproducibility: Writes command/environment/checksum bundle.
Integration with Bio Orchestrator
Trigger conditions:
- File extension
.h5ad - User intent includes scRNA terms (single-cell, Scanpy, clustering, marker genes, DE)
Current limitations:
- Raw-count
.h5adonly - Seurat input/output is not implemented in Python path
- Multi-group pairwise DE, within-cluster DE, and automated annotation are future work
Citations
- Scanpy documentation — analysis API and methods.
- AnnData documentation — data model.
- Leiden algorithm paper — community detection.
04 同仓库更多 Skills
zarr-python
Chunked N-D arrays for cloud storage. Compressed arrays, parallel I/O, S3/GCS integration, NumPy/Dask/Xarray compatible, for large-scale scientific computing pipelines.
vaex
Use this skill for processing and analyzing large tabular datasets (billions of rows) that exceed available RAM. Vaex excels at out-of-core DataFrame operations, lazy evaluation, fast aggregations, efficient visualization of big data, and machine learning on large datasets. Apply when users need to work with large CSV/HDF5/Arrow/Parquet files, perform fast statistics on massive datasets, create visualizations of big data, or build ML pipelines that do not fit in memory.
torch-geometric
Graph Neural Networks (PyG). Node/graph classification, link prediction, GCN, GAT, GraphSAGE, heterogeneous graphs, molecular property prediction, for geometric deep learning.
tiledbvcf
Efficient storage and retrieval of genomic variant data using TileDB. Scalable VCF/BCF ingestion, incremental sample addition, compressed storage, parallel queries, and export capabilities for population genomics.
solublempnn
Solubility-optimized protein sequence design using SolubleMPNN. Use this skill when: (1) Designing for E. coli expression, (2) Optimizing solubility of designed proteins, (3) Reducing aggregation propensity, (4) Need high-yield expression, (5) Avoiding inclusion body formation. For standard design, use proteinmpnn. For ligand-aware design, use ligandmpnn.
scvelo
RNA velocity analysis with scVelo. Estimate cell state transitions from unspliced/spliced mRNA dynamics, infer trajectory directions, compute latent time, and identify driver genes in single-cell RNA-seq data. Complements Scanpy/scVI-tools for trajectory inference.