//Profile config names for nf-core/configs params { config_profile_description = 'Swedish UPPMAX cluster profile provided by nf-core/configs.' config_profile_contact = 'Phil Ewels (@ewels)' config_profile_url = 'https://www.uppmax.uu.se/' } singularity { enabled = true } def hostname = "sinfo --local -N -h | head -1 | cut -f1 -d' ' ".execute().text.trim() process { // closure to create a suitable clusterOptions def clusterOptionsCreator = { m -> String base = "-A $params.project ${params.clusterOptions ?: ''}" // Do not use -p node on irma or if a thin node/core is enough if (m < 125.GB || hostname ==~ "i.*") { return base } if (m < 250.GB) { return base + " -p node -C mem256GB " } // Remaining cases use the largest available node (1 Tbyte for rackham, 512 Gbyte for others) if (hostname ==~ "r.*") { return base + " -p node -C mem1TB " } return base + " -p node -C mem512GB " } executor = 'slurm' clusterOptions = { clusterOptionsCreator(task.memory) } } params { save_reference = true max_memory = 970.GB max_cpus = 16 max_time = 240.h // illumina iGenomes reference file paths on UPPMAX igenomes_base = '/sw/data/uppnex/igenomes/' } if (hostname ==~ "b.*") { params.max_memory = 500.GB } if (hostname ==~ "s.*") { params.max_memory = 500.GB params.max_time = 700.h } if (hostname ==~ "i.*") { params.max_memory = 250.GB } if (hostname ==~ "r.*") { params.max_cpus = 20 } profiles { devel { params { config_profile_description = 'Testing & development profile for UPPMAX, provided by nf-core/configs.' // Max resources to be requested by a devel job max_memory = 120.GB max_time = 1.h } executor.queueSize = 1 process.queue = 'devel' } }