kkonganti@11
|
1 // Define any required imports for this specific workflow
|
kkonganti@11
|
2 import java.nio.file.Paths
|
kkonganti@11
|
3 import nextflow.file.FileHelper
|
kkonganti@11
|
4
|
kkonganti@11
|
5 // Include any necessary methods
|
kkonganti@11
|
6 include { \
|
kkonganti@11
|
7 summaryOfParams; stopNow; fastqEntryPointHelp; sendMail; conciseHelp; \
|
kkonganti@11
|
8 addPadding; wrapUpHelp } from "${params.routines}"
|
kkonganti@11
|
9 include { dpubmlstpyHelp } from "${params.toolshelp}${params.fs}dpubmlstpy"
|
kkonganti@11
|
10 include { fastpHelp } from "${params.toolshelp}${params.fs}fastp"
|
kkonganti@11
|
11 include { mashscreenHelp } from "${params.toolshelp}${params.fs}mashscreen"
|
kkonganti@11
|
12 include { tuspyHelp } from "${params.toolshelp}${params.fs}tuspy"
|
kkonganti@11
|
13 include { spadesHelp } from "${params.toolshelp}${params.fs}spades"
|
kkonganti@11
|
14 include { shovillHelp } from "${params.toolshelp}${params.fs}shovill"
|
kkonganti@11
|
15 include { polypolishHelp } from "${params.toolshelp}${params.fs}polypolish"
|
kkonganti@11
|
16 include { mashtreeHelp } from "${params.toolshelp}${params.fs}mashtree"
|
kkonganti@11
|
17 include { quastHelp } from "${params.toolshelp}${params.fs}quast"
|
kkonganti@11
|
18 include { prodigalHelp } from "${params.toolshelp}${params.fs}prodigal"
|
kkonganti@11
|
19 include { prokkaHelp } from "${params.toolshelp}${params.fs}prokka"
|
kkonganti@11
|
20 include { pirateHelp } from "${params.toolshelp}${params.fs}pirate"
|
kkonganti@11
|
21 include { mlstHelp } from "${params.toolshelp}${params.fs}mlst"
|
kkonganti@11
|
22 include { abricateHelp } from "${params.toolshelp}${params.fs}abricate"
|
kkonganti@11
|
23
|
kkonganti@11
|
24 // Exit if help requested before any subworkflows
|
kkonganti@11
|
25 if (params.help) {
|
kkonganti@11
|
26 log.info help()
|
kkonganti@11
|
27 exit 0
|
kkonganti@11
|
28 }
|
kkonganti@11
|
29
|
kkonganti@11
|
30 // Include any necessary modules and subworkflows
|
kkonganti@11
|
31 include { PROCESS_FASTQ } from "${params.subworkflows}${params.fs}process_fastq"
|
kkonganti@11
|
32 include { PRODKA } from "${params.subworkflows}${params.fs}prodka"
|
kkonganti@11
|
33 include { DOWNLOAD_PUBMLST_SCHEME } from "${params.modules}${params.fs}download_pubmlst_scheme${params.fs}main"
|
kkonganti@11
|
34 include { DOWNLOAD_REF_GENOME } from "${params.modules}${params.fs}download_ref_genome${params.fs}main"
|
kkonganti@11
|
35 include { FASTP } from "${params.modules}${params.fs}fastp${params.fs}main"
|
kkonganti@11
|
36 include { MASH_SCREEN } from "${params.modules}${params.fs}mash${params.fs}screen${params.fs}main"
|
kkonganti@11
|
37 include { TOP_UNIQUE_SEROVARS } from "${params.modules}${params.fs}top_unique_serovars${params.fs}main"
|
kkonganti@11
|
38 include { CAT_UNIQUE } from "${params.modules}${params.fs}cat${params.fs}unique${params.fs}main"
|
kkonganti@11
|
39 include { SPADES_ASSEMBLE } from "${params.modules}${params.fs}spades${params.fs}assemble${params.fs}main"
|
kkonganti@11
|
40 include { SHOVILL } from "${params.modules}${params.fs}shovill${params.fs}main"
|
kkonganti@11
|
41 include { BWA_IDX_MEM } from "${params.modules}${params.fs}custom${params.fs}bwa_idx_mem${params.fs}main"
|
kkonganti@11
|
42 include { POLYPOLISH } from "${params.modules}${params.fs}polypolish${params.fs}main"
|
kkonganti@11
|
43 include { QUAST } from "${params.modules}${params.fs}quast${params.fs}main"
|
kkonganti@11
|
44 include { RMLST_POST } from "${params.modules}${params.fs}rmlst${params.fs}main"
|
kkonganti@11
|
45 include { PIRATE } from "${params.modules}${params.fs}pirate${params.fs}main"
|
kkonganti@11
|
46 include { MASHTREE } from "${params.modules}${params.fs}mashtree${params.fs}main"
|
kkonganti@11
|
47 include { UPLOAD_MICROREACT } from "${params.modules}${params.fs}upload_microreact${params.fs}main"
|
kkonganti@11
|
48 include { MLST } from "${params.modules}${params.fs}mlst${params.fs}main"
|
kkonganti@11
|
49 include { ABRICATE_RUN } from "${params.modules}${params.fs}abricate${params.fs}run${params.fs}main"
|
kkonganti@11
|
50 include { ABRICATE_SUMMARY } from "${params.modules}${params.fs}abricate${params.fs}summary${params.fs}main"
|
kkonganti@11
|
51 include { TABLE_SUMMARY } from "${params.modules}${params.fs}cat${params.fs}tables${params.fs}main"
|
kkonganti@11
|
52 include { DUMP_SOFTWARE_VERSIONS } from "${params.modules}${params.fs}custom${params.fs}dump_software_versions${params.fs}main"
|
kkonganti@11
|
53 include { MULTIQC } from "${params.modules}${params.fs}multiqc${params.fs}main"
|
kkonganti@11
|
54
|
kkonganti@11
|
55 /*
|
kkonganti@11
|
56 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
57 INPUTS AND ANY CHECKS FOR THE CRONOLOGY WORKFLOW
|
kkonganti@11
|
58 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
59 */
|
kkonganti@11
|
60 def spades_custom_hmm = (params.spades_hmm ? file ( "${params.spades_hmm}" ) : false)
|
kkonganti@11
|
61 def reads_platform = 0
|
kkonganti@11
|
62 def abricate_dbs = [ 'ncbiamrplus', 'resfinder', 'megares', 'argannot' ]
|
kkonganti@11
|
63
|
kkonganti@11
|
64 reads_platform += (params.input ? 1 : 0)
|
kkonganti@11
|
65
|
kkonganti@11
|
66 if (params.upload_microreact) {
|
kkonganti@11
|
67 checkMetadataExists(params.microreact_api_key, 'Microreact API Key')
|
kkonganti@11
|
68 }
|
kkonganti@11
|
69
|
kkonganti@11
|
70 if (spades_custom_hmm && !spades_custom_hmm.exists()) {
|
kkonganti@11
|
71 stopNow("Please check if the following SPAdes' custom HMM directory\n" +
|
kkonganti@11
|
72 "path is valid:\n${params.spades_hmm}\nCannot proceed further!")
|
kkonganti@11
|
73 }
|
kkonganti@11
|
74
|
kkonganti@11
|
75 if (reads_platform < 1 || reads_platform == 0) {
|
kkonganti@11
|
76 stopNow("Please mention at least one absolute path to input folder which contains\n" +
|
kkonganti@11
|
77 "FASTQ files sequenced using the --input option.\n" +
|
kkonganti@11
|
78 "Ex: --input (Illumina or Generic short reads in FASTQ format)")
|
kkonganti@11
|
79 }
|
kkonganti@11
|
80
|
kkonganti@11
|
81 /*
|
kkonganti@11
|
82 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
83 RUN THE CRONOLOGY WORKFLOW
|
kkonganti@11
|
84 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
85 */
|
kkonganti@11
|
86
|
kkonganti@11
|
87 workflow CRONOLOGY {
|
kkonganti@11
|
88 main:
|
kkonganti@11
|
89 ch_mqc_custom_tbl = Channel.empty()
|
kkonganti@11
|
90 ch_dummy = Channel.fromPath("${params.dummyfile}")
|
kkonganti@11
|
91 ch_dummy2 = Channel.fromPath("${params.dummyfile2}")
|
kkonganti@11
|
92
|
kkonganti@11
|
93 log.info summaryOfParams()
|
kkonganti@11
|
94
|
kkonganti@11
|
95 PROCESS_FASTQ()
|
kkonganti@11
|
96
|
kkonganti@11
|
97 PROCESS_FASTQ.out.versions
|
kkonganti@11
|
98 .set { software_versions }
|
kkonganti@11
|
99
|
kkonganti@11
|
100 PROCESS_FASTQ.out.processed_reads
|
kkonganti@11
|
101 .map { meta, fastq ->
|
kkonganti@11
|
102 meta.sequence_sketch = (params.mash_sketch ?: null)
|
kkonganti@11
|
103 [meta, fastq]
|
kkonganti@11
|
104 }
|
kkonganti@11
|
105 .set { ch_processed_reads }
|
kkonganti@11
|
106
|
kkonganti@11
|
107 DOWNLOAD_PUBMLST_SCHEME( params.dpubmlstpy_org ?: null )
|
kkonganti@11
|
108
|
kkonganti@11
|
109 DOWNLOAD_REF_GENOME(
|
kkonganti@11
|
110 (params.ref_acc ? ['id': params.ref_acc] : null)
|
kkonganti@11
|
111 )
|
kkonganti@11
|
112
|
kkonganti@11
|
113 FASTP( ch_processed_reads )
|
kkonganti@11
|
114
|
kkonganti@11
|
115 FASTP.out.passed_reads
|
kkonganti@11
|
116 .set { ch_processed_reads }
|
kkonganti@11
|
117
|
kkonganti@11
|
118 FASTP.out.json
|
kkonganti@11
|
119 .map { meta, json -> [ json ] }
|
kkonganti@11
|
120 .collect()
|
kkonganti@11
|
121 .set { ch_multiqc }
|
kkonganti@11
|
122
|
kkonganti@11
|
123 MASH_SCREEN( ch_processed_reads )
|
kkonganti@11
|
124
|
kkonganti@11
|
125 TOP_UNIQUE_SEROVARS( MASH_SCREEN.out.screened )
|
kkonganti@11
|
126
|
kkonganti@11
|
127 TOP_UNIQUE_SEROVARS.out.tsv
|
kkonganti@11
|
128 .map { meta, tsv -> tsv }
|
kkonganti@11
|
129 .collectFile(
|
kkonganti@11
|
130 name: 'iTOL_metadata_w_dups.txt',
|
kkonganti@11
|
131 keepHeader: true,
|
kkonganti@11
|
132 skip: 4,
|
kkonganti@11
|
133 sort: true
|
kkonganti@11
|
134 )
|
kkonganti@11
|
135 .map { file ->
|
kkonganti@11
|
136 def meta = [:]
|
kkonganti@11
|
137 meta.id = 'Unique iTOL Metadata'
|
kkonganti@11
|
138 meta.skip_header = 4
|
kkonganti@11
|
139 [meta, file]
|
kkonganti@11
|
140 }
|
kkonganti@11
|
141 .concat(
|
kkonganti@11
|
142 TOP_UNIQUE_SEROVARS.out.popup
|
kkonganti@11
|
143 .map { meta, popup -> popup }
|
kkonganti@11
|
144 .collectFile(
|
kkonganti@11
|
145 name: 'iTOL_2_NCBI_Pathogens_w_dups.txt',
|
kkonganti@11
|
146 keepHeader: true,
|
kkonganti@11
|
147 skip: 3,
|
kkonganti@11
|
148 sort: true
|
kkonganti@11
|
149 )
|
kkonganti@11
|
150 .map { file ->
|
kkonganti@11
|
151 def meta = [:]
|
kkonganti@11
|
152 meta.id = 'Unique iTOL Popup'
|
kkonganti@11
|
153 meta.skip_header = 3
|
kkonganti@11
|
154 [meta, file]
|
kkonganti@11
|
155 }
|
kkonganti@11
|
156 )
|
kkonganti@11
|
157 .set { ch_uniq }
|
kkonganti@11
|
158
|
kkonganti@11
|
159 TOP_UNIQUE_SEROVARS.out.accessions
|
kkonganti@11
|
160 .map { meta, acc -> acc }
|
kkonganti@11
|
161 .splitText()
|
kkonganti@11
|
162 .collect()
|
kkonganti@11
|
163 .flatten()
|
kkonganti@11
|
164 .unique()
|
kkonganti@11
|
165 .collectFile(name: 'tree_genomes.txt')
|
kkonganti@11
|
166 .map { genomes -> [ [id: 'hitsTree'], genomes ]}
|
kkonganti@11
|
167 .set { ch_genomes_fofn }
|
kkonganti@11
|
168
|
kkonganti@11
|
169 CAT_UNIQUE( ch_uniq )
|
kkonganti@11
|
170
|
kkonganti@11
|
171 if (params.fq_single_end) {
|
kkonganti@11
|
172 SPADES_ASSEMBLE(
|
kkonganti@11
|
173 ch_processed_reads
|
kkonganti@11
|
174 .combine(ch_dummy)
|
kkonganti@11
|
175 .combine(ch_dummy2)
|
kkonganti@11
|
176 )
|
kkonganti@11
|
177
|
kkonganti@11
|
178 SPADES_ASSEMBLE.out.assembly
|
kkonganti@11
|
179 .set{ ch_assembly }
|
kkonganti@11
|
180
|
kkonganti@11
|
181 software_versions
|
kkonganti@11
|
182 .mix( SPADES_ASSEMBLE.out.versions.ifEmpty(null) )
|
kkonganti@11
|
183 .set { software_versions }
|
kkonganti@11
|
184 } else {
|
kkonganti@11
|
185 SHOVILL( ch_processed_reads )
|
kkonganti@11
|
186
|
kkonganti@11
|
187 SHOVILL.out.contigs
|
kkonganti@11
|
188 .set { ch_assembly }
|
kkonganti@11
|
189
|
kkonganti@11
|
190 software_versions
|
kkonganti@11
|
191 .mix( SHOVILL.out.versions.ifEmpty(null) )
|
kkonganti@11
|
192 .set { software_versions }
|
kkonganti@11
|
193 }
|
kkonganti@11
|
194
|
kkonganti@11
|
195 if (params.polypolish_run) {
|
kkonganti@11
|
196 BWA_IDX_MEM(
|
kkonganti@11
|
197 ch_assembly
|
kkonganti@11
|
198 .join( ch_processed_reads )
|
kkonganti@11
|
199 )
|
kkonganti@11
|
200
|
kkonganti@11
|
201 POLYPOLISH(
|
kkonganti@11
|
202 ch_assembly
|
kkonganti@11
|
203 .join( BWA_IDX_MEM.out.aligned_sam )
|
kkonganti@11
|
204 )
|
kkonganti@11
|
205
|
kkonganti@11
|
206 POLYPOLISH.out.polished
|
kkonganti@11
|
207 .set { ch_assembly }
|
kkonganti@11
|
208
|
kkonganti@11
|
209 software_versions
|
kkonganti@11
|
210 .mix(
|
kkonganti@11
|
211 BWA_IDX_MEM.out.versions,
|
kkonganti@11
|
212 POLYPOLISH.out.versions
|
kkonganti@11
|
213 )
|
kkonganti@11
|
214 .set { software_versions }
|
kkonganti@11
|
215 }
|
kkonganti@11
|
216
|
kkonganti@11
|
217 ch_assembly
|
kkonganti@11
|
218 .combine( DOWNLOAD_REF_GENOME.out.fasta )
|
kkonganti@11
|
219 .combine( DOWNLOAD_REF_GENOME.out.gff )
|
kkonganti@11
|
220 .multiMap { meta, consensus, fasta, gff ->
|
kkonganti@11
|
221 sample_fa: consensus
|
kkonganti@11
|
222 polished: [meta, consensus]
|
kkonganti@11
|
223 ref_fasta: [meta, fasta]
|
kkonganti@11
|
224 ref_gff: [meta, gff]
|
kkonganti@11
|
225 }
|
kkonganti@11
|
226 .set { ch_quast }
|
kkonganti@11
|
227
|
kkonganti@11
|
228 MASHTREE(
|
kkonganti@11
|
229 ch_genomes_fofn,
|
kkonganti@11
|
230 DOWNLOAD_REF_GENOME.out.fasta
|
kkonganti@11
|
231 .concat( ch_quast.sample_fa )
|
kkonganti@11
|
232 .collect()
|
kkonganti@11
|
233 )
|
kkonganti@11
|
234
|
kkonganti@11
|
235 if (params.upload_microreact) {
|
kkonganti@11
|
236 UPLOAD_MICROREACT(
|
kkonganti@11
|
237 MASHTREE.out.nwk
|
kkonganti@11
|
238 .map { meta, nwk ->
|
kkonganti@11
|
239 nwk
|
kkonganti@11
|
240 },
|
kkonganti@11
|
241 CAT_UNIQUE.out.csv
|
kkonganti@11
|
242 )
|
kkonganti@11
|
243
|
kkonganti@11
|
244 software_versions
|
kkonganti@11
|
245 .mix(
|
kkonganti@11
|
246 UPLOAD_MICROREACT.out.versions
|
kkonganti@11
|
247 )
|
kkonganti@11
|
248 .set { software_versions }
|
kkonganti@11
|
249 }
|
kkonganti@11
|
250
|
kkonganti@11
|
251 PRODKA(
|
kkonganti@11
|
252 ch_quast.ref_fasta,
|
kkonganti@11
|
253 ch_quast.polished
|
kkonganti@11
|
254 )
|
kkonganti@11
|
255
|
kkonganti@11
|
256 RMLST_POST( ch_assembly )
|
kkonganti@11
|
257
|
kkonganti@11
|
258 MLST (
|
kkonganti@11
|
259 ch_assembly
|
kkonganti@11
|
260 .combine( DOWNLOAD_PUBMLST_SCHEME.out.pubmlst_dir )
|
kkonganti@11
|
261 )
|
kkonganti@11
|
262
|
kkonganti@11
|
263 QUAST(
|
kkonganti@11
|
264 ch_quast.polished,
|
kkonganti@11
|
265 ch_quast.ref_fasta,
|
kkonganti@11
|
266 ch_quast.ref_gff
|
kkonganti@11
|
267 )
|
kkonganti@11
|
268
|
kkonganti@11
|
269 if (params.pirate_run) {
|
kkonganti@11
|
270 PIRATE(
|
kkonganti@11
|
271 PRODKA.out.prokka_gff
|
kkonganti@11
|
272 .map { meta, gff ->
|
kkonganti@11
|
273 tuple( [id: 'Predicted Genes'], gff )
|
kkonganti@11
|
274 }
|
kkonganti@11
|
275 .groupTuple(by: [0])
|
kkonganti@11
|
276 )
|
kkonganti@11
|
277
|
kkonganti@11
|
278 software_versions
|
kkonganti@11
|
279 .mix( PIRATE.out.versions )
|
kkonganti@11
|
280 .set { software_versions }
|
kkonganti@11
|
281 }
|
kkonganti@11
|
282
|
kkonganti@11
|
283 RMLST_POST.out.tsv
|
kkonganti@11
|
284 .map { meta, tsv -> [ 'rmlst', tsv] }
|
kkonganti@11
|
285 .groupTuple(by: [0])
|
kkonganti@11
|
286 .map { it -> tuple ( it[0], it[1].flatten() ) }
|
kkonganti@11
|
287 .set { ch_mqc_rmlst_tbl }
|
kkonganti@11
|
288
|
kkonganti@11
|
289 MLST.out.tsv
|
kkonganti@11
|
290 .map { meta, tsv -> [ 'mlst', tsv] }
|
kkonganti@11
|
291 .groupTuple(by: [0])
|
kkonganti@11
|
292 .map { it -> tuple ( it[0], it[1].flatten() ) }
|
kkonganti@11
|
293 .set { ch_mqc_custom_tbl }
|
kkonganti@11
|
294
|
kkonganti@11
|
295 ABRICATE_RUN ( ch_assembly, abricate_dbs )
|
kkonganti@11
|
296
|
kkonganti@11
|
297 ABRICATE_RUN.out.abricated
|
kkonganti@11
|
298 .map { meta, abres -> [ abricate_dbs, abres ] }
|
kkonganti@11
|
299 .groupTuple(by: [0])
|
kkonganti@11
|
300 .map { it -> tuple ( it[0], it[1].flatten() ) }
|
kkonganti@11
|
301 .set { ch_abricated }
|
kkonganti@11
|
302
|
kkonganti@11
|
303 ABRICATE_SUMMARY ( ch_abricated )
|
kkonganti@11
|
304
|
kkonganti@11
|
305 ch_mqc_custom_tbl
|
kkonganti@11
|
306 .concat (
|
kkonganti@11
|
307 ch_mqc_rmlst_tbl,
|
kkonganti@11
|
308 ABRICATE_SUMMARY.out.ncbiamrplus.map { it -> tuple ( it[0], it[1] )},
|
kkonganti@11
|
309 ABRICATE_SUMMARY.out.resfinder.map { it -> tuple ( it[0], it[1] )},
|
kkonganti@11
|
310 ABRICATE_SUMMARY.out.megares.map { it -> tuple ( it[0], it[1] )},
|
kkonganti@11
|
311 ABRICATE_SUMMARY.out.argannot.map { it -> tuple ( it[0], it[1] )},
|
kkonganti@11
|
312 )
|
kkonganti@11
|
313 .groupTuple(by: [0])
|
kkonganti@11
|
314 .map { it -> [ it[0], it[1].flatten() ]}
|
kkonganti@11
|
315 .set { ch_mqc_custom_tbl }
|
kkonganti@11
|
316
|
kkonganti@11
|
317 TABLE_SUMMARY ( ch_mqc_custom_tbl )
|
kkonganti@11
|
318
|
kkonganti@11
|
319 DUMP_SOFTWARE_VERSIONS (
|
kkonganti@11
|
320 software_versions
|
kkonganti@11
|
321 .mix(
|
kkonganti@11
|
322 DOWNLOAD_PUBMLST_SCHEME.out.versions,
|
kkonganti@11
|
323 DOWNLOAD_REF_GENOME.out.versions,
|
kkonganti@11
|
324 FASTP.out.versions,
|
kkonganti@11
|
325 MASH_SCREEN.out.versions,
|
kkonganti@11
|
326 TOP_UNIQUE_SEROVARS.out.versions,
|
kkonganti@11
|
327 CAT_UNIQUE.out.versions,
|
kkonganti@11
|
328 MASHTREE.out.versions,
|
kkonganti@11
|
329 POLYPOLISH.out.versions,
|
kkonganti@11
|
330 QUAST.out.versions,
|
kkonganti@11
|
331 PRODKA.out.versions,
|
kkonganti@11
|
332 RMLST_POST.out.versions,
|
kkonganti@11
|
333 MLST.out.versions,
|
kkonganti@11
|
334 ABRICATE_RUN.out.versions,
|
kkonganti@11
|
335 ABRICATE_SUMMARY.out.versions,
|
kkonganti@11
|
336 TABLE_SUMMARY.out.versions
|
kkonganti@11
|
337 )
|
kkonganti@11
|
338 .unique()
|
kkonganti@11
|
339 .collectFile(name: 'collected_versions.yml')
|
kkonganti@11
|
340 )
|
kkonganti@11
|
341
|
kkonganti@11
|
342 DUMP_SOFTWARE_VERSIONS.out.mqc_yml
|
kkonganti@11
|
343 .concat (
|
kkonganti@11
|
344 ch_multiqc,
|
kkonganti@11
|
345 TABLE_SUMMARY.out.mqc_yml,
|
kkonganti@11
|
346 PRODKA.out.prokka_txt.map { meta, txt -> txt },
|
kkonganti@11
|
347 QUAST.out.results.map { meta, res -> res }
|
kkonganti@11
|
348 )
|
kkonganti@11
|
349 .collect()
|
kkonganti@11
|
350 .set { ch_multiqc }
|
kkonganti@11
|
351
|
kkonganti@11
|
352 MULTIQC( ch_multiqc )
|
kkonganti@11
|
353 }
|
kkonganti@11
|
354
|
kkonganti@11
|
355 /*
|
kkonganti@11
|
356 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
357 ON COMPLETE, SHOW GORY DETAILS OF ALL PARAMS WHICH WILL BE HELPFUL TO DEBUG
|
kkonganti@11
|
358 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
359 */
|
kkonganti@11
|
360
|
kkonganti@11
|
361 workflow.onComplete {
|
kkonganti@11
|
362 if (workflow.success) {
|
kkonganti@11
|
363 sendMail()
|
kkonganti@11
|
364 }
|
kkonganti@11
|
365 }
|
kkonganti@11
|
366
|
kkonganti@11
|
367 workflow.onError {
|
kkonganti@11
|
368 sendMail()
|
kkonganti@11
|
369 }
|
kkonganti@11
|
370
|
kkonganti@11
|
371 /*
|
kkonganti@11
|
372 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
373 METHOD TO CHECK FILE EXISTENCE
|
kkonganti@11
|
374 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
375 */
|
kkonganti@11
|
376
|
kkonganti@11
|
377 def checkMetadataExists(file_path, msg) {
|
kkonganti@11
|
378 file_path_obj = file( file_path )
|
kkonganti@11
|
379
|
kkonganti@11
|
380 if (msg.toString().find(/(?i)KMA/)) {
|
kkonganti@11
|
381 if (!file_path_obj.parent.exists() || file_path_obj.parent.size() == 0) {
|
kkonganti@11
|
382 stopNow("Please check if your ${msg}\n" +
|
kkonganti@11
|
383 "[ ${file_path} ]\nexists and that the files are not of size 0.")
|
kkonganti@11
|
384 }
|
kkonganti@11
|
385 }
|
kkonganti@11
|
386 else if (!file_path_obj.exists() || file_path_obj.size() == 0) {
|
kkonganti@11
|
387 stopNow("Please check if your ${msg} file\n" +
|
kkonganti@11
|
388 "[ ${file_path} ]\nexists and is not of size 0.")
|
kkonganti@11
|
389 }
|
kkonganti@11
|
390 }
|
kkonganti@11
|
391
|
kkonganti@11
|
392 /*
|
kkonganti@11
|
393 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
394 HELP TEXT METHODS FOR CRONOLOGY WORKFLOW
|
kkonganti@11
|
395 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
kkonganti@11
|
396 */
|
kkonganti@11
|
397
|
kkonganti@11
|
398 def help() {
|
kkonganti@11
|
399
|
kkonganti@11
|
400 Map helptext = [:]
|
kkonganti@11
|
401 Map nH = [:]
|
kkonganti@11
|
402 Map fastpAdapterHelp = [:]
|
kkonganti@11
|
403 def uHelp = (params.help.getClass().toString() =~ /String/ ? params.help.tokenize(',').join(' ') : '')
|
kkonganti@11
|
404
|
kkonganti@11
|
405 Map defaultHelp = [
|
kkonganti@11
|
406 '--help dpubmlstpy' : 'Show dl_pubmlst_profiles_and_schemes.py CLI options',
|
kkonganti@11
|
407 '--help fastp' : 'Show fastp CLI options',
|
kkonganti@11
|
408 '--help spades' : 'Show spades CLI options',
|
kkonganti@11
|
409 '--help shovill' : 'Show shovill CLI options',
|
kkonganti@11
|
410 '--help polypolish' : 'Show polypolish CLI options',
|
kkonganti@11
|
411 '--help quast' : 'Show quast.py CLI options',
|
kkonganti@11
|
412 '--help prodigal' : 'Show prodigal CLI options',
|
kkonganti@11
|
413 '--help prokka' : 'Show prokka CLI options',
|
kkonganti@11
|
414 '--help pirate' : 'Show priate CLI options',
|
kkonganti@11
|
415 '--help mlst' : 'Show mlst CLI options',
|
kkonganti@11
|
416 '--help mash' : 'Show mash `screen` CLI options',
|
kkonganti@11
|
417 '--help tree' : 'Show mashtree CLI options',
|
kkonganti@11
|
418 '--help abricate' : 'Show abricate CLI options\n'
|
kkonganti@11
|
419 ]
|
kkonganti@11
|
420
|
kkonganti@11
|
421 fastpAdapterHelp['--fastp_use_custom_adapaters'] = "Use custom adapter FASTA with fastp on top of " +
|
kkonganti@11
|
422 "built-in adapter sequence auto-detection. Enabling this option will attempt to find and remove " +
|
kkonganti@11
|
423 "all possible Illumina adapter and primer sequences but will make the workflow run slow. " +
|
kkonganti@11
|
424 "Default: ${params.fastp_use_custom_adapters}"
|
kkonganti@11
|
425
|
kkonganti@11
|
426 if (params.help.getClass().toString() =~ /Boolean/ || uHelp.size() == 0) {
|
kkonganti@11
|
427 println conciseHelp('fastp,polypolish')
|
kkonganti@11
|
428 helptext.putAll(defaultHelp)
|
kkonganti@11
|
429 } else {
|
kkonganti@11
|
430 params.help.tokenize(',').each { h ->
|
kkonganti@11
|
431 if (defaultHelp.keySet().findAll{ it =~ /(?i)\b${h}\b/ }.size() == 0) {
|
kkonganti@11
|
432 println conciseHelp('fastp,polypolish')
|
kkonganti@11
|
433 stopNow("Tool [ ${h} ] is not a part of ${params.pipeline} pipeline.")
|
kkonganti@11
|
434 }
|
kkonganti@11
|
435 }
|
kkonganti@11
|
436
|
kkonganti@11
|
437 helptext.putAll(
|
kkonganti@11
|
438 fastqEntryPointHelp() +
|
kkonganti@11
|
439 (uHelp =~ /(?i)\bdpubmlstpy/ ? dpubmlstpyHelp(params).text : nH) +
|
kkonganti@11
|
440 (uHelp =~ /(?i)\bfastp/ ? fastpHelp(params).text + fastpAdapterHelp : nH) +
|
kkonganti@11
|
441 (uHelp =~ /(?i)\bmash/ ? mashscreenHelp(params).text : nH) +
|
kkonganti@11
|
442 (uHelp =~ /(?i)\btuspy/ ? tuspyHelp(params).text : nH) +
|
kkonganti@11
|
443 (uHelp =~ /(?i)\bspades/ ? spadesHelp(params).text : nH) +
|
kkonganti@11
|
444 (uHelp =~ /(?i)\bshovill/ ? shovillHelp(params).text : nH) +
|
kkonganti@11
|
445 (uHelp =~ /(?i)\bpolypolish/ ? polypolishHelp(params).text : nH) +
|
kkonganti@11
|
446 (uHelp =~ /(?i)\bquast/ ? quastHelp(params).text : nH) +
|
kkonganti@11
|
447 (uHelp =~ /(?i)\bprodigal/ ? prodigalHelp(params).text : nH) +
|
kkonganti@11
|
448 (uHelp =~ /(?i)\bprokka/ ? prokkaHelp(params).text : nH) +
|
kkonganti@11
|
449 (uHelp =~ /(?i)\bpirate/ ? pirateHelp(params).text : nH) +
|
kkonganti@11
|
450 (uHelp =~ /(?i)\bmlst/ ? mlstHelp(params).text : nH) +
|
kkonganti@11
|
451 (uHelp =~ /(?i)\btree/ ? mashtreeHelp(params).text : nH) +
|
kkonganti@11
|
452 (uHelp =~ /(?i)\babricate/ ? abricateHelp(params).text : nH) +
|
kkonganti@11
|
453 wrapUpHelp()
|
kkonganti@11
|
454 )
|
kkonganti@11
|
455 }
|
kkonganti@11
|
456
|
kkonganti@11
|
457 return addPadding(helptext)
|
kkonganti@11
|
458 } |