MRtrix3 / mrtrix3

MRtrix3 provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density
http://www.mrtrix.org
Mozilla Public License 2.0
293 stars 180 forks source link

Implement kurtosis metrics #822

Closed dchristiaens closed 8 months ago

dchristiaens commented 7 years ago

As we now have means to compute the diffusion kurtosis tensor in dwi2tensor, it would make sense to implement mean kurtosis, axial and radial kurtosis, and kurtosis anisotropy in tensor2metric too.

thijsdhollander commented 7 years ago

Yes, makes sense. I've actually looked into that once (when I added a couple of other common tensor metrics in there), but initially stopped pursuing it when I found out there's quite a few (different) definitions of some of those metrics, and didn't have the time to figure out which one(s) are the most "standard" or generally accepted ones. (e.g., see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4378654/ , but there's many other articles out there listing definitions if I remember well)

Anyone who's into that knows if there's such a consensus or standard around?

Slightly related: if there's interest/demand for it, we could look into implementing Brian Hansen's method for fast MK computation from a minimal acquisition protocol too (this one works directly on the DWI data, doesn't obtain the kurtosis tensor in between). They got interviewed for MRM highlights very recently: http://www.ismrm.org/qa-with-brian-hansen-sune-jespersen/

EmilieMcKinnon commented 7 years ago

Hi Daan and Thijs,

I believe there has been a consensus for a while regarding MK and Kax.

As you know, MK is defined by the diffusional kurtosis averaged over all possible directions. Analytically we use equation 55 in the following paper: Jensen JH, Helpern JA. MRI Quantification of Non-Gaussian Water Diffusion by Kurtosis Analysis. NMR in biomedicine. 2010;23(7):698-710. doi:10.1002/nbm.1518. Similarly, axial kurtosis is defined by the kurtosis along the diffusion eigenvector corresponding to the largest diffusion eigenvalue, or analytically we use equation 58 in the same paper as referenced above.

There has been a little more discussion regarding the Krad and KFA metrics.

As far as I understand, a consensus has been made on how to calculate Krad. We calculate Krad by averaging the directional kurtosis perpendicular to the first diffusion eigenvector (equation 59). Previously, people suggested to average the diffusional kurtosis along the second and third principal directions from the DT. Although it turned out that this was physically not optimal and did not result in a parameter that was rotationally invariant.

There is still some discussion going on regarding the KFA parameter. We would suggest to use the definition proposed in: Glenn, G. Russell, et al. "Quantitative assessment of diffusional kurtosis anisotropy." NMR in biomedicine 28.4 (2015): 448-459. We feel that this definition (norm(anisotropic part of KT) / norm(KT) ) is the most natural and most comparable to the original FA.

Lastly, another parameter we would find worth adding (I believe this is what Thijs was referring to) is the mean kurtosis tensor or MKT proposed by Jespersen, which can be calculated with a smaller set of diffusion directions. Keep in mind that the definition is physically distinct from the MK, rather than an alternative definition of the same thing. Hansen B, Lund TE, Sangill R, Jespersen SN. Experimentally and computationally fast method for estimation of mean kurtosis. Magn. Reson. Med. 2013; 69: 1754-1760.

Best,

Emilie

dchristiaens commented 7 years ago

Thanks @EmilieMcKinnon, that's a very helpful overview. I think we should initially focus on MK, K_ax and K_rad according to the definitions in Jensen et al. (2010) as these seem to be the most widely accepted, and think about adding KFA and others in the longer run.

The main hurdle for our codebase will likely be the Carlson elliptic integrals. They are available in GSL, but since we have outphased GSL in favour of Eigen we can't use that implementation anymore (at least not without reintroducing a dependency that we deliberately moved away from). It's going to be a bit of a hassle to implement these ourselves, although the numerical routines seem fairly straightforward.

thijsdhollander commented 7 years ago

Thanks a lot for following up on our little chat the other day @EmilieMcKinnon! 😄 That's really useful information. I agree with @dchristiaens we want to focus on the most accepted ones first, and then maybe build from there onwards. It's good to have some input from the experts in the DKI department. 😉

EmilieMcKinnon commented 7 years ago

You are welcome! @dchristiaens let me know if you need any help with the elliptic integrals, unfortunately I only have Matlab code that calculates them.

Lestropie commented 4 years ago

Bumping due to forum thread.

Lestropie commented 2 years ago

Has anyone made any attempt at this? I may want to for a local project but don't want to duplicate efforts.

bjeurissen commented 2 years ago

I have a GitHub repo with Matlab code for this. I can invite you to it?

jdtournier commented 2 years ago

No attempts from my side...

dchristiaens commented 2 years ago

Not from my side. Go for it!

On Thu, 21 Jul 2022, 08:33 J-Donald Tournier, @.***> wrote:

No attempts from my side...

— Reply to this email directly, view it on GitHub https://github.com/MRtrix3/mrtrix3/issues/822#issuecomment-1191427950, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABY67ZZAEPETHPIVVIWDOH3VVE7QPANCNFSM4CWKKJFQ . You are receiving this because you were mentioned.Message ID: @.***>

TheJaeger commented 2 years ago

Python code for computing common kurtosis metrics can be found in our PyDesigener repo (link to exact lines). We use the same tensor ordering as mrtrix so you may directly run that code.

We use formulas from papers that @EmilieMcKinnon referenced.

Lestropie commented 2 years ago

@bjeurissen It would be worthwhile to cross-check anything I implement against.

@TheJaeger Thanks for the link; I can duplicate those reasonably easily and we could cross-check.

As was raised earlier in this issue, it's not clear the extent of consensus around the definitions of these metrics. If there's been any evolution in such since the initial listing, would like to hear about it.

gonzoBlackMamba commented 2 years ago

@Lestropie Jens Jensen, @TheJaeger and I recently discussed this topic. We agree there is a consensus for K_ax and K_rad with formulas given in the papers referenced above by @EmilieMcKinnon. The same could be said for the KFA which has follow-up publications from Hansen and Jespersen (e.g., Hansen, B., & Jespersen, S. N. (2016). Kurtosis fractional anisotropy, its contrast and estimation by proxy. Scientific reports, 6, 23999. https://doi.org/10.1038/srep23999)

@dchristiaens and @thijsdhollander Rather than computing the Carlson elliptical integral directly, it would be sufficient and easier to calculate MK numerically using a large number (~1000) of equally spaced points for the integral.

Lestropie commented 2 years ago

Note to self: If computing MK numerically, make sure to use the integration weights to take a weighted mean across those directions (should move that code into src/directions/`).

Lestropie commented 8 months ago

Closed by #2520.