Skip to content

Commit 6fdaa42

Browse files
committed
Use normalize_mc_params in SpecifyModel
1 parent 8d6106b commit 6fdaa42

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

nipype/algorithms/modelgen.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
traits, File, Bunch, BaseInterfaceInputSpec,
3434
isdefined)
3535
from ..utils.filemanip import filename_to_list
36+
from ..utils.misc import normalize_mc_params
3637
from .. import config, logging
3738
iflogger = logging.getLogger('interface')
3839

@@ -187,7 +188,7 @@ class SpecifyModelInputSpec(BaseInterfaceInputSpec):
187188
realignment_parameters = InputMultiPath(File(exists=True),
188189
desc="Realignment parameters returned by motion correction algorithm",
189190
copyfile=False)
190-
parameter_source = traits.Enum("SPM", "FSL", "AFNI", "NiPy", "FSFAST",
191+
parameter_source = traits.Enum("SPM", "FSL", "AFNI", "FSFAST", usedefault=True,
191192
desc="Source of motion parameters")
192193
outlier_files = InputMultiPath(File(exists=True),
193194
desc="Files containing scan outlier indices that should be tossed",
@@ -377,16 +378,13 @@ def _generate_standard_design(self, infolist,
377378
def _generate_design(self, infolist=None):
378379
"""Generate design specification for a typical fmri paradigm
379380
"""
380-
par_selection = slice(6)
381-
if isdefined(self.inputs.parameter_source):
382-
source = self.inputs.parameter_source
383-
if source == 'FSFAST':
384-
par_selection = slice(1, 7)
385381
realignment_parameters = []
386382
if isdefined(self.inputs.realignment_parameters):
387383
for parfile in self.inputs.realignment_parameters:
388384
realignment_parameters.append(
389-
np.loadtxt(parfile)[:, par_selection])
385+
np.apply_along_axis(func1d=normalize_mc_params,
386+
axis=1, arr=np.loadtxt(parfile),
387+
source=self.inputs.parameter_source))
390388
outliers = []
391389
if isdefined(self.inputs.outlier_files):
392390
for filename in self.inputs.outlier_files:
@@ -539,7 +537,9 @@ def _generate_design(self, infolist=None):
539537
if isdefined(self.inputs.realignment_parameters):
540538
realignment_parameters = []
541539
for parfile in self.inputs.realignment_parameters:
542-
mc = np.loadtxt(parfile)
540+
mc = np.apply_along_axis(func1d=normalize_mc_params,
541+
axis=1, arr=np.loadtxt(parfile),
542+
source=self.inputs.parameter_source)
543543
if not realignment_parameters:
544544
realignment_parameters.insert(0, mc)
545545
else:

nipype/algorithms/tests/test_auto_SpecifyModel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ def test_SpecifyModel_inputs():
1919
),
2020
outlier_files=dict(copyfile=False,
2121
),
22-
parameter_source=dict(),
22+
parameter_source=dict(usedefault=True,
23+
),
2324
realignment_parameters=dict(copyfile=False,
2425
),
2526
subject_info=dict(mandatory=True,

nipype/algorithms/tests/test_auto_SpecifySPMModel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ def test_SpecifySPMModel_inputs():
2323
),
2424
output_units=dict(usedefault=True,
2525
),
26-
parameter_source=dict(),
26+
parameter_source=dict(usedefault=True,
27+
),
2728
realignment_parameters=dict(copyfile=False,
2829
),
2930
subject_info=dict(mandatory=True,

nipype/algorithms/tests/test_auto_SpecifySparseModel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ def test_SpecifySparseModel_inputs():
2020
model_hrf=dict(),
2121
outlier_files=dict(copyfile=False,
2222
),
23-
parameter_source=dict(),
23+
parameter_source=dict(usedefault=True,
24+
),
2425
realignment_parameters=dict(copyfile=False,
2526
),
2627
save_plot=dict(),

0 commit comments

Comments
 (0)