Skip to content

Commit f415035

Browse files
authored
Merge pull request #235 from nf-core/publish-selected-command-files
Publish selected .command files
2 parents bd480fe + d70e494 commit f415035

File tree

35 files changed

+88
-40
lines changed

35 files changed

+88
-40
lines changed

conf/modules.config

Lines changed: 54 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -31,135 +31,135 @@ process {
3131
publishDir = [
3232
path: { "${params.outdir}" },
3333
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}") },
3535
]
3636
}
3737

3838
withName: 'REDUX' {
3939
publishDir = [
4040
path: { "${params.outdir}" },
4141
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}") },
4343
]
4444
}
4545

4646
withName: 'AMBER' {
4747
publishDir = [
4848
path: { "${params.outdir}" },
4949
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}") },
5151
]
5252
}
5353

5454
withName: 'COBALT' {
5555
publishDir = [
5656
path: { "${params.outdir}" },
5757
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}") },
5959
]
6060
}
6161

6262
withName: '.*:ESVEE_CALLING:ESVEE' {
6363
publishDir = [
6464
path: { "${params.outdir}" },
6565
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}") },
6767
]
6868
}
6969

7070
withName: '.*:SAGE_CALLING:SAGE_GERMLINE' {
7171
publishDir = [
7272
path: { "${params.outdir}" },
7373
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}") },
7575
]
7676
}
7777

7878
withName: '.*:SAGE_CALLING:SAGE_SOMATIC' {
7979
publishDir = [
8080
path: { "${params.outdir}" },
8181
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}") },
8383
]
8484
}
8585

8686
withName: '.*:SAGE_APPEND:SAGE_APPEND_(?:GERMLINE|SOMATIC)' {
8787
publishDir = [
8888
path: { "${params.outdir}" },
8989
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/") },
9191
]
9292
}
9393

9494
withName: '.*:PAVE_ANNOTATION:PAVE_(?:GERMLINE|SOMATIC)' {
9595
publishDir = [
9696
path: { "${params.outdir}" },
9797
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}") },
9999
]
100100
}
101101

102102
withName: 'PURPLE' {
103103
publishDir = [
104104
path: { "${params.outdir}" },
105105
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}") },
107107
]
108108
}
109109

110110
withName: '.*:LINX_ANNOTATION:LINX_GERMLINE' {
111111
publishDir = [
112112
path: { "${params.outdir}" },
113113
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/") },
115115
]
116116
}
117117

118118
withName: '.*:LINX_ANNOTATION:LINX_SOMATIC' {
119119
publishDir = [
120120
path: { "${params.outdir}" },
121121
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/") },
123123
]
124124
}
125125

126126
withName: '.*:LINX_PLOTTING:LINX_VISUALISER' {
127127
publishDir = [
128128
path: { "${params.outdir}" },
129129
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/") },
131131
]
132132
}
133133

134134
withName: '.*:LINX_PLOTTING:LINXREPORT' {
135135
publishDir = [
136136
path: { "${params.outdir}" },
137137
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}") },
139139
]
140140
}
141141

142142
withName: 'CIDER' {
143143
publishDir = [
144144
path: { "${params.outdir}" },
145145
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}") },
147147
]
148148
}
149149

150150
withName: 'BAMTOOLS' {
151151
publishDir = [
152152
path: { "${params.outdir}" },
153153
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}") },
155155
]
156156
}
157157

158158
withName: 'CHORD' {
159159
publishDir = [
160160
path: { "${params.outdir}" },
161161
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}") },
163163
]
164164
}
165165

@@ -173,95 +173,95 @@ process {
173173
publishDir = [
174174
path: { "${params.outdir}" },
175175
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}") },
177177
]
178178
}
179179

180180
withName: 'SIGS' {
181181
publishDir = [
182182
path: { "${params.outdir}" },
183183
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}") },
185185
]
186186
}
187187

188188
withName: 'TEAL.*' {
189189
publishDir = [
190190
path: { "${params.outdir}" },
191191
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}") },
193193
]
194194
}
195195

196196
withName: 'VIRUSBREAKEND' {
197197
publishDir = [
198198
path: { "${params.outdir}" },
199199
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}") },
201201
]
202202
}
203203

204204
withName: 'VIRUSINTERPRETER' {
205205
publishDir = [
206206
path: { "${params.outdir}" },
207207
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}") },
209209
]
210210
}
211211

212212
withName: 'ISOFOX' {
213213
publishDir = [
214214
path: { "${params.outdir}" },
215215
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}") },
217217
]
218218
}
219219

220220
withName: 'NEO_SCORER' {
221221
publishDir = [
222222
path: { "${params.outdir}" },
223223
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/") },
225225
]
226226
}
227227

228228
withName: '.*:NEO_PREDICTION:NEO_ANNOTATE_FUSIONS' {
229229
publishDir = [
230230
path: { "${params.outdir}" },
231231
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}") },
233233
]
234234
}
235235

236236
withName: 'NEO_FINDER' {
237237
publishDir = [
238238
path: { "${params.outdir}" },
239239
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/") },
241241
]
242242
}
243243

244244
withName: 'WISP' {
245245
publishDir = [
246246
path: { "${params.outdir}" },
247247
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}") },
249249
]
250250
}
251251

252252
withName: 'CUPPA' {
253253
publishDir = [
254254
path: { "${params.outdir}" },
255255
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}") },
257257
]
258258
}
259259

260260
withName: 'PEACH' {
261261
publishDir = [
262262
path: { "${params.outdir}" },
263263
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}") },
265265
]
266266
}
267267

@@ -270,39 +270,53 @@ process {
270270
path: { "${params.outdir}" },
271271
mode: params.publish_dir_mode,
272272
// 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]}") },
281274
]
282275
}
283276

284277
withName: 'COBALT_PANEL_NORMALISATION' {
285278
publishDir = [
286279
path: { "${params.outdir}" },
287280
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) },
289282
]
290283
}
291284

292285
withName: 'PAVE_PON_PANEL_CREATION' {
293286
publishDir = [
294287
path: { "${params.outdir}" },
295288
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) },
297290
]
298291
}
299292

300293
withName: 'ISOFOX_PANEL_NORMALISATION' {
301294
publishDir = [
302295
path: { "${params.outdir}" },
303296
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) },
305298
]
306299
}
307300

308301
}
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+
}

modules/local/amber/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ process AMBER {
1717
output:
1818
tuple val(meta), path('amber/'), emit: amber_dir
1919
path 'versions.yml' , emit: versions
20+
path '.command.*' , emit: command_files
2021

2122
when:
2223
task.ext.when == null || task.ext.when

modules/local/bamtools/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ process BAMTOOLS {
1717
output:
1818
tuple val(meta), path("${meta.id}_bamtools/"), emit: metrics_dir
1919
path 'versions.yml' , emit: versions
20+
path '.command.*' , emit: command_files
2021

2122
when:
2223
task.ext.when == null || task.ext.when

modules/local/chord/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ process CHORD {
1616
output:
1717
tuple val(meta), path('chord/'), emit: chord_dir
1818
path 'versions.yml' , emit: versions
19+
path '.command.*' , emit: command_files
1920

2021
when:
2122
task.ext.when == null || task.ext.when

modules/local/cider/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ process CIDER {
1515
output:
1616
tuple val(meta), path('cider/*'), emit: cider_dir
1717
path 'versions.yml' , emit: versions
18+
path '.command.*' , emit: command_files
1819

1920
when:
2021
task.ext.when == null || task.ext.when

modules/local/cobalt/panel_normalisation/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ process COBALT_PANEL_NORMALISATION {
1515
output:
1616
path 'cobalt.region_normalisation.*.tsv', emit: cobalt_normalisation
1717
path 'versions.yml' , emit: versions
18+
path '.command.*' , emit: command_files
1819

1920
when:
2021
task.ext.when == null || task.ext.when

modules/local/cobalt/run/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ process COBALT {
1717
output:
1818
tuple val(meta), path('cobalt/'), emit: cobalt_dir
1919
path 'versions.yml' , emit: versions
20+
path '.command.*' , emit: command_files
2021

2122
when:
2223
task.ext.when == null || task.ext.when

modules/local/cuppa/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ process CUPPA {
1717
output:
1818
tuple val(meta), path('cuppa/'), emit: cuppa_dir
1919
path 'versions.yml' , emit: versions
20+
path '.command.*' , emit: command_files
2021

2122
when:
2223
task.ext.when == null || task.ext.when

modules/local/isofox/panel_normalisation/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ process ISOFOX_PANEL_NORMALISATION {
1515
output:
1616
path 'isofox.gene_normalisation.*.csv', emit: isofox_normalisation
1717
path 'versions.yml' , emit: versions
18+
path '.command.*' , emit: command_files
1819

1920
when:
2021
task.ext.when == null || task.ext.when

modules/local/isofox/run/main.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ process ISOFOX {
2424
output:
2525
tuple val(meta), path('isofox/'), emit: isofox_dir
2626
path 'versions.yml' , emit: versions
27+
path '.command.*' , emit: command_files
2728

2829
when:
2930
task.ext.when == null || task.ext.when

0 commit comments

Comments
 (0)