Random State

When performing reproducibility/variability experiments, it is important to isolate sources of variability. One such source is random state.

Random seed can be set in pipeline config

pipeline_setup:
  system_config:
    # Stop worklow execution on first crash?
    fail_fast: Off
    # Random seed used to fix the state of execution.
    # If unset, each process uses its own default.
    # If set, a `random.log` file will be generated logging the random seed and each node to which that seed was applied.
    # If set to a positive integer (up to 2147483647), that integer will be used to seed each process that accepts a random seed.
    # If set to 'random', a random positive integer (up to 2147483647) will be generated and that seed will be used to seed each process that accepts a random seed.
    random_seed:

or on the command line with --random-seed $SEED.

Valid options are positive integers up to 2,147,483,647 or the word ‘random’ (which will set an integer in that range). If not specified, a seed will not be set, and each relevant process will run with an undocumented random seed.

When a seed is set, a random.log file, including the constant seed and each node the seed was applied to, will be generated in the logging directory.

The following processes currently support this feature:

antsAI
antsRegistration
Atropos
recon-all
mri_vol2vol
fslmaths
fslmaths
CPAC.registration.utils.hardcoded_reg