Agent skill

popv-cell-annotation

Consensus cell type annotation: runs 10+ algorithms (KNN-Harmony/BBKNN/Scanorama/scVI, CellTypist, ONCLASS, Random Forest, SCANVI, SVM, XGBoost) on a labeled reference and transfers labels via majority voting. Outputs per-method labels, consensus, agreement score. Use when single-method annotation is insufficient or you need ensemble uncertainty for novel states.

BioTender-maxgithub.com/BioTender-maxGitHub ↗
claude-codeNOASSERTION
Install
npx skills add BioTender-max/awesome-bio-agent-skills --skill popv-cell-annotation --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 24 KB
Bundled scripts: none
Path: skills/sciagent/popv-cell-annotation/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 144
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Runs a multi-method ensemble for cell type transfer from a labeled reference to a query dataset, generating per-method labels, a majority-vote consensus, and an agreement score that expresses how consistently methods agree on the consensus. Outputs include per-method prediction columns, the final popv_prediction, and popv_agreement for each query cell.

How it works

  1. It requires two AnnData objects: a labeled reference (with obs cell_type) and an unlabeled query; ensures overlapping genes and shared batch metadata. 2) It creates a combined processed object via Process_Query, which normalizes counts, selects HVGs, and builds a joint embedding. 3) It runs an ensemble of methods (knn_harmony, knn_bbknn, knn_scvi, scanvi_popv, celltypist_popv, rf, xgboost, svm, onclass) using annotate_data, producing per-method _popv labels and a final popv_prediction as the majority vote plus popv_agreement as the fraction of methods agreeing on the winning label. 4) It offers visualization utilities to view consensus and agreement on the embedding. 5) It provides workflows for standard annotation and for confidence filtering/novel state detection based on popv_agreement.

When to use it

  • When annotating a query from a reference and you want a consensus rather than a single-model label.
  • To identify novel or ambiguous cell states where methods disagree (low popv_agreement).
  • For benchmarking annotation reliability by comparing per-method labels.
  • When annotating large atlas datasets with substantial batch effects between reference and query.
  • If you require high-confidence labels for downstream analyses (clinical/regulatory contexts).
  • Choose alternatives: use CellTypist when speed matters and matches tissue; use scANVI when a single probabilistic model suffices.

What it can touch

The skill invokes a suite of tools and libraries, notably:

  • Python packages: popv, scvi-tools, harmonypy, bbknn, celltypist, scanpy.
  • It operates on AnnData objects, performing preprocessing, HVG selection, and joint embedding preparation, and then stores results in adata.obs with per-method labels ending in _popv, along with popv_prediction and popv_agreement. The exact method list includes: knn_harmony, knn_bbknn, knn_scvi, scanvi_popv, celltypist_popv, rf, xgboost, svm, onclass.

Caveats

  • License is BSD-3-Clause; no explicit disclaimers about data usage beyond prerequisites are provided in the summary. The description notes that performance depends on reference quality (minimum cell count per type, balanced representation, label granularity).
  • GPU is recommended for scVI/SCANVI methods; CPU fallback is supported.
  • Slower when using ensemble of many methods; not suitable for real-time or ultra-fast labeling on very large datasets without sufficient compute.
From the SKILL.md

# popV Multi-Method Cell Type Transfer ## Overview popV (Population Voting for single-cell annotation) annotates a query scRNA-seq dataset by running 10+ independent classification algorithms against a labeled reference atlas and aggregating results via majority voting. Each method produces its own label; the final `popv_prediction` is the consensus across all methods, and the `popv_agreement` score quantifies how many methods agree. This ensemble strategy is robust to individual method failures on unusual datasets and provides a principled uncertainty estimate: low agreement highlights novel cell states or annotation gaps. ## When to Use - Annotating a query dataset by transferring labels from a well-curated reference atlas when you want a consensus rather than a single model's judgment - Identifying novel or ambiguous cell states as cells where methods disagree (low `popv_agreement` score) - Benchmarking annotation reliability by comparing per-method labels to detect systematic disagreements - Annotating large atlas datasets (>100k cells) where batch effects between reference and query are substantial - Producing annotation for downstream analyses that require high-confidence lab

What's inside
Steps it walks through
  1. Overview
  2. When to Use
  3. Prerequisites
  4. Quick Start
  5. Core API
  6. Module 1: Reference and Query Data Setup
  7. Module 2: POPV Object Creation (ProcessQuery)
  8. Module 3: Running the Method Ensemble
  9. Module 4: Consensus Results and Agreement Scoring
  10. Module 5: Visualization
  11. Key Concepts
  12. Method Ensemble and Majority Voting
  13. Method Comparison
  14. ONCLASS and Ontology-Aware Annotation
Commands it runs
pip install popv scvi-tools harmonypy bbknn celltypist
More from awesome-bio-agent-skills
All skills →
About this skill
What does the popv-cell-annotation skill do?

Consensus cell type annotation: runs 10+ algorithms (KNN-Harmony/BBKNN/Scanorama/scVI, CellTypist, ONCLASS, Random Forest, SCANVI, SVM, XGBoost) on a labeled reference and transfers labels via majority voting. Outputs per-method labels, consensus, agreement score. Use when single-method annotation is insufficient or you need ensemble uncertainty for novel states.

How do I install it?

Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill popv-cell-annotation --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From BioTender-max/awesome-bio-agent-skills, a repository with 144 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going