BATCH: brun_fastsurfer.sh¶
Usage¶
$ ./brun_fastsurfer.sh --help
Script to run FastSurfer on multiple subjects in parallel/series.
Usage:
brun_fastsurfer.sh --subject_list <file> [other options]
OR
brun_fastsurfer.sh --subjects <subject_id>=<file> [<subject_id>=<file> [...]] [other options]
OR
brun_fastsurfer.sh [other options]
Other options:
brun_fastsurfer.sh [...] [--batch "<i>/<n>"] [--parallel_subjects [surf=][<N>]]
[--run_fastsurfer <script to run fastsurfer>] [--statusfile <filename>] [--debug] [--help]
[<additional run_fastsurfer.sh options>]
Author: David Kügler, david.kuegler@dzne.de
Date: Nov 6, 2023
Version: 1.0
License: Apache License, Version 2.0
Documentation of Options:
Generally, brun_fastsurfer works similar to run_fastsurfer, but loops over multiple subjects from
i. a list passed through stdin of the format (one subject per line)
---
<subject_id>=<path to t1 image>[ <subject-specific parameters>[ ...]]
...
---
ii. a subject_list file using the same format (use Ctrl-D to end the input), or
iii. a list of subjects directly passed (this does not support subject-specific parameters)
--batch "<i>/<n>": run the i-th of n batches (starting at 1) of the full list of subjects
(default: 1/1, == run all). "slurm_task_id" is a valid option for "<i>".
Note, brun_fastsurfer.sh will also automatically detect being run in a SLURM JOBARRAY and split
according to $SLURM_ARRAY_TASK_ID and $SLURM_ARRAY_TASK_COUNT (unless values are specifically
assigned with the --batch argument).
--parallel_subjects [surf=][<n>]: parallel execution of <n> or all (if <n> is not provided) subjects,
specifically interesting for the surface pipeline (--surf_only) (default: serial execution, or
'--parallel_subjects 1'). (Note, that currently only n=1 and n=-1 (no limit) are implemented.)
Note, it is not recommended to parallelize the segmentation using --parallel_subjects on gpus,
as that will cause out-of-memory errors, use --parallel_subjects surf=<n> to process segmentation
in series and surfaces of <n> subjects in parallel.
Note, that --parallel_subjects surf=<n> is not compatible with either --seg_only or --surf_only.
The script will print the output of individual subjects interleaved, but prepend the subject_id.
--run_fastsurfer <path/command>: This option enables the startup of fastsurfer in a more controlled
manner, for example to delegate the fastsurfer run to container:
--run_fastsurfer "singularity exec --nv --no-home -B <dir>:/data /fastsurfer/run_fastsurfer.sh"
Note, paths to files and --sd have to be defined in the container file system in this case.
--statusfile <filename>: a file to document which subject ran successfully. Also used to skip
surface recon, if the previous segmentation failed.
--debug: Additional debug output.
--help: print this help.
With the exception of --t1 and --sid, all run_fastsurfer.sh options are supported, see
'run_fastsurfer.sh --help'.
This tool requires functions in stools.sh (expected in same folder as this script).
Questions¶
Can I disable the progress bars in the output?
You can disable the progress bars by setting the TQDM_DISABLE environment variable to 1, if you have tqdm>=4.66.
For docker, this can be done with the flag
-e
, e.g.docker run -e TQDM_DISABLE=1 ...
, for singularity with the flag--env
, e.g.singularity exec --env TQDM_DISABLE=1 ...
and for native installations by prepending, e.g.TQDM_DISABLE=1 ./run_fastsurfer.sh ...
.