cwl-runner
TLDR
Run a CWL workflow
SYNOPSIS
cwl-runner [options] workflow.cwl [inputs]
DESCRIPTION
cwl-runner executes workflows defined in Common Workflow Language (CWL), a specification for describing analysis workflows in data-intensive sciences. CWL workflows are portable across different execution environments.
The runner takes a CWL document and input parameters, resolves dependencies, and executes tools in the correct order. Steps can be run in containers (Docker/Singularity) for reproducibility, or natively if tools are installed locally.
Input parameters can be specified in a YAML/JSON file or as command-line arguments. Outputs are placed in the specified output directory with a manifest describing the results.
PARAMETERS
--validate
Validate the CWL document without running.--outdir path
Output directory for results.--no-container
Disable Docker/container execution.--parallel
Run workflow steps in parallel.--cachedir path
Directory for caching intermediate results.--tmpdir-prefix path
Prefix for temporary directories.--debug
Enable debug output.--quiet
Only print warnings and errors.--strict
Strict validation mode.--leave-tmpdir
Don't delete temporary directories.
INPUT FILE EXAMPLE
fastq_file:
class: File
path: /data/sample.fastq
reference:
class: File
path: /data/reference.fa
threads: 8
CAVEATS
Default implementation (cwltool) may have performance limitations for large workflows. Some advanced features require specific runners (toil-cwl-runner, arvados-cwl-runner). Container requirements need Docker or Singularity installed. File paths in inputs must be accessible to the runner.
HISTORY
Common Workflow Language was developed by a community effort starting in 2014, with the specification reaching v1.0 in 2016. Led by Peter Amstutz and Michael Crusoe, CWL emerged from the need for portable, reproducible workflows in bioinformatics. cwltool is the reference implementation. CWL has been adopted by many scientific platforms and is now a standard for sharing computational pipelines.


