fastsurfer (launcher)

fastsurfer runs FastSurfer with one command on every system: in its container image with Apptainer, Singularity or Docker, or on a Mac with Apple silicon with the macOS package. It takes the flags of run_fastsurfer.sh and needs only Python, not FastSurfer itself. The launcher explains how it chooses the image, and the quick start how to download it.

Usage

python3 tools/fastsurfer --help
usage: fastsurfer [-h] [--image IMAGE] [--update] [--update_launcher]
                  [--runtime {auto,apptainer,singularity,docker,macos}]
                  [--image_dir IMAGE_DIR] [--exec PROGRAM]
                  [--runtime_args RUNTIME_ARGS] [--print_only]

Run FastSurfer with one command on every system: in its container image, or on
a Mac with Apple silicon with the macOS package.

options:
  -h, --help            show this help message and exit
  --image IMAGE         the image to run: a release tag such as cu132-v2.6.0
                        (to keep a study on one image), a version such as
                        2.6.0 (the image type is chosen for this machine),
                        rocm for the ROCm image on an AMD GPU (experimental;
                        used without --image when there is no NVIDIA GPU), a
                        Docker image (e.g. my_fastsurfer:cu132) or an
                        Apptainer .sif file. On a Mac with Apple silicon, the
                        version of the macOS package (e.g. 2.6.0) or its
                        folder. Default: the release installed on this
                        machine, or the newest release if there is none
  --update              download the newest release (or the one --image names)
                        again, even if an image is installed, and run it. On a
                        Mac with Apple silicon, download the macOS package and
                        open the macOS Installer
  --update_launcher     replace this launcher with the current one and stop
  --runtime {auto,apptainer,singularity,docker,macos}
                        what runs FastSurfer (default: auto, on a Mac with
                        Apple silicon the macOS package, else the container
                        runtime that has the image, else Apptainer,
                        Singularity, then Docker)
  --image_dir IMAGE_DIR
                        where Apptainer/Singularity images are kept (default:
                        $FASTSURFER_IMAGE_DIR or ~/my_singularity_images)
  --exec PROGRAM        run another program of the image instead of
                        run_fastsurfer.sh. It comes last: all later arguments
                        go to the program. brun_fastsurfer.sh (several
                        subjects) and long_fastsurfer.sh (longitudinal
                        processing) take FastSurfer's flags, as
                        run_fastsurfer.sh does. Any other program, e.g. --exec
                        nib-convert in.mgz out.nii.gz, runs in the current
                        directory, which is shared with the container, as are
                        the directories of absolute paths in its arguments
  --runtime_args RUNTIME_ARGS
                        additional arguments for the container runtime, e.g.
                        --runtime_args '--group-add 1001'
  --print_only          print the commands instead of running them

All other arguments are passed to run_fastsurfer.sh (or brun_fastsurfer.sh,
long_fastsurfer.sh), see https://deep-
mi.org/FastSurfer/stable/scripts/RUN_FASTSURFER.html. Relative paths are
relative to the current directory.