Skip to content

Complete params file syntax

Wise, Aaron edited this page Mar 28, 2018 · 7 revisions

(As ZIPPY is still evolving, this page is a work in progress. Features may be added, but all of this syntax should be forwards compatible.)

Here is all of the special syntax that can be used in a params file.

Top level sections

  • wildcards: A dictionary of wildcards. Wildcards are variables for your parameters file. For example, if you set "path" : "/path/to/file", then anywhere in your parameters file, you can use the "{path}" macro. It will be automatically substituted to "/path/to/file" by ZIPPY.
  • imports: Contains a list of module names. These modules will be imported by ZIPPY, and all classes that end in Runner will be available for use as pipeline stages.
  • stages: Contains a list of dictionaries. Each dictionary contains all the parameters needed for a stage
  • docker: A dictionary of docker names to docker dictionaries

Subsections of a docker dictionary

Each dictionary in the 'docker' section of the parameters file defines the configuration of a single docker image.

  • image: the server location of your docker image
  • image_file_path: the local path to your docker image
  • pull: If true, uses docker pull from <image>, else, uses docker load from <image_file_path>
  • mount_points: a list of docker mount points. Follows docker syntax (e.g., "/home:/home" is mount point mapping home to home)
  • intercept_mounts: if true, global variables containing mount strings will be intercepted and moved into the docker namespace. For example, if params.output_dir is '/home/aaron/my_output', but there is a docker mount of '/home/aaron:/aaron', if intercept_mounts is true, then params.output_dir will be overridden to '/aaron/my_output'
  • engine: What execution platform to run the image on. Currently either 'singularity' or 'docker' are supported.

Subsections of a stage dictionary

Stage dictionaries contain either Stages or Subworkflows

Stage parameters

  • skip: If skip: true, the stage's workflow is not executed. This can be used for debugging, or when a downstream stage has failed for whatever reason.
  • stage: what workflow step will be run.
  • identifier: a unique name for disambiguating this instance of the stage.
  • output_dir: virtually all stages result in output. Output_dir is the directory where the stage should place its output.
  • use_docker: a string containing a docker name. If this parameter is set, the stage will automatically be run in a docker image.

Subworkflow parameters

  • subworkflow: path to the subworkflow json file.
  • identifier: a unique suffix identifying the subworkflow. The subworkflow identifier will be suffixed to all sub-stage identifiers and all sub-stage output directories
  • previous_stage. Dictionary. Map from sub-stage identifiers to the identifiers of the stages they depend on. The dictionary values may be strings (if the stage depends only on a single previous stage) or lists (if the stage depends on multiple previous stages) -zippy_do_not_append_identifier_to_paths: Boolean, default=False. By default, subworkflow output directories are suffixed by the subworkflow identifier. If this is true, subworkflow output directories will not be suffixed.

Special zippy options

Certain parameters will affect the behavior of zippy:

  • zippy_fix_duplicate_sample_names: By default, zippy will raise an error if sample names are identical. If this variable is true, zippy will, if a run has non-unique sample names, replace them with the sample ids.