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
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.
About
Reviews
Write a reviewNo 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.
More from HERRY423/BioNexus
- 0.616score
instrument-data-to-allotrope
HERRY423
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV using native allotropy or…
SkillBFreshness: B★ 31Claude Code +9 - 0.616score
spatial-transcriptomics
HERRY423
squidpy spatial gold chain on SpatialData .zarr or AnnData .h5ad with obsm['spatial'].
SkillBFreshness: B★ 31Claude Code +9 - 0.613score
scvi-tools
HERRY423
Train official scvi-tools models (scVI/scANVI/totalVI/PeakVI/MultiVI/veloVI) on raw counts after the scRNA gold chain.
SkillBFreshness: B★ 31Claude Code +9 - 0.613score
external-evidence-audit
HERRY423
Audit completed results from literature, database, analysis, sequence, structure, or slide capabilities, then optionally assemble an explicitly adjudicated…
SkillBFreshness: B★ 31Claude Code +9 - 0.613score
nextflow-development
HERRY423
Prepare nf-core samplesheets, cluster nextflow.config, and write launch artifacts.
SkillBFreshness: B★ 31Claude Code +9 - 0.608score
start
HERRY423
Orient a session on this plugin.
SkillBFreshness: B★ 31Claude Code +9 - 0.608score
provenance-and-audit
HERRY423
SHA-256 hashes, environment snapshot, and activity-aware Methods text.
SkillBFreshness: B★ 31Claude Code +9 - 0.608score
single-cell-de-audit
HERRY423
Review completed multi-donor single-cell differential expression before submission.
SkillBFreshness: B★ 31Claude Code +9
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
- Repository
- github.com/HERRY423/BioNexus
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from HERRY423
- 0.616score
instrument-data-to-allotrope
HERRY423
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV using native allotropy or…
SkillBFreshness: B★ 31Claude Code +9 - 0.616score
spatial-transcriptomics
HERRY423
squidpy spatial gold chain on SpatialData .zarr or AnnData .h5ad with obsm['spatial'].
SkillBFreshness: B★ 31Claude Code +9 - 0.613score
external-evidence-audit
HERRY423
Audit completed results from literature, database, analysis, sequence, structure, or slide capabilities, then optionally assemble an explicitly adjudicated…
SkillBFreshness: B★ 31Claude Code +9 - 0.613score
nextflow-development
HERRY423
Prepare nf-core samplesheets, cluster nextflow.config, and write launch artifacts.
SkillBFreshness: B★ 31Claude Code +9 - 0.613score
scvi-tools
HERRY423
Train official scvi-tools models (scVI/scANVI/totalVI/PeakVI/MultiVI/veloVI) on raw counts after the scRNA gold chain.
SkillBFreshness: B★ 31Claude Code +9 - 0.608score
start
HERRY423
Orient a session on this plugin.
SkillBFreshness: B★ 31Claude Code +9
Cite this page
single-cell-rna-qc skill. Agent Mart. https://agentmart.dev/skills/herry423-single-cell-rna-qc (last updated 2026-10-24)