Improve Orientation transform to use the "space" (LPS vs RAS) of a metatensor by default #8473
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.
Fix for #8467
Description
As detailed in #8467, the
Orientation
transform currently always assumes a tensor's affine matrix is in RAS, regardless of themeta["space"]
attribute, leading to incorrect performance for LPS metatensors unless thelabels
are explicitly defined by the user (and it is not at all clear that this needs to be done or how it should be done).The code in this PR checks whether the input tensor is a metatensor with its affine defined in LPS space. If so, it adjusts the
labels
passed tonibabel.orientations.axcodes2ornt
to give the expected behaviour for LPS tensors.The default value of the
labels
parameter of theOrientation
transform (andOrientationD
) has changed from(('L', 'R'), ('P', 'A'), ('I', 'S'))
toNone
. However, since the behaviour ofnibabel.orientations.axcodes2ornt
when passedlabels=None
is equivalent to when passinglabels=(('L', 'R'), ('P', 'A'), ('I', 'S'))
, I would not consider this a breaking change.Types of changes
./runtests.sh -f -u --net --coverage
../runtests.sh --quick --unittests --disttests
.make html
command in thedocs/
folder.