Repository 'bowtie2'
hg clone https://toolshed.g2.bx.psu.edu/repos/devteam/bowtie2

Changeset 15:43d12513224b (2017-06-01)
Previous changeset 14:937aa69e715f (2017-04-12) Next changeset 16:8ccbdbe9a695 (2017-06-01)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bowtie2 commit cf554b9b69c32acb484c34fdc60384fa49c7c482
modified:
bowtie2_wrapper.xml
test-data/bowtie2-stats.out
test-data/bowtie2-test1.bam
test-data/bowtie2-test2.bam
added:
bowtie2_macros.xml
test-data/bowtie2-fq_il.fq
test-data/bowtie2-test_il.bam
removed:
read_group_macros.xml
b
diff -r 937aa69e715f -r 43d12513224b bowtie2_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bowtie2_macros.xml Thu Jun 01 06:47:03 2017 -0400
[
b'@@ -0,0 +1,326 @@\n+<macros>\n+    <!-- Import this at the top of your command block and then\n+         define rg_auto_name. -->\n+    <token name="@define_read_group_helpers@">\n+#def identifier_or_name($input1)\n+    #if hasattr($input1, \'element_identifier\')\n+        #return $input1.element_identifier\n+    #else\n+        #return $input1.name.rstrip(\'.gz\').rstrip(\'.fastq\').rstrip(\'.fq\').rstrip(\'bz2\')\n+    #end if\n+#end def\n+\n+#def clean(name)\n+    #import re\n+    #set $name_clean = re.sub(\'[^\\w\\-_\\.]\', \'_\', $name)\n+    #return $name_clean\n+#end def\n+\n+#def read_group_name_default($input1, $input2=None)\n+    #if $input2 is None\n+        #return $clean($identifier_or_name($input1))\n+    #else\n+        #import itertools\n+        #set $input_name1 = $clean($identifier_or_name($input1))\n+        #set $input_name2 = $clean($identifier_or_name($input2))\n+        #set $common_prefix = \'\'.join([c[0] for c in itertools.takewhile(lambda x: all(x[0] == y for y in x), itertools.izip(*[$input_name1, $input_name2]))])\n+        #if len($common_prefix) > 3\n+            #return $common_prefix\n+        #else\n+            #return $input_name1\n+        #end if\n+    #end if\n+#end def\n+\n+#def format_read_group(prefix, value, quote=\'\', arg=\'\')\n+    #if $value\n+        #return $arg + $quote + $prefix + $value + $quote\n+    #else\n+        #return \'\'\n+    #end if\n+#end def\n+\n+#def rg_param(name)\n+    #if $varExists("rg")\n+        #return $rg.get($name, None)\n+    #else\n+        #return $getVar($name, None)\n+    #end if\n+#end def\n+\n+#set $use_rg = True\n+    </token>\n+    <!-- preconditions use_rg and rg_auto_name have been\n+         defined.\n+    -->\n+    <token name="@set_read_group_vars@">\n+#if $use_rg\n+    #if $rg_param(\'read_group_id_conditional\') is None\n+        #set $rg_id = $rg_auto_name\n+    #elif $rg_param(\'read_group_id_conditional\').do_auto_name\n+        #set $rg_id = $rg_auto_name\n+    #else\n+        #set $rg_id = str($rg_param(\'read_group_id_conditional\').ID)\n+    #end if\n+\n+    #if $rg_param(\'read_group_sm_conditional\') is None\n+        #set $rg_sm = \'\'\n+    #elif $rg_param(\'read_group_sm_conditional\').do_auto_name\n+        #set $rg_sm = $rg_auto_name\n+    #else\n+        #set $rg_sm = str($rg_param(\'read_group_sm_conditional\').SM)\n+    #end if\n+\n+    #if $rg_param(\'PL\')\n+        #set $rg_pl = str($rg_param(\'PL\'))\n+    #else\n+        #set $rg_pl = \'\'\n+    #end if\n+\n+    #if $rg_param(\'read_group_lb_conditional\') is None\n+        #set $rg_lb = \'\'\n+    #elif $rg_param(\'read_group_lb_conditional\').do_auto_name\n+        #set $rg_lb = $rg_auto_name\n+    #else\n+        #set $rg_lb = str($rg_param(\'read_group_lb_conditional\').LB)\n+    #end if\n+\n+    #if $rg_param(\'CN\')\n+        #set $rg_cn = str($rg_param(\'CN\'))\n+    #else\n+        #set $rg_cn = \'\'\n+    #end if\n+\n+    #if $rg_param("DS")\n+        #set $rg_ds = str($rg_param("DS"))\n+    #else\n+        #set $rg_ds = \'\'\n+    #end if\n+\n+    #if $rg_param("DT")\n+        #set $rg_dt = str($rg_param("DT"))\n+    #else\n+        #set $rg_dt = \'\'\n+    #end if\n+\n+    #if $rg_param("FO")\n+        #set $rg_fo = str($rg_param("FO"))\n+    #else\n+        #set $rg_fo = \'\'\n+    #end if\n+\n+    #if $rg_param("KS")\n+        #set $rg_ks = str($rg_param("KS"))\n+    #else\n+        #set $rg_ks = \'\'\n+    #end if\n+\n+    #if $rg_param("PG")\n+        #set $rg_pg = str($rg_param("PG"))\n+    #else\n+        #set $rg_pg = \'\'\n+    #end if\n+\n+    #if $rg_param("PI") != None\n+        #set $rg_pi = str($rg_param("PI"))\n+    #else\n+        #set $rg_pi = \'\'\n+    #end if\n+\n+    #if $rg_param("PU")\n+        #set $rg_pu = str($rg_param("PU"))\n+    #else\n+        #set $rg_pu = \'\'\n+    #end if\n+#end if\n+    </token>\n+    <token name="@set_use_rg_var@">\n+#set $use_rg = str($rg.rg_selector) != "do_not_set"\n+    </token>\n+    <xml name="read_group_auto_name_conditional">\n+        <param name="do_auto_name" type="boolean" label="Auto-assign" help="Use dataset name or collection information to automatically assign this value" checked="false" />\n+  '..b'n with a 60-bp gap between them, that alignment is considered valid (as long as `-I` is also satisfied).  A 61-bp gap would not be valid in that case.  If trimming options `-3` or `-5` are also used, the `-X` constraint is applied with respect to the untrimmed mates, not the trimmed mates; Default=500"/>\n+                <param name="fr_rf_ff" type="select" display="radio" label="Select the upstream/downstream mate orientations for a valid paired-end alignment against the forward reference strand"\n+                       help="--fr, --rf, or --ff; E.g., if `--fr` is specified and there is a candidate paired-end alignment where mate 1 appears upstream of the reverse complement of mate 2 and the fragment length constraints (`-I` and `-X`) are met, that alignment is valid.  Also, if mate 2 appears upstream of the reverse complement of mate 1 and all other constraints are met, that too is valid. `--rf` likewise requires that an upstream mate1 be reverse-complemented and a downstream mate2 be forward-oriented. `--ff` requires both an upstream mate 1 and a downstream mate 2 to be forward-oriented; Default=--fr (appropriate for Illumina\'s Paired-end Sequencing Assay)">\n+                    <option value="--fr" selected="True">--fr</option>\n+                    <option value="--rf">--rf</option>\n+                    <option value="--ff">--ff</option>\n+                </param>\n+                <param argument="--no-mixed" name="no_mixed" type="boolean" truevalue="--no-mixed" falsevalue="" checked="False" label="Disable no-mixed behavior" help="--no-mixed; By default, when `bowtie2` cannot find a concordant or discordant alignment for a pair, it then tries to find alignments for the individual mates; default=False"/>\n+                <param argument="--no-discordant" name="no_discordant" type="boolean" truevalue="--no-discordant" falsevalue="" checked="False" label="Disable no-discordant behavior" help="--no-discordant; By default, `bowtie2` looks for discordant alignments if it cannot find any concordant alignments. A discordant alignment is an alignment where both mates align uniquely, but that does not satisfy the paired-end constraints (`--fr`/`--rf`/`--ff`, `-I`, `-X`); default=False"/>\n+                <param argument="--dovetail" name="dovetail" type="boolean" truevalue="--dovetail" falsevalue="" checked="False" label="Allow mate dovetailing" help="--dovetail; If the mates `dovetail`, that is if one mate alignment extends past the beginning of the other such that the wrong mate begins upstream, consider that to be concordant. Default=False"/>\n+                <param argument="--no-contain" name="no_contain" type="boolean" truevalue="--no-contain" falsevalue="" checked="False" label="Disallow one mate alignment to contain another" help="--no-contain; If one mate alignment contains the other, consider that to be non-concordant. Default=False"/>\n+                <param argument="--no-overlap" name="no_overlap" type="boolean" truevalue="--no-overlap" falsevalue="" checked="False" label="Disallow mate alignments to overlap" help="--no-overlap; If one mate alignment overlaps the other at all, consider that to be non-concordant. Default=False"/>\n+            </when>\n+            <when value="no">\n+                <!-- do nothing -->\n+            </when>\n+        </conditional>\n+    </xml>\n+    <xml name="align_unalign">\n+        <param name="unaligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write unaligned reads (in fastq format) to separate file(s)" help="--un/--un-conc (possibly with -gz or -bz2); This triggers --un parameter for single reads and --un-conc for paired reads" />\n+        <param name="aligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write aligned reads (in fastq format) to separate file(s)" help="--al/--al-conc (possibly with -gz or -bz2); This triggers --al parameter for single reads and --al-conc for paired reads" />\n+    </xml>\n+</macros>\n'
b
diff -r 937aa69e715f -r 43d12513224b bowtie2_wrapper.xml
--- a/bowtie2_wrapper.xml Wed Apr 12 17:09:42 2017 -0400
+++ b/bowtie2_wrapper.xml Thu Jun 01 06:47:03 2017 -0400
b
b'@@ -1,10 +1,10 @@\n-<tool id="bowtie2" name="Bowtie2" version="2.3.0.1" profile="17.01">\n+<tool id="bowtie2" name="Bowtie2" version="2.3.2.1" profile="17.01">\n     <description>- map reads against reference genome</description>\n     <macros>\n-        <import>read_group_macros.xml</import>\n+        <import>bowtie2_macros.xml</import>\n     </macros>\n     <requirements>\n-        <requirement type="package" version="2.3.0">bowtie2</requirement>\n+        <requirement type="package" version="2.3.2">bowtie2</requirement>\n         <requirement type="package" version="1.3.1">samtools</requirement>\n     </requirements>\n     <version_command>bowtie2 --version</version_command>\n@@ -66,6 +66,18 @@\n                 #set read2 = "input_r.fastq"\n             #end if\n             ln -s \'${library.input_1.reverse}\' ${read2} &&\n+\n+        #else if str($library.type) == \'paired_interleaved\':\n+            #if $library.input_1.is_of_type("fastq.gz", "fastqsanger.gz"):\n+                #set read1 = "input_il.fastq.gz"\n+                #set compressed = "GZ"\n+            #else if $library.input_1.is_of_type("fastq.bz2", "fastqsanger.bz2"):\n+                #set read1 = "input_il.fastq.bz2"\n+                #set compressed = "BZ2"\n+            #else:\n+                #set read1 = "input_il.fastq"\n+            #end if\n+            ln -s \'${library.input_1}\' ${read1} &&\n         #else:\n             #if $library.input_1.is_of_type("fastq.gz", "fastqsanger.gz"):\n                 #set read1 = "input_f.fastq.gz"\n@@ -110,6 +122,27 @@\n                     --al \'${output_aligned_reads_l}\'\n                 #end if\n             #end if\n+\n+        #elif str( $library.type ) == "paired_interleaved":\n+            --interleaved \'${read1}\'\n+            #if str( $library.unaligned_file ) == "true":\n+                #if $compressed == "GZ":\n+                    --un-gz \'${output_unaligned_reads_l}\'\n+                #else if $compressed == "BZ2":\n+                    --un-bz2 \'${output_unaligned_reads_l}\'\n+                #else:\n+                    --un \'${output_unaligned_reads_l}\'\n+                #end if\n+            #end if\n+            #if str( $library.aligned_file ) == "true":\n+                #if $compressed == "GZ":\n+                    --al-gz \'${output_aligned_reads_l}\'\n+                #else if $compressed == "BZ2":\n+                    --al-bz2 \'${output_aligned_reads_l}\'\n+                #else:\n+                    --al \'${output_aligned_reads_l}\'\n+                #end if\n+            #end if\n         #else:\n             -1 \'${read1}\'\n             -2 \'${read2}\'\n@@ -273,69 +306,36 @@\n               <option value="single">Single-end</option>\n               <option value="paired">Paired-end</option>\n               <option value="paired_collection">Paired-end Dataset Collection</option>\n+              <option value="paired_interleaved">Paired-end data from single interleaved dataset</option>\n             </param>\n \n             <when value="single">\n                 <param name="input_1" format="fastqsanger,fastqsanger.gz,fastqsanger.bz2" type="data" label="FASTQ file" help="Must be of datatype &quot;fastqsanger&quot;" />\n-                <param name="unaligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write unaligned reads (in fastq format) to separate file(s)" help="--un/--un-conc (possibly with -gz or -bz2); This triggers --un parameter for single reads and --un-conc for paired reads" />\n-                <param name="aligned_file" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write aligned reads (in fastq format) to separate file(s)" help="--al/--al-conc (possibly with -gz or -bz2); This triggers --al parameter for single reads and --al-conc for paired reads" />\n+\n+                <expand macro="align_unalign" />\n+\n             </when>\n             <when value="paired">\n                 <param name="input_1" format="fastqsanger,fastqsanger.gz,fastqsanger.bz2" type="data" label="FASTQ file #1'..b'asta" />\n             <param name="save_mapping_stats" value="true" />\n             <output name="output" file="bowtie2-test1.bam" ftype="bam" lines_diff="2"/>\n-            <output name="mapping_stats" file="bowtie2-stats.out" ftype="txt"/>\n+            <output name="mapping_stats">\n+                <assert_contents>\n+                    <has_text text="of these" />\n+                </assert_contents>\n+            </output>\n+        </test>\n+        <test>\n+            <!-- basic test on interleaved paired default run -->\n+            <param name="type" value="paired_interleaved"/>\n+            <!-- <param name="paired_options_selector" value="no"/> -->\n+            <param name="unaligned_file" value="false"/>\n+            <param name="analysis_type_selector" value="simple"/>\n+            <param name="rg_selector" value="set"/>\n+            <param name="ID" value="rg1"/>\n+            <param name="PL" value="CAPILLARY"/>\n+            <param name="source" value="history" />\n+            <param name="input_1" value="bowtie2-fq_il.fq" ftype="fastqsanger"/>\n+            <param name="own_file" value="bowtie2-ref.fasta" />\n+            <output name="output" file="bowtie2-test_il.bam" ftype="bam" lines_diff="2"/>\n         </test>\n         <test>\n             <!-- test fastqsanger.gz input -->\n             <param name="type" value="paired"/>\n-            <param name="selection" value="no"/>\n             <param name="paired_options_selector" value="no"/>\n             <param name="unaligned_file" value="false"/>\n             <param name="analysis_type_selector" value="simple"/>\n@@ -705,7 +719,6 @@\n         <test>\n             <!-- test fastqsanger.bz2 input -->\n             <param name="type" value="paired"/>\n-            <param name="selection" value="no"/>\n             <param name="paired_options_selector" value="no"/>\n             <param name="unaligned_file" value="false"/>\n             <param name="analysis_type_selector" value="simple"/>\n@@ -754,12 +767,15 @@\n \n **Inputs**\n \n-Bowtie 2 accepts files in Sanger FASTQ format (single or pair-end). Use the FASTQ Groomer to prepare your files.\n+Bowtie 2 accepts files in Sanger FASTQ format (single or paired-end). Paired-end data can represented as two individual (forward and reverse) datasets, as well as a single interleaved dataset (see an example at the end of the help section).\n \n ------\n \n **Input options**::\n \n+    --interleaved\n+            Reads interleaved FASTQ files where the first two records (8 lines) represent a mate pair.\n+\n     -s/--skip <int>\n             Skip (i.e. do not align) the first `<int>` reads or pairs in the input.\n \n@@ -1137,6 +1153,57 @@\n             but might be more appropriate in situations where the input consists of many\n             identical reads.\n \n+-----\n+\n+\n+**Paired-end (and mate-pair) data in fastq format**\n+\n+Paired end datasets can be represented as two individual datasets:\n+\n+First dataset::\n+\n+ @1/1\n+ AGGGATGTGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTA\n+ +\n+ EGGEGGGDFGEEEAEECGDEGGFEEGEFGBEEDDECFEFDD@CDD<ED\n+ @2/1\n+ AGGGATGTGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTA\n+ +\n+ HHHHHHEGFHEEFEEHEEHHGGEGGGGEFGFGGGGHHHHFBEEEEEFG\n+\n+Second dataset::\n+\n+ @1/2\n+ CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC\n+ +\n+ GHHHDFDFGFGEGFBGEGGEGEGGGHGFGHFHFHHHHHHHEF?EFEFF\n+ @2/2\n+ CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC\n+ +\n+ HHHHHHHHHHHHHGHHHHHHGHHHHHHHHHHHFHHHFHHHHHHHHHHH\n+\n+Or a single *interleaved* dataset::\n+\n+ @1/1\n+ AGGGATGTGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTA\n+ +\n+ EGGEGGGDFGEEEAEECGDEGGFEEGEFGBEEDDECFEFDD@CDD<ED\n+ @1/2\n+ CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC\n+ +\n+ GHHHDFDFGFGEGFBGEGGEGEGGGHGFGHFHFHHHHHHHEF?EFEFF\n+ @2/1\n+ AGGGATGTGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTAGGGTTA\n+ +\n+ HHHHHHEGFHEEFEEHEEHHGGEGGGGEFGFGGGGHHHHFBEEEEEFG\n+ @2/2\n+ CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC\n+ +\n+ HHHHHHHHHHHHHGHHHHHHGHHHHHHHHHHHFHHHFHHHHHHHHHHH\n+\n+\n+\n+\n     ]]></help>\n     <citations>\n     <citation type="doi">10.1186/gb-2009-10-3-r25</citation>\n'
b
diff -r 937aa69e715f -r 43d12513224b read_group_macros.xml
--- a/read_group_macros.xml Wed Apr 12 17:09:42 2017 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,294 +0,0 @@\n-<macros>\n-    <!-- Import this at the top of your command block and then\n-         define rg_auto_name. -->\n-    <token name="@define_read_group_helpers@">\n-#def identifier_or_name($input1)\n-    #if hasattr($input1, \'element_identifier\')\n-        #return $input1.element_identifier\n-    #else\n-        #return $input1.name.rstrip(\'.gz\').rstrip(\'.fastq\').rstrip(\'.fq\')\n-    #end if\n-#end def\n-\n-#def clean(name)\n-    #import re\n-    #set $name_clean = re.sub(\'[^\\w\\-_\\.]\', \'_\', $name)\n-    #return $name_clean\n-#end def\n-\n-#def read_group_name_default($input1, $input2=None)\n-    #if $input2 is None\n-        #return $clean($identifier_or_name($input1))\n-    #else\n-        #import itertools\n-        #set $input_name1 = $clean($identifier_or_name($input1))\n-        #set $input_name2 = $clean($identifier_or_name($input2))\n-        #set $common_prefix = \'\'.join([c[0] for c in itertools.takewhile(lambda x: all(x[0] == y for y in x), itertools.izip(*[$input_name1, $input_name2]))])\n-        #if len($common_prefix) > 3\n-            #return $common_prefix\n-        #else\n-            #return $input_name1\n-        #end if\n-    #end if\n-#end def\n-\n-#def format_read_group(prefix, value, quote=\'\', arg=\'\')\n-    #if $value\n-        #return $arg + $quote + $prefix + $value + $quote\n-    #else\n-        #return \'\'\n-    #end if\n-#end def\n-\n-#def rg_param(name)\n-    #if $varExists("rg")\n-        #return $rg.get($name, None)\n-    #else\n-        #return $getVar($name, None)\n-    #end if\n-#end def\n-\n-#set $use_rg = True\n-    </token>\n-    <!-- preconditions use_rg and rg_auto_name have been\n-         defined.\n-    -->\n-    <token name="@set_read_group_vars@">\n-#if $use_rg\n-    #if $rg_param(\'read_group_id_conditional\') is None\n-        #set $rg_id = $rg_auto_name\n-    #elif $rg_param(\'read_group_id_conditional\').do_auto_name\n-        #set $rg_id = $rg_auto_name\n-    #else\n-        #set $rg_id = str($rg_param(\'read_group_id_conditional\').ID)\n-    #end if\n-\n-    #if $rg_param(\'read_group_sm_conditional\') is None\n-        #set $rg_sm = \'\'\n-    #elif $rg_param(\'read_group_sm_conditional\').do_auto_name\n-        #set $rg_sm = $rg_auto_name\n-    #else\n-        #set $rg_sm = str($rg_param(\'read_group_sm_conditional\').SM)\n-    #end if\n-\n-    #if $rg_param(\'PL\')\n-        #set $rg_pl = str($rg_param(\'PL\'))\n-    #else\n-        #set $rg_pl = \'\'\n-    #end if\n-\n-    #if $rg_param(\'read_group_lb_conditional\') is None\n-        #set $rg_lb = \'\'\n-    #elif $rg_param(\'read_group_lb_conditional\').do_auto_name\n-        #set $rg_lb = $rg_auto_name\n-    #else\n-        #set $rg_lb = str($rg_param(\'read_group_lb_conditional\').LB)\n-    #end if\n-\n-    #if $rg_param(\'CN\')\n-        #set $rg_cn = str($rg_param(\'CN\'))\n-    #else\n-        #set $rg_cn = \'\'\n-    #end if\n-\n-    #if $rg_param("DS")\n-        #set $rg_ds = str($rg_param("DS"))\n-    #else\n-        #set $rg_ds = \'\'\n-    #end if\n-\n-    #if $rg_param("DT")\n-        #set $rg_dt = str($rg_param("DT"))\n-    #else\n-        #set $rg_dt = \'\'\n-    #end if\n-\n-    #if $rg_param("FO")\n-        #set $rg_fo = str($rg_param("FO"))\n-    #else\n-        #set $rg_fo = \'\'\n-    #end if\n-\n-    #if $rg_param("KS")\n-        #set $rg_ks = str($rg_param("KS"))\n-    #else\n-        #set $rg_ks = \'\'\n-    #end if\n-\n-    #if $rg_param("PG")\n-        #set $rg_pg = str($rg_param("PG"))\n-    #else\n-        #set $rg_pg = \'\'\n-    #end if\n-\n-    #if $rg_param("PI") != None\n-        #set $rg_pi = str($rg_param("PI"))\n-    #else\n-        #set $rg_pi = \'\'\n-    #end if\n-\n-    #if $rg_param("PU")\n-        #set $rg_pu = str($rg_param("PU"))\n-    #else\n-        #set $rg_pu = \'\'\n-    #end if\n-#end if\n-    </token>\n-    <token name="@set_use_rg_var@">\n-#set $use_rg = str($rg.rg_selector) != "do_not_set"\n-    </token>\n-    <xml name="read_group_auto_name_conditional">\n-        <param name="do_auto_name" type="boolean" label="Auto-assign" help="Use dataset name or collection information to automatically assign this value" checked="no" />\n-        <when value'..b' label="Description (DS)" />\n-    </xml>\n-    <xml name="read_group_dt_param">\n-        <param name="DT" type="text" label="Date that run was produced (DT)" help="ISO8601 format date or date/time, like YYYY-MM-DD" />\n-    </xml>\n-    <xml name="read_group_fo_param">\n-        <param name="FO" type="text" optional="true" label="Flow order (FO)" help="The array of nucleotide bases that correspond to the nucleotides used for each flow of each read. Multi-base flows are encoded in IUPAC format, and non-nucleotide flows by various other characters. Format: /\\*|[ACMGRSVTWYHKDBN]+/">\n-          <validator type="regex" message="Invalid flow order">\\*|[ACMGRSVTWYHKDBN]+$</validator>\n-        </param>\n-    </xml>\n-    <xml name="read_group_ks_param">\n-        <param name="KS" type="text" label="The array of nucleotide bases that correspond to the key sequence of each read (KS)" />\n-    </xml>\n-    <xml name="read_group_pg_param">\n-        <param name="PG" type="text" label="Programs used for processing the read group (PG)" />\n-    </xml>\n-    <xml name="read_group_pi_param">\n-        <param name="PI" type="integer" optional="true" label="Predicted median insert size (PI)" />\n-    </xml>\n-    <xml name="read_group_pu_param">\n-        <param name="PU" type="text" label="Platform unit (PU)" help="Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" optional="True" />\n-    </xml>\n-    <xml name="read_group_pu_required_param">\n-        <param name="PU" type="text" label="Platform unit (PU)" help="Unique identifier (e.g. flowcell-barcode.lane for Illumina or slide for SOLiD)" optional="False" />\n-    </xml>\n-    <!-- Only ID is required - all groups available -->\n-    <xml name="read_group_inputs_spec">\n-        <expand macro="read_group_id_conditional" />\n-        <expand macro="read_group_sm_conditional" />\n-        <expand macro="read_group_pl_param" />\n-        <expand macro="read_group_lb_conditional" />\n-        <expand macro="read_group_cn_param" />\n-        <expand macro="read_group_ds_param" />\n-        <expand macro="read_group_dt_param" />\n-        <expand macro="read_group_fo_param" />\n-        <expand macro="read_group_ks_param" />\n-        <expand macro="read_group_pg_param" />\n-        <expand macro="read_group_pi_param" />\n-        <expand macro="read_group_pu_param" />\n-    </xml>\n-    <!-- ID, SM, LB, PU, PL all required - not ks, pg, or fo params. -->\n-    <xml name="read_group_inputs_picard">\n-        <expand macro="read_group_id_conditional" />\n-        <expand macro="read_group_sm_required_conditional" />\n-        <expand macro="read_group_lb_required_conditional" />\n-        <expand macro="read_group_pl_param" />\n-        <expand macro="read_group_pu_required_param" />\n-        <expand macro="read_group_cn_param" />\n-        <expand macro="read_group_ds_param" />\n-        <expand macro="read_group_pi_param" />\n-        <expand macro="read_group_dt_param" />\n-    </xml>\n-    <xml name="read_group_conditional">\n-        <conditional name="rg">\n-            <param name="rg_selector" type="select" label="Set read groups information?" help="Specifying read group information can greatly simplify your downstream analyses by allowing combining multiple datasets.">\n-                <option value="set">Set read groups (SAM/BAM specification)</option>\n-                <option value="set_picard">Set read groups (Picard style)</option>\n-                <option value="set_id_auto">Automatically assign ID</option>\n-                <option value="do_not_set" selected="True">Do not set</option>\n-            </param>\n-            <when value="set_picard">\n-                <expand macro="read_group_inputs_picard" />\n-            </when>\n-            <when value="set">\n-                <expand macro="read_group_inputs_spec" />\n-            </when>\n-            <when value="set_id_auto">\n-            </when>\n-            <when value="do_not_set">\n-            </when>\n-        </conditional>\n-    </xml>\n-</macros>\n'
b
diff -r 937aa69e715f -r 43d12513224b test-data/bowtie2-fq_il.fq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie2-fq_il.fq Thu Jun 01 06:47:03 2017 -0400
b
@@ -0,0 +1,24 @@
+@M01368:8:000000000-A3GHV:1:1101:6911:8255/1
+ATCTGGTTCCTACTTCAGGGCCATAAAACCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATT
++
+BCCCCFFFFFFFGGGGGGGGGGGHHHHGHGHHHHHHHHHGGGGGGHHHHGHHHHHHHHHHGHHHHHHGGHGGHHHGHHHHFHHGHHHHHHHHHGHEHEFFGHHEGGCEFGGFHHHBGHHGHHHHGHFHHHGHGHGHGGCDFDDACGGGGGGGAAFFFFFFFFFBAFFFFFB;FFFFFFADDFFFFFFFFFFEFFFFFFFFFFBFFFFFFFFFFFFFFEFFFFFFFFBFEFFFFEFE;DFFFDFBFF/9BFB
+@M01368:8:000000000-A3GHV:1:1101:6911:8255/2
+TCGCCTTACCGCTACTCACCCACGGCGGCCATCAGCCGATACTAAGTTTGGGGTATGGTGGGGGGGATAATGAATTAGGTTGTGGGGGAGGGTTTGTGGTTGAGAGAAACACAAAAAACAATCTTATATATGGGTAGTCGTTTTGTATTGGTTTTTTGTTTTGTTTGTGTTTTGAGTGTCGGTTTAGTTCGGTGTACTAGGGGGGGTGGATGGGGTCGGCTGGTGAGGGGGTCTTAGTGTATTGAGTGTGG
++
+1>11111@11111A111A100000000////011110//>>/12@1@22B/////1@>21/>>/-----9/;////9////--;-;-;-----;--------9/-/-///9-;-------9//////9/////-//-/9-;-;9--/////99-;--9-:-;----/---/-----////---9-/////--;A-//////---------9/-----;-----/-/-----;--;//////////9;///-
+@M01368:8:000000000-A3GHV:1:1101:14518:9998/1
+GTTATTATTATGTCCTACAAGCATTAATTAATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGGGATAGACCTGTGATCCATCGTGAT
++
+AAAAAFFFFFFFGGGGGGGGGGHGGHHHHGHHHHHHHGCGHHHHHHHHHHHHHHHGGGGGHHHHHHHHHGHHGFHFE5BGEEHFGGGHHHHHHHHFBHHGGGGFHGHHFGHHHHGHHHHHHGEGGGGFHFHGEGHHGGCDGDGHGGGDGGHGGCGGGHGHHH/ACDG?.1FGCDCCGCA.CC@CDCHFHGFFGGGEBFGAB//CEFBFGG.:;D;;A0AFFFFFB..:@ABFF//;BFFFFFBF/9D:A//
+@M01368:8:000000000-A3GHV:1:1101:14518:9998/2
+CATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACTTACTAAAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAA
++
+CCCCCFCCCCCFGGGGGGGGGGHHHHHHHHHHHHHHHHGFHHHHGGGGGHGFHHHHHHHHHHHHHHHHHHHGHGGEHGGGGCGGGHHGGCGGGGGHHGHHHGGGGGGGG.BFFFGAGADFGAFDGFGGCFFF;DDFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFF09FFFE00;BE@;DABBFFFFFBBFB00;F:9;FFBFFF9BFFFFFFFFFFFFF90/::BFFFBF0
+@M01368:8:000000000-A3GHV:1:1101:18422:19051/1
+GTATCCGACATCTGGTTCCTACTTCAGGGTCATAAAACCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACG
++
+CCCCCFDDDDDFGGGGGGGGGGHHHHHHHHHHHHHHHHGHHHHHHFHHHHGGGGHHHHHHHHHGHHHHHHHHHHHHGGHGGHHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHGCGGGHHHHHHHHHHHHHHHHHHHHHHGFDHGFHCFGGGGFGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFFFFFFFFF:FFF.
+@M01368:8:000000000-A3GHV:1:1101:18422:19051/2
+CTACAAGCATTAATTAATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGGGATAGACCTGTGATCCATCGTGATGTCTTATTTAAGGG
++
+BCCCCFFCFFFFGGGGGGGGGGHHHGHHHHHHHHHHHHHHHHGGGGHHHHHHHHEHHHHHHHGGHHGGHGGHHHHHHHGHGGHHHGGGGGHGHHHHGGGHFHFHHHHHGGGGGHBFFCGDHHHGGGGGGHGGGGGGHHGCGGGFGHHBGGGGGFFFHEGGGGGCDCCE@EFGHHHHFHEGHGFFHHGB;ECBFGGGEFEFFGF0AFGFGFFG.;;DFFFFFFFFFF090BFFFE?FEFBBFBFFFB990BF
\ No newline at end of file
b
diff -r 937aa69e715f -r 43d12513224b test-data/bowtie2-stats.out
--- a/test-data/bowtie2-stats.out Wed Apr 12 17:09:42 2017 -0400
+++ b/test-data/bowtie2-stats.out Thu Jun 01 06:47:03 2017 -0400
b
@@ -1,3 +1,5 @@
+bowtie2-align-s(30685,0x7fffceb5b3c0) malloc: *** malloc_zone_unregister() failed for 0x7fffceb51000
+bowtie2-align-s(30686,0x7fffceb5b3c0) malloc: *** malloc_zone_unregister() failed for 0x7fffceb51000
 100 reads; of these:
   100 (100.00%) were paired; of these:
     97 (97.00%) aligned concordantly 0 times
b
diff -r 937aa69e715f -r 43d12513224b test-data/bowtie2-test1.bam
b
Binary file test-data/bowtie2-test1.bam has changed
b
diff -r 937aa69e715f -r 43d12513224b test-data/bowtie2-test2.bam
b
Binary file test-data/bowtie2-test2.bam has changed
b
diff -r 937aa69e715f -r 43d12513224b test-data/bowtie2-test_il.bam
b
Binary file test-data/bowtie2-test_il.bam has changed