plugins/ngs-analysis/skills/scrna-seq-qc/SKILL.md
Process, quality-control, annotate, and visualize single-cell or single-nucleus RNA-seq datasets across tissues and species. Use when Codex needs to build, adapt, or review a general scRNA-seq QC pipeline; choose dataset-appropriate cell-level filters from QC distributions; run required scDblFinder-based doublet and ambient-RNA filtering; annotate cells with matched references or marker-based fallbacks; or generate global and per-group UMAP visualizations for large scRNA-seq datasets.
npx skillsauth add openai/plugins scrna-seq-qcInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Read references/qc-annotation-umap-heuristics.md before picking thresholds, annotation backends, or UMAP feature-selection rules.
Confirm what inputs exist before writing code:
Preserve provenance in the output: package versions, thresholds, threshold-justification plots, counts removed or flagged at each filter, annotation backend and reference, marker-gene selection heuristic, and any manual cluster exclusions.
Choose QC thresholds from the data, not from a fixed template.
percent.mt.Run cell-level QC.
percent.mt.scDblFinder for doublet detection. Run it per batch or capture channel, and split very large batches before doublet calling.scDblFinder cannot run in the environment, surface the blocker explicitly or get user approval before using a different caller.passes_QC column instead of physically dropping cells when downstream provenance matters.Build a latent space and inspect residual artifacts.
scVI is warranted for this dataset and use case before training it.scVI when integration across batches, donors, chemistries, or related datasets is important, or when the dataset is large and noisy enough that a learned latent space is likely to help.scVI or a conventional PCA workflow was chosen for this dataset.Annotate cells.
cell_type_mapper.Choose a general marker panel for global UMAP.
Generate UMAP visualizations.
Scale to large datasets without copying.
When implementing a pipeline, produce an auditable output set:
.h5ad or equivalent object with raw counts preserved and QC or annotation fields in metadata.For 10x-style matrix bundles, a local runner is available:
python plugins/ngs-analysis/scripts/run_scrnaseq_post_count_qc.py --input-dir path/to/scrna_bundle
The input directory should contain matrix/, manifest.tsv, and dataset_metadata.json, unless explicit paths are supplied. Treat the runner as an auditable analysis surface: its marker-based fallback is PBMC-oriented when no matched reference is provided, so tissue-specific annotation and integration choices still require review.
The runner writes visualizations/index.html for portable artifact review, summary.md plus provenance/analysis_status.json for explicit completeness/blocker reporting, and auto-launches a localhost Marimo review app recorded in notebooks/marimo_server.json. It also writes notebooks/scrna_qc_review.marimo.py as a notebook backup over the generated PNG/CSV/H5AD outputs. Treat the notebook and review app as review layers, not as the source of truth; the run envelope and generated artifacts remain canonical.
references/qc-annotation-umap-heuristics.md: Threshold-selection heuristics, annotation fallback strategy, general marker-panel selection rules, and large-dataset memory practices.development
Use when the user wants to spin up / create / launch / provision a DigitalOcean droplet (or "a remote dev box on DO") and connect to it from Codex as a remote SSH workspace.
data-ai
Search through Microsoft Teams chats or channels, triage unread or recent activity, draft follow-ups, and manage Planner tasks through connected Teams data.
tools
Motion / animation context for the `use_figma` MCP tool — animating Figma nodes via manual keyframes, animation styles, easing, and timeline duration. Load alongside figma-use whenever a task involves adding, editing, or inspecting animation on a node.
development
SwiftUI ↔ Figma translation. Use whenever the user mentions Swift, SwiftUI, iOS, iPhone, or iPad — in EITHER direction — translating a Figma design into SwiftUI (design → code), or pushing SwiftUI views / screens / tokens back into a Figma file (code → design). Triggers on phrases like 'implement this Figma design in SwiftUI', 'build this screen in Swift', 'push this SwiftUI view to Figma', 'mirror my Swift code in a Figma file', or whenever a Figma URL appears alongside `.swift` files / an `.xcodeproj`. Routes to a direction-specific reference doc; loads alongside `figma-use` for the code → design path.