dMRI-Lab 1.0
|
This demo illustrates most of the functions and utilities in the micro/ folder, i.e, the module related to the computational analysis of multi-shell dMRI data. More...
This demo illustrates most of the functions and utilities in the micro/ folder, i.e, the module related to the computational analysis of multi-shell dMRI data.
It is based on a linear convolutional model of the so-called ODF with an elemental impulse response corresponding to a prolate tensor with eigenvalues lpar and lperp.
This section illustrates the usage of the atti2micro, which is the core of micro-structure computation. It returns f (the volume fraction of confined, i.e. non-free water), lpar, and lperp ( the two eigenvalues of the elemental tensor in the linear convolution model). It is always assured that mlp<=lperp<=lpar<=ADC0 and that 0<=f<=1. In the simplest use case, the function reduces to the original Kaden's method, so that f=1 (except for the background) and no regularization is imposed to lpar and lperp:
Once the micro-structure model is available, computing the ODFs field is a spherical deconvolution problem. Since we are using Spherical Harmonics, this is a trivial task that reduces to a linear LS fitting of SH coefficients. The present section illustrates how to use the function micro2shodf. This may take a good while since we invert one matrix per voxel:
The color-by-orientation, FA, and ODFs field look quite reasonable even without any denoising (this is not always the case with HARDI). To avoid the large computation time associated to the inversion of the LS matrix at each voxel, we may think of a sub-optimal scheme where only one matrix is pre-computed and inverted for the whole data set:
The results look pretty similar to those obtained with the optimal estimation method, both for the color-coded/FA maps and the ODFs field.
The next three sections illustrate the computation of arbitrary order moments to characterize the diffusion process, i.e., they illustrate the usage of micro2moments. We start with the so-called 'full moments', computed as integrals in the whole 3-D space of either the attenaution signal or the EAP. This kind of moments depend just on the micro-structure (lpar and lperp) and not on the ODF. For the attenaution signal, E(q):
RTOP
QMSD
MSD
Axial moments depend on a direction provided at each voxel, typically the direction of maximum diffusion. But they could be otherwise computed over vector fields computed from tractography, or over any other meaningful vector field:
RTPP
Planar moments depend on a direction provided at each voxel, typically the direction of maximum diffusion. But they could be otherwise computed over vector fields computed from tractography, or over any other meaningful vector field. Planar moments will depend on both the micro-structure model and the ODF. Begin with E(q):
RTAP
The PA is related to the distance from the EAP (or, equivalently, E(q)) to its isotropic equivalent defined as its spherical average. In our framework, this reduces once again to a manipulation of the SH coefficients. In this case there is not an analytical closed-form available, so the calculations rely on precomputed integrals implemented in dmri_compute_PA_weights. However, it is unlikely that you need to explicitly call that function, since it will be invoked as needed by micro2pa, which is the function we illustrate in this section. In the simplest case,
However, the raw values of the PA are not well distributed over the range [0,1], so that a gamma correction is usually applied to improve its visual performance. You can fix this by properly tunning the optional input parameter epsilon:
The NG is related to the distance from the EAP (or, equivalently, E(q)) to its Gaussian equivalent, which may be estimated in several ways. In our framework, this reduces once again to a manipulation of the SH coefficients. In this case there is not an analytical closed-form available, so the calculations rely on precomputed integrals implemented in dmri_compute_PA_weights. However, it is unlikely that you need to explicitly call that function, since it will be invoked as needed by micro2ng, which is the function we illustrate in this section. In the simplest case,