Syndat
Syndat is a python package that provides functionalities for the evaluation and visualization of synthetic data.
A Dashboard for evaluation & visualization of synthetic patient level data.
SYNDAT compares synthetic patient-level data with the original tabular data. The dashboard brings together quality metrics, privacy risk estimates, and plots for examining where the datasets agree and where they differ.
Developed as part of TA6.4 of the NFDI4Health Initiative.
The dashboard presents three quality scores and three privacy risk estimates. Distribution plots, correlation heatmaps, and an interactive embedding help identify outliers and features that differ between original and synthetic data.
SYNDAT Dashboard does not store real data and will only use it for score calculation during runtime.
The dashboard can be deployed locally at data-holding institutions.
From the repository root:
docker compose up --build
Open the dashboard at localhost:3000 and the API documentation at localhost:8000/docs.
CI uses Node.js 24 and Python 3.12.
From the repository root, create a Python environment and start the backend:
python3.12 -m venv .venv
source .venv/bin/activate
pip install --requirement backend/requirements.txt
cd backend
uvicorn api.routes:app --reload
In a second terminal, also from the repository root:
cd frontend
npm ci --legacy-peer-deps
REACT_APP_API_BASE_URL=http://localhost:8000 npm run dev
Open localhost:3000. The API URL can also be set in
frontend/.env; it is read when Vite starts or builds the frontend.
For evaluation and visualization directly in Python, use the separate
syndat package:
pip install syndat
The /datasets/import and /datasets/export endpoints use HTTP Basic
Authentication. Change the development credentials before exposing the API
outside your local machine.
For local development, set these variables before starting the backend;
otherwise it reads the defaults from backend/.env:
export SYNDAT_ADMIN_USERNAME=your_username
export SYNDAT_ADMIN_PASSWORD=your_password
For Docker, change the backend service's environment settings in
docker-compose.yml. The Compose file sets the container
credentials explicitly; exporting variables in your shell does not override them.
If you use SYNDAT in your research, please cite:
@article{Adams_On_the_fidelity_2025,
author = {Adams, Tim and Birkenbihl, Colin and Otte, Karen and
Ng, Hwei Geok and Rieling, Jonas Adrian and
Näher, Anatol-Fiete and Sax, Ulrich and Prasser, Fabian and Fröhlich, Holger},
title = {On the fidelity versus privacy and utility trade-off of synthetic patient data},
journal = {iScience},
volume = {28},
year = {2025},
doi = {10.1016/j.isci.2025.112382}
}
For questions or support, contact the NFDI4Health helpdesk at helpdesk@nfdi4health.de. For bugs and feature requests, use the issue tracker.
The repository is licensed under CC BY-NC-ND 4.0.
Syndat is a python package that provides functionalities for the evaluation and visualization of synthetic data.