// 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/' project = null clusterOptions = null schema_ignore_params = "genomes,input_paths,cluster-options,clusterOptions,project" } singularity { enabled = true envWhitelist = 'SNIC_TMP' } def hostname = "r1" try { hostname = "sinfo --local -N -h | grep -F -v CLUSTER: | head -1 | cut -f1 -d' ' ".execute().text.trim() } catch (java.io.IOException e) { System.err.println("WARNING: Could not run sinfo to determine current cluster, defaulting to rackham") } // 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 " } // Use mem1TB for remaining cases on rackham (no 512 Gbyte nodes) if (hostname ==~ "r.*") { return base + " -p node -C mem1TB " } if (m > 500.GB) { // Special case for snowy very fat node (only remaining case that's above 500 GB) return base + " -p veryfat " } // Should only be cases for mem512GB left (snowy and bianca) return base + " -p node -C mem512GB " } process { executor = 'slurm' clusterOptions = { clusterOptionsCreator(task.memory) } // Use node local storage for execution. scratch = '$SNIC_TMP' } params { save_reference = true max_memory = 500.GB max_cpus = 16 max_time = 240.h // illumina iGenomes reference file paths on UPPMAX igenomes_base = '/sw/data/igenomes/' } if (hostname ==~ "s[0-9][0-9]*") { params.max_time = 700.h params.max_memory = 3880.GB } if (hostname ==~ "i.*") { params.max_memory = 250.GB } if (hostname ==~ "r.*") { params.max_cpus = 20 params.max_memory = 970.GB } 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' } }