Ahmed Doghri Logo Image
Ahmed Doghri

phenorank

The top disease scores 0.6334 with a 0.2554 margin and survives all three leave-one-phenotype-out trials.

phenorank phenotype constellation disease ranking instrument
phenorank working browser demo

Phenotype Matching Needs Structure

Flat keyword overlap treats every finding as equally informative and ignores the ontology connecting specific phenotypes to their ancestors.

phenorank traverses a compact HPO graph, computes information content, rewards exact coverage, handles excluded findings, and exposes every candidate score.

The Demo

MONDO:001 ranks first at 0.6334, 0.2554 ahead of the runner-up. It remains first in three of three leave-one-phenotype-out trials, making the ranking stable rather than merely high.

The bundled ontology is intentionally small and deterministic. Clinical use requires current HPO releases, curated disease annotations, inheritance, variant evidence, and expert review.

The Exclusion Logic Was Eliminating Valid Candidates

Excluded findings matter as much as observed ones in differential diagnosis, so I stress-tested that part of the ranker specifically. The contradiction check flagged a disease if either the patient's excluded term was an ancestor of the disease's predicted phenotype, or the disease's predicted phenotype was an ancestor of the excluded term. Only the first direction is a genuine contradiction — the disease specifically predicts something within the excluded category. The second direction wrongly zeroed out any disease that merely predicted a broader category than the patient's specific excluded finding, even though that disease's own annotation never claimed the specific thing being excluded.

Verified directly: a disease annotated only with the broad "abnormality of the nervous system" category got a forced score of zero simply because the patient's excluded, more specific "seizure" finding happens to sit somewhere under that umbrella — a false disqualification of a candidate the disease's own phenotype list never actually ruled out. For a tool whose entire purpose is correctly prioritizing candidates, silently eliminating a legitimate one for the wrong reason defeats the point.

Fixed by keeping only the correct direction of the ontology check. The demo's own designed contradiction case — a disease specifically predicting a cardiac subtype the patient rules out at a more general level — is still caught exactly the same way as before, and every published number above is unchanged.

Research Basis

Recent benchmarking recommends phenotype-driven tools such as Exomiser and Genomiser as components of rare-disease prioritization workflows.

Read the Rare-disease prioritization recommendations.

Tools Used

Python
HPO
Information Content
Rare Disease
Stability Analysis
Ontology Reasoning
Docker