This is an implementation of Inferring Tissue Microstructure from Undersampled Diffusion MRI via a Hybrid Graph Transformer by Pytorch.
In this work, we jointly consider the information in both x-space and q-space, overcoming the limitations of existing methods that are unable to make full use of joint x-q space information. The highlights of our work lie in three-fold:
- We propose a hybrid graph transformer (HGT) to jointly consider the information in both x-space and q-space for improving the accuracy of microstructural estimation.
- Our HGT is the first transformer dedicated to microstructure estimation with an improved architecture equipped with residual and dense connections.
- Extensive experiments on data from the Human Connectome Project demonstrate the advantages of our HGT over cutting-edge models.
We trained the network with an NVIDIA GeForce GTX 2080 GPU with 8GB RAM.
Quantitative evaluation of NODDI indices using PSNR, SSIM, and NRMSE for single-shell undersampled data (30 gradient directions total for b=1000 s/mm2). The best results are in bold.
Quantitative evaluation of DKI indices using PSNR, SSIM, and NRMSE for single-shell undersampled data (30 gradient directions total for b=1000 s/mm2). The best results are in bold.
pip install -r requirement.txt
If you are installing in a linux environment, you can run the following actions.
bash install.sh
First, you should organize the data as follows:
data/
├── 100610
├── data.nii.gz # HCP data file
├── nodif_brain_mask.nii.gz # mask file(you can use dipy to generate)
├── bvec # b-value data file
└── bval # b-value data direction file
├── 102311
├── data.nii.gz
├── nodif_brain_mask.nii.gz
├── bvec
└── bval
├── bvec
└── bval
Second, you can run prepare_data.py
to process the data:
python prepare_data.py --path [dataset root]
# To train the DKI model you only need to change the microstructure_name
python train.py --config './config/hgt_config.py' --microstructure_name 'NODDI'
# To train the DKI model you only need to change the microstructure_name
# If you do not want to generate a prediction file just change --is_generate_image to False
python test.py --config './config/hgt_config.py' --microstructure_name 'NODDI' --is_generate_image True
We implment the code by referring to the following projects: