Skip to content

Commit

Permalink
add simple UGE and Rosalind UGE configs
Browse files Browse the repository at this point in the history
  • Loading branch information
gregorysprenger committed Mar 21, 2023
1 parent a84d29e commit c564c36
Show file tree
Hide file tree
Showing 7 changed files with 161 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ jobs:
- "prince"
- "psmn"
- "rosalind"
- "rosalind_uge"
- "sage"
- "sahmri"
- "sanger"
Expand All @@ -98,6 +99,7 @@ jobs:
- "tigem"
- "ucl_myriad"
- "uct_hpc"
- "uge"
- "unibe_ibu"
- "uppmax"
- "utd_ganymede"
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ Currently documentation is available for the following systems:
- [PRINCE](docs/prince.md)
- [PSMN](docs/psmn.md)
- [ROSALIND](docs/rosalind.md)
- [ROSALIND_UGE](docs/rosalind_uge.md)
- [SAGE BIONETWORKS](docs/sage.md)
- [SANGER](docs/sanger.md)
- [SBC_SHARC](docs/sbc_sharc.md)
Expand All @@ -153,6 +154,7 @@ Currently documentation is available for the following systems:
- [TIGEM](docs/tigem.md)
- [UCL_MYRIAD](docs/ucl_myriad.md)
- [UCT_HPC](docs/uct_hpc.md)
- [UGE](docs/uge.md)
- [UNIBE_IBU](docs/unibe_ibu.md)
- [UPPMAX](docs/uppmax.md)
- [UTD_GANYMEDE](docs/utd_ganymede.md)
Expand Down
69 changes: 69 additions & 0 deletions conf/rosalind_uge.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* ---------------------------------------------------------
* nf-core/configs: Rosalind Univa Grid Engine
* ---------------------------------------------------------
*/


// Basic params of config file
params {
config_profile_description = 'Rosalind Univa Grid Engine config file'
config_profile_contact = 'Gregory Sprenger (@gregorysprenger)'
}

// Use Singularity
singularity {
enabled = true
autoMounts = true
}

// Submit up to 100 jobs at once with 15 secs between to avoid spamming the cluster
executor {
queueSize = 100
pollInterval = '15 sec'
}

// Process specific resource requirements
process {
// Error and retry handling
errorStrategy = { task.exitStatus in [143,137,104,134,139,71,255] ? 'retry' : 'finish' }
maxRetries = 3

// Executor and queue information
executor = 'sge'
penv = 'smp'
queue = { task.time <= 4.h ? 'short.q' : task.time > 5.h ? 'all.q' : 'short.q' }
clusterOptions = { "-l h_vmem=${task.memory.toString().replaceAll(/[\sB]/,'')}" }
}

// Function to ensure that resource requirements don't go beyond limit
def check_max(obj, type) {
if (type == 'memory') {
try {
if (obj.compareTo(params.max_memory as nextflow.util.MemoryUnit) == 1)
return params.max_memory as nextflow.util.MemoryUnit
else
return obj
} catch (all) {
println " ### ERROR ### Max memory '${params.max_memory}' is not valid! Using default value: $obj"
return obj
}
} else if (type == 'time') {
try {
if (obj.compareTo(params.max_time as nextflow.util.Duration) == 1)
return params.max_time as nextflow.util.Duration
else
return obj
} catch (all) {
println " ### ERROR ### Max time '${params.max_time}' is not valid! Using default value: $obj"
return obj
}
} else if (type == 'cpus') {
try {
return Math.min( obj, params.max_cpus as int )
} catch (all) {
println " ### ERROR ### Max cpus '${params.max_cpus}' is not valid! Using default value: $obj"
return obj
}
}
}
68 changes: 68 additions & 0 deletions conf/uge.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* ----------------------------------------------
* nf-core/configs: Univa Grid Engine
* ----------------------------------------------
*/


// Basic params of config file
params {
config_profile_description = 'Univa Grid Engine config file'
config_profile_contact = 'Gregory Sprenger (@gregorysprenger)'
}

// Use Singularity
singularity {
enabled = true
autoMounts = true
}

// Submit up to 100 jobs at once with 15 secs between to avoid spamming the cluster
executor {
queueSize = 100
pollInterval = '15 sec'
}

// Process specific resource requirements
process {
// Error and retry handling
errorStrategy = { task.exitStatus in [143,137,104,134,139,71,255] ? 'retry' : 'finish' }
maxRetries = 3

// Executor and queue information
executor = 'sge'
penv = 'smp'
queue = { task.time <= 4.h ? 'short.q' : task.time > 5.h ? 'all.q' : 'short.q' }
}

// Function to ensure that resource requirements don't go beyond limit
def check_max(obj, type) {
if (type == 'memory') {
try {
if (obj.compareTo(params.max_memory as nextflow.util.MemoryUnit) == 1)
return params.max_memory as nextflow.util.MemoryUnit
else
return obj
} catch (all) {
println " ### ERROR ### Max memory '${params.max_memory}' is not valid! Using default value: $obj"
return obj
}
} else if (type == 'time') {
try {
if (obj.compareTo(params.max_time as nextflow.util.Duration) == 1)
return params.max_time as nextflow.util.Duration
else
return obj
} catch (all) {
println " ### ERROR ### Max time '${params.max_time}' is not valid! Using default value: $obj"
return obj
}
} else if (type == 'cpus') {
try {
return Math.min( obj, params.max_cpus as int )
} catch (all) {
println " ### ERROR ### Max cpus '${params.max_cpus}' is not valid! Using default value: $obj"
return obj
}
}
}
9 changes: 9 additions & 0 deletions docs/rosalind_uge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# nf-core/configs: Rosalind UGE HPC Configuration

nf-core pipelines have been successfully configured for use on the Rosalind UGE cluster.

To use the Rosalind profile, run the pipeline with `-profile rosalind_uge`. This will download and apply ['rosalind_uge.config'](../conf/rosalind_uge.config) which has been configured for the Rosalind HPC cluster. This profile will allow all Nextflow processes to run within singularity containers, which will be downloaded and converted from docker containers, if needed.

> Note: This profile does not configure resources but does partition jobs based on runtime to make use of `short.q` and `all.q` nodes. If you require resources outside of the limits specified in the pipeline (ex. more memory, CPUS, or walltime), you will need to provide a custom config specifying needed resources.
Rosalind has Nextflow pre-installed on the HPC cluster, and can be accessed by running `module load nextflow` or `module load nextflow/<version>` prior to running your pipeline. Additional singularity variables may need to be configured, such as a scratch directory, temp directory, cache directory, etc. If assistance is needed, please contact the Scientific Computing and Bioinformatics department (SciComp).
9 changes: 9 additions & 0 deletions docs/uge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# nf-core/configs: UGE HPC Configuration

nf-core pipelines have been successfully configured for use on the UGE HPC cluster.

To use the UGE profile, run the pipeline with `-profile uge`. This will download and apply ['uge.config'](../conf/uge.config) which has been configured for the UGE HPC cluster. This profile will allow all Nextflow processes to run within singularity containers, which will be downloaded and converted from docker containers, if needed.

> Note: This profile does not configure resources but does partition jobs based on runtime to make use of `short.q` and `all.q` nodes. If you require resources outside of the limits specified in the pipeline (ex. more memory, CPUS, or walltime), you will need to provide a custom config specifying needed resources.
The UGE HPC has Nextflow pre-installed on the HPC cluster, and can be accessed by running `module load nextflow` or `module load nextflow/<version>` prior to running your pipeline. Additional singularity variables may need to be configured, such as a scratch directory, temp directory, cache directory, etc. If assistance is needed, please contact the Scientific Computing and Bioinformatics department (SciComp).
2 changes: 2 additions & 0 deletions nfcore_custom.config
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ profiles {
prince { includeConfig "${params.custom_config_base}/conf/prince.config" }
psmn { includeConfig "${params.custom_config_base}/conf/psmn.config" }
rosalind { includeConfig "${params.custom_config_base}/conf/rosalind.config" }
rosalind_uge { includeConfig "${params.custom_config_base}/conf/rosalind_uge.config" }
sage { includeConfig "${params.custom_config_base}/conf/sage.config" }
sahmri { includeConfig "${params.custom_config_base}/conf/sahmri.config" }
sanger { includeConfig "${params.custom_config_base}/conf/sanger.config"}
Expand All @@ -80,6 +81,7 @@ profiles {
tigem { includeConfig "${params.custom_config_base}/conf/tigem.config"}
ucl_myriad { includeConfig "${params.custom_config_base}/conf/ucl_myriad.config"}
uct_hpc { includeConfig "${params.custom_config_base}/conf/uct_hpc.config" }
uge { includeConfig "${params.custom_config_base}/conf/uge.config" }
unibe_ibu { includeConfig "${params.custom_config_base}/conf/unibe_ibu.config" }
uppmax { includeConfig "${params.custom_config_base}/conf/uppmax.config" }
utd_ganymede { includeConfig "${params.custom_config_base}/conf/utd_ganymede.config" }
Expand Down

0 comments on commit c564c36

Please sign in to comment.