Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 4.84 KB

README.md

File metadata and controls

46 lines (31 loc) · 4.84 KB

LoRE-SD: Local Response function Estimation in Spherical Deconvolution

LoRE-SD is a novel diffusion MRI modelling technique making minimal assumptions on tissue microstructure. It is based on the spherical deconvolution paradigm in which the diffusion signal is decomposed as the spherical convolution of a response function $R$ and and ODF $F$.

$$ S\left(\theta,\phi\right)=R\left(\theta\right)\ast F\left(\theta,\phi\right) $$

LoRE-SD estimates the response function $F$ in every voxel. The response function is represented as a linear combination of Gaussian basis functions. Each Gaussian basis function $G$ is parameterised by an axial ($\lambda_\parallel$) and radial diffusivity ($\lambda_\perp$). By default, LoRE-SD uses a 10 by 10 grid of equally spaced $\lambda_\parallel$ and $\lambda_\perp$ values in the range $[0,4] \mu m^2/ms$. In line with physics, the radial diffusivity must be less than or equal to the axial diffusivity for each basis functions, effectively discarding half of the square grid.

Every Gaussian basis function is associated with a weight $0 \le f_{\lambda_\parallel, \lambda_\perp} \le 1$. During optimisation then, these weights and the ODF are jointly optimised to minimise the fitting error. A regularisation term promoting more isotropic response functions is employed to reduce erroneous ODF peaks.

The response function representation is used to generate scalar image maps mimicking an intra-axonal, extra-axonal and free water compartment. In addition, a response function anisotropy is defined, providing a metric to quantify signal anistropy. This is achieved by creating weight matrices that accentuate ($\lambda_\parallel, \lambda_\perp$) combinations of interest. E.g. an intra-axonal compartment can me mimicked by multiplying the response function representation in every voxel with a weight matrix emphasising basis functions with small $\lambda_\perp$.

In summary, LoRE-SD offers a framework for estimating data-driven, local response functions, enabling accurate glioma modelling and the development of new image contrasts.

This code makes use of MRtrix3 commands. Make sure you have a working installation installed and have added the binaries to your PATH.

Usage

  1. Clone the repo and run make install to install required dependencies and add some useful commands to the path. If you do not want to add console scripts to your path, run pip install -e ..

  2. Run the LoRE-SD algorithm on your dMRI data:
    lore_dwi2decomposition <input_dwi> <output_dir> [--reg <regularisation_parameter>] [--grid_size <grid_size>] [--cores <number_of_cores>] [--bvecs <bvecs>] [--bvals <bvals>]

    • <input_dwi>: Input DWI in MRtrix3 format (.mif) or NIfTI format (.nii.gz)
    • <output_dir>: Directory to write the output files to. Output files are odf.mif, response.mif and gaussian_fractions.mif
    • --mask <mask>: Path to the brain mask. If not present, a brain mask will be generated using dwi2mask.
    • --reg <regularisation_parameter>: (optional) Default is $10^{-3}$
    • --grid_size <grid_size>: (optional) Default is 10. This is the square grid size of the response function representation. Values are always linearly separated in $[0, 4] \mu m^2/ms$.
    • --cores <number_of_cores>: (optional) Default is 1. Number of cores to use for multiprocessing. As a reference, using 50 cores takes about 5 minutes to process a full DWI of the brain.
    • --bvecs <bvecs> --bvals <bvals>: Paths to bvecs and bvals file respectively if using NIfTI format.
    • --eval_matrix <Q>: Evaluation matrix (stored as .npy) used to enforce ODF non-negativity. Will be generated with 600 uniformly spread vectors if not present. Useful to avoid regenerating this matrix for multiple experiments.
  3. Analyze the ODF estimates and generated image contrasts. The basic image contrasts can be generated using:
    lore_decomposition2contrast <input_fractions> <output_dir>

    • <input_fractions>: Gaussian fractions estimated by LoRE-SD. Supplying gaussian_fractions.mif suffices.
    • <output_dir>: Directory to write the output files to. Output files are intra_axonal_constrast.mif, extra_axonal_contrast.mif and free_water_contrast.mif

    New contrasts can be generated by defining a contrast matrix which assigns a weight $0 \le w_{\lambda_\parallel, \lambda_\perp} \le 1$ to every Gaussian basis function $G_{\lambda_\parallel, \lambda_\perp}$ and calculating the inner product of this matrix with gaussian_fractions.mif. For the example contrasts, see src/optimisation/contrasts.py

Given two .mif files with ODF coefficients, the following command calculates the Angular Correlation Coefficient between the ODFs in every voxel. This functionality is useful when comparing ODF estimates of LoRE-SD to those of other software:
lore_angular_correlation <ODF1> <ODF2> <output_file>

Authors