# SD8.1 Programming Snakemake Workflows ## Requirements * [[skill-tree:use:1:3:b]] * Python Programming ## Learning objectives * Develop Snakemake workflows by utilising rules, input/output files, and directives such as shell, script, run, "wrappers", and resource definitions. * Integrate custom Python scripts into Snakemake workflows for dynamic data manipulation and resource parameterization. * Handle automatic software deployment using Conda, or software provisioning with Apptainer/Singularity or module files. * Modularize existing Snakemake workflows into semantic units to improve maintainability and scalability.