From b6ccb46383aaae716afcb1b419f57bf6ae1aca95 Mon Sep 17 00:00:00 2001 From: bbartholdy <47455812+bbartholdy@users.noreply.github.com> Date: Tue, 28 Sep 2021 12:08:27 +0200 Subject: [PATCH] add ALICE profile --- .github/workflows/main.yml | 1 + README.md | 1 + conf/alice.config | 39 ++++++++++++++++++++++++++++++++++++++ docs/alice.md | 26 +++++++++++++++++++++++++ nfcore_custom.config | 1 + 5 files changed, 68 insertions(+) create mode 100644 conf/alice.config create mode 100644 docs/alice.md diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b48354a..2c814ae 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,6 +18,7 @@ jobs: matrix: profile: - 'abims' + - 'alice' - 'aws_tower' - 'awsbatch' - 'bi' diff --git a/README.md b/README.md index 9e27b6d..ec595e0 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ See [`nf-core/configs/docs`](https://github.com/nf-core/configs/tree/master/docs Currently documentation is available for the following systems: * [ABIMS](docs/abims.md) +* [ALICE](docs/alice.md) * [AWSBATCH](docs/awsbatch.md) * [AWS_TOWER](docs/aws_tower.md) * [BIGPURPLE](docs/bigpurple.md) diff --git a/conf/alice.config b/conf/alice.config new file mode 100644 index 0000000..0c1230f --- /dev/null +++ b/conf/alice.config @@ -0,0 +1,39 @@ +params { + config_profile_name = 'ALICE' + config_profile_description = 'Profile for use on Academic Leiden Interdisciplinary Cluster Environment (ALICE).' + config_profile_contact = 'Bjorn Peare Bartholdy (@osteobjorn)' + config_profile_url = 'https://wiki.alice.universiteitleiden.nl/index.php?title=ALICE_User_Documentation_Wiki' + max_cpus = 24 + max_memory = 240.GB + max_time = 168.h +} + +process { + executor = 'slurm' + queue = { task.time < 3.h ? 'cpu-short' : task.time < 24.h ? 'cpu-medium' : 'cpu-long' } +} + +singularity { + enabled = true + autoMounts = true +} + +// Preform work directory cleanup after a successful run +cleanup = true + + // Profile to deactivate automatic cleanup of work directory after a successful run. Overwrites cleanup option. +profiles { + mem { + params { + max_cpus = 24 + max_memory = 2.TB + max_time = 336.h + } + process { + queue = 'mem' + } + } + debug { + cleanup = false + } +} diff --git a/docs/alice.md b/docs/alice.md new file mode 100644 index 0000000..afc1342 --- /dev/null +++ b/docs/alice.md @@ -0,0 +1,26 @@ +# nf-core/configs: Academic Leiden Interdisciplinary Cluster Environment (ALICE), Leiden University Configuration + +> **NB:** You will need an [account](https://wiki.alice.universiteitleiden.nl/index.php?title=Getting_an_account) to use the HPC cluster to run the pipeline. + +The profile is configured to run with Singularity version 3.6.1-Go-1.14 and needs to be loaded as a module. + +Before running the pipeline you will need to load Java and Nextflow. You can do this by including the commands below in your SLURM/sbatch script: + +```bash +## Load Java and Nextflow environment modules +module load Singularity/3.6.1-Go-1.14 +module load Nextflow/21.03.0 +module load Java/11.0.2 +``` + +All of the intermediate files required to run the pipeline will be stored in the `work/` directory. It is recommended to delete this directory after the pipeline has finished successfully because it can get quite large, and all of the main output files will be saved in the `results/` directory anyway. +The config contains a `cleanup` command that removes the `work/` directory automatically once the pipeline has completeed successfully. If the run does not complete successfully then the `work/` dir should be removed manually to save storage space. + +This configuration will automatically choose the correct SLURM queue (short,medium,long) depending on the time required by each process. If there are +high memory requirements (>240GB), e.g. using MALT, use the 'mem' profile: + +```bash +run nextflow nf-core/eager -p alice,mem +``` + +> **NB:** Nextflow will need to submit the jobs via SLURM to the HPC cluster and as such the commands above will have to be submitted from one of the login nodes. diff --git a/nfcore_custom.config b/nfcore_custom.config index e1a8301..ee53022 100644 --- a/nfcore_custom.config +++ b/nfcore_custom.config @@ -11,6 +11,7 @@ //Please use a new line per include Config section to allow easier linting/parsing. Thank you. profiles { abims { includeConfig "${params.custom_config_base}/conf/abims.config" } + alice { includeConfig "${params.custom_config_base}/conf/alice.config" } aws_tower { includeConfig "${params.custom_config_base}/conf/aws_tower.config" } awsbatch { includeConfig "${params.custom_config_base}/conf/awsbatch.config" } bi { includeConfig "${params.custom_config_base}/conf/bi.config" }