mirror of
https://github.com/MillironX/nf-configs.git
synced 2024-11-11 04:23:10 +00:00
Merge pull request #234 from aunderwo/sanger
Add a Sanger config and documentation
This commit is contained in:
commit
b660cb7c09
4 changed files with 88 additions and 1 deletions
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
|
@ -16,7 +16,7 @@ jobs:
|
||||||
needs: test_all_profiles
|
needs: test_all_profiles
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- name: Install Nextflow
|
- name: Install Nextflow
|
||||||
|
|
32
conf/sanger.config
Normal file
32
conf/sanger.config
Normal file
|
@ -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
|
||||||
|
}
|
54
docs/sanger.md
Normal file
54
docs/sanger.md
Normal file
|
@ -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
|
||||||
|
```
|
|
@ -43,6 +43,7 @@ profiles {
|
||||||
pasteur { includeConfig "${params.custom_config_base}/conf/pasteur.config" }
|
pasteur { includeConfig "${params.custom_config_base}/conf/pasteur.config" }
|
||||||
phoenix { includeConfig "${params.custom_config_base}/conf/phoenix.config" }
|
phoenix { includeConfig "${params.custom_config_base}/conf/phoenix.config" }
|
||||||
prince { includeConfig "${params.custom_config_base}/conf/prince.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"}
|
seg_globe { includeConfig "${params.custom_config_base}/conf/seg_globe.config"}
|
||||||
shh { includeConfig "${params.custom_config_base}/conf/shh.config" }
|
shh { includeConfig "${params.custom_config_base}/conf/shh.config" }
|
||||||
uct_hpc { includeConfig "${params.custom_config_base}/conf/uct_hpc.config" }
|
uct_hpc { includeConfig "${params.custom_config_base}/conf/uct_hpc.config" }
|
||||||
|
|
Loading…
Reference in a new issue