annotate 0.4.2/workflows/centriflaken_hy.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 { seqkitrmdupHelp } from "${params.toolshelp}${params.fs}seqkitrmdup"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
10 include { kraken2Help } from "${params.toolshelp}${params.fs}kraken2"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
11 include { centrifugeHelp } from "${params.toolshelp}${params.fs}centrifuge"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
12 include { megahitHelp } from "${params.toolshelp}${params.fs}megahit"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
13 include { spadesHelp } from "${params.toolshelp}${params.fs}spades"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
14 include { serotypefinderHelp } from "${params.toolshelp}${params.fs}serotypefinder"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
15 include { seqsero2Help } from "${params.toolshelp}${params.fs}seqsero2"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
16 include { mlstHelp } from "${params.toolshelp}${params.fs}mlst"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
17 include { abricateHelp } from "${params.toolshelp}${params.fs}abricate"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
18
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
19 // Exit if help requested before any subworkflows
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
20 if (params.help) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
21 log.info help()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
22 exit 0
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
23 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
24
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
25 // Include any necessary modules and subworkflows
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
26 include { PROCESS_FASTQ } from "${params.subworkflows}${params.fs}process_fastq"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
27 include { FASTQC } from "${params.modules}${params.fs}fastqc${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
28 include { SEQKIT_RMDUP } from "${params.modules}${params.fs}seqkit${params.fs}rmdup${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
29 include { CENTRIFUGE_CLASSIFY } from "${params.modules}${params.fs}centrifuge${params.fs}classify${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
30 include { CENTRIFUGE_PROCESS } from "${params.modules}${params.fs}centrifuge${params.fs}process${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
31 include { SEQKIT_GREP } from "${params.modules}${params.fs}seqkit${params.fs}grep${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
32 include { MEGAHIT_ASSEMBLE } from "${params.modules}${params.fs}megahit${params.fs}assemble${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
33 include { SPADES_ASSEMBLE } from "${params.modules}${params.fs}spades${params.fs}assemble${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
34 include { KRAKEN2_CLASSIFY } from "${params.modules}${params.fs}kraken2${params.fs}classify${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
35 include { KRAKEN2_EXTRACT_CONTIGS } from "${params.modules}${params.fs}kraken2${params.fs}extract_contigs${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
36 include { SEROTYPEFINDER } from "${params.modules}${params.fs}serotypefinder${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
37 include { SEQSERO2 } from "${params.modules}${params.fs}seqsero2${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
38 include { MLST } from "${params.modules}${params.fs}mlst${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
39 include { ABRICATE_RUN } from "${params.modules}${params.fs}abricate${params.fs}run${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
40 include { ABRICATE_SUMMARY } from "${params.modules}${params.fs}abricate${params.fs}summary${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
41 include { TABLE_SUMMARY } from "${params.modules}${params.fs}cat${params.fs}tables${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
42 include { MULTIQC } from "${params.modules}${params.fs}multiqc${params.fs}main"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
43 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
44
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
45
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 INPUTS AND ANY CHECKS FOR THE CENTRIFLAKEN-HY WORKFLOW
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
50 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
51 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
52
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
53 def kraken2_db_dir = file ( "${params.kraken2_db}" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
54 def centrifuge_x = file ( "${params.centrifuge_x}" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
55 def spades_custom_hmm = (params.spades_hmm ? file ( "${params.spades_hmm}" ) : false)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
56 def reads_platform = 0
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
57 def abricate_dbs = [ 'ncbiamrplus', 'resfinder', 'megares', 'argannot' ]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
58
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
59 reads_platform += (params.input ? 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 (spades_custom_hmm && !spades_custom_hmm.exists()) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
68 stopNow("Please check if the following SPAdes' custom HMM directory\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
69 "path is valid:\n${params.spades_hmm}\nCannot proceed further!")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
70 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
71
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
72 if (reads_platform < 1 || reads_platform == 0) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
73 stopNow("Please mention at least one absolute path to input folder which contains\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
74 "FASTQ files sequenced using the --input option.\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
75 "Ex: --input (Illumina or Generic short reads in FASTQ format)")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
76 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
77
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
78 if (params.centrifuge_extract_bug != params.kraken2_extract_bug) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
79 stopNow("Please make sure that the bug to be extracted is same\n" +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
80 "for both --centrifuge_extract_bug and --kraken2_extract_bug options.")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
81 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
82
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
83 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
84 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
85 RUN THE CENTRIFLAKEN-HY WORKFLOW
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
86 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
87 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
88
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
89 workflow CENTRIFLAKEN_HY {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
90 main:
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
91 ch_asm_filtered_contigs = Channel.empty()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
92 ch_mqc_custom_tbl = Channel.empty()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
93 ch_dummy = Channel.fromPath("${params.dummyfile}")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
94 ch_dummy2 = Channel.fromPath("${params.dummyfile2}")
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
95
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
96 log.info summaryOfParams()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
97
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
98 PROCESS_FASTQ()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
99 .processed_reads
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
100 .map {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
101 meta, fastq ->
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
102 meta.centrifuge_x = params.centrifuge_x
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
103 meta.kraken2_db = params.kraken2_db
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
104 [meta, fastq]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
105 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
106 .set { ch_processed_reads }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
107
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
108 PROCESS_FASTQ
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
109 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
110 .versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
111 .set { software_versions }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
112
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
113 FASTQC ( ch_processed_reads )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
114
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
115 if (params.seqkit_rmdup_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
116 SEQKIT_RMDUP ( ch_processed_reads )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
117
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
118 SEQKIT_RMDUP
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
119 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
120 .fastx
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
121 .set { ch_processed_reads }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
122
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
123 software_versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
124 .mix ( SEQKIT_RMDUP.out.versions.ifEmpty(null) )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
125 .set { software_versions }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
126 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
127
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
128 CENTRIFUGE_CLASSIFY ( ch_processed_reads )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
129
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
130 CENTRIFUGE_PROCESS (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
131 CENTRIFUGE_CLASSIFY.out.report
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
132 .join( CENTRIFUGE_CLASSIFY.out.output )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
133 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
134
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
135 ch_processed_reads.join ( CENTRIFUGE_PROCESS.out.extracted )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
136 .set { ch_centrifuge_extracted }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
137
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
138 SEQKIT_GREP ( ch_centrifuge_extracted )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
139
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
140 // As of 06/02/2022, with the upcoming newer versions of NextFlow, we will be able to do
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
141 // allowNull: true for both input and output, but until then, we have to use dummy files.
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
142 // and work arounds.
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
143 // https://github.com/nextflow-io/nextflow/pull/2893
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
144 if (params.spades_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
145 SPADES_ASSEMBLE (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
146 SEQKIT_GREP.out.fastx
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
147 .combine(ch_dummy)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
148 .combine(ch_dummy2)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
149 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
150
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
151 SPADES_ASSEMBLE
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
152 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
153 .assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
154 .set { ch_assembly }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
155
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
156 software_versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
157 .mix ( SPADES_ASSEMBLE.out.versions.ifEmpty(null) )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
158 .set { software_versions }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
159 } else if (params.megahit_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
160 MEGAHIT_ASSEMBLE (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
161 SEQKIT_GREP.out.fastx
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
162 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
163
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
164 MEGAHIT_ASSEMBLE
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
165 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
166 .assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
167 .set { ch_assembly }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
168
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
169 software_versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
170 .mix ( MEGAHIT_ASSEMBLE.out.versions.ifEmpty(null) )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
171 .set { software_versions }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
172 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
173
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
174 ch_assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
175 .map {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
176 meta, fastq ->
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
177 meta.is_assembly = true
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
178 [meta, fastq]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
179 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
180 .set { ch_assembly }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
181
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
182 ch_assembly.ifEmpty { [ false, false ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
183
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
184 KRAKEN2_CLASSIFY ( ch_assembly )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
185
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
186 KRAKEN2_EXTRACT_CONTIGS (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
187 ch_assembly
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
188 .join( KRAKEN2_CLASSIFY.out.kraken_output ),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
189 params.kraken2_extract_bug
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
190 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
191
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
192 KRAKEN2_EXTRACT_CONTIGS
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
193 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
194 .asm_filtered_contigs
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
195 .map {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
196 meta, fastq ->
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
197 meta.organism = params.kraken2_extract_bug.split(/\s+/)[0].capitalize()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
198 meta.serotypefinder_db = params.serotypefinder_db
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
199 [meta, fastq]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
200 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
201 .set { ch_asm_filtered_contigs }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
202
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
203 SEROTYPEFINDER ( ch_asm_filtered_contigs )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
204
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
205 SEQSERO2 ( ch_asm_filtered_contigs )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
206
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
207 MLST ( ch_asm_filtered_contigs )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
208
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
209 ABRICATE_RUN (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
210 ch_asm_filtered_contigs,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
211 abricate_dbs
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
212 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
213
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
214 ABRICATE_RUN
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
215 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
216 .abricated
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
217 .map { meta, abres -> [ abricate_dbs, abres ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
218 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
219 .map { it -> tuple ( it[0], it[1].flatten() ) }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
220 .set { ch_abricated }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
221
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
222 ABRICATE_SUMMARY ( ch_abricated )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
223
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
224 CENTRIFUGE_CLASSIFY.out.kreport
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
225 .map { meta, kreport -> [ kreport ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
226 .flatten()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
227 .concat (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
228 KRAKEN2_CLASSIFY.out.kraken_report
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
229 .map { meta, kreport -> [ kreport ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
230 .flatten(),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
231 FASTQC.out.zip
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
232 .map { meta, zip -> [ zip ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
233 .flatten()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
234 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
235 .set { ch_mqc_classify }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
236
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
237 if (params.serotypefinder_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
238 SEROTYPEFINDER
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
239 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
240 .serotyped
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
241 .map { meta, tsv -> [ 'serotypefinder', tsv ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
242 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
243 .map { it -> tuple ( it[0], it[1].flatten() ) }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
244 .set { ch_mqc_custom_tbl }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
245 } else if (params.seqsero2_run) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
246 SEQSERO2
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
247 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
248 .serotyped
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
249 .map { meta, tsv -> [ 'seqsero2', tsv ] }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
250 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
251 .map { it -> tuple ( it[0], it[1].flatten() ) }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
252 .set { ch_mqc_custom_tbl }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
253 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
254
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
255 ch_mqc_custom_tbl
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
256 .concat (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
257 ABRICATE_SUMMARY.out.ncbiamrplus.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
258 ABRICATE_SUMMARY.out.resfinder.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
259 ABRICATE_SUMMARY.out.megares.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
260 ABRICATE_SUMMARY.out.argannot.map{ it -> tuple ( it[0], it[1] )},
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
261 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
262 .groupTuple(by: [0])
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
263 .map { it -> [ it[0], it[1].flatten() ]}
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
264 .set { ch_mqc_custom_tbl }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
265
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
266 TABLE_SUMMARY ( ch_mqc_custom_tbl )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
267
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
268 DUMP_SOFTWARE_VERSIONS (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
269 software_versions
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
270 .mix (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
271 FASTQC.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
272 CENTRIFUGE_CLASSIFY.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
273 CENTRIFUGE_PROCESS.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
274 SEQKIT_GREP.out.versions,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
275 KRAKEN2_CLASSIFY.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
276 KRAKEN2_EXTRACT_CONTIGS.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
277 SEROTYPEFINDER.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
278 SEQSERO2.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
279 MLST.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
280 ABRICATE_RUN.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
281 ABRICATE_SUMMARY.out.versions.ifEmpty(null),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
282 TABLE_SUMMARY.out.versions.ifEmpty(null)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
283 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
284 .unique()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
285 .collectFile(name: 'collected_versions.yml')
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
286 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
287
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
288 DUMP_SOFTWARE_VERSIONS
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
289 .out
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
290 .mqc_yml
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
291 .concat (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
292 ch_mqc_classify,
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
293 TABLE_SUMMARY.out.mqc_yml
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
294 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
295 .collect()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
296 .set { ch_multiqc }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
297
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
298 MULTIQC ( ch_multiqc )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
299 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
300
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
301 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
302 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
303 ON COMPLETE, SHOW GORY DETAILS OF ALL PARAMS WHICH WILL BE HELPFUL TO DEBUG
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
304 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
305 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
306
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
307 workflow.onComplete {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
308 if (workflow.success) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
309 // CREATE APPROPRIATE DIRECTORIES AND MOVE AS REQUESTED BY STAKEHOLDER(S)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
310 //
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
311 // Nextflow's .moveTo will error out if directories contain files and it
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
312 // would be complex to include logic to skip directories
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
313 //
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
314 def final_intermediate_dir = "${params.output}${params.fs}${params.pipeline}-steps"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
315 def final_results_dir = "${params.output}${params.fs}${params.pipeline}-results"
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
316 def kraken2_ext_contigs = file( "${final_intermediate_dir}${params.fs}kraken2_extract_contigs", type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
317 def final_intermediate = file( final_intermediate_dir, type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
318 def final_results = file( final_results_dir, type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
319 def pipeline_output = file( params.output, type: 'dir' )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
320
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
321 if ( !final_intermediate.exists() ) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
322 final_intermediate.mkdirs()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
323
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
324 FileHelper.visitFiles(Paths.get("${params.output}"), '*') {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
325 if ( !(it.name ==~ /^(${params.cfsanpipename}|multiqc|\.nextflow|${workflow.workDir.name}|${params.pipeline}).*/) ) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
326 FileHelper.movePath(
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
327 it, Paths.get( "${final_intermediate_dir}${params.fs}${it.name}" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
328 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
329 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
330 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
331 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
332
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
333 if ( kraken2_ext_contigs.exists() && !final_results.exists() ) {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
334 final_results.mkdirs()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
335
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
336 FileHelper.movePath(
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
337 Paths.get( "${final_intermediate_dir}${params.fs}kraken2_extract_contigs" ),
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
338 Paths.get( "${final_results_dir}${params.fs}kraken2_extract_contigs" )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
339 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
340 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
341
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
342 sendMail()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
343 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
344 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
345
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
346 workflow.onError {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
347 sendMail()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
348 }
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
349
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
350 /*
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
351 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
352 HELPER METHODS FOR CENTRIFLAKEN-HY WORKFLOW
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
353 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
354 */
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
355
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
356 def help() {
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
357
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
358 Map helptext = [:]
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
359
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
360 helptext.putAll (
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
361 fastqEntryPointHelp() +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
362 seqkitrmdupHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
363 kraken2Help(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
364 centrifugeHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
365 megahitHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
366 spadesHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
367 serotypefinderHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
368 seqsero2Help(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
369 mlstHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
370 abricateHelp(params).text +
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
371 wrapUpHelp()
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
372 )
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
373
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
374 return addPadding(helptext)
082e0091e813 planemo upload
galaxytrakr
parents:
diff changeset
375 }