Tool arguments
The arguments section of the tool configuration file is used to describe all of the arguments that can be set for the tool along with describing the behaviour of the arguments. All of the arguments are grouped under different titles. All input files must be assigned to the Inputs group and all output files to the Outputs group. All other arguments can appear under any user defined titles. Each group consists of a list of arguments, each supplied with a set of attributes as shown in the example at the end of this page. Following is a list of All of the required and optional attributes.
Required argument attributes
command line argument
The long and short form arguments are used to specify the argument expected by gkno and the command line argument attribute is the argument expected by the tool. For example, the command line for the tool might expect the argument --bam to describe an input bam file, but to be consistent with other tools, the gkno long and short form arguments for specifying this input file are --in and -i. The command line argument attribute will ensure that when constructing the command line for this tool, the input files are specified using the argument --bam as expected by the tool.
  • "command line argument" : "ARGUMENT"
data type
The argument can be accompanied by a value of a particular type or is a flag and does not expect a value. The data type attribute informs gkno what the expected type is so that any supplied values can be checked.
  • "data type" : "TYPE"
where TYPE can take any of the following values:
flag: no value is allowed with the argument.
float: a floating point number.
integer: an integer.
string: a string.
Each of the tool arguments is provided with a description of what function the argument performs. This ensures that the configuration file is human-readable, but also, these descriptions can be imported into pipelines and appear in the help messages for pipelines. As such, these descriptions should be as clear and descriptive as possible.
  • "description" : "ARGUMENT DESCRIPTION"
long form argument
Each gkno argument has two forms; a long and a short form. The long form argument is preceded by '--' and is descriptive of what the argument does. The long and short form arguments do not have to be related to the argument expected by the tool. Recommended practice is to keep gkno arguments consistent across tools.
  • "long form argument" : "--LONG"
short form argument
The short form argument is preceded by a single dash '-' and is generally not descriptive of what the argument does, but is quick to type and so is typically the form used by the user.
  • "short form argument" : "--SHORT"
Optional argument attributes
allow multiple values
By default, a non-flag argument can be given a single value. If a tool is a part of a pipeline and multiple values are supplied for an argument, gkno will assume that the pipeline is to be run multiple times, each subsequent execution using one of the supplied values. There are many occasions where the argument can legitimately by supplied with multiple values for a single execution. The manner in which this occurs is discussed with the pipeline descriptions, but it is only possible if the tool argument is known to allow multiple values to be supplied. The allow multiple values attribute is a Boolean and instructs gkno that the argument can or cannot accept multiple values. Since this is optional and false by default, it is generally only included to indicate that an argument can accept multiple values.
  • "allow multiple values" : true / false
Below is an example of an input file argument in the Inputs argument group.
  • "arguments" : {
  •   "Inputs" : [
  •     {
  •       "description" : "ARGUMENT DESCRIPTION",
  •       "long form argument" : "--ARGUMENT",
  •       "short form argument" : "-A",
  •       "command line argument" : "ARGUMENT EXPECTED BY THE TOOL",
  •       "required" : true,
  •       "data type" : "TYPE",
  •       "extensions" : [LIST OF ALLOWED EXTENSIONS],
  •       "modify argument" : "MODIFIER",
  •       "modify value" : "REPLACE ARGUMENT WITH THIS VALUE",
  •       "if input is stream" : {
  •         "default" : {
  •           "argument" : "ARGUMENT",
  •           "value" : "VALUE"
  •         }
  •       }
  •     }
  •   ]
  • }