Vol. 01 · No. 1 · Beta Edition
Node reference

Annotation nodes.

Cell type annotation by four complementary routes. Auto Annotation asks an LLM (OpenAI / Anthropic / Gemini, your key) to name each cluster from its marker genes; CellTypist applies a pretrained logistic-regression model per cell; Cell Mapper transfers labels from a reference atlas by kNN on a joint PCA; Annotation Concordance compares any two or more label columns (ARI / NMI, cross-tab, agreement matrix) so you can judge which labels to trust.

04 nodesCategory · annotationin 2 templates

Heads up

CellTypist models are installed through the Resource Center before a run — the node never downloads one itself. A missing model stops the node with a message naming the resource.

Auto Annotation sends cluster marker lists (gene symbols and statistics) to the LLM provider you chose, never expression matrices. It is not deterministic; record the model and the result in your project.

Auto Annotation

autoAnnotation

LLM-based cell type annotation (OpenAI / Anthropic / Gemini). No reference dataset needed. Computes cluster markers, sends to LLM with tissue context, predicts cell types. Cost ~$0.01-0.30 per run depending on model.

Node LibraryscRNA-seqSpatial
InAnnData (with clustering)
OutAnnData (obs["cell_type_predicted"], obs["cell_type_predicted_confidence"])
Parameters (10)
NameTypeDefaultDescription
speciesselecthumanhuman/mouse/rat/zebrafish/drosophila/c.elegans/other.
tissuetext—Tissue (e.g. "PBMC", "brain cortex"). Required.
cluster_keyobs columnleidenCluster obs column.
providerselectopenaiopenai/anthropic/gemini.
modelselectgpt-5.6-terraModel name.
use_chat_keycheckboxtrueUse API key from AI Chat Settings.
api_keytext—Override API key for this node only. Only shown when 'Use Chat API Key' is unchecked.
n_top_markersnumber7Top markers per cluster sent to LLM.
restrict_to_expectedcheckboxfalseOnly allow LLM-listed cell types.
result_keytextcell_type_predictedOutput obs column.

Cell Mapper

cellMapper

Reference-based label transfer via kNN mapping on joint PCA. Computes joint PCA on common genes, finds nearest neighbors in reference, transfers labels via kernel-weighted voting.

Node LibraryscRNA-seqSpatial
InAnnData (preprocessed) + reference .h5ad
OutAnnData (obs["{key}_transferred"], optional obsm["X_umap_transferred"])
Parameters (7)
NameTypeDefaultDescription
reference_filefile (.h5ad)—Reference atlas with annotated cell types.
obs_keystextcelltypeComma-separated obs columns to transfer.
use_repselectauto"auto" joint PCA, or shared embedding key.
n_neighborsnumber15Reference neighbors per query cell.
kernelselectjaccardjaccard/gauss/inverse_distance/equal.
transfer_umapcheckboxfalseTransfer UMAP coordinates.
result_suffixtext_transferredSuffix for transferred columns.

CellTypist Annotation

celltypistAnnotation

Per-cell type annotation using CellTypist pretrained logistic-regression models — no LLM and no custom reference required. Applies a downloadable pretrained CellTypist model (e.g. Immune_All_Low.pkl) to label every cell directly. Optional majority voting harmonises predictions within over-clustered neighbourhoods. Requires log1p-normalised (to 10,000 counts) expression in adata.X.

Node LibraryscRNA-seqSpatial
InAnnData (log1p-normalised; run Normalize + Log1p upstream)
OutAnnData (obs["celltypist_labels"] + obs["celltypist_labels_conf"])
Parameters (6)
NameTypeDefaultDescription
modeltextImmune_All_Low.pklCellTypist model name or path to a .pkl. Download models in the Model Setup panel.
majority_votingcheckboxtrueRefine per-cell predictions by majority vote within over-clustered neighbourhoods.
over_clusteringobs column—obs column for majority voting. Empty = CellTypist over-clusters automatically.
modeselectbest match"best match" = single top label; "prob match" = multi-label / Unassigned by threshold.
p_thresnumber0.5Probability cutoff used in "prob match" mode.
result_keytextcelltypist_labelsobs column for labels. Confidence saved to <result_key>_conf.

Annotation Concordance

annotationConcordance

Compare 2+ categorical annotation/cluster columns and visualise their agreement — a QC step to judge whether an automatic annotation can be trusted. Two plot types: "crosstab" (row-normalised confusion heatmap of two label columns) and "agreement_matrix" (pairwise ARI or NMI across all label columns). High agreement between methods like CellTypist, Auto Annotation, Cell Mapper, and Leiden means the labels are reliable. All tuning lives in the Visualization Workspace.

Node LibraryscRNA-seq
InAnnData (2+ categorical obs columns)
OutPNG image (agreement_matrix also returns ARI/NMI scores)
Plots (2)crosstabagreement_matrix
Parameters (13)
NameTypeDefaultDescription
plot_typetextcrosstab"crosstab" = confusion heatmap of the first two; "agreement_matrix" = ARI/NMI across all.
label_keystext—Two or more comma-separated obs columns. Empty = auto-detect categorical columns.
metricselectariagreement_matrix only: "ari" or "nmi".
normalizeselectindexcrosstab only: "index" (rows sum to 1), "columns", or "none".
annotatecheckboxtrueShow numeric values in heatmap cells.
cmapselectviridisColormap.
value_fmtselect—Number format for the in-cell annotation (e.g. '.2f', 'd'). Empty = auto (0 decimals for raw counts, 2 for normalized).
mask_diagonalcheckboxfalse[agreement_matrix] Hide the self-comparison diagonal (always 1.0) to rescale the colour range to the off-diagonal agreement.
min_countnumber—[crosstab] Hide cells with fewer than this many cells. Empty (null) = show all.
figsize_wnumber10Figure width in inches.
figsize_hnumber8Figure height in inches.
font_sizenumber—Base font size. Empty = matplotlib default.
publication_qualitycheckboxfalseRender at 300 DPI for publication figures.