Skip to content
Agentmart
Submit a tool

single-cell-rna-qc

scverse scRNA gold chain on .h5ad/.h5 — inspect, convert, MAD QC, optional scanpy.pp.scrublet, preprocess, Harmony/ComBat, PCA-UMAP-Leiden, Wilcoxon markers…

Skill by HERRY423

IndexedApache-2.0★ 31
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/herry423-single-cell-rna-qc

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

scverse scRNA gold chain on .h5ad/.h5 — inspect, convert, MAD QC, optional scanpy.pp.scrublet, preprocess, Harmony/ComBat, PCA-UMAP-Leiden, Wilcoxon markers, subset, pseudobulk, pydeseq2, stable plots. Use when the user has scRNA-seq counts. Does not assign cell-type labels. rank_genes_groups is not condition DE. Do not call local doublet/ambient helpers SoupX, CellBender, or scDblFinder.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/single-cell-rna-qc

What's inside

Skill name
single-cell-rna-qc
Description
scverse scRNA gold chain on .h5ad/.h5 — inspect, convert, MAD QC, optional scanpy.pp.scrublet, preprocess, Harmony/ComBat, PCA-UMAP-Leiden, Wilcoxon markers, subset, pseudobulk, pydeseq2, stable plots. Use when the user has scRNA-seq counts. Does not assign cell-type labels. rank_genes_groups is not condition DE. Do not call local doublet/ambient helpers SoupX, CellBender, or scDblFinder.
License
Apache-2.0
Instructions
112 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (24)

  • LICENSE.txt
  • SKILL.md
  • gold_chain.example.json · configs/
  • r_interop.md · references/
  • scverse_qc_guidelines.md · references/
  • _common.py · scripts/
  • ambient_rna.py · scripts/
  • doublet_detection.py · scripts/
  • qc_analysis.py · scripts/
  • qc_core.py · scripts/
  • qc_plotting.py · scripts/
  • scrna_cluster_stability.py · scripts/
  • scrna_convert.py · scripts/
  • scrna_deseq.py · scripts/
  • scrna_inspect.py · scripts/
  • scrna_integrate.py · scripts/
  • scrna_markers.py · scripts/
  • scrna_pipeline.py · scripts/
  • scrna_plot.py · scripts/
  • scrna_preprocess.py · scripts/
  • scrna_pseudobulk.py · scripts/
  • scrna_reduce_cluster.py · scripts/
  • scrna_scrublet.py · scripts/
  • scrna_subset.py · scripts/

SKILL.md (first lines)

# Single-Cell RNA-seq Gold Chain (`single-cell-rna-qc`)

> [!NOTE]
> **Gold Reference Plugin**: This skill serves as the canonical reference implementation for all BioNexus analytical tools. All contributors must follow this architecture.

The `single-cell-rna-qc` skill implements the official [scverse](https://scverse.org/) community standard workflow for single-cell RNA sequencing data. It strictly enforces the distinction between **Execution Fidelity** and **Scientific Evidence Quality**, providing multi-dimensional `EvidenceCard` validation, input distribution audits, and reproducible provenance sidecars.

---

## ⚡ Canonical Workflow (Command-Line Interface)

The canonical execution path is the **modular scverse gold chain**:

```bash
# 0. Verify environment backend (scanpy, anndata)
python scripts/doctor.py --require-scverse

# 1. Inspect data semantics, sparsity, library size, and log-transformation
python skills/single-cell-rna-qc/scripts/scrna_inspect.py raw.h5ad

# 2. Run the complete canonical pipeline (MAD QC -> norm/log1p -> HVG -> PCA -> Leiden -> markers)
python skills/single-cell-rna-qc/scripts/scrna_pipeline.py raw.h5ad -o clustered.h5ad

# 3. Official doublet detection on raw count layer (scanpy.pp.scrublet)
python skills/single-cell-rna-qc/scripts/scrna_scrublet.py raw.h5ad -o raw_scrub.h5ad

# 4. Pseudobulk aggregation by biological replicate × condition
python skills/single-cell-rna-qc/scripts/scrna_pseudobulk.py clustered.h5ad -o pb.csv --by sample condition --design pb_design.tsv

# 5. Condition Differential Expression (Wald test via PyDESeq2)
python skills/single-cell-rna-qc/scripts/scrna_deseq.py pb.csv --design pb_design.tsv --condition condition --reference control --contrast-level treated -o de.csv

# 6. Generate standardized exploratory figures
python skills/single-cell-rna-qc/scripts/scrna_plot.py clustered.h5ad -o figures/ --color leiden

# 7. Multi-donor DE Evidence Audit (before lab meetings, manuscript submission, or sharing)
bionexus audit-de clustered.h5ad --de-table de.csv -o audit_report.md
```

---

## 🧬 Canonical Scripts & Architecture Matrix

| Step | Script | Canonical Backend | Evidence Grade | Output Artifacts |
| :--- | :--- | :--- | :---: | :--- |
| **Inspect** | `scrna_inspect.py` | `anndata` + `bionexus.integrity` | `A` | JSON summary (sparsity, log-scale check) |
| **Convert** | `scrna_convert.py` | `scanpy.read_*` | `A` | Standardized `.h5ad` |
| **QC (MAD)** | `qc_core.py` | `scanpy` / Median Absolute Deviation | `A` | Filtered `.h5ad` + QC metrics |
| **Doublets** | `scrna_scrublet.py` | **`scanpy.pp.scrublet` only** | `A` | `.h5ad` with doublet scores (Refuse if missing) |
| **Preprocess** | `scrna_preprocess.py` | `scanpy.pp.normalize_total`, `log1p`, `highly_variable_genes` | `A` | Preprocessed `.h5ad` |
| **Integrate** | `scrna_integrate.py` | `harmonypy` / `scanpy.pp.combat` | `A` | Batch-corrected PCA space |
| **Cluster** | `scrna_reduce_cluster.py` | `scanpy.tl.pca`, `neighbors`, `umap`, `leiden` | `A` | Clustered `.h5ad` (Numeric labels only) |
| **Markers** | `scrna_markers.py` | `scanpy.tl.rank_genes_groups` (Wilcoxon) | `A` | Cluster marker gene rankings table |
| **Plot** | `scrna_plot.py` | `scanpy.pl` / `matplotlib` | `A` | `umap_leiden.png`, `dotplot_markers.png`, `violin_qc.png` |
| **Subset** | `scrna_subset.py` | `anndata` slice & stale embedding drop | `A` | Subsampled `.h5ad` |
| **Pseudobulk** | `scrna_pseudobulk.py` | Sum raw counts over replicate groups | `A` | Pseudobulk count matrix `pb.csv` + `pb_design.tsv` |
| **Condition DE** | `scrna_deseq.py` | **`pydeseq2` (Wald test)** | `A` | Differential expression table `de.csv` (Refuse if missing) |

---

## 🛡️ Scientific Honesty Invariants & Non-Negotiables

1. **Numeric Cluster Labels Only**:
   - The pipeline writes numeric cluster identities (`leiden: "0"`, `"1"`, `"2"`).
   - **Strictly Forbidden:** Guessing or hallucinating biological cell-type labels (e.g. "T-cell", "Macrophage") without validated reference annotations or orthogonal experimental ground truth.
2. **Marker Genes vs Condition DE**:
   - Exploratory marker gene identification (`rank_genes_groups`) discovers cluster-specific expression within a single dataset.
   - **Strictly Forbidden:** Publishing exploratory marker p-values as experimental condition treatment effect p-values. Condition DE requires pseudobulk replicate aggregation and `pydeseq2`.
3. **No Masquerading Heuristics**:
   - Local fallback scripts (`ambient_rna.py`, `doublet_detection.py`, `qc_analysis.py`) are legacy Grade C heuristics.
   - **Strictly Forbidden:** Claiming or labeling local heuristics as official community algorithms like SoupX, CellBender, or scDblFinder.
4. **Deterministic Refusal**:
   - If a gold-standard backend (`scanpy`, `pydeseq2`) is missing, the tool must cleanly return `refuse()` with `EvidenceGrade.ABSTAIN`.

---

## 📊 Scientific EvidenceCard Contract

Every analytical run produces a structured `EvidenceCard` evaluating the 7 quality dimensions:

```json
{
  "method": "scanpy_gold_chain",
  "backend": "scanpy",
  "evidence_grade": "A",
  "conclusion_status": "SUPPORTED",
  "evidence_card": {
    "execution_fidelity": "A",
    "input_integrity": "A",
    "assumption_validity": "A",
    "statistical_support": "A",
    "parameter_robustness": "B",
    "cross_method_concordance": "UNTESTED",
    "external_validation": "UNTESTED"
  },
  "limitations": [
    "This plugin does not assign cell-type identity. Leiden/KMeans labels are numeric only.",
    "Research-use only. Not a clinical diagnostic, not CLIA/CAP validated, and not an authorized medical device."
  ]
}
```

---

## ⚠️ Deprecated / Legacy Scripts (Grade C Heuristics)

The following scripts are maintained solely for backward compatibility. They are not part of the default canonical path:
- `qc_analysis.py` (Replaced by `scrna_pipeline.py`)
- `doublet_detection.py` (Replaced by `scrna_scrublet.py`)
- `ambient_rna.py` (Local NNLS heuristic; not SoupX/CellBender)

From HERRY423/BioNexus, Apache-2.0.

Signals

Stars
31
Forks
4
Open issues
9
Last commit (this folder)
Sep 11, 2026 (1 month ago)
Last release
Aug 18, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from HERRY423

Cite this page

single-cell-rna-qc skill. Agent Mart. https://agentmart.dev/skills/herry423-single-cell-rna-qc (last updated 2026-10-24)