Skip to content

Command line reference

Marko Marinković edited this page Jul 21, 2017 · 1 revision

Syntax

There are two available command syntax options that you can use to run an app, depending on how you want to specify the app inputs:

./rabix [OPTION]... <app> <inputs> [-- input_parameters...]

or

./rabix [OPTION]... <app> -- input_parameters...

where:

  • <app> is the CWL (JSON or YAML) file that describes the app (e.g. dna2protein.cwl.json).
  • <inputs> is the JSON or YAML file that provides the values of app inputs.
  • -- input_parameters... are the app input values specified directly from the command line. Read more.

The first version of the command syntax is used when you have a file specifying the values of app inputs. If an <inputs> CWL file is used, the file paths need to be relative to the location of the <inputs> file. In this case, command line input parameters are optional and if used, override the corresponding input values specified in the <inputs> file. The second version of the syntax is used when you do not have an <inputs> file. In this case, input values must be specified as input_parameters from the command line.

The following list of arguments is available under [OPTION]:

Option Description
-b <arg>
--basedir <arg>
For each run, Rabix Executor will create a new execution directory. Use this option to specify where this execution directory should be created. By default, this directory will be created in the same directory where the <inputs> file is located, or in the current working directory if no <inputs> file is provided.
-c <arg>
--configuration-dir <arg>
Specify the directory where the configuration files are located. The directory can be located anywhere on the local filesystem. The default configuration directory is the config subdirectory in the directory where the Rabix executable is located.
--cache-dir Specify the directory where Rabix Executor will search for results of a previously executed task, based on the version of the app. For tasks/workflows whose execution failed at some point, the task will be able to continue from the point of failure.
-h
--help
Display the help screen.
--no-container The execution will take place on your local machine instead of a Docker container. For the execution to be successful, you will need all prerequisites for the app(s) you are running to be already installed on your machine. For example, if the app you are running is essentially a Python script, you will need Python on your machine to be able to run it without an adequate Docker container.
--outdir <arg> Legacy compatibility parameter. Doesn't do anything.
--quiet Nothing will be printed on standard output except the final result of execution.
--r
--resolve-app
Resolve all referenced fragments and print application as a single CWL document. The output is printed in the terminal screen.
--tes-url <arg> URL of the GA4GH Task Execution Server (TES) instance. TES acts as a Docker orchestrator, it receives commands from the command line, executes the command parts and returns the results.
--tmp-outdir-prefix <arg> Legacy compatibility parameter. Doesn't do anything.
--tmpdir-prefix <arg> Legacy compatibility parameter. Doesn't do anything.
-v
--verbose
Print debug messages on standard error.

Input parameters are specified at the end of the command, after the -- delimiter. You can specify values for each input, using the following format:

--<input_port_id> <value>

This is what the full command line would look like if providing values for two input parameters whose IDs are fastq and threads:

./rabix app.cwl.json inputs.json -- --fastq sample1.fastq.gz --threads 4

When specifying values for the input ports whose type is File, the path to the files is relative to the current working directory.

In order to define values for app inputs, you can use:

  • the <inputs> CWL file
  • the command line
  • both

If the same parameter is specified both in the <inputs> file and through the command line, the one specified in the command line will take precedence.

If the input parameter is a list of values, the parameter needs to be repeated as many times as there are values, e.g. --fasta file1.fasta.gz --fasta file2.fasta.gz, etc.

Parameters that are required need to be specifies either in the <inputs> file or in the command line, unless they have default values defined.