Skip to content

Commit 5acb6dc

Browse files
author
Shoshana Berleant
committed
modify tests for new param
1 parent 74b804e commit 5acb6dc

File tree

2 files changed

+43
-18
lines changed

2 files changed

+43
-18
lines changed

nipype/interfaces/nilearn.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ class SignalExtractionInputSpec(BaseInterfaceInputSpec):
4747
include_global = traits.Bool(False, usedefault=True, mandatory=False,
4848
desc='If True, include an extra column '
4949
'labeled "global", with values calculated from the entire brain '
50-
'(instead of just regions)')
50+
'(instead of just regions). Only has effect with 4D probability '
51+
'maps.')
5152
detrend = traits.Bool(False, usedefault=True, mandatory=False,
5253
desc='If True, perform detrending using nilearn.')
5354

nipype/interfaces/tests/test_nilearn.py

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,38 @@ def setUp(self):
3838
utils.save_toy_nii(self.fake_label_data, self.filenames['label_files'])
3939

4040
@skipif(no_nilearn)
41-
def test_signal_extraction(self):
41+
def test_signal_extract_no_shared(self):
4242
# run
4343
iface.SignalExtraction(in_file=self.filenames['in_file'],
4444
label_files=self.filenames['label_files'],
45-
class_labels=self.labels).run()
45+
class_labels=self.labels,
46+
incl_shared_variance=False).run()
4647
# assert
4748
self.assert_expected_output(self.labels, self.base_wanted)
4849

4950

5051
@skipif(no_nilearn)
5152
@raises(ValueError)
52-
def test_signal_extraction_bad_label_list(self):
53+
def test_signal_extr_bad_label_list(self):
5354
# run
5455
iface.SignalExtraction(in_file=self.filenames['in_file'],
5556
label_files=self.filenames['label_files'],
56-
class_labels=['bad']).run()
57+
class_labels=['bad'],
58+
incl_shared_variance=False).run()
5759

5860
@skipif(no_nilearn)
59-
def test_signal_extraction_equiv_4d(self):
60-
self._test_4d_label(self.base_wanted, self.fake_equiv_4d_label_data)
61+
def test_signal_extr_equiv_4d_no_shared(self):
62+
self._test_4d_label(self.base_wanted, self.fake_equiv_4d_label_data,
63+
incl_shared_variance=False)
6164

6265
@skipif(no_nilearn)
63-
def test_signal_extraction_4d(self):
64-
self._test_4d_label(self.fourd_wanted, self.fake_4d_label_data)
66+
def test_signal_extr_4d_no_shared(self):
67+
# set up & run & assert
68+
self._test_4d_label(self.fourd_wanted, self.fake_4d_label_data, incl_shared_variance=False)
6569

6670
@skipif(no_nilearn)
67-
def test_signal_extraction_global(self):
68-
# wanted
71+
def test_signal_extr_global_no_shared(self):
72+
# set up
6973
wanted_global = [[-4./6], [-1./6], [3./6], [-1./6], [-7./6]]
7074
for i, vals in enumerate(self.base_wanted):
7175
wanted_global[i].extend(vals)
@@ -74,32 +78,52 @@ def test_signal_extraction_global(self):
7478
iface.SignalExtraction(in_file=self.filenames['in_file'],
7579
label_files=self.filenames['label_files'],
7680
class_labels=self.labels,
77-
include_global=True).run()
81+
include_global=True,
82+
incl_shared_variance=False).run()
7883

7984
# assert
8085
self.assert_expected_output(self.global_labels, wanted_global)
8186

8287
@skipif(no_nilearn)
83-
def test_signal_extraction_4d_global(self):
84-
# wanted
88+
def test_signal_extr_4d_global_no_shared(self):
89+
# set up
8590
wanted_global = [[3./8], [-3./8], [1./8], [-7./8], [-9./8]]
8691
for i, vals in enumerate(self.fourd_wanted):
8792
wanted_global[i].extend(vals)
8893

89-
# run
90-
self._test_4d_label(wanted_global, self.fake_4d_label_data, include_global=True)
94+
# run & assert
95+
self._test_4d_label(wanted_global, self.fake_4d_label_data,
96+
include_global=True, incl_shared_variance=False)
9197

92-
def _test_4d_label(self, wanted, fake_labels, include_global=False):
93-
# setup
98+
@skipif(no_nilearn)
99+
def test_signal_extr_shared(self):
100+
# set up
101+
wanted = []
102+
for vol in range(self.fake_fmri_data.shape[3]):
103+
volume = self.fake_fmri_data[:, :, :, vol].flatten()
104+
wanted_row = []
105+
for reg in range(self.fake_4d_label_data.shape[3]):
106+
region = self.fake_4d_label_data[:, :, :, reg].flatten()
107+
wanted_row.append(np.average(volume, weights=region))
108+
wanted.append(wanted_row)
109+
110+
# run & assert
111+
self._test_4d_label(wanted, self.fake_4d_label_data)
112+
113+
def _test_4d_label(self, wanted, fake_labels, include_global=False, incl_shared_variance=True):
114+
# set up
94115
utils.save_toy_nii(fake_labels, self.filenames['4d_label_file'])
95116

96117
# run
97118
iface.SignalExtraction(in_file=self.filenames['in_file'],
98119
label_files=self.filenames['4d_label_file'],
99120
class_labels=self.labels,
121+
incl_shared_variance=incl_shared_variance,
100122
include_global=include_global).run()
101123

102124
wanted_labels = self.global_labels if include_global else self.labels
125+
126+
# assert
103127
self.assert_expected_output(wanted_labels, wanted)
104128

105129
def assert_expected_output(self, labels, wanted):

0 commit comments

Comments
 (0)