Source code for fsl.wrappers.eddy

#
# eddy.py - Wrappers for topup and eddy.
#
# Author: Sean Fitzgibbon <sean.fitzgibbon@ndcn.ox.ac.uk>
# Author: Paul McCarthy <pauldmccarthy@gmail.com>
# Author: Martin Craig <martin.craig@eng.ox.a.uk>
#
"""This module provides wrapper functions for the FSL `TOPUP
<https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/topup>`_ and `EDDY
<https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/eddy>`_ tools, for field map
estimation and eddy-current distortion correction.

.. autosummary::
   :nosignatures:

   eddy_cuda
   topup
   applytopup
"""


import fsl.utils.assertions as asrt
from . import wrapperutils  as wutils


[docs]@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.""" valmap = { 'fep' : wutils.SHOW_IF_TRUE, 'initrand' : wutils.SHOW_IF_TRUE, 'repol' : wutils.SHOW_IF_TRUE, 'ol_pos' : wutils.SHOW_IF_TRUE, 'ol_sqr' : wutils.SHOW_IF_TRUE, 'dont_sep_offs_move' : wutils.SHOW_IF_TRUE, 'dont_peas' : wutils.SHOW_IF_TRUE, 'data_is_shelled' : wutils.SHOW_IF_TRUE, 'b0_only' : wutils.SHOW_IF_TRUE, 'dont_mask_output' : wutils.SHOW_IF_TRUE, 'cnr_maps' : wutils.SHOW_IF_TRUE, 'residuals' : wutils.SHOW_IF_TRUE, 'estimate_move_by_susceptibility' : wutils.SHOW_IF_TRUE, 'verbose' : wutils.SHOW_IF_TRUE, 'very_verbose' : wutils.SHOW_IF_TRUE, } asrt.assertFileExists(imain, mask, index, acqp, bvecs, bvals) asrt.assertIsNifti(imain, mask) kwargs.update({'imain' : imain, 'mask' : mask, 'index' : index, 'acqp' : acqp, 'bvecs' : bvecs, 'bvals' : bvals, 'out' : out}) cmd = ['eddy_cuda'] + wutils.applyArgStyle('--=', valmap=valmap, **kwargs) return cmd
[docs]@wutils.fileOrImage('imain', 'fout', 'iout', outprefix='out') @wutils.fileOrArray('datain', outprefix='out') @wutils.fslwrapper def topup(imain, datain, **kwargs): """Wrapper for the ``topup`` command.""" valmap = { 'verbose' : wutils.SHOW_IF_TRUE } asrt.assertFileExists(datain) asrt.assertIsNifti(imain) cmd = ['topup', '--imain={}'.format(imain), '--datain={}'.format(datain)] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) return cmd
[docs]@wutils.fileOrImage('imain', 'out') @wutils.fileOrArray('datain') @wutils.fslwrapper def applytopup(imain, datain, index, **kwargs): """Wrapper for the ``applytopup`` command.""" valmap = { 'verbose' : wutils.SHOW_IF_TRUE } asrt.assertFileExists(datain) asrt.assertIsNifti(imain) cmd = [ 'applytopup', '--imain={}'.format(imain), '--inindex={}'.format(index), '--datain={}'.format(datain), ] cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs) return cmd