How that-tech-geek/digital-twin works
This research prototype turns longitudinal glucose and related signals into patient-specific glucose forecasts, hypoglycemia-risk estimates, and explicitly hypothetical counterfactuals. The principal workflow is source adaptation, canonicalization and timeline preparation, causal features and future-event labels, patient-level validation, model training, and three-layer twin simulation; evaluation and artifacts capture research results. The dashboard also exposes state, uncertainty, risk, and scenario simulation. Links follow the README’s materialized architecture and sampled calls; unsampled subsystem wiring is shown only where documented.
Main entry points: pipeline.py Pipeline orchestrator · layer_c.py Layer C simulator · csv.py CSV adapter · layer_b.py Layer B estimator
Components 22
Data preparation
- CSV adapter
src/digital_twin/ingestion/csv.py - FHIR adapter
src/digital_twin/ingestion/synthea.py - Canonical schema
src/digital_twin/schema.py - Timeline and features
src/digital_twin/preprocessing.py - Hypoglycemia labels
src/digital_twin/labels.py
Forecast learning
- Patient splits
src/digital_twin/splits.py - Forecast baselines
src/digital_twin/baselines.py - GRU training
src/digital_twin/training.py - Forecast model
src/digital_twin/models.py
Digital twin
- Layer A prior
src/digital_twin/twin_layers/layer_a.py - Layer B estimator
src/digital_twin/twin_layers/layer_b.py - Layer C simulator
src/digital_twin/twin_layers/layer_c.py - Runtime patient twin
src/digital_twin/twin.py
Research outputs
- Pipeline orchestrator
src/digital_twin/pipeline.py - Patient evaluation
src/digital_twin/evaluation.py - Research artifacts
src/digital_twin/artifacts.py - CLI and demo
src/digital_twin/cli.py - Research dashboard
src/digital_twin/dashboard/app.py
Other components
- OhioT1DM
- DiaTrend
- HUPA-UCM
- Synthea FHIR
Connections 26
- OhioT1DM → CSV adapter: provides data
- DiaTrend → CSV adapter: provides data
- HUPA-UCM → CSV adapter: provides data
- Synthea FHIR → FHIR adapter: provides bundle
- CSV adapter → Canonical schema: canonicalizes
- FHIR adapter → Canonical schema: outputs records
- Pipeline orchestrator → Canonical schema: canonicalizes
- Pipeline orchestrator → Timeline and features: resamples and featurizes
- Pipeline orchestrator → Hypoglycemia labels: adds labels
- Pipeline orchestrator → Patient splits: checks patient split
- Patient splits → Forecast baselines: supports comparison
- Pipeline orchestrator → GRU training: trains model
- GRU training → Forecast model: optimizes
- Pipeline orchestrator → Layer B estimator: builds estimator
- Layer B estimator → Forecast model: runs forecasts
- Pipeline orchestrator → Layer A prior: creates patient prior
- Pipeline orchestrator → Layer C simulator: forecasts and simulates
- Layer C simulator → Layer B estimator: requests distribution
- Layer C simulator → Layer A prior: conditions uncertainty
- Runtime patient twin → Layer B estimator: updates state
- Runtime patient twin → Layer C simulator: forecasts or simulates
- Pipeline orchestrator → Patient evaluation: computes metrics
- Pipeline orchestrator → Research artifacts: writes results
- CLI and demo → Pipeline orchestrator: runs workflow
- Research dashboard → Pipeline orchestrator: prepares demo
- Research dashboard → Layer C simulator: shows forecast and scenarios