pronto
Python frontend to ontologies.
What it is and what it does
Pronto is a Python library that acts as a frontend to ontologies, allowing you to load, manipulate, and export biomedical ontology data. It implements the Open Biomedical Ontologies 1.4 specification and supports three major formats: OBO, OBO Graphs in JSON, and OWL2 in RDF/XML. The library presents ontologies as navigable Python objects—you can access terms by identifier, traverse class hierarchies, create new terms, and serialize back to any supported format.
The package depends on chardet, fastobo, networkx, and python-dateutil. It is typed and supports Python 3.7 through 3.14. The library is explicit about non-standard assumptions and missing capabilities, surfacing these as warnings rather than silent failures.
Use it for:
- Load and query biomedical ontologies to programmatically access term definitions and hierarchies.
- Convert OWL2 ontologies to OBO format for downstream tools requiring OBO.
- Build or extend ontologies by creating new terms, setting relationships, and exporting.
- Iterate over all terms to identify leaf nodes, compute statistics, or validate structure.
- Integrate ontology data into bioinformatics pipelines needing structured semantic information.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pronto parses, browses, creates, and exports ontologies in OBO, OBO Graphs JSON, and OWL2 RDF/XML formats, providing a high-level Python interface to biomedical ontology data.
Yes. Pronto is a mature, well-maintained library for a specialized but important use case in bioinformatics. Low install friction, no known vulnerabilities, permissive licensing, and broad Python version support make it a low-risk addition. The aging maintenance status is typical for stable libraries. Install it if you need to work with biomedical ontologies in Python.
Install
pronto on PyPI
pip
pip install prontouv
uv add prontopoetry
poetry add prontoInstalling pronto
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 214 days ago—but the repository remains active with recent commits and marked Production/Stable.
License in practice
MIT License permits unrestricted use, modification, and distribution with minimal restrictions, suitable for both commercial and open-source projects.
Quickstart
from pronto import Ontology
go = Ontology("tests/data/go.obo.gz")
term = go['CL:0002116']
print(term.name)
Verify before relying
- Performance characteristics when working with large ontologies or deeply nested hierarchies.
- Completeness of OBO 1.4 format support across the full OBO Foundry catalog.
- Stability guarantees for OBO Graphs JSON format, noted as not yet stabilized.
Package facts
| License | MIT License Copyright (c) 2016-2026 Martin Larralde <martin.larralde@embl.de> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — chardet, fastobo, networkx, python-dateutil |
| Maintenance | aging — 214 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 142,935/month — #11,195 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pronto-2.7.3-py3-none-any.whl
Keywords: bioinformatics, ontology, OBO, OWL
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
fastoboParses, loads, edits, and serializes OBO (Open…
permissive · top 15,000 on PyPI
provImplements the W3C PROV Data Model in Python,…
permissive · top 15,000 on PyPI
biontyBionty provides access to and management of…
unclear · top 15,000 on PyPI
owlready2Owlready2 is a Python module for…
copyleft · top 15,000 on PyPI
linkmlLinkML is a modeling language for defining…
permissive · top 15,000 on PyPI
edam-ontologyProvides a Python-packaged version of the EDAM…
permissive · top 15,000 on PyPI
sssomParse, validate, and convert SSSOM (Simple…
permissive · top 15,000 on PyPI
owlrlImplements OWL2 RL Profile and RDFS inference…
unclear · top 5,000 on PyPI
biocReads and writes biomedical text annotation…
permissive · top 15,000 on PyPI
bioregistryBioregistry provides a unified Python interface…
permissive · top 15,000 on PyPI