changeset 11:e661a3269313 draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/salmon commit 10ccc47885ce71e602d66e157bd475f1facbd042
author bgruening
date Mon, 05 Dec 2022 15:47:45 +0000
parents e4c01dcece8b
children f2000bc73102
files alevin.xml macros.xml test-data/alevin_mat.mtx test-data/alevin_mat_01.mtx test-data/alevin_mat_02.mtx test-data/alevin_mat_indropV2.mtx test-data/full_data_structure.txt test-data/genome.fasta test-data/length_distribution.txt
diffstat 9 files changed, 1349 insertions(+), 198 deletions(-) [+]
line wrap: on
line diff
--- a/alevin.xml	Thu Jul 22 14:05:58 2021 +0000
+++ b/alevin.xml	Mon Dec 05 15:47:45 2022 +0000
@@ -1,5 +1,5 @@
-<tool id="alevin" name="Alevin" version="@VERSION@+@GALAXY_VERSION@" profile="@PROFILE_VERSION@">
-    <description>Quantification and analysis of 3’ tagged-end single-cell sequencing data</description>
+<tool id="alevin" name="Alevin" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE_VERSION@">
+    <description>Quantification and analysis of 3-prime tagged-end single-cell sequencing data</description>
     <macros>
         <import>macros.xml</import>
     </macros>
@@ -61,7 +61,10 @@
         #end if
         -o ./output
         -p "\${GALAXY_SLOTS:-4}"
-        ${protocol}
+        ${protocol_cond.protocol}
+        #if $protocol_cond.protocol == '--indropV2'
+            --w1 '${protocol_cond.w1}'
+        #end if
         --tgMap ./alevinmap.tsv
         #if $whitelist:
             --whitelist '${optional.whitelist}'
@@ -85,39 +88,40 @@
             --keepCBFraction '${optional.keepCBFraction}'
         #end if
         ${optional.noDedup}
-        ${optional.dumpBfh}
-        ${optional.dumpFeatures}
-        ${optional.dumpUmiGraph}
+        #if 'dumpBfh' in $output_files:
+            --dumpBfh
+        #end if
+        #if 'dumpFeatures' in $output_files:
+            --dumpFeatures
+        #end if
+        #if 'dumpUmiGraph' in $output_files:
+            --dumpUmiGraph
+        #end if
         ${optional.dumpMtx}
-        #if $optional.lowRegionMinNumBarcodes:
-            --lowregionMinNumBarcodes '${optional.lowRegionMinNumBarcodes}'
-        #end if
         #if $optional.maxNumBarcodes:
             --maxNumBarcodes '${optional.maxNumBarcodes}'
         #end if
         #if $optional.freqThreshold:
             --freqThreshold '${optional.freqThreshold}'
         #end if
-
+        ## && gunzip output/alevin/quants_tier_mat.gz -> the output is binary file
         #if $optional.dumpMtx != "--dumpMtx":
             && python '$__tool_directory__/vpolo_convert.py' -m
         #else:
             && gunzip output/alevin/quants_mat.mtx.gz
         #end if
-        #if $optional.dumpUmiGraph:
+        #if 'dumpUmiGraph' in $output_files:
             && python '$__tool_directory__/vpolo_convert.py' -u
             && sh '$__tool_directory__/umiout.sh'
         #end if
-
-        && gunzip output/alevin/quants_tier_mat.gz
-        #if $optional.numCellBootstraps:
-            && gunzip output/alevin/quants_mean_mat.gz
-            && gunzip output/alevin/quants_var_mat.gz
+        ## those gzip file include binary datasets
+        ## #if $optional.numCellBootstraps:
+        ##    && gunzip output/alevin/quants_mean_mat.gz
+        ##    && gunzip output/alevin/quants_var_mat.gz
+        ## #end if
+        #if 'auxiliar_info' in $output_files
+            && tar -zcvf aux_info.tar.gz output/aux_info
         #end if
-
-        && gunzip output/aux_info/fld.gz
-        && gunzip output/aux_info/observed_bias.gz
-        && gunzip output/aux_info/observed_bias_3p.gz
         ]]>
     </command>
     <inputs>
@@ -128,8 +132,8 @@
                 <option value="unmated">Single-end</option>
             </param>
             <when value="paired">
-                <param name="file1" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" help="CB+UMI raw sequence file(s)"/>
-                <param name="file2" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" help="Read-sequence file(s)"/>
+                <param name="file1" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" label="Mate pair 1" help="CB+UMI raw sequence file(s)"/>
+                <param name="file2" type="data" format="fastq,fastq.gz,fastqsanger.gz,fastq.bz2" label="Mate pair 2" help="Read-sequence file(s)"/>
                 <expand macro="stranded_pe"/>
             </when>
             <when value="unmated">
@@ -137,91 +141,136 @@
                 <expand macro="stranded_se"/>
             </when>
         </conditional>
-        <param name="protocol" type="select">
-            <option value="--dropseq">DropSeq Single Cell protocol</option>
-            <option value="--chromium">10x chromium v2 Single Cell protocol</option>
-            <option value="--chromiumV3">10x chromium v3 Single Cell protocol</option>
-            <option value="--gemcode">Gemcode v1 Single Cell protocol</option>
-            <option value="--celseq">CEL-Seq Single Cell protocol</option>
-            <option value="--celseq2">CEL-Seq2 Single Cell protocol</option>
-        </param>
+        <conditional name="protocol_cond">
+            <param name="protocol" type="select" label="Type of single-cell protocol" help="In cases where single-cell protocol supports variable length cellbarcodes, alevin adds nucleotide padding to make the lengths uniform. Furthermore, the padding scheme ensures that there are no collisions added in the process.">
+                <option value="--dropseq">DropSeq Single Cell protocol</option>
+                <option value="--chromium">10x chromium v2 Single Cell protocol</option>
+                <option value="--chromiumV3">10x chromium v3 Single Cell protocol</option>
+                <option value="--gemcode">Gemcode v1 Single Cell protocol</option>
+                <option value="--celseq">CEL-Seq Single Cell protocol</option>
+                <option value="--celseq2">CEL-Seq2 Single Cell protocol</option>
+                <option value="--sciseq3">Sci-RNA-seq3 protocol</option>
+                <option value="--indropV2">InDrop v2 protocol</option>
+                <option value="--splitSeqV1">SplitSeqV1 protocol</option>
+                <option value="--splitSeqV2">SplitSeqV2 protocol</option>
+            </param>
+            <when value="--dropseq"/>
+            <when value="--chromium"/>
+            <when value="--chromiumV3"/>
+            <when value="--gemcode"/>
+            <when value="--celseq"/>
+            <when value="--celseq2"/>
+            <when value="--sciseq3"/>
+            <when value="--indropV2">
+                <param argument="--w1" type="text" value="" label="w1 adapters">
+                    <sanitizer invalid_char="">
+                        <valid initial="string.letters"/>
+                    </sanitizer>
+                    <validator type="regex">[ATGC]+</validator>
+                </param>
+            </when>
+            <when value="--splitSeqV1"/>
+            <when value="--splitSeqV2"/>
+        </conditional>
         <param name="tgmap" type="data" format="tsv,tabular" label="Transcript to gene map file" help="Tsv with no header, containing two columns mapping each transcript present in the reference to the corresponding gene (the first column is a transcript and the second is the corresponding gene)."/>
-        <param name="allout" type="boolean" label="Retrieve all output files" truevalue="Yes" falsevalue="No" checked="false" help="If not selected, all log, info.txt, and json files output by Alevin will not be retrieved"/>
-        <section name="optional" title="Optional commands" expanded="false">
-            <param name="whitelist" type="data" format="tsv,tabular" optional="true" label="Whitelist file" help="Explicitly specify whitelist CP for cell detection and CB sequence correction. If not specified, putative CBs generated."/>
-            <param name="noDedup" type="boolean" truevalue="--noDedup" falsevalue="" checked="false" help="Causes pipeline to only perform CB correction, then maps the read-sequences to the transcriptome generating the interim data-structure of CB-EqClass-UMI-count. Used in parallel with --dumpBarcodeEq or --dumpBfh for the purposes of obtaining raw information or debugging."/>
-            <param name="mrna" type="data" format="tsv" optional="true" help="Single column tsv of mitochondrial genes which are to be used as a feature for CB whitelising naive Bayes classification."/>
-            <param name="rrna" type="data" format="tsv" optional="true" help="Single column tsv of ribosomal genes which are to be used as a feature for CB whitelising naive Bayes classification."/>
-            <param name="dumpBfh" type="boolean" truevalue="--dumpBfh" falsevalue="" checked="false" help="Dumps the full CB-EqClass-UMI-count data-structure for the purposed of allowing raw data analysis and debugging."/>
-            <param name="dumpFeatures" type="boolean" truevalue="--dumpFeatures" falsevalue="" checked="false" help="Dumps all features used by the CB classification and their counts at each cell level. Generally, this is used for the purposes of debugging."/>
-            <param name="dumpUmiGraph" type="boolean" truevalue="--dumpUmiGraph" falsevalue="" checked="false" help="Dump the per-cell level umi graph"/>
-            <param name="dumpMtx" type="boolean" truevalue="--dumpMtx" falsevalue="" checked="false" help="Converts the default binary format of alevin for gene-count matrix into a human readable mtx (matrix market exchange) sparse format."/>
-            <param name="forceCells" type="integer" optional="true" help="Explicitly specify the number of cells."/>
-            <param name="expectCells" type="integer" optional="true" help="define a close upper bound on expected number of cells."/>
-            <param name="numCellBootstraps" type="integer" optional="true" help="Performs certain number of bootstrap and generate the mean and variance of the count matrix"/>
-            <param name="minScoreFraction" type="float" optional="true" help="This value controls the minimum allowed score for a mapping to be considered valid. It matters only when --validateMappings has been passed to Salmon. The maximum possible score for a fragment is ms = read_len * ma (or ms = (left_read_len + right_read_len) * ma for paired-end reads).
+        <param name="output_files" type="select" multiple="true" display="checkboxes" label="Extra output files">
+            <option value="salmon_log">Salmon Quant log file</option>
+            <option value="fragment_length">Observed fragment length distribution</option>
+            <option value="auxiliar_info">Auxiliar info files</option>
+            <option value="dumpUmiGraph">Per cell level parsimonious Umi graph (--dumpUmiGraph)</option>
+            <option value="dumpFeatures">Features used by the CB classification and their counts at each cell level (--dumpFeatures)</option>
+            <option value="dumpBfh">Full CB-EC-UMI-count data-structure (--dumpBfh)</option>
+            <option value="commands">Commands info file</option>
+        </param>
+        <section name="optional" title="Advanced options" expanded="false">
+            <param argument="--whitelist" type="data" format="tsv,tabular" optional="true" label="Whitelist file" help="Explicitly specify whitelist CP for cell detection and CB sequence correction. If not specified, putative CBs generated."/>
+            <param argument="--noDedup" type="boolean" truevalue="--noDedup" falsevalue="" checked="false" label="Skip deduplication step" help="Causes pipeline to only perform CB correction, then maps the read-sequences to the transcriptome generating the interim data-structure of CB-EqClass-UMI-count. Used in parallel with --dumpBarcodeEq or --dumpBfh for the purposes of obtaining raw information or debugging."/>
+            <param argument="--mrna" type="data" format="tsv" optional="true" label="Mito-RNA genes file" help="Single column tsv of mitochondrial genes which are to be used as a feature for CB whitelising naive Bayes classification."/>
+            <param argument="--rrna" type="data" format="tsv" optional="true" label="Ribosomal RNA file" help="Single column tsv of ribosomal genes which are to be used as a feature for CB whitelising naive Bayes classification."/>
+            <param argument="--dumpMtx" type="boolean" truevalue="--dumpMtx" falsevalue="" checked="false" label=" Dump cell v transcripts count matrix in MTX format" help="Converts the default binary format of alevin for gene-count matrix into a human readable mtx (matrix market exchange) sparse format."/>
+            <param argument="--forceCells" type="integer" min="0" optional="true" label="Number of cells" help="Explicitly specify the number of cells."/>
+            <param argument="--expectCells" type="integer" min="0" optional="true" label="Upper bound on expected number of cells" help="define a close upper bound on expected number of cells."/>
+            <param argument="--numCellBootstraps" type="integer" min="0" value="0" optional="true" label="Generate mean and variance for cell x gene matrix by boostrap" help="Performs certain number of bootstrap and generate the mean and variance of the count matrix"/>
+            <param argument="--minScoreFraction" type="float" optional="true" label="Minimum allowed score for a mapping" help="This value controls the minimum allowed score for a mapping to be considered valid. It matters only when --validateMappings has been passed to Salmon. The maximum possible score for a fragment is ms = read_len * ma (or ms = (left_read_len + right_read_len) * ma for paired-end reads).
                 The argument to --minScoreFraction determines what fraction of the maximum score s a mapping must achieve to be potentially retained. For a minimum score fraction of f, only mappings with a score less than (f * s) will be kept. Mappings with lower scores will be considered as low-quality, and will be discarded."/>
-            <param name="keepCBFraction" type="float" optional="true" help="Fraction of cellular barcodes to keep (Between 0 and 1)."/>
-            <param name="lowRegionMinNumBarcodes" type="integer" optional="true" help="Minimum number of cell barcodes to use fo learning low confidence region (defaults to 200)"/>
-            <param name="maxNumBarcodes" type="integer" optional="true" help="Maximum allowable limit to process the cell barcodes. Defaults to 100000"/>
-            <param name="freqThreshold" type="integer" optional="true" help="Minimum frequency for a barcode to be considered. Defaults to 10"/>
+            <param argument="--keepCBFraction" type="float" min="0" max="1" optional="true" label="Fraction of cellular barcodes to keep" help="Use 1 to quantify all"/>
+            <param argument="--maxNumBarcodes" type="integer" min="0" value="100000" label="Maximum allowable limit to process the cell barcodes" help="Default: 100000"/>
+            <param argument="--freqThreshold" type="integer" min="0" value="10" optional="true" label="Minimum frequency for a barcode to be considered" help="Default: 10"/>
         </section>
     </inputs>
     <outputs>
-        <data name="quants_mat_tsv" label="quants_mat.tsv" format="txt" from_work_dir="quants_mat.tsv">
+        <data name="quants_mat_tsv" label="${tool.name} on ${on_string}: per-cell gene-count matrix (tabular)" format="txt" from_work_dir="quants_mat.tsv">
             <filter>optional["dumpMtx"] is not True</filter>
         </data>
-        <data name="quants_mat_mtx" label="quants_mat.mtx" format="mtx" from_work_dir="output/alevin/quants_mat.mtx">
+        <data name="quants_mat_mtx" label="${tool.name} on ${on_string}: per-cell gene-count matrix (MTX)" format="mtx" from_work_dir="output/alevin/quants_mat.mtx">
             <filter>optional["dumpMtx"]</filter>
         </data>
-        <data name="raw_cb_frequency_txt" label="raw_cb_frequency.txt" format="txt" from_work_dir="output/alevin/raw_cb_frequency.txt">
-            <filter>optional["dumpFeatures"]</filter>
+        <data name="quants_mat_gz" label="${tool.name} on ${on_string}: per-cell level gene-count matrix (binary)" format="gz" from_work_dir="output/alevin/quants_mat.gz"/>
+        <data name="quants_mat_cols_txt" label="${tool.name} on ${on_string}: column headers (gene-ids)" format="txt" from_work_dir="output/alevin/quants_mat_cols.txt"/>
+        <data name="quants_mat_rows_txt" label="${tool.name} on ${on_string}: row index (CB-ids)" format="txt" from_work_dir="output/alevin/quants_mat_rows.txt"/>
+        <data name="quants_tier_mat" label="${tool.name} on ${on_string}: tier categorization" format="gz" from_work_dir="output/alevin/quants_tier_mat.gz"/>
+        <data name="featureDump_txt" label="${tool.name} on ${on_string}: cell-level information (featureDump)" format="txt" from_work_dir="output/alevin/featureDump.txt"/>
+        <data name="raw_cb_frequency_txt" label="${tool.name} on ${on_string}: raw CB classification frequencies" format="txt" from_work_dir="output/alevin/raw_cb_frequency.txt">
+            <filter>output_files and 'dumpFeatures' in output_files</filter>
         </data>
-        <data name="quants_mat_cols_txt" label="quants_mat_cols.txt" format="txt" from_work_dir="output/alevin/quants_mat_cols.txt"/>
-        <data name="quants_mat_rows_txt" label="quants_mat_rows.txt" format="txt" from_work_dir="output/alevin/quants_mat_rows.txt"/>
-        <data name="quants_tier_mat" label="quants_tier_mat" format="mtx" from_work_dir="output/alevin/quants_tier_mat"/>
-        <data name="alevin_log" label="alevin.log" format="txt" from_work_dir="output/alevin/alevin.log">
-            <filter>allout</filter>
+        <data name="whitelist_txt" label="${tool.name} on ${on_string}: whitelist" format="txt" from_work_dir="output/alevin/whitelist.txt"/>
+
+        <data name="auxiliar_files" label="${tool.name} on ${on_string}: auxiliar info files" format="tgz" from_work_dir="aux_info.tar.gz">
+            <filter>output_files and 'auxiliar_info' in output_files</filter>
         </data>
-        <data name="featureDump_txt" label="featureDump.txt" format="txt" from_work_dir="output/alevin/featureDump.txt"/>
-        <data name="whitelist_txt" label="whitelist.txt" format="txt" from_work_dir="output/alevin/whitelist.txt"/>
-        <data name="bfh_txt" label="bfh.txt" format="txt" from_work_dir="output/alevin/bfh.txt">
-            <filter>optional["dumpBfh"]</filter>
+        <data name="salmon_quant_log" format="txt" label="${tool.name} on ${on_string}: Salmon log file" from_work_dir="output/logs/salmon_quant.log">
+            <filter>output_files and 'salmon_log' in output_files</filter>
+        </data>
+        <data name="cmd_info" label="${tool.name} on ${on_string}: command info (JSON)" format="json" from_work_dir="output/cmd_info.json">
+            <filter>output_files and 'commands' in output_files</filter>
         </data>
-        <data name="quants_mean_mat" label="quants_mean_mat" format="mtx" from_work_dir="output/alevin/quants_mean_mat">
-            <filter>optional["numCellBootstraps"]</filter>
+        <data name="flenDist_txt" format="txt" label="${tool.name} on ${on_string}: observed fragment length distribution" from_work_dir="output/libParams/flenDist.txt">
+            <filter>output_files and 'fragment_length' in output_files</filter>
         </data>
-        <data name="quants_var_mat" label="quants_var_mat" format="mtx" from_work_dir="output/alevin/quants_var_mat">
+        <data name="bfh_txt" label="${tool.name} on ${on_string}: full CB-EC-UMI-count data-structure" format="txt" from_work_dir="output/alevin/bfh.txt">
+            <filter>output_files and 'dumpBfh' in output_files</filter>
+        </data>
+        <data name="quants_mean_mat" label="${tool.name} on ${on_string}: count matrix mean file" format="gz" from_work_dir="output/alevin/quants_mean_mat.gz">
             <filter>optional["numCellBootstraps"]</filter>
         </data>
-        <data name="quants_boot_rows_txt" label="quants_boot_rows.txt" format="txt" from_work_dir="output/alevin/quants_boot_rows.txt">
+        <data name="quants_var_mat" label="${tool.name} on ${on_string}: count matrix variance file" format="gz" from_work_dir="output/alevin/quants_var_mat.gz">
+            <filter>optional["numCellBootstraps"]</filter>
+        </data>
+        <data name="quants_boot_rows_txt" label="${tool.name} on ${on_string}: bootstraps rows" format="txt" from_work_dir="output/alevin/quants_boot_rows.txt">
             <filter>optional["numCellBootstraps"]</filter>
         </data>
-        <data name="alevinmeta_info_json" format="json" label="meta_info.json" from_work_dir="output/aux_info/alevin_meta_info.json">
-            <filter>allout</filter>
-        </data>
-        <data name="ambig_info_tsv" format="tsv" label="ambig_info.tsv" from_work_dir="output/aux_info/ambig_info.tsv">
-            <filter>allout</filter>
-        </data>
-        <data name="meta_info_json" format="json" label="meta_info.json" from_work_dir="output/aux_info/meta_info.json">
-            <filter>allout</filter>
-        </data>
-        <data name="expected_bias" format="txt" label="expected_bias" from_work_dir="output/aux_info/fld"/>
-        <data name="observed_bias" format="txt" label="observed_bias" from_work_dir="output/aux_info/observed_bias"/>
-        <data name="observed_bias_3p" format="txt" label="observed_bias_3p" from_work_dir="output/aux_info/observed_bias_3p"/>
-        <data name="flenDist_txt" format="txt" label="flenDist.txt" from_work_dir="output/libParams/flenDist.txt"/>
-        <data name="salmon_quant_log" format="txt" label="salmon_quant.log" from_work_dir="output/logs/salmon_quant.log">
-            <filter>allout</filter>
-        </data>
-        <collection name="umigraphs" type="list" label="Umi graph PDFs">
-            <filter>optional["dumpUmiGraph"]</filter>
-            <discover_datasets pattern="__name_and_ext__" ext="pdf" directory="fixed"/>
+        <collection name="umigraphs" type="list" label="${tool.name} on ${on_string}: UMI graph PDFs">
+            <filter>output_files and 'dumpUmiGraph' in output_files</filter>
+            <discover_datasets pattern="(?P&lt;name&gt;.+)\.pdf" format="pdf" directory="fixed"/>
         </collection>
-        <data name="cmd_info.json" label="cmd_info.json" format="json" from_work_dir="output/cmd_info.json">
-            <filter>allout</filter>
-        </data>
     </outputs>
     <tests>
+        <test expect_num_outputs="8">
+            <conditional name="refTranscriptSource">
+                <param name="TranscriptSource" value="history"/>
+                <section name="s_index">
+                    <param name="fasta" value="minitranscript.fa"/>
+                </section>
+            </conditional>
+            <conditional name="pairstraight">
+                <param name="readselect" value="paired"/>
+                <param name="file1" value="fastqs/moreminifastq1.fastq.gz"/>
+                <param name="file2" value="fastqs/moreminifastq2.fastq.gz"/>
+                <param name="orientation" value="I"/>
+                <param name="strandedness" value="SR"/>
+            </conditional>
+            <conditional name="protocol_cond">
+                <param name="protocol" value="--chromium"/>
+            </conditional>
+            <param name="tgmap" value="minitxp.tsv"/>
+            <param name="output_files" value="dumpFeatures"/>
+            <section name="optional">
+                <param name="keepCBFraction" value="1"/>
+                <param name="freqThreshold" value="5"/>
+                <param name="dumpMtx" value="true"/>
+            </section>
+            <output name="quants_mat_mtx" file="alevin_mat_01.mtx" ftype="mtx" sort="true"/>
+        </test>
         <test expect_num_outputs="11">
             <conditional name="refTranscriptSource">
                 <param name="TranscriptSource" value="history"/>
@@ -236,15 +285,45 @@
                 <param name="orientation" value="I"/>
                 <param name="strandedness" value="SR"/>
             </conditional>
-            <param name="protocol" value="--chromium"/>
+            <conditional name="protocol_cond">
+                <param name="protocol" value="--chromium"/>
+            </conditional>
             <param name="tgmap" value="minitxp.tsv"/>
+            <param name="output_files" value="dumpFeatures"/>
             <section name="optional">
                 <param name="keepCBFraction" value="1"/>
-                <param name="dumpFeatures" value="Yes"/>
+                <param name="numCellBootstraps" value="2"/>
                 <param name="freqThreshold" value="5"/>
-                <param name="dumpMtx" value="Yes"/>
+                <param name="dumpMtx" value="true"/>
             </section>
-            <output name="quants_mat_mtx" file="alevin_mat.mtx" ftype="mtx" sort="true" lines_diff="62"/>
+            <output name="quants_mat_mtx" file="alevin_mat_02.mtx" ftype="mtx" sort="true"/>
+        </test>
+        <test expect_num_outputs="8">
+            <conditional name="refTranscriptSource">
+                <param name="TranscriptSource" value="history"/>
+                <section name="s_index">
+                    <param name="fasta" value="minitranscript.fa"/>
+                </section>
+            </conditional>
+            <conditional name="pairstraight">
+                <param name="readselect" value="paired"/>
+                <param name="file1" value="fastqs/moreminifastq1.fastq.gz"/>
+                <param name="file2" value="fastqs/moreminifastq2.fastq.gz"/>
+                <param name="orientation" value="I"/>
+                <param name="strandedness" value="SR"/>
+            </conditional>
+            <conditional name="protocol_cond">
+                <param name="protocol" value="-\-indropV2"/>
+                <param name="w1" value="ATCAT"/>
+            </conditional>
+            <param name="tgmap" value="minitxp.tsv"/>
+            <param name="output_files" value="dumpFeatures"/>
+            <section name="optional">
+                <param name="keepCBFraction" value="1"/>
+                <param name="freqThreshold" value="5"/>
+                <param name="dumpMtx" value="true"/>
+            </section>
+            <output name="quants_mat_mtx" file="alevin_mat_indropV2.mtx" ftype="mtx" sort="true"/>
         </test>
         <test expect_num_outputs="14">
             <conditional name="refTranscriptSource">
@@ -260,16 +339,35 @@
                 <param name="orientation" value="I"/>
                 <param name="strandedness" value="SR"/>
             </conditional>
-            <param name="protocol" value="--chromium"/>
+            <conditional name="protocol_cond">
+                <param name="protocol" value="--chromium"/>
+            </conditional>
             <param name="tgmap" value="minitxp.tsv"/>
+            <param name="output_files" value="dumpFeatures,salmon_log,fragment_length,auxiliar_info,dumpUmiGraph,dumpBfh,commands"/>
             <section name="optional">
-                <param name="keepCBFraction" value="1"/>
-                <param name="dumpFeatures" value="Yes"/>
-                <param name="numCellBootstraps" value="2"/>
-                <param name="freqThreshold" value="5"/>
-                <param name="dumpMtx" value="Yes"/>
+                <param name="dumpMtx" value="true"/>
             </section>
-            <output name="quants_mat_mtx" file="alevin_mat.mtx" ftype="mtx" sort="true" lines_diff="62"/>
+            <output name="quants_mat_mtx" file="alevin_mat.mtx" ftype="mtx" sort="true"/>
+            <output name="salmon_quant_log" ftype="txt">
+                <assert_contents>
+                    <has_text text="Index contained 322 targets"/>
+                    <has_text text="Counted 14 total reads in the equivalence classes"/>
+                </assert_contents>
+            </output>
+            <output name="flenDist_txt" file="length_distribution.txt" ftype="txt"/>
+            <output name="auxiliar_files" ftype="tgz">
+                <assert_contents>
+                    <has_size value="1898" delta="100"/>
+                </assert_contents>
+            </output>
+            <output_collection name="umigraphs" type="list" count="14">
+                <element name="AGTGGGATCTTAACCT">
+                    <assert_contents>
+                        <has_size value="4017" delta="1000"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output name="bfh_txt" file="full_data_structure.txt" ftype="txt"/>
         </test>
     </tests>
     <help><![CDATA[
--- a/macros.xml	Thu Jul 22 14:05:58 2021 +0000
+++ b/macros.xml	Mon Dec 05 15:47:45 2022 +0000
@@ -1,16 +1,17 @@
 <macros>
-    <token name="@VERSION@">1.5.1</token>
-    <token name="@GALAXY_VERSION@">galaxy0</token>
+    <token name="@TOOL_VERSION@">1.9.0</token>
+    <token name="@VERSION_SUFFIX@">1</token>
     <token name="@IDX_VERSION@">q7</token>
     <token name="@PROFILE_VERSION@">20.01</token>
     <xml name="requirements">
         <requirements>
-            <requirement type="package" version="@VERSION@">salmon</requirement>
+            <requirement type="package" version="@TOOL_VERSION@">salmon</requirement>
             <requirement type="package" version="1.3">seqtk</requirement>
-            <requirement type="package" version="1.12">samtools</requirement>
+            <requirement type="package" version="1.16.1">samtools</requirement>
             <requirement type="package" version="0.2.0">vpolo</requirement>
-            <requirement type="package" version="1.3.0">pandas</requirement>
-            <requirement type="package" version="1.7.0">scipy</requirement>
+            <requirement type="package" version="1.5.2">pandas</requirement>
+            <requirement type="package" version="3.0.0">graphviz</requirement>
+            <requirement type="package" version="1.9.3">scipy</requirement>
         </requirements>
     </xml>
     <xml name="orient">
@@ -72,10 +73,14 @@
             </when>  <!-- build-in -->
             <when value="history">
                 <section name="s_index" title="Salmon index" expanded="true">
-                    <param name="fasta" type="data" format="fasta" label="Transcripts fasta file"/>
+                    <param name="fasta" type="data" format="fasta" label="Transcripts FASTA file"/>
+                    <param name="genome" type="data" format="fasta" optional="true" label="Reference genome" 
+                        help="The reference genome is required for generating a decoy-away index. The decoy sequences are regions of the target genome 
+                            that are sequence similar to annotated transcripts. These are the regions of the genome most likely to cause mismapping." />
                     <param name="kmer" type="integer" value="31" label="Kmer length"/>
                     <param name="phash" type="boolean" label="Perfect Hash" truevalue="--perfectHash" falsevalue="" checked="false"
-                        help="Build the index using a perfect hash rather than a dense hash.  This will require less memory (especially during quantification), but will take longer to construct"/>
+                        help="Build the index using a perfect hash rather than a dense hash.  This will require less memory (especially during quantification), 
+                            but will take longer to construct"/>
                 </section>
             </when>
         </conditional>
@@ -155,9 +160,20 @@
         <param name="dovetail" label="Allow Dovetail" type="boolean" truevalue="--allowDovetail" falsevalue="" checked="False" help="Allow dovetail mappings"/>
         <param name="recoverOrphans" label="Recover Orphans" type="boolean" truevalue="--recoverOrphans" falsevalue="" checked="False"
         help="Attempt to recover the mates of orphaned reads. This uses edlib for orphan recovery, and so introduces some computational overhead, but it can improve sensitivity."/>
-        <param name="writeMappings" type="boolean" truevalue="--writeMappings=./output/samout.sam" falsevalue="" checked="False"
-        label="Write Mappings to Bam File"
-        help="If this option is provided, then the quasi-mapping results will be written out in SAM-compatible format.  By default, output will be directed to stdout, but an alternative file name can be provided instead"/>
+        <conditional name="bam_options">
+            <param argument="--writeMappings" type="select" label="Write Mappings to BAM File" help="If this option is provided, then the quasi-mapping results will be written out in SAM-compatible format.  By default, output will be directed to stdout, but an alternative file name can be provided instead">
+                <option value="--writeMappings=./output/samout.sam">Enabled</option>
+                <option value="" selected="true">Disabled</option>
+            </param>
+            <when value="--writeMappings=./output/samout.sam">
+                <param argument="--writeQualities" type="boolean" truevalue="--writeQualities" falsevalue="" checked="false" label="Write qualities" help="If this flag is 
+                provided, then the output SAM file will contain quality strings as well as read sequences." />
+            </when>
+            <when value=""/>
+        </conditional>
+        <param name="writeMappings" type="boolean" truevalue="" falsevalue="" checked="False"
+            label="Write Mappings to Bam File"
+            help="If this option is provided, then the quasi-mapping results will be written out in SAM-compatible format.  By default, output will be directed to stdout, but an alternative file name can be provided instead"/>
         <param name="consistentHits" type="boolean" truevalue="--consistentHits" falsevalue="" checked="False"
         label="Consistent Hits"
         help="Force hits gathered during quasi-mapping to be 'consistent' (i.e. co-linear and approximately the right distance apart)."/>
@@ -315,10 +331,21 @@
         mkdir ./index &&
         mkdir ./output &&
         #if $quant_type.refTranscriptSource.TranscriptSource != "indexed":
+            #if $quant_type.refTranscriptSource.s_index.genome
+                cat '${quant_type.refTranscriptSource.s_index.genome}' | grep "^>" | cut -d " " -f 1 > 'decoys.txt' &&
+                sed -i.bak -e 's/>//g' 'decoys.txt' &&
+                cat '${quant_type.refTranscriptSource.s_index.fasta}' '${quant_type.refTranscriptSource.s_index.genome}' > 'input_index.fasta' &&
+            #else
+                ln -s '${quant_type.refTranscriptSource.s_index.fasta}' 'input_index.fasta' &&
+            #end if
             salmon index -i ./index
                 --kmerLen '${quant_type.refTranscriptSource.s_index.kmer}'
                 --gencode
-                --transcripts '${quant_type.refTranscriptSource.s_index.fasta}'
+                --threads "\${GALAXY_SLOTS:-4}"
+                --transcripts 'input_index.fasta'
+                #if $quant_type.refTranscriptSource.s_index.genome
+                    --decoy 'decoys.txt'
+                #end if
             &&
             #set $index_path = './index'
         #else
@@ -453,7 +480,10 @@
             #end if
             ${quant_type.dovetail}
             ${quant_type.recoverOrphans}
-            ${quant_type.writeMappings}
+            ${quant_type.bam_options.writeMappings}
+            #if $quant_type.bam_options.writeMappings:
+                ${quant_type.bam_options.writeQualities}
+            #end if
             ${quant_type.consistentHits}
             #if $quant_type.quasiCoverage:
                 --quasiCoverage '${quant_type.quasiCoverage}'
--- a/test-data/alevin_mat.mtx	Thu Jul 22 14:05:58 2021 +0000
+++ b/test-data/alevin_mat.mtx	Mon Dec 05 15:47:45 2022 +0000
@@ -1,5 +1,5 @@
 %%MatrixMarket	matrix	coordinate	real	general
-95	61	99
+14	61	15
 1	9	1.000000
 2	28	1.000000
 3	38	1.000000
@@ -11,91 +11,7 @@
 9	28	1.000000
 10	30	1.000000
 11	53	1.000000
-12	4	1.000000
+12	3	0.500000
+12	4	0.500000
 13	28	1.000000
 14	56	1.000000
-15	9	1.000000
-16	43	0.500000
-16	45	0.500000
-17	42	0.500000
-17	44	0.500000
-18	28	1.000000
-19	46	1.000000
-20	38	1.000000
-21	40	1.000000
-22	19	1.000000
-23	9	1.000000
-24	56	1.000000
-25	8	1.000000
-26	28	1.000000
-27	53	1.000000
-28	56	1.000000
-29	28	1.000000
-30	30	1.000000
-31	38	1.000000
-32	28	1.000000
-33	30	1.000000
-34	34	1.000000
-35	30	1.000000
-36	28	1.000000
-37	34	1.000000
-38	16	1.000000
-39	19	1.000000
-40	47	1.000000
-41	38	1.000000
-42	28	1.000000
-43	56	1.000000
-44	28	1.000000
-45	9	1.000000
-46	19	1.000000
-47	23	1.000000
-48	43	0.500000
-48	45	0.500000
-49	38	1.000000
-50	57	1.000000
-51	40	1.000000
-52	38	1.000000
-53	19	1.000000
-54	16	1.000000
-55	15	1.000000
-56	56	1.000000
-57	53	1.000000
-58	30	1.000000
-59	9	1.000000
-60	34	1.000000
-61	30	1.000000
-62	24	1.000000
-63	30	1.000000
-64	56	1.000000
-65	9	1.000000
-66	23	1.000000
-67	61	1.000000
-68	38	1.000000
-69	21	1.000000
-70	38	1.000000
-71	38	1.000000
-72	16	1.000000
-73	30	1.000000
-74	16	1.000000
-75	30	1.000000
-76	40	1.000000
-77	52	1.000000
-78	53	1.000000
-79	42	0.500000
-79	44	0.500000
-80	34	1.000000
-81	9	1.000000
-82	15	1.000000
-83	45	1.000000
-84	47	1.000000
-85	40	1.000000
-86	56	1.000000
-87	56	1.000000
-88	34	1.000000
-89	56	1.000000
-90	38	1.000000
-91	53	1.000000
-92	56	1.000000
-93	53	1.000000
-94	38	1.000000
-95	53	1.000000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/alevin_mat_01.mtx	Mon Dec 05 15:47:45 2022 +0000
@@ -0,0 +1,105 @@
+%%MatrixMarket	matrix	coordinate	real	general
+96	61	103
+1	9	1.000000
+2	28	1.000000
+3	38	1.000000
+4	28	1.000000
+5	42	1.000000
+6	9	1.000000
+7	56	1.000000
+8	28	1.000000
+9	28	1.000000
+10	30	1.000000
+11	53	1.000000
+12	3	0.500000
+12	4	0.500000
+13	28	1.000000
+14	56	1.000000
+15	9	1.000000
+16	43	0.500000
+16	45	0.500000
+17	42	0.500000
+17	44	0.500000
+18	28	1.000000
+19	46	1.000000
+20	38	1.000000
+21	40	1.000000
+22	19	1.000000
+23	9	1.000000
+24	56	1.000000
+25	8	1.000000
+26	28	1.000000
+27	53	1.000000
+28	56	1.000000
+29	28	1.000000
+30	30	1.000000
+31	38	1.000000
+32	28	1.000000
+33	30	1.000000
+34	34	1.000000
+35	30	1.000000
+36	28	1.000000
+37	34	1.000000
+38	16	1.000000
+39	19	1.000000
+40	47	1.000000
+41	38	1.000000
+42	28	1.000000
+43	56	1.000000
+44	28	1.000000
+45	9	1.000000
+46	19	1.000000
+47	23	1.000000
+48	43	0.500000
+48	45	0.500000
+49	38	1.000000
+50	56	0.500000
+50	57	0.500000
+51	40	1.000000
+52	38	1.000000
+53	19	1.000000
+54	16	1.000000
+55	15	1.000000
+56	56	1.000000
+57	53	1.000000
+58	30	1.000000
+59	9	1.000000
+60	34	1.000000
+61	30	1.000000
+62	24	1.000000
+63	30	1.000000
+64	56	1.000000
+65	9	1.000000
+66	23	1.000000
+67	61	1.000000
+68	38	1.000000
+69	38	1.000000
+70	21	1.000000
+71	38	1.000000
+72	38	1.000000
+73	16	1.000000
+74	30	1.000000
+75	16	1.000000
+76	30	1.000000
+77	40	1.000000
+78	52	0.500000
+78	53	0.500000
+79	53	1.000000
+80	42	0.500000
+80	44	0.500000
+81	34	1.000000
+82	9	1.000000
+83	15	1.000000
+84	45	1.000000
+85	47	1.000000
+86	40	1.000000
+87	56	1.000000
+88	56	1.000000
+89	34	1.000000
+90	56	1.000000
+91	38	1.000000
+92	53	1.000000
+93	56	1.000000
+94	53	1.000000
+95	38	1.000000
+96	53	1.000000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/alevin_mat_02.mtx	Mon Dec 05 15:47:45 2022 +0000
@@ -0,0 +1,105 @@
+%%MatrixMarket	matrix	coordinate	real	general
+96	61	103
+1	9	1.000000
+2	28	1.000000
+3	38	1.000000
+4	28	1.000000
+5	42	1.000000
+6	9	1.000000
+7	56	1.000000
+8	28	1.000000
+9	28	1.000000
+10	30	1.000000
+11	53	1.000000
+12	3	0.500000
+12	4	0.500000
+13	28	1.000000
+14	56	1.000000
+15	9	1.000000
+16	43	0.500000
+16	45	0.500000
+17	42	0.500000
+17	44	0.500000
+18	28	1.000000
+19	46	1.000000
+20	38	1.000000
+21	40	1.000000
+22	19	1.000000
+23	9	1.000000
+24	56	1.000000
+25	8	1.000000
+26	28	1.000000
+27	53	1.000000
+28	56	1.000000
+29	28	1.000000
+30	30	1.000000
+31	38	1.000000
+32	28	1.000000
+33	30	1.000000
+34	34	1.000000
+35	30	1.000000
+36	28	1.000000
+37	34	1.000000
+38	16	1.000000
+39	19	1.000000
+40	47	1.000000
+41	38	1.000000
+42	28	1.000000
+43	56	1.000000
+44	28	1.000000
+45	9	1.000000
+46	19	1.000000
+47	23	1.000000
+48	43	0.500000
+48	45	0.500000
+49	38	1.000000
+50	56	0.500000
+50	57	0.500000
+51	40	1.000000
+52	38	1.000000
+53	19	1.000000
+54	16	1.000000
+55	15	1.000000
+56	56	1.000000
+57	53	1.000000
+58	30	1.000000
+59	9	1.000000
+60	34	1.000000
+61	30	1.000000
+62	24	1.000000
+63	30	1.000000
+64	56	1.000000
+65	9	1.000000
+66	23	1.000000
+67	61	1.000000
+68	38	1.000000
+69	38	1.000000
+70	21	1.000000
+71	38	1.000000
+72	38	1.000000
+73	16	1.000000
+74	30	1.000000
+75	16	1.000000
+76	30	1.000000
+77	40	1.000000
+78	52	0.500000
+78	53	0.500000
+79	53	1.000000
+80	42	0.500000
+80	44	0.500000
+81	34	1.000000
+82	9	1.000000
+83	15	1.000000
+84	45	1.000000
+85	47	1.000000
+86	40	1.000000
+87	56	1.000000
+88	56	1.000000
+89	34	1.000000
+90	56	1.000000
+91	38	1.000000
+92	53	1.000000
+93	56	1.000000
+94	53	1.000000
+95	38	1.000000
+96	53	1.000000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/alevin_mat_indropV2.mtx	Mon Dec 05 15:47:45 2022 +0000
@@ -0,0 +1,105 @@
+%%MatrixMarket	matrix	coordinate	real	general
+96	61	103
+1	9	1.000000
+2	28	1.000000
+3	38	1.000000
+4	28	1.000000
+5	42	1.000000
+6	9	1.000000
+7	56	1.000000
+8	28	1.000000
+9	28	1.000000
+10	30	1.000000
+11	53	1.000000
+12	3	0.500000
+12	4	0.500000
+13	28	1.000000
+14	56	1.000000
+15	16	1.000000
+16	9	1.000000
+17	43	0.500000
+17	45	0.500000
+18	28	1.000000
+19	42	0.500000
+19	44	0.500000
+20	40	1.000000
+21	46	1.000000
+22	38	1.000000
+23	19	1.000000
+24	9	1.000000
+25	56	1.000000
+26	8	1.000000
+27	9	1.000000
+28	28	1.000000
+29	53	1.000000
+30	56	1.000000
+31	28	1.000000
+32	30	1.000000
+33	34	1.000000
+34	38	1.000000
+35	28	1.000000
+36	30	1.000000
+37	30	1.000000
+38	28	1.000000
+39	34	1.000000
+40	19	1.000000
+41	47	1.000000
+42	38	1.000000
+43	28	1.000000
+44	19	1.000000
+45	56	1.000000
+46	28	1.000000
+47	23	1.000000
+48	43	0.500000
+48	45	0.500000
+49	38	1.000000
+50	56	0.500000
+50	57	0.500000
+51	40	1.000000
+52	38	1.000000
+53	19	1.000000
+54	16	1.000000
+55	15	1.000000
+56	56	1.000000
+57	23	1.000000
+58	30	1.000000
+59	53	1.000000
+60	30	1.000000
+61	9	1.000000
+62	34	1.000000
+63	24	1.000000
+64	30	1.000000
+65	56	1.000000
+66	9	1.000000
+67	61	1.000000
+68	21	1.000000
+69	38	1.000000
+70	38	1.000000
+71	16	1.000000
+72	38	1.000000
+73	38	1.000000
+74	30	1.000000
+75	53	1.000000
+76	16	1.000000
+77	30	1.000000
+78	40	1.000000
+79	52	0.500000
+79	53	0.500000
+80	42	0.500000
+80	44	0.500000
+81	34	1.000000
+82	9	1.000000
+83	15	1.000000
+84	45	1.000000
+85	47	1.000000
+86	40	1.000000
+87	56	1.000000
+88	34	1.000000
+89	56	1.000000
+90	56	1.000000
+91	38	1.000000
+92	53	1.000000
+93	56	1.000000
+94	53	1.000000
+95	38	1.000000
+96	53	1.000000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/full_data_structure.txt	Mon Dec 05 15:47:45 2022 +0000
@@ -0,0 +1,551 @@
+322
+218
+8
+ENST00000641515.2
+ENST00000335137.4
+ENST00000426406.3
+ENST00000420190.6
+ENST00000437963.5
+ENST00000342066.8
+ENST00000618181.4
+ENST00000622503.4
+ENST00000618323.4
+ENST00000616016.4
+ENST00000618779.4
+ENST00000616125.4
+ENST00000620200.4
+ENST00000617307.4
+ENST00000341065.8
+ENST00000455979.1
+ENST00000327044.7
+ENST00000338591.8
+ENST00000622660.1
+ENST00000466300.1
+ENST00000379410.7
+ENST00000379409.6
+ENST00000379407.7
+ENST00000491024.1
+ENST00000341290.6
+ENST00000433179.3
+ENST00000428771.6
+ENST00000304952.10
+ENST00000484667.2
+ENST00000624697.4
+ENST00000624652.1
+ENST00000649529.1
+ENST00000379370.7
+ENST00000620552.4
+ENST00000652369.1
+ENST00000651234.1
+ENST00000453464.3
+ENST00000379339.5
+ENST00000379325.7
+ENST00000421241.6
+ENST00000477196.5
+ENST00000467751.5
+ENST00000379320.5
+ENST00000379319.5
+ENST00000434641.5
+ENST00000462097.5
+ENST00000475119.5
+ENST00000442117.5
+ENST00000427787.5
+ENST00000480643.1
+ENST00000379290.5
+ENST00000379289.5
+ENST00000379288.3
+ENST00000486379.1
+ENST00000328596.10
+ENST00000379268.7
+ENST00000486728.5
+ENST00000379265.5
+ENST00000379236.4
+ENST00000360001.11
+ENST00000660930.1
+ENST00000465727.5
+ENST00000263741.12
+ENST00000655486.1
+ENST00000403997.2
+ENST00000379198.5
+ENST00000330388.2
+ENST00000450390.6
+ENST00000347370.6
+ENST00000349431.10
+ENST00000400929.6
+ENST00000464036.5
+ENST00000360466.6
+ENST00000400930.8
+ENST00000473215.5
+ENST00000435198.5
+ENST00000509720.5
+ENST00000466752.5
+ENST00000503294.5
+ENST00000477894.5
+ENST00000422076.5
+ENST00000502382.1
+ENST00000488418.2
+ENST00000379116.9
+ENST00000379101.8
+ENST00000338555.6
+ENST00000400928.7
+ENST00000470022.1
+ENST00000325425.12
+ENST00000379099.3
+ENST00000354700.10
+ENST00000353662.4
+ENST00000354980.7
+ENST00000379031.10
+ENST00000467712.1
+ENST00000540437.5
+ENST00000545578.5
+ENST00000620829.4
+ENST00000618806.4
+ENST00000435064.5
+ENST00000411962.5
+ENST00000421495.6
+ENST00000458452.7
+ENST00000419704.5
+ENST00000532772.5
+ENST00000450926.6
+ENST00000527098.5
+ENST00000528879.5
+ENST00000531377.5
+ENST00000527383.5
+ENST00000434694.6
+ENST00000526797.5
+ENST00000526332.5
+ENST00000430786.5
+ENST00000527719.5
+ENST00000530031.5
+ENST00000429572.5
+ENST00000534345.5
+ENST00000531019.5
+ENST00000498476.6
+ENST00000470679.3
+ENST00000525285.1
+ENST00000343938.9
+ENST00000488011.1
+ENST00000339381.6
+ENST00000378891.9
+ENST00000378888.10
+ENST00000610709.2
+ENST00000632445.1
+ENST00000631679.1
+ENST00000342753.8
+ENST00000309212.10
+ENST00000445648.5
+ENST00000477278.3
+ENST00000338370.7
+ENST00000338338.9
+ENST00000321751.9
+ENST00000378853.3
+ENST00000400809.8
+ENST00000482621.5
+ENST00000408952.8
+ENST00000481223.6
+ENST00000488340.5
+ENST00000408918.8
+ENST00000425598.2
+ENST00000497013.1
+ENST00000344843.12
+ENST00000492508.1
+ENST00000482352.1
+ENST00000520296.5
+ENST00000427211.3
+ENST00000537107.5
+ENST00000454272.2
+ENST00000442470.1
+ENST00000378821.3
+ENST00000495558.1
+ENST00000338660.5
+ENST00000476993.2
+ENST00000471398.1
+ENST00000378785.6
+ENST00000475091.2
+ENST00000308647.7
+ENST00000378756.7
+ENST00000378755.9
+ENST00000339113.8
+ENST00000536055.5
+ENST00000400830.3
+ENST00000378733.9
+ENST00000425828.1
+ENST00000624426.1
+ENST00000291386.4
+ENST00000359060.5
+ENST00000422725.4
+ENST00000520777.5
+ENST00000355826.9
+ENST00000518681.5
+ENST00000505820.6
+ENST00000489635.5
+ENST00000514363.1
+ENST00000487053.5
+ENST00000502470.5
+ENST00000378712.5
+ENST00000510793.5
+ENST00000504599.5
+ENST00000503789.5
+ENST00000378708.5
+ENST00000506488.5
+ENST00000514234.5
+ENST00000486072.1
+ENST00000483015.1
+ENST00000356026.9
+ENST00000472264.1
+ENST00000512731.5
+ENST00000378675.7
+ENST00000479814.5
+ENST00000435358.5
+ENST00000503792.1
+ENST00000490017.1
+ENST00000341832.10
+ENST00000407249.7
+ENST00000615951.4
+ENST00000340677.9
+ENST00000611150.3
+ENST00000629289.2
+ENST00000626918.2
+ENST00000629312.2
+ENST00000614300.4
+ENST00000617444.4
+ENST00000611123.1
+ENST00000404249.8
+ENST00000356200.7
+ENST00000378638.6
+ENST00000509982.5
+ENST00000460465.5
+ENST00000357760.6
+ENST00000358779.9
+ENST00000378633.5
+ENST00000479362.1
+ENST00000401096.2
+ENST00000355439.7
+ENST00000643905.1
+ENST00000341426.9
+ENST00000341991.7
+ENST00000378625.5
+ENST00000342348.9
+ENST00000498806.1
+ENST00000469045.5
+ENST00000489538.1
+ENST00000497186.5
+ENST00000610897.4
+ENST00000615252.4
+ENST00000378609.9
+ENST00000439272.6
+ENST00000434686.6
+ENST00000437146.1
+ENST00000378604.3
+ENST00000307786.8
+ENST00000378602.3
+ENST00000310991.8
+ENST00000378598.4
+ENST00000470931.2
+ENST00000416272.1
+ENST00000642590.1
+ENST00000493964.5
+ENST00000378590.4
+ENST00000638411.1
+ENST00000378585.7
+ENST00000639045.1
+ENST00000640067.1
+ENST00000638771.1
+ENST00000640949.1
+ENST00000640030.1
+ENST00000640981.1
+ENST00000638763.1
+ENST00000638804.1
+ENST00000378567.8
+ENST00000468310.5
+ENST00000503297.1
+ENST00000400921.6
+ENST00000495347.5
+ENST00000461106.6
+ENST00000461465.5
+ENST00000470596.5
+ENST00000496325.5
+ENST00000481140.5
+ENST00000482686.5
+ENST00000486681.5
+ENST00000470986.5
+ENST00000470511.5
+ENST00000471018.6
+ENST00000466352.5
+ENST00000497183.5
+ENST00000478770.6
+ENST00000400919.7
+ENST00000428120.5
+ENST00000414253.5
+ENST00000400918.7
+ENST00000378543.2
+ENST00000378546.9
+ENST00000440825.6
+ENST00000420515.1
+ENST00000378536.5
+ENST00000378531.8
+ENST00000378529.7
+ENST00000449373.2
+ENST00000378525.2
+ENST00000494279.2
+ENST00000378513.7
+ENST00000378518.5
+ENST00000605895.6
+ENST00000306256.13
+ENST00000378512.5
+ENST00000443438.5
+ENST00000488353.2
+ENST00000288774.7
+ENST00000650293.1
+ENST00000447513.6
+ENST00000507596.5
+ENST00000510434.1
+ENST00000508384.5
+ENST00000502666.1
+ENST00000514502.1
+ENST00000609981.5
+ENST00000449969.5
+ENST00000378486.8
+ENST00000419816.6
+ENST00000278878.6
+ENST00000378466.8
+ENST00000435556.8
+ENST00000505228.5
+ENST00000651094.1
+ENST00000502512.1
+ENST00000468002.2
+ENST00000486396.1
+ENST00000502770.2
+ENST00000378453.4
+ENST00000426449.5
+ENST00000434817.5
+ENST00000435221.6
+ENST00000451778.5
+ENST00000409119.5
+ENST00000355716.4
+GGATTACCATAGGATA
+CTCTGGTAGGAGTAGA
+GCTTGAAGTCGGATCC
+CTGCTGTGTTACGTCA
+TTAACTCAGCTAACAA
+CATTATCTCAACTCTT
+CTCGAGGGTCGCCATG
+CGAACATGTTACAGAA
+AAGGCAGCACCATCCT
+TCATTACGTCTCATCC
+GGTATTGTCTGACCTC
+GACGTTACAAGAAGAG
+TGTTCCGAGCGCTCCA
+CGCTATCTCTTAACCT
+GTATTCTGTAGTGAAT
+GTCGGGTGTGCAGTAG
+ATCATGGCAGCCAATT
+AGTTGGTTCGCGATCG
+AGAATAGTCCTATTCA
+TTGCGTCAGCTAAACA
+GAACGGAGTCGTCTTC
+CATGACAGTACCGAGA
+CACATAGTCATGTGGT
+TACTTACTCAAAGTAG
+GGGCATCGTAGCTTGT
+GACAGAGAGGGTGTGT
+AGCCTAATCATTCACT
+CATCGAATCTGCGGCA
+GCTTCCAAGAGCTGGT
+CATGACAGTAGCCTCG
+CAGCATAAGACTTGAA
+TTGTAGGCACCATCCT
+GACTACACAACGATGG
+CGAATGTGTACCATCA
+ATAGACCTCTCACATT
+AGTGGGATCTTAACCT
+TGGACGCGTAGAAGGA
+CCGTGGAAGTAGGCCA
+CTCACACTCGCCTGTT
+AGTAGTCGTAACGACG
+GTCTCGTGTGATGTGG
+GTAACTGGTTCACGGC
+CTTAGGAGTCTCCATC
+GGTGAAGCAATGACCT
+ACGATACAGCCCAGCT
+TGTTCCGCAGCATGAG
+TTAGGCAAGCCGCCTA
+TGACTTTTCGCTAGCG
+GGACATTCACTCTGTC
+GATCGTATCGCACTCT
+TACACGAGTGCACTTA
+GTACTCCCAACTTGAC
+GCGACCACAGTCGATT
+CTGTTTAGTCCGTCAG
+CCGGGATCATGAGCGA
+ACTGAACTCTTTAGTC
+AACCATGAGAGTACCG
+TAGAGCTCACGAGAGT
+ACGCAGCCATAAAGGT
+CTCGAGGCATGCCTTC
+AGCGTATAGATACACA
+ACGCCAGAGGGTATCG
+TGATTTCAGTGGGCTA
+TTCTCAAAGTACGTAA
+TCATTTGTCCATGAGT
+AGAATAGCAGTGGGAT
+AAAGTAGAGTCAAGGC
+TACTTGTAGGGAACGG
+TACCTATCAGATGGGT
+CTGAAGTTCCACGTGG
+ACCAGTATCTCATTCA
+AAACGGGAGCGGCTTC
+AAACCTGCAGGCGATA
+CACAGGCGTGATGTCT
+CACAAACGTGCTTCTC
+TGACTAGAGTACGCGA
+CGACCTTAGGAGCGTT
+ATAGACCTCTCGATGA
+AACCGCGAGACACTAA
+TCGAGGCGTCTACCTC
+TACGGATAGATGTTAG
+CAGTCCTCACGAAGCA
+GTGCTTCAGGCTAGAC
+GCGCCAAGTCATGCAT
+CCACGGAGTAATAGCA
+CAAGTTGAGATCCTGT
+ATCCGAAGTAACGCGA
+AATCCAGAGCCAACAG
+TTCGGTCCATTGTGCA
+TCTCTAACAACACCCG
+TCATTACCACAGAGGT
+GCATGTAAGTACGTAA
+ACGGGCTAGTTCGATC
+GTCCTCATCACAATGC
+GGCCGATAGGTACTCT
+GACGTTAAGGGAAACA
+CGAATGTCATACAGCT
+CATGGCGAGCTGAAAT
+CACACCTAGTGAACGC
+TTTATGCAGGCCCTTG
+GTACTTTCACGTCAGC
+GGATGTTTCAGTCAGT
+GAAATGAGTAGCGTAG
+CATGCCTCAGACAAAT
+AGCATACTCTTGCAAG
+AAAGCAATCTGCCCTA
+GTCGGGTTCACGGTTA
+GGTGCGTGTCAGGACA
+CTGTGCTGTAAACCTC
+CGATGTAAGTTCGCGC
+ATGGGAGCAGCTCGCA
+GCTCTGTAGTTTCCTT
+CACAGGCCACGAAAGC
+GTGCTTCGTTGTCTTT
+GTGCTTCAGGCTCTTA
+GAAATGAAGACAGACC
+CTCGGAGGTCGACTGC
+CAACCAACACAGACAG
+TTCTCAAAGCTCCTCT
+GTACTTTAGTCCTCCT
+TGTGGTAGTTACGACT
+TAGAGCTGTGGACGAT
+GTCTTCGGTTTCCACC
+GGTGCGTTCAAACCGT
+GGACATTCATTGCGGC
+GCTGCGACATAACCTG
+TCTCATAAGTTAGCGG
+TAGTGGTAGAAGGTGA
+GCGAGAACAAGTTGTC
+GACTACAGTTGTACAC
+CCTAGCTGTCGCGTGT
+ATTACTCGTACTCAAC
+AGCAGCCAGATGTCGG
+AGATCTGTCTGCGTAA
+ACGCCAGTCAAGCCTA
+AAGGCAGGTAGTGAAT
+TTAACTCGTCTGATTG
+TGACGGCCATGCTGGC
+GGAAAGCTCGAATGCT
+CTCGTACCATTAACCG
+CATGGCGTCCATGAGT
+CAGCATACAAGTTAAG
+CACCTTGGTGGTCCGT
+ACTGAGTCATCCCATC
+AAGCCGCCAATCTGCA
+TTAGGCACAACGATGG
+GTACGTACACACGCTG
+CTGTGCTTCCGCGGTA
+ACCAGTAAGGGCTCTC
+AACTTTCTCATCGGAT
+AACACGTCACCTGGTG
+TCAATCTCATGCCACG
+GTCATTTAGGCAGTCA
+GTCACAAGTATTCGTG
+GGAGCAATCGCTTGTC
+GATGAGGTCCATTCTA
+GATGAAAGTGATGTCT
+GATCAGTAGGGTTTCT
+GAAACTCAGTACTTGC
+CTACATTGTCACTGGC
+CGATTGACATACGCCG
+AGTTGGTGTACCGGCT
+TTAGGACTCGTGACAT
+GTGCATAGTAACGACG
+GTACGTAGTAAGTTCC
+GTAACGTTCCACGTGG
+GGACAAGTCTCAAGTG
+GGAAAGCAGGAGTAGA
+CTCCTAGAGCAGACTG
+AGCGTCGGTGTTCGAT
+TTTGTCACAGGTCCAC
+GTCACGGGTAAGTTCC
+GTATCTTTCATCATTC
+GACGTGCGTAGCAAAT
+GAACATCGTATAAACG
+CTGTTTATCAGTCAGT
+CTCGGGACACATCCAA
+CTAACTTTCAGCTTAG
+CGATCGGAGGTGGGTT
+CGACCTTCATTGGGCC
+AATCCAGCAGCCTGTG
+TTAGTTCCATGTAAGA
+TGGCTGGCAATTGCTG
+GTATTCTGTAGGCTGA
+GTAGTCATCCAGTATG
+GGGATGAAGAGGGATA
+GCTTCCAAGGAATCGC
+CTTTGCGCACAGGAGT
+CCGGGATTCTTGTCAT
+CCATTCGGTAGCCTAT
+CAGCCGACAGATTGCT
+CACAAACTCTTAACCT
+CAACTAGTCCTCTAGC
+ATCGAGTGTACAGCAG
+TTATGCTAGAGATGAG
+TGGCGCAGTCTCGTTC
+TCAGCTCTCTGCTTGC
+GTTACAGAGTTATCGC
+GTAGTCATCAGCTCTC
+GGGAGATGTGCTTCTC
+GCGCCAAGTACGAAAT
+CTGCGGAAGTACGCGA
+CCATTCGAGCTAACTC
+ATCTACTTCTGAGTGT
+AACTCAGGTTTGACAC
+AACCGCGGTAAGTGTA
+TGCCCTATCCACTCCA
+TCATTTGAGCAAATCA
+GTGAAGGAGCCAGAAC
+CTCTGGTGTTAAGGGC
+CCTTCGACACTATCTT
+CATCCACAGGCTATCT
+CACCACTTCATCGGAT
+ATCATCTCATCCAACA
+AGGTCATTCCGCGGTA
+AGACGTTAGACCACGA
+AACGTTGCAGTTAACC
+AAAGCAAAGTGTCCAT
+8	198	199	200	201	202	203	204	205	1	1	32	1	TACGGGCTGC	1
+1	170	1	1	21	1	GAACATTTGT	1
+3	29	30	31	2	2	34	1	CGGCGTCCGG	1	1	1	AGCGGCTGGT	1
+11	5	6	7	8	9	10	11	12	13	14	16	1	1	93	1	TTGACACCAT	1
+1	146	1	1	46	1	AACACAGATA	1
+4	287	289	291	293	2	2	140	1	CCGTACGGGG	1	35	1	GGATTCAGTA	1
+3	273	274	275	1	1	86	1	CCGACTCGTT	1
+4	134	135	136	137	5	5	30	1	ACGAATGTTT	1	95	1	ACAGAGCTAA	1	45	1	AGTTTACACT	1	3	1	ACCTATGTTC	1	41	1	GACTATGGAT	1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/genome.fasta	Mon Dec 05 15:47:45 2022 +0000
@@ -0,0 +1,239 @@
+>chrM
+GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGG
+GTATGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTC
+CTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACTTACTAAAGTGTGTTA
+ATTAATTAATGCTTGTAGGACATAATAATAACAATTGAATGTCTGCACAGCCACTTTCCACACAGACATC
+ATAACAAAAAATTTCCACCAAACCCCCCCTCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGCCA
+AACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAATTTTATCTTTTGGCGGTATGCAC
+TTTTAACAGTCACCCCCCAACTAACACATTATTTTCCCCTCCCACTCCCATACTACTAATCTCATCAATA
+CAACCCCCGCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATACCCCGAACCAACCAAACCCC
+AAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCAAAGCAATACACTGAAAATGTTTAGACGGGCTC
+ACATCACCCCATAAACAAATAGGTTTGGTCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAA
+GCATCCCCGTTCCAGTGAGTTCACCCTCTAAATCACCACGATCAAAAGGAACAAGCATCAAGCACGCAGC
+AATGCAGCTCAAAACGCTTAGCCTAGCCACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAATAA
+ACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACCGCGGTCACACGA
+TTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTTTAGATCACCCCCTCCCCAATAAAGCTAAAACT
+CACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAGACTACGAAAGTGGCTTTAACATATCTGAACAC
+ACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTATGCTTAGCCCTAAACCTCAACAGTTAAATC
+AACAAAACTGCTCGCCAGAACACTACGAGCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATC
+CCTCTAGAGGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGCTCAGCCTATATA
+CCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGTAAGCGCAAGTACCCACGTAAAGACGTTAGGTC
+AAGGTGTAGCCCATGAGGTGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTTAT
+GAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTAAGAGTAGAGTGCTTAGTTGAACAGGGCCCTGA
+AGCGCGTACACACCGCCCGTCACCCTCCTCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCA
+TTTATATAGAGGAGACAAGTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACGAACCAGAGTGTA
+GCTTAACACAAAGCACCCAACTTACACTTAGGAGATTTCAACTTAACTTGACCGCTCTGAGCTAAACCTA
+GCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGGCG
+ATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGATGAAAAATTATAACCAAGCATA
+ATATAGCAAGGACTAACCCCTATACCTTCTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCC
+AAAGCTAAGACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCA
+AAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGAT
+AGAATCTTAGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAGTC
+CAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATTTAACACCCATAG
+TAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCCAAAC
+ATATAACTGAACTCCTCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAATGTTAGTATAAG
+TAACATGAAAACATTCTCCTCCGCATAAGCCTGCGTCAGATTAAAACACTGAACTGACAATTAACAGCCC
+AATATCTACAATCAACCAACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAGGA
+AAGGTTAAAAAAAGTAAAAGGAACTCGGCAAATCTTACCCCGCCTGTTTACCAAAAACATCACCTCTAGC
+ATCACCAGTATTAGAGGCACCGCCTGCCCAGTGACACATGTTTAACGGCCGCGGTACCCTAACCGTGCAA
+AGGTAGCATAATCACTTGTTCCTTAAATAGGGACCTGTATGAATGGCTCCACGAGGGTTCAGCTGTCTCT
+TACTTTTAACCAGTGAAATTGACCTGCCCGTGAAGAGGCGGGCATAACACAGCAAGACGAGAAGACCCTA
+TGGAGCTTTAATTTATTAATGCAAACAGTACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCATT
+AAAAATTTCGGTTGGGGCGACCTCGGAGCAGAACCCAACCTCCGAGCAGTACATGCTAAGACTTCACCAG
+TCAAAGCGAACTACTATACTCAATTGATCCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAACA
+GCGCAATCCTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCG
+ATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTACGTGATCTGAGTTCAGACCGG
+AGTAATCCAGGTCGGTTTCTATCTACNTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCCT
+ACTTCACAAAGCGCCTTCCCCCGTAAATGATATCATCTCAACTTAGTATTATACCCACACCCACCCAAGA
+ACAGGGTTTGTTAAGATGGCAGAGCCCGGTAATCGCATAAAACTTAAAACTTTACAGTCAGAGGTTCAAT
+TCCTCTTCTTAACAACATACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAATCGCAATGGCA
+TTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATACAACTACGCAAAGGCCCCAACGTTGTAGGCC
+CCTACGGGCTACTACAACCCTTCGCTGACGCCATAAAACTCTTCACCAAAGAGCCCCTAAAACCCGCCAC
+ATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGCTCTCACCATCGCTCTTCTACTATGAACCCCC
+CTCCCCATACCCAACCCCCTGGTCAACCTCAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAG
+CCGTTTACTCAATCCTCTGATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGCGCACTGCGAGC
+AGTAGCCCAAACAATCTCATATGAAGTCACCCTAGCCATCATTCTACTATCAACATTACTAATAAGTGGC
+TCCTTTAACCTCTCCACCCTTATCACAACACAAGAACACCTCTGATTACTCCTGCCATCATGACCCTTGG
+CCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTTCGACCTTGCCGAAGGGGAGTC
+CGAACTAGTCTCAGGCTTCAACATCGAATACGCCGCAGGCCCCTTCGCCCTATTCTTCATAGCCGAATAC
+ACAAACATTATTATAATAAACACCCTCACCACTACAATCTTCCTAGGAACAACATATGACGCACTCTCCC
+CTGAACTCTACACAACATATTTTGTCACCAAGACCCTACTTCTAACCTCCCTGTTCTTATGAATTCGAAC
+AGCATACCCCCGATTCCGCTACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCTA
+GCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTCCCCCTCAAACCTAAGAAATAT
+GTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGGAGCTTAAACCCCCTTATTTCTAGGACTATGA
+GAATCGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAAGTAAGGTC
+AGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCGTACTAATTAATCCCCT
+GGCCCAACCCGTCATCTACTCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATTT
+TTTACCTGAGTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTCTAACCAAAAAAATAAACCCTC
+GTTCCACAGAAGCTGCCATCAAGTATTTCCTCACGCAAGCAACCGCATCCATAATCCTTCTAATAGCTAT
+CCTCTTCAACAATATACTCTCCGGACAATGAACCATAACCAATACTACCAATCAATACTCATCATTAATA
+ATCATAATAGCTATAGCAATAAAACTAGGAATAGCCCCCTTTCACTTCTGAGTCCCAGAGGTTACCCAAG
+GCACCCCTCTGACATCCGGCCTGCTTCTTCTCACATGACAAAAACTAGCCCCCATCTCAATCATATACCA
+AATCTCTCCCTCACTAAACGTAAGCCTTCTCCTCACTCTCTCAATCTTATCCATCATAGCAGGCAGTTGA
+GGTGGATTAAACCAAACCCAGCTACGCAAAATCTTAGCATACTCCTCAATTACCCACATAGGATGAATAA
+TAGCAGTTCTACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATCCTAACTACTAC
+CGCATTCCTACTACTCAACTTAAACTCCAGCACCACGACCCTACTACTATCTCGCACCTGAAACAAGCTA
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCTGCCCCCGCTAACCGGCTTTT
+TGCCCAAATGGGCCATTATCGAAGAATTCACAAAAAACAATAGCCTCATCATCCCCACCATCATAGCCAC
+CATCACCCTCCTTAACCTCTACTTCTACCTACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATA
+TCTAACAACGTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCCCACACTCATCG
+CCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATACTAATAATCTTATAGAAATTTAGGTTAAATAC
+AGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTGCAATACTTAATTTCTGTAACAGCTAAGGACTGCAAAA
+CCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTACTAGACCAATGGGA
+CTTAAACCCACAAACACTTAGTTAACAGCTAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCC
+GCCGGGAAAAAAGGCGGGAGAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGA
+AAATCACCTCGGAGCTGGTAAAAAGAGGCCTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCACTCA
+GCCATTTTACCTCACCCCCACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCACAAAGACATTGG
+AACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCTCTAAGCCTCCTTATTCGAGCC
+GAGCTGGGCCAGCCAGGCAACCTTCTAGGTAACGACCACATCTACAACGTTATCGTCACAGCCCATGCAT
+TTGTAATAATCTTCTTCATAGTAATACCCATCATAATCGGAGGCTTTGGCAACTGACTAGTTCCCCTAAT
+AATCGGTGCCCCCGATATGGCGTTTCCCCGCATAAACAACATAAGCTTCTGACTCTTACCTCCCTCTCTC
+CTACTCCTGCTCGCATCTGCTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTAG
+CAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTCCTTACACCTAGCAGGTGTCTC
+CTCTATCTTAGGGGCCATCAATTTCATCACAACAATTATCAATATAAAACCCCCTGCCATAACCCAATAC
+CAAACGCCCCTCTTCGTCTGATCCGTCCTAATCACAGCAGTCCTACTTCTCCTATCTCTCCCAGTCCTAG
+CTGCTGGCATCACTATACTACTAACAGACCGCAACCTCAACACCACCTTCTTCGACCCCGCCGGAGGAGG
+AGACCCCATTCTATACCAACACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACCA
+GGCTTCGGAATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAGAACCATTTGGATACATAGGTA
+TGGTCTGAGCTATGATATCAATTGGCTTCCTAGGGTTTATCGTGTGAGCACACCATATATTTACAGTAGG
+AATAGACGTAGACACACGAGCATATTTCACCTCCGCTACCATAATCATCGCTATCCCCACCGGCGTCAAA
+GTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATGAAATGATCTGCTGCAGTGCTCTGAGCCCTAG
+GATTCATCTTTCTTTTCACCGTAGGTGGCCTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCGT
+ACTACACGACACGTACTACGTTGTAGCCCACTTCCACTATGTCCTATCAATAGGAGCTGTATTTGCCATC
+ATAGGAGGCTTCATTCACTGATTTCCCCTATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATCC
+ATTTCACTATCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGCCTATCCGGAAT
+GCCCCGACGTTACTCGGACTACCCCGATGCATACACCACATGAAACATCCTATCATCTGTAGGCTCATTC
+ATTTCTCTAACAGCAGTAATATTAATAATTTTCATGATTTGAGAAGCCTTCGCTTCGAAGCGAAAAGTCC
+TAATAGTAGAAGAACCCTCCATAAACCTGGAGTGACTATATGGATGCCCCCCACCCTACCACACATTCGA
+AGAACCCGTATACATAAAATCTAGACAAAAAAGGAAGGAATCGAACCCCCCAAAGCTGGTTTCAAGCCAA
+CCCCATGGCCTCCATGACTTTTTCAAAAAGGTATTAGAAAAACCATTTCATAACTTTGTCAAAGTTAAAT
+TATAGGCTAAATCCTATATATCTTAATGGCACATGCAGCGCAAGTAGGTCTACAAGACGCTACTTCCCCT
+ATCATAGAAGAGCTTATCACCTTTCATGATCACGCCCTCATAATCATTTTCCTTATCTGCTTCCTAGTCC
+TGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTAATACTAACATCTCAGACGCTCAGGAAATAGA
+AACCGTCTGAACTATCCTGCCCGCCATCATCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTAC
+ATAACAGACGAGGTCAACGATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTACTGAACCTACG
+AGTACACCGACTACGGCGGACTAATCTTCAACTCCTACATACTTCCCCCATTATTCCTAGAACCAGGCGA
+CCTGCGACTCCTTGACGTTGACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTATAATAATTACA
+TCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAACAGATGCAATTCCCGGACGTC
+TAAACCAAACCACTTTCACCGCTACACGACCGGGGGTATACTACGGTCAATGCTCTGAAATCTGTGGAGC
+AAACCACAGTTTCATGCCCATCGTCCTAGAATTAATTCCCCTAAAAATCTTTGAAATAGGGCCCGTATTT
+ACCCTATAGCACCCCCTCTACCCCCTCTAGAGCCCACTGTAAAGCTAACTTAGCATTAACCTTTTAAGTT
+AAAGATTAAGAGAACCAACACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCAT
+AATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATATTAAACACAAACTACCACCTA
+CCTCCCTCACCAAAGCCCATAAAAATAAAAAATTATAACAAACCCTGAGAACCAAAATGAACGAAAATCT
+GTTCGCTTCATTCATTGCCCCCACAATCCTAGGCCTACCCGCCGCAGTACTGATCATTCTATTTCCCCCT
+CTATTGATCCCCACCTCCAAATATCTCATCAACAACCGACTAATCACCACCCAACAATGACTAATCAAAC
+TAACCTCAAAACAAATGATAACCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCTT
+AATCATTTTTATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCATTTACACCAACCACCCAACTA
+TCTATAAACCTAGCCATGGCCATCCCCTTATGAGCGGGCACAGTGATTATAGGCTTTCGCTCTAAGATTA
+AAAATGCCCTAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTATCCCCATACTAGTTATTATCGA
+AACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGTACGCCTAACCGCTAACATTACTGCAGGCCAC
+CTACTCATGCACCTAATTGGAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCA
+TCTTCACAATTCTAATTCTACTGACTATCCTAGAAATCGCTGTCGCCTTAATCCAAGCCTACGTTTTCAC
+ACTTCTAGTAAGCCTCTACCTGCACGACAACACATAATGACCCACCAATCACATGCCTATCATATAGTAA
+AACCCAGCCCATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTAGCCATGTGATT
+TCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACTAACCAACACACTAACCATATACCAATGATGG
+CGCGATGTAACACGAGAAAGCACATACCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATACG
+GGATAATCCTATTTATTACCTCAGAAGTTTTTTTCTTCGCAGGATTTTTCTGAGCCTTTTACCACTCCAG
+CCTAGCCCCTACCCCCCAATTAGGAGGGCACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAA
+GTCCCACTCCTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCACCATAGTCTAA
+TAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTATTACAATTTTACTGGGTCTCTATTTTACCCT
+CCTACAAGCCTCAGAGTACTTCGAGTCTCCCTTCACCATTTCCGACGGCATCTACGGCTCAACATTTTTT
+GTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGCTCAACTTTCCTCACTATCTGCTTCATCCGCC
+AACTAATATTTCACTTTACATCCAAACATCACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGT
+AGATGTGGTTTGACTATTTCTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTAGTATAAATAGT
+ACCGTTAACTTCCAATTAACTAGTTTTGACAACATTCAAAAAAGAGTAATAAACTTCGCCTTAATTTTAA
+TAATCAACACCCTCCTAGCCTTACTACTAATAATTATTACATTTTGACTACCACAACTCAACGGCTACAT
+AGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCCCGCGTCCCTTTCTCCATAAAA
+TTCTTCTTAGTAGCTATTACCTTCTTATTATTTGATCTAGAAATTGCCCTCCTTTTACCCCTACCATGAG
+CCCTACAAACAACTAACCTGCCACTAATAGTTATGTCATCCCTCTTATTAATCATCATCCTAGCCCTAAG
+TCTGGCCTATGAGTGACTACAAAAAGGATTAGACTGAACCGAATTGGTATATAGTTTAAACAAAACGAAT
+GATTTCGACTCATTAAATTATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTAG
+CATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCATATCCTCCCTACTATGCCTAGA
+AGGAATAATACTATCGCTGTTCATTATAGCTACTCTCATAACCCTCAACACCCACTCCCTCTTAGCCAAT
+ATTGTGCCTATTGCCATACTAGTCTTTGCCGCCTGCGAAGCAGCGGTGGGCCTAGCCCTACTAGTCTCAA
+TCTCCAACACATATGGCCTAGACTACGTACATAACCTAAACCTACTCCAATGCTAAAACTAATCGTCCCA
+ACAATTATATTACTACCACTGACATGACTTTCCAAAAAACACATAATTTGAATCAACACAACCACCCACA
+GCCTAATTATTAGCATCATCCCTCTACTATTTTTTAACCAAATCAACAACAACCTATTTAGCTGTTCCCC
+AACCTTTTCCTCCGACCCCCTAACAACCCCCCTCCTAATACTAACTACCTGACTCCTACCCCTCACAATC
+ATGGCAAGCCAACGCCACTTATCCAGTGAACCACTATCACGAAAAAAACTCTACCTCTCTATACTAATCT
+CCCTACAAATCTCCTTAATTATAACATTCACAGCCACAGAACTAATCATATTTTATATCTTCTTCGAAAC
+CACACTTATCCCCACCTTGGCTATCATCACCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCACA
+TACTTCCTATTCTACACCCTAGTAGGCTCCCTTCCCCTACTCATCGCACTAATTTACACTCACAACACCC
+TAGGCTCACTAAACATTCTACTACTCACTCTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACTT
+AATATGACTAGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACTTATGACTCCCT
+AAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTACTTGCCGCAGTACTCTTAAAACTAGGCGGCT
+ATGGTATAATACGCCTCACACTCATTCTCAACCCCCTGACAAAACACATAGCCTACCCCTTCCTTGTACT
+ATCCCTATGAGGCATAATTATAACAAGCTCCATCTGCCTACGACAAACAGACCTAAAATCGCTCATTGCA
+TACTCTTCAATCAGCCACATAGCCCTCGTAGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCG
+GCGCAGTCATTCTCATAATCGCCCACGGGCTTACATCCTCATTACTATTCTGCCTAGCAAACTCAAACTA
+CGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGGACTTCAAACTCTACTCCCACTAATAGCTTTT
+TGATGACTTCTAGCAAGCCTCGCTAACCTCGCCTTACCCCCCACTATTAACCTACTGGGAGAACTCTCTG
+TGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCCTACTTACAGGACTCAACATACTAGTCACAGC
+CCTATACTCCCTCTACATATTTACCACAACACAATGGGGCTCACTCACCCACCACATTAACAACATAAAA
+CCCTCATTCACACGAGAAAACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCTATCCCTCAACC
+CCGACATCATTACCGGGTTTTCCTCTTGTAAATATAGTTTAACCAAAACATCAGATTGTGAATCTGACAA
+CAGAGGCTTACGACCCCTTATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCCCCATGTCTAAC
+AACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTAGGCCCCAAAAATTTTGGTGCA
+ACTCCAAATAAAAGTAATAACCATGCACACTACTATAACCACCCTAACCCTGACTTCCCTAATTCCCCCC
+ATCCTTACCACCCTCGTTAACCCTAACAAAAAAAACTCATACCCCCATTATGTAAAATCCATTGTCGCAT
+CCACCTTTATTATCAGTCTCTTCCCCACAACAATATTCATGTGCCTAGACCAAGAAGTTATTATCTCGAA
+CTGACACTGAGCCACAACCCAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAATA
+TTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCACTGTGATATATAAACTCAGACC
+CAAACATTAATCAGTTCTTCAAATATCTACTCATCTTCCTAATTACCATACTAATCTTAGTTACCGCTAA
+CAACCTATTCCAACTGTTCATCGGCTGAGAGGGCGTAGGAATTATATCCTTCTTGCTCATCAGTTGATGA
+TACGCCCGAGCAGATGCCAACACAGCAGCCATTCAAGCAATCCTATACAACCGTATCGGCGATATCGGTT
+TCATCCTCGCCTTAGCATGATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAAA
+CGCTAATCCAAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCAGGCAAATCAGCCCAATTAGGT
+CTCCACCCCTGACTCCCCTCAGCCATAGAAGGCCCCACCCCAGTCTCAGCCCTACTCCACTCAAGCACTA
+TAGTTGTAGCAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGAAAATAGCCCACTAATCCAAAC
+TCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGCAGCAGTCTGCGCCCTTACACAAAATGACATC
+AAAAAAATCGTAGCCTTCTCCACTTCAAGTCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAAC
+CACACCTAGCATTCCTGCACATCTGTACCCACGCCTTCTTCAAAGCCATACTATTTATGTGCTCCGGGTC
+CATCATCCACAACCTTAACAATGAACAAGATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCTC
+ACTTCAACCTCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGGTTTCTACTCCA
+AAGACCACATCATCGAAACCGCAAACATATCATACACAAACGCCTGAGCCCTATCTATTACTCTCATCGC
+TACCTCCCTGACAAGCGCCTATAGCACTCGAATAATTCTTCTCACCCTAACAGGTCAACCTCGCTTCCCC
+ACCCTTACTAACATTAACGAAAATAACCCCACCCTACTAAACCCCATTAAACGCCTGGCAGCCGGAAGCC
+TATTCGCAGGATTTCTCATTACTAACAACATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTA
+CCTAAAACTCACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCAACTACCTAACC
+AACAAACTTAAAATAAAATCCCCACTATGCACATTTTATTTCTCCAACATACTCGGATTCTACCCTAGCA
+TCACACACCGCACAATCCCCTATCTAGGCCTTCTTACGAGCCAAAACCTGCCCCTACTCCTCCTAGACCT
+AACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACAGCACCAAATCTCCACCTCCATCATCACCTCA
+ACCCAAAAAGGCATAATTAAACTTTACTTCCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAA
+TCACATAACCTATTCCCCCGAGCAATCTCAATTACAATATATACACCAACAAACAATGTTCAACCAGTAA
+CTACTACTAATCAACGCCCATAATCATACAAAGCCCCCGCACCAATAGGATCCTCCCGAATCAACCCTGA
+CCCCTCTCCTTCATAAATTATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCACCCCATCATAC
+TCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAACACTCACCAAGACCTCAACCC
+CTGACCCCCATGCCTCAGGATACTCCTCAATAGCCATCGCTGTAGTATATCCAAAGACAACCATCATTCC
+CCCTAAATAAATTAAAAAAACTATTAAACCCATATAACCTCCCCCAAAATTCAGAATAATAACACACCCG
+ACCACACCGCTAACAATCAATACTAAACCCCCATAAATAGGAGAAGGCTTAGAAGAAAACCCCACAAACC
+CCATTACTAAACCCACACTCAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGAC
+CAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATGACCCCAATACGCAAAACTAAC
+CCCCTAATAAAATTAATTAACCACTCATTCATCGACCTCCCCACCCCATCCAACATCTCCGCATGATGAA
+ACTTCGGCTCACTCCTTGGCGCCTGCCTGATCCTCCAAATCACCACAGGACTATTCCTAGCCATGCACTA
+CTCACCAGACGCCTCAACCGCCTTTTCATCAATCGCCCACATCACTCGAGACGTAAATTATGGCTGAATC
+ATCCGCTACCTTCACGCCAATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGCC
+TATATTACGGATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTATCCTCCTGCTTGCAACTATAGC
+AACAGCCTTCATAGGCTATGTCCTCCCGTGAGGCCAAATATCATTCTGAGGGGCCACAGTAATTACAAAC
+TTACTATCCGCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGAGGCTACTCAGTAGACA
+GTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCTTGCCCTTCATTATTGCAGCCCTAGCAACACT
+CCACCTCCTATTCTTGCACGAAACGGGATCAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAATC
+ACCTTCCACCCTTACTACACAATCAAAGACGCCCTCGGCTTACTTCTCTTCCTTCTCTCCTTAATGACAT
+TAACACTATTCTCACCAGACCTCCTAGGCGACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCCC
+TCCCCACATCAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCCCTAACAAACTA
+GGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTAGCAATAATCCCCATCCTCCATATATCCAAAC
+AACAAAGCATAATATTTCGCCCACTAAGCCAATCACTTTATTGACTCCTAGCCGCAGACCTCCTCATTCT
+AACCTGAATCGGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGACAAGTAGCATCCGTACTATAC
+TTCACAACAATCCTAATCCTAATACCAACTATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTC
+CTTGTAGTATAAACTAATACACCAGTCTTGTAAACCGGAGATGAAAACCTTTTTCCAAGGACAAATCAGA
+GAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAAGATTCTAATTTAAACTATTCTCTGTTCTTTC
+ATGGGGAAGCAGATTTGGGTACCACCCAAGTATTGACTCACCCATCAACAACCGCTATGTATTTCGTACA
+TTACTGCCAGCCACCATGAATATTGTACGGTACCATAAATACTTGACCACCTGTAGTACATAAAAACCCA
+ATCCACATCAAAACCCCCTCCCCATGCTTACAAGCAAGTACAGCAATCAACCCTCAACTATCACACATCA
+ACTGCAACTCCAAAGCCACCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTTAACAGTACATAG
+TACATAAAGCCATTTACCGTACATAGCACATTACAGTCAAATCCCTTCTCGTCCCCATGGATGACCCCCC
+TCAGATAGGGGTCCCTTGACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTGCTACTCTCCTCG
+CTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGACATCTGGTTCCTACTTCAGGGTC
+ATAAAGCCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATG
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/length_distribution.txt	Mon Dec 05 15:47:45 2022 +0000
@@ -0,0 +1,2 @@
+3.09819e-24	4.61802e-24	6.8724e-24	1.02109e-23	1.51471e-23	2.24335e-23	3.31719e-23	4.89721e-23	7.21827e-23	1.06224e-22	1.56069e-22	2.28937e-22	3.3529e-22	4.90265e-22	7.15724e-22	1.0432e-21	1.51807e-21	2.20558e-21	3.19933e-21	4.6334e-21	6.69956e-21	9.67159e-21	1.39397e-20	2.00594e-20	2.88194e-20	4.13387e-20	5.92018e-20	8.46483e-20	1.20839e-19	1.72226e-19	2.45075e-19	3.48179e-19	4.93869e-19	6.994e-19	9.88884e-19	1.39595e-18	1.96743e-18	2.76844e-18	3.88934e-18	5.45534e-18	7.63964e-18	1.06814e-17	1.49104e-17	2.07805e-17	2.89154e-17	4.01703e-17	5.5717e-17	7.7157e-17	1.06676e-16	1.47254e-16	2.02941e-16	2.7924e-16	3.83611e-16	5.2615e-16	7.205e-16	9.85061e-16	1.34461e-15	1.83247e-15	2.49334e-15	3.38713e-15	4.59396e-15	6.22082e-15	8.41034e-15	1.13523e-14	1.52989e-14	2.05846e-14	2.76522e-14	3.70869e-14	4.96613e-14	6.63927e-14	8.86192e-14	1.18097e-13	1.5713e-13	2.08729e-13	2.76828e-13	3.66559e-13	4.84599e-13	6.39627e-13	8.429e-13	1.109e-12	1.45677e-12	1.91054e-12	2.50165e-12	3.2704e-12	4.26856e-12	5.56247e-12	7.237e-12	9.40059e-12	1.21915e-11	1.57857e-11	2.04068e-11	2.63386e-11	3.39402e-11	4.36659e-11	5.60887e-11	7.19306e-11	9.20994e-11	1.17735e-10	1.50265e-10	1.91478e-10	2.43603e-10	3.09422e-10	3.92397e-10	4.96828e-10	6.28046e-10	7.9265e-10	9.98796e-10	1.25654e-09	1.57828e-09	1.97922e-09	2.47806e-09	3.09765e-09	3.86598e-09	4.81717e-09	5.99279e-09	7.4434e-09	9.23037e-09	1.1428e-08	1.41264e-08	1.74339e-08	2.14814e-08	2.64263e-08	3.24575e-08	3.98015e-08	4.87292e-08	5.9564e-08	7.26915e-08	8.85704e-08	1.07745e-07	1.30862e-07	1.58685e-07	1.92115e-07	2.32216e-07	2.80239e-07	3.37653e-07	4.06179e-07	4.87832e-07	5.84962e-07	7.0031e-07	8.37062e-07	9.9892e-07	1.19017e-06	1.41577e-06	1.68144e-06	1.99377e-06	2.36034e-06	2.78984e-06	3.29222e-06	3.87885e-06	4.56271e-06	5.35856e-06	6.28317e-06	7.35554e-06	8.59717e-06	1.00323e-05	1.16883e-05	1.35959e-05	1.57896e-05	1.83079e-05	2.11939e-05	2.44956e-05	2.82664e-05	3.25656e-05	3.74586e-05	4.3018e-05	4.93235e-05	5.64628e-05	6.45322e-05	7.36369e-05	8.38919e-05	9.54223e-05	0.000108364	0.000122864	0.000139082	0.000157188	0.000177368	0.000199819	0.000224752	0.000252392	0.000282977	0.000316762	0.000354014	0.000395015	0.000440059	0.000489456	0.000543527	0.000602608	0.000667042	0.000737185	0.000813403	0.000896065	0.000985551	0.00108224	0.00118652	0.00129876	0.00141935	0.00154865	0.00168704	0.00183485	0.00199242	0.00216007	0.00233808	0.00252671	0.0027262	0.00293674	0.00315848	0.00339153	0.00363595	0.00389176	0.00415891	0.00443729	0.00472674	0.00502702	0.00533784	0.0056588	0.00598948	0.00632935	0.00667781	0.0070342	0.00739776	0.00776767	0.00814304	0.00852291	0.00890624	0.00929193	0.00967883	0.0100657	0.0104513	0.0108344	0.0112135	0.0115874	0.0119546	0.0123137	0.0126633	0.013002	0.0133284	0.0136412	0.013939	0.0142206	0.0144846	0.01473	0.0149556	0.0151603	0.0153433	0.0155037	0.0156407	0.0157537	0.0158422	0.0159057	0.0159439	0.0159566	0.0159439	0.0159057	0.0158422	0.0157537	0.0156407	0.0155037	0.0153433	0.0151603	0.0149556	0.01473	0.0144846	0.0142206	0.013939	0.0136412	0.0133284	0.013002	0.0126633	0.0123137	0.0119546	0.0115874	0.0112135	0.0108344	0.0104513	0.0100657	0.00967883	0.00929193	0.00890624	0.00852291	0.00814304	0.00776767	0.00739776	0.0070342	0.00667781	0.00632935	0.00598948	0.0056588	0.00533784	0.00502702	0.00472674	0.00443729	0.00415891	0.00389176	0.00363595	0.00339153	0.00315848	0.00293674	0.0027262	0.00252671	0.00233808	0.00216007	0.00199242	0.00183485	0.00168704	0.00154865	0.00141935	0.00129876	0.00118652	0.00108224	0.000985551	0.000896065	0.000813403	0.000737185	0.000667042	0.000602608	0.000543527	0.000489456	0.000440059	0.000395015	0.000354014	0.000316762	0.000282977	0.000252392	0.000224752	0.000199819	0.000177368	0.000157188	0.000139082	0.000122864	0.000108364	9.54223e-05	8.38919e-05	7.36369e-05	6.45322e-05	5.64628e-05	4.93235e-05	4.3018e-05	3.74586e-05	3.25656e-05	2.82664e-05	2.44956e-05	2.11939e-05	1.83079e-05	1.57896e-05	1.35959e-05	1.16883e-05	1.00323e-05	8.59717e-06	7.35554e-06	6.28317e-06	5.35856e-06	4.56271e-06	3.87885e-06	3.29222e-06	2.78984e-06	2.36034e-06	1.99377e-06	1.68144e-06	1.41577e-06	1.19017e-06	9.9892e-07	8.37062e-07	7.0031e-07	5.84962e-07	4.87832e-07	4.06179e-07	3.37653e-07	2.80239e-07	2.32216e-07	1.92115e-07	1.58685e-07	1.30862e-07	1.07745e-07	8.85704e-08	7.26915e-08	5.9564e-08	4.87292e-08	3.98015e-08	3.24575e-08	2.64263e-08	2.14814e-08	1.74339e-08	1.41264e-08	1.1428e-08	9.23037e-09	7.4434e-09	5.99279e-09	4.81717e-09	3.86598e-09	3.09765e-09	2.47806e-09	1.97922e-09	1.57828e-09	1.25654e-09	9.98796e-10	7.9265e-10	6.28045e-10	4.96828e-10	3.92397e-10	3.09422e-10	2.43603e-10	1.91478e-10	1.50265e-10	1.17735e-10	9.20994e-11	7.19305e-11	5.60888e-11	4.36658e-11	3.39403e-11	2.63386e-11	2.04068e-11	1.57857e-11	1.21915e-11	9.40059e-12	7.23699e-12	5.56244e-12	4.26859e-12	3.27038e-12	2.50167e-12	1.91058e-12	1.45672e-12	1.109e-12	8.42881e-13	6.39599e-13	4.84612e-13	3.66596e-13	2.76779e-13	2.08722e-13	1.57208e-13	1.18017e-13	8.87068e-14	6.63913e-14	4.9627e-14	3.70814e-14	2.76446e-14	2.06501e-14	1.52101e-14	1.14353e-14	8.32667e-15	6.21725e-15	4.66294e-15	3.33067e-15	2.55351e-15	1.77636e-15	1.33227e-15	9.99201e-16	7.77156e-16	4.44089e-16	4.44089e-16	2.22045e-16	2.22045e-16	2.22045e-16	1.11022e-16	3.75e-11	1.11022e-16	3.75e-11	3.75e-11	1.11022e-16	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11	3.75e-11
+