/*
 * -------------------------------------------------
 *  nf-core/coproid Nextflow base config file
 * -------------------------------------------------
 * A 'blank slate' config file, appropriate for general
 * use on most high performace 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( 1.GB * task.attempt, 'memory' )}
  time = { check_max( 45.m * task.attempt, 'time' )}

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

  // Process-specific resource requirements
  // See https://www.nextflow.io/docs/latest/config.html#config-process-selectors


  withLabel:process_low{
    cpus = { check_max(6 * task.attempt, 'cpus')}
    memory = { check_max( 2.GB * task.attempt, 'memory' )}
    time = { check_max( 45.m * task.attempt, 'time' )}
  }

  withLabel:process_medium{
    cpus = { check_max(8 * task.attempt, 'cpus')}
    memory = { check_max( 8.GB * task.attempt, 'memory' )}
    time = { check_max( 2.h * task.attempt, 'time' )}
  }

  withLabel:process_high{
    cpus = { check_max(16 * task.attempt, 'cpus')}
    memory = { check_max( 32.GB * task.attempt, 'memory' )}
    time = { check_max( 2.h * task.attempt, 'time' )}
  }
  withLabel:process_long{
    cpus = { check_max(16 * task.attempt, 'cpus')}
    memory = { check_max( 32.GB * task.attempt, 'memory' )}
  }
  withName:get_software_versions {
    cache = false
  }
  
}
