1.
Introduction
2.
Acknowledgements
3.
Section 1 - A Stepwise Introduction to Snakemake
3.1.
Chapter 1 - snakemake runs programs for you!
3.2.
Chapter 2 - snakemake connects rules for you!
3.3.
Chapter 3 - snakemake helps you avoid redundancy!
4.
Section 2 - Building an even more useful Snakefile
4.1.
Chapter 4 - running rules in parallel
4.2.
Chapter 5 - visualizing workflows
4.3.
Chapter 6 - using wildcards to make rules more generic
4.4.
Chapter 7 - giving snakemake filenames instead of rule names
4.5.
Chapter 8 - adding new genomes
4.6.
Chapter 9 - using expand to make filenames
4.7.
Chapter 10 - using default rules
4.8.
Chapter 11 - our final Snakefile - review and discussion
5.
Section 3 - Beyond Your First Snakefile
5.1.
input: and output: blocks
5.2.
Using wildcards to generalize your rules
5.3.
params: blocks and {params}
5.4.
Using expand to generate filenames
5.5.
Running rules and choosing targets from the command line
5.6.
Techniques for debugging snakemake workflows
5.7.
Basic syntax rules for Snakefiles
5.8.
Visualizing your workflow
5.9.
String formatting "minilanguage"
5.10.
Using configuration files
6.
Section 4 - Snakemake Patterns and Recipes
6.1.
Subsampling FASTQ files
6.2.
Using split to split up files
6.3.
Applying one rule to to many files - replacing for loops in shell scripts
6.4.
Never fail me - how to make shell commands always succeed
6.5.
Subsetting FASTQ files to a fixed number of records
7.
Section 5 - Advanced Features
7.1.
Beyond -j - parallelizing snakemake
7.2.
Resource constraints and job management
8.
Section 6 - A Reference Guide for Snakemake Features
8.1.
Wildcard constraints
8.2.
Namespaces
9.
Appendix
9.1.
UNIX shell basics
9.2.
Getting started with conda and mamba
9.3.
Git basics
9.4.
UNIX and scripting: executing text files
9.5.
Writing software that is workflow-friendly
9.6.
Python basics
Light
Rust
Coal
Navy
Ayu
An Introduction to Snakemake for Bioinformatics
Section 5 - A Reference Guide for Snakemake Features