@@ -31,135 +31,135 @@ process {
31
31
publishDir = [
32
32
path: { "${params.outdir}" },
33
33
mode: params.publish_dir_mode,
34
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/alignments/rna/${filename}" },
34
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/alignments/rna/${filename}") },
35
35
]
36
36
}
37
37
38
38
withName: 'REDUX' {
39
39
publishDir = [
40
40
path: { "${params.outdir}" },
41
41
mode: params.publish_dir_mode,
42
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/alignments/dna/${filename}" },
42
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/alignments/dna/${filename}") },
43
43
]
44
44
}
45
45
46
46
withName: 'AMBER' {
47
47
publishDir = [
48
48
path: { "${params.outdir}" },
49
49
mode: params.publish_dir_mode,
50
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
50
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
51
51
]
52
52
}
53
53
54
54
withName: 'COBALT' {
55
55
publishDir = [
56
56
path: { "${params.outdir}" },
57
57
mode: params.publish_dir_mode,
58
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
58
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
59
59
]
60
60
}
61
61
62
62
withName: '.*:ESVEE_CALLING:ESVEE' {
63
63
publishDir = [
64
64
path: { "${params.outdir}" },
65
65
mode: params.publish_dir_mode,
66
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" }
66
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
67
67
]
68
68
}
69
69
70
70
withName: '.*:SAGE_CALLING:SAGE_GERMLINE' {
71
71
publishDir = [
72
72
path: { "${params.outdir}" },
73
73
mode: params.publish_dir_mode,
74
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/sage/${filename}" },
74
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/sage/${filename}") },
75
75
]
76
76
}
77
77
78
78
withName: '.*:SAGE_CALLING:SAGE_SOMATIC' {
79
79
publishDir = [
80
80
path: { "${params.outdir}" },
81
81
mode: params.publish_dir_mode,
82
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/sage/${filename}" },
82
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/sage/${filename}") },
83
83
]
84
84
}
85
85
86
86
withName: '.*:SAGE_APPEND:SAGE_APPEND_(?:GERMLINE|SOMATIC)' {
87
87
publishDir = [
88
88
path: { "${params.outdir}" },
89
89
mode: params.publish_dir_mode,
90
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/sage/append/" },
90
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/sage/append/") },
91
91
]
92
92
}
93
93
94
94
withName: '.*:PAVE_ANNOTATION:PAVE_(?:GERMLINE|SOMATIC)' {
95
95
publishDir = [
96
96
path: { "${params.outdir}" },
97
97
mode: params.publish_dir_mode,
98
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/pave/${filename}" },
98
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/pave/${filename}") },
99
99
]
100
100
}
101
101
102
102
withName: 'PURPLE' {
103
103
publishDir = [
104
104
path: { "${params.outdir}" },
105
105
mode: params.publish_dir_mode,
106
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
106
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
107
107
]
108
108
}
109
109
110
110
withName: '.*:LINX_ANNOTATION:LINX_GERMLINE' {
111
111
publishDir = [
112
112
path: { "${params.outdir}" },
113
113
mode: params.publish_dir_mode,
114
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/linx/germline_annotations/" },
114
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/linx/germline_annotations/") },
115
115
]
116
116
}
117
117
118
118
withName: '.*:LINX_ANNOTATION:LINX_SOMATIC' {
119
119
publishDir = [
120
120
path: { "${params.outdir}" },
121
121
mode: params.publish_dir_mode,
122
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/linx/somatic_annotations/" },
122
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/linx/somatic_annotations/") },
123
123
]
124
124
}
125
125
126
126
withName: '.*:LINX_PLOTTING:LINX_VISUALISER' {
127
127
publishDir = [
128
128
path: { "${params.outdir}" },
129
129
mode: params.publish_dir_mode,
130
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/linx/somatic_plots/" },
130
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/linx/somatic_plots/") },
131
131
]
132
132
}
133
133
134
134
withName: '.*:LINX_PLOTTING:LINXREPORT' {
135
135
publishDir = [
136
136
path: { "${params.outdir}" },
137
137
mode: params.publish_dir_mode,
138
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/linx/${filename}" },
138
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/linx/${filename}") },
139
139
]
140
140
}
141
141
142
142
withName: 'CIDER' {
143
143
publishDir = [
144
144
path: { "${params.outdir}" },
145
145
mode: params.publish_dir_mode,
146
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
146
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
147
147
]
148
148
}
149
149
150
150
withName: 'BAMTOOLS' {
151
151
publishDir = [
152
152
path: { "${params.outdir}" },
153
153
mode: params.publish_dir_mode,
154
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/bamtools/${filename}" },
154
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/bamtools/${filename}") },
155
155
]
156
156
}
157
157
158
158
withName: 'CHORD' {
159
159
publishDir = [
160
160
path: { "${params.outdir}" },
161
161
mode: params.publish_dir_mode,
162
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
162
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
163
163
]
164
164
}
165
165
@@ -173,95 +173,95 @@ process {
173
173
publishDir = [
174
174
path: { "${params.outdir}" },
175
175
mode: params.publish_dir_mode,
176
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" }
176
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
177
177
]
178
178
}
179
179
180
180
withName: 'SIGS' {
181
181
publishDir = [
182
182
path: { "${params.outdir}" },
183
183
mode: params.publish_dir_mode,
184
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
184
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
185
185
]
186
186
}
187
187
188
188
withName: 'TEAL.*' {
189
189
publishDir = [
190
190
path: { "${params.outdir}" },
191
191
mode: params.publish_dir_mode,
192
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.id}/teal/${new File(filename).name}" },
192
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.id}/teal/${new File(filename).name}") },
193
193
]
194
194
}
195
195
196
196
withName: 'VIRUSBREAKEND' {
197
197
publishDir = [
198
198
path: { "${params.outdir}" },
199
199
mode: params.publish_dir_mode,
200
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/virusbreakend/${filename}" },
200
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/virusbreakend/${filename}") },
201
201
]
202
202
}
203
203
204
204
withName: 'VIRUSINTERPRETER' {
205
205
publishDir = [
206
206
path: { "${params.outdir}" },
207
207
mode: params.publish_dir_mode,
208
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
208
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
209
209
]
210
210
}
211
211
212
212
withName: 'ISOFOX' {
213
213
publishDir = [
214
214
path: { "${params.outdir}" },
215
215
mode: params.publish_dir_mode,
216
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
216
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
217
217
]
218
218
}
219
219
220
220
withName: 'NEO_SCORER' {
221
221
publishDir = [
222
222
path: { "${params.outdir}" },
223
223
mode: params.publish_dir_mode,
224
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/neo/scorer/" },
224
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/neo/scorer/") },
225
225
]
226
226
}
227
227
228
228
withName: '.*:NEO_PREDICTION:NEO_ANNOTATE_FUSIONS' {
229
229
publishDir = [
230
230
path: { "${params.outdir}" },
231
231
mode: params.publish_dir_mode,
232
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/neo/annotated_fusions/${filename}" },
232
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/neo/annotated_fusions/${filename}") },
233
233
]
234
234
}
235
235
236
236
withName: 'NEO_FINDER' {
237
237
publishDir = [
238
238
path: { "${params.outdir}" },
239
239
mode: params.publish_dir_mode,
240
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/neo/finder/" },
240
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/neo/finder/") },
241
241
]
242
242
}
243
243
244
244
withName: 'WISP' {
245
245
publishDir = [
246
246
path: { "${params.outdir}" },
247
247
mode: params.publish_dir_mode,
248
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
248
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
249
249
]
250
250
}
251
251
252
252
withName: 'CUPPA' {
253
253
publishDir = [
254
254
path: { "${params.outdir}" },
255
255
mode: params.publish_dir_mode,
256
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
256
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
257
257
]
258
258
}
259
259
260
260
withName: 'PEACH' {
261
261
publishDir = [
262
262
path: { "${params.outdir}" },
263
263
mode: params.publish_dir_mode,
264
- saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.key}/${filename}" },
264
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/${filename}") },
265
265
]
266
266
}
267
267
@@ -270,39 +270,53 @@ process {
270
270
path: { "${params.outdir}" },
271
271
mode: params.publish_dir_mode,
272
272
// NOTE(SW): java.io.File and Nextflow's file do not work here, resorting to string splitting
273
- saveAs: { filename ->
274
- if (filename.equals('versions.yml')) {
275
- return null
276
- } else {
277
- def tokens = filename.split('[/]')
278
- return "${meta.key}/orange/${tokens[-1]}"
279
- }
280
- }
273
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "${meta.key}/orange/${filename.split('[/]')[-1]}") },
281
274
]
282
275
}
283
276
284
277
withName: 'COBALT_PANEL_NORMALISATION' {
285
278
publishDir = [
286
279
path: { "${params.outdir}" },
287
280
mode: params.publish_dir_mode,
288
- saveAs: { filename -> filename.equals('versions.yml') ? null : "panel_resources/${filename}" },
281
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "panel_resources/${filename}", is_panel_resource_creation_step = true) },
289
282
]
290
283
}
291
284
292
285
withName: 'PAVE_PON_PANEL_CREATION' {
293
286
publishDir = [
294
287
path: { "${params.outdir}" },
295
288
mode: params.publish_dir_mode,
296
- saveAs: { filename -> filename.equals('versions.yml') ? null : "panel_resources/${filename}" },
289
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "panel_resources/${filename}", is_panel_resource_creation_step = true) },
297
290
]
298
291
}
299
292
300
293
withName: 'ISOFOX_PANEL_NORMALISATION' {
301
294
publishDir = [
302
295
path: { "${params.outdir}" },
303
296
mode: params.publish_dir_mode,
304
- saveAs: { filename -> filename.equals('versions.yml') ? null : "panel_resources/${filename}" },
297
+ saveAs: { filename -> get_saveas_path(meta, task, filename, "panel_resources/${filename}", is_panel_resource_creation_step = true) },
305
298
]
306
299
}
307
300
308
301
}
302
+
303
+ def get_saveas_path(meta, task, filename, path, is_panel_resource_creation_step = false) {
304
+ if (filename.equals('versions.yml')) {
305
+ return null
306
+ } else if (filename.contains('.command.')) {
307
+ if (filename ==~ /.*\.command\.(sh|out|err|log|run)/) {
308
+ def process_name = task.process.toLowerCase().replaceFirst(/^.+:/, '')
309
+
310
+ if (is_panel_resource_creation_step) {
311
+ return "panel_resources/logs/${process_name}${filename}"
312
+ } else {
313
+ return "${meta.key}/logs/${meta.id}.${process_name}${filename}"
314
+ }
315
+
316
+ } else {
317
+ return null
318
+ }
319
+ } else {
320
+ return path
321
+ }
322
+ }
0 commit comments