scanpy – skill Marketing & SEO cho agent AI
Thực hiện QC, chuẩn hóa, chọn HVG, PCA/UMAP/t-SNE, phân cụm, xếp hạng marker khám phá, chuẩn bị pseudobulk, trực quan hóa và chuyển đổi RDS Seurat hoặc SingleCellExperiment sang h5ad cho scRNA-seq. Áp dụng cho quy trình scRNA-seq khám phá đã được thiết lập với count rõ ràng và expression proven
Cài skill scanpy bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/scanpy-80f58.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /scanpy – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/scanpy-80f58.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $scanpy – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/scanpy-80f58.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /scanpy – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/scanpy-80f58.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /scanpy – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Scanpy: Single-Cell Analysis
Overview
Scanpy is a scalable Python toolkit for analyzing single-cell RNA-seq data, built on AnnData. Apply this skill for complete single-cell workflows including quality control, normalization, dimensionality reduction, clustering, marker gene identification, visualization, and trajectory analysis. Targets Scanpy 1.12.4 (released 2026-08-27), reviewed 2026-10-01. Native synthetic tests establish data/API contracts, not biological validity.
Installation
Requires Python 3.12+ (scanpy 1.12 dropped Python ≤3.11) and anndata ≥0.10.
uv pip install "scanpy[leiden]"The [leiden] extra installs igraph and leidenalg; the scripts explicitly select flavor="igraph". For reproducible environments, pin a version: uv pip install "scanpy[leiden]==1.12.4".
For large or out-of-core datasets, many functions support [Dask](https://docs.dask.org/) arrays (experimental):
uv pip install "scanpy[leiden]" daskSee the [Using dask with Scanpy](https://scanpy.scverse.org/en/stable/tutorials/experimental/dask.html) tutorial. For GPU-accelerated scanpy-like operations, use [rapids-singlecell](https://rapids-singlecell.readthedocs.io/) as a separate package.
If the input is an R-native single-cell object (.rds, .RData, Seurat, or SingleCellExperiment), first convert it to .h5ad with R tooling, then load it with Scanpy. Read references/r_interop.md for agent-run installation and conversion instructions across macOS, Linux, and Windows.
For AnnData structure and I/O details, use the anndata skill. For probabilistic models and batch correction, use scvi-tools.
Representation and inference contracts
- Input to QC/preprocessing must be identified raw counts. The scripts reject negative,
fractional, nonfinite or zero-total cells. Use --counts-layer counts when X is already
normalized; never infer provenance from integer-looking values alone.
layers["counts"]remains unnormalized;.rawis an independent full-gene
log-normalized snapshot. Gene subsetting also subsets every layer, but does not subset
.raw genes. Retain a full-gene object for pseudobulk; the full pipeline does so.
seurat/cell_rangerHVGs use log-normalized values;seurat_v3and
seurat_v3_paper use counts and require scanpy[skmisc]. Scaling/regression are optional,
may densify sparse data, and can remove biology along with covariates.
- Marker ranking defaults to
.rawwhen present;--no-use-rawselects X and--layer
selects an explicit log-normalized layer. --groups/--reference control contrasts.
Wilcoxon/t-test adjusted p-values use BH within each comparison; logreg returns ranking
scores without p-values. Clusters chosen from the same data yield exploratory markers.
- Condition DE requires raw-count sums per sample and cell type, independent biological
replicates, aligned condition/donor metadata and a full-rank design. Analyze each cell
type separately; repeated donor samples require a suitable paired design. Aggregation
cannot fix confounding, missing replication, doublets or incorrect annotations.
- Harmony (
harmonypy) changes PCA coordinates; BBKNN (bbknn) changes the graph;
ComBat changes X. Keep original expression/counts for DE, and assess biological
conservation and batch mixing together. Requested integration/doublet failures stop.
- The toolkit loads files into memory. For backed data, explicitly call
.to_memory()
on a chosen subset and close the file; backed mode is not a general out-of-core
pipeline. Copy views before mutation. Dask support varies by function/array layout.
.rdsneeds an explicit R conversion stage. Cluster IDs do not determine cell types:
all mappings/signature assets are illustrative human marker examples, requiring review.
Harmony 2 returns cells x PCs; the toolkit calls its native API because the
Scanpy 1.12.4 wrapper still transposes that output and fails with current Harmony.
Optional packages: scikit-image for Scrublet automatic thresholding, loompy for Loom,
scikit-misc for v3 HVGs, harmonypy==2.0.2/bbknn==1.6.0 for their integration branches, and louvain
for the deprecated Louvain option (separate environment: louvain 0.8.2 requires
igraph <0.12, conflicting with the tested igraph 1.0). Install only needed branches. R and optional integration
execution boundaries are recorded in [references/upstream-review.md](references/upstream-review.md).
When to Use This Skill
This skill should be used when:
- Analyzing single-cell RNA-seq data (.h5ad, 10X, CSV formats)
- Working with R-friendly single-cell datasets (
.rds,.RData, Seurat, SingleCellExperiment) that need conversion to.h5ad - Performing quality control on scRNA-seq datasets
- Creating UMAP, t-SNE, or PCA visualizations
- Identifying cell clusters and finding marker genes
- Annotating cell types based on gene expression
- Conducting trajectory inference or pseudotime analysis
- Generating publication-quality single-cell plots
Script Toolkit (prefer these over writing code from scratch)
This skill bundles ready-to-run CLI scripts in scripts/ for every common step. Run these instead of hand-writing scanpy code — they handle file loading by extension, figure setup, sensible defaults, raw-count preservation, and progress logging. Each reads and writes .h5ad, so they chain together, and each has its own --help. Only drop down to writing scanpy code when a task isn't covered by a script or needs unusual customization.
All scripts use a shared scripts/_common.py helper (loading, saving, figure config) — keep it alongside the others. Run from the skill directory or pass full paths; figures default to ./figures/.
| Script | Purpose | Typical call |
|--------|---------|--------------|
| run_pipeline.py | Full workflow in one command: load → QC → normalize → HVG → PCA → (batch) → UMAP → Leiden → markers | python scripts/run_pipeline.py raw.h5ad -o processed.h5ad |
| inspect_data.py | Summarize an unknown dataset (shape, obs/var, layers, what's already computed, raw vs normalized) | python scripts/inspect_data.py data.h5ad |
| convert.py | Load any format (10x dir/.h5, csv, loom, mtx) and write .h5ad | python scripts/convert.py 10x_dir/ -o data.h5ad |
| qc_analysis.py | QC metrics, before/after plots, filtering, optional Scrublet doublets | python scripts/qc_analysis.py raw.h5ad -o qc.h5ad --scrublet |
| preprocess.py | Normalize, log1p, HVG, optional scale/regress (keeps counts layer + raw) | python scripts/preprocess.py qc.h5ad -o norm.h5ad |
| reduce_dimensions.py | PCA + variance plot, neighbors, UMAP, optional t-SNE | python scripts/reduce_dimensions.py norm.h5ad -o red.h5ad |
| batch_correct.py | Integration: harmony / bbknn / combat | python scripts/batch_correct.py red.h5ad -o int.h5ad --method harmony --batch-key sample |
| cluster.py | Leiden (or louvain) at one or many resolutions | python scripts/cluster.py red.h5ad -o clu.h5ad --resolution 0.3 0.6 1.0 |
| find_markers.py | rank_genes_groups + per-group CSVs + marker plots | python scripts/find_markers.py clu.h5ad --groupby leiden -o clu.h5ad |
| annotate.py | Map clusters → cell types from JSON/CSV; optional marker reference dotplot | python scripts/annotate.py clu.h5ad -o ann.h5ad --mapping map.json |
| score_genes.py | Score gene signatures (JSON) and/or cell-cycle phase | python scripts/score_genes.py ann.h5ad -o scored.h5ad --gene-sets sigs.json |
| pseudobulk.py | Aggregate counts by sample × cell type → matrix for pydeseq2 | python scripts/pseudobulk.py ann.h5ad --by sample cell_type --metadata condition donor --out-prefix pb |
| subset.py | Subset by obs values or gene list (optionally clear stale embeddings) | python scripts/subset.py ann.h5ad -o tcells.h5ad --obs cell_type --keep "T cells" |
| plot.py | Generate umap/tsne/pca/violin/dotplot/heatmap/etc. from a processed object | python scripts/plot.py ann.h5ad --kind dotplot --genes CD3D CD14 --groupby cell_type |
One-shot end-to-end run
# Counts → clustered object and exploratory marker ranks + figures + marker CSVs
python scripts/run_pipeline.py raw.h5ad -o processed.h5ad \
--resolution 0.5 --n-top-genes 2000 --scrublet
# With multi-sample integration:
python scripts/run_pipeline.py raw.h5ad -o processed.h5ad --batch-key sample --batch-method harmony
# Reproducible parameters via JSON (keys mirror flag names with underscores):
python scripts/run_pipeline.py raw.h5ad -o processed.h5ad --config params.jsonStep-by-step chain (when you need to inspect/iterate between stages)
python scripts/qc_analysis.py raw.h5ad -o qc.h5ad --scrublet
python scripts/preprocess.py qc.h5ad -o norm.h5ad --n-top-genes 2000
python scripts/reduce_dimensions.py norm.h5ad -o red.h5ad --n-pcs 40
python scripts/cluster.py red.h5ad -o clu.h5ad --resolution 0.3… (nội dung đầy đủ có trong gói tải về)
Skill liên quan
- culture-retention – Sổ khảo sát nhân viên và giữ chân: điểm gắn kết, phát triển, hạnh phúc, cân bằng công…
- customer-psychographic-profiler – Xây dựng hồ sơ khách hàng có bằng chứng về động cơ, nỗi sợ, bản sắc và rào cản tin cậy…
- scrollcraft – Trang đích cuộn có hiệu ứng cao cấp; cuộn = dòng thời gian.
- social-evidence-research – Nghiên cứu thảo luận công khai trên mạng xã hội và đảm bảo mọi nhận định trong báo cáo…
- social-publishing – Lên lịch và đăng bài trên 13 nền tảng mạng xã hội (X, LinkedIn, Instagram, Facebook…
- ms365-tenant-manager – Quản trị tenant Microsoft 365 cho Global Administrator. Tự động hóa thiết lập tenant…
- deepapi – Dùng DeepAPI cho các quy trình thu thập dữ liệu, nghiên cứu và email được hỗ trợ, với…
- onboarding-cro – Khi người dùng muốn tối ưu onboarding sau đăng ký, kích hoạt người dùng, trải nghiệm lần…