Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ethz euler #547

Merged
merged 9 commits into from
Sep 12, 2023
Merged
1 change: 1 addition & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ jobs:
- "ebi_codon_slurm"
- "eddie"
- "engaging"
- "ethz_euler"
- "eva"
- "fgcz"
- "fub_curta"
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
49 changes: 49 additions & 0 deletions conf/ethz_euler.config
Original file line number Diff line number Diff line change
@@ -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: [email protected])'
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
}
35 changes: 35 additions & 0 deletions docs/ethz_euler.md
Original file line number Diff line number Diff line change
@@ -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 <task.memory / task.cpus> instead of --mem <task.memory>.


To run Nextflow on Euler, you will need to load the following modules:

```openjdk``` - a free and opensource java implementation; <br />
```eth_proxy``` - for the compute nodes communicate with the Internet through the ETH Zurich proxy server;<br />
```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)*
1 change: 1 addition & 0 deletions nfcore_custom.config
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
Expand Down