Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations.

Apache-2.0Auto-check passedResearch & Science

Install Single Cell Rna Qc

skills CLI
$ npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill single-cell-rna-qc -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FreedomIntelligence/OpenClaw-Medical-Skills single-cell-rna-qc --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/single-cell-rna-qc .claude/skills/single-cell-rna-qc && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
single-cell-rna-qc
GitHub stars
3.1k
Used in
2 other repos
Token cost
~2k tokens
SKILL.md length
700 words
Files
6 (incl. scripts, references)
Skills in repo
279
Repo updated
First seen
Licence
Apache-2.0

At a glance

Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations.

  • Works in 4 steps: Calculate QC metrics - Count depth, gene… → Apply MAD-based filtering - Permissive… → Filter genes - Remove genes detected in… → …
  • Users request QC analysis
  • SKILL.md covers When to Use This Skill, Approach 1: Complete QC…, Approach 2: Modular Building… and Best Practices, plus 2 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Single Cell Rna Qc is an agent skill from FreedomIntelligence/OpenClaw-Medical-Skills. Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations. Use when users request QC analysis, filtering low-quality cells, assessing data quality, or following scverse/scanpy best practices for single-cell analysis.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/scverse_qc_guidelines.md`, `scripts/qc_analysis.py` and `scripts/qc_core.py`).

It sits in Research & Science, covering Bioinformatics. It works with Scanpy. The repository describes itself as: The largest open-source medical AI skills library for OpenClaw🦞. The licence is Apache-2.0.

When your agent uses it

  • Users request QC analysis
  • Filtering low-quality cells
  • Assessing data quality
  • Following scverse/scanpy best practices for single-cell analysis

Example prompts

  • “Use the single-cell-rna-qc skill to perform quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with…”
  • “/single-cell-rna-qc”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Calculate QC metrics - Count depth, gene detection, mitochondrial/ribosomal/hemoglobin content
  2. Apply MAD-based filtering - Permissive outlier detection using MAD thresholds for counts/genes/MT%
  3. Filter genes - Remove genes detected in few cells
  4. Generate visualizations - Comprehensive before/after plots with threshold overlays

What it can do on your machine

Read from SKILL.md and the folder at commit b1f9b6e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Single Cell Rna Qc loads about 2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 85 tokens; SKILL.md has 700 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from FreedomIntelligence/OpenClaw-Medical-Skills at commit b1f9b6e, republished under its Apache-2.0 licence (© FreedomIntelligence). 700 words, ~2,008 tokens.

Download SKILL.mdSave it as .claude/skills/single-cell-rna-qc/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
single-cell-rna-qc
description
Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations. Use when users request QC analysis, filtering low-quality cells, assessing data quality, or following scverse/scanpy best practices for single-cell analysis.

Single-Cell RNA-seq Quality Control

Automated QC workflow for single-cell RNA-seq data following scverse best practices.

When to Use This Skill

Use when users:

  • Request quality control or QC on single-cell RNA-seq data
  • Want to filter low-quality cells or assess data quality
  • Need QC visualizations or metrics
  • Ask to follow scverse/scanpy best practices
  • Request MAD-based filtering or outlier detection

Supported input formats:

  • .h5ad files (AnnData format from scanpy/Python workflows)
  • .h5 files (10X Genomics Cell Ranger output)

Default recommendation: Use Approach 1 (complete pipeline) unless the user has specific custom requirements or explicitly requests non-standard filtering logic.

For standard QC following scverse best practices, use the convenience script scripts/qc_analysis.py:

bash
python3 scripts/qc_analysis.py input.h5ad
# or for 10X Genomics .h5 files:
python3 scripts/qc_analysis.py raw_feature_bc_matrix.h5

The script automatically detects the file format and loads it appropriately.

When to use this approach:

  • Standard QC workflow with adjustable thresholds (all cells filtered the same way)
  • Batch processing multiple datasets
  • Quick exploratory analysis
  • User wants the "just works" solution

Requirements: anndata, scanpy, scipy, matplotlib, seaborn, numpy

Parameters:

Customize filtering thresholds and gene patterns using command-line parameters:

  • --output-dir - Output directory
  • --mad-counts, --mad-genes, --mad-mt - MAD thresholds for counts/genes/MT%
  • --mt-threshold - Hard mitochondrial % cutoff
  • --min-cells - Gene filtering threshold
  • --mt-pattern, --ribo-pattern, --hb-pattern - Gene name patterns for different species

Use --help to see current default values.

Outputs:

All files are saved to <input_basename>_qc_results/ directory by default (or to the directory specified by --output-dir):

  • qc_metrics_before_filtering.png - Pre-filtering visualizations
  • qc_filtering_thresholds.png - MAD-based threshold overlays
  • qc_metrics_after_filtering.png - Post-filtering quality metrics
  • <input_basename>_filtered.h5ad - Clean, filtered dataset ready for downstream analysis
  • <input_basename>_with_qc.h5ad - Original data with QC annotations preserved

If copying outputs to /mnt/user-data/outputs/ for user access, copy individual files (not the entire directory) so users can preview them directly as Claude.ai artifacts.

Workflow Steps

The script performs the following steps:

  1. Calculate QC metrics - Count depth, gene detection, mitochondrial/ribosomal/hemoglobin content
  2. Apply MAD-based filtering - Permissive outlier detection using MAD thresholds for counts/genes/MT%
  3. Filter genes - Remove genes detected in few cells
  4. Generate visualizations - Comprehensive before/after plots with threshold overlays

Approach 2: Modular Building Blocks (For Custom Workflows)

For custom analysis workflows or non-standard requirements, use the modular utility functions from scripts/qc_core.py and scripts/qc_plotting.py:

python
# Run from scripts/ directory, or add scripts/ to sys.path if needed
import anndata as ad
from qc_core import calculate_qc_metrics, detect_outliers_mad, filter_cells
from qc_plotting import plot_qc_distributions  # Only if visualization needed

adata = ad.read_h5ad('input.h5ad')
calculate_qc_metrics(adata, inplace=True)
# ... custom analysis logic here

When to use this approach:

  • Different workflow needed (skip steps, change order, apply different thresholds to subsets)
  • Conditional logic (e.g., filter neurons differently than other cells)
  • Partial execution (only metrics/visualization, no filtering)
  • Integration with other analysis steps in a larger pipeline
  • Custom filtering criteria beyond what command-line params support

Available utility functions:

From qc_core.py (core QC operations):

  • calculate_qc_metrics(adata, mt_pattern, ribo_pattern, hb_pattern, inplace=True) - Calculate QC metrics and annotate adata
  • detect_outliers_mad(adata, metric, n_mads, verbose=True) - MAD-based outlier detection, returns boolean mask
  • apply_hard_threshold(adata, metric, threshold, operator='>', verbose=True) - Apply hard cutoffs, returns boolean mask
  • filter_cells(adata, mask, inplace=False) - Apply boolean mask to filter cells
  • filter_genes(adata, min_cells=20, min_counts=None, inplace=True) - Filter genes by detection
  • print_qc_summary(adata, label='') - Print summary statistics

From qc_plotting.py (visualization):

  • plot_qc_distributions(adata, output_path, title) - Generate comprehensive QC plots
  • plot_filtering_thresholds(adata, outlier_masks, thresholds, output_path) - Visualize filtering thresholds
  • plot_qc_after_filtering(adata, output_path) - Generate post-filtering plots

Example custom workflows:

Example 1: Only calculate metrics and visualize, don't filter yet

python
adata = ad.read_h5ad('input.h5ad')
calculate_qc_metrics(adata, inplace=True)
plot_qc_distributions(adata, 'qc_before.png', title='Initial QC')
print_qc_summary(adata, label='Before filtering')

Example 2: Apply only MT% filtering, keep other metrics permissive

python
adata = ad.read_h5ad('input.h5ad')
calculate_qc_metrics(adata, inplace=True)

# Only filter high MT% cells
high_mt = apply_hard_threshold(adata, 'pct_counts_mt', 10, operator='>')
adata_filtered = filter_cells(adata, ~high_mt)
adata_filtered.write('filtered.h5ad')

Example 3: Different thresholds for different subsets

python
adata = ad.read_h5ad('input.h5ad')
calculate_qc_metrics(adata, inplace=True)

# Apply type-specific QC (assumes cell_type metadata exists)
neurons = adata.obs['cell_type'] == 'neuron'
other_cells = ~neurons

# Neurons tolerate higher MT%, other cells use stricter threshold
neuron_qc = apply_hard_threshold(adata[neurons], 'pct_counts_mt', 15, operator='>')
other_qc = apply_hard_threshold(adata[other_cells], 'pct_counts_mt', 8, operator='>')
Show full SKILL.md (190 more words)Show less

Best Practices

  1. Be permissive with filtering - Default thresholds intentionally retain most cells to avoid losing rare populations
  2. Inspect visualizations - Always review before/after plots to ensure filtering makes biological sense
  3. Consider dataset-specific factors - Some tissues naturally have higher mitochondrial content (e.g., neurons, cardiomyocytes)
  4. Check gene annotations - Mitochondrial gene prefixes vary by species (mt- for mouse, MT- for human)
  5. Iterate if needed - QC parameters may need adjustment based on the specific experiment or tissue type

Reference Materials

For detailed QC methodology, parameter rationale, and troubleshooting guidance, see references/scverse_qc_guidelines.md. This reference provides:

  • Detailed explanations of each QC metric and why it matters
  • Rationale for MAD-based thresholds and why they're better than fixed cutoffs
  • Guidelines for interpreting QC visualizations (histograms, violin plots, scatter plots)
  • Species-specific considerations for gene annotations
  • When and how to adjust filtering parameters
  • Advanced QC considerations (ambient RNA correction, doublet detection)

Load this reference when users need deeper understanding of the methodology or when troubleshooting QC issues.

Next Steps After QC

Typical downstream analysis steps:

  • Ambient RNA correction (SoupX, CellBender)
  • Doublet detection (scDblFinder)
  • Normalization (log-normalize, scran)
  • Feature selection and dimensionality reduction
  • Clustering and cell type annotation

© FreedomIntelligence, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references) in skills/single-cell-rna-qc of FreedomIntelligence/OpenClaw-Medical-Skills.

  • SKILL.md
  • LICENSE.txt
  • references/scverse_qc_guidelines.md
  • scripts/qc_analysis.py
  • scripts/qc_core.py
  • scripts/qc_plotting.py

Open the folder on GitHubat commit b1f9b6e

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in FreedomIntelligence/OpenClaw-Medical-Skills, which our catalogue first saw on October 9, 2026.

Compare with similar skills

Single Cell Rna Qc next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Single Cell Rna Qc compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Single Cell Rna Qc this skillFreedomIntelligence/OpenClaw-Medical-Skills3.1k2 repos~2kAutomated safety check: PassApache-2.0
Scanpy Single-Cell Analysisdavila7/claude-code-templates33k15 repos~2.8kAutomated safety check: PassMIT
Single Cell Rna AnalysisPKU-YuanGroup/OpenAI4S622—~1.3kAutomated safety check: PassMIT
Anndatadavila7/claude-code-templates33k11 repos~2.5kAutomated safety check: PassMIT
Cellxgene Censusdavila7/claude-code-templates33k11 repos~3.8kAutomated safety check: PassMIT
Bulk RnaseqK-Dense-AI/scientific-agent-skills48k1 repos~4.2kAutomated safety check: PassMIT

Similar skills

  • Scanpy Single-Cell Analysis

    davila7/claude-code-templates

    Walks through single-cell RNA-seq analysis with Scanpy: loading .h5ad and 10X data, QC, normalization, PCA and UMAP, Leiden clustering, marker genes and cell type annotation.

    33k GitHub starsUsed in 15 repos~2.8k tokens
    Research & ScienceAuto-check passed
  • Single Cell Rna Analysis

    PKU-YuanGroup/OpenAI4S

    Reproducible Scanpy workflow for human or mouse 10x scRNA-seq and snRNA-seq count matrices: single-sample descriptive QC, clustering and annotation, or comparative donor-aware pseudobulk DE and Milo…

    622 GitHub stars~1.3k tokensUpdated today
    Research & ScienceAuto-check passed
  • Anndata

    davila7/claude-code-templates

    This skill should be used when working with annotated data matrices in Python, particularly for single-cell genomics analysis, managing experimental measurements with metadata, or handling…

    33k GitHub starsUsed in 11 repos~2.5k tokens
    Research & ScienceAuto-check passed
  • Cellxgene Census

    davila7/claude-code-templates

    Query CZ CELLxGENE Census (61M+ cells). An agent skill from davila7/claude-code-templates.

    33k GitHub starsUsed in 11 repos~3.8k tokens
    Research & ScienceAuto-check passed
  • Bulk Rnaseq

    K-Dense-AI/scientific-agent-skills

    Prepares bulk RNA-seq FASTQ, Salmon, STAR or featureCounts output for gene-level differential expression.

    48k GitHub starsUsed in 1 repo~4.2k tokens
    Research & ScienceAuto-check passed
  • Pathway Enrichment

    K-Dense-AI/scientific-agent-skills

    Performs pathway and gene-set enrichment analysis on gene lists or ranked gene data and interprets the results.

    48k GitHub starsUsed in 1 repo~4.2k tokens
    Research & ScienceAuto-check passed

More from FreedomIntelligence/OpenClaw-Medical-Skills

All 279 skills in this repo
  • Differentiation Schemes

    FreedomIntelligence/OpenClaw-Medical-Skills

    Select and apply numerical differentiation schemes for PDE/ODE discretization.

    3.1k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check: notes
  • Fhir Developer Skill

    FreedomIntelligence/OpenClaw-Medical-Skills

    FHIR API development guide for building healthcare endpoints.

    3.1k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Linear Solvers

    FreedomIntelligence/OpenClaw-Medical-Skills

    Select and configure linear solvers for systems Ax=b in dense and sparse problems.

    3.1k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check: notes
  • Medical Research Toolkit

    FreedomIntelligence/OpenClaw-Medical-Skills

    Query 14+ biomedical databases for drug repurposing, target discovery, clinical trials, and literature research.

    3.1k GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check passed
  • Mesh Generation

    FreedomIntelligence/OpenClaw-Medical-Skills

    Plan and evaluate mesh generation for numerical simulations.

    3.1k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check: notes
  • Nonlinear Solvers

    FreedomIntelligence/OpenClaw-Medical-Skills

    Select and configure nonlinear solvers for f(x)=0 or min F(x).

    3.1k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes

Works with

Questions about Single Cell Rna Qc

What does Single Cell Rna Qc do?

Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations. Single Cell Rna Qc is an agent skill from FreedomIntelligence/OpenClaw-Medical-Skills.h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations.

When should I use Single Cell Rna Qc?

Single Cell Rna Qc fits situations like: users request QC analysis; filtering low-quality cells; assessing data quality; following scverse/scanpy best practices for single-cell analysis.

How do I install Single Cell Rna Qc in Claude Code?

Run `npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill single-cell-rna-qc -a claude-code`. Or copy the skill folder (skills/single-cell-rna-qc in FreedomIntelligence/OpenClaw-Medical-Skills) into .claude/skills/single-cell-rna-qc in your project. Claude Code loads it when a task matches its description.

How do I install Single Cell Rna Qc in Codex?

Run `npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill single-cell-rna-qc -a codex`. Or copy the skill folder (skills/single-cell-rna-qc in FreedomIntelligence/OpenClaw-Medical-Skills) into .agents/skills/single-cell-rna-qc in your project. Codex loads it when a task matches its description.

Can I use Single Cell Rna Qc in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill single-cell-rna-qc -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/single-cell-rna-qc, .gemini/skills/single-cell-rna-qc, .github/skills/single-cell-rna-qc and .opencode/skills/single-cell-rna-qc in your project.

What does Single Cell Rna Qc need to run?

Going by SKILL.md and its folder, Single Cell Rna Qc needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Single Cell Rna Qc access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Single Cell Rna Qc safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Single Cell Rna Qc use?

Single Cell Rna Qc is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Single Cell Rna Qc use?

About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.

What are the alternatives to Single Cell Rna Qc?

Skills that share tags, products or a category with Single Cell Rna Qc: Scanpy Single-Cell Analysis (davila7/claude-code-templates, 33k stars), Single Cell Rna Analysis (PKU-YuanGroup/OpenAI4S, 622 stars), Anndata (davila7/claude-code-templates, 33k stars) and Cellxgene Census (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Single Cell Rna Qc?

FreedomIntelligence (a GitHub organization) maintains it in FreedomIntelligence/OpenClaw-Medical-Skills, which has 3,053 GitHub stars. The repository holds 279 skills in this directory. The repository was last updated on July 21, 2026.

Source: FreedomIntelligence/OpenClaw-Medical-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.