dmriprep icon indicating copy to clipboard operation
dmriprep copied to clipboard

ENH: Optional preprocessing steps for denoising, unringing and upsampling

Open josephmje opened this issue 6 years ago • 3 comments

I'm relatively new to dwi preprocessing. Would adding the following steps (added the mrtrix commands) as optional steps before eddy be useful?

  • denoising (dwidenoise)
  • unringing (mrdegibbs)
  • upsampling (mrresize)

josephmje avatar Feb 21 '19 14:02 josephmje

I think that all of these are potentially useful in one way or another.

In order of (my) preference:

Unringing is definitely useful, especially if the data is then going into models that are sensitive to ringing artifacts (e.g., DKI).

Denoising also useful. There are a few ways to go here -- the implementation in mrtrix looks useful, and there are other options implemented in dipy: both local PCA, as well as NLMeans denoising.

For both of these, we'd need to think a little bit more about how this interacts with eddy. I am not 100% sure that they don't break some of the assumptions that eddy makes.

I would not upsample DWI data, but resampling can sometimes be useful. For example, if you worry about anisotropic voxel dimensions. I would use dipy to do that, though, to reduce the non-Python dependency.

For each of these, we'd need to also think of useful diagnostic visualizations to show the user.

arokem avatar Feb 21 '19 16:02 arokem

Thank you @arokem . I'll keep thinking about how to QC these and look at the dipy implementations for denoising and resampling.

josephmje avatar Feb 21 '19 17:02 josephmje

@arokem FWIW, the Mrtrix processing steps, including as implemented in the bids/mrtrix3_connectome Docker (Rob Smith from Mrtrix is the package maintainer) as well as this guide (https://osf.io/fkyht/) recommend both denoising and unringing prior to eddy.

araikes avatar Mar 13 '19 15:03 araikes