- Home
- Skills
- Starlitnightly
- Omicverse
- Single Annotation
single-annotation_skill
- Python
866
GitHub Stars
2
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill starlitnightly/omicverse --skill single-annotation- reference.md4.0 KB
- SKILL.md12.8 KB
Overview
This skill guides Claude through a reproducible single-cell annotation playbook using SCSA, MetaTiME, CellVote, CellMatch, GPTAnno, and weighted KNN transfer from the omicverse tutorials. It condenses required inputs, preprocessing, inference calls, and interpretation tips so you can reproduce and adapt each workflow on PBMC, tumour microenvironment, or multi-modal datasets. The content focuses on practical commands, expected output locations, and common pitfalls to avoid.
How this skill works
Each module describes the minimal data inputs, preprocessing steps (QC, normalization, HVG selection, PCA, neighbors, clustering), model initialization, and exact function calls to produce annotations. Results and markers are stored consistently (annotations in adata.obs, marker ranks in adata.uns), and helper visualization utilities are recommended to validate labels and uncertainties. The guide highlights ON/OFFLINE options for LLMs and sentence-transformer models and shows how to transfer labels across modalities using weighted KNN on shared embeddings.
When to use it
- When you need automated cluster labels for PBMC or similar tissues using marker databases (SCSA).
- To map tumour microenvironment niches and minor states with scVI-derived embeddings (MetaTiME).
- When consolidating multiple annotation sources into a consensus label (CellVote).
- To link labels to formal ontology terms and browse semantic mappings (CellMatch).
- To generate human-like label suggestions from marker lists using LLMs (GPTAnno).
- To propagate high-confidence RNA labels onto other modalities (weighted KNN transfer).
Best practices
- Always run consistent preprocessing (QC → normalize → HVG → scale → PCA → neighbors → Leiden) before annotation.
- Store and compare intermediate results: markers in adata.uns['rank_genes_groups'] and annotations in adata.obs.
- Use explicit parameter names (e.g., pySCSA clustertype='leiden') to avoid API errors.
- Validate automated labels with dotplots, embedding overlays, and abundance/uncertainty checks.
- For LLM-based annotation, prefer offline instruction-tuned checkpoints when no API key is available.
- When transferring labels cross-modally, inspect transfer uncertainty and flag low-confidence cells.
Example use cases
- Run SCSA with CellMarker and PanglaoDB on PBMC3k, compare with manual marker assignments, then feed into CellVote for consensus.
- Annotate TME states in the MetaTiME Figshare dataset using scVI embeddings and export per-patient Major_MetaTiME distributions.
- Map haber_2017_regions cluster labels to Cell Ontology IDs and enrich ambiguous clusters with taxonomy hints.
- Transfer RNA-derived major_celltype labels to GLUE-integrated ATAC cells and report clusters with high transfer uncertainty.
FAQ
COSG and rank gene outputs are stored in adata.uns['rank_genes_groups'] (names, scores, logfoldchanges), not in adata.obs.
What parameter names commonly cause errors in pySCSA?
Use clustertype to point to the cluster column (e.g., 'leiden') and cluster='all' to select clusters; passing cluster where clustertype is expected will error.
Can I run GPTAnno without an API key?
Yes: use the local instruction-tuned checkpoint and ov.single.gptcelltype_local to run offline.