dmriprep
dmriprep copied to clipboard
ENH: Optional preprocessing steps for denoising, unringing and upsampling
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)
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.
Thank you @arokem . I'll keep thinking about how to QC these and look at the dipy implementations for denoising and resampling.
@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.