|
33 | 33 | traits, File, Bunch, BaseInterfaceInputSpec,
|
34 | 34 | isdefined)
|
35 | 35 | from ..utils.filemanip import filename_to_list
|
| 36 | +from ..utils.misc import normalize_mc_params |
36 | 37 | from .. import config, logging
|
37 | 38 | iflogger = logging.getLogger('interface')
|
38 | 39 |
|
@@ -195,7 +196,7 @@ class SpecifyModelInputSpec(BaseInterfaceInputSpec):
|
195 | 196 | desc='Realignment parameters returned '
|
196 | 197 | 'by motion correction algorithm',
|
197 | 198 | copyfile=False)
|
198 |
| - parameter_source = traits.Enum("SPM", "FSL", "AFNI", "NiPy", "FSFAST", |
| 199 | + parameter_source = traits.Enum("SPM", "FSL", "AFNI", "FSFAST", usedefault=True, |
199 | 200 | desc="Source of motion parameters")
|
200 | 201 | outlier_files = InputMultiPath(File(exists=True),
|
201 | 202 | desc='Files containing scan outlier indices '
|
@@ -391,16 +392,13 @@ def _generate_standard_design(self, infolist, functional_runs=None,
|
391 | 392 | def _generate_design(self, infolist=None):
|
392 | 393 | """Generate design specification for a typical fmri paradigm
|
393 | 394 | """
|
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) |
399 | 395 | realignment_parameters = []
|
400 | 396 | if isdefined(self.inputs.realignment_parameters):
|
401 | 397 | for parfile in self.inputs.realignment_parameters:
|
402 | 398 | 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)) |
404 | 402 | outliers = []
|
405 | 403 | if isdefined(self.inputs.outlier_files):
|
406 | 404 | for filename in self.inputs.outlier_files:
|
@@ -563,7 +561,9 @@ def _generate_design(self, infolist=None):
|
563 | 561 | if isdefined(self.inputs.realignment_parameters):
|
564 | 562 | realignment_parameters = []
|
565 | 563 | 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) |
567 | 567 | if not realignment_parameters:
|
568 | 568 | realignment_parameters.insert(0, mc)
|
569 | 569 | else:
|
|
0 commit comments