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.
Techniques for debugging snakemake workflows
5.6.
Basic syntax rules for Snakefiles
5.7.
Visualizing your workflow
5.8.
String formatting "minilanguage"
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
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
Basic syntax rules for Snakefiles
strings -
'
and
"
are equivalent, just need to use matching
trailing , are ok
indentation and whitespace
Python lists, dictionaries