-
Notifications
You must be signed in to change notification settings - Fork 350
Expand file tree
/
Copy pathuppmax.config
More file actions
128 lines (121 loc) · 3.77 KB
/
uppmax.config
File metadata and controls
128 lines (121 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// UPPMAX Config Profile
// Docs: https://github.com/nf-core/configs/blob/master/docs/uppmax.md
// Supported clusters:
// - Bianca
// - Miarka
// - Rackham
// - Snowy
// - Pelle
params {
// Description is overwritten for other clusters using includeConfig
config_profile_description = 'UPPMAX (Bianca) 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"
validationSchemaIgnoreParams = "genomes,input_paths,cluster-options,clusterOptions,project,schema_ignore_params"
save_reference = true
// Defaults set for Bianca - other clusters set using includeConfig below
max_memory = 500.GB
max_cpus = 16
max_time = 240.h
// illumina iGenomes reference file paths on UPPMAX
igenomes_base = '/sw/data/igenomes/'
ignore_params_list = [
"cluster-options",
"clusterOptions",
"clusterName",
"genomes",
"ignore_params_list",
"input_paths",
"max_cpus",
"max_memory",
"max_time",
"project",
"schema_ignore_params",
"validationSchemaIgnoreParams",
]
}
// nf-schema/nf-validation settings
// Different versions use different specifications
validation {
ignoreParams = params.ignore_params_list
}
params.schema_ignore_params = params.ignore_params_list.join(",")
params.validationSchemaIgnoreParams = params.ignore_params_list.join(",")
singularity {
enabled = true
envWhitelist = 'SNIC_TMP'
}
executor {
$slurm {
account = params.project
}
}
// Hardware: https://docs.uppmax.uu.se/hardware/clusters/bianca/
process {
resourceLimits = [
memory: 500.GB,
cpus: 16,
time: 240.h,
]
clusterOptions = {
[
"-A ${params.project}",
params.clusterOptions ?: "",
task.memory > 250.GB
? "-p node -C mem512GB"
: "",
].minus("").join(" ")
}
executor = 'slurm'
// Use node local storage for execution.
scratch = '$SNIC_TMP'
}
// Overwrite settings depending on cluster
includeConfig ({
def cluster = "unknown"
try {
cluster = ['/bin/bash', '-c', "sacctmgr show cluster -P -n | cut -f1 -d'|' | grep 'miarka\\|pelle\\|rackham'"].execute().text.trim()
}
catch (IOException _e) {
System.err.println("WARNING: Could not run sacctmgr, defaulting to unknown")
}
if (cluster == "rackham") {
if (params.clusterOptions != null && params.clusterOptions.contains('-M snowy')) {
return "uppmax/snowy.config"
}
else {
return "uppmax/rackham.config"
}
}
else if (cluster == "pelle") {
return "uppmax/pelle.config"
}
else if (cluster == "miarka") {
return "uppmax/miarka.config"
}
return "/dev/null"
}.call())
// Additional devel profile for running in devel queue
// Run with `-profile uppmax,devel`
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'
resourceLimits = [
memory: 120.GB,
cpus: 4,
time: 1.h,
]
}
}
}