haplotyper-battle-royale/nextflow.config

158 lines
4.7 KiB
Text

params {
reference = null
// Config options
config_profile_name = null
config_profile_description = null
custom_config_version = 'master'
custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}"
config_profile_contact = null
config_profile_url = null
// Max resource options
// Defaults only, expecting to be overwritten
max_memory = '128.GB'
max_cpus = 16
max_time = '240.h'
}
process {
cpus = { check_max(1 * task.attempt, 'cpus') }
memory = { check_max(6.GB * task.attempt, 'memory') }
time = { check_max(4.h * task.attempt, 'time') }
errorStrategy = { task.exitStatus in ((130..145) + 104) ? 'retry' : 'finish' }
maxRetries = 1
maxErrors = '-1'
withLabel:process_single {
cpus = { check_max(1, 'cpus') }
memory = { check_max( 6.GB * task.attempt, 'memory') }
time = { check_max( 4.h * task.attempt, 'time') }
}
withLabel:process_low {
cpus = { check_max( 2 * task.attempt, 'cpus') }
memory = { check_max( 12.GB * task.attempt, 'memory') }
time = { check_max( 4.h * task.attempt, 'time') }
}
withLabel:process_medium {
cpus = { check_max( 6 * task.attempt, 'cpus') }
memory = { check_max( 36.GB * task.attempt, 'memory') }
time = { check_max( 8.h * task.attempt, 'time') }
}
withLabel:process_high {
cpus = { check_max( 12 * task.attempt, 'cpus') }
memory = { check_max( 72.GB * task.attempt, 'memory') }
time = { check_max( 16.h * task.attempt, 'time') }
}
withName: 'HAPLINK_ML_HAPLOTYPES' {
ext.ml_args = """
--simulated-reads \\
--overlap-min 20 \\
--overlap-max 8000 \\
"""
}
}
try {
includeConfig "${params.custom_config_base}/nfcore_custom.config"
} catch (Exception e) {
System.err.println("WARNING: Could not load nf-core/config profiles: ${params.custom_config_base}/nfcore_custom.config")
}
profiles {
docker {
docker.enabled = true
docker.userEmulation = true
conda.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
apptainer.enabled = false
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
conda.enabled = false
docker.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
apptainer.enabled = false
}
podman {
podman.enabled = true
conda.enabled = false
docker.enabled = false
singularity.enabled = false
shifter.enabled = false
charliecloud.enabled = false
apptainer.enabled = false
}
shifter {
shifter.enabled = true
conda.enabled = false
docker.enabled = false
singularity.enabled = false
podman.enabled = false
charliecloud.enabled = false
apptainer.enabled = false
}
charliecloud {
charliecloud.enabled = true
conda.enabled = false
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
apptainer.enabled = false
}
apptainer {
apptainer.enabled = true
apptainer.autoMounts = true
conda.enabled = false
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
}
env {
R_PROFILE_USER = "/.Rprofile"
R_ENVIRON_USER = "/.Renviron"
}
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
}
}
}