From 8514156536b15098ec8b6374207c436ff231e5d4 Mon Sep 17 00:00:00 2001 From: Matthew Brett Date: Wed, 24 Feb 2016 18:21:16 -0800 Subject: [PATCH] TST: add tests against SPM resampling Build some test images by resampling with SPM, and test our resampling against SPM's resampling. --- nibabel/tests/data/.gitignore | 2 + nibabel/tests/data/anatomical.nii | Bin 0 -> 68002 bytes nibabel/tests/data/functional.nii | Bin 0 -> 43192 bytes nibabel/tests/data/make_moved_anat.py | 22 ++++++ nibabel/tests/data/reoriented_anat_moved.nii | Bin 0 -> 48400 bytes nibabel/tests/data/resample_using_spm.m | 15 ++++ nibabel/tests/data/resampled_anat_moved.nii | Bin 0 -> 4636 bytes nibabel/tests/data/to_canonical.m | 61 +++++++++++++++ nibabel/tests/test_processing.py | 74 ++++++++++++++++--- 9 files changed, 165 insertions(+), 9 deletions(-) create mode 100644 nibabel/tests/data/.gitignore create mode 100644 nibabel/tests/data/anatomical.nii create mode 100644 nibabel/tests/data/functional.nii create mode 100644 nibabel/tests/data/make_moved_anat.py create mode 100644 nibabel/tests/data/reoriented_anat_moved.nii create mode 100644 nibabel/tests/data/resample_using_spm.m create mode 100644 nibabel/tests/data/resampled_anat_moved.nii create mode 100644 nibabel/tests/data/to_canonical.m diff --git a/nibabel/tests/data/.gitignore b/nibabel/tests/data/.gitignore new file mode 100644 index 0000000000..215e61ce01 --- /dev/null +++ b/nibabel/tests/data/.gitignore @@ -0,0 +1,2 @@ +anat_moved.nii +resampled_functional.nii diff --git a/nibabel/tests/data/anatomical.nii b/nibabel/tests/data/anatomical.nii new file mode 100644 index 0000000000000000000000000000000000000000..2d48e4770dec0f9805b58c71b1ad06c13b26fe93 GIT binary patch literal 68002 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

}mN|kh{r!QFp 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 UN$ya`T3{AEoE65{&X_{~Ka4wB$^ZZW literal 0 HcmV?d00001 diff --git a/nibabel/tests/data/make_moved_anat.py b/nibabel/tests/data/make_moved_anat.py new file mode 100644 index 0000000000..6fba2d0902 --- /dev/null +++ b/nibabel/tests/data/make_moved_anat.py @@ -0,0 +1,22 @@ +""" Make anatomical image with altered affine + +* Add some rotations and translations to affine; +* Save as ``.nii`` file so SPM can read it. + +See ``resample_using_spm.m`` for processing of this generated image by SPM. +""" + +import numpy as np + +import nibabel as nib +from nibabel.eulerangles import euler2mat +from nibabel.affines import from_matvec + +img = nib.load('anatomical.nii') +some_rotations = euler2mat(0.1, 0.2, 0.3) +extra_affine = from_matvec(some_rotations, [3, 4, 5]) +moved_anat = nib.Nifti1Image(img.dataobj, + extra_affine.dot(img.affine), + img.header) +moved_anat.set_data_dtype(np.float32) +nib.save(moved_anat, 'anat_moved.nii') diff --git a/nibabel/tests/data/reoriented_anat_moved.nii b/nibabel/tests/data/reoriented_anat_moved.nii new file mode 100644 index 0000000000000000000000000000000000000000..2f2411d1153fc4a78bb914bde7986d0e99f7c566 GIT binary patch literal 48400 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 Xsba11v>1MmhIz>p8e6s6qP6}PW<$q_ literal 0 HcmV?d00001 diff --git a/nibabel/tests/data/to_canonical.m b/nibabel/tests/data/to_canonical.m new file mode 100644 index 0000000000..08d5abd327 --- /dev/null +++ b/nibabel/tests/data/to_canonical.m @@ -0,0 +1,61 @@ +function to_canonical(imgs, vox_sizes, prefix, hold) +% Resample images to canonical (transverse) orientation with given voxel sizes +% +% Inspired by ``reorient.m`` by John Ashburner: +% http://blogs.warwick.ac.uk/files/nichols/reorient.m +% +% Parameters +% ---------- +% imgs : char or cell array or struct array +% Images to resample to canonical orientation. +% vox_sizes : vector (3, 1), optional +% Voxel sizes for output image. +% prefix : char, optional +% Prefix for output resampled images, default = 'r' +% hold : float, optional +% Hold (resampling method) value, default = 3. + +if ~isstruct(imgs) + imgs = spm_vol(imgs); +end +if nargin < 2 + vox_sizes = [1 1 1]; +elseif numel(vox_sizes) == 1 + vox_sizes = [vox_sizes vox_sizes vox_sizes]; +end +vox_sizes = vox_sizes(:); +if nargin < 3 + prefix = 'r'; +end +if nargin < 4 + hold = 3; +end + +for vol_no = 1:numel(imgs) + vol = imgs{vol_no}(1); + % From: + % http://stackoverflow.com/questions/4165859/generate-all-possible-combinations-of-the-elements-of-some-vectors-cartesian-pr + sets = {[1, vol.dim(1)], [1, vol.dim(2)], [1, vol.dim(3)]}; + [x y z] = ndgrid(sets{:}); + corners = [x(:) y(:) z(:)]; + corner_coords = [corners ones(length(corners), 1)]'; + corner_mm = vol.mat * corner_coords; + min_xyz = min(corner_mm(1:3, :), [], 2); + max_xyz = max(corner_mm(1:3, :), [], 2); + % Make output volume + out_vol = vol; + out_vol.private = []; + out_vol.mat = diag([vox_sizes' 1]); + out_vol.mat(1:3, 4) = min_xyz - vox_sizes; + out_vol.dim(1:3) = ceil((max_xyz - min_xyz) ./ vox_sizes) + 1; + [dpath, froot, ext] = fileparts(vol.fname); + out_vol.fname = fullfile(dpath, [prefix froot ext]); + out_vol = spm_create_vol(out_vol); + % Resample original volume at output volume grid + plane_size = out_vol.dim(1:2); + for slice_no = 1:out_vol.dim(3) + resamp_affine = inv(spm_matrix([0 0 -slice_no]) * inv(out_vol.mat) * vol.mat); + slice_vals = spm_slice_vol(vol, resamp_affine, plane_size, hold); + out_vol = spm_write_plane(out_vol, slice_vals, slice_no); + end +end diff --git a/nibabel/tests/test_processing.py b/nibabel/tests/test_processing.py index 20eb218054..60ad23eb13 100644 --- a/nibabel/tests/test_processing.py +++ b/nibabel/tests/test_processing.py @@ -10,19 +10,22 @@ """ from __future__ import division, print_function +from os.path import dirname, join as pjoin + import numpy as np import numpy.linalg as npl -from ..optpkg import optional_package +from nibabel.optpkg import optional_package spnd, have_scipy, _ = optional_package('scipy.ndimage') -from ..processing import (sigma2fwhm, fwhm2sigma, adapt_affine, - resample_from_to, resample_to_output, smooth_image) -from ..nifti1 import Nifti1Image -from ..nifti2 import Nifti2Image -from ..orientations import flip_axis, inv_ornt_aff -from ..affines import AffineError, from_matvec, to_matvec -from ..eulerangles import euler2mat +import nibabel as nib +from nibabel.processing import (sigma2fwhm, fwhm2sigma, adapt_affine, + resample_from_to, resample_to_output, smooth_image) +from nibabel.nifti1 import Nifti1Image +from nibabel.nifti2 import Nifti2Image +from nibabel.orientations import flip_axis, inv_ornt_aff +from nibabel.affines import AffineError, from_matvec, to_matvec, apply_affine +from nibabel.eulerangles import euler2mat from numpy.testing import (assert_almost_equal, assert_array_equal) @@ -31,10 +34,12 @@ from nose.tools import (assert_true, assert_false, assert_raises, assert_equal, assert_not_equal) -from .test_spaces import assert_all_in, get_outspace_params +from nibabel.tests.test_spaces import assert_all_in, get_outspace_params +from nibabel.testing import assert_allclose_safely needs_scipy = skipif(not have_scipy, 'These tests need scipy') +DATA_DIR = pjoin(dirname(__file__), 'data') def test_sigma2fwhm(): # Test from constant @@ -339,3 +344,54 @@ def test_smooth_image(): assert_equal( smooth_image(img_ni2, 0, out_class=None).__class__, Nifti2Image) + + +def assert_spm_resampling_close(from_img, our_resampled, spm_resampled): + """ Assert our resampling is close to SPM's, allowing for edge effects + """ + # To allow for differences in the way SPM and scipy.ndimage handle off-edge + # interpolation, mask out voxels off edge + to_img_shape = spm_resampled.shape + to_img_affine = spm_resampled.affine + to_vox_coords = np.indices(to_img_shape).transpose((1, 2, 3, 0)) + # Coordinates of to_img mapped to from_img + to_to_from = npl.inv(from_img.affine).dot(to_img_affine) + resamp_coords = apply_affine(to_to_from, to_vox_coords) + # Places where SPM may not return default value but scipy.ndimage will (SPM + # does not return zeros <0.05 from image edges). + # See: https://github.com/nipy/nibabel/pull/255#issuecomment-186774173 + outside_vol = np.any((resamp_coords < 0) | + (np.subtract(resamp_coords, from_img.shape) > -1), + axis=-1) + spm_res = np.where(outside_vol, np.nan, np.array(spm_resampled.dataobj)) + assert_allclose_safely(our_resampled.dataobj, spm_res, rtol=1e-4, atol=1e-5) + assert_almost_equal(our_resampled.affine, spm_resampled.affine, 5) + + +def test_against_spm_resample(): + # Test resampling against images resampled with SPM12 + # anatomical.nii has a diagonal -2, 2 2 affine; + # functional.nii has a diagonal -4, 4 4 affine; + # These are a bit boring, so first add some rotations and translations to + # the anatomical image affine, and then resample to the first volume in the + # functional, and compare to the same thing in SPM. + # See ``make_moved_anat.py`` script in this directory for input to SPM. + anat = nib.load(pjoin(DATA_DIR, 'anatomical.nii')) + func = nib.load(pjoin(DATA_DIR, 'functional.nii')) + some_rotations = euler2mat(0.1, 0.2, 0.3) + extra_affine = from_matvec(some_rotations, [3, 4, 5]) + moved_anat = nib.Nifti1Image(anat.get_data().astype(float), + extra_affine.dot(anat.affine), + anat.header) + one_func = nib.Nifti1Image(func.dataobj[..., 0], + func.affine, + func.header) + moved2func = resample_from_to(moved_anat, one_func, order=1, cval=np.nan) + spm_moved = nib.load(pjoin(DATA_DIR, 'resampled_anat_moved.nii')) + assert_spm_resampling_close(moved_anat, moved2func, spm_moved) + # Next we resample the rotated anatomical image to output space, and compare + # to the same operation done with SPM (our own version of 'reorient.m' by + # John Ashburner). + moved2output = resample_to_output(moved_anat, 4, order=1, cval=np.nan) + spm2output = nib.load(pjoin(DATA_DIR, 'reoriented_anat_moved.nii')) + assert_spm_resampling_close(moved_anat, moved2output, spm2output);