EBI Codon Cluster Configuration

All nf-core pipelines have been successfully configured for use on the codon cluster at the European Bioinformatics Institute.

To use, run the pipeline with -profile ebi_codon. This will download and launch the ebi_codon.config which has been pre-configured with a setup suitable for the codon cluster.

You should not run Nextflow on the login nodes. You should submit a batch job that executes Nextflow.

Loading the required modules

Before running the pipeline you will need to load Nextflow and Singularity using the environment module system on the codon cluster. You can do this by issuing the commands below:

## Load Nextflow and Singularity environment modules
module purge
module load nextflow/22.10.1
module load singularityce/3.10.3

You may want to add those module load commands to your shell configuration file if you use them often.

Installing mamba

Run the following:

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh

Follow the instructions here for more details.

Setting up a suitable path for the Nextflow software cache

It is recommended to install conda environments and singularity containers in your /hps/software directory. To achieve this, add to your ~/.nextflow/config file the following lines:

singularity.cacheDir = "/hps/software/users/<group>/<user_id>/nextflow_software_cache/singularity"
conda.cacheDir = "/hps/software/users/<group>/<user_id>/nextflow_software_cache/conda"

Config file

See config file on GitHub

ebi_codon.config
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nextflow config file for EMBL-EBI Codon Cluster
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Author: Saul Pierotti
Mail: saul@ebi.ac.uk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
 
params {
    config_profile_contact     = "Saul Pierotti (@saulpierotti)"
    config_profile_description = "The European Bioinformatics Institute HPC cluster (codon) profile"
    config_profile_url         = "https://www.ebi.ac.uk/"
}
 
singularity {
    enabled     = true
    // the default is 20 minutes and fails with large images
    pullTimeout = "3 hours"
}
 
process {
    queue         = {
        if (task.time > 7.day && task.memory > 300.GB) {
            "long_bigmem"
        }
        else if (task.memory > 300.GB) {
            "bigmem"
        }
        else if (task.time > 7.day) {
            "long"
        }
        else if (task.time > 1.day) {
            "research"
        }
        else {
            "short"
        }
    }
    // this is to avoid errors for missing files due to shared filesystem latency
    maxRetries    = 3
    errorStrategy = { task.exitStatus == 0 ? "retry" : "terminate" }
    cache         = "lenient"
    afterScript   = "sleep 60"
}
 
executor {
    name            = "lsf"
    queueSize       = 2000
    submitRateLimit = "10/1sec"
    exitReadTimeout = "30 min"
    jobName         = {
        task.name
            .replace("[", "(")
            .replace("]", ")")
            .replace(" ", "_")
    }
}