Repository 'quasitools'
hg clone https://toolshed.g2.bx.psu.edu/repos/nml/quasitools

Changeset 5:b69e898b8109 (2018-08-24)
Previous changeset 4:8cdffc02d2e2 (2018-04-25) Next changeset 6:9fb9fed71486 (2018-10-12)
Commit message:
planemo upload for repository https://github.com/phac-nml/quasitools commit e30c0687f755a46c5b3bd265a1478a1abf5dc9f1
modified:
aacoverage.xml
callaavar.xml
callcodonvar.xml
callntvar.xml
consensus.xml
distance.xml
dnds.xml
drmutations.xml
hydra.xml
added:
quality.xml
b
diff -r 8cdffc02d2e2 -r b69e898b8109 aacoverage.xml
--- a/aacoverage.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/aacoverage.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,7 +1,7 @@
-<tool id="aacoverage" name="Amino Acid Coverage" version="0.1.0">
+<tool id="aacoverage" name="Amino Acid Coverage" version="0.4.2">
     <description>Builds an aa census and returns its coverage</description>
     <requirements>
-          <requirement type="package" version="0.3.1">quasitools</requirement>
+          <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
b
diff -r 8cdffc02d2e2 -r b69e898b8109 callaavar.xml
--- a/callaavar.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/callaavar.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,15 +1,15 @@
-<tool id="aavariants" name="Amino Acid Variants" version="0.1.0">
+<tool id="aavariants" name="Amino Acid Variants" version="0.4.2">
     <description>Identifies amino acid mutations</description>
     <requirements>
-        <requirement type="package" version="0.3.1">quasitools</requirement>
+        <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
         ln -f -s ${input_bam.metadata.bam_index} ${input_bam}.bai &&
-        quasitools call aavar $input_bam $ref_file $var_file $input_genes 
+        quasitools call aavar $input_bam $ref_file $var_file $input_genes
 
         #if $mutation_db:
-          $mutation_db 
+          $mutation_db
         #end if
 
         -o output.vcf
b
diff -r 8cdffc02d2e2 -r b69e898b8109 callcodonvar.xml
--- a/callcodonvar.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/callcodonvar.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,17 +1,17 @@
-<tool id="callcodonvar" name="Codon Variants" version="0.1.0">
+<tool id="callcodonvar" name="Codon Variants" version="0.4.2">
     <description>Identifies codon variants and non-synonymous/synonymous mutations</description>
     <requirements>
-          <requirement type="package" version="0.3.1">quasitools</requirement>
+          <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
-        cat $input_genes && 
+        cat $input_genes &&
 
         ln -f -s ${input_bam.metadata.bam_index} ${input_bam}.bai &&
-        quasitools call codonvar $input_bam $ref_file $offset $input_genes 
+        quasitools call codonvar $input_bam $ref_file $offset $input_genes
 
         #if $error_rate:
-            -e $error_rate 
+            -e $error_rate
         #end if
 
         -o output.csv
@@ -46,7 +46,7 @@
 Codon Variants
 ==============
 
-Call codon variants for a given BAM. A report is generated that details nucleotide variants within a 
+Call codon variants for a given BAM. A report is generated that details nucleotide variants within a
 codon and the resulting AA variants. The report indicates whether the nucleotide variants correspond to
 a synonymous or non-synonymous mutation.
 
b
diff -r 8cdffc02d2e2 -r b69e898b8109 callntvar.xml
--- a/callntvar.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/callntvar.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,15 +1,15 @@
-<tool id="callntvar" name="Nucleotide Variants" version="0.1.0">
+<tool id="callntvar" name="Nucleotide Variants" version="0.4.2">
     <description>Identifies nucleotide variants</description>
     <requirements>
-          <requirement type="package" version="0.3.1">quasitools</requirement>
+          <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
-    
+
         ln -f -s ${input_bam.metadata.bam_index} ${input_bam}.bai &&
-        quasitools call ntvar $input_bam $ref_file 
+        quasitools call ntvar $input_bam $ref_file
 
         #if $error_rate:
-            -e $error_rate 
+            -e $error_rate
         #end if
 
         -o output.vcf
@@ -36,7 +36,7 @@
         </test>
     </tests>
     <help><![CDATA[
-        
+
 Nucleotide Variants
 ===================
 
b
diff -r 8cdffc02d2e2 -r b69e898b8109 consensus.xml
--- a/consensus.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/consensus.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,21 +1,21 @@
-<tool id="consensus" name="Consensus Sequence" version="0.2.0">
+<tool id="consensus" name="Consensus Sequence" version="0.4.2">
     <description>Generate a consensus sequence from a BAM file</description>
     <requirements>
-          <requirement type="package" version="0.3.1">quasitools</requirement>
+          <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
         ln -f -s ${input_bam.metadata.bam_index} ${input_bam}.bai &&
-        quasitools consensus $input_bam $ref_file 
+        quasitools consensus $input_bam $ref_file
 
         #if $fasta_id.type == 'default':
-            -i '${input_bam.element_identifier}' 
+            -i '${input_bam.element_identifier}'
         #elif $fasta_id.type == 'custom':
             -i '${fasta_id.custom_id}'
         #end if
 
         #if $base_type.type == 'mixed':
-            -p $base_type.percentage 
+            -p $base_type.percentage
         #end if
 
         -o output.fasta
b
diff -r 8cdffc02d2e2 -r b69e898b8109 distance.xml
--- a/distance.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/distance.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,7 +1,7 @@
-<tool id="distance" name="Quasispecies Distance" version="0.1.0">
+<tool id="distance" name="Quasispecies Distance" version="0.4.2">
     <description>Calculate the evolutionary distance between viral quasispecies.</description>
     <requirements>
-          <requirement type="package" version="0.3.1">quasitools</requirement>
+          <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
b
diff -r 8cdffc02d2e2 -r b69e898b8109 dnds.xml
--- a/dnds.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/dnds.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,7 +1,7 @@
-<tool id="dnds" name="dNdS Report" version="0.1.0">
+<tool id="dnds" name="dNdS Report" version="0.4.2">
     <description>Calculate the dN/dS value for each region in a bed file</description>
     <requirements>
-          <requirement type="package" version="0.3.1">quasitools</requirement>
+          <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
b
diff -r 8cdffc02d2e2 -r b69e898b8109 drmutations.xml
--- a/drmutations.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/drmutations.xml Fri Aug 24 16:50:28 2018 -0400
[
@@ -1,15 +1,15 @@
-<tool id="drmutations" name="Drug Resistance Mutations" version="0.1.0">
+<tool id="drmutations" name="Drug Resistance Mutations" version="0.4.2">
     <description></description>
     <requirements>
-        <requirement type="package" version="0.3.1">quasitools</requirement>
+        <requirement type="package" version="0.4.2">quasitools</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
 
         ln -f -s ${input_bam.metadata.bam_index} ${input_bam}.bai &&
-        quasitools drmutations $input_bam $ref_file $var_file $input_genes 
-        
+        quasitools drmutations $input_bam $ref_file $var_file $input_genes
+
         #if $mutation_db:
-          $mutation_db 
+          $mutation_db
         #end if
 
         #if $min_freq:
@@ -17,11 +17,11 @@
         #end if
 
         #if $reporting_thres:
-            -t $reporting_thres 
+            -t $reporting_thres
         #end if
 
         -o output.csv
-        
+
     ]]></command>
     <inputs>
         <param name="input_bam" type="data" format="bam" optional="false" label="Bam file" />
b
diff -r 8cdffc02d2e2 -r b69e898b8109 hydra.xml
--- a/hydra.xml Wed Apr 25 10:38:00 2018 -0400
+++ b/hydra.xml Fri Aug 24 16:50:28 2018 -0400
[
b'@@ -1,88 +1,102 @@\n-<tool id="hydra" name="Hydra pipeline" version="0.2.0">\n+<tool id="hydra" name="Hydra pipeline" version="0.4.2">\n     <description>Identifies drug resistance within an NGS dataset</description>\n     <requirements>\n-          <requirement type="package" version="0.3.1">quasitools</requirement>\n+          <requirement type="package" version="0.4.2">quasitools</requirement>\n     </requirements>\n     <command detect_errors="exit_code"><![CDATA[\n \n-        quasitools hydra \n+        quasitools hydra\n \n         ## Preparing file input.\n         #if $data_type.type == "paired":\n \n-            \'$data_type.fastq_input1\' \n-            \'$data_type.fastq_input2\' \n+            \'$data_type.fastq_input1\'\n+            \'$data_type.fastq_input2\'\n \n         #elif $data_type.type == "collection":\n \n-            \'$data_type.fastq_input1.forward\' \n-            \'$data_type.fastq_input1.reverse\' \n+            \'$data_type.fastq_input1.forward\'\n+            \'$data_type.fastq_input1.reverse\'\n \n         #elif $data_type.type == "single":\n \n-            \'$data_type.fastq_input1\' \n+            \'$data_type.fastq_input1\'\n \n         #end if\n \n         #if $mutation_db:\n-            -m \'$mutation_db\' \n+            -m \'$mutation_db\'\n         #end if\n \n         #if $reporting_threshold:\n-            -rt \'$reporting_threshold\' \n+            -rt \'$reporting_threshold\'\n         #end if\n \n         #if $consensus_pct:\n-            -cp \'$consensus_pct\' \n+            -cp \'$consensus_pct\'\n         #end if\n \n         #if $length_cutoff:\n-            -lc \'$length_cutoff\' \n+            -lc \'$length_cutoff\'\n         #end if\n \n         #if $score_cutoff:\n-            -sc \'$score_cutoff\' \n+            -sc \'$score_cutoff\'\n         #end if\n \n         #if $error_rate:\n-            -e \'$error_rate\' \n+            -e \'$error_rate\'\n         #end if\n \n-        #if $min_qual:\n-            -mq \'$min_qual\' \n+        #if $min_read_qual:\n+            -rq \'$min_read_qual\'\n+        #end if\n+\n+        #if $min_variant_qual:\n+            -vq \'$min_variant_qual\'\n         #end if\n \n         #if $min_depth:\n-            -md \'$min_depth\' \n+            -md \'$min_depth\'\n         #end if\n \n         #if $min_ac:\n-            -ma \'$min_ac\' \n+            -ma \'$min_ac\'\n         #end if\n \n         #if $min_freq:\n-            -mf \'$min_freq\' \n+            -mf \'$min_freq\'\n         #end if\n \n         #if $consensus.consensus_bool == "true_consensus":\n-            --generate_consensus \n+            --generate_consensus\n \n             #if $consensus.fasta_id.type == "default":\n-                --id \n+                --id\n                 #if $data_type.type == "paired":\n                     \'${fastq_input1.element_identifier}\'_\'${fastq_input2.element_identifier}\'\n                 #elif $data_type.type == "single":\n                     \'${fastq_input1.element_identifier}\'\n                 #end if\n             #elif $consensus.fasta_id.type == "custom":\n-                --id \'$consensus.fasta_id.custom_id\' \n+                --id \'$consensus.fasta_id.custom_id\'\n             #end if\n         #end if\n \n-        #if $filter_ns:\n-            --ns \n+        #if $low_quality.qual_selector == "filter_ns":\n+            --ns\n+        #elif $low_quality.qual_selector == "mask_reads":\n+            --mask_reads\n         #end if\n \n+        #if $score_type.score_selector == "median":\n+            --median\n+        #elif $score_type.score_selector == "mean":\n+            --mean\n+        #end if\n+\n+        $trim_reads\n+\n         -o output\n \n     ]]></command>\n@@ -107,19 +121,21 @@\n         <param name="mutation_db" type="data" format="tsv" optional="true" label="Mutation DB" help="Defaults to HIV mutation database." />\n         <param name="reporting_threshold" type="integer" optional="true" min="1" max="100" value="1" label="Reporting threshold. Defaults to 1." help="Minimum mutation frequency to report." />\n         <param name="consensus_pct" type="integer" optional="true" min="1" max="20" value="20" lab'..b'true" value="false_consensus">False</option>\n             </param>\n-            <when value="true_consensus"> \n+            <when value="true_consensus">\n                 <conditional name="fasta_id">\n                     <param name="type" type="select" label="Specify consensus fasta identifier" multiple="false" display="radio">\n                         <option value="default" >Use fasta dataset name</option>\n@@ -130,16 +146,37 @@\n                     <when value="custom">\n                         <param name="custom_id" type="text" optional="false" value="custom_id" label="Fasta identifier" help="Type in a fasta identifier."/>\n                     </when>\n-                </conditional>            \n+                </conditional>\n             </when>\n-            <when value="false_consensus"> \n+            <when value="false_consensus">\n             </when>\n         </conditional>\n-        <param name="filter_ns" type="boolean" truevalue="--ns" falsevalue="" checked="False" label="Filter out n\'s" />\n+        <conditional name="low_quality">\n+            <param name="qual_selector" type="select" label="Filter out regions masked, or mask low coverage regions with n\'s." multiple="false" display="radio">\n+                <option value="filter_ns">Filter out regions with n\'s</option>\n+                <option value="mask_reads">Mask low coverage regions with n\'s</option>\n+                <option value="neither" selected="true">Do not filter or mask low coverage regions.</option>\n+            </param>\n+            <when value="filter_ns">\n+            </when>\n+            <when value="mask_reads">\n+            </when>\n+            <when value="neither">\n+            </when>\n+        </conditional>\n+        <conditional name="score_type">\n+            <param name="score_selector" type="select" label="Use either median score (default) or mean score for the score cutoff value." multiple="false" display="radio">\n+                <option value="median" selected="true">Use median score</option>\n+                <option value="mean">Use mean score</option>\n+            </param>\n+            <when value="median">\n+            </when>\n+            <when value="mean">\n+            </when>\n+        </conditional>\n     </inputs>\n     <outputs>\n         <data format="bam" label="HyDRA: alignment bam output" name="output_bam" from_work_dir="output/align.bam" />\n-        <data format="bam" label="HyDRA: bam.bai output" name="output_bam_bai" from_work_dir="output/align.bam.bai" />\n         <data format="csv" label="HyDRA: coverage output" name="output_coverage" from_work_dir="output/coverage_file.csv" />\n         <data format="csv" label="HyDRA: drug resistance output" name="output_dr" from_work_dir="output/dr_report.csv" />\n         <data format="fastq" label="HyDRA: filtered reads output" name="output_filtered" from_work_dir="output/filtered.fastq" />\n@@ -154,6 +191,7 @@\n         <test>\n             <param name="type" value="single"/>\n             <param name="fastq_input1" value="forward.fastq" />\n+            <param name="score_selector" value="mean" />\n             <output name="output_coverage">\n                 <assert_contents>\n                     <has_text text="frame: 0" />\n@@ -237,7 +275,6 @@\n \n     /tmp/hydra_out/\n         * align.bam\n-        * align.bam.bai\n         * coverage_file.csv\n         * dr_report.csv\n         * filtered.fastq\n@@ -250,7 +287,6 @@\n * __run.conf__: The configuration used when this output was produced.\n * __reads_w_K103N/__: The results directory for the input file reads_w_K103N.fastq\n     * __align.bam__: The alignment file in bam format.\n-    * __align.bam.bai__: The index to the alignment file.\n     * __coverage_file.csv__: A file with one entry per line with the AA position and the coverage at the position.\n     * __dr_report.csv__: A report detailing the drug resistant mutations found, above the reporting threshold (default: 1%).\n     * __filtered.fastq__: The reads remaining after the filtering stage.\n'
b
diff -r 8cdffc02d2e2 -r b69e898b8109 quality.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/quality.xml Fri Aug 24 16:50:28 2018 -0400
[
b'@@ -0,0 +1,172 @@\n+<tool id="quality" name="Quality control" version="0.4.2">\n+    <description>Performs quality control on FASTQ reads.</description>\n+    <requirements>\n+          <requirement type="package" version="0.4.2">quasitools</requirement>\n+    </requirements>\n+    <command detect_errors="exit_code"><![CDATA[\n+\n+        quasitools quality\n+\n+        ## Preparing file input.\n+        #if $data_type.type == "paired":\n+\n+            \'$data_type.fastq_input1\'\n+            \'$data_type.fastq_input2\'\n+\n+        #elif $data_type.type == "collection":\n+\n+            \'$data_type.fastq_input1.forward\'\n+            \'$data_type.fastq_input1.reverse\'\n+\n+        #elif $data_type.type == "single":\n+\n+            \'$data_type.fastq_input1\'\n+\n+        #end if\n+\n+        #if $length_cutoff:\n+            -lc \'$length_cutoff\'\n+        #end if\n+\n+        #if $score_cutoff:\n+            -sc \'$score_cutoff\'\n+        #end if\n+\n+        #if $min_read_qual:\n+            -rq \'$min_read_qual\'\n+        #end if\n+\n+        #if $low_quality.qual_selector == "filter_ns":\n+            --ns\n+        #elif $low_quality.qual_selector == "mask_reads":\n+            --mask_reads\n+        #end if\n+\n+        #if $score_type.score_selector == "median":\n+            --median\n+        #elif $score_type.score_selector == "mean":\n+            --mean\n+        #end if\n+\n+        $trim_reads\n+\n+        -o output\n+\n+    ]]></command>\n+    <inputs>\n+        <conditional name="data_type">\n+            <param name="type" type="select" label="Specify the read type.">\n+                <option value="single">Single-end Data</option>\n+                <option value="paired">Paired-end Data</option>\n+                <option value="collection">Collection Paired-end Data</option>\n+            </param>\n+            <when value="single">\n+                <param name="fastq_input1" type="data" format="fastq" label="Single end read file(s)"/>\n+            </when>\n+            <when value="paired">\n+                <param name="fastq_input1" type="data" format="fastq" label="Forward paired-end read file"/>\n+                <param name="fastq_input2" type="data" format="fastq" label="Reverse paired-end read file"/>\n+            </when>\n+            <when value="collection">\n+                <param name="fastq_input1" type="data_collection" label="Paired-end reads collection" optional="false" format="fastq" collection_type="paired" />\n+            </when>\n+        </conditional>\n+        <param name="length_cutoff" type="integer" optional="true" min="1" max="1000" label="Length cutoff" value="100" help="Reads which fall short of the specified length will be filtered out. Defaults to 100." />\n+        <param name="score_cutoff" type="integer" optional="true" min="0" max="40" label="Score cutoff" value="30" help="Reads whose median or mean quality score (depending on the score type specified) is less than the specified score cutoff value will be filtered out. Defaults to 30." />\n+        <param name="min_read_qual" type="integer" optional="true" min="1" max="100" label="Minimum quality" value="30" help="Minimum required quality for a position in a read not to be masked, is masking is enabled. Defaults to 30." />\n+        <param name="trim_reads" type="boolean" optional="true" checked="false" truevalue="-tr" falsevalue="" label="Trim reads" help="Iteratively trim reads based on filter values if enabled." />\n+        <conditional name="low_quality">\n+            <param name="qual_selector" type="select" label="Filter out regions masked, or mask low coverage regions with n\'s." multiple="false" display="radio">\n+                <option value="filter_ns">Filter out regions with n\'s</option>\n+                <option value="mask_reads">Mask low coverage regions with n\'s</option>\n+                <option value="neither" selected="true">Do not filter or mask low coverage regions.</option>\n+            </param>\n+            <when value="filter_ns">\n+            </when>\n+            <when value="m'..b'elect" label="Use either median score (default) or mean score for the score cutoff value." multiple="false" display="radio">\n+                <option value="median" selected="true">Use median score</option>\n+                <option value="mean">Use mean score</option>\n+            </param>\n+            <when value="median">\n+            </when>\n+            <when value="mean">\n+            </when>\n+        </conditional>\n+    </inputs>\n+    <outputs>\n+        <data format="fastq" label="Quality control output" name="output_filtered" from_work_dir="output/filtered.fastq" />\n+    </outputs>\n+    <tests>\n+        <test>\n+            <param name="type" value="single"/>\n+            <param name="fastq_input1" value="forward.fastq" />\n+            <param name="score_selector" value="median" />\n+            <output name="output_filtered">\n+                <assert_contents>\n+                    <has_text text="@M01647:10:000000000-ACPHB:1:1101:18589:1580 1:N:0:86" />\n+                    <has_text text="CCCCCGG@FFGGGGGGGGGGGGCGGGGGGGGDGFFFGGGGGDEGCFGCFFFGGGGGGGGGGGGGGGGFGGGGGGGGGGFCFCGGGGCGFGGGGFGEGGGGGGGGGGGGGGGGGGGGGFEFGGGGGGF" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+        <test>\n+            <param name="type" value="single"/>\n+            <param name="fastq_input1" value="forward.fastq" />\n+            <param name="score_selector" value="median" />\n+            <param name="qual_selector" value="filter_ns" />\n+            <output name="output_filtered">\n+                <assert_contents>\n+                    <has_text text="@M01647:10:000000000-ACPHB:1:1101:18589:1580 1:N:0:86" />\n+                    <has_text text="CCCCCGG@FFGGGGGGGGGGGGCGGGGGGGGDGFFFGGGGGDEGCFGCFFFGGGGGGGGGGGGGGGGFGGGGGGGGGGFCFCGGGGCGFGGGGFGEGGGGGGGGGGGGGGGGGGGGGFEFGGGGGGF" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+        <test>\n+            <param name="type" value="single"/>\n+            <param name="fastq_input1" value="forward.fastq" />\n+            <param name="score_selector" value="median" />\n+            <param name="trim_reads" value="-tr" />\n+            <output name="output_filtered">\n+                <assert_contents>\n+                    <has_text text="@M01647:10:000000000-ACPHB:1:1101:18589:1580 1:N:0:86" />\n+                    <has_text text="CCCCCGG@FFGGGGGGGGGGGGCGGGGGGGGDGFFFGGGGGDEGCFGCFFFGGGGGGGGGGGGGGGGFGGGGGGGGGGFCFCGGGGCGFGGGGFGEGGGGGGGGGGGGGGGGGGGGGFEFGGGGGGF" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+        <test>\n+            <param name="type" value="single"/>\n+            <param name="fastq_input1" value="forward.fastq" />\n+            <param name="score_selector" value="median" />\n+            <param name="qual_selector" value="mask_reads" />\n+            <output name="output_filtered">\n+                <assert_contents>\n+                    <has_text text="@M01647:10:000000000-ACPHB:1:1101:18589:1580 1:N:0:86" />\n+                    <has_text text="NNNNNNTACCACATCCCNCNNNNTTNNNNNNNNNNANNTCNNTNNCNNTNCTNNNTNTNNNTGNTGCNTNTTTTTCAGTTCCCTTNGNTGNNGNCTTCAGNNNNTATACTGCATTTACCNTNCNT" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+        <test>\n+            <param name="type" value="single"/>\n+            <param name="fastq_input1" value="forward.fastq" />\n+            <param name="score_selector" value="mean" />\n+            <output name="output_filtered">\n+                <assert_contents>\n+                    <has_text text="@M01647:10:000000000-ACPHB:1:1101:10485:1674 1:N:0:86" />\n+                    <has_text text="CCCCCGG@FFGGGGGGGGGGGGCGGGGGGGGDGFFFGGGGGDEGCFGCFFFGGGGGGGGGGGGGGGGFGGGGGGGGGGFCFCGGGGCGFGGGGFGEGGGGGGGGGGGGGGGGGGGGGFEFGGGGGGF" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+    </tests>\n+    <help><![CDATA[\n+Quality Control\n+===============\n+\n+Perform quality control on FASTQ reads.]]></help>\n+    <citations>\n+    </citations>\n+</tool>\n'