Run the snakemake workflow
The run subcommand will run the workflow.
Note
The snk-basic-pipeline workflow used as an example in this documentation can be found here
Setup
Download the test data
snk-basic-pipeline script run download_data
Running the workflow
To run the workflow, use the run command. This will execute the workflow using Snakemake.
snk-basic-pipeline run # Run the workflow
Building DAG of jobs...
Using shell: /bin/bash
Provided cores: 8
Rules claiming more threads will be scaled down.
Job stats:
job count
--------------- -------
all 1
call_variants 1
map_reads 3
plot_quals 1
sort_alignments 3
total 9
Options
The run command will pass all unrecognized arguments to Snakemake. That means that if you want to use any of the Snakemake options, you can pass them to the run command e.g. snk-basic-pipeline run --use-singularity. To see all the options available in Snakemake, you can use the --help-snakemake (-hs) flag. You can prepend --snake to any Snakemake option e.g. snk-basic-pipeline run --snake--use-singularity to ensure the --use-singularity option is passed to Snakemake.
Note
You can permanently set additional Snakemake options by adding them to the additional_snakemake_args section of the snk.yaml file.
The snk-cli provides several options to configure the workflow.
Configuration
You can use the --config flag to specify a configuration file to override the existing workflow configuration. This is the same as using the --configfile flag in Snakemake.
snk-basic-pipeline run --config config.yaml
Resources
You can use the --resource flag to specify additional resources to copy from the workflow directory at run time. The resources must be specified as a path relative to the workflow directory. The resources will be copied to the working directory before the workflow is executed and removed after the workflow completes (unless the --keep-resources flag is used).
snk-basic-pipeline run --resource data/extra
Profile
You can use the --profile flag to specify a profile to use for configuring Snakemake. You can specify the profile by name. The profile must be located in the profiles directory of the workflow.
snk-basic-pipeline run --profile slurm
Generate a workflow graph
You can use the --dag flag to save the directed acyclic graph to a file. The output file must end in .pdf, .png, or .svg.
snk-basic-pipeline run --dag workflow.pdf
Note
The --dag flag requires the graphviz package (dot) to be installed.
Other Options
You can use the --dry flag to display what would be done without executing anything (this is the same as using the --dry-run flag in Snakemake).
The --lock flag is used to lock the working directory (by default, the working directory is not locked e.g. --nolock is passed to Snakemake).
The --cores flag is used to set the number of cores to use. If None is specified, all cores will be used by default.
The --no-conda flag is used to disable the use of conda environments.
The --keep-snakemake flag is used to keep the .snakemake folder after the pipeline completes. This is useful for debugging purposes. By default, the .snakemake folder is removed after the pipeline completes.
Help
The snk-cli help message is broken into two sections. The first section lists the options available for the run command. The second section lists the workflow configuration options (generated from the snakemake configfile).
snk-basic-pipeline run --help
Usage: snk-basic-pipeline run [OPTIONS]
Run the workflow.
All unrecognized arguments are passed onto Snakemake.
╭─ Options ─────────────────────────────────────────────────────────────╮
│ --config FILE Path to snakemake config file. │
│ Overrides existing workflow │
│ configuration. │
│ [default: None] │
│ --resource -r PATH Additional resources to copy from │
│ workflow directory at run time. │
│ --profile -p TEXT Name of profile to use for │
│ configuring Snakemake. │
│ [default: None] │
│ --dry -n Do not execute anything, and │
│ display what would be done. │
│ --lock -l Lock the working directory. │
│ --dag -d PATH Save directed acyclic graph to │
│ file. Must end in .pdf, .png or │
│ .svg │
│ [default: None] │
│ --cores -c INTEGER Set the number of cores to use. │
│ If None will use all cores. │
│ [default: None] │
│ --no-conda Do not use conda environments. │
│ --keep-resources Keep resources after pipeline │
│ completes. │
│ --keep-snakemake Keep .snakemake folder after │
│ pipeline completes. │
│ --verbose -v Run workflow in verbose mode. │
│ --help-snakemake -hs Print the snakemake help and │
│ exit. │
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────╯
╭─ Workflow Configuration ──────────────────────────────────────────────╮
│ --sample -s TEXT Samples to map to the reference genome. │
│ [default: A, B, C] │
│ --genome -g PATH Path to the reference genome. │
│ [default: data/genome.fa] │
│ --samples-dir PATH Directory of samples. │
│ [default: data/samples] │
╰───────────────────────────────────────────────────────────────────────╯