Snakemake Rules

A brief summary of how Snakemake rules are implemented and organized.

We follow the conventions set in the snakemake-rules repository, and groups all rules into .rule files and all parameters into .settings files.

For a couple of simple workflows illustrating how to assemble Snakemake rules that taco can utilize (i.e., that uses information from the user's config and params file), see the simple-taco taco workflow repository.

Workflows

The workflows define a set of tasks. Each workflow is a sub-directory in the rules/ directory.

Rule Files

Rule files define how steps in the workflow proceed. They preprocess configuration variables. Rules are defined in .rule files in the workflow directory.

Default Parameter Files

The default parameter dictionary is contained in a .settings file in the workflow directory. These will NOT overwrite any parameters that have already been set by the user in their JSON parameter file.

Validation of Parameters

Because we don't know what workflow is being run when we process the parameters, we can't do much parameter validation.

Currently, we do not throw an exception when a parameter is undefined by the user, we either silently use the default value (default behavior) or we silently set to an empty string (using --clean or -c flag).