Noise correction

Dear all,

Regarding the noise correction, I was wondering whether I should perform both the Rician bias correction using the magnitude and phase images, and the dwidenoise Ext 2. I suppose that because Rician bias corrects for non-gaussian noise and dwidenoise Ext 2 does not, these two methods could be used to supplement each other?

Many thanks for your help!

Greetings,
Chris

Hi Chris,

I guess before we can answer that question, you may need to specify what you mean by ‘the Rician bias correction’. There’s a number of approaches available, and I doubt they’d all have equivalent statistical properties.

But in general, I would suggest that any Rician bias correction is likely to introduce more non-Gaussian behaviour in the low SNR regime than was originally present in the first place. Yes, magnitude data has a non-Gaussian noise distribution at very low SNR, but it is nonetheless very well approximated as Gaussian with an offset (and slightly lower standard deviation), which means it can still be denoised very effectively by dwidenoise – though that will undeniably not reduce the Rician-induced bias. I would personally denoise first unless I could verify that the noise distribution post-correction was not adversely affected (with respect to the assumptions of the MP-PCA denoising algorithm).

That said, if you were to apply a Rician bias correction procedure after denoising, that may not work well either since the amount of correction will depend on the estimated noise level – and the amount of noise in the data would obviously be much lower post-denoising, whereas the associated bias would remain unchanged. You could use the noise map produced by dwidenoise for that, if your approach accepts an independent noise estimate. However, I suspect this may not be possible in all cases, it’ll depend on exactly what you’re using.

In general, we would recommend denoising the complex data if you have access to it, since that solves the problem very neatly: the data should be Normally distributed in the complex domain, and the denoising naturally reduces the Rician bias since it happens before the magnitude transform.

Cheers!
Donald

Dear Donald,

Thanks for your reply. Regarding the Rician bias correction, I am referring to the method described in the dwi denoising section of the documentation:

Note that dwidenoise does not correct for non-Gaussian noise biases present in magnitude-reconstructed MRI images. Including MRI phase images can reduce such Rician bias [CorderoGrande2019], and the command now supports complex input data. To this end, users can run:

mrcalc dwi_magnitude.mif dwi_phase_rad.mif -polar dwi_complex.mif
dwidenoise dwi_complex.mif out.mif -noise noise.mif
mrcalc out.mif -abs out_magnitude.mif

Where dwi_magnitude.mif and dwi_phase_rad.mif are the magnitude and phase images respectively. Note that the code above assumes that the phase is scaled in radians.

So you would recommend to use only the dwidenoise Exp 2 instead of also correcting for Rician bias, because a correction of Rician bias would potentially be affected by denoising and denoising by Rician bias correction?

And as you said, combining both dwidenoise Exp 2 and Rician bias correction would be possible using the noise map produced by dwidenoise. How could this be implemented?

The data that I am using have b0, b1000, and b2500 in AP direction, and a b0 in PA direction.

Greetings,
Chris

Hi Chris,

Ok, the Rican bias correction mentioned in the docs isn’t really a correction as such – certainly not the way I’d expect most people to understand it. It’s a way to massively reduce the bias from occurring in the first place, by operating on the complex data before the magnitude transform (where the bias is actually introduced). But it’s only applicable for data where the phase information is available, which isn’t generally the case. If you have suitable data, that’s great. But bear in mind that none of the steps listed can actually be considered to be ‘the Rician correction’ step: what is suggested is to collate the data as a complex image (using the phase information), denoise that, then take the magnitude transform. That sequence happens to produce better denoising with a big reduction in the Rician bias. So there’s no need to worry about which way round it goes, there’s only one way this works, and no actual Rician bias correction step as such.

This contrasts with other approaches to Rician bias correction, which would generally try to correct magnitude data, without access to the phase information. This typically involves modelling the noise distribution and estimating the noise level, and in my opinion rarely makes much of a difference…

Hope this all makes sense?
Cheers,
Donald

Dear Donald,

Many thanks for your clear and thorough reply!

Greetings,
Chris