Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

CyteOnto

CyteOnto compares cell type annotations. You give it the reference labels of a study, the author labels, and the labels that one or more annotation algorithms assigned to the same cells or clusters. CyteOnto matches every label to a term of the Cell Ontology (CL) and scores how similar the author’s term and the algorithm’s term are. Labels that match the same term, as Treg and regulatory T cell usually do, score 1. CD4-positive, alpha-beta T cell scores close to CD8-positive, alpha-beta T cell, and T cell scores low against neuron. Use it to benchmark annotation methods against a reference without string matching.

How it works in brief

  1. An LLM describes each label, after splitting mixture labels such as doublets into their cell types.

  2. An embedding model turns each description into a vector, which is matched to the closest of the 2,902 Cell Ontology terms.

  3. The two terms that an author label and an algorithm label matched are scored with a similarity metric, which compares the embeddings of the terms’ descriptions by default and can also use the ontology’s hierarchy.

How CyteOnto works describes each step.

Two ways to use CyteOnto

Hosted APIPython package
Runs onhttps://cyteonto.nygen.ioYour computer
You needAn HTTP clientPython 3.13 or newer
API keysNone with the default modelsYour own, for an LLM and an embedding provider
OptionsThe fields of the requestEvery option, plus the caches and files on disk

A first comparison

This request compares three author labels with the labels of one algorithm on the hosted API. It needs no API key:

curl -sS -X POST https://cyteonto.nygen.io/compare \
  -H 'Content-Type: application/json' \
  -d '{
    "authorLabels": ["alveolar macrophage", "regulatory T cell", "CD8-positive, alpha-beta T cell"],
    "algorithms": {"method_a": ["lung macrophage", "Treg", "CD8 T cell"]}
  }'

The response holds a run ID. The job runs in the background: poll its status, then download one row per label pair. The hosted API quickstart walks through these steps with curl and Python, and the Python quickstart runs the same comparison with the cyteonto package.

Where to go next

Source code and issues

CyteOnto is developed in NygenAnalytics/CyteOnto under the MIT license. Report problems in the CyteOnto issues. CyteOnto is part of CyteType, which annotates the clusters of single-cell RNA-seq data. The documentation index for LLMs lists every page in plain text for assistants that read this site.