Hi all,
At the moment the command line interface for a BIDS App has three positional arguments and one optional argument (--participant_label). Our submitted manuscript also mentions potential extra arguments: --template_name, --n_cpus and --mem_mb. We also agreed on --version and --help.
Looking at the existing applications, many of us have defined optional extra arguments and I was wondering whether we could agree on using predefined names for arguments that are not unique to a particular pipeline. Here is a list of the currently defined extra arguments (apologies if I forgot some):
OPPNI:
--run_name
--task_design
CPAC:
--pipeline_file
--n_cpus
--mem
--save_working_dir
niak:
--config_file
mindboggle:
--n_cpu
HCPPipelines:
--n_cpus
--stages
--license_key
QAP:
--pipeline_file
--n_cpus
--mem
--save_working_dir
--report
nipypelines:
--target
--subjects_dir
--target_surfaces
--vol_fwhm
--surf_fwhm
--lowpass_freq
--highpass_freq
--work_dir
--plugin
--plugin_args
hyperalignment:
--task
--run
aa:
<tasklist>
<user_customisation>
ndmg:
--bucket
--remote_path
FibreDensityAndCrosssection:
--n_cpus
-continue
-force
-nocleanup
-tempdir
-quiet
-verbose
brainiak-srm:
--run
--task
--preproc
--mask
--iterations
--features
MRtrix3_connectome:
--parc
--streamlines
--continue
--force
--nocleanup
--nthreads/-n_cpus
--tempdir
--quiet
--verbose
--debug
freesurfer:
--n_cpus
--template_name
--license_key
randomise:
<model_file>
So maybe we could find some agreements for: --n_cpus , --mem, --run, --task, --quiet, --verbose.
My particular interest here is to specify an optional argument to provide more information about the pipeline to execute. This refers to CPAC's --pipeline_file, niak's --config_file, QAP's --pipeline_file, aa's <tasklist> and randomise's <model_file>. This could be a path to a file (*.xml, *.json, *.yaml, *.m, ...) or a name the application will make sense of. At the moment, for SPM, I have configuration files for each level of analysis: pipeline_participant*.m and pipeline_group*.m.
I am not necessary suggesting to modify the specification of the command line interface and impose argument names but to at least informally agree on a number of optional arguments that are shared across applications.
Best,
Guillaume.