Inspiration

Rare genetic disease workups often stall because clinicians do not have a clear next step. Symptoms evolve over time, phenotypes are incomplete, and prior testing may already be negative or ambiguous. In many cases, the hardest part is not naming a disease, but deciding what to do next to reduce uncertainty without ordering unnecessary tests. We built CliniCompass to help clinicians move from incomplete patient information to a concrete next action effiiciently, and to ground that action in similar prior cases.

What it does

CliniCompass is a decision-support tool for clinicians working on rare genetic disease cases. A clinician enters structured case information such as HPO terms, onset age, severity and progression indicators, family history, and prior testing history. The system retrieves three similar cases from a patient database: a pre-sequencing phenotype and metadata match, a post-sequencing positive case that includes variants and metadata, and a post-sequencing negative or unsolved case that helps guide what to try next when sequencing has not yielded an answer.

CliniCompass then uses those similar cases as context to produce ranked next steps. The output is an ordered set of actions such as refining phenotyping, ordering a targeted test, triggering reanalysis, or referring to a specialty clinic. Each step includes a short explanation and a feasibility rating that summarizes practical factors like cost and turnaround time. The goal is to support next-step decisions, not to diagnose.

How we built it

We built the interface in Streamlit and the backend in FastAPI. The backend accepts a structured patient payload and converts it into a consistent schema. Patient cases are stored in a case database with Human Phenotype Ontology terms plus metadata and, when available, variant information.

Similarity search uses two engines. The first engine uses ontology-based semantic similarity over HPO sets. This engine supports the pre-sequencing workflow and also retrieves the candidate pool for post-sequencing workflows. The second engine applies gene-level weighting to re-rank candidate cases when variant information is present, which is most relevant for post-sequencing positive and post-sequencing negative workflows. The final ranked next steps are generated with Gemini using the patient input and the retrieved similar cases.

Challenges we ran into

We had to keep the scope strict. It is easy for a rare disease tool to drift into claiming diagnostic capability, so we kept the product focused on next steps and on showing why those steps are reasonable. Another challenge was phenotype completeness. Similarity retrieval can degrade when key discriminating phenotypes are missing, and rare disease presentations are often atypical. We also had to make sure the output stayed readable and practical, with recommendations that remain appropriate when information is limited.

Accomplishments that we're proud of

We built a system that connects a clinician’s case to similar prior cases and turns that context into a ranked next-step plan. The patient database is a central part of the product because it is used directly to retrieve comparable cases and provide precedent for recommendations. We also built a working end-to-end flow from clinician input to case retrieval to next-step output, with feasibility information included in the UI.

What we learned

We learned that usability depends heavily on consistent data representation. HPO makes phenotype entry and comparison more reliable, but missing or noisy phenotype data still affects retrieval quality. We also learned that clinicians care more about the reasoning behind the next step than a single predicted label, and that clear boundaries about what the tool does not do are important for trust.

What's next for CliniCompass

Next, we could make the retrieved similar cases more visible in the copilot output by showing why each case was selected and how it relates to each recommended step. We could expand the case database beyond a single source and improve phenotype normalization so retrieval remains useful when records are sparse. We could also add more explicit post-sequencing pathways, such as clearer reanalysis triggers and follow-up strategies after negative sequencing, while keeping the focus on next-step decisions rather than diagnosis. Over time, this could evolve into a stronger internal case library that improves as more cases are added and curated.

Built With

Share this project:

Updates