sct_dmri_denoise_patch2self

Utility function to denoise diffusion MRI images. Returns the denoised image and also the difference between the input and the output. The Patch2Self denoising algorithm is based on self-supervised denoising via statistical independence of noise, as described in the following publications:

  • Fadnavis et al. Patch2Self: Denoising Diffusion MRI with Self-supervised Learning. NeurIPS, 2020, Vol. 33. (https://arxiv.org/abs/2011.01355)

  • Schilling et al. Patch2Self denoising of diffusion MRI in the cervical spinal cord improves intra-cord contrast, signal modelling, repeatability, and feature conspicuity. medRxiv, 2021. (https://www.medrxiv.org/content/10.1101/2021.10.04.21264389v2)

The implementation is based on DIPY (https://docs.dipy.org/stable/examples_built/preprocessing/denoise_patch2self.html).

usage: sct_dmri_denoise_patch2self -i <file> -b <file> [-h]
                                   [-model {ols,ridge,lasso}] [-radius <int>]
                                   [-o <str>] [-v <int>]

MANDATORY ARGUMENTS

-i

Input NIfTI image to be denoised. Example: image_input.nii.gz

-b

Input bvals file corresponding to the NIfTI file to be denoised. Example: filename.bval

OPTIONAL ARGUMENTS

-model

Possible choices: ols, ridge, lasso

Type of regression model used for self-supervised training within Patch2Self.

Default: “ols”

-radius

Patch Radius used to generate p-neighbourhoods within Patch2Self. Notes:

  • A radius of 0 will use 1x1x1 p-neighbourhoods, a radius of 1 will use 3x3x3 p-neighbourhoods, and so on.

  • For anisotropic patch sizes, provide a comma-delimited list of 3 integers. (e.g. -radius 0,1,0). For isotropic patch sizes, provide a single int value (e.g. -radius 0).

Default: “0”

-o

Name of the output NIFTI image.

-v

Possible choices: 0, 1, 2

Verbosity. 0: Display only errors/warnings, 1: Errors/warnings + info messages, 2: Debug mode.

Default: 1