Skip to main content

hpo-drift

ci PyPI DOI python License: MIT

Same patient, same disease annotations, different HPO release — does the diagnosis move? hpo-drift computes your phenotype similarity twice, once per HPO release, and shows what changed and why.

pip install hpo-drift

Three commands

1 · Rank diseases for a patient in two releases.

hpo-drift rank-diseases --query examples/ggt_orpha33573_patient.txt --hpoa phenotype.hpoa --old v2022-10-05 --new v2026-06-23
| disease                                              | score old → new | rank old → new |
| Gamma-glutamyl transpeptidase deficiency (ORPHA:33573) | 0.698 → 0.588 |   1 → 28      |
| Infantile choroidocerebral calcification (ORPHA:1313)  | 0.677 → 0.674 |   2 → 1       |

2 · Explain it: patient vs one disease.

hpo-drift profiles --query patient.txt --target disease.txt --old v2022-10-05 --new v2026-06-23
Query terms used 6 → 6 of 6; target 7 → 10 of 10.      ← 3 of the disease's terms did not exist in 2022

3 · Your own term list: what changed, term by term and pair by pair.

hpo-drift report --old v2026-02-16 --new v2026-06-23 --terms my_terms.txt
term        label                  status     parents        IC old → new
HP:0002199  Hypocalcemic seizures  unchanged  −HP:0002901    1.000 → 1.000
pair                                   Lin old → new   Δ       MICA old → new
Hypocalcemic seizures ↔ Hypocalcemia   0.941 → 0.000   −0.941  HP:0002901 → HP:0000118

Also: lint (a CI gate for a phenotype spreadsheet: label matches, obsolete ids, unknown tokens), cohort + rank (every disease profile in phenotype.hpoa, no size cutoff). Releases are pulled from the official HPO GitHub assets, verified against their published SHA-256, and cached. Any tag like v2026-06-23 works.

Same patient, HPO 2022 vs 2026

What we found

Protocol first, then numbers (docs/evidence.md): 500 synthetic patients per run, each 60 % of one disease's annotations plus 2 noise terms, drawn from all 12 935 disease profiles, ranked against every disease in both releases.

4 months (v2026-02 → v2026-06) 3 y 8 m (v2022-10 → v2026-06)
top-1 diagnosis changed 0 of 1 000 8 of 1 000
top-5 list reshuffled 93 of 1 000 412 of 1 000
diseases not representable in the old release 0 1 303 of 12 935

Over four months the ranking held. Over four years one patient in a hundred loses its top-1, two in five get a different differential, and a disease in ten cannot be queried with the old ontology at all — its annotations use terms that did not exist yet. The mechanism is usually not a similarity change but a representation change: gamma-glutamyl transpeptidase deficiency drops from rank 1 to 28 for the same patient because 3 of its 10 annotations are 2023+ terms. Underneath, the raw pairwise scores are never stable: every one of the 11 947 rankable disease profiles had at least one Lin score move even across the four-month interval.

So: pin the HPO release and the phenotype.hpoa version in Methods, match on IDs, and run rank-diseases across the releases your cohort spans before you call a ranking reproducible.

Documentation

Tutorial · Methods (intrinsic IC, Best Match Average, resolution across releases, cohort semantics, provenance) · Evidence (all sweeps, tables, mechanism) · Changelog · site: margosolo.github.io/hpo-drift

Companion tools

hpotools — HPO in R · awesome-human-phenotype-ontology — link-verified list of HPO tools.

Cite

DOI (all versions): 10.5281/zenodo.22286170 — each release has its own version DOI on that page; cite the version you ran (hpo-drift --version).

Soloshenko M. hpo-drift: quantifying the effect of HPO release changes on phenotype-similarity results. 2026. MIT License.

Metadata

Release files for hpo-drift 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hpo-drift 0.2.1
File Size Uploaded Provenance
hpo_drift-0.2.1.tar.gz 23.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for hpo-drift 0.2.1
File Interpreter ABI Platform
hpo_drift-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.1 kB

Release files / hpo_drift-0.2.1.tar.gz

Download URL hpo_drift-0.2.1.tar.gz
Size 23.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8b93ef392591572b845a4ccd76052fae52923afccaffd2b0fd6ef07eb2219562
BLAKE2b-256 checksum
How to use checksums
850111fa2d25dff124e6e81b02376e9f5f05935193a6daaf8add4eccb736bcc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / hpo_drift-0.2.1-py3-none-any.whl

Download URL hpo_drift-0.2.1-py3-none-any.whl
Size 18.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d46693adceeecc4f40b0e874392fecaf6aa73047f544dc8c43682b0211a71c2
BLAKE2b-256 checksum
How to use checksums
fb5f7236dc8a503c26c272b5b846d9fca927c839c02ac0b090376105a899adc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Security for hpo-drift 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for hpo_drift-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page