annotate 0.4.2/workflows/centriflaken.nf @ 0:082e0091e813 draft default tip

planemo upload
author galaxytrakr
date Fri, 29 May 2026 13:27:47 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
1 // Define any required imports for this specific workflow
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
2 import java.nio.file.Paths
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
3 import nextflow.file.FileHelper
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
4
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
5 // Include any necessary methods
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
6 include { \
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
7 summaryOfParams; stopNow; fastqEntryPointHelp; sendMail; \
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
8 addPadding; wrapUpHelp } from "${params.routines}"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
9 include { kraken2Help } from "${params.toolshelp}${params.fs}kraken2"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
10 include { centrifugeHelp } from "${params.toolshelp}${params.fs}centrifuge"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
11 include { flyeHelp } from "${params.toolshelp}${params.fs}flye"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
12 include { serotypefinderHelp } from "${params.toolshelp}${params.fs}serotypefinder"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
13 include { seqsero2Help } from "${params.toolshelp}${params.fs}seqsero2"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
14 include { mlstHelp } from "${params.toolshelp}${params.fs}mlst"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
15 include { abricateHelp } from "${params.toolshelp}${params.fs}abricate"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
16
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
17 // Exit if help requested before any subworkflows
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
18 if (params.help) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
19 log.info help()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
20 exit 0
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
21 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
22
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
23 // Include any necessary modules and subworkflows
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
24 include { PROCESS_FASTQ } from "${params.subworkflows}${params.fs}process_fastq"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
25 include { FASTQC } from "${params.modules}${params.fs}fastqc${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
26 include { CENTRIFUGE_CLASSIFY } from "${params.modules}${params.fs}centrifuge${params.fs}classify${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
27 include { CENTRIFUGE_PROCESS } from "${params.modules}${params.fs}centrifuge${params.fs}process${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
28 include { SEQKIT_GREP } from "${params.modules}${params.fs}seqkit${params.fs}grep${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
29 include { FLYE_ASSEMBLE } from "${params.modules}${params.fs}flye${params.fs}assemble${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
30 include { KRAKEN2_CLASSIFY } from "${params.modules}${params.fs}kraken2${params.fs}classify${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
31 include { KRAKEN2_EXTRACT_CONTIGS } from "${params.modules}${params.fs}kraken2${params.fs}extract_contigs${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
32 include { SEROTYPEFINDER } from "${params.modules}${params.fs}serotypefinder${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
33 include { SEQSERO2 } from "${params.modules}${params.fs}seqsero2${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
34 include { MLST } from "${params.modules}${params.fs}mlst${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
35 include { ABRICATE_RUN } from "${params.modules}${params.fs}abricate${params.fs}run${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
36 include { ABRICATE_SUMMARY } from "${params.modules}${params.fs}abricate${params.fs}summary${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
37 include { TABLE_SUMMARY } from "${params.modules}${params.fs}cat${params.fs}tables${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
38 include { MULTIQC } from "${params.modules}${params.fs}multiqc${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
39 include { DUMP_SOFTWARE_VERSIONS } from "${params.modules}${params.fs}custom${params.fs}dump_software_versions${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
40
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
41
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
42
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
43 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
44 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
45 INPUTS AND ANY CHECKS FOR THE CENTRIFLAKEN WORKFLOW
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
46 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
47 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
48
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
49 def kraken2_db_dir = file ( "${params.kraken2_db}" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
50 def centrifuge_x = file ( "${params.centrifuge_x}" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
51 def reads_platform = 0
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
52 def abricate_dbs = [ 'ncbiamrplus', 'resfinder', 'megares', 'argannot' ]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
53
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
54 reads_platform += (params.flye_nano_raw ? 1 : 0)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
55 reads_platform += (params.flye_nano_corr ? 1 : 0)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
56 reads_platform += (params.flye_nano_hq ? 1 : 0)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
57 reads_platform += (params.flye_pacbio_raw ? 1 : 0)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
58 reads_platform += (params.flye_pacbio_corr ? 1 : 0)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
59 reads_platform += (params.flye_pacbio_hifi ? 1 : 0)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
60
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
61 if (!kraken2_db_dir.exists() || !centrifuge_x.getParent().exists()) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
62 stopNow("Please check if the following absolute paths are valid:\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
63 "${params.kraken2_db}\n${params.centrifuge_x}\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
64 "Cannot proceed further!")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
65 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
66
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
67 if (reads_platform > 1 || reads_platform == 0) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
68 msg_0 = (reads_platform > 1 ? "only" : "at least")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
69 stopNow("Please mention ${msg_0} one read platform for use with the flye assembler\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
70 "using any one of the following options:\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
71 "--flye_nano_raw\n--flye_nano_corr\n--flye_nano_hq\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
72 "--flye_pacbio_raw\n--flye_pacbio_corr\n--flye_pacbio_hifi")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
73 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
74
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
75 if (params.centrifuge_extract_bug != params.kraken2_extract_bug) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
76 stopNow("Please make sure that the bug to be extracted is same\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
77 "for both --centrifuge_extract_bug and --kraken2_extract_bug options.")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
78 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
79
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
80 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
81 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
82 RUN THE CENTRIFLAKEN WORKFLOW
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
83 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
84 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
85
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
86 workflow CENTRIFLAKEN {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
87 main:
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
88 ch_asm_filtered_contigs = Channel.empty()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
89 ch_mqc_custom_tbl = Channel.empty()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
90
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
91 log.info summaryOfParams()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
92
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
93 PROCESS_FASTQ()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
94 .processed_reads
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
95 .map {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
96 meta, fastq ->
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
97 meta.centrifuge_x = params.centrifuge_x
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
98 meta.kraken2_db = params.kraken2_db
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
99 [meta, fastq]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
100 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
101 .set { ch_processed_reads }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
102
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
103 PROCESS_FASTQ
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
104 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
105 .versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
106 .set { software_versions }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
107
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
108 FASTQC ( ch_processed_reads )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
109
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
110 CENTRIFUGE_CLASSIFY ( ch_processed_reads )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
111
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
112 CENTRIFUGE_PROCESS (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
113 CENTRIFUGE_CLASSIFY.out.report
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
114 .join( CENTRIFUGE_CLASSIFY.out.output )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
115 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
116
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
117 ch_processed_reads.join ( CENTRIFUGE_PROCESS.out.extracted )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
118 .set { ch_centrifuge_extracted }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
119
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
120 SEQKIT_GREP ( ch_centrifuge_extracted )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
121
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
122 FLYE_ASSEMBLE ( SEQKIT_GREP.out.fastx )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
123
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
124 FLYE_ASSEMBLE
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
125 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
126 .assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
127 .set { ch_flye_assembly }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
128
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
129 ch_flye_assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
130 .map {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
131 meta, fastq ->
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
132 meta.is_assembly = true
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
133 [meta, fastq]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
134 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
135 .set { ch_flye_assembly }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
136
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
137 ch_flye_assembly.ifEmpty { [ false, false ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
138
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
139 KRAKEN2_CLASSIFY ( ch_flye_assembly )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
140
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
141 KRAKEN2_EXTRACT_CONTIGS (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
142 ch_flye_assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
143 .join( KRAKEN2_CLASSIFY.out.kraken_output ),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
144 params.kraken2_extract_bug
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
145 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
146
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
147 KRAKEN2_EXTRACT_CONTIGS
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
148 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
149 .asm_filtered_contigs
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
150 .map {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
151 meta, fastq ->
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
152 meta.organism = params.kraken2_extract_bug.split(/\s+/)[0].capitalize()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
153 meta.serotypefinder_db = params.serotypefinder_db
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
154 [meta, fastq]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
155 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
156 .set { ch_asm_filtered_contigs }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
157
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
158 SEROTYPEFINDER ( ch_asm_filtered_contigs )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
159
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
160 SEQSERO2 ( ch_asm_filtered_contigs )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
161
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
162 MLST ( ch_asm_filtered_contigs )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
163
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
164 ABRICATE_RUN (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
165 ch_asm_filtered_contigs,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
166 abricate_dbs
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
167 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
168
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
169 ABRICATE_RUN
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
170 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
171 .abricated
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
172 .map { meta, abres -> [ abricate_dbs, abres ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
173 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
174 .map { it -> tuple ( it[0], it[1].flatten() ) }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
175 .set { ch_abricated }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
176
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
177 ABRICATE_SUMMARY ( ch_abricated )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
178
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
179 // ABRICATE_SUMMARY.out.ecoli_vf.set { ch_abricate_summary_ecoli_vf }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
180 // ch_abricate_summary_ecoli_vf.ifEmpty { [ false, false ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
181
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
182 CENTRIFUGE_CLASSIFY.out.kreport
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
183 .map { meta, kreport -> [ kreport ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
184 .flatten()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
185 .concat (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
186 KRAKEN2_CLASSIFY.out.kraken_report
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
187 .map { meta, kreport -> [ kreport ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
188 .flatten(),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
189 FASTQC.out.zip
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
190 .map { meta, zip -> [ zip ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
191 .flatten()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
192 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
193 .set { ch_mqc_classify }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
194
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
195 if (params.serotypefinder_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
196 SEROTYPEFINDER
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
197 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
198 .serotyped
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
199 .map { meta, tsv -> [ 'serotypefinder', tsv ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
200 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
201 .map { it -> tuple ( it[0], it[1].flatten() ) }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
202 .set { ch_mqc_custom_tbl }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
203 } else if (params.seqsero2_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
204 SEQSERO2
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
205 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
206 .serotyped
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
207 .map { meta, tsv -> [ 'seqsero2', tsv ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
208 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
209 .map { it -> tuple ( it[0], it[1].flatten() ) }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
210 .set { ch_mqc_custom_tbl }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
211 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
212
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
213 ch_mqc_custom_tbl
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
214 .concat (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
215 ABRICATE_SUMMARY.out.ncbiamrplus.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
216 ABRICATE_SUMMARY.out.resfinder.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
217 ABRICATE_SUMMARY.out.megares.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
218 ABRICATE_SUMMARY.out.argannot.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
219 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
220 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
221 .map { it -> [ it[0], it[1].flatten() ]}
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
222 .set { ch_mqc_custom_tbl }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
223
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
224 TABLE_SUMMARY ( ch_mqc_custom_tbl )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
225
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
226 DUMP_SOFTWARE_VERSIONS (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
227 software_versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
228 .mix (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
229 FASTQC.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
230 CENTRIFUGE_CLASSIFY.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
231 CENTRIFUGE_PROCESS.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
232 SEQKIT_GREP.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
233 FLYE_ASSEMBLE.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
234 KRAKEN2_CLASSIFY.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
235 KRAKEN2_EXTRACT_CONTIGS.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
236 SEROTYPEFINDER.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
237 SEQSERO2.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
238 MLST.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
239 ABRICATE_RUN.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
240 ABRICATE_SUMMARY.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
241 TABLE_SUMMARY.out.versions.ifEmpty(null)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
242 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
243 .unique()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
244 .collectFile(name: 'collected_versions.yml')
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
245 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
246
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
247 DUMP_SOFTWARE_VERSIONS
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
248 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
249 .mqc_yml
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
250 .concat (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
251 ch_mqc_classify,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
252 TABLE_SUMMARY.out.mqc_yml
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
253 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
254 .collect()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
255 .set { ch_multiqc }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
256
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
257 MULTIQC ( ch_multiqc )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
258 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
259
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
260 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
261 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
262 ON COMPLETE, SHOW GORY DETAILS OF ALL PARAMS WHICH WILL BE HELPFUL TO DEBUG
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
263 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
264 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
265
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
266 workflow.onComplete {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
267 if (workflow.success) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
268 // CREATE APPROPRIATE DIRECTORIES AND MOVE AS REQUESTED BY STAKEHOLDER(S)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
269 //
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
270 // Nextflow's .moveTo will error out if directories contain files and it
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
271 // would be complex to include logic to skip directories
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
272 //
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
273 def final_intermediate_dir = "${params.output}${params.fs}${params.pipeline}-steps"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
274 def final_results_dir = "${params.output}${params.fs}${params.pipeline}-results"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
275 def kraken2_ext_contigs = file( "${final_intermediate_dir}${params.fs}kraken2_extract_contigs", type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
276 def final_intermediate = file( final_intermediate_dir, type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
277 def final_results = file( final_results_dir, type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
278 def pipeline_output = file( params.output, type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
279
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
280 if ( !final_intermediate.exists() ) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
281 final_intermediate.mkdirs()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
282
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
283 FileHelper.visitFiles(Paths.get("${params.output}"), '*') {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
284 if ( !(it.name ==~ /^(${params.cfsanpipename}|multiqc|\.nextflow|${workflow.workDir.name}|${params.pipeline}).*/) ) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
285 FileHelper.movePath(
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
286 it, Paths.get( "${final_intermediate_dir}${params.fs}${it.name}" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
287 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
288 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
289 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
290 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
291
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
292 if ( kraken2_ext_contigs.exists() && !final_results.exists() ) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
293 final_results.mkdirs()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
294
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
295 FileHelper.movePath(
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
296 Paths.get( "${final_intermediate_dir}${params.fs}kraken2_extract_contigs" ),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
297 Paths.get( "${final_results_dir}${params.fs}kraken2_extract_contigs" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
298 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
299 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
300
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
301 sendMail()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
302 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
303 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
304
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
305 workflow.onError {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
306 sendMail()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
307 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
308
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
309 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
310 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
311 HELPER METHODS FOR CENTRIFLAKEN WORKFLOW
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
312 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
313 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
314
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
315 def help() {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
316
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
317 Map helptext = [:]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
318
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
319 helptext.putAll (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
320 fastqEntryPointHelp() +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
321 kraken2Help(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
322 centrifugeHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
323 flyeHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
324 serotypefinderHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
325 seqsero2Help(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
326 mlstHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
327 abricateHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
328 wrapUpHelp()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
329 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
330
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
331 return addPadding(helptext)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
332 }