diff --git a/fsl/wrappers/bet.py b/fsl/wrappers/bet.py index 1eadd23d89db24cfb754790985307e9bfbc4cf9a..45e7870de684fb7a0d23c15a2994000b37869524 100644 --- a/fsl/wrappers/bet.py +++ b/fsl/wrappers/bet.py @@ -11,11 +11,11 @@ import fsl.utils.assertions as asrt -import fsl.utils.run as run from . import wrapperutils as wutils @wutils.fileOrImage('input', 'output') +@wutils.fslwrapper def bet(input, output, **kwargs): """Wrapper for the ``bet`` command. @@ -46,11 +46,12 @@ def bet(input, output, **kwargs): cmd = ['bet', input, output] cmd += wutils.applyArgStyle('-', argmap=argmap, valmap=valmap, **kwargs) - return run.runfsl(*cmd) + return cmd @wutils.fileOrImage('input', 'output') @wutils.fileOrArray('matrix') +@wutils.fslwrapper def robustfov(input, output=None, **kwargs): """Wrapper for the ``robustfov`` command. """ asrt.assertIsNifti(input) @@ -66,4 +67,4 @@ def robustfov(input, output=None, **kwargs): cmd = ['robustfov', '-i', input] cmd += wutils.applyArgStyle('-', argmap=argmap, **kwargs) - return run.runfsl(cmd) + return cmd diff --git a/fsl/wrappers/eddy.py b/fsl/wrappers/eddy.py index c5d272ad2ccd89dcfc658d516ecd2c8bd90189a7..ae5c7bb4f0075c65fa363970237b26baf7797bd1 100644 --- a/fsl/wrappers/eddy.py +++ b/fsl/wrappers/eddy.py @@ -18,13 +18,13 @@ estimation and eddy-current distortion correction. """ -import fsl.utils.run as run import fsl.utils.assertions as asrt from . import wrapperutils as wutils @wutils.fileOrImage('imain', 'mask', 'field') @wutils.fileOrArray('index', 'acqp', 'bvecs', 'bvals', 'field_mat') +@wutils.fslwrapper def eddy_cuda(imain, mask, index, acqp, bvecs, bvals, out, **kwargs): """Wrapper for the ``eddy_cuda`` command.""" @@ -58,11 +58,12 @@ def eddy_cuda(imain, mask, index, acqp, bvecs, bvals, out, **kwargs): 'out' : out}) cmd = ['eddy_cuda'] + wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('imain', 'fout', 'iout') @wutils.fileOrArray('datain') +@wutils.fslwrapper def topup(imain, datain, **kwargs): """Wrapper for the ``topup`` command.""" @@ -76,4 +77,4 @@ def topup(imain, datain, **kwargs): cmd = ['topup', '--imain={}'.format(imain), '--datain={}'.format(datain)] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd diff --git a/fsl/wrappers/flirt.py b/fsl/wrappers/flirt.py index dd4dadbf685eba6e579333e14967b3d5b7ff21b1..dac853992d8256036739b14f0ec9cc92991b2434 100644 --- a/fsl/wrappers/flirt.py +++ b/fsl/wrappers/flirt.py @@ -20,14 +20,13 @@ tools. """ -import fsl.utils.run as run import fsl.utils.assertions as asrt from . import wrapperutils as wutils -@wutils.required('src', 'ref') @wutils.fileOrImage('src', 'ref', 'out', 'wmseg', 'fieldmap', 'fieldmapmask') @wutils.fileOrArray('init', 'omat', 'wmcoords', 'wmnorms') +@wutils.fslwrapper def flirt(src, ref, **kwargs): """Wrapper for the ``flirt`` command. @@ -57,11 +56,9 @@ def flirt(src, ref, **kwargs): cmd = ['flirt', '-in', src, '-ref', ref] cmd += wutils.applyArgStyle('-', argmap=argmap, valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd -@wutils.fileOrImage('src', 'ref', 'out') -@wutils.fileOrArray('mat') def applyxfm(src, ref, mat, out, interp='spline'): """Convenience function which runs ``flirt -applyxfm ...``.""" return flirt(src, @@ -72,16 +69,16 @@ def applyxfm(src, ref, mat, out, interp='spline'): interp=interp) -@wutils.fileOrArray +@wutils.fileOrArray() +@wutils.fslwrapper def invxfm(inmat, omat): """Use ``convert_xfm`` to invert an affine.""" asrt.assertFileExists(inmat) - - cmd = 'convert_xfm -omat {} -inverse {}'.format(omat, inmat) - return run.runfsl(cmd) + return ['convert_xfm', '-omat', omat, '-inverse', inmat] @wutils.fileOrArray('inmat1', 'inmat2', 'outmat') +@wutils.fslwrapper def concatxfm(inmat1, inmat2, outmat): """Use ``convert_xfm`` to concatenate two affines.""" @@ -94,11 +91,12 @@ def concatxfm(inmat1, inmat2, outmat): inmat2, inmat1] - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('infile', 'out', 'reffile') @wutils.fileOrArray('init') +@wutils.fslwrapper def mcflirt(infile, **kwargs): """Wrapper for the ``mcflirt`` command.""" @@ -107,4 +105,4 @@ def mcflirt(infile, **kwargs): cmd = ['mcflirt', '-in', infile] cmd += wutils.applyArgStyle('-', **kwargs) - return run.runfsl(cmd) + return cmd diff --git a/fsl/wrappers/fnirt.py b/fsl/wrappers/fnirt.py index 3abcd51c97e11f88abcf59fd605f76a3638ef5d1..bd457337357694e3bb869ef8a0c516cebd1c7cb1 100644 --- a/fsl/wrappers/fnirt.py +++ b/fsl/wrappers/fnirt.py @@ -19,7 +19,6 @@ non-linear registration of 3D images. """ -import fsl.utils.run as run import fsl.utils.assertions as asrt from . import wrapperutils as wutils @@ -27,6 +26,7 @@ from . import wrapperutils as wutils @wutils.fileOrImage('src', 'ref', 'inwarp', 'cout', 'iout', 'fout', 'jout', 'refout', 'refmask', 'inmask') @wutils.fileOrArray('aff') +@wutils.fslwrapper def fnirt(src, ref, **kwargs): """Wrapper for the ``fnirt`` command.""" @@ -35,11 +35,12 @@ def fnirt(src, ref, **kwargs): cmd = ['fnirt', '--in={}'.format(src), '--ref={}'.format(ref)] cmd += wutils.applyArgStyle('--=', **kwargs) - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('src', 'ref', 'out', 'warp', 'mask') @wutils.fileOrArray('premat', 'postmat') +@wutils.fslwrapper def applywarp(src, ref, out, warp, **kwargs): """Wrapper for the ``applywarp`` command. """ @@ -59,10 +60,11 @@ def applywarp(src, ref, out, warp, **kwargs): cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('warp', 'ref', 'out') +@wutils.fslwrapper def invwarp(warp, ref, out, **kwargs): """Wrapper for the ``invwarp`` command.""" @@ -83,11 +85,12 @@ def invwarp(warp, ref, out, **kwargs): cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('out', 'ref', 'warp1', 'warp2', 'shiftmap') @wutils.fileOrArray('premat', 'midmat', 'postmat') +@wutils.fslwrapper def convertwarp(out, ref, **kwargs): """Wrapper for the ``convertwarp`` command.""" @@ -105,4 +108,4 @@ def convertwarp(out, ref, **kwargs): cmd = ['convertwarp', '--ref={}'.format(ref), '--out={}'.format(out)] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd diff --git a/fsl/wrappers/fslmaths.py b/fsl/wrappers/fslmaths.py index 3ad54b7848aaf18e9a96ec587427bcbacfaf9b83..db5858f04e9067a45c89eb3163ae8e0ee641f59f 100644 --- a/fsl/wrappers/fslmaths.py +++ b/fsl/wrappers/fslmaths.py @@ -9,7 +9,6 @@ for the ``fslmaths`` command-line tool. """ -import fsl.utils.run as run from . import wrapperutils as wutils @@ -155,6 +154,7 @@ class fslmaths(object): else: return output @wutils.fileOrImage() + @wutils.fslwrapper def __run(self, *cmd): """Run the given ``fslmaths`` command. """ - return run.runfsl([str(c) for c in cmd]) + return [str(c) for c in cmd] diff --git a/fsl/wrappers/fugue.py b/fsl/wrappers/fugue.py index 7a4cf8e5fdf45833ad7d567d12531741899360f4..19fdcf94bef1b50018e4834e4814b489999a72c6 100644 --- a/fsl/wrappers/fugue.py +++ b/fsl/wrappers/fugue.py @@ -11,12 +11,12 @@ processing and distortion correction. """ -import fsl.utils.run as run from . import wrapperutils as wutils @wutils.fileOrImage('in', 'unwarp', 'warp', 'phasemap', 'savefmap', 'loadfmap', 'saveshift', 'loadshift', 'mask') +@wutils.fslwrapper def fugue(**kwargs): """Wrapper for the ``fugue`` command.""" @@ -39,9 +39,11 @@ def fugue(**kwargs): cmd = ['fugue'] + wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd +@wutils.fileOrImage('input', 'mask', 'sigloss') +@wutils.fslwrapper def sigloss(input, sigloss, **kwargs): """Wrapper for the ``sigloss`` command.""" @@ -50,4 +52,4 @@ def sigloss(input, sigloss, **kwargs): cmd = ['sigloss', '--in', input, '--sigloss', sigloss] cmd += wutils.applyArgStyle('--', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd diff --git a/fsl/wrappers/melodic.py b/fsl/wrappers/melodic.py index 16887284db65ed3951bfb192d53fae57c3d822a1..d95b33fa50c0b5b798b9124f0a965d4fece10408 100644 --- a/fsl/wrappers/melodic.py +++ b/fsl/wrappers/melodic.py @@ -17,14 +17,13 @@ related utilities. """ - -import fsl.utils.run as run import fsl.utils.assertions as asrt from . import wrapperutils as wutils @wutils.fileOrArray('mix', 'Tdes', 'Tcon', 'Sdes', 'Scon') @wutils.fileOrImage('input', 'mask', 'ICs', 'bgimage') +@wutils.fslwrapper def melodic(input, **kwargs): """Multivariate Exploratory Linear Optimised ICA.""" @@ -56,11 +55,12 @@ def melodic(input, **kwargs): cmd = ['melodic', '--in', input] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('input', 'out', 'mask', 'out_data') @wutils.fileOrArray('design', 'out_mix') +@wutils.fslwrapper def fsl_regfilt(input, out, design, **kwargs): """Wrapper for the ``fsl_regfilt``command. """ @@ -79,4 +79,4 @@ def fsl_regfilt(input, out, design, **kwargs): '--design={}'.format(design)] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd diff --git a/fsl/wrappers/misc.py b/fsl/wrappers/misc.py index 4d912dee26f7f163765617967ed55a6bb1b352d6..3b7a0615eb7f9f1be6220314c9ea611e8542f021 100644 --- a/fsl/wrappers/misc.py +++ b/fsl/wrappers/misc.py @@ -10,12 +10,12 @@ """ -import fsl.utils.run as run import fsl.utils.assertions as asrt from . import wrapperutils as wutils @wutils.fileOrImage('input', 'output') +@wutils.fslwrapper def fslreorient2std(input, output=None): """Wrapper for the ``fsreorient2std`` tool.""" @@ -26,10 +26,11 @@ def fslreorient2std(input, output=None): if output is not None: cmd.append(output) - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('input', 'output') +@wutils.fslwrapper def fslroi(input, output, xmin=None, xsize=None, ymin=None, ysize=None, zmin=None, zsize=None, tmin=None, tsize=None): """Wrapper for the ``fslroi`` tool.""" @@ -46,10 +47,11 @@ def fslroi(input, output, xmin=None, xsize=None, ymin=None, ysize=None, if tmin is not None: cmd += [str(tmin), str(tsize)] - return run.runfsl(cmd) + return cmd @wutils.fileOrImage('input', 'input2') +@wutils.fslwrapper def slicer(input, input2=None, label=None, lut=None, intensity=None, edgethreshold=None, x=None, y=None, z=None): """Wrapper for the ``slicer`` command. """ @@ -73,14 +75,14 @@ def slicer(input, input2=None, label=None, lut=None, intensity=None, if z is not None: cmd += " -z {0} {1}".format(z[0], z[1]) - return run.runfsl(cmd) - + return cmd @wutils.fileOrImage('input', 'cope', 'oindex', 'othresh', 'olmaxim', 'osize', 'omax', 'omean', 'opvals', 'stdvol', 'warpvol', 'empiricalNull') @wutils.fileOrArray('xfm') +@wutils.fslwrapper def cluster(input, thresh, **kwargs): """Wrapper for the ``cluster`` command. """ @@ -98,4 +100,4 @@ def cluster(input, thresh, **kwargs): cmd = ['cluster', '--in={}'.format(input), '--thresh={}'.format(thresh)] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) - return run.runfsl(cmd) + return cmd