Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dwidenoise enhancements list #3023

Open
9 tasks
Lestropie opened this issue Oct 9, 2024 · 0 comments
Open
9 tasks

dwidenoise enhancements list #3023

Lestropie opened this issue Oct 9, 2024 · 0 comments
Labels
enhancement meta Meta-issue grouping multiple issues / PRs wishlist

Comments

@Lestropie
Copy link
Member

Lestropie commented Oct 9, 2024

There have been multiple potential enhancements to dwidenoise discussed. While there may be additional ideas for improving denoising that may be kept private as research developments, this list is items that are hopefully acceptable for public listing for the purpose of participant recruitment.

  • Evaluate demeaning: dwidenoise: Add option -demean #2363
    Use of single-precision floating-point with an imprecise decomposition algorithm can lead to artifacts in noise estimation & rank selection. One potential solution proposed some time ago was to explicitly demean the signal, storing that mean as a signal component to be included in the output series. Doing so however necessitates ensuring that the rank estimation does not become biased.

  • Alternative decomposition: dwidenoise: try using bidiagonal divide and conquer SVD #2906
    Simply changing the decomposition used from the Eigen library may improve precision, though at the cost of computation time. This should ideally be evaluated across multiple use cases.

  • Modify rank estimation: dwidenoise: Modified rank estimation #2591
    May be possible to directly translate the modified estimators from externally published work to the MRtrix3 implementation. Would need to contrast against the existing modification of @jelleveraart's estimator as "Exp2".

  • Facilitate two-pass approach: ENH dwidenoise: Two-pass approach #2274
    This could be used to stabilise against outliers in noise level estimation. It could also be used in pipelines that explicitly separate between the estimation of corrections to be applied vs. the application of those corrections.

  • Spherical kernel: ENH dwidenoise: Spherical kernel #2742
    Already published; having implemented would reduce issues around kernel size selection, and could also be used to mitigate against issues of kernel size / independence at FoV extremities.

  • Handle >4D data: ENH dwidenoise: Support >4D data #3021
    Would make the method more amenable in particular to multi-echo fMRI data.

  • Soft component thresholding: ENH dwidenoise: Soft component thresholding #3022
    Would mitigate quantisation effects due to a component being just above vs. just below the MP distribution cutoff. May improve denoising of datasets with a very small number of volumes.

  • Overcomplete local PCA: ENH dwidenoise: Overcomplete local PCA #3024
    Makes output reconstructed DWI volumes a weighted sum of the results of multiple decompositions, rather than being dependent on the single PCA rank reduction at that voxel.

Also:

  • Build dataset of exemplar series for denoising efficacy evaluation
    Sometimes we hear about a particular dataset where the denoising performs poorly. We're also now using this method for multi-echo fMRI data in addition to DWI data. So it would be good to start building a dataset of different acquisitions of different quality, so that methods and heuristics can be refined to try to make the implementation robust against such variation, or to provide instructions on recommended settings in different scenarios.
@Lestropie Lestropie added enhancement wishlist meta Meta-issue grouping multiple issues / PRs labels Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement meta Meta-issue grouping multiple issues / PRs wishlist
Projects
None yet
Development

No branches or pull requests

1 participant