Git Product home page Git Product logo

mritoolkit's Introduction

MRIToolkit [update 15-02-2020]

What is it?

A set of command line tools and a MATLAB (R) toolbox/library to process (diffusion) magnetic resonance imaging (MRI) data. The idea behind MRIToolkit is to serve as a stable distribution platform for the methods I develop as well as to other state-of-the-art technologies in diffusion MRI and beyond.

Where do I find it?

  • The MATLAB (R) toolbox is available here on Github!
  • The command line tools will be uploaded soon!

Short installation guide

Please, see this guide

Examples of some functionalities can be found in Demos

Main functionalities:

I have coded most functions to accept Python-like name/value argument couples. To know which arguments to specify, just try the MATLAB help as, for instance, "help EDTI.LoadNifti"

The MATLAB (R) toolbox

Ready to use:
  • 'ExploreDTIInterface': I am pleased to announce that MRIToolkit now contains, distributes and develops many functions originally developed as part of ExploreDTI. They are here available as a consolidated library and are planned to also become command line tools. A big thank to Alexander Leemans and Ben Jeurissen for this!
  • 'SphericalDeconvolution': Methods used for two novel deconvolution methods we developed, namely the Generalized Richardson Lucy and mFOD. Some of the functions here included have been taken from Hardi Tools of Erick Canales-Rodriguez.
    • 'LesionEditor': a graphical user interface to visualise and edit segmentations of 3D MRI images, originally designed for delineation of multiple-sclerosis lesions on fluid attenuated inversion recovery (FLAIR) images. Requires MATLAB R2018a or newer. Documentation coming soon
  • 'NiftiIO_basic': Basic Nifti input/output, including code originally written by Jimmy Shen
  • 'DW_basic': Utilities to load / manipulate / save dMRI data
  • 'OptimizationMethods': Classes and functions for numeric optimisation methods
  • 'Relaxometry': Classes for T1/T2 quantification using inversion-recovery / spin-echo multi-echo data
  • 'ThirdParty': Utilities from third parties used in other scripts. Includes EPG code from Brian Hargreaves
  • 'ImageRegistrations': Image registration utils based on Elastix
  • 'Demos': Small examples showcasing functionalities of MRIToolkit.
Being integrated and coming soon:
  • 'Diffusion_basic': Class for (basic) dMRI quantification
  • 'DW_IVIMDTDK_I': Diffusion MRI fit utilities - IVIM, DT, DKI - used in De Luca et al. 2017
  • 'Dicom_utils': Tools for handling unconventional or buggy DICOMs
  • 'DW_Laplacian_NNLS': Tools for spectral multi-compartment fit (NNLS/L2NNLS/PL2NNLS) used in De Luca et al. 2018
  • 'MixedCodeUtils': 'Useful general purpose functions
  • 'MRIfoundation': Classes for MRI sequences abstraction
  • 'EPG_simulator': Classes for EPG simulations
Not yet planned for release (contact me directly if interested):
Working examples:
  • 'EPGFitT2Muscle.m': in Relaxometry, this function fits bi-exponential T2 (water/fat) with EPG - previously used in Arrigoni et al. 2018
  • 'DESPOT12Fit.m': an example script to fit DESPOT1 and DESPOT2 as in Deoni et al. 2005
  • 'MultiEchoTFit.m': an example script to fit mono-exponential T2 with multi-echo data. More advanced fit approaches (bi-exponential, EPG) will come soon
  • 'InversionRecoveryT1Fit.m': an example script to fit T1 with inversion recovery data.
  • 'CSD_Tractography_Script.m': an example script showcasing how to use the ExploreDTIInterface toolbox.
  • More examples will come in the next days.
Notes:
  • The file naming convention is to always indicate Niftis as .nii, even when they are actually compressed in .nii.gz. The code takes care of that, but expects only .nii as arguments in function calls!
  • Not everything has been checked yet - expect many bug fixes and new releases in the next time.
  • MRIToolkit relies on a couple of third party dependencies:
    • Elastix: 1) Either compile your own version or grab the executables for your platform here. 2) Copy the file "TemplateMRIToolkitDefineLocalVars.m" to your MATLAB default folder (user/MATLAB or Documents/MATLAB), rename the file as "MRIToolkitDefineLocalVars.m". 3) Edit the script, adjusting the variable MRIToolkit.Elastix.Location as needed.
    • NODDI toolbox: if you would like to try the mFOD method, you will need to add the NODDI toolbox to the MATLAB path.
    • ExploreDTI: While MRIToolkit is entirely self-sufficient (e.g. all needed ExploreDTI functions are bundled and adapted), the visualization of fiber tractograhy and other results will need ExploreDTI. Get it for free from Alexander Leemans.
  • This code is a work in progress. It will be updated without notice to ensure bug-fixes and the inclusion of best available methods
  • Most code is poorly commented and not general, but will be improved over releases.
License:
Keywords:
  • Magnetic Resonance Imaging (MRI)
  • Image segmentation
  • T1 quantification, Inversion Recovery
  • T2 quantification, spin echo multi echo
  • Extended Phase Graphs
  • Diffusion MRI (dMRI) - Diffusion Tensor Imaging (DTI) - Diffusion Kurtosis Imaging (DKI)
  • dMRI preprocessing - motion correction - eddy currents correction - EPI distortions correction
  • Fiber tractography - Constrained Spherical Deconvolution (CSD) - Generalized Richardson Lucy (GRL) - mFOD

Alberto De Luca - First published in 2019

mritoolkit's People

Contributors

delucaal avatar azhylka avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.