| --- |
| title: RareDx — Rare Disease Diagnostic AI |
| emoji: 🧬 |
| colorFrom: blue |
| colorTo: indigo |
| sdk: docker |
| app_port: 8501 |
| pinned: false |
| short_description: Multi-agent AI for rare disease diagnosis |
| --- |
| |
| # RareDx — Rare Disease Diagnostic AI |
|
|
| A multi-agent clinical AI system that generates differential diagnoses for rare diseases from plain-text clinical notes. |
|
|
| ## How It Works |
|
|
| 1. **Symptom Parser** — maps free-text symptoms to HPO term IDs using BioLORD-2023 semantic similarity |
| 2. **Graph Search** — traverses the Orphanet/HPO knowledge graph (11,456 diseases, 115,839 phenotype associations) |
| 3. **Vector Search** — BioLORD semantic search over HPO-enriched disease embeddings |
| 4. **RRF Fusion** — merges both rankings via Reciprocal Rank Fusion |
| 5. **Hallucination Guard** — FusionNode filters candidates lacking phenotype evidence |
|
|
| ## Example |
|
|
| Paste a clinical note like: |
| > *"18 year old male, extremely tall, displaced lens in left eye, heart murmur, flexible joints, scoliosis"* |
|
|
| The system returns ranked differential diagnoses with evidence scores, matched HPO terms, and an interactive evidence map. |
|
|
| ## Architecture |
|
|
| | Component | Technology | |
| |-----------|-----------| |
| | Knowledge graph | Orphanet + HPO (NetworkX JSON) | |
| | Embeddings | FremyCompany/BioLORD-2023 (768-dim) | |
| | Vector store | ChromaDB (embedded) | |
| | API | FastAPI on port 8080 (internal) | |
| | Dashboard | Streamlit on port 8501 | |
|
|
| ## Data Sources |
|
|
| - [Orphanet](https://www.orphadata.com/) — rare disease names, definitions, HPO phenotype associations |
| - [Human Phenotype Ontology](https://hpo.jax.org/) — 8,701 standardised phenotype terms |
| - [BioLORD-2023](https://huggingface.co/FremyCompany/BioLORD-2023) — biomedical sentence encoder |
|
|
| ## Startup Note |
|
|
| The pipeline loads the BioLORD model and 11,456-disease knowledge graph on first request. Allow ~30 seconds after the Space starts before submitting a note. |
|
|