From 48ec226aa8297886affa409f66cc619233ac32f7 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Mon, 29 Oct 2018 16:40:19 -0400 Subject: [PATCH] ENH: Read 4dfp_tools motion parameters --- nipype/algorithms/confounds.py | 1 + nipype/algorithms/modelgen.py | 1 + nipype/algorithms/rapidart.py | 3 ++- nipype/utils/misc.py | 3 +++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nipype/algorithms/confounds.py b/nipype/algorithms/confounds.py index d0f9a5733a..1ebd28fe53 100644 --- a/nipype/algorithms/confounds.py +++ b/nipype/algorithms/confounds.py @@ -234,6 +234,7 @@ class FramewiseDisplacementInputSpec(BaseInterfaceInputSpec): "SPM", "FSFAST", "NIPY", + "4DFP", desc="Source of movement parameters", mandatory=True) radius = traits.Float( diff --git a/nipype/algorithms/modelgen.py b/nipype/algorithms/modelgen.py index 7741139201..07f5d620af 100644 --- a/nipype/algorithms/modelgen.py +++ b/nipype/algorithms/modelgen.py @@ -201,6 +201,7 @@ class SpecifyModelInputSpec(BaseInterfaceInputSpec): "AFNI", "FSFAST", "NIPY", + "4DFP", usedefault=True, desc="Source of motion parameters") outlier_files = InputMultiPath( diff --git a/nipype/algorithms/rapidart.py b/nipype/algorithms/rapidart.py index a4d5b592c9..0984eb5784 100644 --- a/nipype/algorithms/rapidart.py +++ b/nipype/algorithms/rapidart.py @@ -39,7 +39,7 @@ def _get_affine_matrix(params, source): params : np.array (upto 12 long) in native package format source : the package that generated the parameters - supports SPM, AFNI, FSFAST, FSL, NIPY + supports SPM, AFNI, FSFAST, FSL, NIPY, 4DFP """ if source == 'NIPY': # nipy does not store typical euler angles, use nipy to convert @@ -174,6 +174,7 @@ class ArtifactDetectInputSpec(BaseInterfaceInputSpec): "AFNI", "NiPy", "FSFAST", + "4DFP", desc="Source of movement parameters", mandatory=True) use_differences = traits.ListBool( diff --git a/nipype/utils/misc.py b/nipype/utils/misc.py index f73443b348..7e709024b8 100644 --- a/nipype/utils/misc.py +++ b/nipype/utils/misc.py @@ -241,6 +241,9 @@ def normalize_mc_params(params, source): elif source.upper() in ('AFNI', 'FSFAST'): params = params[np.asarray([4, 5, 3, 1, 2, 0]) + (len(params) > 6)] params[3:] = params[3:] * np.pi / 180. + elif source.upper() == '4DFP': + params = params[np.arange(1, 7)] + params[3:] = params[3:] * np.pi / 180. elif source.upper() == 'NIPY': from nipy.algorithms.registration import to_matrix44, aff2euler matrix = to_matrix44(params)