# This file was auto generated by Styx.
# Do not edit this file directly.

import typing
import pathlib
from styxdefs import *
import dataclasses

FSLVBM_1_BET_METADATA = Metadata(
    id="b14f656e797f3613fc30f4f42a5942f8c36bc438.boutiques",
    name="fslvbm_1_bet",
    package="fsl",
    container_image_tag="brainlife/fsl:6.0.4-patched2",
)


class Fslvbm1BetOutputs(typing.NamedTuple):
    """
    Output object returned when calling `fslvbm_1_bet(...)`.
    """
    root: OutputPathType
    """Output root folder. This is the root folder for all outputs."""


def fslvbm_1_bet(
    increased_robustness: bool = False,
    bet_parameters: str | None = None,
    runner: Runner | None = None,
) -> Fslvbm1BetOutputs:
    """
    Brain extraction for VBM using FSL BET.
    
    Author: FMRIB Analysis Group, University of Oxford
    
    URL: https://fsl.fmrib.ox.ac.uk/fsl/fslwiki
    
    Args:
        increased_robustness: Increased robustness in the brain extraction when\
            a lot of neck is present.
        bet_parameters: Additional options to be passed on to BET.
        runner: Command runner.
    Returns:
        NamedTuple of outputs (described in `Fslvbm1BetOutputs`).
    """
    runner = runner or get_global_runner()
    execution = runner.start_execution(FSLVBM_1_BET_METADATA)
    cargs = []
    cargs.append("fslvbm_1_bet")
    if increased_robustness:
        cargs.append("-N")
    if bet_parameters is not None:
        cargs.append(bet_parameters)
    ret = Fslvbm1BetOutputs(
        root=execution.output_file("."),
    )
    execution.run(cargs)
    return ret


__all__ = [
    "FSLVBM_1_BET_METADATA",
    "Fslvbm1BetOutputs",
    "fslvbm_1_bet",
]
