From 2951749f54d357a7a0b36f1c23f65d51b68172b7 Mon Sep 17 00:00:00 2001 From: Ian Malone Date: Mon, 24 Apr 2017 15:33:57 +0100 Subject: [PATCH] [ENH] FSL epi interface, add missing Eddy options. --- nipype/interfaces/fsl/epi.py | 26 +++++++++++++++++++ nipype/interfaces/fsl/tests/test_auto_Eddy.py | 17 ++++++++++++ 2 files changed, 43 insertions(+) diff --git a/nipype/interfaces/fsl/epi.py b/nipype/interfaces/fsl/epi.py index 2b45d62c2d..23aa1ed974 100644 --- a/nipype/interfaces/fsl/epi.py +++ b/nipype/interfaces/fsl/epi.py @@ -423,6 +423,32 @@ class EddyInputSpec(FSLCommandInputSpec): flm = traits.Enum('linear', 'quadratic', 'cubic', argstr='--flm=%s', desc='First level EC model') + slm = traits.Enum('none', 'linear', 'quadratic', argstr='--slm=%s', + desc='Second level EC model') + + fep = traits.Bool(False, argstr='--fep', + desc='Fill empty planes in x- or y-directions') + + interp = traits.Enum('spline', 'trilinear', argstr='--interp=%s', + desc='Interpolation model for estimation step') + + nvoxhp = traits.Int(1000, argstr='--nvoxhp=%s', + desc=('# of voxels used to estimate the ' + 'hyperparameters')) + + fudge_factor = traits.Float(10.0, argstr='--ff=%s', + desc=('Fudge factor for hyperparameter ' + 'error variance')) + + dont_sep_offs_move = traits.Bool(False, argstr='--dont_sep_offs_move', + desc=('Do NOT attempt to separate ' + 'field offset from subject ' + 'movement')) + + dont_peas = traits.Bool(False, argstr='--dont_peas', + desc="Do NOT perform a post-eddy alignment of " + "shells") + fwhm = traits.Float(desc=('FWHM for conditioning filter when estimating ' 'the parameters'), argstr='--fwhm=%s') diff --git a/nipype/interfaces/fsl/tests/test_auto_Eddy.py b/nipype/interfaces/fsl/tests/test_auto_Eddy.py index 08e0135d00..e47633fb07 100644 --- a/nipype/interfaces/fsl/tests/test_auto_Eddy.py +++ b/nipype/interfaces/fsl/tests/test_auto_Eddy.py @@ -6,15 +6,23 @@ def test_Eddy_inputs(): input_map = dict(args=dict(argstr='%s', ), + dont_peas=dict(argstr='--dont_peas', + ), + dont_sep_offs_move=dict(argstr='--dont_sep_offs_move', + ), environ=dict(nohash=True, usedefault=True, ), + fep=dict(argstr='--fep', + ), field=dict(argstr='--field=%s', ), field_mat=dict(argstr='--field_mat=%s', ), flm=dict(argstr='--flm=%s', ), + fudge_factor=dict(argstr='--ff=%s', + ), fwhm=dict(argstr='--fwhm=%s', ), ignore_exception=dict(nohash=True, @@ -43,6 +51,8 @@ def test_Eddy_inputs(): ), in_topup_movpar=dict(requires=['in_topup_fieldcoef'], ), + interp=dict(argstr='--interp=%s', + ), is_shelled=dict(argstr='--data_is_shelled', ), method=dict(argstr='--resamp=%s', @@ -52,6 +62,8 @@ def test_Eddy_inputs(): num_threads=dict(nohash=True, usedefault=True, ), + nvoxhp=dict(argstr='--nvoxhp=%s', + ), out_base=dict(argstr='--out=%s', usedefault=True, ), @@ -60,6 +72,8 @@ def test_Eddy_inputs(): ), session=dict(argstr='--session=%s', ), + slm=dict(argstr='--slm=%s', + ), terminal_output=dict(nohash=True, ), use_cuda=dict(), @@ -74,6 +88,9 @@ def test_Eddy_inputs(): def test_Eddy_outputs(): output_map = dict(out_corrected=dict(), out_movement_rms=dict(), + out_outlier_map=dict(), + out_outlier_n_sd_map=dict(), + out_outlier_n_sqr_sd_map=dict(), out_outlier_report=dict(), out_parameter=dict(), out_restricted_movement_rms=dict(),