Using signal attenuation

Hi MRtrix Team,

I understand that and why MRtrix performs spherical deconvolution from the signal amplitude rather than from the signal attenuation.

Unfortunately, my data shows a strong bias field that I did not really get rid off with the proposed tools (even when running multiple times).
So I would go the ‘old way’ of using the signal attenuation where the bias field is mostly eliminated.

Is it correct to divide the diffusion weighted data by the average b0 volume and multiply with the mean value of the average b0 volume before computing the response kernel and calling msdwi2fod?
Multiplying with the the mean of the average b0 would scale the data to a similar range as the signal amplitude.

An alternative would be to perform spherical deconvolution on the original data set and perform the normalisation afterwards by dividing the CSD coefficients voxel-wise by the average b0 volume and multiply with the mean b0 value.

What do you think?

Thank you very much,

Hi Jan,

First of all, did you know MRtrix now includes a new “dwibiascorrect” script that calls ANTs N4 bias correction? That might give you potentially more robust correction in data with extreme intensity inhomogeneity.

If you insist on using CSD on the signal attenuation, your first suggested approach would work, but as you know the interpretation in terms of AFD is then no longer correct.

Dividing fODFs with the b0 also alters the interpretation, so it really depends on your application. Essentially this would be an extreme sort of bias field correction in WM, but one that would suppress the fODF in regions with CSF PVE.


Hi Jan,
In case you have not already seen it, this tutorial includes an intro on the justification of a global intensity normalisation across subjects and pre-processing in MRtrix.

If your question about it being correct or not refers to it being the same thing / meaning / interpretation as using the signal amplitude, then the answers is a very clear no. It is something else, and ends up being an (often severe) overestimation of the free water, which scales down the FOD too much (beyond proportions of the true partial voluming with free water).

Apart from that, if you wish to go for the attenuation any way, there’s no need to multiply with the mean average b0 value for the sake of bringing it back in the original range. If you compute your response function straight from your “attenuation images”, it will scale along, and the CSD will end up in a typical range of FOD amplitudes any way. That’s, however, still separate from the issue of intensity normalisation across subjects: definitely give @Dave 's tutorial a read for some important points on that one.