🧭 Phenotype-Genotype Matching Algorithm (Deep Phenotyping)
Algorithm for matching phenotypic data with genetic variants through deep phenotyping.
Deep Phenotyping — Capturing the Full Clinical Picture
Deep phenotyping is the comprehensive, granular documentation of every observable clinical abnormality in a patient — not just the two or three findings that prompted the referral. In the rare disease diagnostic odyssey, patients see an average of 7 specialists over 5-7 years before receiving a diagnosis, and much of that time is lost because early notes captured only shallow, non-standardized descriptions ("developmental delay") rather than the granular signal ("delayed expressive speech with preserved receptive language, onset 18 months") that a matching algorithm can actually use.
- 5–7 yrs: Avg. diagnostic odyssey (time to diagnosis, rare disease)
- 7–8: Specialists seen (avg.) (before correct diagnosis)
- ~5,500: Known Mendelian genes (OMIM gene-disease entries)
- 18,000+: HPO terms available (standardized phenotype vocabulary)
Why granularity matters
A clinical note that says "abnormal facial features" carries almost no discriminating power — thousands of syndromes list facial dysmorphism somewhere in their phenotype spectrum. A note that says "hypertelorism, long palpebral fissures, everted lower eyelid, depressed nasal tip" narrows the differential enormously, because each granular term is independently weighted and combined during matching.
Deep phenotyping means systematically working through every organ system — craniofacial, skeletal, cardiovascular, neurological, ophthalmological, dermatological, growth — and recording both positive findings ("has seizures") and pertinent negatives ("no cardiac involvement"), because absence of an expected feature is itself diagnostic signal.
From free text to structured data
Clinical notes, radiology reports, and growth charts are unstructured. Deep phenotyping pipelines convert this narrative into discrete, machine-readable observations — typically by a clinical geneticist manually annotating findings, increasingly assisted by NLP tools (e.g. ClinPhen, Doc2HPO) that scan free text and propose HPO term matches for human review. The output is a phenotype list attached to the patient record, ready for ontology encoding in Stage 2.
HPO — A Standardized Vocabulary for Human Disease Phenotypes
The Human Phenotype Ontology (HPO), launched in 2008 and maintained by the Monarch Initiative and collaborators, provides a standardized, hierarchical vocabulary of over 18,000 terms describing phenotypic abnormalities in human disease. Instead of every clinician and database describing "small head" differently, HPO fixes it as a single term (HP:0000252, Microcephaly) with a precise definition, synonyms, and a defined position in a hierarchy of increasingly specific abnormalities — turning free-text medicine into comparable data.
- 18,000+: HPO terms (phenotypic abnormality concepts)
- DAG: Structure (directed acyclic graph, not a tree)
- 20+: Databases using HPO (OMIM, Orphanet, DECIPHER, ClinVar…)
- ~250,000: Annotated disease records (gene/disease-to-phenotype links)
How HPO is structured
HPO is organized as a directed acyclic graph (DAG) rooted at "Phenotypic abnormality" (HP:0000118), branching into major organ-system categories — Abnormality of the eye, Abnormality of the nervous system, Abnormality of the skeletal system, and so on — which subdivide repeatedly into increasingly specific terms. Unlike a strict tree, a term can have more than one parent: "Hypertelorism" is both an Abnormality of the eye and an Abnormality of the orbital region, because it is clinically relevant to both branches. This DAG structure is what allows semantic similarity algorithms to measure how closely two terms are related by finding their most informative common ancestor.
Encoding a patient — term propagation
When a patient is annotated with a specific leaf term like "Hypertelorism", that annotation implicitly propagates up the DAG: the patient also "has" every ancestor term — Abnormality of the eye, Abnormality of the orbital region, Phenotypic abnormality. This true-path rule means matching algorithms can compare patients and diseases at any level of granularity, rewarding exact deep matches (both have hypertelorism specifically) far more than shallow ancestor-only matches (both merely have "some eye abnormality").
Building the Patient Phenotype Profile
Once every clinical finding has been mapped to an HPO term, the patient's full annotation set becomes a phenotype profile — conceptually a point in high-dimensional "phenotype space" spanning every organ system. Visualized as a radar signature, a shallow profile (2-3 terms) touches only a couple of axes, while a deep profile (15-25 terms) traces a distinctive, hard-to-confuse shape across the whole ontology — the shape that gets compared against reference disease and gene profiles.
- 15–25: Terms per deep-phenotyped patient (typical comprehensive workup)
- 2–4: Terms per shallow referral note (typical un-standardized note)
- ~24: Organ systems in HPO top level (major phenotypic branches)
- DAG distance: Profile comparison basis (not simple keyword overlap)
Semantic similarity, not string matching
Phenotype matching does not compare term labels as text — it compares positions in the ontology graph. Two widely-used measures:
• Resnik similarity: for a pair of terms, find their most informative common ancestor (MICA) — the most specific shared ancestor term — and use its information content (how rare/specific that ancestor is across the whole annotated corpus) as the similarity score. • Lin / Jiang-Conrath variants: normalize Resnik similarity by the specificity of each individual term, so matching two very rare, very specific terms scores much higher than matching two generic ones.
A full patient-to-disease comparison aggregates these pairwise term similarities (e.g. via best-match-average or Groupwise methods) into a single profile-level similarity score.
Depth versus breadth
A deep phenotyping session that captures 20 precise, granular terms produces a profile vector with far more discriminating power than a shallow note listing 3 generic terms — even though both patients may have the same underlying disease. This is the direct computational reason "deep" phenotyping outperforms shallow phenotyping: every additional granular term adds an independent axis of evidence that narrows the space of compatible gene-disease candidates.
Matching the Patient Profile Against Gene-Phenotype Knowledgebases
Reference knowledgebases (OMIM, Orphanet, DECIPHER, HPO annotation database) associate thousands of genes and diseases with their own characteristic HPO phenotype profiles, built up from decades of published case reports. Algorithmic tools like Phenomizer and Exomiser take the patient's phenotype profile and compute a semantic similarity score against every one of these reference profiles, producing a ranked list of the genes whose known phenotypic spectrum best explains what the patient actually has.
- ~8,000: Gene-phenotype reference profiles (genes with curated HPO annotation)
- Pheno + Geno: Exomiser combines (phenotype similarity × variant pathogenicity)
- ~200: Typical exome candidate variants (after frequency/quality filtering)
- 20+: Databases interoperating via HPO (OMIM, Orphanet, DECIPHER, ClinVar…)
Integrating phenotype scoring with variant filtering
A raw exome or genome from a rare disease patient typically yields tens of thousands of variants, reduced to a few hundred candidates after standard filtering: rarity in population databases (gnomAD), predicted functional impact (missense/nonsense/splice), and inheritance-pattern consistency. Frequency and impact filtering alone often still leaves dozens of equally plausible candidate genes — this is where phenotype matching adds independent, complementary evidence.
Tools like Exomiser (Robinson et al.) combine a variant pathogenicity score with a phenotype semantic-similarity score (computed via the PhenIX/OWLTools algorithms against the HPO-annotated reference corpus) into a single combined score per gene, then re-rank all candidates by that combined evidence.
Why brighter matches emerge from noise
Every reference gene profile is scored against the patient profile independently. Genes whose known phenotype spectrum only partially overlaps the patient (sharing 1-2 generic terms) receive low similarity scores and stay dim; genes whose spectrum overlaps closely on multiple specific, rare terms light up — even if that gene sits deep in a list of hundreds of variant-only candidates. Database coverage matters here: a reference knowledgebase with more richly curated gene-phenotype associations gives every candidate gene a more complete profile to be scored against, sharpening the separation between true and false matches.
Ranked Candidate Genes — The Payoff of Phenotype Matching
The final output clinicians actually use is a re-ranked candidate gene list: instead of scrolling through 150-200 variant-filtered genes with no way to prioritize among them, phenotype-informed ranking typically moves the true causal gene into the top 1-5 candidates for review — turning a hopeless list into a short, actionable one, and directly increasing diagnostic yield in clinical exome/genome sequencing.
- Top 1–5: Phenotype-boosted rank (typical position after re-ranking)
- +30–40%: Exomiser diagnostic yield gain (vs. variant-only filtering pipelines)
- 50–200: Genes reviewed without phenotyping (frequency-filtered candidate list)
- Routine: Clinical genomics adoption (used in most tertiary rare-disease centers)
Measuring rank improvement
Diagnostic laboratories benchmark phenotype-matching tools by measuring the rank of the eventually-confirmed causal gene before and after phenotype-based re-ranking. In large validation cohorts, tools like Exomiser move the true causal gene into the top-5 ranked candidates in roughly 85-90% of solved cases, and into the #1 position in the majority — compared to a candidate pool of dozens to hundreds of equally-plausible genes when relying on frequency and predicted-impact filtering alone.
Deep, granular phenotyping is not a documentation nicety — it is the input that determines how much lift a phenotype-matching algorithm can provide. A patient encoded with 20 precise HPO terms will see the causal gene climb far further up the ranked list than the same patient encoded with 3 generic terms, even though the underlying sequencing data is identical.
From ranked list to diagnosis
A short, well-justified ranked list changes clinical workflow: instead of a geneticist manually researching dozens of genes, the top 1-5 phenotype-matched candidates receive focused manual curation — checking variant quality, segregation in family members, and literature/ClinVar evidence — dramatically shortening the time from sequencing to a confirmed molecular diagnosis, and closing the diagnostic odyssey for the patient and family.
Algorithm for matching phenotypic data with genetic variants through deep phenotyping.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install