Skip to content

Commit cd49748

Browse files
committed
Use normalize_mc_params in SpecifyModel
1 parent 8d12606 commit cd49748

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

@@ -195,7 +196,7 @@ class SpecifyModelInputSpec(BaseInterfaceInputSpec):
195196
desc='Realignment parameters returned '
196197
'by motion correction algorithm',
197198
copyfile=False)
198-
parameter_source = traits.Enum("SPM", "FSL", "AFNI", "NiPy", "FSFAST",
199+
parameter_source = traits.Enum("SPM", "FSL", "AFNI", "FSFAST", usedefault=True,
199200
desc="Source of motion parameters")
200201
outlier_files = InputMultiPath(File(exists=True),
201202
desc='Files containing scan outlier indices '
@@ -391,16 +392,13 @@ def _generate_standard_design(self, infolist, functional_runs=None,
391392
def _generate_design(self, infolist=None):
392393
"""Generate design specification for a typical fmri paradigm
393394
"""
394-
par_selection = slice(6)
395-
if isdefined(self.inputs.parameter_source):
396-
source = self.inputs.parameter_source
397-
if source == 'FSFAST':
398-
par_selection = slice(1, 7)
399395
realignment_parameters = []
400396
if isdefined(self.inputs.realignment_parameters):
401397
for parfile in self.inputs.realignment_parameters:
402398
realignment_parameters.append(
403-
np.loadtxt(parfile)[:, par_selection])
399+
np.apply_along_axis(func1d=normalize_mc_params,
400+
axis=1, arr=np.loadtxt(parfile),
401+
source=self.inputs.parameter_source))
404402
outliers = []
405403
if isdefined(self.inputs.outlier_files):
406404
for filename in self.inputs.outlier_files:
@@ -563,7 +561,9 @@ def _generate_design(self, infolist=None):
563561
if isdefined(self.inputs.realignment_parameters):
564562
realignment_parameters = []
565563
for parfile in self.inputs.realignment_parameters:
566-
mc = np.loadtxt(parfile)
564+
mc = np.apply_along_axis(func1d=normalize_mc_params,
565+
axis=1, arr=np.loadtxt(parfile),
566+
source=self.inputs.parameter_source)
567567
if not realignment_parameters:
568568
realignment_parameters.insert(0, mc)
569569
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)