A didactic reproduction of the REDMOD pancreatic-cancer radiomics paper (Gut, April 2026, DOI: 10.1136/gutjnl-2025-337266) built around simulated data engineered to mirror the paper's reported study structure.
Honesty banner. No real CT scans, no real patients, no real radiomic features are used in this project. The simulator is calibrated so that downstream metrics land in the neighborhood of the paper's reported numbers. Anything we "show" here is a property of the simulator, not independent validation of the paper. The goal is to teach and showcase a modern data-science pipeline end-to-end.
src/redmod/— library code (simulation, features, model, evaluation, viz).configs/redmod.yaml— single source of truth for cohort sizes and signal/scanner/longitudinal knobs. Seed = 42.tests/— determinism + marginal-statistics tests.docs/data_science_overview.md— a plain-English explainer of the data-science choices behind the project.notebooks/— thin narrative notebooks that import the library.
# install env (uses uv: https://github.com/astral-sh/uv)
uv sync --extra dev
# run tests
uv run pytest
# generate the synthetic cohorts -> data/synthetic/*.parquet
uv run redmod simulate --config configs/redmod.yamlOr via the Makefile:
make install
make test
make simulateThe vertical slice (Phase 1 scaffolding + Phase 2 simulator) is complete. Roadmap:
| Phase | Scope | Status |
|---|---|---|
| 1 | Project scaffolding (uv, ruff, mypy, pytest, Makefile) | ✅ |
| 2 | Cohort + feature simulator | ✅ |
| 3 | EDA module + figures | ⏳ |
| 4 | LR + RF + XGB ensemble with SMOTE | ⏳ |
| 5 | Evaluation (AUC CI, Youden, calibration, decision-curve) | ⏳ |
| 6 | Publication-grade figure factory | ⏳ |
| 7 | Narrative report + slide deck | ⏳ |
| 8 | Deployment demo (FastAPI + Streamlit) | ⏳ |
See docs/data_science_overview.md for the data-science narrative.