Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ A Snakemake workflow for `<description>`
- [Snakemake workflow: `<name>`](#snakemake-workflow-name)
- [Usage](#usage)
- [Deployment options](#deployment-options)
- [Workflow profiles](#workflow-profiles)
- [Authors](#authors)
- [References](#references)
- [TODO](#todo)
Expand Down Expand Up @@ -50,6 +51,11 @@ Run the workflow with:
snakemake --cores 2 --sdm conda apptainer --directory .test
```

## Workflow profiles

The `profiles/` directory can contain any number of [workflow-specific profiles](https://snakemake.readthedocs.io/en/stable/executing/cli.html#profiles) that users can choose from.
The [profiles `README.md`](profiles/README.md) provides more details.

## Authors

- Firstname Lastname
Expand Down
17 changes: 17 additions & 0 deletions profiles/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
The `profiles/` directory can contain any number of subdirectories, each containing a `config.yaml` file with a [workflow-specific profile](https://snakemake.readthedocs.io/en/stable/executing/cli.html#profiles):

`profiles/<specific_profile_name>/config.yaml`

The profile `profiles/default/config.yaml` will automatically be used by snakemake whenever you don't provide a workflow-specific profile via `--workflow-profile`.
This means that any resources or other (command line) arguments specified there, will implicitly be used when running this workflow.
Thus, as a workflow developer, only put configurations there that you expect to work in most environments, but which the users might want to tweak.
And for rule-specific resource setting, preferably provide generally applicable settings right in the rule definition, if necessary via [dynamic resource](https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#dynamic-resources) specification---users can always override those in a profile, if they need to.

For any more specific profiles, use separate and clearly named subdirectories.
For example use `profiles/slurm/config.yaml` for a slurm-specific profile, or even something like `profiles/slurm_uni_xyz/config.yaml` for a particular institutional slurm compute cluster.

It is also good practice to add clear documentation comments for each entry in a (workflow) profile.
This should explain the respective entry, indicate what kind of values can be used and why a particular value or setting were chosen.
To this end, it is often helpful to provide links to relevant documentation pages, either from snakemake, a snakemake plugin or a specific cluster environment.

In general, we welcome pull requests for 3rd-party workflows you are working with to include such a profile for your specific compute environment.
Loading