Skip to content

Commit 8249094

Browse files
committed
changing _format_arg in WarpImageMultiTransform and adding simple tests (mostly copy of doctests)
1 parent 46f0b74 commit 8249094

File tree

2 files changed

+95
-2
lines changed

2 files changed

+95
-2
lines changed

nipype/interfaces/ants/resampling.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def _format_arg(self, opt, spec, val):
8686
isdefined(self.inputs.invert_affine):
8787
affine_counter += 1
8888
if affine_counter in self.inputs.invert_affine:
89-
series += ['-i'],
89+
series += ['-i']
9090
series += [transformation]
9191
return ' '.join(series)
9292
return super(WarpTimeSeriesImageMultiTransform, self)._format_arg(opt, spec, val)
@@ -195,7 +195,7 @@ def _format_arg(self, opt, spec, val):
195195
isdefined(self.inputs.invert_affine):
196196
affine_counter += 1
197197
if affine_counter in self.inputs.invert_affine:
198-
series += '-i',
198+
series += ['-i']
199199
series += [transformation]
200200
return ' '.join(series)
201201
return super(WarpImageMultiTransform, self)._format_arg(opt, spec, val)
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
2+
# vi: set ft=python sts=4 ts=4 sw=4 et:
3+
4+
from nipype.interfaces.ants import WarpImageMultiTransform, WarpTimeSeriesImageMultiTransform
5+
import os
6+
import pytest, pdb
7+
8+
9+
@pytest.fixture()
10+
def change_dir(request):
11+
orig_dir = os.getcwd()
12+
filepath = os.path.dirname( os.path.realpath( __file__ ) )
13+
datadir = os.path.realpath(os.path.join(filepath, '../../../testing/data'))
14+
os.chdir(datadir)
15+
16+
def move2orig():
17+
os.chdir(orig_dir)
18+
19+
request.addfinalizer(move2orig)
20+
21+
22+
23+
def test_WarpImageMultiTransform(change_dir):
24+
wimt = WarpImageMultiTransform()
25+
wimt.inputs.input_image = 'diffusion_weighted.nii'
26+
wimt.inputs.reference_image = 'functional.nii'
27+
wimt.inputs.transformation_series = ['func2anat_coreg_Affine.txt','func2anat_InverseWarp.nii.gz', \
28+
'dwi2anat_Warp.nii.gz','dwi2anat_coreg_Affine.txt']
29+
assert wimt.cmdline == 'WarpImageMultiTransform 3 diffusion_weighted.nii diffusion_weighted_wimt.nii -R functional.nii \
30+
func2anat_coreg_Affine.txt func2anat_InverseWarp.nii.gz dwi2anat_Warp.nii.gz dwi2anat_coreg_Affine.txt'
31+
32+
33+
def test_WarpImageMultiTransform_invaffine_1(change_dir):
34+
wimt = WarpImageMultiTransform()
35+
wimt.inputs.input_image = 'diffusion_weighted.nii'
36+
wimt.inputs.reference_image = 'functional.nii'
37+
wimt.inputs.transformation_series = ['func2anat_coreg_Affine.txt','func2anat_InverseWarp.nii.gz', \
38+
'dwi2anat_Warp.nii.gz','dwi2anat_coreg_Affine.txt']
39+
wimt.inputs.invert_affine = [1]
40+
assert wimt.cmdline == 'WarpImageMultiTransform 3 diffusion_weighted.nii diffusion_weighted_wimt.nii -R functional.nii \
41+
-i func2anat_coreg_Affine.txt func2anat_InverseWarp.nii.gz dwi2anat_Warp.nii.gz dwi2anat_coreg_Affine.txt'
42+
43+
44+
def test_WarpImageMultiTransform_invaffine_2(change_dir):
45+
wimt = WarpImageMultiTransform()
46+
wimt.inputs.input_image = 'diffusion_weighted.nii'
47+
wimt.inputs.reference_image = 'functional.nii'
48+
wimt.inputs.transformation_series = ['func2anat_coreg_Affine.txt','func2anat_InverseWarp.nii.gz', \
49+
'dwi2anat_Warp.nii.gz','dwi2anat_coreg_Affine.txt']
50+
wimt.inputs.invert_affine = [2]
51+
assert wimt.cmdline == 'WarpImageMultiTransform 3 diffusion_weighted.nii diffusion_weighted_wimt.nii -R functional.nii func2anat_coreg_Affine.txt func2anat_InverseWarp.nii.gz dwi2anat_Warp.nii.gz -i dwi2anat_coreg_Affine.txt'
52+
53+
54+
@pytest.mark.xfail(reason="dj: should it fail?")
55+
def test_WarpImageMultiTransform_invaffine_wrong(change_dir):
56+
wimt = WarpImageMultiTransform()
57+
wimt.inputs.input_image = 'diffusion_weighted.nii'
58+
wimt.inputs.reference_image = 'functional.nii'
59+
wimt.inputs.transformation_series = ['func2anat_coreg_Affine.txt','func2anat_InverseWarp.nii.gz', \
60+
'dwi2anat_Warp.nii.gz','dwi2anat_coreg_Affine.txt']
61+
wimt.inputs.invert_affine = [3]
62+
with pytest.raises(Exception):
63+
assert wimt.cmdline
64+
65+
66+
def test_WarpTimeSeriesImageMultiTransform(change_dir):
67+
wtsimt = WarpTimeSeriesImageMultiTransform()
68+
wtsimt.inputs.input_image = 'resting.nii'
69+
wtsimt.inputs.reference_image = 'ants_deformed.nii.gz'
70+
wtsimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt']
71+
assert wtsimt.cmdline == 'WarpTimeSeriesImageMultiTransform 4 resting.nii resting_wtsimt.nii \
72+
-R ants_deformed.nii.gz ants_Warp.nii.gz ants_Affine.txt'
73+
74+
75+
def test_WarpTimeSeriesImageMultiTransform_invaffine(change_dir):
76+
wtsimt = WarpTimeSeriesImageMultiTransform()
77+
wtsimt.inputs.input_image = 'resting.nii'
78+
wtsimt.inputs.reference_image = 'ants_deformed.nii.gz'
79+
wtsimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt']
80+
wtsimt.inputs.invert_affine = [1]
81+
assert wtsimt.cmdline == 'WarpTimeSeriesImageMultiTransform 4 resting.nii resting_wtsimt.nii \
82+
-R ants_deformed.nii.gz ants_Warp.nii.gz -i ants_Affine.txt'
83+
84+
85+
@pytest.mark.xfail(reason="dj: should it fail?")
86+
def test_WarpTimeSeriesImageMultiTransform_invaffine_wrong(change_dir):
87+
wtsimt = WarpTimeSeriesImageMultiTransform()
88+
wtsimt.inputs.input_image = 'resting.nii'
89+
wtsimt.inputs.reference_image = 'ants_deformed.nii.gz'
90+
wtsimt.inputs.transformation_series = ['ants_Warp.nii.gz','ants_Affine.txt']
91+
wtsimt.inputs.invert_affine = [0]
92+
with pytest.raises(Exception):
93+
wtsimt.cmdline

0 commit comments

Comments
 (0)