SkillAgentSearch skills...

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.jl
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

DEcomposition and Component Analysis of Exponential Signals (DECAES)

<p align="left"> <img width="500px" src="./docs/src/assets/logo.gif"> </p> <!-- [![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://jondeuce.github.io/DECAES.jl/stable) -->

Dev Source <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>

<!-- [![Z Med Phys](https://cdn.ncbi.nlm.nih.gov/corehtml/query/egifs/https:--linkinghub.elsevier.com-ihub-images-PubMedLink.gif)](https://doi.org/10.1016/j.zemedi.2020.04.001) -->

Build Status codecov.io

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:

  1. Add DECAES.jl to a named Julia project environment separate from your global environment
  2. 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.

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

Dev

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

DECAES.jl Software Tutorial: Myelin and Luminal Water Imaging in under 1 Minute

JuliaCon 2021

JuliaCon 2021 - Matlab to Julia: Hours to Minutes for MRI Image Analysis

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}
}
View on GitHub
GitHub Stars37
CategoryDevelopment
Updated1mo ago
Forks6

Languages

Julia

Security Score

90/100

Audited on Mar 2, 2026

No findings