Repository navigation
tools.rovir_fov: ROVir coil compression from non-Cartesian samples, rejecting what lies past the field of view - #168
Merged
Conversation
…s outside the field of view, then SVD to the virtual coils (WIP) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MFB6QMaLvegueS4t1MX9Hz
…d from them all Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MFB6QMaLvegueS4t1MX9Hz
mcencini
marked this pull request as ready for review
November 3, 2026 18:34
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Matteo · project thread
Gridding onto the field of view without oversampling (iGROG) folds whatever lies past its edge, such as the neck below a head, back into the image.
tools.rovir_fov(kspace, traj, coils, keep=None, size=48, extent=2.0, iterations=15, return_energy=False)removes that interference before the recon:linop.NUFFT's adjoint onto asizeimage coveringextent× the FOV. One Pipe-Menon density (estimate_density) serves every readout.tools.rovir(BART) solves the generalized eigenproblem, and its orthonormalization keeps whitened noise white.keepbest directions are kept, then SVD-compressed tocoils. ROVir alone keeps weak directions: on Deli-CS it kept only a fifth of the brain's energy.tools.ccapply(p=coils), and optionally the energy kept and the outside/inside ratio.This moves
mri2qmap.data.rovirfrom mcencini/mri2qmap-bartorch v0.2.0 upstream. There, ROVir 36 then SVD to 6 coils removes the iGROG top-of-head aliasing on val_case000.Tests:
tests/test_rovir_fov.pychecks two things on a synthetic case. A source past the FOV seen by its own coils is rejected while one inside is kept, with orthonormal virtual coils. Andccapplyapplies the matrix as the stated virtual coils. Locally, with the 0.0.19 library,test_rovir_fov,test_docs,test_docstrings,test_namespaceandtest_toolsgave 139 passed and 2 skipped. A docs row has been added indocs/api/tools.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01MFB6QMaLvegueS4t1MX9Hz