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..5db6ce7db --- /dev/null +++ b/conf/ethz_euler.config @@ -0,0 +1,49 @@ +/* +* ------------------------------------------------------------------ +* 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 +} + +executor { + name = 'slurm' + perCpuMemAllocation = true +} + +process { + scratch = 'true' + errorStrategy = 'retry' + maxRetries = 3 + beforeScript = 'module load eth_proxy' +} + +singularity { + enabled = true + autoMounts = true +} + +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 diff --git a/docs/ethz_euler.md b/docs/ethz_euler.md new file mode 100644 index 000000000..bd6b6d074 --- /dev/null +++ b/docs/ethz_euler.md @@ -0,0 +1,36 @@ +# 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 `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. + +``` +igenomes_base = '/cluster/project/igenomes' +igenomes_ignore = false +``` + +_(For more information : https://scicomp.ethz.ch/wiki/Reference_genomes)_ 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" }