DECAES is a fast Julia implementation of the MATLAB toolbox from the UBC MRI Research Centre for computing voxelwise T2-distributions from multi spin-echo MRI images using the extended phase graph algorithm with stimulated echo corrections. Post-processing of these T2-distributions allows for the computation of measures such as the myelin water fraction (MWF) or the luminal water fraction (LWF).
DECAES is written in the open-source Julia programming language.
Julia and command line interfaces are available through this package.
The examples repository additionally provides a MATLAB interface via the MATLAB function decaes.m
.
If you use DECAES in your research, please cite our work:
- Doucette J, Kames C, Rauscher A. DECAES - DEcomposition and Component Analysis of Exponential Signals. Zeitschrift für Medizinische Physik 2020; 30: 271–278.
Using Julia v1.9 or later you can install DECAES as follows:
$ julia --project=@decaes -e 'import Pkg; Pkg.add("DECAES"); Pkg.build("DECAES")'
This will do two things:
- Add DECAES.jl to a named Julia project environment separate from your global environment
- Build the
decaes
launcher script at~/.julia/bin
for running DECAES from the command line
DECAES can then be run from the command line via decaes <COMMAND LINE ARGS>
, provided ~/.julia/bin
is added to your PATH
.
Run decaes --help
for available arguments.
If you are new to DECAES, the best place to start is the examples repository. There, we provide:
- A walk-through tutorial for using the MATLAB and command-line DECAES interfaces
- Example multi spin-echo (MSE) data for demonstrating MWI processing
Find package documentation at the above link, which includes:
- The command line interface API, available command line arguments, and examples
- API reference detailing how to use DECAES.jl from within Julia
- Other internals and algorithmic details
Due to performance optimizations enabled by Julia, DECAES is fast. As an illustration, here is a comparison between DECAES and UBC MWF MATLAB toolbox T2-distribution computation times for two multi spin-echo (MSE) datasets:
Dataset | Matrix Size | CPU | Cores | Threads | MATLAB | DECAES |
---|---|---|---|---|---|---|
56-echo MSE | 240 x 240 x 113 | Intel Xeon E5-2640 | 12 | 24 | 1h:25m:01s | 1m:07s |
48-echo MSE | 240 x 240 x 48 | Intel Xeon E5-2640 | 12 | 24 | 59m:40s | 40s |
56-echo MSE | 240 x 240 x 113 | AMD Ryzen 9 3950X | 16 | 32 | 22m:33s | 15.6s |
48-echo MSE | 240 x 240 x 48 | AMD Ryzen 9 3950X | 16 | 32 | 17m:56s | 9.3s |
56-echo MSE | 240 x 240 x 113 | AMD Ryzen Threadripper 3970X | 32 | 64 | -- | 7.7s |
48-echo MSE | 240 x 240 x 48 | AMD Ryzen Threadripper 3970X | 32 | 64 | -- | 4.3s |
If you use DECAES in your research, please cite our work:
@article{DECAES.jl-2020,
title = {{{DECAES}} - {{DEcomposition}} and {{Component Analysis}} of {{Exponential Signals}}},
author = {Doucette, Jonathan and Kames, Christian and Rauscher, Alexander},
year = {2020},
month = may,
issn = {1876-4436},
doi = {10.1016/j.zemedi.2020.04.001},
journal = {Zeitschrift Fur Medizinische Physik},
keywords = {Brain,Luminal Water Imaging,MRI,Myelin Water Imaging,Prostate},
language = {eng},
pmid = {32451148}
}