Skip to content
This repository has been archived by the owner on Aug 14, 2024. It is now read-only.

SnakeMake best practices #16

Open
reid-a opened this issue Aug 1, 2022 · 5 comments
Open

SnakeMake best practices #16

reid-a opened this issue Aug 1, 2022 · 5 comments

Comments

@reid-a
Copy link
Member

reid-a commented Aug 1, 2022

Snakemake has options to use "profiles", as well as the use of YAML files, to control interaction with clusters, which inform the best practices for running on an HPC cluster. This lesson should examine these best practices with a view to doing this the right way, aligned with the SnakeMake community.

@reid-a
Copy link
Member Author

reid-a commented Aug 1, 2022

Related: SnakeMake also comes with a linter, and there are more general best practices in the documentation, which we should review and follow to the degree they make sense.

@ocaisa
Copy link
Member

ocaisa commented Aug 4, 2022

Regarding the use of profiles, this is a bit of a rabbit hole as to get snakemake to query the status of jobs you need a complex setup. This is solved by using cookie cutter profiles (as suggested by @vinisalazar) but that's a complex topic to teach so early in the lesson. It also impacts our portability a bit, since obviously we'll need different profiles for different schedulers.

A good example of why you want this is at snakemake/snakemake#1164

@ocaisa
Copy link
Member

ocaisa commented Aug 4, 2022

See https://github.com/Snakemake-Profiles/slurm for the Slurm profile

@ocaisa
Copy link
Member

ocaisa commented Aug 4, 2022

This looks more promising for our use case https://github.com/jdblischak/smk-simple-slurm

@bkmgit
Copy link
Contributor

bkmgit commented Aug 10, 2022

Profiles are helpful to avoid typing -c 1 at every invocation. Is Slurm something to emphasize throughout the lesson or enable flexible use both locally and on remote machines? One can also use Terraform to use cloud resources.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants