notebook-annotation

Scaffolds a marimo and jscatter notebook for multi-round single-cell relabeling campaigns with selection manifests.

1|Updated Nov 20, 2025
One-click install
npx skills add https://github.com/tony-zhelonkin/scio --skill notebook-annotation-tony-zhelonkin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: notebook-annotation
Source: https://github.com/tony-zhelonkin/scio/tree/main/skills/notebook-annotation
Command: npx skills add https://github.com/tony-zhelonkin/scio --skill notebook-annotation-tony-zhelonkin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Relabeling a single-cell dataset is a campaign spanning many sessions, rebuilds, and re-embeddings, and ad-hoc annotation loses selections, rationale, and reproducibility between rounds. This Skill scaffolds one persistent marimo notebook that accumulates lasso, rule, and marker selections across rounds, records every call in a manifest, and deterministically resolves saved selections into a cleaned, relabeled roster. ## Core Features & Use Cases - Multi-round selection instrument: One marimo + jscatter notebook serves an entire campaign, with lasso, rule-based, and marker selections over per-lineage re-embeddings, and a tri-state selection model that persists origin and scope. - Selection manifest and history: Every save writes a CSV plus a manifest row capturing action, new label, priority, rationale, and status, with append-by-default semantics and _history/ snapshots so earlier work stays recoverable. - In-kernel evidence: Mann-Whitney DE tests, runtime gene streaming from CSC sidecars, marker co-detection scatter plots, and genomic track pileups for paired-ATAC datasets, all computed while the lasso is still live. - Deterministic downstream resolution: A resolution stage turns the manifest into per-barcode verdicts, and a cleaning stage applies debris, doublet, and relabel rules to produce a roster with coarse and fine labels. - Use Case: A researcher cleaning a snMultiome atlas runs round 3 of a T-cell lineage relabel: they lasso a suspicious cluster, run an in-kernel DE check against the rest of the lens, save the selection as 'drop' with rationale, and the cleaning stage later emits the updated roster. ## Quick Start Ask the assistant to scaffold a notebook-annotation campaign for your dataset, first telling it what is being relabeled, against which label space, and which round and starting roster this campaign begins from.

Frequently Asked Questions about notebook-annotation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I relabel single-cell clusters across multiple annotation rounds?▼

Use one marimo notebook that serves the whole campaign: lasso, rule, or marker selections are saved per round into a manifest with rationale and priority. A resolution stage then turns the manifest into per-barcode verdicts and a cleaning stage emits the relabeled roster.

What tool should I use for interactive lasso selection on single-cell embeddings?▼

This Skill uses marimo with jscatter widgets for lasso selection over per-lineage re-embeddings. Selection observers attach to raw widgets so overlay updates leave the grid unrendered and lasso interaction stays fluid.

Why should selections key to barcodes instead of cluster ids?▼

Cluster ids are nonstationary: leiden clusters renumber on every rebuild as membership, HVGs, and the neighbor graph shift. Barcodes are the only stable key, so a cluster-keyed rule would relabel the wrong cells after one rebuild.

When should I use notebook-exploration instead of an annotation campaign?▼

Use notebook-exploration for a single sitting with nothing to carry forward. The manifest, rounds, and cleaning ladder in this Skill are overhead that a one-off look at a stage's output never repays.

How do I run differential expression while a lasso selection is still live?▼

The notebook computes Mann-Whitney AUC tests with BH correction in both directions on CSC matrix slices, contrasting the selection against the rest of its lens or an arbitrary group pair. Results return in seconds inside the kernel.

Why does a same-name selection save destroy earlier campaign work?▼

An overwriting save erases prior selections irreversibly. This Skill appends by default with union on barcode, makes Replace an explicit mode, and snapshots every prior CSV into a _history/ directory before any touch.