diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cd2170c..65cabe5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: needs: test_all_profiles strategy: matrix: - profile: ['abims', 'awsbatch', 'bi','bigpurple', 'binac', 'biohpc_gen', 'cbe', 'ccga_dx', 'ccga_med', 'cfc', 'cfc_dev', 'crick', 'denbi_qbic', 'ebc', 'eddie', 'eva', 'genotoul', 'genouest', 'gis', 'google', 'hebbe', 'icr_davros', 'ifb_core', 'imperial', 'imperial_mb', 'jax', 'kraken', 'mpcdf', 'munin', 'oist', 'pasteur', 'phoenix', 'prince', 'seg_globe', 'shh', 'uct_hpc', 'uppmax', 'utd_ganymede', 'uzh'] + profile: ['abims', 'awsbatch', 'bi','bigpurple', 'binac', 'biohpc_gen', 'cbe', 'ccga_dx', 'ccga_med', 'cfc', 'cfc_dev', 'crick', 'denbi_qbic', 'ebc', 'eddie', 'eva', 'genotoul', 'genouest', 'gis', 'google', 'hebbe', 'icr_davros', 'ifb_core', 'imperial', 'imperial_mb', 'jax', 'kraken', 'mpcdf', 'munin', 'oist', 'pasteur', 'phoenix', 'prince', 'sanger', 'seg_globe', 'shh', 'uct_hpc', 'uppmax', 'utd_ganymede', 'uzh'] steps: - uses: actions/checkout@v1 - name: Install Nextflow diff --git a/conf/sanger.config b/conf/sanger.config new file mode 100644 index 0000000..63952c8 --- /dev/null +++ b/conf/sanger.config @@ -0,0 +1,32 @@ +params { + config_profile_description = 'The Wellcome Sanger Institute HPC cluster profile' + config_profile_contact = 'Anthony Underwood (@aunderwo)' + config_profile_url = 'https://www.sanger.ac.uk/group/informatics-support-group/' +} + +singularity { + enabled = true + cacheDir = "${baseDir}/singularity" + runOptions = '--bind /lustre --bind /nfs/pathnfs01 --bind /nfs/pathnfs02 --bind /nfs/pathnfs03 --bind /nfs/pathnfs04 --bind /nfs/pathnfs05 --bind /nfs/pathnfs06 --no-home' +} + +process{ + executor = 'lsf' + queue = 'normal' + errorStrategy = { task.attempt <= 5 ? "retry" : "finish" } + process.maxRetries = 5 +} + +executor{ + name = 'lsf' + perJobMemLimit = true + poolSize = 4 + submitRateLimit = '5 sec' + killBatchSize = 50 +} + +params { + max_memory = 128.GB + max_cpus = 64 + max_time = 12.h +} diff --git a/docs/sanger.md b/docs/sanger.md new file mode 100644 index 0000000..ee75755 --- /dev/null +++ b/docs/sanger.md @@ -0,0 +1,54 @@ +# nf-core/configs: Wellcome Sanger Institute Configuration + +To use, run the pipeline with `-profile sanger`. This will download and launch the [`sanger.config`](../conf/sanger.config) which has been +pre-configured with a setup suitable for the Wellcome Sanger Institute LSF cluster. +Using this profile, either a docker image containing all of the required software will be downloaded, and converted to a Singularity image or +a Singularity image downloaded directly before execution of the pipeline. + +## Running the workflow on the Wellcome Sanger Institute cluster + +The latest version of Nextflow is not installed by default on the cluster. You will need to install it into a directory you have write access to + +- Install Nextflow : [here](https://www.nextflow.io/docs/latest/getstarted.html#) + +A recommended place to move the `nextflow` executable to is `~/bin` so that it's in the `PATH`. + +Nextflow manages each process as a separate job that is submitted to the cluster by using the `bsub` command. +Since the Nextflow pipeline will submit individual jobs for each process to the cluster and dependencies will be provided bu Singularity images you shoudl make sure that your account has access to the Singularity binary by adding these lines to your `.bashrc` file + +```bash +[[ -f /software/pathogen/farm5 ]] && module load ISG/singularity +``` + +Nextflow shouldn't run directly on the submission node but on a compute node. +To do so make a shell script with a similar structure to the following code and submit with `bsub < $PWD/my_script.sh` + +```bash +#!/bin/bash +#BSUB -o /path/to/a/log/dir/%J.o +#BSUB -e /path/to/a/log/dir//%J.e +#BSUB -M 8000 +#BSUB -q long +#BSUB -n 4 + +export HTTP_PROXY='http://wwwcache.sanger.ac.uk:3128' +export HTTPS_PROXY='http://wwwcache.sanger.ac.uk:3128' +export NXF_ANSI_LOG=false +export NXF_OPTS="-Xms8G -Xmx8G -Dnxf.pool.maxThreads=2000" +export NXF_VER=21.04.0-edge + + +nextflow run \ +/path/to/nf-core/pipeline/main.nf \ +-w /path/to/some/dir/work \ +-profile sanger \ +-c my_specific.config \ +-qs 1000 \ +-resume + +## clean up on exit 0 - delete this if you want to keep the work dir +status=$? +if [[ $status -eq 0 ]]; then + rm -r /path/to/some/dir/work +fi +``` diff --git a/nfcore_custom.config b/nfcore_custom.config index 88d7a62..9b4fbda 100644 --- a/nfcore_custom.config +++ b/nfcore_custom.config @@ -43,6 +43,7 @@ profiles { pasteur { includeConfig "${params.custom_config_base}/conf/pasteur.config" } phoenix { includeConfig "${params.custom_config_base}/conf/phoenix.config" } prince { includeConfig "${params.custom_config_base}/conf/prince.config" } + sanger { includeConfig "${params.custom_config_base}/conf/sanger.config"} seg_globe { includeConfig "${params.custom_config_base}/conf/seg_globe.config"} shh { includeConfig "${params.custom_config_base}/conf/shh.config" } uct_hpc { includeConfig "${params.custom_config_base}/conf/uct_hpc.config" }