Repository 'stacks_denovomap'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/stacks_denovomap

Changeset 8:39d2b6c1c030 (2017-04-27)
Previous changeset 7:2505774ded94 (2017-04-07) Next changeset 9:2b1dd7ab69f7 (2017-05-21)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks commit dc23703c260d004a28fe24a2a7c00cb4371bc32e
modified:
macros.xml
stacks_denovomap.xml
added:
test-data/demultiplexed/PopA_01.1.fq.gzip
test-data/denovo_map/popmap_cstacks.tsv
test-data/procrad/R1.fq.gzip
test-data/ustacks/ustacks.out
b
diff -r 2505774ded94 -r 39d2b6c1c030 macros.xml
--- a/macros.xml Fri Apr 07 11:47:48 2017 -0400
+++ b/macros.xml Thu Apr 27 04:17:51 2017 -0400
[
@@ -2,14 +2,14 @@
 <macros>
     <xml name="requirements">
         <requirements>
-            <requirement type="package" version="1.42">stacks</requirement>
+            <requirement type="package" version="1.46">stacks</requirement>
             <requirement type="package" version="1.2.10">velvet</requirement>
-            <container type="docker">quay.io/biocontainers/stacks:1.42--2</container>
+            <requirement type="package" version="1.1">stacks_summary</requirement>
             <yield/>
         </requirements>
     </xml>
 
-    <token name="@WRAPPER_VERSION@">1.42</token>
+    <token name="@WRAPPER_VERSION@">1.46</token>
 
     <xml name="stdio">
         <stdio>
@@ -90,6 +90,7 @@
         <option value="bsaHI">bsaHI</option>
         <option value="hpaII">hpaII</option>
         <option value="ncoI">ncoI</option>
+        <option value="ApaLI">ApaLI</option>
     </xml>
 
     <xml name="cross_types">
@@ -100,6 +101,19 @@
         <option value="GEN">GEN (generic, unspecific to any map type)</option>
     </xml>
 
+    <token name="@CLEAN_EXT@">
+        <![CDATA[
+        #from os.path import splitext
+        #import re
+        #def clean_ext($identifier)
+            #while $identifier.endswith(('.1', '.fa', '.fq', '.fasta', '.fastq', '.gz', '.gzip', '.sam', '.bam'))
+                #set $identifier = splitext($identifier)[0]
+            #end while
+$identifier#slurp
+        #end def
+        ]]>
+    </token>
+
     <token name="@NORM_GENOTYPES_OUTPUT_LIGHT@">
         <![CDATA[
         ##¬†We need to do this as the output file names contains the value of an option (min progeny)
b
diff -r 2505774ded94 -r 39d2b6c1c030 stacks_denovomap.xml
--- a/stacks_denovomap.xml Fri Apr 07 11:47:48 2017 -0400
+++ b/stacks_denovomap.xml Thu Apr 27 04:17:51 2017 -0400
[
b'@@ -6,54 +6,47 @@\n     <expand macro="requirements"/>\n     <expand macro="stdio"/>\n     <command><![CDATA[\n-        #from os.path import splitext\n-        #import re\n \n-        #if str( $options_usage.rad_analysis_type ) == "genetic":\n-            #for $input_parent in $options_usage.parent_sequences:\n+        @CLEAN_EXT@\n \n-                #if $input_parent.is_of_type(\'fastqsanger\'):\n-                    #set $data_path = splitext($input_parent.element_identifier)[0]\n-                    #set $data_path = re.sub(r\'\\.1$\', \'\', $data_path)\n-                    #set $data_path = $data_path + ".fq"\n-                #else:\n-                    #set $data_path = splitext($input_parent.element_identifier)[0]\n-                    #set $data_path = re.sub(r\'\\.1$\', \'\', $data_path)\n-                    #set $data_path = $data_path + ".fa"\n+        #if str( $options_usage.rad_analysis_type ) == "genetic"\n+            #for $input_parent in $options_usage.parent_sequences\n+                #if $input_parent.is_of_type(\'fastqsanger\')\n+                    #set $data_path = $clean_ext($input_parent.element_identifier) + ".fq"\n+                #else if $input_parent.is_of_type(\'fastqsanger.gz\')\n+                    #set $data_path = $clean_ext($input_parent.element_identifier) + ".fq.gz"\n+                #else\n+                    #set $data_path = $clean_ext($input_parent.element_identifier) + ".fa"\n                 #end if\n \n-                ln -s "${input_parent}" "${data_path}" &&\n+                ln -s \'${input_parent}\' \'${data_path}\' &&\n             #end for\n \n-            #for $input_progeny in $options_usage.progeny_sequences:\n-                #if $input_progeny:\n-                    #if $input_progeny.is_of_type(\'fastqsanger\'):\n-                        #set $data_path = splitext($input_progeny.element_identifier)[0]\n-                        #set $data_path = re.sub(r\'\\.1$\', \'\', $data_path)\n-                        #set $data_path = $data_path + ".fq"\n-                    #else:\n-                        #set $data_path = splitext($input_progeny.element_identifier)[0]\n-                        #set $data_path = re.sub(r\'\\.1$\', \'\', $data_path)\n-                        #set $data_path = $data_path + ".fa"\n+            #for $input_progeny in $options_usage.progeny_sequences\n+                #if $input_progeny\n+                    #if $input_progeny.is_of_type(\'fastqsanger\')\n+                        #set $data_path = $clean_ext($input_progeny.element_identifier) + ".fq"\n+                    #else if $input_progeny.is_of_type(\'fastqsanger.gz\')\n+                        #set $data_path = $clean_ext($input_progeny.element_identifier) + ".fq.gz"\n+                    #else\n+                        #set $data_path = $clean_ext($input_progeny.element_identifier) + ".fa"\n                     #end if\n \n-                    ln -s "${input_progeny}" "${data_path}" &&\n+                    ln -s \'${input_progeny}\' \'${data_path}\' &&\n                 #end if\n             #end for\n-        #else:\n-            #for $input_indiv in $options_usage.individual_sample:\n+        #else\n+            #for $input_indiv in $options_usage.individual_sample\n \n-                #if $input_indiv.is_of_type(\'fastqsanger\'):\n-                    #set $data_path = splitext($input_indiv.element_identifier)[0]\n-                    #set $data_path = re.sub(r\'\\.1$\', \'\', $data_path)\n-                    #set $data_path = $data_path + ".fq"\n-                #else:\n-                    #set $data_path = splitext($input_indiv.element_identifier)[0]\n-                    #set $data_path = re.sub(r\'\\.1$\', \'\', $data_path)\n-                    #set $data_path = $data_path + ".fa"\n+                #if $input_indiv.is_of_type(\'fastqsanger\')\n+                    #set $data_path = $clean_ext($input_indiv.element_identifier) + ".fq"\n+                #else if $input_indiv.is_of_type(\'fastqsanger.gz\')\n+                    #set $data_path = $clean_ext($input_indiv.element_identifier) + ".fq.gz"\n+    '..b'           <has_text text="Stacks Statistics" />\n+                </assert_contents>\n+            </output>\n \n             <!-- catalog -->\n             <output name="catalogtags">\n@@ -392,6 +401,11 @@\n                     <has_text text="denovo_map.pl completed" />\n                 </assert_contents>\n             </output>\n+            <output name="output_summary">\n+                <assert_contents>\n+                    <has_text text="Stacks Statistics" />\n+                </assert_contents>\n+            </output>\n \n             <!-- catalog -->\n             <output name="catalogtags">\n@@ -467,6 +481,89 @@\n                 </element>\n             </output_collection>\n         </test>\n+        <test>\n+            <param name="options_usage|rad_analysis_type" value="genetic"/>\n+            <param name="options_usage|parent_sequences" value="demultiplexed/PopA_01.1.fq.gzip" ftype="fastqsanger.gz" />\n+            <output name="output_log">\n+                <assert_contents>\n+                    <has_text text="denovo_map.pl completed" />\n+                </assert_contents>\n+            </output>\n+            <output name="output_summary">\n+                <assert_contents>\n+                    <has_text text="Stacks Statistics" />\n+                </assert_contents>\n+            </output>\n+\n+            <!-- catalog -->\n+            <output name="catalogtags">\n+                <assert_contents>\n+                    <has_text text="catalog generated on" />\n+                </assert_contents>\n+            </output>\n+            <output name="catalogsnps">\n+                <assert_contents>\n+                    <has_text text="catalog generated on" />\n+                </assert_contents>\n+            </output>\n+            <output name="catalogalleles">\n+                <assert_contents>\n+                    <has_text text="catalog generated on" />\n+                </assert_contents>\n+            </output>\n+\n+            <!-- genotypes -->\n+            <output name="out_generic_haplo">\n+                <assert_contents>\n+                    <has_text text="Catalog ID" />\n+                </assert_contents>\n+            </output>\n+            <output name="out_sql_markers">\n+                <assert_contents>\n+                    <has_text text="Total Genotypes" />\n+                </assert_contents>\n+            </output>\n+            <output name="out_joinmap">\n+                <assert_contents>\n+                    <has_text text="batch_1.genotypes_" />\n+                </assert_contents>\n+            </output>\n+            <output name="out_sql_genotypes">\n+                <assert_contents>\n+                    <has_text text="SQL ID" />\n+                </assert_contents>\n+            </output>\n+\n+            <!-- samples -->\n+            <output_collection name="tags">\n+                <element name="PopA_01.tags">\n+                    <assert_contents>\n+                        <has_text text="generated on " />\n+                    </assert_contents>\n+                </element>\n+            </output_collection>\n+            <output_collection name="snps">\n+                <element name="PopA_01.snps">\n+                    <assert_contents>\n+                        <has_text text="generated on " />\n+                    </assert_contents>\n+                </element>\n+            </output_collection>\n+            <output_collection name="alleles">\n+                <element name="PopA_01.alleles">\n+                    <assert_contents>\n+                        <has_text text="generated on " />\n+                    </assert_contents>\n+                </element>\n+            </output_collection>\n+            <output_collection name="matches">\n+                <element name="PopA_01.matches">\n+                    <assert_contents>\n+                        <has_text text="generated on " />\n+                    </assert_contents>\n+                </element>\n+            </output_collection>\n+        </test>\n     </tests>\n \n     <help>\n'
b
diff -r 2505774ded94 -r 39d2b6c1c030 test-data/demultiplexed/PopA_01.1.fq.gzip
b
Binary file test-data/demultiplexed/PopA_01.1.fq.gzip has changed
b
diff -r 2505774ded94 -r 39d2b6c1c030 test-data/denovo_map/popmap_cstacks.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/denovo_map/popmap_cstacks.tsv Thu Apr 27 04:17:51 2017 -0400
b
@@ -0,0 +1,1 @@
+PopA_01 myPopA
b
diff -r 2505774ded94 -r 39d2b6c1c030 test-data/procrad/R1.fq.gzip
b
Binary file test-data/procrad/R1.fq.gzip has changed
b
diff -r 2505774ded94 -r 39d2b6c1c030 test-data/ustacks/ustacks.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ustacks/ustacks.out Thu Apr 27 04:17:51 2017 -0400
b
@@ -0,0 +1,41 @@
+ustacks parameters selected:
+  Sample ID: 1
+  Min depth of coverage to create a stack: 2
+  Max distance allowed between stacks: 2
+  Max distance allowed to align secondary reads: 4
+  Max number of stacks allowed per de novo locus: 3
+  Deleveraging algorithm: disabled
+  Removal algorithm: enabled
+  Model type: SNP
+  Alpha significance level for model: 0.05
+  Gapped alignments: disabled
+Parsing stacks_inputs/PopA_01.fq
+Loading RAD-Tags...done
+Loaded 66 RAD-Tags.
+  Inserted 7 elements into the RAD-Tags hash map.
+  0 reads contained uncalled nucleotides that were modified.
+4 initial stacks were populated; 3 stacks were set aside as secondary reads.
+Initial coverage mean: 15.75; Std Dev: 7.46241; Max: 27
+Deleveraging trigger: 23; Removal trigger: 31
+Calculating distance for removing repetitive stacks.
+  Distance allowed between stacks: 1; searching with a k-mer length of 47 (48 k-mers per read); 1 k-mer hits required.
+Removing repetitive stacks.
+  Removed 0 stacks.
+  4 stacks remain for merging.
+Post-Repeat Removal, coverage depth Mean: 15.75; Std Dev: 7.46241; Max: 27
+Calculating distance between stacks...
+  Distance allowed between stacks: 2; searching with a k-mer length of 31 (64 k-mers per read); 2 k-mer hits required.
+Merging stacks, maximum allowed distance: 2 nucleotide(s)
+  4 stacks merged into 3 loci; deleveraged 0 loci; blacklisted 0 loci.
+After merging, coverage depth Mean: 21; Std Dev: 4.24264; Max: 27
+Merging remainder radtags
+  3 remainder sequences left to merge.
+  Distance allowed between stacks: 4; searching with a k-mer length of 17 (78 k-mers per read); 10 k-mer hits required.
+  Matched 3 remainder reads; unable to match 0 remainder reads.
+After remainders merged, coverage depth Mean: 22; Std Dev: 4.32049; Max: 28
+Calling final consensus sequences, invoking SNP-calling model...
+Number of utilized reads: 66
+Writing loci, SNPs, and alleles to 'stacks_outputs/'...
+  Refetching sequencing IDs from stacks_inputs/PopA_01.fq... read 66 sequence IDs.
+done.
+ustacks is done.