Skip to content
Open
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
9 changes: 9 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)
- [The "profiles" Directory](#the-profiles-directory)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

directory lower-case

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [The "profiles" Directory](#the-profiles-directory)
- [Workflow profiles](#workflow-profiles)

- [Authors](#authors)
- [References](#references)
- [TODO](#todo)
Expand Down Expand Up @@ -50,6 +51,14 @@ Run the workflow with:
snakemake --cores 2 --sdm conda apptainer --directory .test
```

## The "profiles" Directory
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

directory lower-case

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## The "profiles" Directory
## Workflow profiles


When developing on a cluster or cloud instance, please include a "profiles" directory:

`profiles/<cluster or cloud name>/config.yaml`

This configuration file should contain the workflow profile with its resource specification for a particular execution environment (cluster or cloud). You may include a readme file next to point out pitfalls or other aspects worth a user's consideration.
Comment on lines +56 to +60
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When developing on a cluster or cloud instance, please include a "profiles" directory:
`profiles/<cluster or cloud name>/config.yaml`
This configuration file should contain the workflow profile with its resource specification for a particular execution environment (cluster or cloud). You may include a readme file next to point out pitfalls or other aspects worth a user's consideration.
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
9 changes: 9 additions & 0 deletions profiles/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
A 'profiles' directory might contain workflow resource configuration for a particular cluster or cloud instance.

We encourage to include a profile for your use case as:

`profiles/<your cluster or cloud instance>/config.yaml`

You may include a readme file next to the config.yaml file to point out pitfalls or other things to consider.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may include a README.md file [...]


We welcome pull requests for 3rd-party workflows you are working with to include such a profile! It may also be necessary to occasionally label certain rules of a particular workflow with the `localrules: <rule 1>, <rule 2>, ...` directive when workflow developers focused on server execution during development, e.g., plotting and download rules.
Comment on lines +1 to +9
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A 'profiles' directory might contain workflow resource configuration for a particular cluster or cloud instance.
We encourage to include a profile for your use case as:
`profiles/<your cluster or cloud instance>/config.yaml`
You may include a readme file next to the config.yaml file to point out pitfalls or other things to consider.
We welcome pull requests for 3rd-party workflows you are working with to include such a profile! It may also be necessary to occasionally label certain rules of a particular workflow with the `localrules: <rule 1>, <rule 2>, ...` directive when workflow developers focused on server execution during development, e.g., plotting and download rules.
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