Skip to content

feat: Add flag to fallback to Estimated* metadata or a passed value for TotalReadoutTime #3423

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

Merged
merged 6 commits into from
May 16, 2025

Conversation

effigies
Copy link
Member

This flag provides two additional ways to retrieve TotalReadoutTime. If EstimatedTotalReadoutTime or EstimatedEffectiveEchoSpacing are defined, the user can pass --fallback-total-readout-time estimated to direct fMRIPrep to use these.

This could be turned on by default, but I don't think this is prudent. The reason that dcm2niix does not simply say TotalReadoutTime or EffectiveEchoSpacing is not to misrepresent the confidence that these are correct. Previously, users had to actively remove the Estimated to accept the estimates, and I don't think we want to eliminate the conscious decision. However, we can make it so that users do not need to modify their datasets to accept them.

Closes #3009.

@effigies effigies force-pushed the enh/force-total-readout-time branch from a535ac2 to f63204f Compare January 29, 2025 17:37
Copy link

codecov bot commented Jan 29, 2025

Codecov Report

Attention: Patch coverage is 52.17391% with 11 lines in your changes missing coverage. Please review.

Project coverage is 72.79%. Comparing base (9da3867) to head (da9fc85).
Report is 7 commits behind head on master.

Files with missing lines Patch % Lines
fmriprep/cli/parser.py 33.33% 6 Missing ⚠️
fmriprep/workflows/base.py 42.85% 4 Missing ⚠️
fmriprep/interfaces/resampling.py 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3423      +/-   ##
==========================================
- Coverage   72.90%   72.79%   -0.12%     
==========================================
  Files          57       57              
  Lines        4444     4462      +18     
  Branches      576      577       +1     
==========================================
+ Hits         3240     3248       +8     
- Misses       1076     1086      +10     
  Partials      128      128              

☔ View full report in Codecov by Sentry.
📢 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.

@effigies effigies force-pushed the enh/force-total-readout-time branch from 61524d1 to bbf85e5 Compare May 15, 2025 18:48
@effigies effigies requested a review from Copilot May 15, 2025 18:49
Copilot

This comment was marked as resolved.

@effigies
Copy link
Member Author

Will merge on pass unless stopped.

@effigies effigies force-pushed the enh/force-total-readout-time branch 2 times, most recently from 4b6aaaf to bbf85e5 Compare May 15, 2025 23:28
@effigies effigies merged commit f3464b5 into nipreps:master May 16, 2025
19 of 21 checks passed
effigies added a commit that referenced this pull request May 21, 2025
25.1.0 (May 21, 2025)

New feature release in the 25.1.x series.

This release includes a small fix related to interpolations on the bounds
of the image field-of-view. This improves consistency with prior versions
of fMRIPrep for data with limited fields-of-view or small bounding boxes.

This release also adds support for providing fallback values for
``TotalReadoutTime`` metadata.
For Philips datasets, if ``EstimatedTotalReadoutTime`` or
``EstimatedEffectiveEchoSpacing`` are available, you can use these
by passing ``--fallback-total-readout-time estimated``.
For datasets with no readout time information, a numeric value can be passed,
for example, ``--fallback-total-readout-time 0.05``.
If the readout time information is known, it is preferable to encode directly
in the dataset, but there are cases where it is better to explicitly pass the
value to the software than inject uncertain metadata into the dataset.
In particular, the true readout time is not necessary for SyN-SDC, but a value
is nonetheless needed in order to estimate the inhomogeneity field.

This release is a long-term-support *candidate*. We will be performing
extensive tests and monitoring bug reports over the next couple of months
to determine whether issues can be addressed without making breaking changes.

Structural processing changes
-----------------------------

This release pins a version of sMRIPrep (0.18) that correctly handles precomputed
tissue probability maps.
The FAST segmentation also now skips an internal bias field correction step
that is redundant with ANTs N4 correction,
and may be inappropriate for non-human populations.

Fieldmap processing changes
---------------------------

This release pins a version of SDCFlows (2.13) that includes several improvements to
the SyN-SDC method.
In particular, the fieldmap prior that constrained the scope of displacements
was reintroduced and refined.

All merged pull requests
------------------------

* FIX: Use nearest mode for extrapolating data outside image boundaries (#3453)
* ENH: Replace c3d_affine_tool with a ConvertAffine interface (#3464)
* ENH: Add flag to fallback to Estimated* metadata or a passed value for TotalReadoutTime (#3423)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ensure per-BOLD SyN-SDC does not require TotalReadoutTime
1 participant