ReMiND: Recovery of Missing Neuroimaging using Diffusion Models with Application to Alzheimer's Disease
conda create -n remind
conda activate remind
pip install -r requirements.txt
Please collect your MRIs from ADNI. ReMiND use the ANTs Longitudinal-SST for MRI preprocessing.
ReMiND takes train/val-list.txt
for model training and test-list.txt
for generation.
Please organize your splits into the following format:
<past-visit-mri-path> <current-visit-mri-path> <future-visit-mri-path> <past-visit-id> <current-visit-id> <future-visit-id> <past-visit-stage> <current-visit-stage> <future-visit-stage>
# stage could be NL, MCI, or AD
...
Please refer to the following script for ReMiND-PF training:
CUDA_VISIBLE_DEVICES=0 python main.py --config configs/adni_remind_pf.yml --exp remind-pf --ni --data_path <path-to-your-data-root>
Training hyperparameters can be tuned by modifying ./configs/adni_remind_pf.yml
:
data.data_root
: path to your datasetdata.train_list_path
: path to the training split filedata.val_list_path
: path to the validation split filedata.test_list_path
: path to the test split filedata.channels
: number of segmentsdata.cont_local
: number of slices in a local clip
The pretrained ReMiND-PF is provided in here.
Please refer to the following script for missing MRI interpolation:
python generation.py \
--test-listpath <path-to-the-test-list> \
--checkpoint-path <path-to-your-checkpoint> \ # the config.yml should be in the same folder as the checkpoint
--save-as-nii
The interpolated MRI will be saved at ./interpolated-<current-visit-name>.nii
This codebase is built on top of mcvd-pytorch. Thanks for their excellent contribution.
Please cite our paper as
@article{yuan2023remind,
title={Remind: Recovery of missing neuroimaging using diffusion models with application to alzheimer’s disease},
author={Yuan, Chenxi and Duan, Jinhao and Tustison, Nicholas J and Xu, Kaidi and Hubbard, Rebecca A and Linn, Kristin A},
journal={medRxiv},
year={2023},
publisher={Cold Spring Harbor Laboratory Preprints}
}