Clone
2
Home
Kemal Yaylali edited this page 2026-09-12 13:44:49 +01:00
rarelens
Rare-disease variant triage on public data: a proband's variants narrowed against their phenotype, each candidate carrying the evidence for its rank.
This is a research and self-training platform. It is not a clinical tool and makes no diagnostic claim. No patient data is used, accepted, or possible to load.
Start here
| If you want to… | Read |
|---|---|
| understand how the pieces fit together | Architecture |
| run it on your machine | Local development |
| know what the ranking actually does | Ranking |
| know how well it works, and how well it doesn't | Benchmarks |
| change the pipeline | Pipeline |
| deploy it | Deployments |
| avoid a trap someone already hit | Gotchas |
What it does
- A case is a proband: a VCF plus the patient's phenotype as HPO terms.
- A Nextflow pipeline normalises the VCF, annotates it with Ensembl VEP, and loads the variants into PostgreSQL.
- The API ranks each variant on four auditable components — phenotype fit, rarity, consequence severity, and a model score — and refuses to score any component the annotation run did not actually measure.
- The interface shows the narrowing as a funnel and the evidence behind each candidate. A reviewer shortlists or dismisses with a reason, and that trail becomes a case report.
The shape of the repository
api/ FastAPI, Pydantic v2, SQLAlchemy 2.0 async, Alembic (~1,380 lines)
ml/ LightGBM model, HPO ontology handling, benchmark (~500 lines)
pipeline/ Nextflow DSL2, bcftools + VEP + loader (~620 lines)
web/ SvelteKit 5, adapter-node (~1,460 lines)
infra/ Terraform (GCP), Kustomize, Argo Workflows, ArgoCD (~890 lines)
scripts/ data preparation and seeding (~505 lines)
docs/ architecture, cloud choice, data provenance, write-up
A note on how this wiki is written
Pages record what is true now, including what is broken. Where a number appears it came from a run in this repository and can be reproduced by the command next to it. If you change something that makes a number here wrong, change the number too — a wiki nobody trusts is worse than no wiki.
rarelens
Understanding it
Working on it
Running it
When it goes wrong