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

Changeset 7:fe34990e5ce7 (2021-09-28)
Previous changeset 6:22970df7a40e (2019-09-06) Next changeset 8:fefd89ab563c (2023-11-20)
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/samtools/samtools_flagstat commit 0f75269223c0821c6c82acf98fde947d0f816f2b"
modified:
macros.xml
samtools_flagstat.xml
test-data/samtools_flagstat_out1.txt
added:
test-data/samtools_flagstat_out1.json
test-data/samtools_flagstat_out1.tsv
b
diff -r 22970df7a40e -r fe34990e5ce7 macros.xml
--- a/macros.xml Fri Sep 06 11:22:29 2019 -0400
+++ b/macros.xml Tue Sep 28 16:13:41 2021 +0000
[
@@ -5,10 +5,16 @@
             <yield/>
         </requirements>
     </xml>
-    <token name="@TOOL_VERSION@">1.9</token>
-    <token name="@FLAGS@">#set $flags = sum(map(int, str($filter).split(',')))</token>
+    <token name="@TOOL_VERSION@">1.13</token>
+    <token name="@PROFILE@">20.05</token>
+    <token name="@FLAGS@"><![CDATA[
+        #set $flags = 0
+        #if $filter
+            #set $flags = sum(map(int, str($filter).split(',')))
+        #end if
+    ]]></token>
     <token name="@PREPARE_IDX@"><![CDATA[
-        ##prepare input and indices 
+        ##prepare input and indices
         ln -s '$input' infile &&
         #if $input.is_of_type('bam'):
             #if str( $input.metadata.bam_index ) != "None":
@@ -25,7 +31,7 @@
         #end if
     ]]></token>
     <token name="@PREPARE_IDX_MULTIPLE@"><![CDATA[
-        ##prepare input and indices 
+        ##prepare input and indices
         #for $i, $bam in enumerate( $input_bams ):
             ln -s '$bam' '${i}' &&
             #if $bam.is_of_type('bam'):
@@ -63,6 +69,51 @@
             #set reffai=None
         #end if
     ]]></token>
+
+    <xml name="optional_reference">
+        <conditional name="addref_cond">
+            <param name="addref_select" type="select" label="Use a reference sequence">
+                <help>@HELP@</help>
+                <option value="no">No</option>
+                <option value="history">Use a genome/index from the history</option>
+                <option value="cached">Use a built-in genome</option>
+            </param>
+            <when value="no"/>
+            <when value="history">
+                <param name="ref" argument="@ARGUMENT@" type="data" format="fasta,fasta.gz" label="Reference"/>
+            </when>
+            <when value="cached">
+                <param name="ref" argument="@ARGUMENT@" type="select" label="Reference">
+                    <options from_data_table="fasta_indexes">
+                        <filter type="data_meta" ref="input" key="dbkey" column="dbkey"/>
+                    </options>
+                    <validator  type="no_options" message="No reference genome is available for the build associated with the selected input dataset"/>
+                </param>
+            </when>
+        </conditional>
+    </xml>
+    <xml name="mandatory_reference" token_help="" token_argument="">
+        <conditional name="addref_cond">
+            <param name="addref_select" type="select" label="Use a reference sequence">
+                <help>@HELP@</help>
+                <option value="history">Use a genome/index from the history</option>
+                <option value="cached">Use a built-in genome</option>
+            </param>
+            <when value="history">
+                <param name="ref" argument="@ARGUMENT@" type="data" format="fasta,fasta.gz" label="Reference"/>
+            </when>
+            <when value="cached">
+                <param name="ref" argument="@ARGUMENT@" type="select" label="Reference">
+                    <options from_data_table="fasta_indexes">
+                        <filter type="data_meta" ref="input" key="dbkey" column="dbkey"/>
+                        <validator message="No reference genome is available for the build associated with the selected input dataset" type="no_options" />
+                    </options>
+                </param>
+            </when>
+        </conditional>
+    </xml>
+
+
     <token name="@ADDTHREADS@"><![CDATA[
         ##compute the number of ADDITIONAL threads to be used by samtools (-@)
         addthreads=\${GALAXY_SLOTS:-1} && (( addthreads-- )) &&
@@ -70,28 +121,28 @@
     <token name="@ADDMEMORY@"><![CDATA[
         ##compute the number of memory available to samtools sort (-m)
         ##use only 75% of available: https://github.com/samtools/samtools/issues/831
-        addmemory=\${GALAXY_MEMORY_MB_PER_SLOT:-768} && 
+        addmemory=\${GALAXY_MEMORY_MB_PER_SLOT:-768} &&
         ((addmemory=addmemory*75/100)) &&
     ]]></token>
     <xml name="seed_input">
-       <param name="seed" type="integer" optional="True" label="Seed for random number generator" help="If empty a random seed is used." /> 
+       <param name="seed" type="integer" optional="True" label="Seed for random number generator" help="If empty a random seed is used." />
     </xml>
-    <xml name="flag_options">
-        <option value="1">read is paired</option>
-        <option value="2">read is mapped in a proper pair</option>
-        <option value="4">read is unmapped</option>
-        <option value="8">mate is unmapped</option>
-        <option value="16">read reverse strand</option>
-        <option value="32">mate reverse strand</option>
-        <option value="64">read is the first in a pair</option>
-        <option value="128">read is the second in a pair</option>
-        <option value="256">alignment or read is not primary</option>
-        <option value="512">read fails platform/vendor quality checks</option>
-        <option value="1024">read is a PCR or optical duplicate</option>
-        <option value="2048">supplementary alignment</option>
+    <xml name="flag_options" token_s1="false" token_s2="false" token_s4="false" token_s8="false" token_s16="false" token_s32="false" token_s64="false" token_s128="false" token_s256="false" token_s512="false" token_s1024="false" token_s2048="false">
+        <option value="1" selected="@S1@">Read is paired</option>
+        <option value="2" selected="@S2@">Read is mapped in a proper pair</option>
+        <option value="4" selected="@S4@">Read is unmapped</option>
+        <option value="8" selected="@S8@">Mate is unmapped</option>
+        <option value="16" selected="@S16@">Read is mapped to the reverse strand of the reference</option>
+        <option value="32" selected="@S32@">Mate is mapped to the reverse strand of the reference</option>
+        <option value="64" selected="@S64@">Read is the first in a pair</option>
+        <option value="128" selected="@S128@">Read is the second in a pair</option>
+        <option value="256" selected="@S256@">Alignment of the read is not primary</option>
+        <option value="512" selected="@S512@">Read fails platform/vendor quality checks</option>
+        <option value="1024" selected="@S1024@">Read is a PCR or optical duplicate</option>
+        <option value="2048" selected="@S2048@">Alignment is supplementary</option>
     </xml>
 
-    <!-- region specification macros and tokens for tools that allow the specification 
+    <!-- region specification macros and tokens for tools that allow the specification
          of region by bed file / space separated list of regions -->
     <token name="@REGIONS_FILE@"><![CDATA[
         #if $cond_region.select_region == 'tab':
b
diff -r 22970df7a40e -r fe34990e5ce7 samtools_flagstat.xml
--- a/samtools_flagstat.xml Fri Sep 06 11:22:29 2019 -0400
+++ b/samtools_flagstat.xml Tue Sep 28 16:13:41 2021 +0000
[
@@ -1,4 +1,4 @@
-<tool id="samtools_flagstat" name="Samtools flagstat" version="2.0.3">
+<tool id="samtools_flagstat" name="Samtools flagstat" version="2.0.4" profile="@PROFILE@">
     <description>tabulate descriptive stats for BAM datset</description>
 
     <macros>
@@ -10,21 +10,46 @@
 
     <command><![CDATA[
     @ADDTHREADS@
-    samtools flagstat -@ \$addthreads '$input1' > '$output1'
+    samtools flagstat -@ \$addthreads 
+    #if $output_fmt != 'txt'
+        --output-fmt $output_fmt
+    #end if
+    '$input1'
+    > '$output1'
     ]]></command>
 
     <inputs>
         <param name="input1" type="data" format="sam,bam,cram" label="BAM File to report statistics of" />
+        <param argument="--output-fmt" type="select" label="Output format">
+            <option value="txt">txt</option>
+            <option value="tsv">tsv</option>
+            <option value="json">json</option>
+        </param>
     </inputs>
 
     <outputs>
-        <data name="output1" format="txt" />
+        <data name="output1" format="txt">
+            <change_format>
+                <when input="output_fmt" value="tsv" format="tabular" />
+                <when input="output_fmt" value="json" format="json" />
+            </change_format>
+        </data>
     </outputs>
 
     <tests>
         <test>
             <param name="input1" value="samtools_flagstat_input1.bam" ftype="bam" />
-            <output name="output1" file="samtools_flagstat_out1.txt" />
+            <output name="output1" file="samtools_flagstat_out1.txt" ftype="txt"/>
+        </test>
+        <test>
+            <param name="input1" value="samtools_flagstat_input1.bam" ftype="bam" />
+            <param name="output_fmt" value="tsv"/>
+            <output name="output1" file="samtools_flagstat_out1.tsv" ftype="tabular" />
+        </test>
+        <test>
+            <param name="input1" value="samtools_flagstat_input1.bam" ftype="bam" />
+            <param name="output_fmt" value="json"/>
+            <output name="output1" file="samtools_flagstat_out1.json" ftype="json" />
         </test>
     </tests>
     <help><![CDATA[
b
diff -r 22970df7a40e -r fe34990e5ce7 test-data/samtools_flagstat_out1.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/samtools_flagstat_out1.json Tue Sep 28 16:13:41 2021 +0000
b
@@ -0,0 +1,46 @@
+{
+ "QC-passed reads": { 
+  "total": 200, 
+  "primary": 200, 
+  "secondary": 0, 
+  "supplementary": 0, 
+  "duplicates": 0, 
+  "primary duplicates": 0, 
+  "mapped": 25, 
+  "mapped %": 12.50, 
+  "primary mapped": 25, 
+  "primary mapped %": 12.50, 
+  "paired in sequencing": 200, 
+  "read1": 100, 
+  "read2": 100, 
+  "properly paired": 0, 
+  "properly paired %": 0.00, 
+  "with itself and mate mapped": 0, 
+  "singletons": 25, 
+  "singletons %": 12.50, 
+  "with mate mapped to a different chr": 0, 
+  "with mate mapped to a different chr (mapQ >= 5)": 0 
+ },
+ "QC-failed reads": { 
+  "total": 0, 
+  "primary": 0, 
+  "secondary": 0, 
+  "supplementary": 0, 
+  "duplicates": 0, 
+  "primary duplicates": 0, 
+  "mapped": 0, 
+  "mapped %": null, 
+  "primary mapped": 0, 
+  "primary mapped %": null, 
+  "paired in sequencing": 0, 
+  "read1": 0, 
+  "read2": 0, 
+  "properly paired": 0, 
+  "properly paired %": null, 
+  "with itself and mate mapped": 0, 
+  "singletons": 0, 
+  "singletons %": null, 
+  "with mate mapped to a different chr": 0, 
+  "with mate mapped to a different chr (mapQ >= 5)": 0 
+ }
+}
b
diff -r 22970df7a40e -r fe34990e5ce7 test-data/samtools_flagstat_out1.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/samtools_flagstat_out1.tsv Tue Sep 28 16:13:41 2021 +0000
b
@@ -0,0 +1,20 @@
+200 0 total (QC-passed reads + QC-failed reads)
+200 0 primary
+0 0 secondary
+0 0 supplementary
+0 0 duplicates
+0 0 primary duplicates
+25 0 mapped
+12.50% N/A mapped %
+25 0 primary mapped
+12.50% N/A primary mapped %
+200 0 paired in sequencing
+100 0 read1
+100 0 read2
+0 0 properly paired
+0.00% N/A properly paired %
+0 0 with itself and mate mapped
+25 0 singletons
+12.50% N/A singletons %
+0 0 with mate mapped to a different chr
+0 0 with mate mapped to a different chr (mapQ>=5)
b
diff -r 22970df7a40e -r fe34990e5ce7 test-data/samtools_flagstat_out1.txt
--- a/test-data/samtools_flagstat_out1.txt Fri Sep 06 11:22:29 2019 -0400
+++ b/test-data/samtools_flagstat_out1.txt Tue Sep 28 16:13:41 2021 +0000
b
@@ -1,8 +1,11 @@
 200 + 0 in total (QC-passed reads + QC-failed reads)
+200 + 0 primary
 0 + 0 secondary
 0 + 0 supplementary
 0 + 0 duplicates
+0 + 0 primary duplicates
 25 + 0 mapped (12.50% : N/A)
+25 + 0 primary mapped (12.50% : N/A)
 200 + 0 paired in sequencing
 100 + 0 read1
 100 + 0 read2