A repository that contains non-Cartesian reconstruction software for hyperpolarized xenon MRI. Written by Joseph Plummer (joseph.plummer@nih.gov
, GitHub username: joeyplum
).
Please post all issues, questions, or collaboration requests on the Issues tab. Alternatively, feel free to contact me directly via email.
In a Linux, WSL2, or Mac terminal, run the following commands in sequence to install (it is recommended to set up ssh
keys (see GitHub help or ask ChatGPT)).
git clone git@github.com:cchmc-cpir/decay-modeled-cs-paper.git
cd decay-modeled-cs-paper
conda update -n base -c defaults conda
make conda
conda activate decay-modeled-cs-paper
make pip
Troubleshooting:
- This repository was tested on an NVIDIA GPU. If running on a system without
an NVIDIA GPU, please remove (comment out with
#
key) the following packages fromenvironment.yaml
:cudnn
nccl
cupy
- Additionally, if not using an NVIDIA GPU, please set
devnum = -1
for each reconstruction script. Otherwise, you will encounter a bug withcupy
.
It is recommended to run all scripts using the `Run Current File in Interactive Window' tool in VScode so that a reconstructions can be monitored and figures can be easily viewed. However, the scripts also work in command line.
simulation_recon_2d.py
ventilation_recon_2d.py
ventilation_recon_3d.py
gasex_recon_3d.py
Iterative reconstructions have many knobs that can be turned to speed up and improve image quality. There is a chance that the settings used in this code may not apply as efficiently to your own site's data. Therefore, I recommend changing the following settings:
-
lamda
--> the regularization parameter for each regularization function. -
num_normal
--> the number of$A^H A$ operations (i.e. the number of iterations to solve the inner$||Ax-y||^2_2$ loop). -
num_iters
--> number of outer iterations in ADMM algorithm. -
rho
--> ADMM step size (sometimes, this can be increased to speed up convergence, although this directly multiplieslamda
) -
scan_resolution
/recon_resolution
--> tune for your own application.resolution
= matrix size (Philips terminology--please don't hate!)
If you want to talk about the algorithms, ADMM, other optimization theory, or simply want help with getting the code running for your application, please post on the Issues tab.
To uninstall, run the following commands:
conda activate
make clean