
/*
========================================================================================
    nf-core/epitopeprediction Nextflow base config file
========================================================================================
    A 'blank slate' config file, appropriate for general use on most high performance
    compute environments. Assumes that all software is installed and available on
    the PATH. Runs in `local` mode - all jobs will be run on the logged in environment.
----------------------------------------------------------------------------------------
*/

process {

    cpus = { check_max( 1 * task.attempt, 'cpus' ) }
    memory = { check_max( 7.GB * task.attempt, 'memory' ) }
    time = { check_max( 4.h * task.attempt, 'time' ) }

    errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'finish' }
    maxRetries = 3
    maxErrors = '-1'

    // Process-specific resource requirements
    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' ) }
    }
    withLabel:process_long {
        time = { check_max( 20.h * task.attempt, 'time' ) }
    }
    withLabel:process_high_memory {
        memory = { check_max( 200.GB * task.attempt, 'memory' ) }
    }
    withLabel:error_ignore {
        errorStrategy = 'ignore'
    }
    withLabel:error_retry {
        errorStrategy = 'retry'
        maxRetries    = 2
    }
    withName:CUSTOM_DUMPSOFTWAREVERSIONS {
        cache = false
    }
}
