Skip to content

ZhengguoTan/DeepDWI

Repository files navigation

Generalized Deep Diffusion-Weighted Imaging (DeepDWI) Reconstruction Framework

Introduction

DeepDWI implements self-supervised learning image reconstruction techniques for DWI.

Light

Light Prospectively self-gated diffusion-weighted image reconstruction on a iEPI data acquired with 0.7 mm isotropic resolution. Self-gated zero-shot self-supervised learning (ZSSSL) enables much cleaner delineations of diffusion contrasts than locally-low rank (LLR) regularized reconstruction.

Installation

Let's use conda to install DeepDWI:

  1. create a new conda environment named ('deepdwi', you can use other names as you like):

    conda create -n deepdwi python=3.10
  2. activate the environment:

    conda activate deepdwi
  3. download and install deepdwi:

    git clone https://github.com/ZhengguoTan/DeepDWI.git

    and then cd to the DeepDWI directory,

    python -m pip install -e .
  4. download and install sigpy:

    git clone https://github.com/ZhengguoTan/sigpy.git

    and then cd to the sigpy directory,

    python -m pip install -e .

That's it! Enjoy deepdwi!

Features

  1. The repo implements several state-of-the-art algorithm unrolling for high-resolution high-dimensional diffusion-weighted imaging reconstruction, incl.

    (1) Variational Network (VarNet);

    (2) Model-based deep learning architecture (MoDL);

    (3) Alternating Direction Method of Multipliers (ADMM).

  • This implementation is also applicable to other high-dimensional MRI reconstruction!

Data

Before running the scripts in DeepDWI, you need to download the following data to the /data/ folder:

Spatial Resolution (mm3) Diffusion Mode Acceleration (in-plane x slice) Shots Navigator Link
0.7 x 0.7 x 0.7 MDDW 20 directions with b-value of 1000 s/mm2 2 x 2 3 Yes DOI
0.7 x 0.7 x 0.7 MDDW 20 directions with b-value of 1000 s/mm2 2 x 2 3 No DOI
1.0 x 1.0 x 1.0 MDDW 20 directions with b-value of 1000 s/mm2 1 x 3 4 No DOI
1.0 x 1.0 x 1.0 3-shell 126 directions with b-values up to 3000 s/mm2 3 x 3 2 No DOI

Examples

General Example

  1. load the data

    cd data/
    
    python load.py --records 10781347 --file 0.7mm_21-dir_R2x2_md5sum.txt
    
    python load.py --records 10781347 --file 0.7mm_21-dir_R2x2_kdat_slice_000.h5 --md5sum 0.7mm_21-dir_R2x2_md5sum.txt
    
    python load.py --records 10781347 --file 0.7mm_21-dir_R2x2_coils.h5 --md5sum 0.7mm_21-dir_R2x2_md5sum.txt
  2. run the zsssl training

    cd examples/
    python run_zsssl.py --mode train
  3. run the zsssl testing

    python run_zsssl.py --mode test --slice_idx 0 --checkpoint /examples/path/to/zsssl_best.pth

Specific Examples

  • Please follow the sub-folders in /figures/ for specific experiments and examples.

References

If you find the open-source codes/data useful, please cite:

@Article{tan_2024_sg_zsl,
    Title     = {{High-Resolution Motion-Robust Diffusion-Weighted Imaging with Self-Gated Self-Supervised ADMM Unrolling}},
    Author    = {Tan, Zhengguo and Liebig, Patrick A and Hofmann, Annika and Laun, Frederik B and Knoll, Florian},
    Journal   = {},
    Year      = {},
    Volume    = {},
    Pages     = {},
    doi       = {}
}

@Article{tan_2024_diff7t,
    Title     = {{Accelerated Diffusion Weighted Magnetic Resonance Imaging at 7 T: Joint Reconstruction for Shift-Encoded Navigator-based Interleaved Echo Planar Imaging (JETS-NAViEPI)}},
    Author    = {Tan, Zhengguo and Liebig, Patrick A and Heidemann, Robin M and Laun, Frederik B and Knoll, Florian},
    Journal   = {Imaging Neuroscience},
    Year      = {2024},
    Volume    = {2},
    Pages     = {1-15},
    doi       = {10.1162/imag_a_00085}
}

Light