From 238d7db1611fa5d98495c6808231948b1c5bca52 Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Fri, 8 Sep 2023 16:36:03 +0200 Subject: [PATCH 1/7] Adding ethz_euler profile --- .github/workflows/main.yml | 1 + README.md | 1 + conf/ethz_euler.config | 39 ++++++++++++++++++++++++++++++++++++++ docs/ethz_euler.md | 0 nfcore_custom.config | 1 + 5 files changed, 42 insertions(+) create mode 100644 conf/ethz_euler.config create mode 100644 docs/ethz_euler.md diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 75d672450..c390a8f19 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -61,6 +61,7 @@ jobs: - "ebi_codon_slurm" - "eddie" - "engaging" + - "ethz_euler" - "eva" - "fgcz" - "fub_curta" diff --git a/README.md b/README.md index ed2fb4284..1e1be9b90 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ Currently documentation is available for the following systems: - [EBI_CODON](docs/ebi_codon.md) - [EBI_CODON_SLURM](docs/ebi_codon_slurm.md) - [Engaging](docs/engaging.md) +- [ETH Zurich Euler](docs/ethz_euler.md) - [EVA](docs/eva.md) - [FGCZ](docs/fgcz.md) - [FUB Curta](docs/fub_curta.md) diff --git a/conf/ethz_euler.config b/conf/ethz_euler.config new file mode 100644 index 000000000..e00757fd5 --- /dev/null +++ b/conf/ethz_euler.config @@ -0,0 +1,39 @@ +/* +* ---------------------------------------------------------------- +* nf-core pipelines config file for the ETH Zurich Euler cluster +* ---------------------------------------------------------------- +*/ + +params { + config_profile_name = 'ethz_euler' + config_profile_description = 'ETH Zurich Euler cluster profile -- provided by nf-core/configs' + config_profile_contact = 'Joao Agostinho de Sousa (github: @jpadesousa; email: joao.agostinhodesousa@hest.ethz.ch)' + config_profile_url = 'https://scicomp.ethz.ch/wiki/Euler' + + max_memory = 4.TB + max_cpus = 128 + max_time = 120.h + + igenomes_base = '/cluster/project/igenomes' + igenomes_ignore = false +} + +process { + executor = 'slurm' + scratch = 'true' + errorStrategy = 'retry' + maxRetries = 3 + maxErrors = '-1' + beforeScript = 'module load eth_proxy' +} + +singularity { + enabled = true + autoMounts = true + cacheDir = "${SINGULARITY_CACHEDIR}" +} + +trace { + trace.overwrite = true + enabled = true +} \ No newline at end of file diff --git a/docs/ethz_euler.md b/docs/ethz_euler.md new file mode 100644 index 000000000..e69de29bb diff --git a/nfcore_custom.config b/nfcore_custom.config index 9514739dc..804b24163 100644 --- a/nfcore_custom.config +++ b/nfcore_custom.config @@ -43,6 +43,7 @@ profiles { ebi_codon { includeConfig "${params.custom_config_base}/conf/ebi_codon.config" } ebi_codon_slurm { includeConfig "${params.custom_config_base}/conf/ebi_codon_slurm.config" } engaging { includeConfig "${params.custom_config_base}/conf/engaging.config" } + ethz_euler { includeConfig "${params.custom_config_base}/conf/ethz_euler.config" } eva { includeConfig "${params.custom_config_base}/conf/eva.config" } fgcz { includeConfig "${params.custom_config_base}/conf/fgcz.config" } fub_curta { includeConfig "${params.custom_config_base}/conf/fub_curta.config" } From e1624218be771fd002aa6bca69a2a9f4008033e1 Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Tue, 12 Sep 2023 08:39:05 +0200 Subject: [PATCH 2/7] Added the documentation file for the profile ethz_euler --- conf/ethz_euler.config | 18 +++++++++++------- docs/ethz_euler.md | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/conf/ethz_euler.config b/conf/ethz_euler.config index e00757fd5..a5f1d262d 100644 --- a/conf/ethz_euler.config +++ b/conf/ethz_euler.config @@ -18,19 +18,23 @@ params { igenomes_ignore = false } +executor { + name = 'slurm' + perCpuMemAllocation = true +} + process { - executor = 'slurm' - scratch = 'true' - errorStrategy = 'retry' - maxRetries = 3 - maxErrors = '-1' - beforeScript = 'module load eth_proxy' + scratch = 'true' + errorStrategy = 'retry' + maxRetries = 3 + maxErrors = '-1' + beforeScript = 'module load eth_proxy' } singularity { enabled = true autoMounts = true - cacheDir = "${SINGULARITY_CACHEDIR}" + cacheDir = "${APPTAINER_CACHEDIR}" } trace { diff --git a/docs/ethz_euler.md b/docs/ethz_euler.md index e69de29bb..969c5d617 100644 --- a/docs/ethz_euler.md +++ b/docs/ethz_euler.md @@ -0,0 +1,35 @@ +# nf-core/configs: ETH Zurich Euler cluster configuration + +Configuration file to run nf-core pipelines on the Euler cluster of [ETH Zurich](https://ethz.ch/). + +To use the ETH Zurich Euler cluster configuration, run the pipeline with `-profile ethz_euler`. This will download and launch the [`ethz_euler.config`](../conf/ethz_euler.config), which has been pre-configured with a setup suitable for the Euler cluster. Using this profile, a docker image containing all of the required software will be downloaded and converted to a Singularity container before the execution of the pipeline. + +## Before running the pipeline + +Currently, Nextflow is not installed by default on the Euler cluster. You have to install Nextflow version **>= 23.07.0-edge** on your custom modules. + +> **Important:** Previous Nextflow versions will fail to run the job, since the executor option '**perCpuMemAllocation**' is only available since **23.07.0-edge**. This option specifies memory allocations for SLURM jobs as --mem-per-cpu instead of --mem . + + +To run Nextflow on Euler, you will need to load the following modules: + +```openjdk``` - a free and opensource java implementation;
+```eth_proxy``` - for the compute nodes communicate with the Internet through the ETH Zurich proxy server;
+```nextflow``` - enables scalable and reproducible scientific workflows using software containers *(this module can have a user-defined name since was a custom installation)*. + +```bash +module load openjdk eth_proxy nextflow +``` + +Finally, you will also need to specify the Singularity cache directory with the environmental variable ```APPTAINER_CACHEDIR```. + +## Genomes +In ```/cluster/project/igenomes```, the Euler cluster provides a set of reference genomes and annotations (illumina igenomes) for a selection of model organism. The genomes and annotations were downloaded from: https://support.illumina.com/sequencing/sequencing_software/igenome.html + +The path for the *igenomes* saved in the Euler cluster is already assigned to the parameter variable ```igenomes_base``` and the parameter variable ```igenomes_ignore``` is set to ```false``` so that it loads the igenomes.config when running the pipeline. These default values can be overwritten when running the Nextflow command. +``` +igenomes_base = '/cluster/project/igenomes' +igenomes_ignore = false +``` + +*(For more information : https://scicomp.ethz.ch/wiki/Reference_genomes)* \ No newline at end of file From 4b5bf70a98006ba04fbd1c8780bb7d2050a7ba45 Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Tue, 12 Sep 2023 08:52:12 +0200 Subject: [PATCH 3/7] Added cleanup=true to the config file --- conf/ethz_euler.config | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/conf/ethz_euler.config b/conf/ethz_euler.config index a5f1d262d..12131946d 100644 --- a/conf/ethz_euler.config +++ b/conf/ethz_euler.config @@ -1,7 +1,7 @@ /* -* ---------------------------------------------------------------- +* ------------------------------------------------------------------ * nf-core pipelines config file for the ETH Zurich Euler cluster -* ---------------------------------------------------------------- +* ------------------------------------------------------------------ */ params { @@ -40,4 +40,12 @@ singularity { trace { trace.overwrite = true enabled = true +} + +// On a successful completion of a Nextflow run, automatically delete all intermediate files stored in the work/ directory +cleanup = true + +// Allows to override the default cleanup = true behaviour for debugging +debug { + cleanup = false } \ No newline at end of file From a472b1df557c6eac7e3493d4c4222de80ed7d544 Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Tue, 12 Sep 2023 09:39:25 +0200 Subject: [PATCH 4/7] Removed the maxErrors process parameter --- conf/ethz_euler.config | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/ethz_euler.config b/conf/ethz_euler.config index 12131946d..5fc5f0938 100644 --- a/conf/ethz_euler.config +++ b/conf/ethz_euler.config @@ -27,7 +27,6 @@ process { scratch = 'true' errorStrategy = 'retry' maxRetries = 3 - maxErrors = '-1' beforeScript = 'module load eth_proxy' } From 1498af4227ad068c15bdbedef1a1da08d6fb79d5 Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Tue, 12 Sep 2023 09:57:57 +0200 Subject: [PATCH 5/7] Removed the Singularity cacheDir parameter --- conf/ethz_euler.config | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/ethz_euler.config b/conf/ethz_euler.config index 5fc5f0938..5db6ce7db 100644 --- a/conf/ethz_euler.config +++ b/conf/ethz_euler.config @@ -33,7 +33,6 @@ process { singularity { enabled = true autoMounts = true - cacheDir = "${APPTAINER_CACHEDIR}" } trace { From c45206d72418cbec87f53cd5b5efa5fde6a21da6 Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Tue, 12 Sep 2023 10:35:47 +0200 Subject: [PATCH 6/7] Corrected in the documentation about Singularity --- docs/ethz_euler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ethz_euler.md b/docs/ethz_euler.md index 969c5d617..03da92992 100644 --- a/docs/ethz_euler.md +++ b/docs/ethz_euler.md @@ -21,7 +21,7 @@ To run Nextflow on Euler, you will need to load the following modules: module load openjdk eth_proxy nextflow ``` -Finally, you will also need to specify the Singularity cache directory with the environmental variable ```APPTAINER_CACHEDIR```. +Finally, you will also need to specify the Singularity cache directory with the environmental variable ```NXF_SINGULARITY_CACHEDIR```. *(https://www.nextflow.io/docs/latest/singularity.html)* ## Genomes In ```/cluster/project/igenomes```, the Euler cluster provides a set of reference genomes and annotations (illumina igenomes) for a selection of model organism. The genomes and annotations were downloaded from: https://support.illumina.com/sequencing/sequencing_software/igenome.html From b6e5ae206ac50f4dda38270fdb0106efc19f912d Mon Sep 17 00:00:00 2001 From: jpadesousa Date: Tue, 12 Sep 2023 14:39:51 +0200 Subject: [PATCH 7/7] Formatted doc file with prettier --- docs/ethz_euler.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/ethz_euler.md b/docs/ethz_euler.md index 03da92992..bd6b6d074 100644 --- a/docs/ethz_euler.md +++ b/docs/ethz_euler.md @@ -10,26 +10,27 @@ Currently, Nextflow is not installed by default on the Euler cluster. You have t > **Important:** Previous Nextflow versions will fail to run the job, since the executor option '**perCpuMemAllocation**' is only available since **23.07.0-edge**. This option specifies memory allocations for SLURM jobs as --mem-per-cpu instead of --mem . - To run Nextflow on Euler, you will need to load the following modules: -```openjdk``` - a free and opensource java implementation;
-```eth_proxy``` - for the compute nodes communicate with the Internet through the ETH Zurich proxy server;
-```nextflow``` - enables scalable and reproducible scientific workflows using software containers *(this module can have a user-defined name since was a custom installation)*. +`openjdk` - a free and opensource java implementation;
+`eth_proxy` - for the compute nodes communicate with the Internet through the ETH Zurich proxy server;
+`nextflow` - enables scalable and reproducible scientific workflows using software containers _(this module can have a user-defined name since was a custom installation)_. ```bash module load openjdk eth_proxy nextflow ``` -Finally, you will also need to specify the Singularity cache directory with the environmental variable ```NXF_SINGULARITY_CACHEDIR```. *(https://www.nextflow.io/docs/latest/singularity.html)* +Finally, you will also need to specify the Singularity cache directory with the environmental variable `NXF_SINGULARITY_CACHEDIR`. _(https://www.nextflow.io/docs/latest/singularity.html)_ ## Genomes -In ```/cluster/project/igenomes```, the Euler cluster provides a set of reference genomes and annotations (illumina igenomes) for a selection of model organism. The genomes and annotations were downloaded from: https://support.illumina.com/sequencing/sequencing_software/igenome.html -The path for the *igenomes* saved in the Euler cluster is already assigned to the parameter variable ```igenomes_base``` and the parameter variable ```igenomes_ignore``` is set to ```false``` so that it loads the igenomes.config when running the pipeline. These default values can be overwritten when running the Nextflow command. +In `/cluster/project/igenomes`, the Euler cluster provides a set of reference genomes and annotations (illumina igenomes) for a selection of model organism. The genomes and annotations were downloaded from: https://support.illumina.com/sequencing/sequencing_software/igenome.html + +The path for the _igenomes_ saved in the Euler cluster is already assigned to the parameter variable `igenomes_base` and the parameter variable `igenomes_ignore` is set to `false` so that it loads the igenomes.config when running the pipeline. These default values can be overwritten when running the Nextflow command. + ``` igenomes_base = '/cluster/project/igenomes' igenomes_ignore = false ``` -*(For more information : https://scicomp.ethz.ch/wiki/Reference_genomes)* \ No newline at end of file +_(For more information : https://scicomp.ethz.ch/wiki/Reference_genomes)_