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

Changeset 3:95a7ddf617e7 (2018-09-27)
Previous changeset 2:24c5d43cb545 (2017-05-09) Next changeset 4:793ad847121d (2019-01-04)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/samtools/samtools_stats commit 70b38ebad0d0936f102e3e7cb70f1060347ea8c4
modified:
macros.xml
samtools_stats.xml
test-data/samtools_stats_out1.tab
added:
test-data/1.stats.expected
test-data/11.stats.expected
test-data/11.stats.g4.expected
test-data/11.stats.targets
test-data/11_target.bam
test-data/11_target.bam.bai
test-data/11_target.sam
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/12_2reads.bed
test-data/12_3reads.bed
test-data/12_overlaps.bam
test-data/1_map_cigar.sam
test-data/2.stats.expected
test-data/2_equal_cigar_full_seq.sam
test-data/5_insert_cigar.sam
test-data/6.stats.expected
test-data/samtools_stats_out1__gcc.tab
test-data/samtools_stats_out1__mpc.tab
test-data/samtools_stats_out1__sn.tab
test-data/samtools_stats_ref.fa.fai
test-data/test.fa
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 macros.xml
--- a/macros.xml Tue May 09 11:19:01 2017 -0400
+++ b/macros.xml Thu Sep 27 09:05:10 2018 -0400
[
@@ -1,11 +1,131 @@
 <macros>
     <xml name="requirements">
         <requirements>
-            <requirement type="package" version="1.3.1">samtools</requirement>
+            <requirement type="package" version="@TOOL_VERSION@">samtools</requirement>
             <yield/>
         </requirements>
     </xml>
-    <token name="@TOOL_VERSION@">1.3.1</token>
+    <token name="@TOOL_VERSION@">1.9</token>
+    <token name="@FLAGS@">#set $flags = sum(map(int, str($filter).split(',')))</token>
+    <token name="@PREPARE_IDX@"><![CDATA[
+        ##prepare input and indices 
+        ln -s '$input' infile &&
+        #if $input.is_of_type('bam'):
+            #if str( $input.metadata.bam_index ) != "None":
+                ln -s '${input.metadata.bam_index}' infile.bai &&
+            #else:
+                samtools index infile infile.bai &&
+            #end if
+        #elif $input.is_of_type('cram'):
+            #if str( $input.metadata.cram_index ) != "None":
+                ln -s '${input.metadata.cram_index}' infile.crai &&
+            #else:
+                samtools index infile infile.crai &&
+            #end if
+        #end if
+    ]]></token>
+    <token name="@PREPARE_IDX_MULTIPLE@"><![CDATA[
+        ##prepare input and indices 
+        #for $i, $bam in enumerate( $input_bams ):
+            ln -s '$bam' '${i}' &&
+            #if $bam.is_of_type('bam'):
+                #if str( $bam.metadata.bam_index ) != "None":
+                    ln -s '${bam.metadata.bam_index}' '${i}.bai' &&
+                #else:
+                    samtools index '${i}' '${i}.bai' &&
+                #end if
+            #elif $bam.is_of_type('cram'):
+                #if str( $bam.metadata.cram_index ) != "None":
+                    ln -s '${bam.metadata.cram_index}' '${i}.crai' &&
+                #else:
+                    samtools index '${i}' '${i}.crai' &&
+                #end if
+            #end if
+        #end for
+    ]]></token>
+    <token name="@PREPARE_FASTA_IDX@"><![CDATA[
+        ##checks for reference data ($addref_cond.addref_select=="history" or =="cached")
+        ##and sets the -t/-T parameters accordingly:
+        ##- in case of history a symbolic link is used because samtools (view) will generate
+        ##  the index which might not be possible in the directory containing the fasta file
+        ##- in case of cached the absolute path is used which allows to read the cram file
+        ##  without specifying the reference
+        #if $addref_cond.addref_select == "history":
+            ln -s '${addref_cond.ref}' reference.fa &&
+            samtools faidx reference.fa &&
+            #set reffa="reference.fa"
+            #set reffai="reference.fa.fai"
+        #elif $addref_cond.addref_select == "cached":
+            #set reffa=str($addref_cond.ref.fields.path)
+            #set reffai=str($addref_cond.ref.fields.path)+".fai"
+        #else
+            #set reffa=None
+            #set reffai=None
+        #end if
+    ]]></token>
+    <token name="@ADDTHREADS@"><![CDATA[
+        ##compute the number of ADDITIONAL threads to be used by samtools (-@)
+        addthreads=\${GALAXY_SLOTS:-1} && (( addthreads-- )) &&
+    ]]></token>
+    <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=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." /> 
+    </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>
+
+    <!-- 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':
+            -t '$cond_region.targetregions'
+        #end if
+    ]]></token>
+    <token name="@REGIONS_MANUAL@"><![CDATA[
+        #if $cond_region.select_region == 'text':
+            #for $i, $x in enumerate($cond_region.regions_repeat):
+               '${x.region}'
+            #end for
+        #end if
+    ]]></token>
+    <xml name="regions_macro">
+        <conditional name="cond_region">
+            <param name="select_region" type="select" label="Filter by regions" help="restricts output to only those alignments which overlap the specified region(s)">
+                <option value="no" selected="True">No</option>
+                <option value="text">Manualy specify regions</option>
+                <option value="tab">Regions from tabular file</option>
+            </param>
+            <when value="no"/>
+            <when value="text">
+                <repeat name="regions_repeat" min="1" default="1" title="Regions">
+                    <param name="region" type="text" label="region" help="format chr:from-to">
+                        <validator type="regex" message="Required format: CHR[:FROM[-TO]]; where CHR: string containing any character except quotes, whitespace and colon; FROM and TO: any integer">^[^\s'\":]+(:\d+(-\d+){0,1}){0,1}$</validator>
+                    </param>
+                </repeat>
+            </when>
+            <when value="tab">
+                <param name="targetregions" argument="-t/--target-regions" type="data" format="tabular" label="Target regions file" help="Do stats in these regions only. Tab-delimited file chr,from,to (1-based, inclusive)" />
+            </when>
+        </conditional>
+    </xml>
+
     <xml name="citations">
         <citations>
             <citation type="bibtex">
@@ -49,21 +169,4 @@
             <exit_code range="1:" level="fatal" description="Error" />
         </stdio>
     </xml>
-    <token name="@no-chrom-options@">
------
-
-.. class:: warningmark
-
-**No options available? How to re-detect metadata**
-
-If you see a &quot;No options available&quot; within the &quot;**Select references (chromosomes and contigs) you would like to restrict bam to**&quot; drop down, you need to re-detect metadata for the dataset you are trying to process. To do this follow these steps:
-
-1. Click on the **pencil** icon adjacent to the dataset in the history
-2. A new menu will appear in the center pane of the interface
-3. Click **Datatype** tab
-4. Set **New Type** to **BAM**
-5. Click **Save**
-
-The medatada will be re-detected and you will be able to see the list of reference sequences in the &quot;**Select references (chromosomes and contigs) you would like to restrict bam to**&quot; drop-down.
-    </token>
 </macros>
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 samtools_stats.xml
--- a/samtools_stats.xml Tue May 09 11:19:01 2017 -0400
+++ b/samtools_stats.xml Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -1,164 +1,103 @@\n-<tool id="samtools_stats" name="Stats" version="2.0.1">\n+<tool id="samtools_stats" name="Samtools stats" version="2.0.2">\n     <description>generate statistics for BAM dataset</description>\n     <macros>\n         <import>macros.xml</import>\n     </macros>\n-    <expand macro="requirements"/>\n+    <expand macro="requirements">\n+        <requirement type="package" version="5.0.4">gnuplot</requirement>\n+    </expand>\n     <expand macro="stdio"/>\n     <expand macro="version_command"/>\n     <command><![CDATA[\n-        #if $use_reference.use_ref_selector == "yes":\n-            #if $use_reference.reference_source.reference_source_selector == "history":\n-               ln -s \'${use_reference.reference_source.ref_file}\' &&\n-               samtools faidx `basename \'${use_reference.reference_source.ref_file}\'` &&\n+        @PREPARE_IDX@\n+        @PREPARE_FASTA_IDX@\n+        samtools stats\n+            #if $coverage_cond.coverage_select == \'yes\':\n+                --coverage ${coverage_cond.coverage_min},${coverage_cond.coverage_max},${coverage_cond.coverage_step}\n             #end if\n-        #end if\n-\n-        samtools stats\n-            \'${input_file}\'\n-            --coverage ${coverage_min},${coverage_max},${coverage_step}\n             ${remove_dups}\n-\n             #if str( $filter_by_flags.filter_flags ) == "filter":\n                 #if $filter_by_flags.require_flags:\n-                    --required-flag ${sum([int(flag) for flag in str($filter_by_flags.require_flags).split(\',\')])}\n+                    #set $filter = $filter_by_flags.require_flags\n+                    @FLAGS@\n+                    --required-flag $flags\n                 #end if\n                 #if $filter_by_flags.exclude_flags:\n-                    --filtering-flag ${sum([int(flag) for flag in str($filter_by_flags.exclude_flags).split(\',\')])}\n+                    #set $filter = $filter_by_flags.exclude_flags\n+                    @FLAGS@\n+                    --filtering-flag $flags\n                 #end if\n             #end if\n-\n-            --GC-depth ${gc_depth}\n-            --insert-size ${insert_size}\n-\n-            ## The code below is commented out because using -I/--id options causes the following exception\n+            #if str($gc_depth):\n+                --GC-depth ${gc_depth}\n+            #end if\n+            #if str($insert_size):\n+                --insert-size ${insert_size}\n+            #end if\n+            ## The code below is commented out because using -I/--id options causes \n+            ## in samtools up to 1.9 the following exception\n             ## Samtools-htslib: init_group_id() header parsing not yet implemented\n             ##if str($read_group) != "":\n             ##    -I "${read_group}"\n             ##end if\n-\n             #if str($read_length):\n                 --read-length ${read_length}\n             #end if\n-\n-            --most-inserts ${most_inserts}\n-            --trim-quality ${trim_quality}\n-\n-            #if $use_reference.use_ref_selector == "yes":\n-                #if $use_reference.reference_source.reference_source_selector != "history":\n-                    --ref-seq \'${use_reference.reference_source.ref_file.fields.path}\'\n-                #else:\n-                    --ref-seq \'${use_reference.reference_source.ref_file}\'\n-                #end if\n-            #end if\n-            > \'${output}\'\n-\n-        #if $split_output.split_output_selector == "yes":\n-            #set outputs_to_split = str($split_output.generate_tables).split(\',\')\n-            && mkdir split &&\n-            echo ${split_output.generate_tables}\n-\n-            #if \'sn\' in $outputs_to_split:\n-                && echo "# Summary Numbers" > \'split/Summary numbers.tab\' &&\n-                echo "" >> \'split/Summary numbers.tab\' &&\n-                if grep -q ^SN \'${output}\'; then\n-                    grep ^SN \'${output}\' | cut -f 2- >> \'split/Summary numbers.tab\';\n-                fi\n+            #if str($most_inserts):\n+                --most-i'..b'           <conditional name="addref_cond">\n+                <param name="addref_select" value="no" />\n+            </conditional>\n+            <conditional name="cond_region">\n+                <param name="select_region" value="tab"/>\n+                <param name="targetregions" value="12_2reads.bed" ftype="tabular" />\n+            </conditional>\n+            <output name="output" file="12.2reads.overlap.expected" ftype="tabular" lines_diff="3" />\n+        </test>\n+        <!-- 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);-->\n+        <test>\n+            <param name="input" value="12_overlaps.bam" ftype="bam" />\n+            <conditional name="addref_cond">\n+                <param name="addref_select" value="no" />\n+            </conditional>\n+            <conditional name="cond_region">\n+                <param name="select_region" value="tab"/>\n+                <param name="targetregions" value="12_2reads.bed" ftype="tabular" />\n+            </conditional>\n+            <param name="remove_overlaps" value="-p"/>\n+            <output name="output" file="12.2reads.nooverlap.expected" ftype="tabular" lines_diff="3" />\n+        </test>\n+        <!-- 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);-->\n+        <test>\n+            <param name="input" value="samtools_stats_input.bam" ftype="bam" />\n+            <conditional name="addref_cond">\n+                <param name="addref_select" value="history" />\n+                <param name="ref" value="samtools_stats_ref.fa" ftype="fasta" />\n+            </conditional>\n+            <conditional name="cond_plot">\n+                <param name="select_plot" value="yes"/>\n+            </conditional>\n+            <output name="output" file="samtools_stats_out1.tab" ftype="tabular" lines_diff="2" />\n         </test>\n         <test>\n-            <param name="input_file" value="samtools_stats_input.bam" ftype="bam" />\n-            <param name="use_ref_selector" value="yes" />\n-            <param name="reference_source_selector" value="history" />\n-            <param name="ref_file" value="samtools_stats_ref.fa" ftype="fasta" />\n-            <param name="split_output_selector" value="yes" />\n-            <param name="generate_tables" value="sn,mpc,gcc" />\n-            <output name="output" file="samtools_stats_out2.tab" lines_diff="4">\n-                <discovered_dataset designation="Summary numbers" ftype="tabular" file="samtools_stats_out2__sn.tab" />\n-                <discovered_dataset designation="ACGT content per cycle" ftype="tabular" file="samtools_stats_out2__gcc.tab" />\n-                <discovered_dataset designation="Mismatches per cycle" ftype="tabular" file="samtools_stats_out2__mpc.tab" />\n-            </output>\n+            <param name="input" value="samtools_stats_input.bam" ftype="bam" />\n+            <conditional name="addref_cond">\n+                <param name="addref_select" value="history" />\n+                <param name="ref" value="samtools_stats_ref.fa" ftype="fasta" />\n+            </conditional>\n+            <conditional name="split_output_cond">\n+                <param name="split_output_selector" value="yes" />\n+                <param name="generate_tables" value="SN,MPC,GCC" />\n+            </conditional>\n+            <output_collection name="output_collection" type="list">\n+                <element name="ACGT content per cycle" ftype="tabular" file="samtools_stats_out1__gcc.tab"/>\n+                <element name="Mismatches per cycle and quality" ftype="tabular" file="samtools_stats_out1__mpc.tab" />\n+                <element name="Summary Numbers" ftype="tabular" file="samtools_stats_out1__sn.tab" />\n+            </output_collection>\n         </test>\n     </tests>\n     <help><![CDATA[\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/1.stats.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1.stats.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,383 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t1a1c1362\t29c426ae\t7bab45da\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t2\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t2\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t1\n+SN\treads mapped:\t2\n+SN\treads mapped and paired:\t2\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t2\t# proper-pair bit set\n+SN\treads paired:\t2\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t70\t# ignores clipping\n+SN\ttotal first fragment length:\t35\t# ignores clipping\n+SN\ttotal last fragment length:\t35\t# ignores clipping\n+SN\tbases mapped:\t70\t# ignores clipping\n+SN\tbases mapped (cigar):\t70\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t0\t# from NM fields\n+SN\terror rate:\t0.000000e+00\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t35\n+SN\taverage first fragment length:\t35\n+SN\taverage last fragment length:\t35\n+SN\tmaximum length:\t35\n+SN\tmaximum first fragment length:\t35\n+SN\tmaximum last fragment length:\t35\n+SN\taverage quality:\t255.0\n+SN\tinsert size average:\t100.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t'..b'00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t3\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t4\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t5\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t6\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t7\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t8\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t9\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t10\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t11\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t12\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t13\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t14\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t15\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t16\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t17\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t18\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t19\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t20\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t21\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t22\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t23\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t24\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t25\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t26\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t27\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t28\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t29\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t30\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t31\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t32\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t33\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t34\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t35\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t35\t2\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t35\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t35\t1\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+# 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)\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t70\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/11.stats.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/11.stats.expected Thu Sep 27 09:05:10 2018 -0400
[
@@ -0,0 +1,166 @@
+# CHK, Checksum [2]Read Names [3]Sequences [4]Qualities
+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)
+CHK cb2d2d82 bcd83869 62ec814e
+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.
+SN raw total sequences: 26
+SN filtered sequences: 0
+SN sequences: 26
+SN is sorted: 1
+SN 1st fragments: 14
+SN last fragments: 12
+SN reads mapped: 26
+SN reads mapped and paired: 26 # paired-end technology bit set + both mates mapped
+SN reads unmapped: 0
+SN reads properly paired: 24 # proper-pair bit set
+SN reads paired: 26 # paired-end technology bit set
+SN reads duplicated: 0 # PCR or optical duplicate bit set
+SN reads MQ0: 1 # mapped and MQ=0
+SN reads QC failed: 0
+SN non-primary alignments: 0
+SN total length: 260 # ignores clipping
+SN total first fragment length: 140 # ignores clipping
+SN total last fragment length: 120 # ignores clipping
+SN bases mapped: 260 # ignores clipping
+SN bases mapped (cigar): 206 # more accurate
+SN bases trimmed: 0
+SN bases duplicated: 0
+SN mismatches: 0 # from NM fields
+SN error rate: 0.000000e+00 # mismatches / bases mapped (cigar)
+SN average length: 10
+SN average first fragment length: 10
+SN average last fragment length: 10
+SN maximum length: 10
+SN maximum first fragment length: 10
+SN maximum last fragment length: 10
+SN average quality: 13.1
+SN insert size average: 34.0
+SN insert size standard deviation: 0.0
+SN inward oriented pairs: 12
+SN outward oriented pairs: 0
+SN pairs with other orientation: 0
+SN pairs on different chromosomes: 1
+SN percentage of properly paired reads (%): 92.3
+SN bases inside the target: 42
+SN percentage of target genome with coverage > 0 (%): 100.00
+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.
+# Columns correspond to qualities and rows to cycles. First column is the cycle number.
+FFQ 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 2 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 3 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 4 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 6 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 7 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 8 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 9 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 10 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+# Last Fragment Qualities. Use `grep ^LFQ | cut -f 2-` to extract this part.
+# Columns correspond to qualities and rows to cycles. First column is the cycle number.
+LFQ 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 5 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 6 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 7 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 8 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 9 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 10 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+# GC Content of first fragments. Use `grep ^GCF | cut -f 2-` to extract this part.
+GCF 19.85 0
+GCF 44.72 1
+GCF 54.77 4
+GCF 64.82 2
+GCF 74.87 4
+GCF 84.92 3
+# GC Content of last fragments. Use `grep ^GCL | cut -f 2-` to extract this part.
+GCL 19.85 0
+GCL 44.72 2
+GCL 59.80 3
+GCL 74.87 4
+# ACGT content per cycle. Use `grep ^GCC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]
+GCC 1 19.23 42.31 15.38 23.08 0.00 0.00
+GCC 2 19.23 19.23 46.15 15.38 0.00 0.00
+GCC 3 23.08 38.46 19.23 19.23 0.00 0.00
+GCC 4 23.08 23.08 38.46 15.38 0.00 0.00
+GCC 5 11.54 38.46 26.92 23.08 0.00 0.00
+GCC 6 23.08 23.08 34.62 19.23 0.00 0.00
+GCC 7 15.38 34.62 26.92 23.08 0.00 0.00
+GCC 8 26.92 23.08 38.46 11.54 0.00 0.00
+GCC 9 23.08 26.92 26.92 23.08 0.00 0.00
+GCC 10 23.08 23.08 38.46 15.38 0.00 0.00
+# ACGT content per cycle for first fragments. Use `grep ^FBC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]
+FBC 1 21.43 42.86 21.43 14.29 0.00 0.00
+FBC 2 7.14 28.57 42.86 21.43 0.00 0.00
+FBC 3 28.57 35.71 21.43 14.29 0.00 0.00
+FBC 4 14.29 28.57 35.71 21.43 0.00 0.00
+FBC 5 14.29 35.71 35.71 14.29 0.00 0.00
+FBC 6 14.29 28.57 28.57 28.57 0.00 0.00
+FBC 7 14.29 28.57 35.71 21.43 0.00 0.00
+FBC 8 21.43 28.57 28.57 21.43 0.00 0.00
+FBC 9 21.43 21.43 35.71 21.43 0.00 0.00
+FBC 10 14.29 28.57 35.71 21.43 0.00 0.00
+# ACGT content per cycle for last fragments. Use `grep ^LBC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]
+LBC 1 16.67 41.67 8.33 33.33 0.00 0.00
+LBC 2 33.33 8.33 50.00 8.33 0.00 0.00
+LBC 3 16.67 41.67 16.67 25.00 0.00 0.00
+LBC 4 33.33 16.67 41.67 8.33 0.00 0.00
+LBC 5 8.33 41.67 16.67 33.33 0.00 0.00
+LBC 6 33.33 16.67 41.67 8.33 0.00 0.00
+LBC 7 16.67 41.67 16.67 25.00 0.00 0.00
+LBC 8 33.33 16.67 50.00 0.00 0.00 0.00
+LBC 9 25.00 33.33 16.67 25.00 0.00 0.00
+LBC 10 33.33 16.67 41.67 8.33 0.00 0.00
+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs
+IS 0 0 0 0 0
+IS 1 0 0 0 0
+IS 2 0 0 0 0
+IS 3 0 0 0 0
+IS 4 0 0 0 0
+IS 5 0 0 0 0
+IS 6 0 0 0 0
+IS 7 0 0 0 0
+IS 8 0 0 0 0
+IS 9 0 0 0 0
+IS 10 0 0 0 0
+IS 11 0 0 0 0
+IS 12 0 0 0 0
+IS 13 0 0 0 0
+IS 14 0 0 0 0
+IS 15 0 0 0 0
+IS 16 0 0 0 0
+IS 17 0 0 0 0
+IS 18 0 0 0 0
+IS 19 0 0 0 0
+IS 20 0 0 0 0
+IS 21 0 0 0 0
+IS 22 0 0 0 0
+IS 23 0 0 0 0
+IS 24 0 0 0 0
+IS 25 0 0 0 0
+IS 26 0 0 0 0
+IS 27 0 0 0 0
+IS 28 0 0 0 0
+IS 29 0 0 0 0
+IS 30 0 0 0 0
+IS 31 0 0 0 0
+IS 32 0 0 0 0
+IS 33 0 0 0 0
+IS 34 12 12 0 0
+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count
+RL 10 26
+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count
+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
+# 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.
+COV [1-1] 1 1
+COV [2-2] 2 1
+COV [3-3] 3 2
+COV [4-4] 4 2
+COV [5-5] 5 23
+COV [6-6] 6 13
+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile
+GCD 0.0 100.000 0.000 0.000 0.000 0.000 0.000
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/11.stats.g4.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/11.stats.g4.expected Thu Sep 27 09:05:10 2018 -0400
[
@@ -0,0 +1,166 @@
+# CHK, Checksum [2]Read Names [3]Sequences [4]Qualities
+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)
+CHK cb2d2d82 bcd83869 62ec814e
+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.
+SN raw total sequences: 26
+SN filtered sequences: 0
+SN sequences: 26
+SN is sorted: 1
+SN 1st fragments: 14
+SN last fragments: 12
+SN reads mapped: 26
+SN reads mapped and paired: 26 # paired-end technology bit set + both mates mapped
+SN reads unmapped: 0
+SN reads properly paired: 24 # proper-pair bit set
+SN reads paired: 26 # paired-end technology bit set
+SN reads duplicated: 0 # PCR or optical duplicate bit set
+SN reads MQ0: 1 # mapped and MQ=0
+SN reads QC failed: 0
+SN non-primary alignments: 0
+SN total length: 260 # ignores clipping
+SN total first fragment length: 140 # ignores clipping
+SN total last fragment length: 120 # ignores clipping
+SN bases mapped: 260 # ignores clipping
+SN bases mapped (cigar): 206 # more accurate
+SN bases trimmed: 0
+SN bases duplicated: 0
+SN mismatches: 0 # from NM fields
+SN error rate: 0.000000e+00 # mismatches / bases mapped (cigar)
+SN average length: 10
+SN average first fragment length: 10
+SN average last fragment length: 10
+SN maximum length: 10
+SN maximum first fragment length: 10
+SN maximum last fragment length: 10
+SN average quality: 13.1
+SN insert size average: 34.0
+SN insert size standard deviation: 0.0
+SN inward oriented pairs: 12
+SN outward oriented pairs: 0
+SN pairs with other orientation: 0
+SN pairs on different chromosomes: 1
+SN percentage of properly paired reads (%): 92.3
+SN bases inside the target: 42
+SN percentage of target genome with coverage > 4 (%): 85.71
+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.
+# Columns correspond to qualities and rows to cycles. First column is the cycle number.
+FFQ 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 2 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 3 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 4 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 6 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 7 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 8 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 9 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+FFQ 10 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
+# Last Fragment Qualities. Use `grep ^LFQ | cut -f 2-` to extract this part.
+# Columns correspond to qualities and rows to cycles. First column is the cycle number.
+LFQ 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 5 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 6 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 7 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 8 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 9 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+LFQ 10 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+# GC Content of first fragments. Use `grep ^GCF | cut -f 2-` to extract this part.
+GCF 19.85 0
+GCF 44.72 1
+GCF 54.77 4
+GCF 64.82 2
+GCF 74.87 4
+GCF 84.92 3
+# GC Content of last fragments. Use `grep ^GCL | cut -f 2-` to extract this part.
+GCL 19.85 0
+GCL 44.72 2
+GCL 59.80 3
+GCL 74.87 4
+# ACGT content per cycle. Use `grep ^GCC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]
+GCC 1 19.23 42.31 15.38 23.08 0.00 0.00
+GCC 2 19.23 19.23 46.15 15.38 0.00 0.00
+GCC 3 23.08 38.46 19.23 19.23 0.00 0.00
+GCC 4 23.08 23.08 38.46 15.38 0.00 0.00
+GCC 5 11.54 38.46 26.92 23.08 0.00 0.00
+GCC 6 23.08 23.08 34.62 19.23 0.00 0.00
+GCC 7 15.38 34.62 26.92 23.08 0.00 0.00
+GCC 8 26.92 23.08 38.46 11.54 0.00 0.00
+GCC 9 23.08 26.92 26.92 23.08 0.00 0.00
+GCC 10 23.08 23.08 38.46 15.38 0.00 0.00
+# ACGT content per cycle for first fragments. Use `grep ^FBC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]
+FBC 1 21.43 42.86 21.43 14.29 0.00 0.00
+FBC 2 7.14 28.57 42.86 21.43 0.00 0.00
+FBC 3 28.57 35.71 21.43 14.29 0.00 0.00
+FBC 4 14.29 28.57 35.71 21.43 0.00 0.00
+FBC 5 14.29 35.71 35.71 14.29 0.00 0.00
+FBC 6 14.29 28.57 28.57 28.57 0.00 0.00
+FBC 7 14.29 28.57 35.71 21.43 0.00 0.00
+FBC 8 21.43 28.57 28.57 21.43 0.00 0.00
+FBC 9 21.43 21.43 35.71 21.43 0.00 0.00
+FBC 10 14.29 28.57 35.71 21.43 0.00 0.00
+# ACGT content per cycle for last fragments. Use `grep ^LBC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]
+LBC 1 16.67 41.67 8.33 33.33 0.00 0.00
+LBC 2 33.33 8.33 50.00 8.33 0.00 0.00
+LBC 3 16.67 41.67 16.67 25.00 0.00 0.00
+LBC 4 33.33 16.67 41.67 8.33 0.00 0.00
+LBC 5 8.33 41.67 16.67 33.33 0.00 0.00
+LBC 6 33.33 16.67 41.67 8.33 0.00 0.00
+LBC 7 16.67 41.67 16.67 25.00 0.00 0.00
+LBC 8 33.33 16.67 50.00 0.00 0.00 0.00
+LBC 9 25.00 33.33 16.67 25.00 0.00 0.00
+LBC 10 33.33 16.67 41.67 8.33 0.00 0.00
+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs
+IS 0 0 0 0 0
+IS 1 0 0 0 0
+IS 2 0 0 0 0
+IS 3 0 0 0 0
+IS 4 0 0 0 0
+IS 5 0 0 0 0
+IS 6 0 0 0 0
+IS 7 0 0 0 0
+IS 8 0 0 0 0
+IS 9 0 0 0 0
+IS 10 0 0 0 0
+IS 11 0 0 0 0
+IS 12 0 0 0 0
+IS 13 0 0 0 0
+IS 14 0 0 0 0
+IS 15 0 0 0 0
+IS 16 0 0 0 0
+IS 17 0 0 0 0
+IS 18 0 0 0 0
+IS 19 0 0 0 0
+IS 20 0 0 0 0
+IS 21 0 0 0 0
+IS 22 0 0 0 0
+IS 23 0 0 0 0
+IS 24 0 0 0 0
+IS 25 0 0 0 0
+IS 26 0 0 0 0
+IS 27 0 0 0 0
+IS 28 0 0 0 0
+IS 29 0 0 0 0
+IS 30 0 0 0 0
+IS 31 0 0 0 0
+IS 32 0 0 0 0
+IS 33 0 0 0 0
+IS 34 12 12 0 0
+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count
+RL 10 26
+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count
+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
+# 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.
+COV [1-1] 1 1
+COV [2-2] 2 1
+COV [3-3] 3 2
+COV [4-4] 4 2
+COV [5-5] 5 23
+COV [6-6] 6 13
+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile
+GCD 0.0 100.000 0.000 0.000 0.000 0.000 0.000
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/11.stats.targets
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/11.stats.targets Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,24 @@
+# The MIT License
+# 
+# Copyright (c) 2014 Genome Research Ltd.
+# 
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+# 
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+ref1 10 24
+ref1 30 46
+ref1 39 56
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/11_target.bam
b
Binary file test-data/11_target.bam has changed
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/11_target.bam.bai
b
Binary file test-data/11_target.bam.bai has changed
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/11_target.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/11_target.sam Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,59 @@
+@HD VN:1.4 SO:coordinate
+@RG ID:s1_a_1 LB:1 SM:s1
+@RG ID:grp1 DS:Group 1 LB:Library 1 SM:Sample
+@RG ID:grp2 DS:Group 2 LB:Library 2 SM:Sample
+@RG ID:grp3 DS:Group 3 SM:Sample
+@PG ID:prog1 PN:emacs CL:emacs VN:23.1.1
+@CO The MIT License
+@CO
+@CO Copyright (c) 2014 Genome Research Ltd.
+@CO
+@CO Permission is hereby granted, free of charge, to any person obtaining a copy
+@CO of this software and associated documentation files (the "Software"), to deal
+@CO in the Software without restriction, including without limitation the rights
+@CO to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+@CO copies of the Software, and to permit persons to whom the Software is
+@CO furnished to do so, subject to the following conditions:
+@CO
+@CO The above copyright notice and this permission notice shall be included in
+@CO all copies or substantial portions of the Software.
+@CO
+@CO THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+@CO IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+@CO FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+@CO AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+@CO LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+@CO OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+@CO THE SOFTWARE.
+@SQ SN:alpha LN:100
+@SQ SN:ref1 LN:56 M5:08c04d512d4797d9ba2a156c1daba468
+@SQ SN:ref2 LN:60 M5:7c35feac7036c1cdef3bee0cc4b21437
+@SQ SN:ref3_unused LN:70 M5:5fdd18c2c6ecac4838996d029bf395b5
+r1 99 alpha 1 40 35M = 66 100 TGGGGTGTCATAGTAATCCGGTTGGGAGTCCGAGG * NM:i:0 RG:Z:s1_a_1
+r1 147 alpha 66 40 35M = 1 -100 TATCCAGAACTTTGCAGCCATATCTCCAAGACATG * NM:i:0 RG:Z:s1_a_1
+ref1_grp1_p001 99 ref1 1 0 10M = 25 34 CGAGCTCGGT !!!!!!!!!! RG:Z:grp1 BC:Z:ACGT H0:i:1 aa:A:! ab:A:~ fa:f:3.14159 za:Z:Hello world! ha:H:DEADBEEF ba:B:c,-128,0,127 bb:B:C,0,127,255 bc:B:s,-32768,0,32767 bd:B:S,0,32768,65535 be:B:i,-2147483648,0,2147483647 bf:B:I,0,2147483648,4294967295 bg:B:f,2.71828,6.626e-34,2.9979e+09 NM:i:0 MD:Z:10
+ref1_grp2_p001 99 ref1 3 1 10M = 27 34 AGCTCGGTAC """""""""" RG:Z:grp2 BC:Z:TGCA H0:i:1 aa:A:A ab:A:Z fa:f:6.67e-11 za:Z:!"$%^&*() ha:H:CAFE NM:i:0 MD:Z:10
+ref1_grp1_p002 99 ref1 5 2 10M = 29 34 CTCGGTACCC ########## RG:Z:grp1 BC:Z:AATTCCGG H0:i:1 aa:A:a ab:A:z fa:f:4.3597e-18 za:Z:Another string ha:H:2000AD NM:i:0 MD:Z:10
+ref1_grp2_p002 99 ref1 7 3 10M = 31 34 CGGTACCCGG $$$$$$$$$$ fa:f:6.022e+23 RG:Z:grp2 NM:i:0 MD:Z:10
+ref1_grp1_p003 99 ref1 9 4 10M = 33 34 GTACCCGGGG %%%%%%%%%% fa:f:1.66e-27 RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p003 99 ref1 11 5 10M = 35 34 ACCCGGGGAT &&&&&&&&&& RG:Z:grp2 ia:i:4294967295 NM:i:0 MD:Z:10
+ref1_grp1_p004 99 ref1 13 6 10M = 37 34 CCGGGGATCC '''''''''' fa:f:1.38e-23 za:Z:xRG:Z:grp2 RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p004 99 ref1 15 7 10M = 39 34 GGGGATCCTC (((((((((( RG:Z:grp2 ia:i:-2147483648 NM:i:0 MD:Z:10
+ref1_grp1_p005 99 ref1 17 8 10M = 41 34 GGATCCTCTA )))))))))) RG:Z:grp1 ia:i:40000 NM:i:0 MD:Z:10
+ref1_grp2_p005 99 ref1 19 9 10M = 43 34 ATCCTCTAGA ********** RG:Z:grp2 ia:i:-1000 NM:i:0 MD:Z:10
+ref1_grp1_p006 99 ref1 21 10 10M = 45 34 CCTCTAGAGT ++++++++++ RG:Z:grp1 ia:i:255 NM:i:0 MD:Z:10
+ref1_grp2_p006 99 ref1 23 11 10M = 47 34 TCTAGAGTCG ,,,,,,,,,, RG:Z:grp2 ia:i:-1 NM:i:0 MD:Z:10
+ref1_grp1_p001 147 ref1 25 12 10M = 1 -34 TAGAGTCGAC ---------- RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p001 147 ref1 27 13 10M = 3 -34 GAGTCGACCT .......... RG:Z:grp2 NM:i:0 MD:Z:10
+ref1_grp1_p002 147 ref1 29 14 10M = 5 -34 GTCGACCTGC ////////// RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p002 147 ref1 31 15 10M = 7 -34 CGACCTGCAG 0000000000 RG:Z:grp2 NM:i:0 MD:Z:10
+ref1_grp1_p003 147 ref1 33 16 10M = 9 -34 ACCTGCAGGC 1111111111 RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p003 147 ref1 35 17 10M = 11 -34 CTGCAGGCAT 2222222222 RG:Z:grp2 NM:i:0 MD:Z:10
+ref12_grp1_p001 97 ref1 36 50 10M ref2 2 0 TGCAGGCATG AAAAAAAAAA RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp1_p004 147 ref1 37 18 10M = 13 -34 GCAGGCATGC 3333333333 RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p004 147 ref1 39 19 10M = 15 -34 AGGCATGCAA 4444444444 RG:Z:grp2 NM:i:0 MD:Z:10
+ref1_grp1_p005 147 ref1 41 20 10M = 17 -34 GCATGCAAGC 5555555555 RG:Z:grp1 NM:i:0 MD:Z:10
+ref1_grp2_p005 147 ref1 43 21 10M = 19 -34 ATGCAAGCTT 6666666666 RG:Z:grp2 NM:i:0 MD:Z:10
+ref1_grp1_p006 147 ref1 45 22 10M = 21 -34 GCAAGCTTGA 7777777777 RG:Z:grp1 NM:i:0 MD:Z:10
+ref12_grp2_p001 97 ref1 46 50 10M ref2 12 0 CAAGCTTGAG AAAAAAAAAA RG:Z:grp2 NM:i:0 MD:Z:10
+ref1_grp2_p006 147 ref1 47 23 10M = 23 -34 AAGCTTGAGT 8888888888 RG:Z:grp2 NM:i:0 MD:Z:10
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12.2reads.nooverlap.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/12.2reads.nooverlap.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,740 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t5b31676a\tb0edee94\t471895da\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t2\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t2\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t1\n+SN\treads mapped:\t2\n+SN\treads mapped and paired:\t2\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t2\t# proper-pair bit set\n+SN\treads paired:\t2\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t200\t# ignores clipping\n+SN\ttotal first fragment length:\t100\t# ignores clipping\n+SN\ttotal last fragment length:\t100\t# ignores clipping\n+SN\tbases mapped:\t200\t# ignores clipping\n+SN\tbases mapped (cigar):\t168\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t6\t# from NM fields\n+SN\terror rate:\t3.571429e-02\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t100\n+SN\taverage first fragment length:\t100\n+SN\taverage last fragment length:\t100\n+SN\tmaximum length:\t100\n+SN\tmaximum first fragment length:\t100\n+SN\tmaximum last fragment length:\t100\n+SN\taverage quality:\t36.2\n+SN\tinsert size average:\t165.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+SN\tbases inside the target:\t166\n+SN\tpercentage of target genome with coverage > 0 (%):\t99.40\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t6\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t7\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t8\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t9\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t10\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t12\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t13\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t14\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t15\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t16\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t17\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t18\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t19\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t20\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t21\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t22\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t'..b'00\t0.00\n+LBC\t95\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t96\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t97\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t98\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t99\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t100\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t0\t0\t0\t0\n+IS\t101\t0\t0\t0\t0\n+IS\t102\t0\t0\t0\t0\n+IS\t103\t0\t0\t0\t0\n+IS\t104\t0\t0\t0\t0\n+IS\t105\t0\t0\t0\t0\n+IS\t106\t0\t0\t0\t0\n+IS\t107\t0\t0\t0\t0\n+IS\t108\t0\t0\t0\t0\n+IS\t109\t0\t0\t0\t0\n+IS\t110\t0\t0\t0\t0\n+IS\t111\t0\t0\t0\t0\n+IS\t112\t0\t0\t0\t0\n+IS\t113\t0\t0\t0\t0\n+IS\t114\t0\t0\t0\t0\n+IS\t115\t0\t0\t0\t0\n+IS\t116\t0\t0\t0\t0\n+IS\t117\t0\t0\t0\t0\n+IS\t118\t0\t0\t0\t0\n+IS\t119\t0\t0\t0\t0\n+IS\t120\t0\t0\t0\t0\n+IS\t121\t0\t0\t0\t0\n+IS\t122\t0\t0\t0\t0\n+IS\t123\t0\t0\t0\t0\n+IS\t124\t0\t0\t0\t0\n+IS\t125\t0\t0\t0\t0\n+IS\t126\t0\t0\t0\t0\n+IS\t127\t0\t0\t0\t0\n+IS\t128\t0\t0\t0\t0\n+IS\t129\t0\t0\t0\t0\n+IS\t130\t0\t0\t0\t0\n+IS\t131\t0\t0\t0\t0\n+IS\t132\t0\t0\t0\t0\n+IS\t133\t0\t0\t0\t0\n+IS\t134\t0\t0\t0\t0\n+IS\t135\t0\t0\t0\t0\n+IS\t136\t0\t0\t0\t0\n+IS\t137\t0\t0\t0\t0\n+IS\t138\t0\t0\t0\t0\n+IS\t139\t0\t0\t0\t0\n+IS\t140\t0\t0\t0\t0\n+IS\t141\t0\t0\t0\t0\n+IS\t142\t0\t0\t0\t0\n+IS\t143\t0\t0\t0\t0\n+IS\t144\t0\t0\t0\t0\n+IS\t145\t0\t0\t0\t0\n+IS\t146\t0\t0\t0\t0\n+IS\t147\t0\t0\t0\t0\n+IS\t148\t0\t0\t0\t0\n+IS\t149\t0\t0\t0\t0\n+IS\t150\t0\t0\t0\t0\n+IS\t151\t0\t0\t0\t0\n+IS\t152\t0\t0\t0\t0\n+IS\t153\t0\t0\t0\t0\n+IS\t154\t0\t0\t0\t0\n+IS\t155\t0\t0\t0\t0\n+IS\t156\t0\t0\t0\t0\n+IS\t157\t0\t0\t0\t0\n+IS\t158\t0\t0\t0\t0\n+IS\t159\t0\t0\t0\t0\n+IS\t160\t0\t0\t0\t0\n+IS\t161\t0\t0\t0\t0\n+IS\t162\t0\t0\t0\t0\n+IS\t163\t0\t0\t0\t0\n+IS\t164\t0\t0\t0\t0\n+IS\t165\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t100\t2\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t100\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t100\t1\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+ID\t2\t0\t1\n+ID\t3\t1\t0\n+# 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)\n+IC\t90\t1\t0\t0\t0\n+IC\t97\t0\t0\t1\t0\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t165\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12.2reads.overlap.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/12.2reads.overlap.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,741 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t5b31676a\tb0edee94\t471895da\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t2\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t2\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t1\n+SN\treads mapped:\t2\n+SN\treads mapped and paired:\t2\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t2\t# proper-pair bit set\n+SN\treads paired:\t2\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t200\t# ignores clipping\n+SN\ttotal first fragment length:\t100\t# ignores clipping\n+SN\ttotal last fragment length:\t100\t# ignores clipping\n+SN\tbases mapped:\t200\t# ignores clipping\n+SN\tbases mapped (cigar):\t199\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t6\t# from NM fields\n+SN\terror rate:\t3.015075e-02\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t100\n+SN\taverage first fragment length:\t100\n+SN\taverage last fragment length:\t100\n+SN\tmaximum length:\t100\n+SN\tmaximum first fragment length:\t100\n+SN\tmaximum last fragment length:\t100\n+SN\taverage quality:\t36.2\n+SN\tinsert size average:\t165.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+SN\tbases inside the target:\t166\n+SN\tpercentage of target genome with coverage > 0 (%):\t99.40\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t6\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t7\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t8\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t9\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t10\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t12\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t13\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t14\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t15\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t16\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t17\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t18\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t19\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t20\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t21\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t22\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t'..b'100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t96\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t97\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t98\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t99\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t100\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t0\t0\t0\t0\n+IS\t101\t0\t0\t0\t0\n+IS\t102\t0\t0\t0\t0\n+IS\t103\t0\t0\t0\t0\n+IS\t104\t0\t0\t0\t0\n+IS\t105\t0\t0\t0\t0\n+IS\t106\t0\t0\t0\t0\n+IS\t107\t0\t0\t0\t0\n+IS\t108\t0\t0\t0\t0\n+IS\t109\t0\t0\t0\t0\n+IS\t110\t0\t0\t0\t0\n+IS\t111\t0\t0\t0\t0\n+IS\t112\t0\t0\t0\t0\n+IS\t113\t0\t0\t0\t0\n+IS\t114\t0\t0\t0\t0\n+IS\t115\t0\t0\t0\t0\n+IS\t116\t0\t0\t0\t0\n+IS\t117\t0\t0\t0\t0\n+IS\t118\t0\t0\t0\t0\n+IS\t119\t0\t0\t0\t0\n+IS\t120\t0\t0\t0\t0\n+IS\t121\t0\t0\t0\t0\n+IS\t122\t0\t0\t0\t0\n+IS\t123\t0\t0\t0\t0\n+IS\t124\t0\t0\t0\t0\n+IS\t125\t0\t0\t0\t0\n+IS\t126\t0\t0\t0\t0\n+IS\t127\t0\t0\t0\t0\n+IS\t128\t0\t0\t0\t0\n+IS\t129\t0\t0\t0\t0\n+IS\t130\t0\t0\t0\t0\n+IS\t131\t0\t0\t0\t0\n+IS\t132\t0\t0\t0\t0\n+IS\t133\t0\t0\t0\t0\n+IS\t134\t0\t0\t0\t0\n+IS\t135\t0\t0\t0\t0\n+IS\t136\t0\t0\t0\t0\n+IS\t137\t0\t0\t0\t0\n+IS\t138\t0\t0\t0\t0\n+IS\t139\t0\t0\t0\t0\n+IS\t140\t0\t0\t0\t0\n+IS\t141\t0\t0\t0\t0\n+IS\t142\t0\t0\t0\t0\n+IS\t143\t0\t0\t0\t0\n+IS\t144\t0\t0\t0\t0\n+IS\t145\t0\t0\t0\t0\n+IS\t146\t0\t0\t0\t0\n+IS\t147\t0\t0\t0\t0\n+IS\t148\t0\t0\t0\t0\n+IS\t149\t0\t0\t0\t0\n+IS\t150\t0\t0\t0\t0\n+IS\t151\t0\t0\t0\t0\n+IS\t152\t0\t0\t0\t0\n+IS\t153\t0\t0\t0\t0\n+IS\t154\t0\t0\t0\t0\n+IS\t155\t0\t0\t0\t0\n+IS\t156\t0\t0\t0\t0\n+IS\t157\t0\t0\t0\t0\n+IS\t158\t0\t0\t0\t0\n+IS\t159\t0\t0\t0\t0\n+IS\t160\t0\t0\t0\t0\n+IS\t161\t0\t0\t0\t0\n+IS\t162\t0\t0\t0\t0\n+IS\t163\t0\t0\t0\t0\n+IS\t164\t0\t0\t0\t0\n+IS\t165\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t100\t2\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t100\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t100\t1\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+ID\t2\t0\t1\n+ID\t3\t1\t0\n+# 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)\n+IC\t90\t1\t0\t0\t0\n+IC\t97\t0\t0\t1\t0\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t134\n+COV\t[2-2]\t2\t31\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12.3reads.nooverlap.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/12.3reads.nooverlap.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,758 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t09f8b87f\t140798ec\t2b989f07\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t3\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t3\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t2\n+SN\treads mapped:\t3\n+SN\treads mapped and paired:\t3\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t3\t# proper-pair bit set\n+SN\treads paired:\t3\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t300\t# ignores clipping\n+SN\ttotal first fragment length:\t100\t# ignores clipping\n+SN\ttotal last fragment length:\t200\t# ignores clipping\n+SN\tbases mapped:\t300\t# ignores clipping\n+SN\tbases mapped (cigar):\t280\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t11\t# from NM fields\n+SN\terror rate:\t3.928572e-02\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t100\n+SN\taverage first fragment length:\t100\n+SN\taverage last fragment length:\t100\n+SN\tmaximum length:\t100\n+SN\tmaximum first fragment length:\t100\n+SN\tmaximum last fragment length:\t100\n+SN\taverage quality:\t33.3\n+SN\tinsert size average:\t180.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+SN\tbases inside the target:\t180\n+SN\tpercentage of target genome with coverage > 0 (%):\t99.44\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t6\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t7\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t8\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t9\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\n+FFQ\t10\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t12\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t13\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t14\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\n+FFQ\t15\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t16\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+FFQ\t17\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t18\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t19\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t20\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+FFQ\t21\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t22\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+FFQ\t23\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0'..b'zes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t0\t0\t0\t0\n+IS\t101\t0\t0\t0\t0\n+IS\t102\t0\t0\t0\t0\n+IS\t103\t0\t0\t0\t0\n+IS\t104\t0\t0\t0\t0\n+IS\t105\t0\t0\t0\t0\n+IS\t106\t0\t0\t0\t0\n+IS\t107\t0\t0\t0\t0\n+IS\t108\t0\t0\t0\t0\n+IS\t109\t0\t0\t0\t0\n+IS\t110\t0\t0\t0\t0\n+IS\t111\t0\t0\t0\t0\n+IS\t112\t0\t0\t0\t0\n+IS\t113\t0\t0\t0\t0\n+IS\t114\t0\t0\t0\t0\n+IS\t115\t0\t0\t0\t0\n+IS\t116\t0\t0\t0\t0\n+IS\t117\t0\t0\t0\t0\n+IS\t118\t0\t0\t0\t0\n+IS\t119\t0\t0\t0\t0\n+IS\t120\t0\t0\t0\t0\n+IS\t121\t0\t0\t0\t0\n+IS\t122\t0\t0\t0\t0\n+IS\t123\t0\t0\t0\t0\n+IS\t124\t0\t0\t0\t0\n+IS\t125\t0\t0\t0\t0\n+IS\t126\t0\t0\t0\t0\n+IS\t127\t0\t0\t0\t0\n+IS\t128\t0\t0\t0\t0\n+IS\t129\t0\t0\t0\t0\n+IS\t130\t0\t0\t0\t0\n+IS\t131\t0\t0\t0\t0\n+IS\t132\t0\t0\t0\t0\n+IS\t133\t0\t0\t0\t0\n+IS\t134\t0\t0\t0\t0\n+IS\t135\t0\t0\t0\t0\n+IS\t136\t0\t0\t0\t0\n+IS\t137\t0\t0\t0\t0\n+IS\t138\t0\t0\t0\t0\n+IS\t139\t0\t0\t0\t0\n+IS\t140\t0\t0\t0\t0\n+IS\t141\t0\t0\t0\t0\n+IS\t142\t0\t0\t0\t0\n+IS\t143\t0\t0\t0\t0\n+IS\t144\t0\t0\t0\t0\n+IS\t145\t0\t0\t0\t0\n+IS\t146\t0\t0\t0\t0\n+IS\t147\t0\t0\t0\t0\n+IS\t148\t0\t0\t0\t0\n+IS\t149\t0\t0\t0\t0\n+IS\t150\t0\t0\t0\t0\n+IS\t151\t0\t0\t0\t0\n+IS\t152\t0\t0\t0\t0\n+IS\t153\t0\t0\t0\t0\n+IS\t154\t0\t0\t0\t0\n+IS\t155\t0\t0\t0\t0\n+IS\t156\t0\t0\t0\t0\n+IS\t157\t0\t0\t0\t0\n+IS\t158\t0\t0\t0\t0\n+IS\t159\t0\t0\t0\t0\n+IS\t160\t0\t0\t0\t0\n+IS\t161\t0\t0\t0\t0\n+IS\t162\t0\t0\t0\t0\n+IS\t163\t0\t0\t0\t0\n+IS\t164\t0\t0\t0\t0\n+IS\t165\t0\t0\t0\t0\n+IS\t166\t0\t0\t0\t0\n+IS\t167\t0\t0\t0\t0\n+IS\t168\t0\t0\t0\t0\n+IS\t169\t0\t0\t0\t0\n+IS\t170\t0\t0\t0\t0\n+IS\t171\t0\t0\t0\t0\n+IS\t172\t0\t0\t0\t0\n+IS\t173\t0\t0\t0\t0\n+IS\t174\t0\t0\t0\t0\n+IS\t175\t0\t0\t0\t0\n+IS\t176\t0\t0\t0\t0\n+IS\t177\t0\t0\t0\t0\n+IS\t178\t0\t0\t0\t0\n+IS\t179\t0\t0\t0\t0\n+IS\t180\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t100\t3\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t100\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t100\t2\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+ID\t1\t1\t2\n+# 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)\n+IC\t19\t0\t0\t1\t0\n+IC\t92\t0\t0\t1\t0\n+IC\t98\t1\t0\t0\t0\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t79\n+COV\t[2-2]\t2\t100\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12.3reads.overlap.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/12.3reads.overlap.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,759 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t09f8b87f\t140798ec\t2b989f07\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t3\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t3\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t2\n+SN\treads mapped:\t3\n+SN\treads mapped and paired:\t3\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t3\t# proper-pair bit set\n+SN\treads paired:\t3\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t300\t# ignores clipping\n+SN\ttotal first fragment length:\t100\t# ignores clipping\n+SN\ttotal last fragment length:\t200\t# ignores clipping\n+SN\tbases mapped:\t300\t# ignores clipping\n+SN\tbases mapped (cigar):\t300\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t11\t# from NM fields\n+SN\terror rate:\t3.666667e-02\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t100\n+SN\taverage first fragment length:\t100\n+SN\taverage last fragment length:\t100\n+SN\tmaximum length:\t100\n+SN\tmaximum first fragment length:\t100\n+SN\tmaximum last fragment length:\t100\n+SN\taverage quality:\t33.3\n+SN\tinsert size average:\t180.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+SN\tbases inside the target:\t180\n+SN\tpercentage of target genome with coverage > 0 (%):\t99.44\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t6\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t7\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t8\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t9\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\n+FFQ\t10\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\n+FFQ\t11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t12\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t13\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\n+FFQ\t14\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\n+FFQ\t15\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t16\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+FFQ\t17\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t18\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t19\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t20\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+FFQ\t21\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+FFQ\t22\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+FFQ\t23\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0'..b'^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t0\t0\t0\t0\n+IS\t101\t0\t0\t0\t0\n+IS\t102\t0\t0\t0\t0\n+IS\t103\t0\t0\t0\t0\n+IS\t104\t0\t0\t0\t0\n+IS\t105\t0\t0\t0\t0\n+IS\t106\t0\t0\t0\t0\n+IS\t107\t0\t0\t0\t0\n+IS\t108\t0\t0\t0\t0\n+IS\t109\t0\t0\t0\t0\n+IS\t110\t0\t0\t0\t0\n+IS\t111\t0\t0\t0\t0\n+IS\t112\t0\t0\t0\t0\n+IS\t113\t0\t0\t0\t0\n+IS\t114\t0\t0\t0\t0\n+IS\t115\t0\t0\t0\t0\n+IS\t116\t0\t0\t0\t0\n+IS\t117\t0\t0\t0\t0\n+IS\t118\t0\t0\t0\t0\n+IS\t119\t0\t0\t0\t0\n+IS\t120\t0\t0\t0\t0\n+IS\t121\t0\t0\t0\t0\n+IS\t122\t0\t0\t0\t0\n+IS\t123\t0\t0\t0\t0\n+IS\t124\t0\t0\t0\t0\n+IS\t125\t0\t0\t0\t0\n+IS\t126\t0\t0\t0\t0\n+IS\t127\t0\t0\t0\t0\n+IS\t128\t0\t0\t0\t0\n+IS\t129\t0\t0\t0\t0\n+IS\t130\t0\t0\t0\t0\n+IS\t131\t0\t0\t0\t0\n+IS\t132\t0\t0\t0\t0\n+IS\t133\t0\t0\t0\t0\n+IS\t134\t0\t0\t0\t0\n+IS\t135\t0\t0\t0\t0\n+IS\t136\t0\t0\t0\t0\n+IS\t137\t0\t0\t0\t0\n+IS\t138\t0\t0\t0\t0\n+IS\t139\t0\t0\t0\t0\n+IS\t140\t0\t0\t0\t0\n+IS\t141\t0\t0\t0\t0\n+IS\t142\t0\t0\t0\t0\n+IS\t143\t0\t0\t0\t0\n+IS\t144\t0\t0\t0\t0\n+IS\t145\t0\t0\t0\t0\n+IS\t146\t0\t0\t0\t0\n+IS\t147\t0\t0\t0\t0\n+IS\t148\t0\t0\t0\t0\n+IS\t149\t0\t0\t0\t0\n+IS\t150\t0\t0\t0\t0\n+IS\t151\t0\t0\t0\t0\n+IS\t152\t0\t0\t0\t0\n+IS\t153\t0\t0\t0\t0\n+IS\t154\t0\t0\t0\t0\n+IS\t155\t0\t0\t0\t0\n+IS\t156\t0\t0\t0\t0\n+IS\t157\t0\t0\t0\t0\n+IS\t158\t0\t0\t0\t0\n+IS\t159\t0\t0\t0\t0\n+IS\t160\t0\t0\t0\t0\n+IS\t161\t0\t0\t0\t0\n+IS\t162\t0\t0\t0\t0\n+IS\t163\t0\t0\t0\t0\n+IS\t164\t0\t0\t0\t0\n+IS\t165\t0\t0\t0\t0\n+IS\t166\t0\t0\t0\t0\n+IS\t167\t0\t0\t0\t0\n+IS\t168\t0\t0\t0\t0\n+IS\t169\t0\t0\t0\t0\n+IS\t170\t0\t0\t0\t0\n+IS\t171\t0\t0\t0\t0\n+IS\t172\t0\t0\t0\t0\n+IS\t173\t0\t0\t0\t0\n+IS\t174\t0\t0\t0\t0\n+IS\t175\t0\t0\t0\t0\n+IS\t176\t0\t0\t0\t0\n+IS\t177\t0\t0\t0\t0\n+IS\t178\t0\t0\t0\t0\n+IS\t179\t0\t0\t0\t0\n+IS\t180\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t100\t3\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t100\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t100\t2\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+ID\t1\t1\t2\n+# 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)\n+IC\t19\t0\t0\t1\t0\n+IC\t92\t0\t0\t1\t0\n+IC\t98\t1\t0\t0\t0\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t79\n+COV\t[2-2]\t2\t80\n+COV\t[3-3]\t3\t20\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12_2reads.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/12_2reads.bed Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,1 @@
+14 38169880 38170045
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12_3reads.bed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/12_3reads.bed Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,1 @@
+16 89701235 89701414
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/12_overlaps.bam
b
Binary file test-data/12_overlaps.bam has changed
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/1_map_cigar.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1_map_cigar.sam Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,5 @@
+@HD VN:1.4
+@SQ SN:alpha LN:100
+@RG ID:s1_a_1 LB:1 SM:s1
+r1 99 alpha 1 40 35M = 66 100 TGGGGTGTCATAGTAATCCGGTTGGGAGTCCGAGG * RG:Z:s1_a_1 NM:i:0
+r1 147 alpha 66 40 35M = 1 -100 TATCCAGAACTTTGCAGCCATATCTCCAAGACATG * RG:Z:s1_a_1 NM:i:0
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/2.stats.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2.stats.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,383 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t1a1c1362\t29c426ae\t7bab45da\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t2\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t2\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t1\n+SN\treads mapped:\t2\n+SN\treads mapped and paired:\t2\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t2\t# proper-pair bit set\n+SN\treads paired:\t2\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t70\t# ignores clipping\n+SN\ttotal first fragment length:\t35\t# ignores clipping\n+SN\ttotal last fragment length:\t35\t# ignores clipping\n+SN\tbases mapped:\t70\t# ignores clipping\n+SN\tbases mapped (cigar):\t70\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t0\t# from NM fields\n+SN\terror rate:\t0.000000e+00\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t35\n+SN\taverage first fragment length:\t35\n+SN\taverage last fragment length:\t35\n+SN\tmaximum length:\t35\n+SN\tmaximum first fragment length:\t35\n+SN\tmaximum last fragment length:\t35\n+SN\taverage quality:\t255.0\n+SN\tinsert size average:\t100.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t'..b'00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t3\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t4\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t5\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t6\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t7\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t8\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t9\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t10\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t11\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t12\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t13\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t14\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t15\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t16\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t17\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t18\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t19\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t20\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t21\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t22\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t23\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t24\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t25\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t26\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t27\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t28\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t29\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t30\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t31\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t32\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t33\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t34\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t35\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t35\t2\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t35\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t35\t1\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+# 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)\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t70\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/2_equal_cigar_full_seq.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2_equal_cigar_full_seq.sam Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,5 @@
+@HD VN:1.4
+@SQ SN:alpha LN:100
+@RG ID:s1_a_1 LB:1 SM:s1
+r1 99 alpha 1 40 35= = 66 100 TGGGGTGTCATAGTAATCCGGTTGGGAGTCCGAGG * RG:Z:s1_a_1 NM:i:0
+r1 147 alpha 66 40 35= = 1 -100 TATCCAGAACTTTGCAGCCATATCTCCAAGACATG * RG:Z:s1_a_1 NM:i:0
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/5_insert_cigar.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/5_insert_cigar.sam Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,5 @@
+@HD VN:1.4
+@SQ SN:alpha LN:100
+@RG ID:s1_a_1 LB:1 SM:s1
+r1 99 alpha 1 40 1M1I33M = 66 100 TGGGGGTGTCATAGTAATCCGGTTGGGAGTCCGAG * RG:Z:s1_a_1 NM:i:0
+r1 147 alpha 66 40 35M = 1 -100 TATCCAGAACTTTGCAGCCATATCTCCAAGACATG * RG:Z:s1_a_1 NM:i:0
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/6.stats.expected
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/6.stats.expected Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,385 @@\n+# CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n+# CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n+CHK\t1a1c1362\t32507d92\t7bab45da\n+# Summary Numbers. Use `grep ^SN | cut -f 2-` to extract this part.\n+SN\traw total sequences:\t2\n+SN\tfiltered sequences:\t0\n+SN\tsequences:\t2\n+SN\tis sorted:\t1\n+SN\t1st fragments:\t1\n+SN\tlast fragments:\t1\n+SN\treads mapped:\t2\n+SN\treads mapped and paired:\t2\t# paired-end technology bit set + both mates mapped\n+SN\treads unmapped:\t0\n+SN\treads properly paired:\t2\t# proper-pair bit set\n+SN\treads paired:\t2\t# paired-end technology bit set\n+SN\treads duplicated:\t0\t# PCR or optical duplicate bit set\n+SN\treads MQ0:\t0\t# mapped and MQ=0\n+SN\treads QC failed:\t0\n+SN\tnon-primary alignments:\t0\n+SN\ttotal length:\t70\t# ignores clipping\n+SN\ttotal first fragment length:\t35\t# ignores clipping\n+SN\ttotal last fragment length:\t35\t# ignores clipping\n+SN\tbases mapped:\t70\t# ignores clipping\n+SN\tbases mapped (cigar):\t70\t# more accurate\n+SN\tbases trimmed:\t0\n+SN\tbases duplicated:\t0\n+SN\tmismatches:\t0\t# from NM fields\n+SN\terror rate:\t0.000000e+00\t# mismatches / bases mapped (cigar)\n+SN\taverage length:\t35\n+SN\taverage first fragment length:\t35\n+SN\taverage last fragment length:\t35\n+SN\tmaximum length:\t35\n+SN\tmaximum first fragment length:\t35\n+SN\tmaximum last fragment length:\t35\n+SN\taverage quality:\t255.0\n+SN\tinsert size average:\t100.0\n+SN\tinsert size standard deviation:\t0.0\n+SN\tinward oriented pairs:\t1\n+SN\toutward oriented pairs:\t0\n+SN\tpairs with other orientation:\t0\n+SN\tpairs on different chromosomes:\t0\n+SN\tpercentage of properly paired reads (%):\t100.0\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+# Columns correspond to qualities and rows to cycles. First column is the cycle number.\n+FFQ\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\n+FFQ\t5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t'..b'\t0.00\n+LBC\t3\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t4\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t5\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t6\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t7\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t8\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t9\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t10\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t11\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t12\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t13\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t14\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t15\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t16\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t17\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t18\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t19\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t20\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t21\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t22\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t23\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t24\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t25\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t26\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t27\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t28\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t29\t0.00\t0.00\t100.00\t0.00\t0.00\t0.00\n+LBC\t30\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t31\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t32\t0.00\t100.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t33\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+LBC\t34\t100.00\t0.00\t0.00\t0.00\t0.00\t0.00\n+LBC\t35\t0.00\t0.00\t0.00\t100.00\t0.00\t0.00\n+# Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n+IS\t0\t0\t0\t0\t0\n+IS\t1\t0\t0\t0\t0\n+IS\t2\t0\t0\t0\t0\n+IS\t3\t0\t0\t0\t0\n+IS\t4\t0\t0\t0\t0\n+IS\t5\t0\t0\t0\t0\n+IS\t6\t0\t0\t0\t0\n+IS\t7\t0\t0\t0\t0\n+IS\t8\t0\t0\t0\t0\n+IS\t9\t0\t0\t0\t0\n+IS\t10\t0\t0\t0\t0\n+IS\t11\t0\t0\t0\t0\n+IS\t12\t0\t0\t0\t0\n+IS\t13\t0\t0\t0\t0\n+IS\t14\t0\t0\t0\t0\n+IS\t15\t0\t0\t0\t0\n+IS\t16\t0\t0\t0\t0\n+IS\t17\t0\t0\t0\t0\n+IS\t18\t0\t0\t0\t0\n+IS\t19\t0\t0\t0\t0\n+IS\t20\t0\t0\t0\t0\n+IS\t21\t0\t0\t0\t0\n+IS\t22\t0\t0\t0\t0\n+IS\t23\t0\t0\t0\t0\n+IS\t24\t0\t0\t0\t0\n+IS\t25\t0\t0\t0\t0\n+IS\t26\t0\t0\t0\t0\n+IS\t27\t0\t0\t0\t0\n+IS\t28\t0\t0\t0\t0\n+IS\t29\t0\t0\t0\t0\n+IS\t30\t0\t0\t0\t0\n+IS\t31\t0\t0\t0\t0\n+IS\t32\t0\t0\t0\t0\n+IS\t33\t0\t0\t0\t0\n+IS\t34\t0\t0\t0\t0\n+IS\t35\t0\t0\t0\t0\n+IS\t36\t0\t0\t0\t0\n+IS\t37\t0\t0\t0\t0\n+IS\t38\t0\t0\t0\t0\n+IS\t39\t0\t0\t0\t0\n+IS\t40\t0\t0\t0\t0\n+IS\t41\t0\t0\t0\t0\n+IS\t42\t0\t0\t0\t0\n+IS\t43\t0\t0\t0\t0\n+IS\t44\t0\t0\t0\t0\n+IS\t45\t0\t0\t0\t0\n+IS\t46\t0\t0\t0\t0\n+IS\t47\t0\t0\t0\t0\n+IS\t48\t0\t0\t0\t0\n+IS\t49\t0\t0\t0\t0\n+IS\t50\t0\t0\t0\t0\n+IS\t51\t0\t0\t0\t0\n+IS\t52\t0\t0\t0\t0\n+IS\t53\t0\t0\t0\t0\n+IS\t54\t0\t0\t0\t0\n+IS\t55\t0\t0\t0\t0\n+IS\t56\t0\t0\t0\t0\n+IS\t57\t0\t0\t0\t0\n+IS\t58\t0\t0\t0\t0\n+IS\t59\t0\t0\t0\t0\n+IS\t60\t0\t0\t0\t0\n+IS\t61\t0\t0\t0\t0\n+IS\t62\t0\t0\t0\t0\n+IS\t63\t0\t0\t0\t0\n+IS\t64\t0\t0\t0\t0\n+IS\t65\t0\t0\t0\t0\n+IS\t66\t0\t0\t0\t0\n+IS\t67\t0\t0\t0\t0\n+IS\t68\t0\t0\t0\t0\n+IS\t69\t0\t0\t0\t0\n+IS\t70\t0\t0\t0\t0\n+IS\t71\t0\t0\t0\t0\n+IS\t72\t0\t0\t0\t0\n+IS\t73\t0\t0\t0\t0\n+IS\t74\t0\t0\t0\t0\n+IS\t75\t0\t0\t0\t0\n+IS\t76\t0\t0\t0\t0\n+IS\t77\t0\t0\t0\t0\n+IS\t78\t0\t0\t0\t0\n+IS\t79\t0\t0\t0\t0\n+IS\t80\t0\t0\t0\t0\n+IS\t81\t0\t0\t0\t0\n+IS\t82\t0\t0\t0\t0\n+IS\t83\t0\t0\t0\t0\n+IS\t84\t0\t0\t0\t0\n+IS\t85\t0\t0\t0\t0\n+IS\t86\t0\t0\t0\t0\n+IS\t87\t0\t0\t0\t0\n+IS\t88\t0\t0\t0\t0\n+IS\t89\t0\t0\t0\t0\n+IS\t90\t0\t0\t0\t0\n+IS\t91\t0\t0\t0\t0\n+IS\t92\t0\t0\t0\t0\n+IS\t93\t0\t0\t0\t0\n+IS\t94\t0\t0\t0\t0\n+IS\t95\t0\t0\t0\t0\n+IS\t96\t0\t0\t0\t0\n+IS\t97\t0\t0\t0\t0\n+IS\t98\t0\t0\t0\t0\n+IS\t99\t0\t0\t0\t0\n+IS\t100\t1\t1\t0\t0\n+# Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n+RL\t35\t2\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t35\t1\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t35\t1\n+# Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n+ID\t1\t1\t0\n+# 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)\n+IC\t2\t1\t0\t0\t0\n+# Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n+COV\t[1-1]\t1\t69\n+# GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n+GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/samtools_stats_out1.tab
--- a/test-data/samtools_stats_out1.tab Tue May 09 11:19:01 2017 -0400
+++ b/test-data/samtools_stats_out1.tab Thu Sep 27 09:05:10 2018 -0400
[
b"@@ -1,6 +1,6 @@\n-# This file was produced by samtools stats (1.3.1+htslib-1.3.1) and can be plotted using plot-bamstats\n+# This file was produced by samtools stats (1.9+htslib-1.9) and can be plotted using plot-bamstats\n # This file contains statistics for all reads.\n-# The command line was:  stats --coverage 1,1000,1 --GC-depth 20000.0 --insert-size 8000 --most-inserts 0.99 --trim-quality 0 --ref-seq /tmp/tmpO1aTrb/files/000/dataset_2.dat /tmp/tmpO1aTrb/files/000/dataset_1.dat\n+# The command line was:  stats --ref-seq reference.fa infile\n # CHK, Checksum\t[2]Read Names\t[3]Sequences\t[4]Qualities\n # CHK, CRC32 of reads which passed filtering followed by addition (32bit overflow)\n CHK\t1bd20fd8\t58ad2167\t29883386\n@@ -21,6 +21,8 @@\n SN\treads QC failed:\t0\n SN\tnon-primary alignments:\t0\n SN\ttotal length:\t50200\t# ignores clipping\n+SN\ttotal first fragment length:\t25100\t# ignores clipping\n+SN\ttotal last fragment length:\t25100\t# ignores clipping\n SN\tbases mapped:\t6275\t# ignores clipping\n SN\tbases mapped (cigar):\t6275\t# more accurate\n SN\tbases trimmed:\t0\n@@ -28,7 +30,11 @@\n SN\tmismatches:\t591\t# from NM fields\n SN\terror rate:\t9.418327e-02\t# mismatches / bases mapped (cigar)\n SN\taverage length:\t251\n+SN\taverage first fragment length:\t251\n+SN\taverage last fragment length:\t251\n SN\tmaximum length:\t251\n+SN\tmaximum first fragment length:\t251\n+SN\tmaximum last fragment length:\t251\n SN\taverage quality:\t34.7\n SN\tinsert size average:\t0.0\n SN\tinsert size standard deviation:\t0.0\n@@ -36,7 +42,8 @@\n SN\toutward oriented pairs:\t0\n SN\tpairs with other orientation:\t0\n SN\tpairs on different chromosomes:\t0\n-# First Fragment Qualitites. Use `grep ^FFQ | cut -f 2-` to extract this part.\n+SN\tpercentage of properly paired reads (%):\t0.0\n+# First Fragment Qualities. Use `grep ^FFQ | cut -f 2-` to extract this part.\n # Columns correspond to qualities and rows to cycles. First column is the cycle number.\n FFQ\t1\t0\t0\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t3\t2\t0\t20\t38\t32\t1\t0\t0\t0\t0\t0\t0\n FFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t3\t0\t0\t18\t36\t36\t6\t0\t0\t0\t0\t0\t0\n@@ -289,8 +296,7 @@\n FFQ\t249\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t5\t6\t20\t8\t0\t0\t0\t0\t0\t0\t0\t0\t5\t7\t10\t0\t1\t0\t0\t0\t1\t15\t0\t2\t0\t20\t0\t0\t0\t0\n FFQ\t250\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t2\t10\t15\t10\t0\t0\t0\t0\t0\t0\t0\t0\t9\t5\t8\t1\t0\t0\t0\t2\t6\t10\t0\t0\t2\t20\t0\t0\t0\t0\n FFQ\t251\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t7\t20\t21\t17\t0\t0\t0\t0\t0\t0\t0\t0\t7\t7\t6\t0\t0\t0\t0\t1\t2\t4\t0\t0\t0\t8\t0\t0\t0\t0\n-FFQ\t252\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n-# Last Fragment Qualitites. Use `grep ^LFQ | cut -f 2-` to extract this part.\n+# Last Fragment Qualities. Use `grep ^LFQ | cut -f 2-` to extract this part.\n # Columns correspond to qualities and rows to cycles. First column is the cycle number.\n LFQ\t1\t0\t0\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t3\t2\t0\t20\t38\t32\t1\t0\t0\t0\t0\t0\t0\n LFQ\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t3\t0\t0\t18\t36\t36\t6\t0\t0\t0\t0\t0\t0\n@@ -543,7 +549,6 @@\n LFQ\t249\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t5\t6\t20\t8\t0\t0\t0\t0\t0\t0\t0\t0\t5\t7\t10\t0\t1\t0\t0\t0\t1\t15\t0\t2\t0\t20\t0\t0\t0\t0\n LFQ\t250\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t2\t10\t15\t10\t0\t0\t0\t0\t0\t0\t0\t0\t9\t5\t8\t1\t0\t0\t0\t2\t6\t10\t0\t0\t2\t20\t0\t0\t0\t0\n LFQ\t251\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t7\t20\t21\t17\t0\t0\t0\t0\t0\t0\t0\t0\t7\t7\t6\t0\t0\t0\t0\t1\t2\t4\t0\t0\t0\t8\t0\t0\t0\t0\n-LFQ\t252\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n # Mismatches per cycle and quality. Use `grep ^MPC | cut -f 2-` to extract this part.\n # Columns correspond to qualities, rows to cycles. First column is the cycle number, second\n # is the number of N's and the rest is the number of mismatches\n@@ -1089,9 +1094,517 @@\n GCC\t249\t25.00\t23.00\t21.00\t31.00\t0.00\t0.00\n GCC\t250\t27.50\t22.50\t17.50\t32.50\t0.00\t0.00\n GCC\t251\t13.50\t20.50\t36.50\t29.50\t0.00\t0.00\n+# ACGT content per cycle for first fragments. Use `grep ^FBC | cut -f 2-` to extract this part. The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]\n+FBC\t1\t21.43\t27.55\t36.73\t14.29\t2.0"..b'1.00\t29.00\t22.00\t0.00\t0.00\n+LBC\t192\t37.00\t25.00\t13.00\t25.00\t0.00\t0.00\n+LBC\t193\t18.00\t26.00\t25.00\t31.00\t0.00\t0.00\n+LBC\t194\t21.00\t34.00\t24.00\t21.00\t0.00\t0.00\n+LBC\t195\t16.00\t28.00\t21.00\t35.00\t0.00\t0.00\n+LBC\t196\t23.00\t23.00\t27.00\t27.00\t0.00\t0.00\n+LBC\t197\t18.00\t20.00\t24.00\t38.00\t0.00\t0.00\n+LBC\t198\t15.00\t19.00\t39.00\t27.00\t0.00\t0.00\n+LBC\t199\t23.00\t17.00\t27.00\t33.00\t0.00\t0.00\n+LBC\t200\t25.00\t27.00\t23.00\t25.00\t0.00\t0.00\n+LBC\t201\t26.00\t19.00\t25.00\t30.00\t0.00\t0.00\n+LBC\t202\t23.00\t23.00\t21.00\t33.00\t0.00\t0.00\n+LBC\t203\t21.00\t19.00\t32.00\t28.00\t0.00\t0.00\n+LBC\t204\t26.00\t29.00\t24.00\t21.00\t0.00\t0.00\n+LBC\t205\t16.00\t23.00\t21.00\t40.00\t0.00\t0.00\n+LBC\t206\t28.00\t25.00\t21.00\t26.00\t0.00\t0.00\n+LBC\t207\t22.00\t22.00\t19.00\t37.00\t0.00\t0.00\n+LBC\t208\t12.00\t32.00\t32.00\t24.00\t0.00\t0.00\n+LBC\t209\t18.00\t20.00\t15.00\t47.00\t0.00\t0.00\n+LBC\t210\t18.00\t15.00\t45.00\t22.00\t0.00\t0.00\n+LBC\t211\t28.00\t14.00\t28.00\t30.00\t0.00\t0.00\n+LBC\t212\t23.00\t27.00\t22.00\t28.00\t0.00\t0.00\n+LBC\t213\t22.00\t12.00\t34.00\t32.00\t0.00\t0.00\n+LBC\t214\t16.00\t24.00\t26.00\t34.00\t0.00\t0.00\n+LBC\t215\t28.00\t22.00\t25.00\t25.00\t0.00\t0.00\n+LBC\t216\t18.00\t17.00\t26.00\t39.00\t0.00\t0.00\n+LBC\t217\t27.00\t30.00\t16.00\t27.00\t0.00\t0.00\n+LBC\t218\t18.00\t24.00\t24.00\t34.00\t0.00\t0.00\n+LBC\t219\t19.00\t18.00\t24.00\t39.00\t0.00\t0.00\n+LBC\t220\t28.00\t23.00\t24.00\t25.00\t0.00\t0.00\n+LBC\t221\t20.00\t24.00\t20.00\t36.00\t0.00\t0.00\n+LBC\t222\t22.00\t21.00\t19.00\t38.00\t0.00\t0.00\n+LBC\t223\t19.00\t22.00\t33.00\t26.00\t0.00\t0.00\n+LBC\t224\t19.00\t20.00\t27.00\t34.00\t0.00\t0.00\n+LBC\t225\t14.00\t32.00\t34.00\t20.00\t0.00\t0.00\n+LBC\t226\t20.00\t20.00\t29.00\t31.00\t0.00\t0.00\n+LBC\t227\t17.00\t22.00\t26.00\t35.00\t0.00\t0.00\n+LBC\t228\t34.00\t20.00\t25.00\t21.00\t0.00\t0.00\n+LBC\t229\t22.00\t27.00\t16.00\t35.00\t0.00\t0.00\n+LBC\t230\t23.00\t33.00\t15.00\t29.00\t0.00\t0.00\n+LBC\t231\t20.00\t27.00\t31.00\t22.00\t0.00\t0.00\n+LBC\t232\t25.00\t23.00\t11.00\t41.00\t0.00\t0.00\n+LBC\t233\t22.00\t25.00\t27.00\t26.00\t0.00\t0.00\n+LBC\t234\t14.00\t27.00\t23.00\t36.00\t0.00\t0.00\n+LBC\t235\t17.00\t11.00\t32.00\t40.00\t0.00\t0.00\n+LBC\t236\t29.00\t20.00\t24.00\t27.00\t0.00\t0.00\n+LBC\t237\t16.00\t19.00\t23.00\t42.00\t0.00\t0.00\n+LBC\t238\t22.00\t25.00\t29.00\t24.00\t0.00\t0.00\n+LBC\t239\t18.00\t8.00\t17.00\t57.00\t0.00\t0.00\n+LBC\t240\t27.00\t26.00\t14.00\t33.00\t0.00\t0.00\n+LBC\t241\t21.00\t22.00\t17.00\t40.00\t0.00\t0.00\n+LBC\t242\t26.00\t28.00\t10.00\t36.00\t0.00\t0.00\n+LBC\t243\t25.00\t15.00\t24.00\t36.00\t0.00\t0.00\n+LBC\t244\t15.00\t24.00\t16.00\t45.00\t0.00\t0.00\n+LBC\t245\t24.00\t23.00\t19.00\t34.00\t0.00\t0.00\n+LBC\t246\t18.00\t25.00\t29.00\t28.00\t0.00\t0.00\n+LBC\t247\t30.00\t13.00\t14.00\t43.00\t0.00\t0.00\n+LBC\t248\t22.00\t17.00\t26.00\t35.00\t0.00\t0.00\n+LBC\t249\t25.00\t22.00\t22.00\t31.00\t0.00\t0.00\n+LBC\t250\t25.00\t20.00\t20.00\t35.00\t0.00\t0.00\n+LBC\t251\t13.00\t17.00\t40.00\t30.00\t0.00\t0.00\n # Insert sizes. Use `grep ^IS | cut -f 2-` to extract this part. The columns are: insert size, pairs total, inward oriented pairs, outward oriented pairs, other pairs\n # Read lengths. Use `grep ^RL | cut -f 2-` to extract this part. The columns are: read length, count\n RL\t251\t200\n+# Read lengths - first fragments. Use `grep ^FRL | cut -f 2-` to extract this part. The columns are: read length, count\n+FRL\t251\t100\n+# Read lengths - last fragments. Use `grep ^LRL | cut -f 2-` to extract this part. The columns are: read length, count\n+LRL\t251\t100\n # Indel distribution. Use `grep ^ID | cut -f 2-` to extract this part. The columns are: length, number of insertions, number of deletions\n ID\t1\t1\t0\n ID\t2\t1\t0\n@@ -1129,10 +1642,22 @@\n IC\t241\t1\t0\t0\t0\n IC\t247\t1\t0\t0\t0\n # Coverage distribution. Use `grep ^COV | cut -f 2-` to extract this part.\n-COV\t[1-1]\t1\t1\n-COV\t[7-7]\t7\t1\n+COV\t[2-2]\t2\t1\n+COV\t[3-3]\t3\t3\n+COV\t[4-4]\t4\t1\n+COV\t[5-5]\t5\t5\n+COV\t[9-9]\t9\t3\n+COV\t[10-10]\t10\t2\n+COV\t[11-11]\t11\t3\n+COV\t[12-12]\t12\t2\n+COV\t[13-13]\t13\t1\n+COV\t[14-14]\t14\t1\n+COV\t[15-15]\t15\t1\n COV\t[18-18]\t18\t1\n+COV\t[20-20]\t20\t6\n+COV\t[21-21]\t21\t6\n+COV\t[23-23]\t23\t3\n COV\t[24-24]\t24\t1\n-COV\t[25-25]\t25\t249\n+COV\t[25-25]\t25\t211\n # GC-depth. Use `grep ^GCD | cut -f 2-` to extract this part. The columns are: GC%, unique sequence percentiles, 10th, 25th, 50th, 75th and 90th depth percentile\n GCD\t0.0\t100.000\t0.000\t0.000\t0.000\t0.000\t0.000\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/samtools_stats_out1__gcc.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/samtools_stats_out1__gcc.tab Thu Sep 27 09:05:10 2018 -0400
[
b'@@ -0,0 +1,252 @@\n+# ACGT content per cycle.  The columns are: cycle; A,C,G,T base counts as a percentage of all A/C/G/T bases [%]; and N and O counts as a percentage of all A/C/G/T bases [%]\n+1\t21.94\t30.10\t34.18\t13.78\t2.04\t0.00\n+2\t30.00\t16.00\t11.00\t43.00\t0.00\t0.00\n+3\t33.00\t25.00\t9.00\t33.00\t0.00\t0.00\n+4\t17.00\t29.00\t13.00\t41.00\t0.00\t0.00\n+5\t37.00\t22.00\t12.00\t29.00\t0.00\t0.00\n+6\t36.00\t26.00\t17.00\t21.00\t0.00\t0.00\n+7\t29.50\t13.50\t31.50\t25.50\t0.00\t0.00\n+8\t50.50\t14.50\t19.50\t15.50\t0.00\t0.00\n+9\t17.00\t33.00\t18.00\t32.00\t0.00\t0.00\n+10\t37.00\t14.00\t21.00\t28.00\t0.00\t0.00\n+11\t20.50\t14.50\t29.50\t35.50\t0.00\t0.00\n+12\t30.00\t24.00\t22.00\t24.00\t0.00\t0.00\n+13\t27.00\t15.00\t21.00\t37.00\t0.00\t0.00\n+14\t24.24\t22.22\t26.26\t27.27\t1.01\t0.00\n+15\t25.50\t20.50\t24.50\t29.50\t0.00\t0.00\n+16\t31.00\t15.00\t20.00\t34.00\t0.00\t0.00\n+17\t28.00\t25.00\t14.00\t33.00\t0.00\t0.00\n+18\t30.50\t28.50\t19.50\t21.50\t0.00\t0.00\n+19\t29.00\t26.00\t21.00\t24.00\t0.00\t0.00\n+20\t22.50\t23.50\t17.50\t36.50\t0.00\t0.00\n+21\t35.50\t17.50\t19.50\t27.50\t0.00\t0.00\n+22\t37.50\t28.50\t15.50\t18.50\t0.00\t0.00\n+23\t31.31\t19.19\t13.13\t36.36\t1.01\t0.00\n+24\t37.00\t12.00\t22.00\t29.00\t0.00\t0.00\n+25\t35.50\t22.50\t17.50\t24.50\t0.00\t0.00\n+26\t33.50\t18.50\t15.50\t32.50\t0.00\t0.00\n+27\t34.50\t14.50\t25.50\t25.50\t0.00\t0.00\n+28\t31.00\t14.00\t24.00\t31.00\t0.00\t0.00\n+29\t30.00\t27.00\t24.00\t19.00\t0.00\t0.00\n+30\t31.00\t20.00\t14.00\t35.00\t0.00\t0.00\n+31\t33.50\t29.50\t13.50\t23.50\t0.00\t0.00\n+32\t42.50\t20.50\t19.50\t17.50\t0.00\t0.00\n+33\t25.50\t23.50\t14.50\t36.50\t0.00\t0.00\n+34\t39.50\t16.50\t20.50\t23.50\t0.00\t0.00\n+35\t32.50\t23.50\t21.50\t22.50\t0.00\t0.00\n+36\t42.00\t25.00\t16.00\t17.00\t0.00\t0.00\n+37\t38.00\t17.00\t19.00\t26.00\t0.00\t0.00\n+38\t24.00\t26.00\t25.00\t25.00\t0.00\t0.00\n+39\t22.50\t41.50\t18.50\t17.50\t0.00\t0.00\n+40\t32.00\t16.00\t21.00\t31.00\t0.00\t0.00\n+41\t33.00\t28.00\t19.00\t20.00\t0.00\t0.00\n+42\t30.50\t25.50\t19.50\t24.50\t0.00\t0.00\n+43\t35.00\t29.00\t15.00\t21.00\t0.00\t0.00\n+44\t20.00\t27.00\t22.00\t31.00\t0.00\t0.00\n+45\t40.50\t21.50\t21.50\t16.50\t0.00\t0.00\n+46\t26.50\t20.50\t22.50\t30.50\t0.00\t0.00\n+47\t38.50\t29.50\t16.50\t15.50\t0.00\t0.00\n+48\t27.50\t24.50\t17.50\t30.50\t0.00\t0.00\n+49\t28.50\t32.50\t10.50\t28.50\t0.00\t0.00\n+50\t46.50\t20.50\t9.50\t23.50\t0.00\t0.00\n+51\t34.50\t28.50\t13.50\t23.50\t0.00\t0.00\n+52\t41.50\t23.50\t20.50\t14.50\t0.00\t0.00\n+53\t20.00\t28.00\t26.00\t26.00\t0.00\t0.00\n+54\t31.50\t18.50\t24.50\t25.50\t0.00\t0.00\n+55\t30.50\t22.50\t16.50\t30.50\t0.00\t0.00\n+56\t33.50\t22.50\t13.50\t30.50\t0.00\t0.00\n+57\t23.00\t24.00\t23.00\t30.00\t0.00\t0.00\n+58\t25.00\t37.00\t19.00\t19.00\t0.00\t0.00\n+59\t34.00\t23.00\t24.00\t19.00\t0.00\t0.00\n+60\t29.00\t28.00\t17.00\t26.00\t0.00\t0.00\n+61\t25.50\t23.50\t24.50\t26.50\t0.00\t0.00\n+62\t31.50\t22.50\t16.50\t29.50\t0.00\t0.00\n+63\t27.50\t28.50\t25.50\t18.50\t0.00\t0.00\n+64\t33.50\t21.50\t25.50\t19.50\t0.00\t0.00\n+65\t35.50\t19.50\t18.50\t26.50\t0.00\t0.00\n+66\t34.00\t25.00\t15.00\t26.00\t0.00\t0.00\n+67\t37.00\t23.00\t19.00\t21.00\t0.00\t0.00\n+68\t36.50\t29.50\t13.50\t20.50\t0.00\t0.00\n+69\t38.50\t19.50\t20.50\t21.50\t0.00\t0.00\n+70\t38.50\t16.50\t18.50\t26.50\t0.00\t0.00\n+71\t25.50\t38.50\t21.50\t14.50\t0.00\t0.00\n+72\t29.00\t29.00\t25.00\t17.00\t0.00\t0.00\n+73\t32.50\t20.50\t21.50\t25.50\t0.00\t0.00\n+74\t28.50\t32.50\t12.50\t26.50\t0.00\t0.00\n+75\t41.50\t12.50\t18.50\t27.50\t0.00\t0.00\n+76\t24.50\t29.50\t23.50\t22.50\t0.00\t0.00\n+77\t36.00\t21.00\t18.00\t25.00\t0.00\t0.00\n+78\t27.00\t34.00\t22.00\t17.00\t0.00\t0.00\n+79\t21.50\t26.50\t25.50\t26.50\t0.00\t0.00\n+80\t34.00\t19.00\t28.00\t19.00\t0.00\t0.00\n+81\t17.00\t26.00\t26.00\t31.00\t0.00\t0.00\n+82\t31.00\t30.00\t23.00\t16.00\t0.00\t0.00\n+83\t31.50\t26.50\t12.50\t29.50\t0.00\t0.00\n+84\t19.00\t41.00\t21.00\t19.00\t0.00\t0.00\n+85\t37.50\t24.50\t16.50\t21.50\t0.00\t0.00\n+86\t15.00\t48.00\t15.00\t22.00\t0.00\t0.00\n+87\t41.00\t16.00\t18.00\t25.00\t0.00\t0.00\n+88\t23.50\t27.50\t27.50\t21.50\t0.00\t0.00\n+89\t26.50\t27.50\t26.50\t19.50\t0.00\t0.00\n+90\t18.50\t23.50\t24.50\t33.50\t0.00\t0.00\n+91\t27.00\t32.00\t22.00\t19.00\t0.00\t0.00\n+92\t23.50\t17.50\t27.50\t31.50\t0.00\t0.00\n+93\t25.50\t37.50\t15.50\t21.50\t0.00\t0.00\n+94\t27.00\t17.00\t24.00\t32.00\t0.00\t0.00\n+95\t26.77\t37.88\t14.65\t20.71\t1.01\t0.00\n+96\t29.50\t25.50\t16.50\t28.50\t0.00\t0.00\n+97\t29.00\t31.00\t21.00\t19.00\t0.00\t0.00\n+98\t18.18\t33.33\t22.22\t26.26\t1.01\t0.00\n+99\t24.50\t33.50\t24.50\t17.50\t0.00\t0.00\n+100\t24.50\t16.50\t24.50\t34.50\t0.00\t0.00\n+101\t25.00\t40.00\t'..b'23.50\t26.50\t0.00\t0.00\n+150\t14.00\t29.00\t24.00\t33.00\t0.00\t0.00\n+151\t19.50\t30.50\t32.50\t17.50\t0.00\t0.00\n+152\t18.50\t17.50\t29.50\t34.50\t0.00\t0.00\n+153\t22.50\t22.50\t31.50\t23.50\t0.00\t0.00\n+154\t22.00\t21.00\t29.00\t28.00\t0.00\t0.00\n+155\t21.00\t26.00\t19.00\t34.00\t0.00\t0.00\n+156\t14.50\t23.50\t35.50\t26.50\t0.00\t0.00\n+157\t22.00\t31.00\t23.00\t24.00\t0.00\t0.00\n+158\t22.50\t29.50\t24.50\t23.50\t0.00\t0.00\n+159\t17.50\t12.50\t46.50\t23.50\t0.00\t0.00\n+160\t24.50\t26.50\t26.50\t22.50\t0.00\t0.00\n+161\t13.00\t23.00\t45.00\t19.00\t0.00\t0.00\n+162\t31.50\t16.50\t22.50\t29.50\t0.00\t0.00\n+163\t19.50\t21.50\t35.50\t23.50\t0.00\t0.00\n+164\t29.00\t18.00\t21.00\t32.00\t0.00\t0.00\n+165\t14.50\t17.50\t35.50\t32.50\t0.00\t0.00\n+166\t17.50\t37.50\t28.50\t16.50\t0.00\t0.00\n+167\t16.50\t21.50\t31.50\t30.50\t0.00\t0.00\n+168\t14.00\t25.00\t30.00\t31.00\t0.00\t0.00\n+169\t18.50\t20.50\t23.50\t37.50\t0.00\t0.00\n+170\t19.00\t23.00\t28.00\t30.00\t0.00\t0.00\n+171\t20.00\t28.00\t33.00\t19.00\t0.00\t0.00\n+172\t19.00\t20.00\t32.00\t29.00\t0.00\t0.00\n+173\t24.50\t16.50\t33.50\t25.50\t0.00\t0.00\n+174\t17.50\t23.50\t33.50\t25.50\t0.00\t0.00\n+175\t33.50\t17.50\t35.50\t13.50\t0.00\t0.00\n+176\t16.50\t32.50\t28.50\t22.50\t0.00\t0.00\n+177\t19.00\t22.00\t27.00\t32.00\t0.00\t0.00\n+178\t16.00\t26.00\t30.00\t28.00\t0.00\t0.00\n+179\t18.00\t18.00\t22.00\t42.00\t0.00\t0.00\n+180\t21.00\t22.00\t34.00\t23.00\t0.00\t0.00\n+181\t20.50\t19.50\t35.50\t24.50\t0.00\t0.00\n+182\t32.50\t18.50\t22.50\t26.50\t0.00\t0.00\n+183\t24.50\t13.50\t28.50\t33.50\t0.00\t0.00\n+184\t15.00\t29.00\t30.00\t26.00\t0.00\t0.00\n+185\t15.00\t32.00\t33.00\t20.00\t0.00\t0.00\n+186\t22.50\t23.50\t34.50\t19.50\t0.00\t0.00\n+187\t19.00\t14.00\t40.00\t27.00\t0.00\t0.00\n+188\t27.50\t21.50\t27.50\t23.50\t0.00\t0.00\n+189\t17.00\t22.00\t34.00\t27.00\t0.00\t0.00\n+190\t23.00\t30.00\t23.00\t24.00\t0.00\t0.00\n+191\t25.00\t22.00\t28.00\t25.00\t0.00\t0.00\n+192\t34.50\t24.50\t13.50\t27.50\t0.00\t0.00\n+193\t18.50\t25.50\t25.50\t30.50\t0.00\t0.00\n+194\t18.50\t33.50\t24.50\t23.50\t0.00\t0.00\n+195\t16.00\t26.00\t23.00\t35.00\t0.00\t0.00\n+196\t21.50\t25.50\t24.50\t28.50\t0.00\t0.00\n+197\t20.00\t21.00\t23.00\t36.00\t0.00\t0.00\n+198\t17.00\t21.00\t37.00\t25.00\t0.00\t0.00\n+199\t20.50\t18.50\t25.50\t35.50\t0.00\t0.00\n+200\t21.00\t29.00\t21.00\t29.00\t0.00\t0.00\n+201\t27.00\t21.00\t23.00\t29.00\t0.00\t0.00\n+202\t21.50\t24.50\t19.50\t34.50\t0.00\t0.00\n+203\t21.50\t24.50\t26.50\t27.50\t0.00\t0.00\n+204\t27.00\t29.00\t24.00\t20.00\t0.00\t0.00\n+205\t19.50\t21.50\t22.50\t36.50\t0.00\t0.00\n+206\t26.50\t24.50\t21.50\t27.50\t0.00\t0.00\n+207\t22.50\t21.50\t19.50\t36.50\t0.00\t0.00\n+208\t14.00\t35.00\t29.00\t22.00\t0.00\t0.00\n+209\t16.00\t23.00\t12.00\t49.00\t0.00\t0.00\n+210\t18.50\t19.50\t40.50\t21.50\t0.00\t0.00\n+211\t26.00\t20.00\t22.00\t32.00\t0.00\t0.00\n+212\t21.00\t31.00\t18.00\t30.00\t0.00\t0.00\n+213\t24.00\t15.00\t31.00\t30.00\t0.00\t0.00\n+214\t17.50\t24.50\t25.50\t32.50\t0.00\t0.00\n+215\t26.00\t24.00\t23.00\t27.00\t0.00\t0.00\n+216\t21.50\t17.50\t25.50\t35.50\t0.00\t0.00\n+217\t26.00\t29.00\t17.00\t28.00\t0.00\t0.00\n+218\t20.00\t27.00\t21.00\t32.00\t0.00\t0.00\n+219\t17.00\t21.00\t21.00\t41.00\t0.00\t0.00\n+220\t25.50\t23.50\t23.50\t27.50\t0.00\t0.00\n+221\t21.50\t23.50\t20.50\t34.50\t0.00\t0.00\n+222\t21.50\t21.50\t18.50\t38.50\t0.00\t0.00\n+223\t20.00\t27.00\t28.00\t25.00\t0.00\t0.00\n+224\t22.50\t22.50\t24.50\t30.50\t0.00\t0.00\n+225\t14.50\t35.50\t30.50\t19.50\t0.00\t0.00\n+226\t20.00\t23.00\t26.00\t31.00\t0.00\t0.00\n+227\t20.50\t24.50\t23.50\t31.50\t0.00\t0.00\n+228\t33.00\t19.00\t26.00\t22.00\t0.00\t0.00\n+229\t22.50\t24.50\t18.50\t34.50\t0.00\t0.00\n+230\t21.00\t32.00\t16.00\t31.00\t0.00\t0.00\n+231\t23.00\t28.00\t30.00\t19.00\t0.00\t0.00\n+232\t23.50\t21.50\t12.50\t42.50\t0.00\t0.00\n+233\t21.00\t27.00\t25.00\t27.00\t0.00\t0.00\n+234\t16.50\t27.50\t22.50\t33.50\t0.00\t0.00\n+235\t20.00\t15.00\t28.00\t37.00\t0.00\t0.00\n+236\t28.00\t23.00\t21.00\t28.00\t0.00\t0.00\n+237\t20.50\t19.50\t22.50\t37.50\t0.00\t0.00\n+238\t21.50\t29.50\t24.50\t24.50\t0.00\t0.00\n+239\t20.00\t8.00\t17.00\t55.00\t0.00\t0.00\n+240\t28.00\t24.00\t16.00\t32.00\t0.00\t0.00\n+241\t22.50\t22.50\t16.50\t38.50\t0.00\t0.00\n+242\t29.00\t25.00\t13.00\t33.00\t0.00\t0.00\n+243\t22.50\t15.50\t23.50\t38.50\t0.00\t0.00\n+244\t20.50\t23.50\t16.50\t39.50\t0.00\t0.00\n+245\t28.00\t23.00\t19.00\t30.00\t0.00\t0.00\n+246\t21.00\t29.00\t25.00\t25.00\t0.00\t0.00\n+247\t32.00\t14.00\t13.00\t41.00\t0.00\t0.00\n+248\t18.00\t18.00\t25.00\t39.00\t0.00\t0.00\n+249\t25.00\t23.00\t21.00\t31.00\t0.00\t0.00\n+250\t27.50\t22.50\t17.50\t32.50\t0.00\t0.00\n+251\t13.50\t20.50\t36.50\t29.50\t0.00\t0.00\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/samtools_stats_out1__mpc.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/samtools_stats_out1__mpc.tab Thu Sep 27 09:05:10 2018 -0400
b
b"@@ -0,0 +1,255 @@\n+# Mismatches per cycle and quality. \n+# Columns correspond to qualities, rows to cycles. First column is the cycle number, second\n+# is the number of N's and the rest is the number of mismatches\n+1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t2\t0\t0\t0\t0\t0\t0\n+2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t1\t0\t0\t0\t0\t0\t0\n+3\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t2\t0\t0\t0\t0\t0\t0\n+4\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t2\t0\t0\t0\t0\t0\t0\n+5\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+6\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+7\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+8\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+9\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+10\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+11\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+12\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+13\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+14\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+15\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+16\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+17\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+18\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+19\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+20\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+21\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+22\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+23\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+24\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+25\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+26\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+27\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+28\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+29\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+30\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+31\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+32\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+33\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+34\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+35\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+36\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+37\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+38\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+39\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+40\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+41\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+42\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+43\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+44\t0\t0\t0\t"..b'\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+209\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+210\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+211\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+212\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+213\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+214\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+215\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+216\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+217\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+218\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+219\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+220\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+221\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+222\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+223\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+224\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+225\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+226\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+227\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+228\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+229\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+230\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+231\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+232\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\n+233\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+234\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+235\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+236\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+237\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+238\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+239\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+240\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+241\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+242\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\n+243\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+244\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+245\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+246\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+247\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t1\t0\t0\t0\n+248\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t3\t2\t0\t0\t0\t0\t0\t0\t0\t0\t2\t1\t0\t0\t0\t0\t0\t0\t0\t2\t0\t0\t0\t3\t0\t0\t0\n+249\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t1\t1\t1\t0\t0\t0\t0\t0\t0\t0\t0\t2\t0\t5\t0\t0\t0\t0\t0\t0\t2\t0\t0\t0\t0\t0\t0\t0\n+250\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t2\t2\t2\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t0\t0\t1\t2\t0\t0\t0\t2\t0\t0\t0\n+251\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t4\t2\t2\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t1\t0\t0\t0\t0\t0\t2\t0\t0\t0\t0\t3\t0\t0\t0\n+252\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n'
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/samtools_stats_out1__sn.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/samtools_stats_out1__sn.tab Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,39 @@
+# Summary Numbers. 
+raw total sequences: 200
+filtered sequences: 0
+sequences: 200
+is sorted: 1
+1st fragments: 100
+last fragments: 100
+reads mapped: 25
+reads mapped and paired: 0 # paired-end technology bit set + both mates mapped
+reads unmapped: 175
+reads properly paired: 0 # proper-pair bit set
+reads paired: 200 # paired-end technology bit set
+reads duplicated: 0 # PCR or optical duplicate bit set
+reads MQ0: 6 # mapped and MQ=0
+reads QC failed: 0
+non-primary alignments: 0
+total length: 50200 # ignores clipping
+total first fragment length: 25100 # ignores clipping
+total last fragment length: 25100 # ignores clipping
+bases mapped: 6275 # ignores clipping
+bases mapped (cigar): 6275 # more accurate
+bases trimmed: 0
+bases duplicated: 0
+mismatches: 591 # from NM fields
+error rate: 9.418327e-02 # mismatches / bases mapped (cigar)
+average length: 251
+average first fragment length: 251
+average last fragment length: 251
+maximum length: 251
+maximum first fragment length: 251
+maximum last fragment length: 251
+average quality: 34.7
+insert size average: 0.0
+insert size standard deviation: 0.0
+inward oriented pairs: 0
+outward oriented pairs: 0
+pairs with other orientation: 0
+pairs on different chromosomes: 0
+percentage of properly paired reads (%): 0.0
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/samtools_stats_ref.fa.fai
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/samtools_stats_ref.fa.fai Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,1 @@
+chrM 16569 6 70 71
b
diff -r 24c5d43cb545 -r 95a7ddf617e7 test-data/test.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test.fa Thu Sep 27 09:05:10 2018 -0400
b
@@ -0,0 +1,3 @@
+>alpha
+tggggtgtcatagtaatccggttgggagtccgaggctaagaatattcatttagaggtcgg
+catattatccagaactttgcagccatatctccaagacatg