-
Notifications
You must be signed in to change notification settings - Fork 28
feat(syn): Update totalFieldVarianceInVoxel space based on voxel resolution #487
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
feat(syn): Update totalFieldVarianceInVoxel space based on voxel resolution #487
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #487 +/- ##
==========================================
+ Coverage 83.98% 84.32% +0.34%
==========================================
Files 30 30
Lines 2828 2846 +18
Branches 367 367
==========================================
+ Hits 2375 2400 +25
+ Misses 384 376 -8
- Partials 69 70 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
4708c71 to
308f8ff
Compare
|
I've been reading ANTsX/ANTs#734, and it looks all measurements are relative to the fixed image, so I should change this from moving to fixed. |
308f8ff to
da18a46
Compare
da18a46 to
227f28b
Compare
| syn_config = data.load(f"sd_syn{'_sloppy' * sloppy}.json") | ||
|
|
||
| vox_params = pe.Node(niu.Function(function=_mm2vox), name="vox_params") | ||
| vox_params.inputs.registration_config = json.loads(syn_config.read_text()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we need to read the config outside the Registration node, we might want to extract the number of levels from it (e.g., len(config_dict['transforms']) instead of hard-code the magic number (of 2). It will be a bit trickier for handling masks, but a bit more robust, IMHO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But probably for another PR btw
Co-authored-by: Oscar Esteban <[email protected]>
2.13.0 (May 15, 2025) Feature release in the 2.13.x series. This release addresses some longstanding issues with the SyN-SDC workflow, improving the registration quality in adult humans by utilizing a spatial prior, as well as allowing Laplacians to be up- or down-weighted in the cost function, making it more usable across species. Additionally, this release allows for the use of ``EstimatedTotalReadoutTime`` or ``EstimatedEchoSpacing``, or a manually provided fallback ``TotalReadoutTime`` value, permitting the use of SDCFlows on datasets that do not have reliable timing information without introducing incorrect metadata into the datasets. * fix(syn): Re-enable priors respecting ``sd_priors`` argument (#488) * feat: Add workflow arguments for metadata estimates and fallback TRT (#479) * feat(syn): Update totalFieldVarianceInVoxel space based on voxel resolution (#487) * feat(syn): Allow changing laplacians weights in SyN registration metric (#484) * test(syn): Add a test to exercise SyN workflow creation and check parameters (#486)
2.13.0 (May 15, 2025) Feature release in the 2.13.x series. This release addresses some longstanding issues with the SyN-SDC workflow, improving the registration quality in adult humans by utilizing a spatial prior, as well as allowing Laplacians to be up- or down-weighted in the cost function, making it more usable across species. Additionally, this release allows for the use of ``EstimatedTotalReadoutTime`` or ``EstimatedEchoSpacing``, or a manually provided fallback ``TotalReadoutTime`` value, permitting the use of SDCFlows on datasets that do not have reliable timing information without introducing incorrect metadata into the datasets. * fix(syn): Re-enable priors respecting ``sd_priors`` argument (#488) * feat: Add workflow arguments for metadata estimates and fallback TRT (#479) * feat(syn): Update totalFieldVarianceInVoxel space based on voxel resolution (#487) * feat(syn): Allow changing laplacians weights in SyN registration metric (#484) * test(syn): Add a test to exercise SyN workflow creation and check parameters (#486)
The SyN transform parameters are:
The size of estimated displacements should not depend significantly on the voxel size. This change updates the totalFieldVarianceInVoxelSpace to mm values of 10mm and 0.5mm in the
sd_syn.jsonfiles, and adds an interface to convert these to voxels based on the resolution in the phase-encoding direction.