Skip to content

Commit 3ff7407

Browse files
committed
fix: update many apply() calls
1 parent a150da4 commit 3ff7407

File tree

4 files changed

+45
-25
lines changed

4 files changed

+45
-25
lines changed

nitransforms/cli.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from .linear import load as linload
77
from .nonlinear import load as nlinload
8+
from .resampling import apply
89

910

1011
def cli_apply(pargs):
@@ -38,7 +39,8 @@ def cli_apply(pargs):
3839
# ensure a reference is set
3940
xfm.reference = pargs.ref or pargs.moving
4041

41-
moved = xfm.apply(
42+
moved = apply(
43+
xfm,
4244
pargs.moving,
4345
order=pargs.order,
4446
mode=pargs.mode,

nitransforms/tests/test_base.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from ..base import SpatialReference, SampledSpatialData, ImageGrid, TransformBase
88
from .. import linear as nitl
9+
from ..resampling import apply
910

1011

1112
def test_SpatialReference(testdata_path):
@@ -94,19 +95,21 @@ def _to_hdf5(klass, x5_root):
9495
# Test identity transform
9596
xfm = TransformBase()
9697
xfm.reference = fname
98+
9799
with pytest.raises(TypeError):
98100
_ = xfm.ndim
99-
moved = xfm.apply(fname, order=0)
101+
moved = apply(xfm, fname, order=0)
100102
assert np.all(
101103
imgdata == np.asanyarray(moved.dataobj, dtype=moved.get_data_dtype())
102104
)
103105

104106
# Test identity transform - setting reference
105107
xfm = TransformBase()
106108
xfm.reference = fname
109+
107110
with pytest.raises(TypeError):
108111
_ = xfm.ndim
109-
moved = xfm.apply(str(fname), reference=fname, order=0)
112+
moved = apply(xfm, str(fname), reference=fname, order=0)
110113
assert np.all(
111114
imgdata == np.asanyarray(moved.dataobj, dtype=moved.get_data_dtype())
112115
)
@@ -126,7 +129,7 @@ def _to_hdf5(klass, x5_root):
126129
)
127130
]
128131
)
129-
giimoved = xfm.apply(fname, reference=gii, order=0)
132+
giimoved = apply(xfm, fname, reference=gii, order=0)
130133
assert np.allclose(giimoved.reshape(xfm.reference.shape), moved.get_fdata())
131134

132135
# Test to_filename

nitransforms/tests/test_io.py

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
)
2929
from nitransforms.io.base import LinearParameters, TransformIOError, TransformFileError
3030
from nitransforms.conftest import _datadir, _testdir
31+
from nitransforms.resampling import apply
32+
3133

3234
LPS = np.diag([-1, -1, 1, 1])
3335
ITK_MAT = LPS.dot(np.ones((4, 4)).dot(LPS))
@@ -497,10 +499,13 @@ def test_afni_oblique(tmpdir, parameters, swapaxes, testdata_path, dir_x, dir_y,
497499
assert np.allclose(card_aff, nb.load("deob_3drefit.nii.gz").affine)
498500

499501
# Check that nitransforms can emulate 3drefit -deoblique
500-
nt3drefit = Affine(
501-
afni._cardinal_rotation(img.affine, False),
502-
reference="deob_3drefit.nii.gz",
503-
).apply("orig.nii.gz")
502+
nt3drefit = apply(
503+
Affine(
504+
afni._cardinal_rotation(img.affine, False),
505+
reference="deob_3drefit.nii.gz",
506+
),
507+
"orig.nii.gz",
508+
)
504509

505510
diff = (
506511
np.asanyarray(img.dataobj, dtype="uint8")
@@ -509,10 +514,13 @@ def test_afni_oblique(tmpdir, parameters, swapaxes, testdata_path, dir_x, dir_y,
509514
assert np.sqrt((diff[10:-10, 10:-10, 10:-10] ** 2).mean()) < 0.1
510515

511516
# Check that nitransforms can revert 3drefit -deoblique
512-
nt_undo3drefit = Affine(
513-
afni._cardinal_rotation(img.affine, True),
514-
reference="orig.nii.gz",
515-
).apply("deob_3drefit.nii.gz")
517+
nt_undo3drefit = apply(
518+
Affine(
519+
afni._cardinal_rotation(img.affine, True),
520+
reference="orig.nii.gz",
521+
),
522+
"deob_3drefit.nii.gz",
523+
)
516524

517525
diff = (
518526
np.asanyarray(img.dataobj, dtype="uint8")
@@ -531,16 +539,21 @@ def test_afni_oblique(tmpdir, parameters, swapaxes, testdata_path, dir_x, dir_y,
531539
assert np.allclose(deobaff, deobnii.affine)
532540

533541
# Check resampling in deobliqued grid
534-
ntdeobnii = Affine(np.eye(4), reference=deobnii.__class__(
535-
np.zeros(deobshape, dtype="uint8"),
536-
deobaff,
537-
deobnii.header
538-
)).apply(img, order=0)
542+
ntdeobnii = apply(
543+
Affine(np.eye(4), reference=deobnii.__class__(
544+
np.zeros(deobshape, dtype="uint8"),
545+
deobaff,
546+
deobnii.header
547+
)),
548+
img,
549+
order=0,
550+
)
539551

540552
# Generate an internal box to exclude border effects
541553
box = np.zeros(img.shape, dtype="uint8")
542554
box[10:-10, 10:-10, 10:-10] = 1
543-
ntdeobmask = Affine(np.eye(4), reference=ntdeobnii).apply(
555+
ntdeobmask = apply(
556+
Affine(np.eye(4), reference=ntdeobnii),
544557
nb.Nifti1Image(box, img.affine, img.header),
545558
order=0,
546559
)

nitransforms/tests/test_linear.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from nibabel.affines import from_matvec
1414
from nitransforms import linear as nitl
1515
from nitransforms import io
16+
from nitransforms.resampling import apply
1617
from .utils import assert_affines_by_filename
1718

1819
RMSE_TOL = 0.1
@@ -285,7 +286,7 @@ def test_apply_linear_transform(tmpdir, get_testdata, get_testmask, image_orient
285286
assert exit_code == 0
286287
sw_moved_mask = nb.load("resampled_brainmask.nii.gz")
287288

288-
nt_moved_mask = xfm.apply(msk, order=0)
289+
nt_moved_mask = apply(xfm, msk, order=0)
289290
nt_moved_mask.set_data_dtype(msk.get_data_dtype())
290291
nt_moved_mask.to_filename("ntmask.nii.gz")
291292
diff = np.asanyarray(sw_moved_mask.dataobj) - np.asanyarray(nt_moved_mask.dataobj)
@@ -305,7 +306,7 @@ def test_apply_linear_transform(tmpdir, get_testdata, get_testmask, image_orient
305306
sw_moved = nb.load("resampled.nii.gz")
306307
sw_moved.set_data_dtype(img.get_data_dtype())
307308

308-
nt_moved = xfm.apply(img, order=0)
309+
nt_moved = apply(xfm, img, order=0)
309310
diff = (
310311
np.asanyarray(sw_moved.dataobj, dtype=sw_moved.get_data_dtype())
311312
- np.asanyarray(nt_moved.dataobj, dtype=nt_moved.get_data_dtype())
@@ -314,7 +315,7 @@ def test_apply_linear_transform(tmpdir, get_testdata, get_testmask, image_orient
314315
# A certain tolerance is necessary because of resampling at borders
315316
assert np.sqrt((diff[brainmask] ** 2).mean()) < RMSE_TOL
316317

317-
nt_moved = xfm.apply("img.nii.gz", order=0)
318+
nt_moved = apply(xfm, "img.nii.gz", order=0)
318319
diff = (
319320
np.asanyarray(sw_moved.dataobj, dtype=sw_moved.get_data_dtype())
320321
- np.asanyarray(nt_moved.dataobj, dtype=nt_moved.get_data_dtype())
@@ -343,22 +344,23 @@ def test_LinearTransformsMapping_apply(tmp_path, data_path, testdata_path):
343344
assert isinstance(hmc, nitl.LinearTransformsMapping)
344345

345346
# Test-case: realign functional data on to sbref
346-
nii = hmc.apply(
347-
testdata_path / "func.nii.gz", order=1, reference=testdata_path / "sbref.nii.gz"
347+
nii = apply(
348+
hmc, testdata_path / "func.nii.gz", order=1, reference=testdata_path / "sbref.nii.gz"
348349
)
349350
assert nii.dataobj.shape[-1] == len(hmc)
350351

351352
# Test-case: write out a fieldmap moved with head
352353
hmcinv = nitl.LinearTransformsMapping(
353354
np.linalg.inv(hmc.matrix), reference=testdata_path / "func.nii.gz"
354355
)
355-
nii = hmcinv.apply(testdata_path / "fmap.nii.gz", order=1)
356+
nii = apply(hmcinv, testdata_path / "fmap.nii.gz", order=1)
356357
assert nii.dataobj.shape[-1] == len(hmc)
357358

358359
# Ensure a ValueError is issued when trying to do weird stuff
359360
hmc = nitl.LinearTransformsMapping(hmc.matrix[:1, ...])
360361
with pytest.raises(ValueError):
361-
hmc.apply(
362+
apply(
363+
hmc,
362364
testdata_path / "func.nii.gz",
363365
order=1,
364366
reference=testdata_path / "sbref.nii.gz",

0 commit comments

Comments
 (0)