mirror of
https://github.com/MillironX/nf-configs.git
synced 2024-11-22 00:26:03 +00:00
Merge branch 'nf-core:master' into computerome
This commit is contained in:
commit
463df26c72
8 changed files with 172 additions and 62 deletions
1
.github/workflows/main.yml
vendored
1
.github/workflows/main.yml
vendored
|
@ -49,6 +49,7 @@ jobs:
|
||||||
- 'lugh'
|
- 'lugh'
|
||||||
- 'mpcdf'
|
- 'mpcdf'
|
||||||
- 'munin'
|
- 'munin'
|
||||||
|
- 'nu_genomics'
|
||||||
- 'oist'
|
- 'oist'
|
||||||
- 'pasteur'
|
- 'pasteur'
|
||||||
- 'phoenix'
|
- 'phoenix'
|
||||||
|
|
|
@ -118,6 +118,7 @@ Currently documentation is available for the following systems:
|
||||||
* [LUGH](docs/lugh.md)
|
* [LUGH](docs/lugh.md)
|
||||||
* [MPCDF](docs/mpcdf.md)
|
* [MPCDF](docs/mpcdf.md)
|
||||||
* [MUNIN](docs/munin.md)
|
* [MUNIN](docs/munin.md)
|
||||||
|
* [NU_GENOMICS](docs/nu_genomics.md)
|
||||||
* [OIST](docs/oist.md)
|
* [OIST](docs/oist.md)
|
||||||
* [PASTEUR](docs/pasteur.md)
|
* [PASTEUR](docs/pasteur.md)
|
||||||
* [PHOENIX](docs/phoenix.md)
|
* [PHOENIX](docs/phoenix.md)
|
||||||
|
|
|
@ -39,7 +39,7 @@ profiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
singularity {
|
singularity {
|
||||||
cacheDir = "/mnt/archgen/users/singularity_scratch"
|
cacheDir = "/mnt/archgen/tools/singularity/containers/"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,10 @@ params {
|
||||||
|
|
||||||
|
|
||||||
profiles {
|
profiles {
|
||||||
|
|
||||||
cobra {
|
cobra {
|
||||||
|
|
||||||
|
cleanup = true
|
||||||
|
|
||||||
process {
|
process {
|
||||||
beforeScript = 'module load singularity'
|
beforeScript = 'module load singularity'
|
||||||
|
@ -31,8 +34,11 @@ profiles {
|
||||||
max_time = 24.h
|
max_time = 24.h
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
raven {
|
raven {
|
||||||
|
|
||||||
|
cleanup = true
|
||||||
|
|
||||||
process {
|
process {
|
||||||
beforeScript = 'module load singularity'
|
beforeScript = 'module load singularity'
|
||||||
executor = 'slurm'
|
executor = 'slurm'
|
||||||
|
@ -56,6 +62,7 @@ profiles {
|
||||||
max_time = 24.h
|
max_time = 24.h
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug {
|
debug {
|
||||||
cleanup = false
|
cleanup = false
|
||||||
}
|
}
|
||||||
|
|
31
conf/nu_genomics.config
Normal file
31
conf/nu_genomics.config
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
//Profile config names for nf-core/configs
|
||||||
|
params
|
||||||
|
{
|
||||||
|
config_profile_description = 'Northwestern University Quest HPC (Genomics Nodes) config provided by nf-core/configs'
|
||||||
|
config_profile_contact = 'Rogan Grant / Janna Nugent (@RoganGrant, @NUjon)'
|
||||||
|
config_profile_url = 'https://www.it.northwestern.edu/research/user-services/quest/'
|
||||||
|
max_memory = 190.GB
|
||||||
|
max_cpus = 40
|
||||||
|
max_time = 240.h
|
||||||
|
igenomes_base = "/projects/genomicsshare/AWS_iGenomes/references"
|
||||||
|
}
|
||||||
|
|
||||||
|
singularity
|
||||||
|
{
|
||||||
|
enabled = true
|
||||||
|
autoMounts = true
|
||||||
|
cacheDir = "/projects/b1042/singularity_cache"
|
||||||
|
}
|
||||||
|
|
||||||
|
process
|
||||||
|
{
|
||||||
|
beforeScript = 'module purge; module load singularity/latest; module load graphviz/2.40.1'
|
||||||
|
executor = 'slurm'
|
||||||
|
queue = {task.memory >= 190.GB ? 'genomics-himem' : task.time >= 48.h ? 'genomicslong' : 'genomics'}
|
||||||
|
clusterOptions = '-A b1042'
|
||||||
|
}
|
||||||
|
|
||||||
|
executor
|
||||||
|
{
|
||||||
|
submitRateLimit = '1sec'
|
||||||
|
}
|
|
@ -9,12 +9,12 @@ params {
|
||||||
// Specific nf-core/eager process configuration
|
// Specific nf-core/eager process configuration
|
||||||
process {
|
process {
|
||||||
|
|
||||||
beforeScript = 'export _JAVA_OPTIONS="-XX:ParallelGCThreads=1 -XX:+PrintCommandLineFlags"'
|
beforeScript = 'export _JAVA_OPTIONS="-XX:ParallelGCThreads=1"'
|
||||||
|
|
||||||
maxRetries = 2
|
maxRetries = 2
|
||||||
|
|
||||||
// Solution for clusterOptions comes from here: https://github.com/nextflow-io/nextflow/issues/332 + personal toMega conversion
|
// Solution for clusterOptions comes from here: https://github.com/nextflow-io/nextflow/issues/332 + personal toMega conversion
|
||||||
clusterOptions = { "-S /bin/bash -j y -o output.log -l h_vmem=${task.memory.toGiga()}G,virtual_free=${task.memory.toGiga()}G" }
|
clusterOptions = { "-S /bin/bash -V -j y -o output.log -l h_vmem=${task.memory.toGiga()}G,virtual_free=${task.memory.toGiga()}G" }
|
||||||
|
|
||||||
withLabel:'sc_tiny'{
|
withLabel:'sc_tiny'{
|
||||||
cpus = { check_max( 1, 'cpus' ) }
|
cpus = { check_max( 1, 'cpus' ) }
|
||||||
|
@ -61,72 +61,83 @@ process {
|
||||||
// Fixes for SGE and Java incompatibility due to Java using more memory than you tell it to use
|
// Fixes for SGE and Java incompatibility due to Java using more memory than you tell it to use
|
||||||
|
|
||||||
withName: makeSeqDict {
|
withName: makeSeqDict {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: fastqc {
|
withName: fastqc {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: adapter_removal {
|
withName: adapter_removal {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: dedup {
|
withName: dedup {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: markduplicates {
|
withName: markduplicates {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: library_merge {
|
withName: library_merge {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
|
}
|
||||||
|
|
||||||
|
withName: seqtype_merge {
|
||||||
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
|
}
|
||||||
|
|
||||||
|
withName: additional_library_merge {
|
||||||
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
|
memory = { check_max( 4.GB * task.attempt, 'memory' ) }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: malt {
|
withName: malt {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=1000G,virtual_free=1000G" }
|
||||||
|
cpus = { check_max( 32, 'cpus' ) }
|
||||||
|
memory = { check_max( 955.GB * task.attempt, 'memory' ) }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: maltextract {
|
withName: maltextract {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: multivcfanalyzer {
|
withName: multivcfanalyzer {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: mtnucratio {
|
withName: mtnucratio {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: vcf2genome {
|
withName: vcf2genome {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: qualimap {
|
withName: qualimap {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: damageprofiler {
|
withName: damageprofiler {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: circularmapper {
|
withName: circularmapper {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: circulargenerator {
|
withName: circulargenerator {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: preseq {
|
withName: preseq {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' }
|
errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: genotyping_ug {
|
withName: genotyping_ug {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 2)}G,virtual_free=${(task.memory.toGiga() * 2)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -147,12 +158,12 @@ profiles {
|
||||||
|
|
||||||
process {
|
process {
|
||||||
|
|
||||||
beforeScript = 'export _JAVA_OPTIONS="-XX:ParallelGCThreads=1 -XX:+PrintCommandLineFlags"'
|
beforeScript = 'export _JAVA_OPTIONS="-XX:ParallelGCThreads=1"'
|
||||||
|
|
||||||
maxRetries = 2
|
maxRetries = 2
|
||||||
|
|
||||||
// Solution for clusterOptions comes from here: https://github.com/nextflow-io/nextflow/issues/332 + personal toMega conversion
|
// Solution for clusterOptions comes from here: https://github.com/nextflow-io/nextflow/issues/332 + personal toMega conversion
|
||||||
clusterOptions = { "-S /bin/bash -j y -o output.log -l h_vmem=${task.memory.toGiga()}G,virtual_free=${task.memory.toGiga()}G" }
|
clusterOptions = { "-S /bin/bash -V -j y -o output.log -l h_vmem=${task.memory.toGiga()}G,virtual_free=${task.memory.toGiga()}G" }
|
||||||
|
|
||||||
withLabel:'sc_tiny'{
|
withLabel:'sc_tiny'{
|
||||||
cpus = { check_max( 1, 'cpus' ) }
|
cpus = { check_max( 1, 'cpus' ) }
|
||||||
|
@ -199,32 +210,43 @@ profiles {
|
||||||
// Fixes for SGE and Java incompatibility due to Java using more memory than you tell it to use
|
// Fixes for SGE and Java incompatibility due to Java using more memory than you tell it to use
|
||||||
|
|
||||||
withName: makeSeqDict {
|
withName: makeSeqDict {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: fastqc {
|
withName: fastqc {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: adapter_removal {
|
withName: adapter_removal {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: dedup {
|
withName: dedup {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: markduplicates {
|
withName: markduplicates {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: library_merge {
|
withName: library_merge {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
withName: seqtype_merge {
|
||||||
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
|
}
|
||||||
|
|
||||||
|
withName: additional_library_merge {
|
||||||
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
|
memory = { check_max( 4.GB * task.attempt, 'memory' ) }
|
||||||
|
}
|
||||||
|
|
||||||
withName: malt {
|
withName: malt {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=1000G,virtual_free=1000G" }
|
||||||
}
|
cpus = { check_max( 32, 'cpus' ) }
|
||||||
|
memory = { check_max( 955.GB * task.attempt, 'memory' ) }
|
||||||
|
}
|
||||||
|
|
||||||
withName:hostremoval_input_fastq {
|
withName:hostremoval_input_fastq {
|
||||||
cpus = { check_max( 1, 'cpus' ) }
|
cpus = { check_max( 1, 'cpus' ) }
|
||||||
|
@ -233,43 +255,43 @@ profiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: maltextract {
|
withName: maltextract {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: multivcfanalyzer {
|
withName: multivcfanalyzer {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: mtnucratio {
|
withName: mtnucratio {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: vcf2genome {
|
withName: vcf2genome {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: qualimap {
|
withName: qualimap {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: damageprofiler {
|
withName: damageprofiler {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: circularmapper {
|
withName: circularmapper {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: circulargenerator {
|
withName: circulargenerator {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: genotyping_ug {
|
withName: genotyping_ug {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: preseq {
|
withName: preseq {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 3)}G,virtual_free=${(task.memory.toGiga() * 3)}G" }
|
||||||
errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' }
|
errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,12 +312,12 @@ profiles {
|
||||||
|
|
||||||
process {
|
process {
|
||||||
|
|
||||||
beforeScript = 'export _JAVA_OPTIONS="-XX:ParallelGCThreads=1 -XX:+PrintCommandLineFlags"'
|
beforeScript = 'export _JAVA_OPTIONS="-XX:ParallelGCThreads=1"'
|
||||||
|
|
||||||
maxRetries = 2
|
maxRetries = 2
|
||||||
|
|
||||||
// Solution for clusterOptions comes from here: https://github.com/nextflow-io/nextflow/issues/332 + personal toMega conversion
|
// Solution for clusterOptions comes from here: https://github.com/nextflow-io/nextflow/issues/332 + personal toMega conversion
|
||||||
clusterOptions = { "-S /bin/bash -j y -o output.log -l h_vmem=${task.memory.toGiga()}G,virtual_free=${task.memory.toGiga()}G" }
|
clusterOptions = { "-S /bin/bash -V -j y -o output.log -l h_vmem=${task.memory.toGiga()}G,virtual_free=${task.memory.toGiga()}G" }
|
||||||
|
|
||||||
withLabel:'sc_tiny'{
|
withLabel:'sc_tiny'{
|
||||||
cpus = { check_max( 1, 'cpus' ) }
|
cpus = { check_max( 1, 'cpus' ) }
|
||||||
|
@ -342,28 +364,38 @@ profiles {
|
||||||
// Fixes for SGE and Java incompatibility due to Java using more memory than you tell it to use
|
// Fixes for SGE and Java incompatibility due to Java using more memory than you tell it to use
|
||||||
|
|
||||||
withName: makeSeqDict {
|
withName: makeSeqDict {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: fastqc {
|
withName: fastqc {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: adapter_removal {
|
withName: adapter_removal {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: dedup {
|
withName: dedup {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: markduplicates {
|
withName: markduplicates {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: library_merge {
|
withName: library_merge {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
memory = { check_max( 6.GB * task.attempt, 'memory' ) }
|
||||||
|
}
|
||||||
|
|
||||||
|
withName: seqtype_merge {
|
||||||
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
|
}
|
||||||
|
|
||||||
|
withName: additional_library_merge {
|
||||||
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
|
memory = { check_max( 6.GB * task.attempt, 'memory' ) }
|
||||||
|
}
|
||||||
|
|
||||||
withName:hostremoval_input_fastq {
|
withName:hostremoval_input_fastq {
|
||||||
cpus = { check_max( 1, 'cpus' ) }
|
cpus = { check_max( 1, 'cpus' ) }
|
||||||
|
@ -372,47 +404,49 @@ profiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: malt {
|
withName: malt {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=1000G,virtual_free=1000G" }
|
||||||
}
|
cpus = { check_max( 32, 'cpus' ) }
|
||||||
|
memory = { check_max( 955.GB * task.attempt, 'memory' ) }
|
||||||
|
}
|
||||||
|
|
||||||
withName: maltextract {
|
withName: maltextract {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: multivcfanalyzer {
|
withName: multivcfanalyzer {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: mtnucratio {
|
withName: mtnucratio {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: vcf2genome {
|
withName: vcf2genome {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: qualimap {
|
withName: qualimap {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: damageprofiler {
|
withName: damageprofiler {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: circularmapper {
|
withName: circularmapper {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: circulargenerator {
|
withName: circulargenerator {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: genotyping_ug {
|
withName: genotyping_ug {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
}
|
}
|
||||||
|
|
||||||
withName: preseq {
|
withName: preseq {
|
||||||
clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
clusterOptions = { "-S /bin/bash -V -l h_vmem=${(task.memory.toGiga() * 6)}G,virtual_free=${(task.memory.toGiga() * 6)}G" }
|
||||||
errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' }
|
errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
35
docs/nu_genomics.md
Normal file
35
docs/nu_genomics.md
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# nf-core/configs: NU_Genomics Configuration
|
||||||
|
|
||||||
|
All nf-core pipelines have been successfully configured for use on the Quest Genomics Nodes at Northwestern University. Note that, at present, this config has only been tested with nf-core/RNA-seq, but should function similarly for other nf-core pipelines. If you would like to test other pipelines and share on the genomics-rcs Slack, we would be very much obliged.
|
||||||
|
|
||||||
|
To use, run the pipeline with `-profile nu_genomics`. This will download and launch the [`nu_genomics.config`](../conf/nu_genomics.config) which has been pre-configured with a setup suitable for the Quest Genomics Nodes. Using this profile, a docker image containing all of the required software will be downloaded, and converted to a Singularity image before execution of the pipeline.
|
||||||
|
|
||||||
|
## Before running the pipeline
|
||||||
|
|
||||||
|
There are several important steps to take before this pipeline will run successfully on Quest. First, you must have an active Quest allocation. If you do not, please apply [here](https://www.it.northwestern.edu/secure/forms/research/allocation-request.html). You will also need access to the Genomics Nodes. If you do not already have access, please apply [here](https://app.smartsheet.com/b/form?EQBCT=9b3647a8cb2145929737ab4a0540cb46). Finally, you will need to perform a local installation of Nextflow and add it to your path. Please follow the basic installation instructions shown [here](https://www.nextflow.io/), or install in your home directory as shown. If you already have a bin directory in your path, you will not need to create the directory or append to your path.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~
|
||||||
|
mkdir bin
|
||||||
|
cd bin
|
||||||
|
curl -s https://get.nextflow.io | bash
|
||||||
|
export PATH=~/bin:$PATH
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that you may need to install an "edge" version of Nextflow, depending on which pipeline you use. Please read the documentation carefully to see if this is the case, or you may see an error when running the pipeline. If this is the case, you need to explicitly set the version when installing, e.g.:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -s https://github.com/nextflow-io/nextflow/releases/download/v20.11.0-edge/nextflow-20.11.0-edge-all | bash
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that while the config does explicitly load the necessary modules, you will often need to load them manually anyway. Please do so before each run as follows, or you may run into errors:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
module purge
|
||||||
|
module load singularity/latest
|
||||||
|
module load graphviz/2.40.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use of iGenomes
|
||||||
|
|
||||||
|
A local copy of the iGenomes resource with all commonly used genomes has been made available for all of Quest so you should be able to run the pipeline against any reference available in the `igenomes.config` specific to the nf-core pipeline. These files can be found at `/projects/genomicsshare/AWS_iGenomes`. You can do this by simply using the `--genome <GENOME_ID>` parameter. While you can technically "stream" genomes from iGenomes directly using the pipeline, this is a substantial use of bandwidth and resources on both ends, and potentially poses reproducibility issues later on. Please use the local copies unless absolutely necessary, and save your custom genomes to your personal allocation where necessary.
|
|
@ -43,6 +43,7 @@ profiles {
|
||||||
lugh { includeConfig "${params.custom_config_base}/conf/lugh.config" }
|
lugh { includeConfig "${params.custom_config_base}/conf/lugh.config" }
|
||||||
mpcdf { includeConfig "${params.custom_config_base}/conf/mpcdf.config" }
|
mpcdf { includeConfig "${params.custom_config_base}/conf/mpcdf.config" }
|
||||||
munin { includeConfig "${params.custom_config_base}/conf/munin.config" }
|
munin { includeConfig "${params.custom_config_base}/conf/munin.config" }
|
||||||
|
nu_genomics { includeConfig "${params.custom_config_base}/conf/nu_genomics.config" }
|
||||||
oist { includeConfig "${params.custom_config_base}/conf/oist.config" }
|
oist { includeConfig "${params.custom_config_base}/conf/oist.config" }
|
||||||
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" }
|
||||||
|
|
Loading…
Reference in a new issue