A developmental-context variant pathogenicity scoring method
Weights mutation impact by spatiotemporal gene expression across human development
Existing tools like CADD, SIFT, and PolyPhen-2 predict pathogenicity from evolutionary conservation or protein-level impact alone. They treat every developmental window as equal — but a mutation in a gene critical during gastrulation is fundamentally different from one in a gene expressed only in adults.
DevScore is the first metric to explicitly incorporate when and where a gene is expressed during human development, weighted by the criticality of that developmental stage.
DevScore = V × E_peak × C_stage × D_domain × 100
| Component | Range | Source | What it captures |
|---|---|---|---|
| V — variant severity | 0–1 | CADD PHRED + ClinVar | Combined pathogenicity from conservation, protein impact, and clinical annotation |
| E_peak — peak expression | 0–1 | Expression Atlas (E-MTAB-6814) | Maximum developmental TPM across 10 stages, normalised to 10,000 TPM ceiling |
| C_stage — stage criticality | 0.25–1.0 | Curated developmental biology | Gastrulation & neurulation = 1.0 · organogenesis = 0.95 · fetalearly = 0.65 · fetallate = 0.50 · adult = 0.25 |
| D_domain — domain essentiality | 0.2–1.0 | UniProt | DNA-binding & catalytic = 1.0 · structural = 0.7 · regulatory = 0.5 · disordered = 0.4 · UTR = 0.2 |
A DevScore > 8.5 (Youden threshold) indicates likely developmental pathogenicity. Scores range 0–100.
Benchmarked on 110 variants across developmental-disorder and adult-onset genes.
| Comparison | AUC | Improvement | |
|---|---|---|---|
| DevScore (all variants, n=110) | 0.928 | ⬤ — | |
| CADD (paired, n=110) | 0.457 | ⬤ | +0.471 |
| SIFT (missense-only, n=66) | 0.397 | ⬤ | +0.536 |
| PolyPhen-2 (missense-only, n=66) | 0.446 | ⬤ | +0.487 |
Mann-Whitney U: U = 2784.5, p = 6.38 × 10⁻¹⁵ · Cohen's d: 1.77 (very large effect) · Median DevScore: developmental = 16.6 vs adult-onset = 4.0
Conventional conservation tools systematically over-predict pathogenicity for adult-onset genes (TP53, BRCA1, etc.) because protein constraint alone cannot resolve developmental timing. DevScore fills this gap through spatiotemporal criticality weighting (C_stage). Spearman ρ(DevScore, CADD) = 0.156 (p = 0.103) — orthogonal information.
# Backend
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload # → http://localhost:8000
# Frontend (separate terminal)
cd frontend
npm install
npm run dev # → http://localhost:5173curl -X POST http://localhost:8000/api/score \
-H "Content-Type: application/json" \
-d '{"gene": "SOX2", "hgvs": "c.70C>T", "position": 24}'{
"gene": "SOX2",
"variant": "c.70C>T",
"score": 52.8,
"V": 0.91,
"E_peak": 0.58,
"C_stage": 1.0,
"D_domain": 1.0,
"peak_stage": "gastrulation",
"component_explanation": {
"V": "ClinVar: pathogenic · CADD PHRED: 34.0",
"E_peak": "SOX2 peaks at 5800 TPM during gastrulation",
"C_stage": "Gastrulation (C_stage = 1.0) is the most critical developmental window",
"D_domain": "HMG-box DNA-binding domain (D_domain = 1.0)"
}
}Try the live demo at devmutdb.vercel.app.
- Enter a gene symbol — autocomplete searches 150+ curated genes
- Type an HGVS variant (e.g.
c.70C>T), or click Pick variant to browse pre-loaded ClinVar entries - View results — score ring, component breakdown, 10-stage expression heatmap, and comparison table vs CADD / SIFT / PolyPhen-2
- Export PDF — citable variant summary report
| Source | Data | Access |
|---|---|---|
| Ensembl VEP | Variant consequences, SIFT, PolyPhen-2 | REST API |
| NCBI ClinVar | Clinical significance classifications | REST API |
| Expression Atlas (E-MTAB-6814) | Developmental transcriptome (Cardoso-Moreira et al. 2019, Nature) | REST API |
| UniProt | Protein domains and functional regions | REST API |
| gnomAD v4 | Population allele frequencies | REST API |
| CADD | Combined Annotation Dependent Depletion | Scaling API |
Genes absent from the E-MTAB-6814 developmental transcriptome receive class-informed expression estimates based on known developmental or adult-onset patterns.
DevMutDB/
├── backend/ # FastAPI server + DevScore engine
│ ├── app/
│ │ ├── main.py # API routes (/score, /genes, /health)
│ │ ├── devscore/ # Core formula, stage index, domain weights
│ │ └── clients/ # Ensembl, ClinVar, gnomAD, Expression Atlas, UniProt
│ └── requirements.txt
├── frontend/ # React + Vite + Tailwind CSS
│ └── src/
│ ├── pages/ # Search, Results, Methodology, API Docs
│ └── components/ # ScoreRing, StageTimeline, ComparisonTable
├── validation/ # Benchmark dataset + scoring pipeline
│ ├── run_validation.py # Batch scoring script
│ └── figures/ # ROC curves, distributions, case studies
└── paper/ # Preprint manuscript (draft)
@software{ghrieb2026devmutdb,
author = {Abdelkarim Hani Ghrieb},
title = {{DevScore}: A Spatiotemporal Criticality Index for Improved Pathogenicity Prediction of Developmental Variants},
year = {2026},
doi = {10.1101/2025.xx.xx},
url = {https://github.com/Ghrieb/DevMutDB}
}Code (backend, frontend, validation pipeline): All Rights Reserved — commercial use, modification, distribution, and patent use prohibited without prior written consent.
Manuscript and figures: Creative Commons Attribution 4.0 International (CC BY 4.0)
Research prototype — not intended for clinical diagnosis without independent validation








