Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jondeuce/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.
https://github.com/jondeuce/DECAES.jl
Last synced: 1 day ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/jondeuce/DECAES.jl
- Owner: jondeuce
- License: mit
- Created: 2020-01-09T05:50:40.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-14T08:05:36.000Z (7 months ago)
- Last Synced: 2024-04-14T09:53:21.367Z (7 months ago)
- Language: Julia
- Homepage:
- Size: 5.69 MB
- Stars: 24
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
# DEcomposition and Component Analysis of Exponential Signals (DECAES)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://jondeuce.github.io/DECAES.jl/dev)
[![Source](https://img.shields.io/badge/source-github-blue)](https://github.com/jondeuce/DECAES.jl)
[![Build Status](https://github.com/jondeuce/DECAES.jl/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/jondeuce/DECAES.jl/actions/workflows/CI.yml?query=branch%3Amaster)
[![codecov.io](https://codecov.io/github/jondeuce/DECAES.jl/branch/master/graph/badge.svg)](https://codecov.io/github/jondeuce/DECAES.jl/branch/master)DECAES is a *fast* Julia implementation of the [MATLAB toolbox](https://mriresearch.med.ubc.ca/news-projects/myelin-water-fraction/) from the [UBC MRI Research Centre](https://mriresearch.med.ubc.ca/) for computing voxelwise [T2-distributions](https://doi.org/10.1016/0022-2364(89)90011-5) 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)](https://doi.org/10.1002/mrm.1910310614) or the [luminal water fraction (LWF)](https://doi.org/10.1148/radiol.2017161687).DECAES is written in the open-source [Julia programming language](https://julialang.org/).
Julia and command line interfaces are available through this package.
The [examples repository](https://github.com/jondeuce/mwiexamples) additionally provides a MATLAB interface via the MATLAB function [`decaes.m`](./api/decaes.m).If you use DECAES in your research, please [cite our work](./CITATION.bib):
* 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:
```bash
$ 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 lineDECAES can then be run from the command line via `decaes `, 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](https://github.com/jondeuce/mwiexamples).
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](https://img.shields.io/badge/docs-dev-blue.svg)](https://jondeuce.github.io/DECAES.jl/dev)
Find package documentation at the above link, which includes:
* The command line interface [API](https://jondeuce.github.io/DECAES.jl/dev/cli), available [command line arguments](https://jondeuce.github.io/DECAES.jl/dev/cli/#Arguments-1), and [examples](https://jondeuce.github.io/DECAES.jl/dev/cli/#Examples-1)
* 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](https://github.com/ubcmri/ubcmwf) 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** |## DECAES Tutorial 2022
[![DECAES.jl Software Tutorial: Myelin and Luminal Water Imaging in under 1 Minute](https://imgur.com/Ulh6jA0.png)](https://www.youtube.com/watch?v=xCKWWNywOTw)
## JuliaCon 2021
[![JuliaCon 2021 - Matlab to Julia: Hours to Minutes for MRI Image Analysis](https://imgur.com/zJpRdtx.png)](https://www.youtube.com/watch?v=6OxsK2R5VkA)
## Citing this work
If you use DECAES in your research, please [cite our work](https://doi.org/10.1016/j.zemedi.2020.04.001):
```tex
@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}
}
```