Inspiration
Over half of patients who undergo genetic sequencing leave without a diagnosis. But "negative" doesn't mean unsolvable — it means unsolved with the evidence available at the time. Every year, ClinVar reclassifies thousands of variants, new gene-disease associations are published, and children develop new symptoms that shift the diagnostic picture entirely. The answer might already be hiding in a patient's existing data.
The problem is bandwidth. Manual reanalysis takes 2–4 hours per case, and most clinical labs can only revisit a handful of cases per year. Families sit in diagnostic limbo — the average diagnostic odyssey costs $29,000 in direct medical costs alone. We built ReScore because no one should have to wait years for a diagnosis that today's evidence could already provide. The missing piece wasn't better sequencing — it was knowing which cases to look at again.
What it does
ReScore takes a patient's prior genetic test results, their current clinical phenotypes (coded in HPO with timestamps), and demographics, then scores the case on a 0–100 scale indicating how likely reanalysis is to yield a new finding. Each score decomposes into transparent evidence categories so clinicians can see exactly why a case was flagged.
The output includes a concrete action checklist — which genes to reinterpret, which variant types were never assessed, which new tests to order — with estimated costs and turnaround times. It's designed to be the Monday morning to-do list for a genetic counselor, not a research report.
We demonstrated the system live by uploading two patient files: an 8-year-old boy tested with a 62-gene panel in 2018 whose phenotype has since shifted from epilepsy to a hyperkinetic movement disorder (high priority), and a 6-year-old girl tested with whole exome sequencing 15 months ago with no phenotype change (low priority). ReScore correctly distinguished signal from noise in real time.
How we built it
ReScore is a 6-layer deterministic scoring pipeline:
- Blind Spot Audit (0–30 pts) — checks whether the original test had gene coverage gaps, missing variant types (CNVs, repeat expansions, mito), or outdated bioinformatics pipelines.
- ClinVar/gnomAD Aggregation (0–40 pts) — queries for variant reclassifications and updated population frequency data since the test date.
- ACMG Calculator — re-evaluates each variant against current ACMG/AMP criteria.
- Gene Prioritization via Random Walk with Restart — the core innovation. We run RWR on a 29,000-node heterogeneous biological network built from HPO and PrimeKG, spanning genes, diseases, phenotypes, and biological pathways connected by 560,000 edges. We run it twice — once seeded with phenotypes at the time of testing, once with current phenotypes — and genes whose relevance score increased between the two runs are the reanalysis signal.
- Phenotype Evolution Scoring (0–15 pts) — quantifies how much the clinical picture has changed using semantic similarity in the HPO ontology.
- Score Combiner (0–100) — integrates all layers with ancestry-aware weighting, generates the action checklist, and produces a downloadable clinical PDF report.
The backend is Python/FastAPI (~8,300 lines). The frontend is React/TypeScript. All demo cases use real ClinVar variant IDs. The system is deliberately deterministic — no ML black box, every point in the score traces to a specific piece of evidence, and it runs on a laptop with no GPU.
Challenges we ran into
The biggest technical challenge was making the RWR gene prioritization biologically meaningful rather than just graph-theoretically interesting. Our first implementation surfaced RNU2-2 (a small nuclear RNA involved in mRNA splicing) as the top gene for an epilepsy case — because it's a hub node that connects to everything through bioprocess edges. We had to implement disease gene filtering, degree correction (dividing by √node_degree), and single-denominator normalization to ensure the network propagation rewards phenotype-specific relevance rather than graph connectivity.
Balancing sensitivity and specificity was another challenge. The system needs to flag cases that genuinely benefit from reanalysis without creating alarm fatigue. We implemented tunable thresholds so each lab can calibrate based on their review capacity.
Finally, handling equity correctly required careful design. Variant databases have well-documented ancestry bias — a variant common in African populations might be absent from European-dominated databases, leading to false VUS classifications. We use gnomAD population-specific allele frequencies rather than global frequencies, and critically, missing data widens uncertainty rather than penalizing the score.
Accomplishments that we're proud of
The live upload demo worked. Two raw JSON patient files went in, two meaningfully different scores came out, and every component of each score was traceable to specific evidence. That's not a mockup — that's a working clinical decision support tool.
We're also proud of the economic model: $400 to reanalyze the high-priority case versus $29,000 in diagnostic odyssey costs avoided — a 72x return on a single patient. Across a 7-case validation cohort spanning 6 ancestries, the system achieved 12.8x ROI on total reanalysis investment.
The system correctly scored an African American patient as high priority despite known database ascertainment bias for that population. Equity by design, not as an afterthought.
What we learned
The most important lesson: lead with clinical utility, not technical complexity. A genetic counselor doesn't care about Random Walk with Restart — they care about which of their 200 unsolved cases to revisit first and what to do when they get there. The action checklist turned out to be more impactful than the score itself.
We also learned that deterministic, auditable systems can be more powerful than ML approaches in regulated clinical contexts. Every point in ReScore's output traces to evidence a clinician can verify. In a domain where a wrong recommendation affects a child's diagnosis, interpretability isn't a nice-to-have — it's a requirement.
What's next for ReScore
Near term: Expand validation with published "solved after reanalysis" case series from Wenger et al. and Wright et al. Partner with genetic counselors to calibrate scoring thresholds per institution through clinician-in-the-loop review. Deploy as a clinical decision support API that integrates with existing laboratory information systems.
Longer term: Add NLP extraction from unstructured clinical notes to auto-generate HPO terms. Build EHR integration so new phenotype documentation automatically triggers rescoring. Run a prospective multi-site pilot tracking time-to-diagnosis reduction. Expand beyond rare disease into pharmacogenomics reanalysis and cancer predisposition panel updates.
The platform is modular — each scoring layer can be independently updated as new data sources, ontologies, and methods emerge. The architecture grows with the science.
Built With
- clinvar
- fastapi
- gnomad
- networkx
- numpy
- primekg
- pydantic
- python
- react
- reportlab
- scipy
- typescript
- vite
Log in or sign up for Devpost to join the conversation.