Difference between revisions of "Using Snakemake on the HPC Cluster"
From Bridges Lab Protocols
Davebridges (Talk | contribs) (Created initial coding example for snakemake) |
Davebridges (Talk | contribs) (Changed to code tags) |
||
Line 2: | Line 2: | ||
* Install snakemake via mamba/conda (see https://snakemake.readthedocs.io/en/stable/getting_started/installation.html) | * Install snakemake via mamba/conda (see https://snakemake.readthedocs.io/en/stable/getting_started/installation.html) | ||
− | * In the working folder create a snakemake environment with < | + | * In the working folder create a snakemake environment with <code>mamba activate snakemake</cpde> |
+ | * Install the cluster-generic tool to submit snakemake files to a cluster from pip with <code>pip install snakemake-executor-plugin-cluster-generic</code> | ||
* Create a generic profile in ~/.config/snakemake/testprofile/config.yaml such as: | * Create a generic profile in ~/.config/snakemake/testprofile/config.yaml such as: | ||
− | < | + | <code> |
executor: slurm | executor: slurm | ||
jobs: 100 | jobs: 100 | ||
Line 18: | Line 19: | ||
myrule: | myrule: | ||
mem_mb: attempt * 200 | mem_mb: attempt * 200 | ||
− | </ | + | </code> |
+ | |||
+ | == Executing a Snakefile Workflow == | ||
* Create a Snakefile (see | * Create a Snakefile (see | ||
** You can over-ride resources with that flag otherwise it will use the values in testprofile | ** You can over-ride resources with that flag otherwise it will use the values in testprofile | ||
− | * Run the Snakefile with this command < | + | * Run the Snakefile with this command <code>snakemake --profile testprofile -j 1 --executor cluster-generic --cluster-generic-submit-cmd "batch" ... </code> |
Revision as of 19:59, 16 May 2024
Setup
- Install snakemake via mamba/conda (see https://snakemake.readthedocs.io/en/stable/getting_started/installation.html)
- In the working folder create a snakemake environment with
mamba activate snakemake</cpde>
- Install the cluster-generic tool to submit snakemake files to a cluster from pip with <code>pip install snakemake-executor-plugin-cluster-generic
- Create a generic profile in ~/.config/snakemake/testprofile/config.yaml such as:
executor: slurm
jobs: 100
default-resources:
mem_mb: max(1.5 * input.size_mb, 100) account: <ACCOUNT_NAME> partition: <PARTITION NAME>
set-threads:
myrule: max(input.size_mb / 5, 2)
set-resources:
myrule: mem_mb: attempt * 200
Executing a Snakefile Workflow
- Create a Snakefile (see
- You can over-ride resources with that flag otherwise it will use the values in testprofile
- Run the Snakefile with this command
snakemake --profile testprofile -j 1 --executor cluster-generic --cluster-generic-submit-cmd "batch" ...