changeset 12:8fecc86e574a draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/samtools/samtools_stats commit 9c5a35ce695c3d134e41d8695487edd5f71ea33c
author iuc
date Sun, 08 Sep 2024 03:23:56 +0000
parents a95f78faca04
children
files macros.xml samtools_stats.xml test-data/1.stats.expected test-data/11.stats.expected test-data/11.stats.g4.expected test-data/12.2reads.nooverlap.expected test-data/12.2reads.overlap.expected test-data/12.3reads.nooverlap.expected test-data/12.3reads.overlap.expected test-data/2.stats.expected test-data/6.stats.expected test-data/samtools_stats_out1.tab
diffstat 12 files changed, 125 insertions(+), 71 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Wed Jun 22 07:47:48 2022 +0000
+++ b/macros.xml	Sun Sep 08 03:23:56 2024 +0000
@@ -5,8 +5,15 @@
             <yield/>
         </requirements>
     </xml>
-    <token name="@TOOL_VERSION@">1.13</token>
-    <token name="@PROFILE@">20.05</token>
+    <!-- NOTE: for some tools only the version of the requirement but not the
+        tool's version is controlled by the TOOL_VERSION token 
+        (because their version is ahead of the requirement version .. 
+         please only bump the minor version in order to let the requirement
+         version catch up eventually). To find the tools check:
+        `grep "<tool" . -r | grep -v VERSION_SUFFIX | cut -d":" -f 1` -->
+    <token name="@TOOL_VERSION@">1.20</token>
+    <token name="@VERSION_SUFFIX@">2</token>
+    <token name="@PROFILE@">22.05</token>
     <token name="@FLAGS@"><![CDATA[
         #set $flags = 0
         #if $filter
@@ -103,7 +110,7 @@
         #end if
     ]]></token>
 
-    <xml name="optional_reference">
+    <xml name="optional_reference" token_help="" token_argument="">
         <conditional name="addref_cond">
             <param name="addref_select" type="select" label="Use a reference sequence">
                 <help>@HELP@</help>
@@ -212,37 +219,7 @@
 
     <xml name="citations">
         <citations>
-            <citation type="bibtex">
-                @misc{SAM_def,
-                title={Definition of SAM/BAM format},
-                url = {https://samtools.github.io/hts-specs/},}
-            </citation>
-            <citation type="doi">10.1093/bioinformatics/btp352</citation>
-            <citation type="doi">10.1093/bioinformatics/btr076</citation>
-            <citation type="doi">10.1093/bioinformatics/btr509</citation>
-            <citation type="bibtex">
-                @misc{Danecek_et_al,
-                Author={Danecek, P., Schiffels, S., Durbin, R.},
-                title={Multiallelic calling model in bcftools (-m)},
-                url = {http://samtools.github.io/bcftools/call-m.pdf},}
-            </citation>
-            <citation type="bibtex">
-                @misc{Durbin_VCQC,
-                Author={Durbin, R.},
-                title={Segregation based metric for variant call QC},
-                url = {http://samtools.github.io/bcftools/rd-SegBias.pdf},}
-            </citation>
-            <citation type="bibtex">
-                @misc{Li_SamMath,
-                Author={Li, H.},
-                title={Mathematical Notes on SAMtools Algorithms},
-                url = {http://www.broadinstitute.org/gatk/media/docs/Samtools.pdf},}
-            </citation>
-            <citation type="bibtex">
-                @misc{SamTools_github,
-                title={SAMTools GitHub page},
-                url = {https://github.com/samtools/samtools},}
-            </citation>
+            <citation type="doi">10.1093/gigascience/giab008</citation>
         </citations>
     </xml>
     <xml name="version_command">
--- a/samtools_stats.xml	Wed Jun 22 07:47:48 2022 +0000
+++ b/samtools_stats.xml	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-<tool id="samtools_stats" name="Samtools stats" version="2.0.4" profile="@PROFILE@">
+<tool id="samtools_stats" name="Samtools stats" version="2.0.5" profile="@PROFILE@">
     <description>generate statistics for BAM dataset</description>
     <macros>
         <import>macros.xml</import>
@@ -45,7 +45,7 @@
             #if $use_ref:
                 --ref-seq "\$reffa"
             #end if
-            ## TODO currently not implemented in Galaxy
+            ## currently not implemented in Galaxy
             ## generates STR_VALUE.bamstat where STR is given by -P and VALUE is a value of the TAG given by -S
             ## needs some discover data sets action...
             ## -P, --split-prefix STR
@@ -84,7 +84,7 @@
                 <param name="coverage_step" type="integer" value="1" label="Coverage step" help="Step value for coverage" />
             </when>
         </conditional>
-        <param name="remove_dups" argument="--remove-dups" type="boolean" truevalue="--remove-dups" falsevalue="" checked="False" label="Exclude reads marked as duplicates" />
+        <param argument="--remove-dups" type="boolean" truevalue="--remove-dups" falsevalue="" checked="False" label="Exclude reads marked as duplicates" />
         <conditional name="split_output_cond">
             <param name="split_output_selector" type="select" label="Output" help="Select between one single output or separate outputs for each statistics">
                 <option value="no" selected="True">One single summary file</option>
@@ -131,16 +131,16 @@
         </conditional>
         <!-- TODO I would like to set the default values of float and int parameters as on the samtools stats help page, but then the tests don't work. Hence I leave the optional and give the defaults in the help -->
         <param name="gc_depth" argument="--GC-depth" type="float" optional="True" label="Size of GC-depth bins" help="Decreasing bin size increases memory requirement. default=2e4" />
-        <param name="insert_size" argument="--insert-size" type="integer" optional="True" label="Maximum insert size" help="default=8000" />
+        <param argument="--insert-size" type="integer" optional="True" label="Maximum insert size" help="default=8000" />
         <!-- TOOD https://github.com/samtools/samtools/issues/1489 -->    
         <param name="read_group" argument="--id" type="select" optional="true" label="Limit to a specific read group name" >
             <options>
                 <filter type="data_meta" ref="input" key="read_groups" />
             </options>
         </param>
-        <param name="read_length" argument="--read-length" type="integer" optional="true" label="Minimum read length to generate statistics for" help="No cutoff if left empty" />
-        <param name="most_inserts" argument="--most-inserts" type="float" optional="true" label="Report only the main part of inserts" help="default=0.99" />
-        <param name="trim_quality" argument="--trim-quality" type="integer" optional="true" label="BWA trim parameter" help="default=0" />
+        <param argument="--read-length" type="integer" optional="true" label="Minimum read length to generate statistics for" help="No cutoff if left empty" />
+        <param argument="--most-inserts" type="float" optional="true" label="Report only the main part of inserts" help="default=0.99" />
+        <param argument="--trim-quality" type="integer" optional="true" label="BWA trim parameter" help="default=0" />
 
         <expand macro="optional_reference" argument="--ref-seq" help="Required for GC-depth and mismatches-per-cycle calculation"/>
         <!-- unfortunately -t takes tabular and not bed like view (otherwise a macro might have simplified this) -->
@@ -153,18 +153,17 @@
     </inputs>
 
     <outputs>
-        <data name="output" format="tabular" label="${tool.name} on ${on_string}">
-            <discover_datasets directory="split" pattern="(?P&lt;designation&gt;.+)\.tab" format="tabular" visible="true" assign_primary_output="true"/>
+        <data name="output" format="tabular">
             <filter>split_output_cond['split_output_selector'] == 'no'</filter>
         </data>
-        <collection name="output_collection" type="list" label="${tool.name} on ${on_string}">
+        <collection name="output_collection" type="list" label="${tool.name} on ${on_string}: separate statistics">
             <discover_datasets directory="split" pattern="(?P&lt;designation&gt;.+)\.tab" format="tabular" visible="false"/>
             <filter>split_output_cond['split_output_selector'] == 'yes'</filter>
         </collection>
     </outputs>
     <tests>
         <!-- https://github.com/samtools/samtools/blob/9ce8c64493f7ea3fa69bc5c1ac980b1a8e3dcf1f/test/test.pl#L2402 -->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="1_map_cigar.sam" ftype="sam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="history" />
@@ -173,7 +172,7 @@
             <output name="output" file="1.stats.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/1.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/1_map_cigar.sam | tail -n+4", exp_fix=>$efix);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="2_equal_cigar_full_seq.sam" ftype="sam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="history" />
@@ -185,7 +184,7 @@
         <!-- test_cmd($opts,out=>'stat/3.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/3_map_cigar_equal_seq.sam | tail -n+4", exp_fix=>$efix);-->
         <!-- test_cmd($opts,out=>'stat/4.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/4_X_cigar_full_seq.sam | tail -n+4", exp_fix=>$efix);-->
         <!-- test_cmd($opts,out=>'stat/5.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/5_insert_cigar.sam | tail -n+4", exp_fix=>$efix); -->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="5_insert_cigar.sam" ftype="sam" />
             <param name="insert_size" value="0" />
             <conditional name="addref_cond">
@@ -199,7 +198,7 @@
         <!-- test_cmd($opts,out=>'stat/8.stats.expected',cmd=>"$$opts{bin}/samtools stats -r $$opts{path}/stat/test.fa $$opts{path}/stat/8_secondary.sam | tail -n+4", exp_fix=>$efix);-->
         <!-- test_cmd($opts,out=>'stat/9.stats.expected',cmd=>"$$opts{bin}/samtools stats -S RG -r $$opts{path}/stat/test.fa $$opts{path}/stat/1_map_cigar.sam | tail -n+4", exp_fix=>$efix,out_map=>{"stat/1_map_cigar.sam_s1_a_1.bamstat"=>"stat/1_map_cigar.sam_s1_a_1.expected.bamstat"},hskip=>3);-->
         <!-- test_cmd($opts,out=>'stat/10.stats.expected',cmd=>"$$opts{bin}/samtools stats -S RG -r $$opts{path}/stat/test.fa $$opts{path}/stat/10_map_cigar.sam | tail -n+4", exp_fix=>$efix,out_map=>{"stat/10_map_cigar.sam_s1_a_1.bamstat"=>"stat/10_map_cigar.sam_s1_a_1.expected.bamstat", "stat/10_map_cigar.sam_s1_b_1.bamstat"=>"stat/10_map_cigar.sam_s1_b_1.expected.bamstat"},hskip=>3);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="11_target.sam" ftype="sam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -212,7 +211,7 @@
         </test>
         <!-- test_cmd($opts,out=>'stat/11.stats.expected',cmd=>"$$opts{bin}/samtools stats -t $$opts{path}/stat/11.stats.targets $$opts{path}/stat/11_target.sam | tail -n+4", exp_fix=>$efix); -->
 
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="11_target.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -227,7 +226,7 @@
         </test>
         <!-- test_cmd($opts,out=>'stat/11.stats.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/11_target.bam ref1:10-24 ref1:30-46 ref1:39-56 | tail -n+4", exp_fix=>$efix);
 -->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="11_target.sam" ftype="sam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -240,7 +239,7 @@
             <output name="output" file="11.stats.g4.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/11.stats.g4.expected',cmd=>"$$opts{bin}/samtools stats -g 4 -t $$opts{path}/stat/11.stats.targets $$opts{path}/stat/11_target.sam | tail -n+4", exp_fix=>$efix);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="11_target.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -255,7 +254,7 @@
             <output name="output" file="11.stats.g4.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/11.stats.g4.expected',cmd=>"$$opts{bin}/samtools stats -g 4 $$opts{path}/stat/11_target.bam ref1:10-24 ref1:30-46 ref1:39-56 | tail -n+4", exp_fix=>$efix); -->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="12_overlaps.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -267,7 +266,7 @@
             <output name="output" file="12.3reads.overlap.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/12.3reads.overlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -t $$opts{path}/stat/12_3reads.bed | tail -n+4", exp_fix=>$efix);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="12_overlaps.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -280,7 +279,7 @@
             <output name="output" file="12.3reads.nooverlap.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/12.3reads.nooverlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -p -t $$opts{path}/stat/12_3reads.bed | tail -n+4", exp_fix=>$efix);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="12_overlaps.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -292,7 +291,7 @@
             <output name="output" file="12.2reads.overlap.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/12.2reads.overlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -t $$opts{path}/stat/12_2reads.bed | tail -n+4", exp_fix=>$efix);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="12_overlaps.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="no" />
@@ -305,7 +304,7 @@
             <output name="output" file="12.2reads.nooverlap.expected" ftype="tabular" lines_diff="4" />
         </test>
         <!-- test_cmd($opts,out=>'stat/12.2reads.nooverlap.expected',cmd=>"$$opts{bin}/samtools stats $$opts{path}/stat/12_overlaps.bam -p -t $$opts{path}/stat/12_2reads.bed | tail -n+4", exp_fix=>$efix);-->
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="samtools_stats_input.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="history" />
@@ -313,7 +312,7 @@
             </conditional>
             <output name="output" file="samtools_stats_out1.tab" ftype="tabular" lines_diff="4" />
         </test>
-        <test>
+        <test expect_num_outputs="1">
             <param name="input" value="samtools_stats_input.bam" ftype="bam" />
             <conditional name="addref_cond">
                 <param name="addref_select" value="history" />
--- a/test-data/1.stats.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/1.stats.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
 # The command line was:  stats --ref-seq reference.fa -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
@@ -419,6 +419,8 @@
 FRL	35	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	35	1
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	40	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
 # Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.
--- a/test-data/11.stats.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/11.stats.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
 # The command line was:  stats -@ 0 infile ref1:10-24 ref1:30-46 ref1:39-56
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
@@ -183,6 +183,32 @@
 FRL	10	14
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	10	12
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	0	1
+MAPQ	1	1
+MAPQ	2	1
+MAPQ	3	1
+MAPQ	4	1
+MAPQ	5	1
+MAPQ	6	1
+MAPQ	7	1
+MAPQ	8	1
+MAPQ	9	1
+MAPQ	10	1
+MAPQ	11	1
+MAPQ	12	1
+MAPQ	13	1
+MAPQ	14	1
+MAPQ	15	1
+MAPQ	16	1
+MAPQ	17	1
+MAPQ	18	1
+MAPQ	19	1
+MAPQ	20	1
+MAPQ	21	1
+MAPQ	22	1
+MAPQ	23	1
+MAPQ	50	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
 # Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.
--- a/test-data/11.stats.g4.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/11.stats.g4.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
 # The command line was:  stats -g 4 -@ 0 infile ref1:10-24 ref1:30-46 ref1:39-56
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
@@ -183,6 +183,32 @@
 FRL	10	14
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	10	12
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	0	1
+MAPQ	1	1
+MAPQ	2	1
+MAPQ	3	1
+MAPQ	4	1
+MAPQ	5	1
+MAPQ	6	1
+MAPQ	7	1
+MAPQ	8	1
+MAPQ	9	1
+MAPQ	10	1
+MAPQ	11	1
+MAPQ	12	1
+MAPQ	13	1
+MAPQ	14	1
+MAPQ	15	1
+MAPQ	16	1
+MAPQ	17	1
+MAPQ	18	1
+MAPQ	19	1
+MAPQ	20	1
+MAPQ	21	1
+MAPQ	22	1
+MAPQ	23	1
+MAPQ	50	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
 # Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.
--- a/test-data/12.2reads.nooverlap.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/12.2reads.nooverlap.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,6 +1,6 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
-# The command line was:  stats -t /tmp/tmp0r5zs075/files/b/2/1/dataset_b2175431-044e-449d-8f60-1bfd33679b61.dat -p -@ 0 infile
+# The command line was:  stats -t /tmp/tmp5q_kwqc0/files/5/e/6/dataset_5e6cda5d-79e8-4b8f-9e14-97f3be9f87de.dat -p -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
 # CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)
 CHK	5b31676a	b0edee94	471895da
@@ -855,6 +855,9 @@
 FRL	100	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	100	1
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	7	1
+MAPQ	37	1
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 ID	2	0	1
 ID	3	1	0
--- a/test-data/12.2reads.overlap.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/12.2reads.overlap.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,6 +1,6 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
-# The command line was:  stats -t /tmp/tmp0r5zs075/files/2/a/2/dataset_2a2a3ee9-3133-4880-a37c-50b6354c9000.dat -@ 0 infile
+# The command line was:  stats -t /tmp/tmp5q_kwqc0/files/4/0/f/dataset_40fb1106-2fe0-491f-8790-2139e9b1b3bd.dat -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
 # CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)
 CHK	5b31676a	b0edee94	471895da
@@ -855,6 +855,9 @@
 FRL	100	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	100	1
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	7	1
+MAPQ	37	1
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 ID	2	0	1
 ID	3	1	0
--- a/test-data/12.3reads.nooverlap.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/12.3reads.nooverlap.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,6 +1,6 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
-# The command line was:  stats -t /tmp/tmp0r5zs075/files/1/3/0/dataset_13082855-efe1-437e-8a91-ff7d013770db.dat -p -@ 0 infile
+# The command line was:  stats -t /tmp/tmp5q_kwqc0/files/b/2/6/dataset_b262e070-b3ea-4ab2-970d-29726b177ea2.dat -p -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
 # CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)
 CHK	09f8b87f	140798ec	2b989f07
@@ -872,6 +872,9 @@
 FRL	100	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	100	2
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	37	1
+MAPQ	60	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 ID	1	1	2
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
--- a/test-data/12.3reads.overlap.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/12.3reads.overlap.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,6 +1,6 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
-# The command line was:  stats -t /tmp/tmp0r5zs075/files/6/5/e/dataset_65ea4e4d-a70d-4001-911d-9d81ff2829a6.dat -@ 0 infile
+# The command line was:  stats -t /tmp/tmp5q_kwqc0/files/8/f/b/dataset_8fbfc56f-17f3-4728-895b-34544e586ee7.dat -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
 # CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)
 CHK	09f8b87f	140798ec	2b989f07
@@ -872,6 +872,9 @@
 FRL	100	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	100	2
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	37	1
+MAPQ	60	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 ID	1	1	2
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
--- a/test-data/2.stats.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/2.stats.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
 # The command line was:  stats --ref-seq reference.fa -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
@@ -419,6 +419,8 @@
 FRL	35	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	35	1
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	40	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
 # Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.
--- a/test-data/6.stats.expected	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/6.stats.expected	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
 # The command line was:  stats --insert-size 0 --ref-seq reference.fa -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
@@ -419,6 +419,8 @@
 FRL	35	1
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	35	1
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	40	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 ID	1	1	0
 # Indels per cycle. Use `grep ^IC | cut -f 2-` to extract this part. The columns are: cycle, number of insertions (fwd), .. (rev) , number of deletions (fwd), .. (rev)
--- a/test-data/samtools_stats_out1.tab	Wed Jun 22 07:47:48 2022 +0000
+++ b/test-data/samtools_stats_out1.tab	Sun Sep 08 03:23:56 2024 +0000
@@ -1,4 +1,4 @@
-# This file was produced by samtools stats (1.12+htslib-1.12) and can be plotted using plot-bamstats
+# This file was produced by samtools stats (1.20+htslib-1.20) and can be plotted using plot-bamstats
 # This file contains statistics for all reads.
 # The command line was:  stats --ref-seq reference.fa -@ 0 infile
 # CHK, Checksum	[2]Read Names	[3]Sequences	[4]Qualities
@@ -1862,6 +1862,14 @@
 FRL	251	100
 # Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count
 LRL	251	100
+# Mapping qualities for reads !(UNMAP|SECOND|SUPPL|QCFAIL|DUP). Use `grep ^MAPQ | cut -f 2-` to extract this part. The columns are: mapq, count
+MAPQ	0	6
+MAPQ	3	6
+MAPQ	8	3
+MAPQ	23	2
+MAPQ	24	4
+MAPQ	40	2
+MAPQ	42	2
 # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions
 ID	1	1	0
 ID	2	1	0