Skip to content

Add dwidenoise2 denoising option - #1071

Merged
tsalo merged 17 commits into
mainfrom
dwidenoise2
Aug 12, 2026
Merged

Add dwidenoise2 denoising option#1071
tsalo merged 17 commits into
mainfrom
dwidenoise2

Conversation

@tsalo

@tsalo tsalo commented Jul 13, 2026

Copy link
Copy Markdown
Member

Closes #1070.

Changes proposed in this pull request

  • Add dwidenoise2 as a --denoise-method option, with a DWIDenoise2 interface and the corresponding Dockerfile build (dwidenoise2, dwi2noise, and the bundled noise-estimation schedules).
  • Allow --denoise-method to take semicolon-delimited parameters, e.g. dwidenoise2;estimator:med;schedule:legacy, validated when the CLI is parsed.
  • Denoise complex-valued data with dwidenoise and dwidenoise2 when a phase series is available, and reject phase demodulation of magnitude-only data up front rather than failing partway through a run.
  • Build the denoiser node once in init_dwi_denoising_wf, so the magnitude and complex paths differ only in what feeds the denoiser and what consumes its output.
  • Connect the noise_image and bias_image outputs of the denoising workflow, which were previously unreachable.
  • Generate the dwidenoise2 boilerplate from the parameters actually in effect, defaults included, following the conditional citation list the command prints in its own help. Adds 10 references to boilerplate.bib.
  • Document that --dwi-denoise-window does not apply to dwidenoise2, whose patch sizes come from its schedule, and warn when a window is set with it.
  • Add the nibs test dataset to CI and the test data helpers.
  • Add tests covering patch2self, dwidenoise and dwidenoise2 on magnitude and complex data, plus unit tests for parameter parsing and boilerplate generation.

@tsalo tsalo added the enhancement New feature or request label Aug 5, 2026
@tsalo tsalo changed the title Draft DWIDenoise2 interface Add dwidenoise2 denoising option Aug 5, 2026
@codecov-commenter

codecov-commenter commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.33333% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 52.80%. Comparing base (713b370) to head (1d366ca).

Files with missing lines Patch % Lines
qsiprep/utils/misc.py 78.21% 12 Missing and 10 partials ⚠️
qsiprep/cli/parser.py 90.47% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1071      +/-   ##
==========================================
+ Coverage   51.62%   52.80%   +1.17%     
==========================================
  Files          71       71              
  Lines       10870    11064     +194     
  Branches     1212     1246      +34     
==========================================
+ Hits         5612     5842     +230     
+ Misses       4995     4953      -42     
- Partials      263      269       +6     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tsalo
tsalo marked this pull request as ready for review August 5, 2026 18:07
@tsalo
tsalo requested a review from mattcieslak August 5, 2026 18:07
@tsalo
tsalo merged commit 7529848 into main Aug 12, 2026
27 checks passed
@tsalo
tsalo deleted the dwidenoise2 branch August 12, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace dwidenoise with dwidenoise2

3 participants