When I started my project on building a Snakemake workflow for a bioinformatics pipeline, I
wasn’t super familiar with Snakemake and how it worked. One resource that I found to be very helpful when first learning Snakemake was this video series, which went over many of the basics of how Snakemake works and some good practices for building workflows. In addition to this, the Snakemake documentation is generally pretty good, and I was able to use that to learn how the package worked as well.
One particular challenge I ran into in my project was trying to run a job multiple times on different files in parallel and to solve that problem, I was able to use checkpoint rules as a solution to run all of these jobs in parallel. This section in the Snakemake documentation explains how checkpoint rules evaluate the output of a particular rule and allow the user to base their next rules off of that output.