Universal single cell annotator
Skill FridrichMethod/awesome-skills/skills/universal-single-cell-annotator
Annotate scRNA-seqFrom its SKILL.md
npx -y skills add FridrichMethod/awesome-skills --skill universal-single-cell-annotatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.3 KB, 557 tokens by cl100k_base, as published. Nobody here has run it
Universal Single-Cell Annotator
This skill wraps multiple cell type annotation strategies into a single Python class. It allows agents to flexibly choose between rule-based (markers), data-driven (CellTypist), or reasoning-based (LLM) approaches depending on the context.
When to Use This Skill
- Initial Analysis: When processing raw AnnData objects.
- Validation: When cross-referencing automated labels with known markers.
- Discovery: When identifying rare cell types using LLM reasoning on marker lists.
Core Capabilities
- Marker-Based Scoring: Scores cells based on provided gene lists (e.g., "T-cell": ["CD3D", "CD3E"]).
- Deep Learning Reference: Wraps
celltypistto transfer labels from massive atlases. - LLM Reasoning: Extracts top markers per cluster and constructs prompts for LLM interpretation.
Workflow
- Load Data: Ensure data is in
AnnDataformat (standard for Scanpy). - Choose Strategy:
- Use Markers if you have a known gene panel.
- Use CellTypist for broad immune/tissue profiling.
- Use LLM for novel clusters.
- Annotate: Run the corresponding method.
- Inspect: Check
adata.obsfor the new annotation columns.
Example Usage
User: "Annotate this dataset looking for T-cells and B-cells."
Agent Action:
from universal_annotator import UniversalAnnotator
import scanpy as sc
adata = sc.read_h5ad('data.h5ad')
annotator = UniversalAnnotator(adata)
markers = {
'T-cell': ['CD3D', 'CD3E', 'CD8A'],
'B-cell': ['CD79A', 'MS4A1']
}
annotator.annotate_marker_based(markers)
# Results in adata.obs['predicted_cell_type']
<!-- AUTHOR_SIGNATURE: 9a7f3c2e-MD-BABU-MIA-2026-MSSM-SECURE -->What ships with it: 11 files
16.2 KB alongside SKILL.md, 8 of them executable
cellidentifierdx-main/
- cellidentifierdx/cli.pyruns1.5 KB
- cellidentifierdx/__init__.pyruns440 B
- cellidentifierdx/scoring.pyruns1003 B
- cellidentifierdx/utils.pyruns691 B
- .gitignore1 B
- LICENSE404 B
- README.md3.7 KB
- setup.pyruns1.1 KB
- tests/__init__.pyruns402 B
- tests/test_scoring.pyruns781 B
- universal_annotator.pyruns6.2 KB