DECAES.jl
DEcomposition and Component Analysis of Exponential Signals (DECAES) - a Julia implementation of the UBC Myelin Water Imaging (MWI) toolbox for computing voxelwise T2-distributions of multi spin-echo MRI images.
Install / Use
/learn @jondeuce/DECAES.jlREADME
DEcomposition and Component Analysis of Exponential Signals (DECAES)
<p align="left"> <img width="500px" src="./docs/src/assets/logo.gif"> </p> <!-- [](https://jondeuce.github.io/DECAES.jl/stable) -->
<a href="https://doi.org/10.1016/j.zemedi.2020.04.001"> <img src="https://cdn.ncbi.nlm.nih.gov/corehtml/query/egifs/https:--linkinghub.elsevier.com-ihub-images-PubMedLink.gif" height="20"> </a>
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.
Installation
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
decaeslauncher script at~/.julia/binfor 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.
Quickstart
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
Documentation
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
Benchmarks
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:
<center>| 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 |
<!-- | 48-echo MSE | 240 x 240 x 48 | Intel i5 4200U | 2 | 4 | 4h:35m:18s | **6m:42s** | --> <!-- | 56-echo MSE | 240 x 240 x 113 | Intel i7-3770K | 4 | 8 | -- | **5m:39s** | --> <!-- | 48-echo MSE | 240 x 240 x 48 | Intel i7-3770K | 4 | 8 | -- | **3m:07s** | --> <!-- | 56-echo MSE | 240 x 240 x 113 | Intel i9-12900K | 12 | 24 | -- | **15.4s** | --> <!-- | 48-echo MSE | 240 x 240 x 48 | Intel i9-12900K | 12 | 24 | -- | **9.2s** | --> </center>DECAES Tutorial 2022
JuliaCon 2021
Citing this work
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}
}


