mirror of
https://github.com/MillironX/nf-configs.git
synced 2024-11-22 08:29:54 +00:00
Merge pull request #217 from ameynert/master
Addition of eddie institutional profile
This commit is contained in:
commit
6215414ecf
8 changed files with 211 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
|
||||
strategy:
|
||||
matrix:
|
||||
profile: ['abims', 'awsbatch', 'bi','bigpurple', 'binac', 'cbe', 'ccga_dx', 'ccga_med', 'cfc', 'cfc_dev', 'crick', 'denbi_qbic', 'ebc', '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', 'cbe', 'ccga_dx', 'ccga_med', 'cfc', 'cfc_dev', 'crick', 'denbi_qbic', 'ebc', 'eddie', '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']
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install Nextflow
|
||||
|
|
50
conf/eddie.config
Normal file
50
conf/eddie.config
Normal file
|
@ -0,0 +1,50 @@
|
|||
//Profile config names for nf-core/configs
|
||||
params {
|
||||
config_profile_description = 'University of Edinburgh (eddie) cluster profile provided by nf-core/configs.'
|
||||
config_profile_contact = 'Alison Meynert (@ameynert)'
|
||||
config_profile_url = 'https://www.ed.ac.uk/information-services/research-support/research-computing/ecdf/high-performance-computing'
|
||||
}
|
||||
|
||||
executor {
|
||||
name = "sge"
|
||||
queueSize = "100"
|
||||
}
|
||||
|
||||
process {
|
||||
clusterOptions = { task.memory ? "-l h_vmem=${task.memory.bytes/task.cpus}" : null }
|
||||
scratch = true
|
||||
penv = { task.cpus > 1 ? "sharedmem" : null }
|
||||
|
||||
// common SGE error statuses
|
||||
errorStrategy = {task.exitStatus in [143,137,104,134,139,140] ? 'retry' : 'finish'}
|
||||
maxErrors = '-1'
|
||||
maxRetries = 3
|
||||
|
||||
beforeScript =
|
||||
"""
|
||||
. /etc/profile.d/modules.sh
|
||||
module load 'roslin/singularity/3.5.3'
|
||||
export SINGULARITY_TMPDIR="\$TMPDIR"
|
||||
"""
|
||||
}
|
||||
|
||||
params {
|
||||
saveReference = true
|
||||
// iGenomes reference base
|
||||
igenomes_base = '/exports/igmm/eddie/NextGenResources/igenomes'
|
||||
max_memory = 384.GB
|
||||
max_cpus = 32
|
||||
max_time = 240.h
|
||||
}
|
||||
|
||||
env {
|
||||
MALLOC_ARENA_MAX=1
|
||||
}
|
||||
|
||||
singularity {
|
||||
envWhitelist = "SINGULARITY_TMPDIR"
|
||||
runOptions = '-p'
|
||||
enabled = true
|
||||
autoMounts = true
|
||||
}
|
||||
|
15
conf/pipeline/rnaseq/eddie.config
Normal file
15
conf/pipeline/rnaseq/eddie.config
Normal file
|
@ -0,0 +1,15 @@
|
|||
process {
|
||||
|
||||
withName : "PICARD_MARKDUPLICATES" {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
|
||||
withName : "QUALIMAP_RNASEQ" {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
|
||||
withName : "FASTQC" {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
|
||||
}
|
27
conf/pipeline/sarek/eddie.config
Normal file
27
conf/pipeline/sarek/eddie.config
Normal file
|
@ -0,0 +1,27 @@
|
|||
process {
|
||||
|
||||
withName:MapReads {
|
||||
cpus = 16
|
||||
}
|
||||
withName:BuildDict {
|
||||
cpus = 1
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
withName:BamQC {
|
||||
cpus = 8
|
||||
memory = 128.GB
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 8.GB).bytes/task.cpus}"}
|
||||
}
|
||||
withName:MarkDuplicates {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
withName:BaseRecalibrator {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
withName:ApplyBQSR {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
withName:GatherBQSRReports {
|
||||
clusterOptions = {"-l h_vmem=${(task.memory + 4.GB).bytes/task.cpus}"}
|
||||
}
|
||||
}
|
104
docs/eddie.md
Normal file
104
docs/eddie.md
Normal file
|
@ -0,0 +1,104 @@
|
|||
# nf-core/configs: Eddie Configuration
|
||||
|
||||
nf-core pipelines sarek, rnaseq, and atacseq have all been tested on the University of Edinburgh Eddie HPC.
|
||||
|
||||
## Getting help
|
||||
|
||||
There is a Slack channel dedicated to eddie users on the MRC IGMM Slack: [https://igmm.slack.com/channels/eddie3](https://igmm.slack.com/channels/eddie3)
|
||||
|
||||
## Using the Eddie config profile
|
||||
|
||||
To use, run the pipeline with `-profile eddie` (one hyphen).
|
||||
This will download and launch the [`eddie.config`](../conf/eddie.config) which has been pre-configured with a setup suitable for the [University of Edinburgh Eddie HPC](https://www.ed.ac.uk/information-services/research-support/research-computing/ecdf/high-performance-computing).
|
||||
|
||||
The configuration file supports running nf-core pipelines with Docker containers running under Singularity by default. Conda is not currently supported.
|
||||
|
||||
```bash
|
||||
nextflow run nf-core/PIPELINE -profile eddie # ...rest of pipeline flags
|
||||
```
|
||||
|
||||
Before running the pipeline you will need to install Nextflow or load it from the module system. Generally the most recent version will be the one you want. If you want to run a Nextflow pipeline that is based on [DSL2](https://www.nextflow.io/docs/latest/dsl2.html), you will need a version that ends with '-edge'.
|
||||
|
||||
To list versions:
|
||||
|
||||
```bash
|
||||
module avail igmm/apps/nextflow
|
||||
```
|
||||
|
||||
To load the most recent version:
|
||||
|
||||
```bash
|
||||
module load igmm/apps/nextflow
|
||||
```
|
||||
|
||||
This config enables Nextflow to manage the pipeline jobs via the SGE job scheduler and using Singularity for software management.
|
||||
|
||||
## Singularity set-up
|
||||
|
||||
Load Singularity from the module system and, if you have access to `/exports/igmm/eddie/NextGenResources`, set the Singularity cache directory to the NextGenResources path for the pipeline and version you want to run. If this does not exist, please contact the [IGMM Data Manager](data.manager@igmm.ed.ac.uk) to have it added. You can add these lines to the file `$HOME/.bashrc`, or you can run these commands before you run an nf-core pipeline.
|
||||
|
||||
If you do not have access to `/exports/igmm/eddie/NextGenResources`, set the Singularity cache directory to somewhere sensible that is not in your `$HOME` area (which has limited space). It will take time to download all the Singularity containers, but you can use this again.
|
||||
|
||||
```bash
|
||||
module load singularity
|
||||
export NXF_SINGULARITY_CACHEDIR="/exports/igmm/eddie/NextGenResources/nextflow/singularity/nf-core-rnaseq_v3.0"
|
||||
```
|
||||
|
||||
Singularity will create a directory `.singularity` in your `$HOME` directory on eddie. Space on `$HOME` is very limited, so it is a good idea to create a directory somewhere else with more room and link the locations.
|
||||
|
||||
```bash
|
||||
cd $HOME
|
||||
mkdir /exports/eddie/path/to/my/area/.singularity
|
||||
ln -s /exports/eddie/path/to/my/area/.singularity .singularity
|
||||
```
|
||||
|
||||
## Running Nextflow
|
||||
|
||||
### On a login node
|
||||
|
||||
You can use a qlogin to run Nextflow, if you request more than the default 2GB of memory. Unfortunately you can't submit the initial Nextflow run process as a job as you can't qsub within a qsub.
|
||||
|
||||
```bash
|
||||
qlogin -l h_vmem=8G
|
||||
```
|
||||
|
||||
If your eddie terminal disconnects your Nextflow job will stop. You can run Nextflow as a bash script on the command line using `nohup` to prevent this.
|
||||
|
||||
```bash
|
||||
nohup ./nextflow_run.sh &
|
||||
```
|
||||
|
||||
### On a wild west node - IGMM only
|
||||
|
||||
Wild west nodes on eddie can be accessed via ssh (node2c15, node2c16, node3g22). To run Nextflow on one of these nodes, do it within a [screen session](https://linuxize.com/post/how-to-use-linux-screen/).
|
||||
|
||||
Start a new screen session.
|
||||
|
||||
```bash
|
||||
screen -S <session_name>
|
||||
```
|
||||
|
||||
List existing screen sessions
|
||||
|
||||
```bash
|
||||
screen -ls
|
||||
```
|
||||
|
||||
Reconnect to an existing screen session
|
||||
|
||||
```bash
|
||||
screen -r <session_name>
|
||||
```
|
||||
|
||||
## Using iGenomes references
|
||||
|
||||
A local copy of the iGenomes resource has been made available on the Eddie HPC for those with access to `/exports/igmm/eddie/NextGenResources` so you should be able to run the pipeline against any reference available in the `igenomes.config`.
|
||||
You can do this by simply using the `--genome <GENOME_ID>` parameter.
|
||||
|
||||
## Adjusting maximum resources
|
||||
|
||||
This config is set for IGMM standard nodes which have 32 cores and 384GB memory. If you are a non-IGMM user, please see the [ECDF specification](https://www.wiki.ed.ac.uk/display/ResearchServices/Memory+Specification) and adjust the `--clusterOptions` flag appropriately, e.g.
|
||||
|
||||
```bash
|
||||
--clusterOptions "-C mem256GB" --max_memory "256GB"
|
||||
```
|
|
@ -23,6 +23,7 @@ profiles {
|
|||
crick { includeConfig "${params.custom_config_base}/conf/crick.config" }
|
||||
czbiohub_aws { includeConfig "${params.custom_config_base}/conf/czbiohub_aws.config" }
|
||||
ebc { includeConfig "${params.custom_config_base}/conf/ebc.config" }
|
||||
eddie { includeConfig "${params.custom_config_base}/conf/eddie.config" }
|
||||
icr_davros { includeConfig "${params.custom_config_base}/conf/icr_davros.config" }
|
||||
ifb_core { includeConfig "${params.custom_config_base}/conf/ifb_core.config" }
|
||||
imperial { includeConfig "${params.custom_config_base}/conf/imperial.config" }
|
||||
|
|
|
@ -1 +1,13 @@
|
|||
/*
|
||||
* -------------------------------------------------
|
||||
* nfcore/rnaseq custom profile Nextflow config file
|
||||
* -------------------------------------------------
|
||||
* Config options for custom environments.
|
||||
* Cluster-specific config options should be saved
|
||||
* in the conf/pipeline/rnaseq folder and imported
|
||||
* under a profile name here.
|
||||
*/
|
||||
|
||||
profiles {
|
||||
eddie { includeConfig "${params.custom_config_base}/conf/pipeline/rnaseq/eddie.config" }
|
||||
}
|
||||
|
|
|
@ -12,4 +12,5 @@ profiles {
|
|||
munin { includeConfig "${params.custom_config_base}/conf/pipeline/sarek/munin.config" }
|
||||
uppmax { includeConfig "${params.custom_config_base}/conf/pipeline/sarek/uppmax.config" }
|
||||
icr_davros { includeConfig "${params.custom_config_base}/conf/pipeline/sarek/icr_davros.config" }
|
||||
eddie { includeConfig "${params.custom_config_base}/conf/pipeline/sarek/eddie.config" }
|
||||
}
|
Loading…
Reference in a new issue