Full Workflow Execution#

We execute the full dependency tree of the workflow by calling snakemake --cores <ncores> -s snakefile, where we point to the snakefile and <ncores> specifies the maximum number of parallelly running tasks. Do not forget to setup basf2 beforehand, for the recommended release use b2setup $(b2help-releases).

To submit rules to the KEKcc batch system, we can specify snakemake --jobs <njobs> -s snakefile --cluster bsub, where <njobs> specifies the maximum number of parallelly running tasks. In our case, we only want to submit the reconstructions, therefore we mark all other rules as local in the snakefile:

localrules: OfflineAnalysis, MergeEventType, MergeBatch, BatchToTextFile, Skim, SetProxy

You can run snakemake workflows dryly with snakemake -npr -s snakefile, with printout for shell commands and a reasoning why every rule is triggered.

Snakemake does not feature a dynamic directed acyclic graph (DAG). For dynamic workflow monitoring you may us the Panoptes Server. To statically visualize the DAG for your workflow, call:

snakemake -s snakefile --forceall --dag | dot -Tpdf > dag.pdf  # full DAG
snakemake -s snakefile --rulegraph | dot -Tpdf > dagsimple.pdf  # simplified DAG

Snakemake workflows can be executed remotely on the Reproducible research data analysis platform for added functionalities.