ICTV ontology API

ICTV Logo EVORA Project Logo

ICTV Ontology & API

Resolve virus taxa across ICTV releases programmatically.

The ICTV Ontology & API provides a machine-readable representation of the official virus taxonomy maintained by the International Committee on Taxonomy of Viruses (ICTV), together with programmatic access through the Ontology Lookup Service (OLS) API.

The ontology integrates all ICTV releases into a unified model, enabling:

The ontology is publicly accessible via the Ontology Lookup Service (OLS):
https://www.ebi.ac.uk/ols4/ontologies/ictv


🔎 Using the ICTV API

While OLS provides ontology access through standardised REST API, this repository also provides documentation on how to use the ICTV OLS API directly for taxonomic term resolution, and ready-to-use helper libraries for practical API usage (name resolution, obsolete taxa handling, lineage, ICTV ↔ NCBI mapping, etc.).

👉 See the ICTV API dedicatted help documentation:

➡️ ICTV API documentation (GitHub Pages)

➡️ Source on GitHub (/helpers)


ICTV Ontology

The ontology representation of the International Committee on Taxonomy of Viruses (ICTV) developed within the EVORA project in collaboration with ICTV, uses data from: https://github.com/ICTV-Virus-Knowledgebase/ICTVdatabase

Complementary SSSOM mappings to NCBITaxon is also made available in a distinct repository: https://github.com/EVORA-project/virus-taxonomy-mappings

Running a local OLS

Cloning this repository allows you to run a local version of OLS.

To start an Ontology Lookup Service (OLS) instance with all versions of ICTV 1971-present:

docker compose up

Querying with the Jupyter notebook

To install a minimal environment for the Jupyter notebook:

python3 -m venv .venv
source .venv/bin/activate
pip3 install pandas requests networkx matplotlib tabulate

Building the ontologies from ICTV data

To rebuild the ontologies from the ICTV TSV files, you will need to install some Python dependencies:

python3 -m venv .venv
source .venv/bin/activate
pip3 install rdflib pandas 

Then run the create_ontologies.py script:

python3 create_ontologies.py

License

This repository uses separate licenses for code and data:

Please review both files to understand the licensing terms when using this repository.