Replies: 11 comments 5 replies
-
Interesting that the invocation of Possibly important to be clear about this. |
Beta Was this translation helpful? Give feedback.
-
Something to consider: does this Snakefile cover the important parts, and enough of the important topics, to say we have "taught" Snakemake to the learners? Likewise, Snakemake is not the only workflow management tool, and we want our learners to be able to evaluate other tools based on their perceived needs and the tools' capabilities. This Snakefile represents an end-stage of the lesson, and is expected to start out with more naive stanzas to introduce topics and evolve toward more succinct rules at the end. Our goal for the lesson is to teach workflow management, more than simply "here's how to do a scaling study using Snakemake." |
Beta Was this translation helpful? Give feedback.
-
Implicit setup:
|
Beta Was this translation helpful? Give feedback.
-
Learners will not have seen YAML before! Uh oh! |
Beta Was this translation helpful? Give feedback.
-
Point from the Sprint discussion, the config.yaml file is indeed a yaml file, and has syntax constraints that arise from that. It may be important to distinguish between Snakemake file syntax and YAML syntax. |
Beta Was this translation helpful? Give feedback.
-
Pipelines in the shell ( |
Beta Was this translation helpful? Give feedback.
-
Useful when the program runs to have it print which host it's on: develop the Snakefile locally or on the head node, then jump to the cluster; we want the machinery to be explicit about where we are, so learners get a little less-lost about where it's being executed. |
Beta Was this translation helpful? Give feedback.
-
Instructor & sysadmin onboarding to make sure the dependencies are satisfied |
Beta Was this translation helpful? Give feedback.
-
Self-document the YAML file with more & better comments |
Beta Was this translation helpful? Give feedback.
-
Mapping exercise: which Snakemake concepts are covered in each episode? Which are present in the "final" Snakefile, and which require intermediate versions? See #15! |
Beta Was this translation helpful? Give feedback.
-
Snakemake supports Conda and modules -- simplified scripts in the OP now include more comments as well! |
Beta Was this translation helpful? Give feedback.
-
@reida and I have cobbled together a working Snakefile and cluster config for this lesson, using smk-simple-slurm for the profile skeleton. Note that some options in
config.yaml
are carried over, and there are likely extraneous parameters; streamlining both files would be worthwhile, but requires more Snakemake expertise than I currently have.Profile (
cluster/config.yaml
)This profile assumes you have a Conda environment named "amdahl" in which the
amdahl
package is installed.Snakefile
"Tasks" is a list of the number of CPU cores to run the
amdahl
program with.Usage
Assuming your cluster uses Slurm, launch the workflow using
We can work during the CarpentryCon Sprint today and Friday to incorporate this content (or something like it) into the lesson.
Edited with new scripts that use Snakemake's built-in Conda facilities
Beta Was this translation helpful? Give feedback.
All reactions