This repository supports the development of predictive digital twins for oncology.
In particular, the codes in this repository are applied to the modeling and simulation of glioblastoma multiforme / high grade gliomas. This repository spans data preprocessing, implementation of the forward model, quantification of uncertainty, and forward uncertainty propagation to quanities of interest. The pipeline begins with the preparation of longitudinal medical imaging and meshing of the biological domain. A low-rank approximation to the posterior is computed and uncertainty is propagated through the forward model. There are two major applications provided in this repository:
- An implementation for a cohort of patients and the requisite components of the pipeline are implemented in the
gbmsubdirectory (see theREADMEfor more information). - Simulation studies are useful for isolating individual parameters of the experimental setup and an implementation is provided in the
synthdirectory (see theREADMEfor more information). In this case, the tradeoff between imaging frequency and prediction accuracy was studied.
Visualization is primarily handled with ParaView and .pvsm templates to support analysis are provided in the paraview subdirectory. Source codes that provide functionality to drive the aforementioned applications are in the src subdirectory.
The major components of this work are:
- Medical imaging data preparation
- Volume mesh generation
- Scalable implementation of the forward model
- Efficient approximation of the posterior
- Forward uncertainty propagation
- Quantity of interest computation
Docker was used to ensure portability of the codes and there are three major docker images used in this project:
- Data Preparation [Dockerfile]
- Mesh Generation [Dockerfile]
- Computations [Dockerfile]
This does not prohibit a user from installing all the software requirements in one environment, but rather provides example siloed implementations for HPC systems. To utilize the source codes, ensure that the appropriate requirements are installed, set the DT4CO_PATH environmental variable to the directory where this code has been cloned, and add the src directory to your path:
sys.path.append( os.path.join( os.environ.get('DT4CO_PATH'), "src" ) )
If you find this library useful in your research, please consider citing the following:
@misc{pash2025predictivedigitaltwinsquantified,
title={Predictive Digital Twins with Quantified Uncertainty for Patient-Specific Decision Making in Oncology},
author={Graham Pash and Umberto Villa and David A. Hormuth II and Thomas E. Yankeelov and Karen Willcox},
year={2025},
eprint={2505.08927},
archivePrefix={arXiv},
primaryClass={cs.CE},
url={https://arxiv.org/abs/2505.08927},
}