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

Changeset 0:db1eeffba23e (2018-09-28)
Next changeset 1:4c172a4a4c9e (2018-10-23)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/nanoplot/ commit ad3c2e459ae53ab61df3d967d755fd0b42149328
added:
nanoplot.xml
test-data/HistogramReadlength.jpg
test-data/NanoPlot-report.html
test-data/NanoStats.txt
test-data/NanoStats_post_filtering.txt
test-data/alignment.bam
test-data/bam-LogTransformed_HistogramReadlength.svg
test-data/bam-report.html
test-data/reads.fastq.gz
b
diff -r 000000000000 -r db1eeffba23e nanoplot.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nanoplot.xml Fri Sep 28 19:30:29 2018 -0400
[
b'@@ -0,0 +1,468 @@\n+<tool id="nanoplot" name="NanoPlot" version="1.13.0">\n+    <description>Plotting suite for Oxford Nanopore sequencing data and alignments</description>\n+    <requirements>\n+        <requirement type="package" version="1.18.2">nanoplot</requirement>\n+    </requirements>\n+    <command detect_errors="exit_code">\n+        <![CDATA[\n+\n+        #set reads_temp = []\n+        #for $i, $f in enumerate($reads.files)\n+            #set $extension = $f.ext\n+            #if $extension == \'fastqsanger\'\n+                #set $extension = \'fastq\'\n+            #end if\n+            ln -s \'$f\' \'./read_${i}.$extension\' &&\n+            $reads_temp.append("read_" + str($i) + "." + str($extension))\n+        #end for\n+\n+        NanoPlot\n+            --$reads.type ${\' \'.join($reads_temp)}\n+\n+            #if $filter.maxlength\n+                --maxlength $filter.maxlength\n+            #end if\n+            #if $filter.minlength\n+                --minlength $filter.minlength\n+            #end if\n+            #if $filter.downsample\n+                --downsample $filter.downsample\n+            #end if\n+            #if $filter.minqual\n+                --minqual $filter.minqual\n+           #end if\n+            #if $filter.readtype\n+                --readtype $filter.readtype\n+            #end if\n+            #if $customization.color\n+                --color $customization.color\n+            #end if\n+            #if $customization.format\n+                --format $customization.format\n+            #end if\n+            #if $customization.plots\n+                --plots ${str($customization.plots).replace(\',\', \' \')}\n+            #end if\n+            $filter.drop_outliers\n+            $filter.loglength\n+            $filter.percentqual\n+            $filter.alength\n+            $filter.barcoded\n+            $customization.noN50\n+            $customization.N50\n+            -o \'.\'\n+    ]]>\n+    </command>\n+    <inputs>\n+        <conditional name="reads">\n+            <param name="type" type="select" label="Type of the file(s) to work on">\n+                <option value="fastq" selected="true">fastq</option>\n+                <option value="fasta">fasta</option>\n+                <option value="fastq_rich">fastq_rich</option>\n+                <option value="fastq_minimal">fastq_minimal</option>\n+                <option value="summary">summary</option>\n+                <option value="bam">bam</option>\n+                <option value="cram">cram</option>\n+            </param>\n+            <when value="fastq">\n+                <param\n+                    type="data"\n+                    argument="--fastq"\n+                    name="files"\n+                    format="fastq,fastq.gz,fastq.bz2,vcf_bgzip"\n+                    multiple="true"/>\n+            </when>\n+            <when value="fasta">\n+                <param\n+                    type="data"\n+                    argument="--fasta"\n+                    name="files"\n+                    format="fasta,fasta.gz,vcf_bgzip"\n+                    multiple="true"/>\n+            </when>\n+            <when value="fastq_rich">\n+                <param\n+                    type="data"\n+                    argument="--fastq_rich"\n+                    name="files"\n+                    format="fastq,fastq.gz,fastq.bz2,vcf_bgzip"\n+                    multiple="true"/>\n+            </when>\n+            <when value="fastq_minimal">\n+                <param\n+                    type="data"\n+                    argument="--fastq_minimal"\n+                    name="files"\n+                    format="fastq,fastq.gz,fastq.bz2,vcf_bgzip"\n+                    multiple="true"/>\n+            </when>\n+            <when value="summary">\n+                <param\n+                    type="data"\n+                    argument="--summary"\n+                    name="files"\n+                    format="txt,zip"\n+                    multiple="true"/>\n+            </when>\n+            <when value="bam">\n+                <param\n+       '..b'label="${tool.name} on ${on_string}: NanoStats post filtering"/>\n+        <data name="read_length" format="png" from_work_dir="HistogramReadlength.*" label="${tool.name} on ${on_string}: Histogram Read Length ">\n+            <change_format>\n+                <when input="customization.format" value="jpg" format="jpg"/>\n+                <when input="customization.format" value="svg" format="svg"/>\n+            </change_format>\n+        </data>\n+        <data name="log_read_length" format="png" from_work_dir="LogTransformed_HistogramReadlength.*" label="${tool.name} on ${on_string}: Log Transformed Histogram Read Length ">\n+            <change_format>\n+                <when input="customization.format" value="jpg" format="jpg"/>\n+                <when input="customization.format" value="svg" format="svg"/>\n+            </change_format>\n+        </data>\n+    </outputs>\n+    <tests>\n+        <test>\n+            <conditional name="reads">\n+                <param name="type" value="fastq_rich"/>\n+                <param name="files" value="reads.fastq.gz" ftype="fastq.gz"/>\n+            </conditional>\n+            <section name="filter">\n+                <param name="downsample" value="800"/>\n+            </section>\n+            <section name="customization">\n+                <param name="plots" value="hex,kde"/>\n+                <param name="title" value="My Plot"/>\n+                <param name="format" value="jpg"/>\n+            </section>\n+            <output name="output_html" file="NanoPlot-report.html" ftype="html"/>\n+            <output name="nanostats" file="NanoStats.txt" ftype="txt"/>\n+            <output name="nanostats_post_filtering" file="NanoStats_post_filtering.txt" ftype="txt"/>\n+            <output name="read_length" file="HistogramReadlength.jpg" ftype="jpg" compare="sim_size" delta="30000"/>\n+        </test>\n+        <test>\n+            <conditional name="reads">\n+                <param name="type" value="bam"/>\n+                <param name="files" value="alignment.bam" ftype="bam"/>\n+            </conditional>\n+            <section name="filter">\n+                <param name="maxlength" value="2000"/>\n+                <param name="minlenght" value="1000"/>\n+            </section>\n+            <section name="customization">\n+                <param name="color" value="yellow"/>\n+                <param name="format" value="svg"/>\n+                <param name="noN50" value="True"/>\n+            </section>\n+            <output name="output_html" file="bam-report.html" ftype="html" compare="sim_size" delta="50000"/>\n+            <output name="read_length" file="bam-LogTransformed_HistogramReadlength.svg" ftype="svg" compare="sim_size"/>\n+        </test>\n+\n+    </tests>\n+    <help>\n+        <![CDATA[\n+\n+        **What it does**\n+\n+        NanoPlot_ is a plotting tool for long read sequencing data and alignments written by `Wouter De Coster`_\n+\n+        .. _NanoPlot: https://github.com/wdecoster/NanoPlot\n+        .. _`Wouter De Coster`: https://github.com/wdecoster\n+\n+        **Input**\n+\n+        NanoPlot requires 1 or more files as input. They can either be fastq (can be generated\n+        by albacore, guppy or MinKNOW containing additional information), fasta, sorted bam,\n+        sorted cram or sequencing summary.\n+\n+        **Output**\n+\n+        NanoPlot produces different number of plots depending on the data and customizations.\n+        A detailed view can be seen on here_. Additionally a file showing the statistics\n+        is generated.\n+\n+        .. _here: https://github.com/wdecoster/NanoPlot#plots-generated\n+    ]]>\n+    </help>\n+    <citations>\n+        <citation type="bibtex">\n+            @misc{githubnanoplot, author = {De Coster, Wouter}, year = {2018}, title =\n+            {NanoPlot}, publisher = {GitHub}, journal = {GitHub repository}, url =\n+            {https://github.com/wdecoster/NanoPlot}, }</citation>\n+        <citation type="doi">10.1093/bioinformatics/bty149</citation>\n+    </citations>\n+</tool>\n'
b
diff -r 000000000000 -r db1eeffba23e test-data/HistogramReadlength.jpg
b
Binary file test-data/HistogramReadlength.jpg has changed
b
diff -r 000000000000 -r db1eeffba23e test-data/NanoPlot-report.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/NanoPlot-report.html Fri Sep 28 19:30:29 2018 -0400
b
b'@@ -0,0 +1,362 @@\n+<!DOCTYPE html>\n+<html>\n+    <head>\n+    <meta charset="UTF-8">\n+        <style>\n+        table, th, td {\n+            text-align: left;\n+            padding: 2px;\n+            /* border: 1px solid black;\n+            border-collapse: collapse; */\n+        }\n+        h2 {\n+            line-height: 0pt;\n+        }\n+        .panel {\n+            display: inline-block;\n+            background: #ffffff;\n+            min-height: 100px;\n+            box-shadow:0px 0px 5px 5px #C9C9C9;\n+            -webkit-box-shadow:2px 2px 5px 5x #C9C9C9;\n+            -moz-box-shadow:2px 2px 5px 5px #C9C9C9;\n+            margin: 10px;\n+            padding: 10px;\n+        }\n+        .panelC {\n+            float: left\n+        }\n+        .panelM {\n+            float: left\n+        }\n+        </style>\n+        <title>NanoPlot Report</title>\n+    </head><body>\n+<div class="panel panelC">\n+<p><strong><a href="#stats0">Summary Statistics prior to filtering</a></strong></p>\n+<p><strong><a href="#stats1">Summary Statistics after filtering</a></strong></p>\n+<p><strong><a href="#plots">Plots</a></strong></p>\n+<p style="margin-left:20px"><a href="#Histogram_of_read_lengths">Histogram of read lengths</a></p>\n+<p style="margin-left:20px"><a href="#Histogram_of_read_lengths_after_log_transformation">Histogram of read lengths after log transformation</a></p>\n+<p style="margin-left:20px"><a href="#Weighted_Histogram_of_read_lengths">Weighted Histogram of read lengths</a></p>\n+<p style="margin-left:20px"><a href="#Weighted_Histogram_of_read_lengths_after_log_transformation">Weighted Histogram of read lengths after log transformation</a></p>\n+<p style="margin-left:20px"><a href="#Yield_by_length">Yield by length</a></p>\n+<p style="margin-left:20px"><a href="#Read_lengths_vs_Average_read_quality_plot_using_hexagonal_bins">Read lengths vs Average read quality plot using hexagonal bins</a></p>\n+<p style="margin-left:20px"><a href="#Read_lengths_vs_Average_read_quality_plot_using_a_kernel_density_estimation">Read lengths vs Average read quality plot using a kernel density estimation</a></p>\n+<p style="margin-left:20px"><a href="#Number_of_reads_generated_per_channel">Number of reads generated per channel</a></p>\n+<p style="margin-left:20px"><a href="#Cumulative_yield">Cumulative yield</a></p>\n+<p style="margin-left:20px"><a href="#Cumulative_yield">Cumulative yield</a></p>\n+<p style="margin-left:20px"><a href="#Number_of_reads_over_time">Number of reads over time</a></p>\n+<p style="margin-left:20px"><a href="#Number_of_active_pores_over_time">Number of active pores over time</a></p>\n+<p style="margin-left:20px"><a href="#Violin_plot_of_read_lengths_over_time">Violin plot of read lengths over time</a></p>\n+<p style="margin-left:20px"><a href="#Violin_plot_of_quality_over_time">Violin plot of quality over time</a></p>\n+</div>\n+<div class="panel panelM"> <h1>NanoPlot report</h1>\n+<h2 id="stats0">Summary statistics prior to filtering</h2>\n+\n+<table>\n+\n+<tr></tr>\n+<tr>\n+\t<td colspan="2"><b>General summary:</b></td>\n+</tr>\n+<tr>\n+\t<td>Active channels:</td><td>169</td>\n+</tr>\n+<tr>\n+\t<td>Mean read length:</td><td>23212.6</td>\n+</tr>\n+<tr>\n+\t<td>Mean read quality:</td><td>10.1</td>\n+</tr>\n+<tr>\n+\t<td>Median read length:</td><td>9390.0</td>\n+</tr>\n+<tr>\n+\t<td>Median read quality:</td><td>10.3</td>\n+</tr>\n+<tr>\n+\t<td>Number of reads:</td><td>371</td>\n+</tr>\n+<tr>\n+\t<td>Read length N50:</td><td>60395</td>\n+</tr>\n+<tr>\n+\t<td>Total bases:</td><td>8611871</td>\n+</tr>\n+\n+<tr></tr>\n+<tr>\n+\t<td colspan="2"><b>Number, percentage and megabases of reads above quality cutoffs</b></td>\n+</tr>\n+<tr>\n+\t<td>>Q5:</td><td>371 (100.0%) 8.6Mb</td>\n+</tr>\n+<tr>\n+\t<td>>Q7:</td><td>371 (100.0%) 8.6Mb</td>\n+</tr>\n+<tr>\n+\t<td>>Q10:</td><td>207 (55.8%) 4.7Mb</td>\n+</tr>\n+<tr>\n+\t<td>>Q12:</td><td>49 (13.2%) 0.9Mb</td>\n+</tr>\n+<tr>\n+\t<td>>Q15:</td><td>0 (0.0%) 0.0Mb</td>\n+</tr>\n+\n+<tr></tr>\n+<tr>\n+\t<td colspan="2"><b>Top 5 highest mean basecall quality scores and their read lengths</b><'..b'Ts3LkTjz/%2BOG666SbExsbCbrfjxhtv9HaAqWF4qXuQ27t3LzZt2oTKykoMGjSIl7MHuaqqKqxevRqvvfYacnNz%2Becd5L755hts2bIF58%2BfR//%2B/Xl8QRCorq7GjBkzMGzYMO%2BJ%2B3/84x%2Bxb98%2BTJgwAQcOHEDXrl29eze5xNk4DD9EQUSSJHzxxRdwuVw%2BZzsRkRiqqqpw5513YujQoRg1ahQAIDc3F6WlpSguLsbLL7%2BM9u3bc3mzibjnhyiIaDQa7/3biEg8RqMRt99%2BO5YsWYKjR4/i1KlTKC8vx9KlSzF16lQcPHgQ7du3V7pM4TH8EBERqUjfvn1ht9uxdetWJCUlYfr06QDqgpHRaATAi1aaisteREREKvfOO%2B9g2bJlWLZsmfd2FtR43ClFRESkYuvXr8eKFSuwePFiBh8/YeeHiIhIxY4dO4aamhrExsYqXUrQYPghIiKikMJlLyIiIgopDD9EREQUUhh%2BiIiIKKQw/BAREVFIYfghIiKikMLwQ0RERCGF4YcoiK1evRputxtff/31VX/t%2BfPnkZubi%2B3bt8tQmf%2BVlpbC7XZj9erVDXr%2Bjh07kJqaiqNHj3of6927NyZOnChXibI5deoUMjIysGHDBqVLIRICww8RXdb58%2BeRl5eHTz/9VOlS/E6SJMybNw%2BjRo1CQkKC0uU0mcPhwJ133omFCxeiqqpK6XKIVI/hh4gCqrq6GjU1NYrWUFRUhD179mDcuHGK1vF7zp8/3%2BDnjhkzBkePHsUHH3wgY0VEwYHhhyjEPProo%2BjSpQt%2B%2BOEH5OTkoEuXLsjOzsb8%2BfO9XYPS0lJkZWUBAPLy8uB2u%2BF2u/Hoo496xykpKcHUqVORlZWF1NRU9O/fHytWrPCZa/v27XC73VizZg3mz5%2BPnj17Ii0tDfv374fb7caqVasuqW/Tpk1wu93YuHEjAOCHH37A9OnT0bdvX3Tq1Ak9e/bEfffdh3379jX6e7By5UqkpaWhVatWl/18UVERhg0bhvT0dPTr1w9vvfXWJc/57rvvMGnSJGRmZiItLQ1DhgxBfn6%2Bz3Pqlx1LS0t9Hq//vvx6SXH8%2BPEYNGgQPvvsM4wZMwadOnXCY489BgDYunUrxo8fj%2Buuuw7p6eno1asX7r//fp9wFBUVhe7du%2BPNN99s9PeFKFTolS6AiAKvuroakyZNwq233oq77roLn332GZYuXQqbzYYpU6YgOjoaL730Eu655x7ceuutGDlyJADA5XIBAPbv348xY8YgLi4OjzzyCJo1a4ZPPvkEc%2BfOxYkTJzBlyhSf%2BRYvXozOnTvjqaeeglarRWxsLDp06IDVq1d7x66Xn5%2BPyMhIZGdnAwDKy8vhdDoxdepUuFwunDp1Cvn5%2BRg1ahTy8/OvGGCupKqqClu3br1i1%2Bfbb7/FggULkJOTg6ioKKxatQozZsxAUlISMjMzAQAHDx7EmDFjEBkZiRkzZiAiIgJr167Fo48%2BimPHjiEnJ%2BeqaqpXUVGBadOm4Z577sGf/vQnaLValJaWYuLEicjIyMDTTz%2BN8PBwlJWVobi4GNXV1bBYLN6vv/baa7F48WKcPn0a4eHhjaqBKBQw/BCFoOrqatx///3o378/ACArKwu7d%2B/GunXrMGXKFBiNRnTs2BEAEBsbi86dO/t8/TPPPAOr1YqVK1fCZrMBAK6//npUVVXhhRdewPjx4%2BFwOLzPb9GiBf72t7/5jDF8%2BHDMnTsXhw4dQnJyMoC6jbsbN27EuHHjoNfXvT1lZmZ6QwcA1NbWIjs7G4MGDcK//vUvTJ8%2B/ape%2B7fffosLFy54X9/FTpw4gZUrVyI%2BPt47/7Zt21BQUOCtIy8vD9XV1Xj99dcRFxcHAMjOzsbp06fx97//HWPGjIHdbr%2BqugDg5MmTWLJkibfrBgAffPABKisr8fDDD6Ndu3bexwcPHnzJ13fs2BEejwe7du3CDTfccNXzE4UKLnsRhSCNRoPevXv7POZ2u/Hjjz/%2B7tdWVlZi27ZtuPnmm2E2m1FTU%2BP974YbbkBlZSV27drl8zV9%2B/a9ZJzBgwfDaDT6LBWtW7cOVVVVGD58uPexmpoaPP/88xgwYABSU1PRoUMHpKamoqSkBAcOHLjal47y8nIAv3SxLta%2BfXtv8AEAk8mEli1b%2Bnxvtm3bhqysLG/wqTds2DCcP38eX3zxxVXXBdRtXP518Kmvx2Aw4IknnkB%2Bfj6OHDlyxa%2Bvf01lZWWNmp8oVLDzQxSCLBYLTCaTz2NGoxGVlZW/%2B7UnT55ETU0Nli9fjuXLl1/2OSdOnPD5uFmzZpc8x%2Bl0onfv3lizZg0eeOAB6HQ65OfnIz09HW3atPE%2Bb/78%2BVixYgVycnKQmZkJh8MBjUaDxx9/vEH1XuzChQsAcMnr/3VdF7v4e3Py5MnLvqbo6Gjv5xvjcmO2aNECr776Kl566SXMnj0b586dQ/PmzTF%2B/HjccccdPs%2Btf02N%2Bb4QhRKGHyK6KuHh4dDpdBgyZAhuu%2B22yz4nMTHR52ONRnPZ5w0fPhzvv/8%2BNm/ejPj4eHz99deYNWuWz3PWrl2LoUOH4qGHHvJ5/MSJE43a1xIREQGgbomtsZxOJyoqKi55vL6rVD9HfRi5%2BPLzi8NhvSt9nzIyMpCRkYHa2lrs3r0by5cvx7x58xAVFYWBAwd6n1f/murnJ6LLY/ghossyGo0AfumU1LNYLLjuuuuwd%2B9euN1u7/Mao0ePHoiJicHq1asRFxcHk8mEQYMG%2BTxHo9HAYDD4PPbxxx%2BjrKwMSUlJVz1nSkoKAODw4cONrjsrKwsffvghysrKEBMT4338nXfegcVi8e6Rqj9DaN%2B%2BfT4bswsLCxs1r06nQ6dOndCqVSsUFBRgz549PuGnfkms/jUS0eUx/BDRZdlsNiQkJGDjxo3IysqCw%2BFAREQEEhMTMWPGDNx2220YO3Ys/vCHPyAhIQFnz57F4cOHUVhYiNdff71Bc%2Bh0OgwdOhT/%2BMc/YLPZcPPNN1%2ByUbhXr17eq7rcbjf27NmDl19%2BGbGxsY16XbGxsWjevDm%2B/PLLRn09AEyePBkfffQRbr/9dkyePBkOhwMFBQX4%2BOOPMW3aNO9rSEtLQ3JyMhYuXIja2lqEh4djw4YN%2BPzzzxs818qVK7Ft2zb06tULcXFxqKysxNtvvw0A6N69u89zv/zySzidTrjd7ka/NqJQwPBDRFf09NNPY%2BHChZg0aRKqqqowbNgwzJ8/H61bt8bq1auxdOlSLFmyBMePH4fdbkdSUpL3EvWGGj58OJYtW4bjx49jxIgRl3x%2BxowZ0Ov1eOGFF3Du3Dl06NABubm5ePbZZxv9ugYPHowVK1agqqqqUZ2rVq1a4c0338TixYsxe/ZsXLhwASkpKXjmmWd8NmvrdDo8//zzmDNnDmbOnAmj0YiBAwfiySefxL333tugudq3b4/NmzcjNzcXFRUVCAsLQ9u2bfHcc8%2BhR48e3udJkoTCwkIMHjz4istnRFRHI0mSpHQRRESBVFZWhj59%2BmDhwoUYMGCA0uX4xdatW3HXXXdh3bp1XPYi%2Bh281J2IQk5MTAzuuOMOPPfcc/B4PEqX4xdLly7FiBEjGHyIGoDLXkQUkiZNmgSLxYKysrJLzusRzalTp3Dttdde8eo7IvLFZS8iIiIKKVz2IiIiopDC8ENEREQhheGHiIiIQgrDDxEREYUUhh8iIiIKKQw/REREFFIYfoiIiCikMPwQERFRSPk/%2Be7duURrbLUAAAAASUVORK5CYII%3D">\n+\n+<br>\n+<br>\n+<br>\n+<br></div></body></html>\n\\ No newline at end of file\n'
b
diff -r 000000000000 -r db1eeffba23e test-data/NanoStats.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/NanoStats.txt Fri Sep 28 19:30:29 2018 -0400
b
@@ -0,0 +1,27 @@
+General summary:  
+Active channels: 169
+Mean read length: 23212.6
+Mean read quality: 10.1
+Median read length: 9390.0
+Median read quality: 10.3
+Number of reads: 371
+Read length N50: 60395
+Total bases: 8611871
+Number, percentage and megabases of reads above quality cutoffs
+>Q5: 371 (100.0%) 8.6Mb
+>Q7: 371 (100.0%) 8.6Mb
+>Q10: 207 (55.8%) 4.7Mb
+>Q12: 49 (13.2%) 0.9Mb
+>Q15: 0 (0.0%) 0.0Mb
+Top 5 highest mean basecall quality scores and their read lengths
+1: 13.3 (6333)
+2: 13.1 (5448)
+3: 12.9 (27834)
+4: 12.8 (20351)
+5: 12.8 (97730)
+Top 5 longest reads and their mean basecall quality score
+1: 393431 (10.6)
+2: 341725 (11.8)
+3: 320662 (8.0)
+4: 226843 (9.1)
+5: 221901 (10.0)
b
diff -r 000000000000 -r db1eeffba23e test-data/NanoStats_post_filtering.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/NanoStats_post_filtering.txt Fri Sep 28 19:30:29 2018 -0400
b
@@ -0,0 +1,27 @@
+General summary:  
+Active channels: 169
+Mean read length: 23212.6
+Mean read quality: 10.1
+Median read length: 9390.0
+Median read quality: 10.3
+Number of reads: 371
+Read length N50: 60395
+Total bases: 8611871
+Number, percentage and megabases of reads above quality cutoffs
+>Q5: 371 (100.0%) 8.6Mb
+>Q7: 371 (100.0%) 8.6Mb
+>Q10: 207 (55.8%) 4.7Mb
+>Q12: 49 (13.2%) 0.9Mb
+>Q15: 0 (0.0%) 0.0Mb
+Top 5 highest mean basecall quality scores and their read lengths
+1: 13.3 (6333)
+2: 13.1 (5448)
+3: 12.9 (27834)
+4: 12.8 (20351)
+5: 12.8 (97730)
+Top 5 longest reads and their mean basecall quality score
+1: 393431 (10.6)
+2: 341725 (11.8)
+3: 320662 (8.0)
+4: 226843 (9.1)
+5: 221901 (10.0)
b
diff -r 000000000000 -r db1eeffba23e test-data/alignment.bam
b
Binary file test-data/alignment.bam has changed
b
diff -r 000000000000 -r db1eeffba23e test-data/bam-LogTransformed_HistogramReadlength.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam-LogTransformed_HistogramReadlength.svg Fri Sep 28 19:30:29 2018 -0400
b
b'@@ -0,0 +1,927 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<!-- Created with matplotlib (http://matplotlib.org/) -->\n+<svg height="331.389812pt" version="1.1" viewBox="0 0 438.622813 331.389812" width="438.622813pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n+ <defs>\n+  <style type="text/css">\n+*{stroke-linecap:butt;stroke-linejoin:round;}\n+  </style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 331.389812 \n+L 438.622813 331.389812 \n+L 438.622813 0 \n+L 0 0 \n+z\n+" style="fill:#ffffff;"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 56.805938 288.430125 \n+L 413.925938 288.430125 \n+L 413.925938 22.318125 \n+L 56.805938 22.318125 \n+z\n+" style="fill:#eaeaf2;"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <path clip-path="url(#p9d046ca598)" d="M 56.805938 288.430125 \n+L 56.805938 22.318125 \n+" style="fill:none;stroke:#ffffff;stroke-linecap:round;"/>\n+     </g>\n+     <g id="text_1">\n+      <!-- 1 -->\n+      <defs>\n+       <path d="M 12.40625 8.296875 \n+L 28.515625 8.296875 \n+L 28.515625 63.921875 \n+L 10.984375 60.40625 \n+L 10.984375 69.390625 \n+L 28.421875 72.90625 \n+L 38.28125 72.90625 \n+L 38.28125 8.296875 \n+L 54.390625 8.296875 \n+L 54.390625 0 \n+L 12.40625 0 \n+z\n+" id="DejaVuSans-31"/>\n+      </defs>\n+      <g style="fill:#262626;" transform="translate(53.306563 306.288406)scale(0.11 -0.11)">\n+       <use xlink:href="#DejaVuSans-31"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_2">\n+      <path clip-path="url(#p9d046ca598)" d="M 146.085938 288.430125 \n+L 146.085938 22.318125 \n+" style="fill:none;stroke:#ffffff;stroke-linecap:round;"/>\n+     </g>\n+     <g id="text_2">\n+      <!-- 10 -->\n+      <defs>\n+       <path d="M 31.78125 66.40625 \n+Q 24.171875 66.40625 20.328125 58.90625 \n+Q 16.5 51.421875 16.5 36.375 \n+Q 16.5 21.390625 20.328125 13.890625 \n+Q 24.171875 6.390625 31.78125 6.390625 \n+Q 39.453125 6.390625 43.28125 13.890625 \n+Q 47.125 21.390625 47.125 36.375 \n+Q 47.125 51.421875 43.28125 58.90625 \n+Q 39.453125 66.40625 31.78125 66.40625 \n+z\n+M 31.78125 74.21875 \n+Q 44.046875 74.21875 50.515625 64.515625 \n+Q 56.984375 54.828125 56.984375 36.375 \n+Q 56.984375 17.96875 50.515625 8.265625 \n+Q 44.046875 -1.421875 31.78125 -1.421875 \n+Q 19.53125 -1.421875 13.0625 8.265625 \n+Q 6.59375 17.96875 6.59375 36.375 \n+Q 6.59375 54.828125 13.0625 64.515625 \n+Q 19.53125 74.21875 31.78125 74.21875 \n+z\n+" id="DejaVuSans-30"/>\n+      </defs>\n+      <g style="fill:#262626;" transform="translate(139.087187 306.288406)scale(0.11 -0.11)">\n+       <use xlink:href="#DejaVuSans-31"/>\n+       <use x="63.623047" xlink:href="#DejaVuSans-30"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_3">\n+      <path clip-path="url(#p9d046ca598)" d="M 235.365938 288.430125 \n+L 235.365938 22.318125 \n+" style="fill:none;stroke:#ffffff;stroke-linecap:round;"/>\n+     </g>\n+     <g id="text_3">\n+      <!-- 100 -->\n+      <g style="fill:#262626;" transform="translate(224.867813 306.288406)scale(0.11 -0.11)">\n+       <use xlink:href="#DejaVuSans-31"/>\n+       <use x="63.623047" xlink:href="#DejaVuSans-30"/>\n+       <use x="127.246094" xlink:href="#DejaVuSans-30"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_4">\n+     <g id="line2d_4">\n+      <path clip-path="url(#p9d046ca598)" d="M 324.645938 288.430125 \n+L 324.645938 22.318125 \n+" style="fill:none;stroke:#ffffff;stroke-linecap:round;"/>\n+     </g>\n+     <g id="text_4">\n+      <!-- 1000 -->\n+      <g style="fill:#262626;" transform="translate(310.648438 306.288406)scale(0.11 -0.11)">\n+       <use xlink:href="#DejaVuSans-31"/>\n+       <use x="63.623047" xlink:href="#DejaVuSans-30"/>\n+       <use x="127.246094" xlink:href="#DejaVuSans-30"/>\n+       <use x="190.869141" xlink:href="#DejaVuSans-30"/>\n+      </g>\n+     </g>\n+ '..b' 413.925938 288.430125 \n+" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 56.805938 22.318125 \n+L 413.925938 22.318125 \n+" style="fill:none;stroke:#ffffff;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;"/>\n+   </g>\n+   <g id="text_17">\n+    <!-- Histogram of read lengths after log transformation -->\n+    <defs>\n+     <path d="M 9.8125 72.90625 \n+L 19.671875 72.90625 \n+L 19.671875 43.015625 \n+L 55.515625 43.015625 \n+L 55.515625 72.90625 \n+L 65.375 72.90625 \n+L 65.375 0 \n+L 55.515625 0 \n+L 55.515625 34.71875 \n+L 19.671875 34.71875 \n+L 19.671875 0 \n+L 9.8125 0 \n+z\n+" id="DejaVuSans-48"/>\n+     <path d="M 9.421875 54.6875 \n+L 18.40625 54.6875 \n+L 18.40625 0 \n+L 9.421875 0 \n+z\n+M 9.421875 75.984375 \n+L 18.40625 75.984375 \n+L 18.40625 64.59375 \n+L 9.421875 64.59375 \n+z\n+" id="DejaVuSans-69"/>\n+    </defs>\n+    <g style="fill:#262626;" transform="translate(82.990313 16.318125)scale(0.12 -0.12)">\n+     <use xlink:href="#DejaVuSans-48"/>\n+     <use x="75.195312" xlink:href="#DejaVuSans-69"/>\n+     <use x="102.978516" xlink:href="#DejaVuSans-73"/>\n+     <use x="155.078125" xlink:href="#DejaVuSans-74"/>\n+     <use x="194.287109" xlink:href="#DejaVuSans-6f"/>\n+     <use x="255.46875" xlink:href="#DejaVuSans-67"/>\n+     <use x="318.945312" xlink:href="#DejaVuSans-72"/>\n+     <use x="360.058594" xlink:href="#DejaVuSans-61"/>\n+     <use x="421.337891" xlink:href="#DejaVuSans-6d"/>\n+     <use x="518.75" xlink:href="#DejaVuSans-20"/>\n+     <use x="550.537109" xlink:href="#DejaVuSans-6f"/>\n+     <use x="611.71875" xlink:href="#DejaVuSans-66"/>\n+     <use x="646.923828" xlink:href="#DejaVuSans-20"/>\n+     <use x="678.710938" xlink:href="#DejaVuSans-72"/>\n+     <use x="719.792969" xlink:href="#DejaVuSans-65"/>\n+     <use x="781.316406" xlink:href="#DejaVuSans-61"/>\n+     <use x="842.595703" xlink:href="#DejaVuSans-64"/>\n+     <use x="906.072266" xlink:href="#DejaVuSans-20"/>\n+     <use x="937.859375" xlink:href="#DejaVuSans-6c"/>\n+     <use x="965.642578" xlink:href="#DejaVuSans-65"/>\n+     <use x="1027.166016" xlink:href="#DejaVuSans-6e"/>\n+     <use x="1090.544922" xlink:href="#DejaVuSans-67"/>\n+     <use x="1154.021484" xlink:href="#DejaVuSans-74"/>\n+     <use x="1193.230469" xlink:href="#DejaVuSans-68"/>\n+     <use x="1256.609375" xlink:href="#DejaVuSans-73"/>\n+     <use x="1308.708984" xlink:href="#DejaVuSans-20"/>\n+     <use x="1340.496094" xlink:href="#DejaVuSans-61"/>\n+     <use x="1401.775391" xlink:href="#DejaVuSans-66"/>\n+     <use x="1436.964844" xlink:href="#DejaVuSans-74"/>\n+     <use x="1476.173828" xlink:href="#DejaVuSans-65"/>\n+     <use x="1537.697266" xlink:href="#DejaVuSans-72"/>\n+     <use x="1578.810547" xlink:href="#DejaVuSans-20"/>\n+     <use x="1610.597656" xlink:href="#DejaVuSans-6c"/>\n+     <use x="1638.380859" xlink:href="#DejaVuSans-6f"/>\n+     <use x="1699.5625" xlink:href="#DejaVuSans-67"/>\n+     <use x="1763.039062" xlink:href="#DejaVuSans-20"/>\n+     <use x="1794.826172" xlink:href="#DejaVuSans-74"/>\n+     <use x="1834.035156" xlink:href="#DejaVuSans-72"/>\n+     <use x="1875.148438" xlink:href="#DejaVuSans-61"/>\n+     <use x="1936.427734" xlink:href="#DejaVuSans-6e"/>\n+     <use x="1999.806641" xlink:href="#DejaVuSans-73"/>\n+     <use x="2051.90625" xlink:href="#DejaVuSans-66"/>\n+     <use x="2087.111328" xlink:href="#DejaVuSans-6f"/>\n+     <use x="2148.292969" xlink:href="#DejaVuSans-72"/>\n+     <use x="2189.390625" xlink:href="#DejaVuSans-6d"/>\n+     <use x="2286.802734" xlink:href="#DejaVuSans-61"/>\n+     <use x="2348.082031" xlink:href="#DejaVuSans-74"/>\n+     <use x="2387.291016" xlink:href="#DejaVuSans-69"/>\n+     <use x="2415.074219" xlink:href="#DejaVuSans-6f"/>\n+     <use x="2476.255859" xlink:href="#DejaVuSans-6e"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p9d046ca598">\n+   <rect height="266.112" width="357.12" x="56.805938" y="22.318125"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r db1eeffba23e test-data/bam-report.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam-report.html Fri Sep 28 19:30:29 2018 -0400
b
b'@@ -0,0 +1,401 @@\n+<!DOCTYPE html>\n+<html>\n+    <head>\n+    <meta charset="UTF-8">\n+        <style>\n+        table, th, td {\n+            text-align: left;\n+            padding: 2px;\n+            /* border: 1px solid black;\n+            border-collapse: collapse; */\n+        }\n+        h2 {\n+            line-height: 0pt;\n+        }\n+        .panel {\n+            display: inline-block;\n+            background: #ffffff;\n+            min-height: 100px;\n+            box-shadow:0px 0px 5px 5px #C9C9C9;\n+            -webkit-box-shadow:2px 2px 5px 5x #C9C9C9;\n+            -moz-box-shadow:2px 2px 5px 5px #C9C9C9;\n+            margin: 10px;\n+            padding: 10px;\n+        }\n+        .panelC {\n+            float: left\n+        }\n+        .panelM {\n+            float: left\n+        }\n+        </style>\n+        <title>NanoPlot Report</title>\n+    </head><body>\n+<div class="panel panelC">\n+<p><strong><a href="#stats0">Summary Statistics prior to filtering</a></strong></p>\n+<p><strong><a href="#stats1">Summary Statistics after filtering</a></strong></p>\n+<p><strong><a href="#plots">Plots</a></strong></p>\n+<p style="margin-left:20px"><a href="#Histogram_of_read_lengths">Histogram of read lengths</a></p>\n+<p style="margin-left:20px"><a href="#Histogram_of_read_lengths_after_log_transformation">Histogram of read lengths after log transformation</a></p>\n+<p style="margin-left:20px"><a href="#Weighted_Histogram_of_read_lengths">Weighted Histogram of read lengths</a></p>\n+<p style="margin-left:20px"><a href="#Weighted_Histogram_of_read_lengths_after_log_transformation">Weighted Histogram of read lengths after log transformation</a></p>\n+<p style="margin-left:20px"><a href="#Yield_by_length">Yield by length</a></p>\n+<p style="margin-left:20px"><a href="#Read_lengths_vs_Average_read_quality_plot_using_dots">Read lengths vs Average read quality plot using dots</a></p>\n+<p style="margin-left:20px"><a href="#Read_lengths_vs_Average_read_quality_plot_using_a_kernel_density_estimation">Read lengths vs Average read quality plot using a kernel density estimation</a></p>\n+<p style="margin-left:20px"><a href="#Aligned_read_lengths_vs_Sequenced_read_length_plot_using_dots">Aligned read lengths vs Sequenced read length plot using dots</a></p>\n+<p style="margin-left:20px"><a href="#Aligned_read_lengths_vs_Sequenced_read_length_plot_using_a_kernel_density_estimation">Aligned read lengths vs Sequenced read length plot using a kernel density estimation</a></p>\n+<p style="margin-left:20px"><a href="#Read_mapping_quality_vs_Average_basecall_quality_plot_using_dots">Read mapping quality vs Average basecall quality plot using dots</a></p>\n+<p style="margin-left:20px"><a href="#Read_mapping_quality_vs_Average_basecall_quality_plot_using_a_kernel_density_estimation">Read mapping quality vs Average basecall quality plot using a kernel density estimation</a></p>\n+<p style="margin-left:20px"><a href="#Read_length_vs_Read_mapping_quality_plot_using_dots">Read length vs Read mapping quality plot using dots</a></p>\n+<p style="margin-left:20px"><a href="#Read_length_vs_Read_mapping_quality_plot_using_a_kernel_density_estimation">Read length vs Read mapping quality plot using a kernel density estimation</a></p>\n+<p style="margin-left:20px"><a href="#Percent_identity_vs_Average_Base_Quality_plot_using_dots">Percent identity vs Average Base Quality plot using dots</a></p>\n+<p style="margin-left:20px"><a href="#Percent_identity_vs_Average_Base_Quality_plot_using_a_kernel_density_estimation">Percent identity vs Average Base Quality plot using a kernel density estimation</a></p>\n+<p style="margin-left:20px"><a href="#Aligned_read_length_vs_Percent_identity_plot_using_dots">Aligned read length vs Percent identity plot using dots</a></p>\n+<p style="margin-left:20px"><a href="#Aligned_read_length_vs_Percent_identity_plot_using_a_kernel_density_estimation">Aligned read length vs Percent identity plot using a kernel density estimation</a></p>\n+</div>\n+<div class="panel panelM"> <h'..b'uXL1dwcLCioqIuuU5wcLAWLFhgPP76668VHBysr7/%2B%2BnqEWGFr165VcHCwjhw54uxQrqisOXW11/Tdd99pwYIFysnJsVsWGRmpxx9/3AlRAQDw50SBDQAubs2aNZKk/fv3a9euXWXapmXLllq1apVatmx5LUODG9ixY4deffXVUgtsAADgWBTYAODCfvjhB%2B3du1edOnWSJL3//vtl2q569eq6/fbbVb169WsYnXOdOXPG2SEAAADYoMAGABdmLaifeuophYaGat26dWUqLC81nPm9995T9%2B7d1apVK/Xq1UtJSUmKjY1VZGSksc6RI0cUHByshIQELV26VJGRkQoNDdWDDz6onTt32j3XDz/8oJEjR6pdu3YKCQlR3759lZKSYrfezp07NXDgQIWEhKhDhw566aWXVFRUVKY8xMbGKjQ0VD/99JMee%2BwxhYaG6tFHHzWW//e//9WQIUMUFhYms9msgQMH6quvvrLZx6FDhzR58mR169ZNZrNZHTt21MiRI/XTTz/ZPV9aWpqGDRsms9ms8PBwTZs2TXl5eWWK9VLKEuOCBQsUHBys/fv3a8KECWrTpo3uuusuTZ48Wbm5uTbr5uTk6Omnn1a7du0UGhqqESNG6PDhwzbTBRYsWKA5c%2BZIkjp37qzg4OBSj4vU1FT169dPrVu3Vo8ePcr8Qw4AALDl6ewAAAClKygo0Lp16xQSEqKgoCDdf//9euaZZ7R%2B/Xr169ev3PtbtWqVpk2bpu7duxsF26uvvqrCwsJS11%2BxYoWaNGmip59%2BWpI0b948jRgxQhs3blSNGjUkSVu3btXw4cNlNps1ffp01ahRQykpKRo/frwKCgp03333SZIOHDigRx99VAEBAXrhhRdUpUoVvfvuu0pOTi5z/IWFhXriiSc0cOBARUdHq7i4WJL04YcfatKkSercubPi4uLk6empVatWadiwYUpISFD79u0lSZmZmfLz89NTTz2lWrVqKTs7W4mJiRowYIASExPVpEkTSdKxY8c0ePBgeXp66tlnn1Xt2rWVlJSkf/3rX%2BXOuVVZY7QaO3asevXqpQceeED79u3TSy%2B9JEmaPXu2JKmkpEQjR47U7t27NWbMGLVs2VI7duzQ8OHDbfbTv39/ZWdn6%2B2339arr76qunXrSpKaNm1qrLN3717FxcUpOjpaderU0erVqzVlyhQ1bNhQbdu2rfBrBgDgRkSBDQAuav369crNzdUDDzwgSerVq5dmzZql999/v9wFdklJiRYsWCCz2az58%2Bcb7W3atFG3bt1Ur149u22qVaumxYsXq1KlSpKkevXqqX///kpNTVXv3r0lSTNmzFCzZs20bNkyeXqe/0jp2LGjTp48qZdffll9%2B/aVh4eHXnvtNVksFi1btkx16tSRJHXq1OmyF277o8LCQo0ePVr333%2B/0XbmzBnNmjVLnTp10muvvWa0R0REqF%2B/fnr55Ze1evVqSVLbtm1tCsbi4mJFREQoKipKq1at0uTJkyVJb731lk6cOKEPPvhAt912m7G/xx57TEePHi1zvBWJ0eqBBx4wiuW77rpLhw4d0po1azRr1iyZTCZt2bJF27dv1/Tp0/XQQw9Jku6%2B%2B255e3sbxbgk3XzzzfrLX/4iSWrevLluueUWu/hOnjyplStXyt/f38jT1q1blZSURIENAEA5MUQcAFzUmjVrVKVKFaOYrVatmnr06KFvv/1WP//8c7n2lZ6erqysLPXs2dOm3d/fX6GhoaVu06lTJ6O4lmQUmxkZGZLOD7k%2BePCg%2BvTpI0kqKioy/rvnnnuUlZWl9PR0SeeHrLdv394oriWpUqVK6tWrV7leR/fu3W0e79ixQ6dOnVK/fv1snr%2BkpEQdO3bUDz/8oPz8fCO%2BRYsWqVevXmrVqpVatGihVq1a6eeff1ZaWpqxz6%2B//lrNmjUzXq9VeX4MqGiMVhcP2ZfOXyX%2B7NmzOn78uCRp27ZtkmT3flqPlfJo3ry5UVxLUuXKldWoUaMK/ZgAAMCNjh5sAHBBhw4d0jfffKNu3brJYrEYV4Du0aOH1q5dqzVr1uipp54q8/5OnjwpSapdu7bdsjp16hhF88X8/PxsHnt7e0uSzp49K%2Bn8UGpJiouLU1xc3GWf99SpUzbF9cXPXVY%2BPj52F22zxhATE3PJ7bKzs1W1alW98MILWrFihaKjo9W2bVvVrFlTJpNJzzzzjPGarLGW1tNbnlgrGqPVpXJfUFBgxOjp6Wm3XkVi/OM%2BrM93cU4AAEDZUGADgAtas2aNLBaLNmzYoA0bNtgtT0xM1Lhx42x6mC/npptukiSjB/Ri1gKwvKz7fPzxx9W1a9dS12ncuLGk80Vcac9Tnuc2mUyXjGHq1Kkym82lbmf9UeGjjz5S3759NWHCBJvlJ0%2BelK%2Bvr/HYEbFWNMay8vPzU1FRkU6dOmVTIGdlZVUoRgAA4BgU2ADgYoqLi5WYmKgGDRpo5syZdsu/%2BOILvfnmm0pNTdVf//rXMu2zcePGqlu3rj7%2B%2BGMNHTrUaD969Kh27NhR6hzsK2nSpIkaNWqkvXv32hWtfxQeHq5Nmzbp2LFjRi9rcXFxqVcbL4%2BwsDD5%2BvrqwIEDGjRo0GXXNZlM8vLysmn74osv9Pvvv6thw4Y2scbHx2vv3r02w8TLc0G2isZYVu3atVN8fLxSUlL08MMPG%2B2l5fOPIw8AAMC1Q4ENAC4mNTVVmZmZmjhxosLDw%2B2WN2vWTO%2B8847ef//9MhfYHh4eGjt2rKZNm6aYmBjdf//9ysnJMa4sXVrvcFnMmDFD0dHRGjZsmPr166f69esrOztbaWlp2rNnj3FBtSeeeEKbNm3SkCFDNHr0aFWpUkUrVqy46ntZV6tWTc8884xiY2OVnZ2t7t27q3bt2jpx4oT27t2rEydOaMaMGZLOzym3Xi08ODhYe/bsUUJCgm6%2B%2BWabfQ4ZMkRr1qzRiBEjNG7cOOMq4gcPHrzmMZZVx44dFRYWpri4OJ0%2BfVqtWrXSjh079OGHH0qy7e0PCgqSJC1btkz9%2BvWTp6enGjdu/Ke%2BRzoAAM5CgQ0ALub999%2BXl5eXzdWyL1arVi117dpVGzZssOkRvpIHH3xQJpNJ8fHxGj16tAICAozbbv36668VivXOO%2B/U6tWrtWjRIs2aNUs5OTny8/NTYGCgzQW4goKCtHTpUsXFxWnSpEmqWbOm/va3v6l79%2B6aOnVqhZ7b6t5775W/v7/i4%2BP17LPPKi8vT7Vq1VLz5s1trrY%2BZcoUeXp66o033lB%2Bfr5atGihBQsWaN68eTb7q1u3rt555x09//zzmj59unx8fNSlSxdNnTpVo0aNuqYxlpWHh4cWLVqkF154QUuWLFFhYaHCwsI0d%2B5cDRgwwGbIe3h4uB5//HElJiZq9erVKikp0fLly0v98QYAAFwdk8VisTg7CACAc%2BTk5Kh79%2B7q0qXLVd3nGa4hKSlJEydO1MqVKxUWFubscAAAuOHQgw0AN4isrCwtWrRI4eHh8vPz09GjR/XWW28pLy9PjzzyiLPDQzklJyfr999/V1BQkDw8PLRz504lJCSobdu2FNcAADgJBTYA3CC8vb2VkZGhGTNmKDs7W1WqVJHZbNaMGTPUrFkzZ4eHcqpWrZrWrVunhQsX6syZM6pbt67uu%2B8%2BjRs3ztmhAQBww2KIOAAAAAAADuDh7AAAAAAAAPgzoMAGAAAAAMABKLABAAAAAHAACmwAAAAAAByAAhsAAAAAAAegwAYAAAAAwAEosAEAAAAAcAAKbAAAAAAAHIACGwAAAAAAB/g/6WHhlzHMZV4AAAAASUVORK5CYII%3D">\n+\n+<br>\n+<br>\n+<br>\n+<br></div></body></html>\n\\ No newline at end of file\n'
b
diff -r 000000000000 -r db1eeffba23e test-data/reads.fastq.gz
b
Binary file test-data/reads.fastq.gz has changed