Пример #1
0
def flirt(src, ref, **kwargs):
    """Wrapper for the ``flirt`` command.

    The ``twod`` argument may be used in place of the ``2D`` command line
    option.
    """

    asrt.assertIsNifti(src, ref)

    argmap = {'twod': '2D'}

    valmap = {
        'usesqform': wutils.SHOW_IF_TRUE,
        'displayinit': wutils.SHOW_IF_TRUE,
        'noresample': wutils.SHOW_IF_TRUE,
        'forcescaling': wutils.SHOW_IF_TRUE,
        'applyxfm': wutils.SHOW_IF_TRUE,
        'nosearch': wutils.SHOW_IF_TRUE,
        'noclamp': wutils.SHOW_IF_TRUE,
        'noresampblur': wutils.SHOW_IF_TRUE,
        '2D': wutils.SHOW_IF_TRUE,
        'v': wutils.SHOW_IF_TRUE,
    }

    cmd = ['flirt', '-in', src, '-ref', ref]
    cmd += wutils.applyArgStyle('-', argmap=argmap, valmap=valmap, **kwargs)

    return cmd
Пример #2
0
def melodic(input, **kwargs):
    """Wrapper for the ``melodic`` command."""

    valmap = {
        'Oall': wutils.SHOW_IF_TRUE,
        'Ounmix': wutils.SHOW_IF_TRUE,
        'Ostats': wutils.SHOW_IF_TRUE,
        'Opca': wutils.SHOW_IF_TRUE,
        'Owhite': wutils.SHOW_IF_TRUE,
        'Oorig': wutils.SHOW_IF_TRUE,
        'Omean': wutils.SHOW_IF_TRUE,
        'verbose': wutils.SHOW_IF_TRUE,
        'debug': wutils.SHOW_IF_TRUE,
        'report': wutils.SHOW_IF_TRUE,
        'CIFTI': wutils.SHOW_IF_TRUE,
        'varnorm': wutils.SHOW_IF_TRUE,
        'nomask': wutils.SHOW_IF_TRUE,
        'nobet': wutils.SHOW_IF_TRUE,
        'sep_vn': wutils.SHOW_IF_TRUE,
        'disableMigp': wutils.SHOW_IF_TRUE,
        'update_mask': wutils.HIDE_IF_TRUE,
        'migp_shuffle': wutils.HIDE_IF_TRUE,
        'no_mm': wutils.SHOW_IF_TRUE,
        'logPower': wutils.SHOW_IF_TRUE,
    }

    asrt.assertIsNifti(input)

    cmd = ['melodic', '--in={}'.format(input)]
    cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs)

    return cmd
Пример #3
0
def fslroi(input, output, *args):
    """Wrapper for the ``fslroi`` tool."""

    asrt.assertIsNifti(input)

    cmd = ['fslroi', input, output] + [str(a) for a in args]

    return cmd
Пример #4
0
def preproc(*images):
    """Wrapper for the ``tbss_1_preproc`` command.
    Usage: ``tbss_1_preproc(<image1>, <image2>, ...)``
    """
    for img in images:
        asrt.assertIsNifti(img)

    return ["tbss_1_preproc"] + list(images)
Пример #5
0
def fnirt(src, **kwargs):
    """Wrapper for the ``fnirt`` command."""

    asrt.assertIsNifti(src)

    cmd = ['fnirt', '--in={}'.format(src)]
    cmd += wutils.applyArgStyle('--=', **kwargs)

    return cmd
Пример #6
0
def fslreorient2std(input, output=None):
    """Wrapper for the ``fsreorient2std`` tool."""

    asrt.assertIsNifti(input)

    cmd = ['fslreorient2std', input]

    if output is not None:
        cmd.append(output)

    return cmd
Пример #7
0
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
Пример #8
0
def bet(input, output, **kwargs):
    """Wrapper for the ``bet`` command.

    :arg mask:          Generate a brain mask
    :arg seg:           If ``False``, a brain extracted image is not
                        generated.
    :arg robust:        Robust brain centre estimation
    :arg fracintensity: Fractional intensity threshold

    Refer to the ``bet`` command-line help for details on all arguments.
    """

    asrt.assertIsNifti(input)

    argmap = {
        'mask': 'm',
        'robust': 'R',
        'fracintensity': 'f',
        'seg': 'n',
        'centre': 'c',
    }

    valmap = {
        'm': wutils.SHOW_IF_TRUE,
        'o': wutils.SHOW_IF_TRUE,
        's': wutils.SHOW_IF_TRUE,
        'n': wutils.HIDE_IF_TRUE,
        't': wutils.SHOW_IF_TRUE,
        'e': wutils.SHOW_IF_TRUE,
        'R': wutils.SHOW_IF_TRUE,
        'S': wutils.SHOW_IF_TRUE,
        'B': wutils.SHOW_IF_TRUE,
        'Z': wutils.SHOW_IF_TRUE,
        'F': wutils.SHOW_IF_TRUE,
        'A': wutils.SHOW_IF_TRUE,
        'v': wutils.SHOW_IF_TRUE,
        'd': wutils.SHOW_IF_TRUE,
    }

    cmd = ['bet', input, output]

    # The 'centre' argument requires three co-ordinates and can't be passed
    # as a single value, so needs to be handled separately. Assume it is
    # passed as a Python sequence
    centre = kwargs.pop("c", None)
    if centre is not None:
        cmd += [
            '-c',
        ] + [str(v) for v in centre]

    cmd += wutils.applyArgStyle('-', argmap=argmap, valmap=valmap, **kwargs)

    return cmd
Пример #9
0
def robustfov(input, output=None, **kwargs):
    """Wrapper for the ``robustfov`` command. """
    asrt.assertIsNifti(input)

    if output is not None:
        kwargs.update({'output': output})

    argmap = {'output': 'r', 'matrix': 'm'}

    cmd = ['robustfov', '-i', input]
    cmd += wutils.applyArgStyle('-', argmap=argmap, **kwargs)

    return cmd
Пример #10
0
def applyxfm4D(src, ref, out, mat, **kwargs):
    """Wrapper for the ``applyxfm4D`` command. """

    asrt.assertIsNifti(src, ref)

    valmap = {
        'singlematrix': wutils.SHOW_IF_TRUE,
        'fourdigit': wutils.SHOW_IF_TRUE,
    }

    cmd = ['applyxfm4D', src, ref, out, mat]
    cmd += wutils.applyArgStyle('-', valmap=valmap, **kwargs)

    return cmd
Пример #11
0
def applytopup(imain, datain, index, **kwargs):
    """Wrapper for the ``applytopup`` command."""

    valmap = {'verbose': wutils.SHOW_IF_TRUE}

    asrt.assertFileExists(datain)
    for fn in imain.split(','):
        asrt.assertIsNifti(fn)

    cmd = [
        'applytopup',
        '--imain={}'.format(imain),
        '--inindex={}'.format(index),
        '--datain={}'.format(datain),
    ]
    cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs)

    return cmd
Пример #12
0
def fsl_regfilt(input, out, design, **kwargs):
    """Wrapper for the ``fsl_regfilt`` command. """

    asrt.assertIsNifti(input, out)

    valmap = {
        'freqfilt': wutils.SHOW_IF_TRUE,
        'freq_ic': wutils.HIDE_IF_TRUE,
        'vn': wutils.SHOW_IF_TRUE,
        'v': wutils.SHOW_IF_TRUE,
    }

    cmd = [
        'fsl_regfilt', '--in={}'.format(input), '--out={}'.format(out),
        '--design={}'.format(design)
    ]
    cmd += wutils.applyArgStyle('--=', valsep=',', valmap=valmap, **kwargs)

    return cmd
Пример #13
0
def fast(imgs, out='fast', **kwargs):
    """Wrapper for the ``fast`` command.

    :arg imgs:      Input image(s)
    :arg out:       Output basename
    :arg n_classes: Number of tissue classes (corresponds to the ``--class``
                    command line option)
    """

    if isinstance(imgs, six.string_types):
        imgs = [imgs]

    asrt.assertIsNifti(*imgs)

    valmap = {
        'nobias'   : wutils.SHOW_IF_TRUE,
        'N'        : wutils.SHOW_IF_TRUE,
        'verbose'  : wutils.SHOW_IF_TRUE,
        'v'        : wutils.SHOW_IF_TRUE,
        'Prior'    : wutils.SHOW_IF_TRUE,
        'P'        : wutils.SHOW_IF_TRUE,
        'segments' : wutils.SHOW_IF_TRUE,
        'nopve'    : wutils.SHOW_IF_TRUE,
        'g'        : wutils.SHOW_IF_TRUE,
        'b'        : wutils.SHOW_IF_TRUE,
        'B'        : wutils.SHOW_IF_TRUE,
        'p'        : wutils.SHOW_IF_TRUE,
    }

    argmap = {
        'n_classes' : 'class',
    }

    cmd  = ['fast', '-v', '--out=%s' % out]
    cmd += wutils.applyArgStyle('--=',
                                valmap=valmap,
                                argmap=argmap,
                                singlechar_args=True,
                                **kwargs)
    cmd += imgs

    return cmd
Пример #14
0
def mvntool(mvn, param, **kwargs):
    """
    Wrapper for MVNTOOL.

    :param mvn: Input MVN data
    :param param: Parameter index (or name, but only if param-list is specified)

    For other arguments, see command line tool for now
    """
    asrt.assertIsNifti(mvn)

    valmap = {
        'write' : wutils.SHOW_IF_TRUE,
        'new' : wutils.SHOW_IF_TRUE,
    }

    cmd = ['mvntool', '--input={}'.format(mvn), '--param={}'.format(param)]
    cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs)

    return cmd
Пример #15
0
def invwarp(warp, ref, out, **kwargs):
    """Wrapper for the ``invwarp`` command."""

    valmap = {
        'abs': wutils.SHOW_IF_TRUE,
        'rel': wutils.SHOW_IF_TRUE,
        'noconstraint': wutils.SHOW_IF_TRUE,
        'debug': wutils.SHOW_IF_TRUE,
        'verbose': wutils.SHOW_IF_TRUE,
    }

    asrt.assertIsNifti(warp, ref)

    cmd = [
        'invwarp', '--warp={}'.format(warp), '--ref={}'.format(ref),
        '--out={}'.format(out)
    ]

    cmd += wutils.applyArgStyle('--=', valmap=valmap, **kwargs)

    return cmd
Пример #16
0
def epi_reg(epi, t1, t1brain, out='epi_reg', **kwargs):
    """Wrapper for the ``epi_reg`` command.

    :arg epi:       Input EPI image
    :arg t1:        Input wholehead T1 image
    :arg t1brain:   Input brain extracted T1 image
    :arg out:       Output name
    """
    asrt.assertIsNifti(epi)
    asrt.assertIsNifti(t1)
    asrt.assertIsNifti(t1brain)

    valmap = {
        'nofmapreg': wutils.SHOW_IF_TRUE,
        'noclean': wutils.SHOW_IF_TRUE,
        'v': wutils.SHOW_IF_TRUE,
    }

    cmd = [
        'epi_reg', '--epi=' + epi, '--t1=' + t1, '--t1brain=' + t1brain,
        '--out=' + out
    ]

    cmd += wutils.applyArgStyle('--=',
                                valmap=valmap,
                                singlechar_args=True,
                                **kwargs)

    return cmd
Пример #17
0
def fsl_anat(img, out='fsl_anat', **kwargs):
    """Wrapper for the ``fsl_anat`` command.

    :arg img:       Input structural image
    :arg out:       Output directory name
    """
    asrt.assertIsNifti(img)

    valmap = {
        'strongbias' : wutils.SHOW_IF_TRUE,
        'weakbias' : wutils.SHOW_IF_TRUE,
        'noreorient' : wutils.SHOW_IF_TRUE,
        'nocrop' : wutils.SHOW_IF_TRUE,
        'nobias' : wutils.SHOW_IF_TRUE,
        'noreg' : wutils.SHOW_IF_TRUE,
        'nononlinreg' : wutils.SHOW_IF_TRUE,
        'noseg' : wutils.SHOW_IF_TRUE,
        'nosubcortseg' : wutils.SHOW_IF_TRUE,
        'nosearch' : wutils.SHOW_IF_TRUE,
        'nocleanup' : wutils.SHOW_IF_TRUE,
    }

    argmap = {
    }

    img_type = kwargs.pop("img_type", "T1")
    cmd  = ['fsl_anat', '-i', img, '-o', out, '-t', img_type]
    smoothing = kwargs.pop("bias_smoothing", None)
    if smoothing is not None:
        cmd += ['-s', str(smoothing)]

    cmd += wutils.applyArgStyle('--=',
                                valmap=valmap,
                                argmap=argmap,
                                singlechar_args=True,
                                **kwargs)

    return cmd
Пример #18
0
def mcflirt(infile, **kwargs):
    """Wrapper for the ``mcflirt`` command."""

    asrt.assertIsNifti(infile)

    argmap = {
        'twod': '2d',
    }

    valmap = {
        '2d': wutils.SHOW_IF_TRUE,
        'gdt': wutils.SHOW_IF_TRUE,
        'meanvol': wutils.SHOW_IF_TRUE,
        'stats': wutils.SHOW_IF_TRUE,
        'mats': wutils.SHOW_IF_TRUE,
        'plots': wutils.SHOW_IF_TRUE,
        'report': wutils.SHOW_IF_TRUE,
    }

    cmd = ['mcflirt', '-in', infile]
    cmd += wutils.applyArgStyle('-', argmap=argmap, valmap=valmap, **kwargs)

    return cmd
Пример #19
0
def fnirtfileutils(src, **kwargs):
    """Wrapper for the ``fnirt`` command.
    
    Compulsory arguments (You MUST set one or more of):
	    -i,--in		filename of input coefficient volume (to be converted)

    Optional arguments (You may optionally specify one or more of):
        -r,--ref	filename for reference volume
        -o,--out	filename for output (field/coef) volume - uses relative warp convention
        -f,--outformat	Output format [field spline], default=field
        -w,--warpres	Warp resolution (mm), only relevant when --outformat=spline
        -k,--knotspace	Knot-spacing (voxels), only relevant when --outformat=spline
        -j,--jac	filename for output (jacobian map) volume
        -a,--withaff	If set, the affine transform is included in the field/jacobian
        -v,--verbose	switch on diagnostic messages
        -h,--help	display this message
    """

    asrt.assertIsNifti(src)

    cmd = ['fnirtfileutils', '--in={}'.format(src)]
    cmd += wutils.applyArgStyle('--=', **kwargs)

    return cmd
Пример #20
0
def fslorient(input, **kwargs):
    """Wrapper for the ``fslorient`` tool."""

    asrt.assertIsNifti(input)

    valmap = {
        'getorient': wutils.SHOW_IF_TRUE,
        'getsform': wutils.SHOW_IF_TRUE,
        'getqform': wutils.SHOW_IF_TRUE,
        'getsformcode': wutils.SHOW_IF_TRUE,
        'getqformcode': wutils.SHOW_IF_TRUE,
        'copysform2qform': wutils.SHOW_IF_TRUE,
        'copyqform2sform': wutils.SHOW_IF_TRUE,
        'deleteorient': wutils.SHOW_IF_TRUE,
        'forceradiological': wutils.SHOW_IF_TRUE,
        'forceneurological': wutils.SHOW_IF_TRUE,
        'swaporient': wutils.SHOW_IF_TRUE,
    }

    cmd = ['fslorient']
    cmd += wutils.applyArgStyle('-', valsep=' ', valmap=valmap, **kwargs)
    cmd += [input]

    return cmd
Пример #21
0
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
Пример #22
0
def test_assertIsNifti():

    with tempdir.tempdir():
        analyze = make_random_image('analyze.img', imgtype=0)
        nifti1 = make_random_image('nifti1.nii', imgtype=1)
        nifti2 = make_random_image('nifti2.nii', imgtype=2)

        with pytest.raises(AssertionError):
            assertions.assertIsNifti(analyze)
        with pytest.raises(AssertionError):
            assertions.assertIsNifti('analyze.img')

        assertions.assertIsNifti(nifti1)
        assertions.assertIsNifti('nifti1.nii')
        assertions.assertIsNifti(nifti2)
        assertions.assertIsNifti('nifti2.nii')
        assertions.assertIsNifti(nifti1, nifti2)
Пример #23
0
def test_disabled():
    with assertions.disabled():
        assertions.assertFileExists('NOT', 'A', 'FILE', 'NO', 'WAY')
        assertions.assertIsNifti('boo.txt')