diff --git a/fsl/wrappers/tbss.py b/fsl/wrappers/tbss.py new file mode 100755 index 0000000000000000000000000000000000000000..e40f4dcd4707db137ae9907d369246df54ae8c1a --- /dev/null +++ b/fsl/wrappers/tbss.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +# +# tbss.py - Wrappers for FSL command-line tools for tract based spatial statistics (TBSS). +# +# Author: Evan Edmond <eedmond@gmail.com> +# +"""This module contains wrapper functions for various `FSL +<https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/>`_ command-line tools. +""" + +import os +import fsl.utils.assertions as asrt +from . import wrapperutils as wutils + + +@wutils.fslwrapper +def preproc(*images, **kwargs): + """Wrapper for the ``tbss_1_preproc`` command. + Usage: tbss_1_preproc(<image1>, <image2>, ...) + """ + for img in images: + asrt.assertIsNifti(img) + + return ["tbss_1_preproc"] + images + + +@wutils.fslwrapper +def reg(**kwargs): + """Wrapper for the ``tbss_2_reg`` command. + Refer to the ``tbss_2_reg`` command-line help for details on all arguments. + """ + + valmap = { + 'T' : wutils.SHOW_IF_TRUE, + 't' : wutils.SHOW_IF_TRUE, + 'n' : wutils.SHOW_IF_TRUE, + } + + cmd = ["tbss_2_reg"] + cmd += wutils.applyArgStyle("-", valmap=valmap, valsep=" ", **kwargs) + + return cmd + +@wutils.fslwrapper +def postreg(**kwargs): + """Wrapper for the ``tbss_3_postreg`` command. + Refer to the ``tbss_3_postreg`` command-line help for details on all arguments. + """ + + valmap = { + 'T' : wutils.SHOW_IF_TRUE, + 'S' : wutils.SHOW_IF_TRUE, + } + + cmd = ["tbss_3_postreg"] + cmd += wutils.applyArgStyle("-", valmap=valmap, **kwargs) + + return cmd + +@wutils.fslwrapper +def prestats(threshold, **kwargs): + """Wrapper for the ``tbss_4_prestats`` command. + The normal recommendation for <threshold> is 0.2 + """ + + return ["tbss_4_prestats", threshold] + +@wutils.fslwrapper +def non_FA(alt_img_root, **kwargs): + """Wrapper for the ``tbss_non_FA`` command. + e.g.: tbss_non_FA("L2") + """ + + return ["tbss_non_FA", alt_img_root] + +@wutils.fileOrImage("stats_image", "mean_FA", "output") +@wutils.fslwrapper +def fill(stats_image, threshold, mean_FA, output, **kwargs): + """Wrapper for the ``tbss_fill`` command. + Refer to the ``tbss_fill`` command-line help for details on all arguments. + """ + valmap = { + 'n' : wutils.SHOW_IF_TRUE, + } + + cmd = ["tbss_fill", stats_image, threshold, mean_FA, output] + cmd += wutils.applyArgStyle("-", valmap=valmap, **kwargs) + + return cmd +