comparison multiqc.xml @ 0:3bad335ccea9 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/multiqc commit 264fd61d39f252ebb81731bf6cd3349fdb39b306
author iuc
date Tue, 24 Oct 2017 06:29:59 -0400
parents
children 6999173dc0c2
comparison
equal deleted inserted replaced
-1:000000000000 0:3bad335ccea9
1 <tool id="multiqc" name="MultiQC" version="@WRAPPER_VERSION@.0">
2 <description>aggregate results from bioinformatics analyses into a single report</description>
3 <macros>
4 <token name="@WRAPPER_VERSION@">1.2</token>
5 <token name="@LN_FILES@">
6 <![CDATA[
7 #for $file in $repeat.software_cond.input
8 grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
9 ln -s '$file' '$software_dir/${file.element_identifier}' &&
10 #end for
11 ]]></token>
12 <token name="@LN_2_FILES@">
13 <![CDATA[
14 #for $file in $repeat2.input:
15 grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
16 ln -s '$file' '$software_dir/${repeat2.type}_${j}_${file.element_identifier}' &&
17 #end for
18 ]]></token>
19 <token name="@LN_3_FILES@">
20 <![CDATA[
21 #for $file in $repeat2.type.input:
22 grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
23 ln -s '$file' '$repeat_dir/${file.element_identifier}' &&
24 #end for
25 ]]></token>
26 </macros>
27 <requirements>
28 <requirement type="package" version="@WRAPPER_VERSION@">multiqc</requirement>
29 </requirements>
30 <version_command>mulitqc --version</version_command>
31 <command detect_errors="aggressive">
32 <![CDATA[
33 die() { echo "$@" 1>&2 ; exit 1; } &&
34
35 mkdir multiqc_WDir &&
36
37 #set $configfile="F"
38
39 #for $i, $repeat in enumerate( $results )
40 #set software_dir = 'multiqc_WDir/' + str($repeat.software_cond.software) + '_' + str($i)
41 mkdir $software_dir &&
42
43 #if str($repeat.software_cond.software) == "bamtools"
44 #set $pattern = "Stats for BAM file(s)"
45 @LN_FILES@
46 #elif str($repeat.software_cond.software) == "bcftools"
47 #set $pattern = "This file was produced by bcftools stats"
48 @LN_FILES@
49 #elif str($repeat.software_cond.software) == "bismark"
50 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
51 #set file_prefix = $software_dir + '/' + str($repeat2.type) + '_' + str($j)
52 #if str($repeat2.type) == "align"
53 #for $file in $repeat2.input
54 ln -s '$file' '${file_prefix}_${file.element_identifier}_SE_report.txt' &&
55 #end for
56 #elif str($repeat2.type) == "dedup"
57 #for $file in $repeat2.input
58 ln -s '$file' '${file_prefix}_${file.element_identifier}_deduplication_report.txt' &&
59 #end for
60 #elif str($repeat2.type) == "meth_extract"
61 #for $file in $repeat2.input
62 ln -s '$file' '${file_prefix}_${file.element_identifier}_splitting_report.txt' &&
63 #end for
64 #elif str($repeat2.type) == "m_bias"
65 #for $file in $repeat2.input
66 ln -s '$file' '${file_prefix}_${file.element_identifier}_M-bias.txt' &&
67 #end for
68 #elif str($repeat2.type) == "bam2nuc"
69 #for $file in $repeat2.input
70 ln -s '$file' '${file_prefix}_${file.element_identifier}.nucleotide_stats.txt' &&
71 #end for
72 #end if
73 #end for
74 #elif str($repeat.software_cond.software) == "bowtie2"
75 #set $pattern = "reads; of these:"
76 @LN_FILES@
77 #elif str($repeat.software_cond.software) == "busco"
78 ## Searches for files "short_summary_[samplename].txt"
79 #for $file in $repeat.software_cond.input
80 ln -s '$file' '$software_dir/short_summary_${file.element_identifier}' &&
81 #end for
82 #elif str($repeat.software_cond.software) == "cutadapt"
83 #set $pattern = "This is cutadapt"
84 #for $file in $repeat.software_cond.input
85 #set file_path = $software_dir + '/' + str($file.element_identifier) + '.txt'
86 ln -s '$file' '$file_path' &&
87 ## replace header for old cutadapt release
88 sed -i.old 's/You are running/This is/' '$file_path' &&
89 grep -q "$pattern" '$file_path' || die "'$pattern' or 'You are running cutadapt' not found in the file" &&
90 #end for
91 #elif str($repeat.software_cond.software) == "fastqc"
92 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
93 #set repeat_dir = $software_dir + '/' + str($repeat2.type) + '_' + str($j)
94 mkdir '$repeat_dir' &&
95 #if str($repeat2.type) == "data"
96 #for $k, $file in enumerate($repeat2.input)
97 #set file_dir = $repeat_dir + '/file_' + str($k)
98 mkdir '$file_dir' &&
99 ln -s '$file' '$file_dir/fastqc_data.txt' &&
100 #end for
101 #elif str($repeat2.type) == "theoretical_gc"
102 #for $file in $repeat2.input
103 ln -s '$file' '$repeat_dir/${file.element_identifier}_fastqc_theoretical_gc' &&
104 #end for
105 #end if
106 #end for
107 #elif str($repeat.software_cond.software) == "featureCounts"
108 #for $file in $repeat.software_cond.input
109 #set file_prefix = $software_dir + '/' + str($file.element_identifier)
110 #if $file.metadata.column_names and $file.metadata.column_names.find(',') != -1
111 echo '$file.metadata.column_names.replace(',','\t').replace('__ob__u','').replace('u__sq__','').replace('__sq__','').replace('__cb__','')' >> '$file_prefix.summary' &&
112 cat '$file' >> '${file_prefix}.summary' &&
113 #else
114 ln -s '$file' '${file_prefix}.summary' &&
115 #end if
116 #end for
117 #elif str($repeat.software_cond.software) == "flexbar"
118 #set $pattern = "flexible barcode and adapter removal"
119 @LN_FILES@
120 #elif str($repeat.software_cond.software) == "gatk"
121 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
122 #if str($repeat2.type) == "varianteval"
123 #set $pattern = "#:GATKTable:TiTvVariantEvaluator"
124 @LN_2_FILES@
125 #elif str($repeat2.type) == "base_recalibrator"
126 #set $pattern = "#:GATKTable:Arguments:Recalibration"
127 @LN_2_FILES@
128 #end if
129 #end for
130 #elif str($repeat.software_cond.software) == "hicup"
131 #for $file in $repeat.software_cond.input
132 ln -s '${file}' '$software_dir/HiCUP_summary_report_${file.element_identifier}' &&
133 #end for
134 #elif str($repeat.software_cond.software) == "hisat2"
135 #set $pattern = "HISAT2 summary stats:"
136 @LN_FILES@
137 #elif str($repeat.software_cond.software) == "htseq"
138 #set $pattern = "__too_low_aQual"
139 @LN_FILES@
140 #elif str($repeat.software_cond.software) == "kallisto"
141 #set $pattern = "finding pseudoalignments for the reads"
142 @LN_FILES@
143 #elif str($repeat.software_cond.software) == "picard"
144 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
145 #if str($repeat2.type) == "alignment_metrics"
146 #set $pattern = "picard.analysis.AlignmentSummaryMetrics"
147 @LN_2_FILES@
148 #elif str($repeat2.type) == "basedistributionbycycle"
149 #set $pattern = "picard.analysis.BaseDistributionByCycleMetrics"
150 @LN_2_FILES@
151 #elif str($repeat2.type) == "gcbias"
152 #set $pattern = "picard.analysis.GcBias"
153 @LN_2_FILES@
154 #elif str($repeat2.type) == "hsmetrics"
155 #set $pattern = "picard.analysis.directed.HsMetrics"
156 @LN_2_FILES@
157 #elif str($repeat2.type) == "insertsize"
158 #set $pattern = "picard.analysis.InsertSizeMetrics"
159 @LN_2_FILES@
160 #elif str($repeat2.type) == "markdups"
161 #set $pattern = "picard.sam.DuplicationMetrics"
162 @LN_2_FILES@
163 #elif str($repeat2.type) == "oxogmetrics"
164 #set $pattern = "picard.analysis.CollectOxoGMetrics"
165 @LN_2_FILES@
166 #elif str($repeat2.type) == "pcr_metrics"
167 #set $pattern = "picard.analysis.directed.TargetedPcrMetrics"
168 @LN_2_FILES@
169 #elif str($repeat2.type) == "rnaseqmetrics"
170 #set $pattern = "Collect"
171 @LN_2_FILES@
172 #elif str($repeat2.type) == "rrbs_metrics"
173 #set $pattern = "picard.analysis.RrbsSummaryMetrics"
174 @LN_2_FILES@
175 #elif str($repeat2.type) == "wgs_metrics"
176 #set $pattern = "picard.analysis.CollectWgsMetrics$WgsMetrics"
177 @LN_2_FILES@
178 #end if
179 #end for
180 #elif str($repeat.software_cond.software) == "prokka"
181 #set $pattern = "contigs:"
182 @LN_FILES@
183 #elif str($repeat.software_cond.software) == "quast"
184 #for $k, $file in enumerate($repeat.software_cond.input)
185 #set file_dir = $software_dir + '/file_' + str($k)
186 mkdir '$file_dir' &&
187 ln -s '$file' '$file_dir/report.tsv' &&
188 #end for
189 #elif str($repeat.software_cond.software) == "rsem"
190 #for $file in $repeat.software_cond.input
191 ln -s '$file' '$software_dir/${file.element_identifier}.cnt' &&
192 #end for
193 #elif str($repeat.software_cond.software) == "rseqc"
194 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
195 #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
196 mkdir '$repeat_dir' &&
197 #if str($repeat2.type.type) == "bam_stat"
198 #set $pattern = "Proper-paired reads map to different chrom:"
199 @LN_3_FILES@
200 #elif str($repeat2.type.type) == "gene_body_coverage"
201 #for $k, $file in enumerate($repeat2.type.input)
202 ln -s '$file' '$repeat_dir/file_${k}.geneBodyCoverage.txt' &&
203 #end for
204 #elif str($repeat2.type.type) == "inner_distance"
205 #for $k, $file in enumerate($repeat2.type.input)
206 ln -s '${file}' '$repeat_dir/file_${k}.inner_distance_freq.txt' &&
207 #end for
208 #elif str($repeat2.type.type) == "junction_annotation"
209 #set $pattern = "Partial Novel Splicing Junctions:"
210 @LN_3_FILES@
211 #elif str($repeat2.type.type) == "read_gc"
212 #for $k, $file in enumerate($repeat2.type.input)
213 ln -s '$file' '$repeat_dir/file_${k}.GC.xls' &&
214 #end for
215 #elif str($repeat2.type.type) == "junction_annotation"
216 #set $pattern = "Group Total_bases Tag_count Tags/Kb"
217 @LN_3_FILES@
218 #elif str($repeat2.type.type) == "read_duplication_pos"
219 #for $k, $file in enumerate($repeat2.type.input)
220 ln -s '$file' '$repeat_dir/file_${k}.pos.DupRate.xls' &&
221 #end for
222 #elif str($repeat2.type.type) == "infer_experiment"
223 #set $pattern = "Fraction of reads explained by"
224 #for $k, $file in enumerate($repeat2.type.input)
225 grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
226 ln -s '$file' '$repeat_dir/$file_${k}_infer_experiment.txt' &&
227 #end for
228 #end if
229 #end for
230 #elif str($repeat.software_cond.software) == "salmon"
231 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
232 #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
233 mkdir '$repeat_dir' &&
234 #if str($repeat2.type.type) == "meta"
235 #for $k, $file in enumerate($repeat2.type.input)
236 #set file_dir = $repeat_dir + '/file_' + str($k)
237 mkdir '$file_dir' &&
238 ln -s '$file' '$file_dir/meta_info.json' &&
239 #end for
240 #elif str($repeat2.type.type) == "fld"
241 #for $k, $file in enumerate($repeat2.type.input)
242 #set file_dir = $repeat_dir + '/file_' + str($k)
243 mkdir '$file_dir' &&
244 ln -s '$file' '$file_dir/flenDist.txt' &&
245 #end for
246 #end if
247 #end for
248 #elif str($repeat.software_cond.software) == "samblaster"
249 #set $pattern = "samblaster: Version"
250 @LN_FILES@
251 #elif str($repeat.software_cond.software) == "samtools"
252 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
253 #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
254 mkdir '$repeat_dir' &&
255 #if str($repeat2.type.type) == "stats"
256 #set $pattern = "This file was produced by samtools stats"
257 @LN_3_FILES@
258 #elif str($repeat2.type.type) == "flagstat"
259 #set $pattern = "in total (QC-passed reads + QC-failed reads)"
260 @LN_3_FILES@
261 #elif str($repeat2.type.type) == "idxstats"
262 #for $file in $repeat2.type.input
263 ln -s '$file' '$repeat_dir/${file.element_identifier}_idxstat' &&
264 #end for
265 #elif str($repeat2.type.type) == "rmdup"
266 #set $pattern = "[bam_rmdup"
267 @LN_3_FILES@
268 #end if
269 #end for
270 #elif str($repeat.software_cond.software) == "snpeff"
271 #set $pattern = "SnpEff_version"
272 @LN_FILES@
273 #elif str($repeat.software_cond.software) == "sortmerna"
274 #set $pattern = "Minimal SW score based on E-value"
275 @LN_FILES@
276 #else if str($repeat.software_cond.software) == "star":
277 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
278 #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
279 mkdir $repeat_dir &&
280 #if str($repeat2.type.type) == "log"
281 #for $file in $repeat2.type.input
282 ln -s '$file' '${repeat_dir}/{$file.element_identifier}_Log.final.out' &&
283 #end for
284 #elif str($repeat2.type.type) == "genecounts"
285 #for $file in $repeat2.type.input
286 ln -s '$file' '${repeat_dir}/{$file.element_identifier}_ReadsPerGene.out.tab' &&
287 #end for
288 #end if
289 #end for
290 #elif str($repeat.software_cond.software) == "tophat"
291 #for $file in $repeat.software_cond.input
292 ln -s '$file' '$software_dir/${file.element_identifier}align_summary.txt' &&
293 #end for
294 #elif str($repeat.software_cond.software) == "trimmomatic"
295 #set $pattern = "Trimmomatic"
296 @LN_FILES@
297 #elif str($repeat.software_cond.software) == "vcftools"
298 #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
299 #set file_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
300 mkdir $file_dir &&
301 #if str($repeat2.type.type) == "relatedness2"
302 #for $file in $repeat2.type.input
303 ln -s '$file' '${repeat_dir}/{$file.element_identifier}.relatedness2' &&
304 #end for
305 #elif str($repeat2.type) == "tstv_by_count"
306 #for $file in $repeat2.type.input
307 ln -s '$file' '${repeat_dir}/{$file.element_identifier}.TsTv.count' &&
308 #end for
309 #elif str($repeat2.type) == "tstv_by_qual"
310 #for $file in $repeat2.type.input
311 ln -s '$file' '${repeat_dir}/{$file.element_identifier}.TsTv.qual' &&
312 #end for
313 #elif str($repeat2.type) == "tstv_summary"
314 #for $file in $repeat2.type.input
315 ln -s '$file' '${repeat_dir}/{$file.element_identifier}.TsTv.summary' &&
316 #end for
317 #end if
318 #end for
319 #else if str($repeat.software_cond.software) == "custom_content":
320 #set $configfile = "T"
321 #for $j, $file in enumerate( $repeat.software_cond.input )
322 ln -s '$file' '${software_dir}/file_${i}_${j}' &&
323 more $file &&
324 #end for
325 #end if
326 #end for
327
328 multiqc multiqc_WDir
329
330 #if $configfile == "T"
331 -c '$multiqc_config'
332 #end if
333 ]]></command>
334 <configfiles>
335 <configfile name="multiqc_config">
336 <![CDATA[
337 custom_data:
338 #for $i, $repeat in enumerate( $results )
339 #if str($repeat.software_cond.software) == "custom_content"
340 section_$i:
341 file_format: 'tsv'
342 section_name: '$repeat.software_cond.section_name'
343 title: '$repeat.software_cond.title'
344 description: '$repeat.software_cond.description'
345 plot_type: '$repeat.software_cond.plot_type'
346 pconfig:
347 id: 'section_${i}_${repeat.software_cond.plot_type}'
348 ylab: '$repeat.software_cond.ylab'
349 xlab: '$repeat.software_cond.xlab'
350 #end if
351 #end for
352 sp:
353 #for $i, $repeat in enumerate( $results )
354 #if str($repeat.software_cond.software) == "custom_content"
355 section_$i:
356 fn: 'file_${i}_*'
357 #end if
358 #end for
359 ]]></configfile>
360 </configfiles>
361 <inputs>
362 <repeat name="results" title="Results" min="1">
363 <conditional name="software_cond">
364 <param name="software" type="select" label="Which tool was used generate logs?" help="Software name">
365 <!--<option value="adapterRemoval">Adapter Removal</option>-->
366 <!--<option value="afterqc">AfterQC</option>-->
367 <option value="bamtools">Bamtools</option>
368 <option value="bcftools">Bcftools</option>
369 <!--<option value="bcl2fastq">bcl2fastq</option>-->
370 <!--<option value="biobloomtools">BioBloom Tools</option>-->
371 <option value="bismark">Bismark</option>
372 <!--<option value="bowtie1">Bowtie 1</option>-->
373 <option value="bowtie2">Bowtie 2</option>
374 <option value="busco">BUSCO</option>
375 <!--<option value="clusterflow">Cluster Flow</option>-->
376 <option value="cutadapt">Cutadapt/Trim Galore!</option>
377 <!--<option value="conpair">Conpair</option>-->
378 <!--<option value="disambiguate">Disambiguate</option>-->
379 <!--<option value="fastq_screen">FastQ Screen</option>-->
380 <option value="fastqc">FastQC</option>
381 <option value="featureCounts">featureCounts</option>
382 <option value="flexbar">Flexbar</option>
383 <option value="gatk">GATK (BaseRecalibrator or VariantEval output)</option>
384 <!--<option value="goleft_indexcov">goleft indexcov</option>-->
385 <!--<option value="hicup">HiCUP</option>-->
386 <option value="hisat2">HISAT2</option>
387 <!--<option value="homer">HOMER</option>-->
388 <option value="htseq">HTSeq</option>
389 <!--<option value="jellyfish">Jellyfish</option>-->
390 <option value="kallisto">Kallisto</option>
391 <!--<option value="leehom">leeHom</option>-->
392 <!--<option value="macs2">MACS2</option>-->
393 <!--<option value="methylQA">methylQA</option>-->
394 <!--<option value="peddy">Peddy</option>-->
395 <option value="picard">Picard</option>
396 <!--<option value="preseq">Preseq</option>-->
397 <option value="prokka">Prokka</option>
398 <!--<option value="qorts">QoRTs</option>-->
399 <!--<option value="qualimap">Qualimap (BamQC or RNASeq output)</option>-->
400 <option value="quast">QUAST</option>
401 <!--<option value="rna_seqc">RNA-SeQC</option>-->
402 <!--<option value="rsem">RSEM (rsem-calculate-regex output)</option>-->
403 <option value="rseqc">RSeQC (bam_stat, gene_body_coverage, infer_experiment, ...)</option>
404 <!--<option value="salmon">Salmon</option>-->
405 <option value="samblaster">Samblaster</option>
406 <option value="samtools">Samtools</option>
407 <!--<option value="skewer">Skewer</option>-->
408 <option value="sortmerna">SortMeRNA</option>
409 <!--<option value="slamdunk">Slamdunk</option>-->
410 <!--<option value="snpeff">SnpEff</option>-->
411 <option value="star">STAR</option>
412 <!--<option value="theta2">THeTA2</option>-->
413 <option value="tophat">TopHat2</option>
414 <option value="trimmomatic">Trimmomatic</option>
415 <option value="vcftools">VCFTools</option>
416 <!--Custom-->
417 <option value="custom_content">Custom Content</option>
418 </param>
419 <when value="bamtools">
420 <param name="input" type="data" format="txt" multiple="true" label="Output of BAMtools" help="It should contain 'Stats for BAM file(s)'"/>
421 </when>
422 <when value="bcftools">
423 <param name="input" type="data" format="txt" multiple="true" label="Output of BAMtools" help="It should contain 'This file was produced by bcftools stats'"/>
424 </when>
425 <when value="bismark">
426 <repeat name="output" title="Bismark output" min="1">
427 <param name="type" type="select" label="Type of Bismark output?">
428 <option value="align">Alignment file</option>
429 <option value="dedup">Deduplication file</option>
430 <option value="meth_extract">Methylation file</option>
431 <option value="m_bias">m_bias file</option>
432 <option value="bam2nuc">bam2nuc file</option>
433 </param>
434 <param name="input" type="data" format="txt" multiple="true" label="Bismark output"/>
435 </repeat>
436 </when>
437 <when value="bowtie2">
438 <param name="input" type="data" format="txt" multiple="true" label="Output of Bowtie 2" help="It should contain 'reads; of these:'"/>
439 </when>
440 <when value="busco">
441 <param name="input" type="data" format="txt" multiple="true" label="Output of BUSCO"/>
442 </when>
443 <when value="cutadapt">
444 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Cutadapt" help="It should contain 'This is cutadapt' or 'You are running cutadapt'"/>
445 </when>
446 <when value="fastqc">
447 <repeat name="output" title="FastQC output" min="1">
448 <param name="type" type="select" label="Type of FastQC output?">
449 <option value="data">Raw data</option>
450 <option value="theoretical_gc">Theorectical GC</option>
451 </param>
452 <param name="input" type="data" format="txt" multiple="true" label="FastQC output"/>
453 </repeat>
454 </when>
455 <when value="featureCounts">
456 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of FeatureCounts"/>
457 </when>
458 <when value="flexbar">
459 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Flexbar" help="It should contain 'Flexbar - flexible barcode and adapter removal'"/>
460 </when>
461 <when value="gatk">
462 <repeat name="output" title="GATK output" min="1">
463 <param name="type" type="select" label="Type of GATK output?">
464 <option value="varianteval">Variant eval file</option>
465 <option value="base_recalibrator">Base recalibrator file</option>
466 </param>
467 <param name="input" type="data" format="txt" multiple="true" label="GATK output"/>
468 </repeat>
469 </when>
470 <when value="hisat2">
471 <param name="input" type="data" format="txt,tabular" multiple="true" label="Output of HISAT2" help="It should contain 'HISAT2 summary stats:'"/>
472 </when>
473 <when value="htseq">
474 <param name="input" type="data" format="txt,tabular" multiple="true" label="Output of HTSeq" help="It should contain '__too_low_aQual'"/>
475 </when>
476 <when value="kallisto">
477 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Kallisto" help="It should contain '[quant] finding pseudoalignments for the reads'"/>
478 </when>
479 <when value="picard">
480 <repeat name="output" title="Picard output" min="1">
481 <param name="type" type="select" label="Type of Picard output?">
482 <option value="alignment_metrics">Alignment metrics</option>
483 <option value="basedistributionbycycle">Base distribution by cycle</option>
484 <option value="gcbias">GC bias</option>
485 <option value="hsmetrics">HS Metrics</option>
486 <option value="insertsize">Insert size</option>
487 <option value="markdups">Markdups</option>
488 <option value="oxogmetrics">Oxog metrics</option>
489 <option value="pcr_metrics">PCR metrics</option>
490 <option value="rnaseqmetrics">RNA Seq metrics</option>
491 <option value="rrbs_metrics">RRBS metrics</option>
492 <option value="wgs_metrics">WGS metrics</option>
493 </param>
494 <param name="input" type="data" format="txt" multiple="true" label="Picard output"/>
495 </repeat>
496 </when>
497 <when value="prokka">
498 <param name="input" type="data" format="txt" multiple="true" label="Output of Prokka" help="It should contain 'contigs:'"/>
499 </when>
500 <when value="quast">
501 <param name="input" type="data" format="tabular,tsv" multiple="true" label="Output of Quast"/>
502 </when>
503 <when value="rseqc">
504 <repeat name="output" title="RSeQC output" min="1">
505 <conditional name="type">
506 <param name="type" type="select" label="Type of RSeQC output?">
507 <option value="bam_stat">bam_stat</option>
508 <option value="gene_body_coverage">gene_body_coverage</option>
509 <option value="infer_experiment">infer_experiment</option>
510 <option value="inner_distance">inner_distance</option>
511 <option value="junction_annotation">junction_annotation</option>
512 <option value="junction_saturation">junction_saturation</option>
513 <option value="read_distribution">read_distribution</option>
514 <option value="read_duplication_pos">read_duplication_pos</option>
515 <option value="read_gc">read_gc</option>
516 </param>
517 <when value="bam_stat">
518 <param name="input" type="data" format="txt,tabular" multiple="true" label="RSeQC bam_stat output" help="It should contain 'Proper-paired reads map to different chrom:'"/>
519 </when>
520 <when value="gene_body_coverage">
521 <param name="input" type="data" format="txt" multiple="true" label="RSeQC gene_body_coverage output"/>
522 </when>
523 <when value="infer_experiment">
524 <param name="input" type="data" format="txt" multiple="true" label="RSeQC infer_experiment output" help="It should contain 'Fraction of reads explained by'"/>
525 </when>
526 <when value="inner_distance">
527 <param name="input" type="data" format="txt,xls,tabular" multiple="true" label="RSeQC inner_distance output"/>
528 </when>
529 <when value="junction_annotation">
530 <param name="input" type="data" format="txt,xls,tabular" multiple="true" label="RSeQC junction_annotation output" help="It should contain 'Partial Novel Splicing Junctions:'"/>
531 </when>
532 <when value="junction_saturation">
533 <param name="input" type="data" format="txt" multiple="true" label="RSeQC junction_saturation output"/>
534 </when>
535 <when value="read_distribution">
536 <param name="input" type="data" format="txt,xls,tabular" multiple="true" label="RSeQC read_distribution output" help="It should contain 'Group Total_bases Tag_count Tags/Kb'"/>
537 </when>
538 <when value="read_duplication_pos">
539 <param name="input" type="data" format="csv,xls,tabular" multiple="true" label="RSeQC read_duplication_pos output"/>
540 </when>
541 <when value="read_gc">
542 <param name="input" type="data" format="csv,xls,tabular" multiple="true" label="RSeQC read_gc output"/>
543 </when>
544 </conditional>
545 </repeat>
546 </when>
547 <when value="samblaster">
548 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Samblaster" help="It should contain 'samblaster: Version'"/>
549 </when>
550 <when value="samtools">
551 <repeat name="output" title="Samtools output" min="1">
552 <conditional name="type">
553 <param name="type" type="select" label="Type of Samtools output?">
554 <option value="stats">stats</option>
555 <option value="flagstat">flagstat</option>
556 <option value="idxstats">idxstats</option>
557 <option value="rmdup">rmdup</option>
558 </param>
559 <when value="stats">
560 <param name="input" type="data" format="txt" multiple="true" label="Samtools stats output" help="It should contain 'This file was produced by samtools stats'"/>
561 </when>
562 <when value="flagstat">
563 <param name="input" type="data" format="txt" multiple="true" label="Samtools flagstat output" help="It should contain 'in total (QC-passed reads + QC-failed reads)'"/>
564 </when>
565 <when value="idxstats">
566 <param name="input" type="data" format="txt" multiple="true" label="Samtools idxstats output"/>
567 </when>
568 <when value="rmdup">
569 <param name="input" type="data" format="txt" multiple="true" label="Samtools rmdup output" help="It should contain '[bam_rmdup'"/>
570 </when>
571 </conditional>
572 </repeat>
573 </when>
574 <when value="sortmerna">
575 <param name="input" type="data" format="txt" multiple="true" label="Log file of SortMeRNA" help="It should contain 'Minimal SW score based on E-value'"/>
576 </when>
577 <when value="star">
578 <repeat name="output" title="STAR output" min="1">
579 <conditional name="type">
580 <param name="type" type="select" label="Type of STAR output?">
581 <option value="log">Log</option>
582 <option value="genecounts">Gene counts</option>
583 </param>
584 <when value="log">
585 <param name="input" type="data" format="txt" multiple="true" label="STAR log output"/>
586 </when>
587 <when value="genecounts">
588 <param name="input" type="data" format="tabular,tsv" multiple="true" label="STAR gene count output"/>
589 </when>
590 </conditional>
591 </repeat>
592 </when>
593 <when value="tophat">
594 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of TopHat2"/>
595 </when>
596 <when value="trimmomatic">
597 <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Trimmomatic" help="It should contain 'TTrimmomatic'"/>
598 </when>
599 <when value="vcftools">
600 <repeat name="output" title="VCFTools output" min="1">
601 <conditional name="type">
602 <param name="type" type="select" label="Type of VCFTools output?">
603 <option value="relatedness2">relatedness2</option>
604 <option value="tstv_by_count">tstv_by_count</option>
605 <option value="tstv_by_qual">tstv_by_qual</option>
606 <option value="tstv_summary">tstv_summary</option>
607 </param>
608 <when value="relatedness2">
609 <param name="input" type="data" format="txt" multiple="true" label="VCFTools relatedness2 output"/>
610 </when>
611 <when value="tstv_by_count">
612 <param name="input" type="data" format="tabular,tsv" multiple="true" label="VCFTools TsTV count output"/>
613 </when>
614 <when value="tstv_by_qual">
615 <param name="input" type="data" format="tabular" multiple="true" label="VCFTools TsTV qual output"/>
616 </when>
617 <when value="tstv_summary">
618 <param name="input" type="data" format="txt" multiple="true" label="VCFTools TsTV summary output"/>
619 </when>
620 </conditional>
621 </repeat>
622 </when>
623 <when value="custom_content">
624 <param argument="plot_type" label="The plot type to visualise the data with" type="select">
625 <option value="linegraph">linegraph</option>
626 <option value="bargraph">bargraph</option>
627 <option value="scatter">scatter</option>
628 <option value="generalstats">generalstats</option>
629 <option value="table">table</option>
630 </param>
631 <param argument="section_name" label="Section name" type="text" help="Nice name used for the report section header" />
632 <param argument="title" label="Title" type="text" help="Plot title" />
633 <param argument="description" label="Description" type="text" help="Introductory text to be printed under the section header" />
634 <param argument="xlab" label="X axis label" type="text" />
635 <param argument="ylab" label="Y axis label" type="text" />
636 <param name="input" type="data" format="tabular,tsv" multiple="true" label="Data files"/>
637 </when>
638 </conditional>
639 </repeat>
640 <param name="saveLog" type="boolean" truevalue="True" falsevalue="False" checked="False" label="Output the multiQC log file?" help="This is mostly useful for debugging purposes"/>
641 </inputs>
642 <outputs>
643 <data name="html_report" format="html" from_work_dir="multiqc_report.html" label="${tool.name} on ${on_string}: Webpage" />
644 <data name="log" format="txt" from_work_dir="multiqc_data/multiqc.log" label="${tool.name} on ${on_string}: Log">
645 <filter>saveLog</filter>
646 </data>
647 <collection name="stats" type="list" label="${tool.name} on ${on_string}: Stats">
648 <discover_datasets pattern="multiqc_(?P&lt;designation&gt;.+)\.txt" format="tabular" directory="multiqc_data" />
649 </collection>
650 </outputs>
651 <tests>
652 <test>
653 <repeat name="results">
654 <conditional name="software_cond">
655 <param name="software" value="cutadapt" />
656 <param name="input" value="cutadapt.txt" />
657 </conditional>
658 </repeat>
659 <repeat name="results">
660 <conditional name="software_cond">
661 <param name="software" value="fastqc" />
662 <repeat name="output">
663 <param name="type" value="data"/>
664 <param name="input" value="fastqc_1.txt,fastqc_2.txt"/>
665 </repeat>
666 </conditional>
667 </repeat>
668 <repeat name="results">
669 <conditional name="software_cond">
670 <param name="software" value="flexbar" />
671 <param name="input" value="flexbar.txt" />
672 </conditional>
673 </repeat>
674 <repeat name="results">
675 <conditional name="software_cond">
676 <param name="software" value="sortmerna" />
677 <param name="input" value="sortmerna.txt" />
678 </conditional>
679 </repeat>
680 <repeat name="results">
681 <conditional name="software_cond">
682 <param name="software" value="trimmomatic" />
683 <param name="input" value="trimmomatic.txt" />
684 </conditional>
685 </repeat>
686 <param name="saveLog" value="True"/>
687 <output name="html_report">
688 <assert_contents>
689 <has_text text="cutadapt_plot" />
690 <has_text text="fastqc_seq_heatmap_key_t" />
691 <has_text text="flexbar_plot" />
692 <has_text text="sortmerna-detailed-plot" />
693 <has_text text="trimmomatic_plot" />
694 </assert_contents>
695 </output>
696 <output name="log" file="pre_alignment_soft_log.txt" compare="sim_size"/>
697 <output_collection name="stats" type="list">
698 <element name="cutadapt" file="cutadapt_stats.tabular" compare="sim_size" delta="10"/>
699 <element name="fastqc" file="fastqc_stats.tabular" compare="sim_size" delta="10"/>
700 <element name="flexbar" file="flexbar_stats.tabular" compare="sim_size" delta="10"/>
701 <element name="general_stats" file="pre_alignment_soft_stats.tabular" compare="sim_size" delta="30"/>
702 <element name="sortmerna" file="sortmerna_stats.tabular" compare="sim_size" delta="30"/>
703 <element name="trimmomatic" file="trimmomatic_stats.tabular" compare="sim_size" delta="0"/>
704 </output_collection>
705 </test>
706 <test>
707 <repeat name="results">
708 <conditional name="software_cond">
709 <param name="software" value="bismark" />
710 <repeat name="output">
711 <param name="type" value="align"/>
712 <param name="input" value="bismark.txt"/>
713 </repeat>
714 </conditional>
715 </repeat>
716 <repeat name="results">
717 <conditional name="software_cond">
718 <param name="software" value="bowtie2" />
719 <param name="input" value="bowtie2_1.txt,bowtie2_2.txt" />
720 </conditional>
721 </repeat>
722 <repeat name="results">
723 <conditional name="software_cond">
724 <param name="software" value="hisat2" />
725 <param name="input" value="hisat2_1.txt,hisat2_2.txt" />
726 </conditional>
727 </repeat>
728 <repeat name="results">
729 <conditional name="software_cond">
730 <param name="software" value="kallisto" />
731 <param name="input" value="kallisto_1.txt,kallisto_2.txt" />
732 </conditional>
733 </repeat>
734 <repeat name="results">
735 <conditional name="software_cond">
736 <param name="software" value="star" />
737 <repeat name="output">
738 <conditional name="type">
739 <param name="type" value="log"/>
740 <param name="input" value="star_log.txt" />
741 </conditional>
742 </repeat>
743 <repeat name="output">
744 <conditional name="type">
745 <param name="type" value="genecounts"/>
746 <param name="input" value="star_counts.txt" />
747 </conditional>
748 </repeat>
749 </conditional>
750 </repeat>
751 <repeat name="results">
752 <conditional name="software_cond">
753 <param name="software" value="tophat" />
754 <param name="input" value="tophat.txt" />
755 </conditional>
756 </repeat>
757 <param name="saveLog" value="False"/>
758 <output name="html_report">
759 <assert_contents>
760 <has_text text="bismark-alignment" />
761 <has_text text="bowtie2_se_plot" />
762 <has_text text="hisat2_se_plot" />
763 <has_text text="kallisto_alignment" />
764 <has_text text="star_alignment_plot" />
765 <has_text text="tophat_alignment" />
766 </assert_contents>
767 </output>
768 <output_collection name="stats" type="list">
769 <element name="bismark_alignment" file="bismark_stats.tabular" compare="sim_size" delta="10"/>
770 <element name="bowtie2" file="bowtie2_stats.tabular" compare="sim_size" delta="0"/>
771 <element name="general_stats" file="aligner_soft_stats.tabular" compare="sim_size" delta="50"/>
772 <element name="hisat2" file="hisat2_stats.tabular" compare="sim_size" delta="0"/>
773 <element name="kallisto" file="kallisto_stats.tabular" compare="sim_size" delta="10"/>
774 <element name="star" file="star_stats.tabular" compare="sim_size" delta="10"/>
775 <element name="tophat.txt" file="tophat_stats.tabular" compare="sim_size" delta="10"/>
776 </output_collection>
777 </test>
778 <test>
779 <repeat name="results">
780 <conditional name="software_cond">
781 <param name="software" value="bamtools" />
782 <param name="input" value="bamtools.txt" />
783 </conditional>
784 </repeat>
785 <repeat name="results">
786 <conditional name="software_cond">
787 <param name="software" value="bcftools" />
788 <param name="input" value="bcftools.txt" />
789 </conditional>
790 </repeat>
791 <repeat name="results">
792 <conditional name="software_cond">
793 <param name="software" value="busco" />
794 <param name="input" value="busco.txt" />
795 </conditional>
796 </repeat>
797 <repeat name="results">
798 <conditional name="software_cond">
799 <param name="software" value="featureCounts" />
800 <param name="input" value="featureCounts.txt" />
801 </conditional>
802 </repeat>
803 <repeat name="results">
804 <conditional name="software_cond">
805 <param name="software" value="gatk" />
806 <repeat name="output">
807 <param name="type" value="base_recalibrator"/>
808 <param name="input" value="gatk_BaseRecalibrator.txt"/>
809 </repeat>
810 <repeat name="output">
811 <param name="type" value="varianteval"/>
812 <param name="input" value="gatk_varianteval.txt"/>
813 </repeat>
814 </conditional>
815 </repeat>
816 <repeat name="results">
817 <conditional name="software_cond">
818 <param name="software" value="htseq" />
819 <param name="input" value="htseq.txt" />
820 </conditional>
821 </repeat>
822 <repeat name="results">
823 <conditional name="software_cond">
824 <param name="software" value="picard" />
825 <repeat name="output">
826 <param name="type" value="gcbias"/>
827 <param name="input" value="picard_collectGcBias.txt"/>
828 </repeat>
829 <repeat name="output">
830 <param name="type" value="insertsize"/>
831 <param name="input" value="picard_CollectInsertSizeMetrics.txt"/>
832 </repeat>
833 <repeat name="output">
834 <param name="type" value="markdups"/>
835 <param name="input" value="picard_MarkDuplicates.txt"/>
836 </repeat>
837 <repeat name="output">
838 <param name="type" value="basedistributionbycycle"/>
839 <param name="input" value="picard_CollectBaseDistributionByCycle.txt"/>
840 </repeat>
841 <repeat name="output">
842 <param name="type" value="rnaseqmetrics"/>
843 <param name="input" value="picard_CollectRnaSeqMetrics.txt"/>
844 </repeat>
845 <repeat name="output">
846 <param name="type" value="alignment_metrics"/>
847 <param name="input" value="picard_CollectAlignmentSummaryMetrics.txt"/>
848 </repeat>
849 </conditional>
850 </repeat>
851 <repeat name="results">
852 <conditional name="software_cond">
853 <param name="software" value="prokka" />
854 <param name="input" value="prokka_1.txt,prokka_2.txt" />
855 </conditional>
856 </repeat>
857 <repeat name="results">
858 <conditional name="software_cond">
859 <param name="software" value="quast" />
860 <param name="input" value="quast.tsv" />
861 </conditional>
862 </repeat>
863 <repeat name="results">
864 <conditional name="software_cond">
865 <param name="software" value="rseqc" />
866 <repeat name="output">
867 <conditional name="type">
868 <param name="type" value="read_gc"/>
869 <param name="input" value="rseqc.txt"/>
870 </conditional>
871 </repeat>
872 </conditional>
873 </repeat>
874 <repeat name="results">
875 <conditional name="software_cond">
876 <param name="software" value="samblaster" />
877 <param name="input" value="samblaster.txt" />
878 </conditional>
879 </repeat>
880 <repeat name="results">
881 <conditional name="software_cond">
882 <param name="software" value="samtools" />
883 <repeat name="output">
884 <conditional name="type">
885 <param name="type" value="stats"/>
886 <param name="input" value="samtools_stats.txt"/>
887 </conditional>
888 </repeat>
889 <repeat name="output">
890 <conditional name="type">
891 <param name="type" value="flagstat"/>
892 <param name="input" value="samtools_flagstat.txt"/>
893 </conditional>
894 </repeat>
895 <repeat name="output">
896 <conditional name="type">
897 <param name="type" value="idxstats"/>
898 <param name="input" value="samtools_idxstats.txt"/>
899 </conditional>
900 </repeat>
901 </conditional>
902 </repeat>
903 <repeat name="results">
904 <conditional name="software_cond">
905 <param name="software" value="vcftools" />
906 <repeat name="output">
907 <conditional name="type">
908 <param name="type" value="tstv_by_qual"/>
909 <param name="input" value="vcftools.txt"/>
910 </conditional>
911 </repeat>
912 <param name="input" value="vcftools.txt" />
913 </conditional>
914 </repeat>
915 <output name="html_report">
916 <assert_contents>
917 <has_text text="bamtools-stats" />
918 <has_text text="bcftools_stats_indel-lengths" />
919 <has_text text="busco-lineage-fungi_odb9" />
920 <has_text text="featureCounts_assignment_plot" />
921 <has_text text="gatk_varianteval_variant_plot" />
922 <has_text text="htseq_assignment_plot" />
923 <has_text text="picard_aligned_reads" />
924 <has_text text="picard-rna-assignment" />
925 <has_text text="picard-markduplicates" />
926 <has_text text="picard-insertsize" />
927 <has_text text="picard-gcbias" />
928 <has_text text="prokka_plot" />
929 <has_text text="samblaster_duplicates" />
930 <has_text text="quast-stats" />
931 <has_text text="samtools-flagstat-dp" />
932 <has_text text="bamtools-stats" />
933 </assert_contents>
934 </output>
935 <output_collection name="stats" type="list">
936 <element name="bamtools_stats" file="bamtools_stats.tabular" compare="sim_size" delta="0"/>
937 <element name="bcftools_stats" file="bcftools_stats.tabular" compare="sim_size" delta="0"/>
938 <element name="busco" file="busco_stats.tabular" compare="sim_size" delta="0"/>
939 <element name="featureCounts" file="featureCounts_stats.tabular" compare="sim_size" delta="25"/>
940 <element name="gatk_varianteval" file="gatk_varianteval_stats.tabular" compare="sim_size" delta="20"/>
941 <element name="general_stats" file="post_aligner_soft_stats.tabular" compare="sim_size" delta="25"/>
942 <element name="htseq" file="htseq_stats.tabular" compare="sim_size" delta="0"/>
943 <element name="picard_AlignmentSummaryMetrics" file="picard_AlignmentSummaryMetrics_stats.tabular" compare="sim_size" delta="0"/>
944 <element name="picard_RnaSeqMetrics" file="picard_RnaSeqMetrics_stats.tabular" compare="sim_size" delta="40"/>
945 <element name="picard_baseContent" file="picard_baseContent_stats.tabular" compare="sim_size" delta="50"/>
946 <element name="picard_dups" file="picard_dups_stats.tabular" compare="sim_size" delta="0"/>
947 <element name="picard_insertSize" file="picard_insertSize_stats.tabular" compare="sim_size" delta="0"/>
948 <element name="prokka" file="prokka_stats.tabular" compare="sim_size" delta="0"/>
949 <element name="quast" file="quast_stats.tabular" compare="sim_size" delta="0"/>
950 <element name="samblaster" file="samblaster_stats.tabular" compare="sim_size" delta="0"/>
951 <element name="samtools_flagstat">
952 <assert_contents>
953 <has_text text="samtools_flagstat" />
954 <has_text text="mapped_passed" />
955 <has_text text="20689039" />
956 </assert_contents>
957 </element>
958 <element name="samtools_stats" file="samtools_stats_stats.tabular" compare="sim_size" delta="15"/>
959 </output_collection>
960 </test>
961 <test>
962 <repeat name="results">
963 <conditional name="software_cond">
964 <param name="software" value="custom_content" />
965 <param name="cc_select" value="manual" />
966 <param name="plot_type" value="linegraph" />
967 <param name="section_name" value="BPC" />
968 <param name="title" value="Base peak chromatogram" />
969 <param name="description" value="Sum of intensity (Y) of the most intense peaks at each retention time(X)" />
970 <param name="xlab" value="Retention Time" />
971 <param name="ylab" value="Base Peak Intensity" />
972 <param name="input" value="cc_ko15.bpc.tab,cc_wt15.bpc.tab" />
973 </conditional>
974 </repeat>
975 <output name="html_report" file="report_manual_custom_content.html" compare="sim_size"/>
976 </test>
977 </tests>
978 <help><![CDATA[
979 **What it does**
980
981 `MultiQC <http://multiqc.info/>`_ aggregates results from bioinformatics analyses across many samples into a single report. It takes results of multiple analyses and creates a report that can be viewed as a single beautiful web-page. It's a general use tool, perfect for summarizing the output from numerous bioinformatics tools.
982
983 **Inputs**
984
985 MultiQC takes software output summaries/logs and creates a single report from them. You need to tell the tool which software was used to generate the report. This is done using the **Software name** dropdown. At present only the Galaxy tools found in the ToolShed produce logs that can used with MultiQC
986
987 ----
988
989 The first integration of this tool was made by Cyril Monjeaud and Yvan Le Bras (`EnginesOn <http://engineson.fr/>`_ and Rennes GenOuest Bio-informatics Core Facility).
990 ]]></help>
991 <citations>
992 <citation type="doi">10.1093/bioinformatics/btw354</citation>
993 </citations>
994 </tool>