[med-svn] [Git][med-team/mash][upstream] New upstream version 2.1

Sascha Steinbiss gitlab at salsa.debian.org
Thu Oct 11 15:58:03 BST 2018


Sascha Steinbiss pushed to branch upstream at Debian Med / mash


Commits:
89bf5d74 by Sascha Steinbiss at 2018-10-11T13:32:47Z
New upstream version 2.1
- - - - -


26 changed files:

- INSTALL.txt
- Makefile.in
- + README.md
- − data/refseq.msh
- doc/sphinx/conf.py
- doc/sphinx/index.rst
- doc/sphinx/tutorials.rst
- src/mash/CommandDistance.cpp
- src/mash/CommandScreen.cpp
- src/mash/CommandSketch.cpp
- + src/mash/CommandTriangle.cpp
- + src/mash/CommandTriangle.h
- src/mash/Sketch.cpp
- src/mash/Sketch.h
- src/mash/mash.cpp
- src/mash/sketchParameterSetup.cpp
- src/mash/version.h
- + test/genome1.fna
- + test/genome2.fna
- + test/genome3.fna
- + test/reads1.fastq
- + test/reads2.fastq
- + test/ref/genomes.dist
- + test/ref/genomes.json
- + test/ref/reads.json
- + test/ref/screen


Changes:

=====================================
INSTALL.txt
=====================================
@@ -23,6 +23,7 @@ Steps:
                [--with-boost=...]
    make
    [sudo] make install
+   [make test]
 
 
 Products:


=====================================
Makefile.in
=====================================
@@ -16,6 +16,7 @@ SOURCES=\
 	src/mash/CommandContain.cpp \
 	src/mash/CommandDistance.cpp \
 	src/mash/CommandScreen.cpp \
+	src/mash/CommandTriangle.cpp \
 	src/mash/CommandFind.cpp \
 	src/mash/CommandInfo.cpp \
 	src/mash/CommandPaste.cpp \
@@ -67,6 +68,12 @@ install : mash
 	cp `pwd`/src/mash/*.h @prefix@/include/mash/
 	cp `pwd`/src/mash/capnp/MinHash.capnp.h @prefix@/include/mash/capnp/
 
+.PHONY: uninstall
+uninstall:
+	rm -f @prefix@/bin/mash
+	rm -f @prefix@/lib/libmash.a
+	rm -rf @prefix@/include/mash
+
 clean :
 	-rm mash
 	-rm libmash.a
@@ -74,3 +81,26 @@ clean :
 	-rm src/mash/capnp/*.o
 	-rm src/mash/capnp/*.c++
 	-rm src/mash/capnp/*.h
+
+.PHONY: test
+test : testSketch testDist testScreen
+
+testSketch : mash test/genomes.msh test/reads.msh
+	./mash info -d test/genomes.msh > test/genomes.json
+	./mash info -d test/reads.msh > test/reads.json
+	diff test/genomes.json test/ref/genomes.json
+	diff test/reads.json test/ref/reads.json
+
+test/genomes.msh : mash
+	cd test ; ../mash sketch -o genomes.msh genome1.fna genome2.fna genome3.fna
+
+test/reads.msh : mash
+	cd test ; ../mash sketch -r -I reads reads1.fastq reads2.fastq -o reads.msh
+
+testDist : mash test/genomes.msh test/reads.msh
+	./mash dist test/genomes.msh test/reads.msh > test/genomes.dist
+	diff test/genomes.dist test/ref/genomes.dist
+
+testScreen : mash test/genomes.msh
+	cd test ; ../mash screen genomes.msh reads1.fastq reads2.fastq > screen
+	diff test/screen test/ref/screen


=====================================
README.md
=====================================
@@ -0,0 +1,6 @@
+Mash is normally distributed as a dependency-free binary for Linux or OSX (see
+https://github.com/marbl/Mash/releases). This source distribution is intended
+for other operating systems or for development. Mash requires c++11 to build,
+which is available in and GCC >= 4.8 and OSX >= 10.7.
+
+See http://mash.readthedocs.org for more information.


=====================================
data/refseq.msh deleted
=====================================
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3292c28efedf8a2144494b99bdb784d94b1d737d6f942f29a17daf73b7d61d3e
-size 97678488


=====================================
doc/sphinx/conf.py
=====================================
@@ -51,9 +51,9 @@ copyright = u'2015, Brian Ondov, Todd Treangen, Adam Phillippy'
 # built documents.
 #
 # The short X.Y version.
-version = '1.0'
+version = '2.0'
 # The full version, including alpha/beta/rc tags.
-release = '1.0'
+release = '2.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.


=====================================
doc/sphinx/index.rst
=====================================
@@ -26,6 +26,7 @@ Downloads
 =========
 
 * `Linux/OSX binaries and source <https://github.com/marbl/Mash/releases>`_
+* `RefSeq sketch database <https://gembox.cbcb.umd.edu/mash/refseq.genomes.k21s1000.msh>`_
 
 Documentation
 =============


=====================================
doc/sphinx/tutorials.rst
=====================================
@@ -59,34 +59,41 @@ reference (which there are two of in the sketch file):
 Querying read sets against an existing RefSeq sketch
 ----------------------------------------------------
 
-Download and gunzip the pre-sketched RefSeq archive (reads not provided here;
+Download the pre-sketched RefSeq archive (reads not provided here;
 10x-100x coverage of a single genome with any sequencing technology should
 work):
 
 .. download::
 
-`RefSeqSketches.msh.gz <http://gembox.cbcb.umd.edu/mash/RefSeqSketches.msh.gz>`_
+`refseq.genomes.k21.s1000.msh <https://gembox.cbcb.umd.edu/mash/refseq.genomes.k21s1000.msh>`_
+
+Plasmids also available:
+
+.. download::
+
+`refseq.genomes+plasmids.k21.s1000.msh <https://gembox.cbcb.umd.edu/mash/refseq.genomes%2Bplasmid.k21s1000.msh>`_
+`refseq.plasmids.k21.s1000.msh <https://gembox.cbcb.umd.edu/mash/refseq.plasmid.k21s1000.msh>`_
 
 Concatenate paired ends (this could also be piped to :code:`mash` to save space by
 specifying :code:`-` for standard input, zipped or unzipped):
 
 .. code::
 
- cat reads_1.fastq read_2.fastq > reads.fastq
+ cat reads_1.fastq reads_2.fastq > reads.fastq
  
 Sketch the reads, using :code:`-m 2` to improve results
 by ignoring single-copy k-mers, which are more likely to be erroneous:
 
 .. code::
 
-  mash sketch -m 2 -k 16 -s 400 reads.fastq
+  mash sketch -m 2 reads.fastq
 
 Run :code:`mash dist` with the RefSeq archive as the reference and the read
 sketch as the query:
 
 .. code::
 
-  mash dist RefSeqSketches.msh reads.fastq.msh > distances.tab
+  mash dist refseq.genomes.k21.s1000.msh reads.fastq.msh > distances.tab
 
 Sort the results to see the top hits and their p-values:
 
@@ -94,14 +101,62 @@ Sort the results to see the top hits and their p-values:
 
   sort -gk3 distances.tab | head
 
-Building a custom RefSeq database
----------------------------------
-
-To create the RefSeq Mash database, genomes were downloaded from NCBI
-(:code:`ftp.ncbi.nlm.nih.gov/refseq/release/complete`, fasta sequence and
-GenBank annotations for :code:`genomic`), and the
-`refseqCollate <https://github.com/ondovb/refseqCollate/releases>`_ utility was
-used to collate contigs/chromosomes into individual fasta files per genome.
-Groups of these files were sketched in parallel and then pasted together with
-:code:`mash paste`. This process could be repeated for more current or custom
-databases.
+Screening a read set for containment of RefSeq genomes
+------------------------------------------------------
+
+(new in `Mash v2.0 <https://github.com/marbl/Mash/releases>`_)
+
+If a read set potentially has multiple genomes, it can be "screened" against the
+database to estimate how well each genome is contained in the read set. We can
+use the `SRA Toolkit <https://www.ncbi.nlm.nih.gov/sra/docs/toolkitsoft/>`_ to
+download ERR024951:
+
+.. code::
+
+  fastq-dump ERR024951
+
+...and screen it against Refseq Genomes (link above), sorting the results:
+
+.. code::
+
+  mash screen refseq.genomes.k21s1000.msh ERR024951.fastq > screen.tab
+  sort -gr screen.tab | head
+
+We see the expected organism, *Salmonella enterica*, but also an apparent contaminant, *Klebsiella pneumoniae*. The fields are [identity, shared-hashes, median-multiplicity, p-value, query-ID, query-comment]:
+
+.. code::
+
+  0.99957	991/1000	26	0	GCF_000841985.1_ViralProj14228_genomic.fna.gz	NC_004313.1 Salmonella phage ST64B, complete genome
+  0.99957	991/1000	24	0	GCF_002054545.1_ASM205454v1_genomic.fna.gz	[57 seqs] NZ_MYON01000010.1 Salmonella enterica strain BCW_4905 NODE_10_length_152932_cov_1.77994, whole genome shotgun sequence [...]
+  0.999522	990/1000	102	0	GCF_900086185.1_12082_4_85_genomic.fna.gz	[51 seqs] NZ_FLIP01000001.1 Klebsiella pneumoniae strain k1037, whole genome shotgun sequence [...]
+  0.999329	986/1000	24	0	GCF_002055205.1_ASM205520v1_genomic.fna.gz	[72 seqs] NZ_MYOO01000010.1 Salmonella enterica strain BCW_4904 NODE_10_length_177558_cov_3.07217, whole genome shotgun sequence [...]
+  0.999329	986/1000	24	0	GCF_002054075.1_ASM205407v1_genomic.fna.gz	[88 seqs] NZ_MYNK01000010.1 Salmonella enterica strain BCW_4936 NODE_10_length_177385_cov_3.78874, whole genome shotgun sequence [...]
+  0.999329	986/1000	24	0	GCF_000474475.1_CFSAN001184_01.0_genomic.fna.gz	[45 seqs] NZ_AUQM01000001.1 Salmonella enterica subsp. enterica serovar Typhimurium str. CDC_2009K1158 isolate 2009K-1158 SEET1158_1, whole genome shotgun sequence [...]
+  0.999329	986/1000	24	0	GCF_000474355.1_CFSAN001186_01.0_genomic.fna.gz	[46 seqs] NZ_AUQN01000001.1 Salmonella enterica subsp. enterica serovar Typhimurium str. CDC_2009K1283 isolate 2009K1283 (Typo) SEET1283_1, whole genome shotgun sequence [...]
+  0.999329	986/1000	24	0	GCF_000213635.1_ASM21363v1_genomic.fna.gz	[2 seqs] NC_016863.1 Salmonella enterica subsp. enterica serovar Typhimurium str. UK-1, complete genome [...]
+  0.999281	985/1000	24	0	GCF_001271965.1_Salmonella_enterica_CVM_N43825_v1.0_genomic.fna.gz	[67 seqs] NZ_LIMN01000001.1 Salmonella enterica subsp. enterica serovar Typhimurium strain CVM N43825 N43825_contig_1, whole genome shotgun sequence [...]
+  0.999281	985/1000	24	0	GCF_000974215.1_SALF-297-3.id2_v1.0_genomic.fna.gz	[90 seqs] NZ_LAPO01000001.1 Salmonella enterica subsp. enterica serovar Typhimurium strain SALF-297-3 NODE_1, whole genome shotgun sequence [...]
+
+Note, however, that multiple strains of *Salmonella enterica* have good identity. This is because they are each contained well when considered independently. For this reason :code:`mash screen` is not a true classifier. However, we can remove much of the redundancy
+for interpreting the results using the winner-take-all strategy (:code:`-w`). And while we're at it, let's throw some more cores at
+the task to speed it up (:code:`-p 4`):
+
+.. code::
+
+  mash screen -w -p 4 refseq.genomes.k21s1000.msh ERR024951.fastq > screen.tab
+  sort -gr screen.tab | head
+
+The output is now much cleaner, with just the two whole genomes, plus phages (a lot of other hits to viruses and assembly contigs would appear further down):
+
+.. code::
+
+  0.99957	991/1000	24	0	GCF_002054545.1_ASM205454v1_genomic.fna.gz	[57 seqs] NZ_MYON01000010.1 Salmonella enterica strain BCW_4905 NODE_10_length_152932_cov_1.77994, whole genome shotgun sequence [...]
+  0.99899	979/1000	26	0	GCF_000841985.1_ViralProj14228_genomic.fna.gz	NC_004313.1 Salmonella phage ST64B, complete genome
+  0.998844	976/1000	101	0	GCF_900086185.1_12082_4_85_genomic.fna.gz	[51 seqs] NZ_FLIP01000001.1 Klebsiella pneumoniae strain k1037, whole genome shotgun sequence [...]
+  0.923964	190/1000	40	0	GCF_000900935.1_ViralProj181984_genomic.fna.gz	NC_019545.1 Salmonella phage SPN3UB, complete genome
+  0.900615	111/1000	100	0	GCF_001876675.1_ASM187667v1_genomic.fna.gz	[137 seqs] NZ_MOXK01000132.1 Klebsiella pneumoniae strain AWD5 Contig_(1-18003), whole genome shotgun sequence [...]
+  0.887722	82/1000	31	3.16322e-233	GCF_001470135.1_ViralProj306294_genomic.fna.gz	NC_028699.1 Salmonella phage SEN34, complete genome
+  0.873204	58/1000	22	1.8212e-156	GCF_000913735.1_ViralProj227000_genomic.fna.gz	NC_022749.1 Shigella phage SfIV, complete genome
+  0.868675	52/1000	57	6.26251e-138	GCF_001744215.1_ViralProj344312_genomic.fna.gz	NC_031129.1 Salmonella phage SJ46, complete genome
+  0.862715	45/1000	1	1.05185e-116	GCF_001882095.1_ViralProj353688_genomic.fna.gz	NC_031940.1 Salmonella phage 118970_sal3, complete genome
+  0.856856	39/1000	21	6.70643e-99	GCF_000841165.1_ViralProj14230_genomic.fna.gz	NC_004348.1 Enterobacteria phage ST64T, complete genome


=====================================
src/mash/CommandDistance.cpp
=====================================
@@ -383,9 +383,14 @@ void compareSketches(CommandDistance::CompareOutput::PairOutput * output, const
     {
         //distance = log(double(common + 1) / (denom + 1)) / log(1. / (denom + 1));
         distance = -log(2 * jaccard / (1. + jaccard)) / kmerSize;
+        
+        if ( distance > 1 )
+        {
+        	distance = 1;
+        }
     }
     
-    if ( distance > maxDistance )
+    if ( maxDistance >= 0 && distance > maxDistance )
     {
         return;
     }
@@ -395,7 +400,7 @@ void compareSketches(CommandDistance::CompareOutput::PairOutput * output, const
     output->distance = distance;
     output->pValue = pValue(common, refRef.length, refQry.length, kmerSpace, denom);
     
-    if ( output->pValue > maxPValue )
+    if ( maxPValue >= 0 && output->pValue > maxPValue )
     {
         return;
     }


=====================================
src/mash/CommandScreen.cpp
=====================================
@@ -175,6 +175,12 @@ int CommandScreen::run() const
 		else
 		{
 			fps[f - 1] = gzopen(arguments[f].c_str(), "r");
+			
+			if ( fps[f - 1] == 0 )
+			{
+				cerr << "ERROR: could not open " << arguments[f] << endl;
+				exit(1);
+			}
 		}
 		
 		kseqs.push_back(kseq_init(fps[f - 1]));
@@ -470,7 +476,6 @@ double estimateIdentity(uint64_t common, uint64_t denom, int kmerSize, double km
 	}
 	else
 	{
-		//distance = log(double(common + 1) / (denom + 1)) / log(1. / (denom + 1));
 		identity = pow(jaccard, 1. / kmerSize);
 	}
 	


=====================================
src/mash/CommandSketch.cpp
=====================================
@@ -27,6 +27,8 @@ CommandSketch::CommandSketch()
     useOption("help");
     addOption("list", Option(Option::Boolean, "l", "Input", "List input. Lines in each <input> specify paths to sequence files, one per line.", ""));
     addOption("prefix", Option(Option::File, "o", "Output", "Output prefix (first input file used if unspecified). The suffix '.msh' will be appended.", ""));
+    addOption("id", Option(Option::File, "I", "Sketch", "ID field for sketch of reads (instead of first sequence ID).", ""));
+    addOption("comment", Option(Option::File, "C", "Sketch", "Comment for a sketch of reads (instead of first sequence comment.", ""));
     useSketchOptions();
 }
 
@@ -79,7 +81,32 @@ int CommandSketch::run() const
         }
     }
     
-    sketch.initFromFiles(files, parameters, verbosity);
+    if ( getOption("id").active || getOption("comment").active )
+    {
+    	if ( files.size() > 1 && ! parameters.reads )
+    	{
+    		cerr << "WARNING: -I and -C will only apply to first sketch" << endl;
+    	}
+    }
+    
+    if ( parameters.reads )
+    {
+    	sketch.initFromReads(files, parameters);
+    }
+    else
+    {
+	    sketch.initFromFiles(files, parameters, verbosity);
+	}
+	
+	if ( getOption("id").active )
+	{
+		sketch.setReferenceName(0, getOption("id").argument);
+	}
+    
+	if ( getOption("comment").active )
+	{
+		sketch.setReferenceComment(0, getOption("comment").argument);
+	}
     
     double lengthThreshold = (parameters.warning * sketch.getKmerSpace()) / (1. - parameters.warning);
     


=====================================
src/mash/CommandTriangle.cpp
=====================================
@@ -0,0 +1,179 @@
+// Copyright © 2015, Battelle National Biodefense Institute (BNBI);
+// all rights reserved. Authored by: Brian Ondov, Todd Treangen,
+// Sergey Koren, and Adam Phillippy
+//
+// See the LICENSE.txt file included with this software for license information.
+
+#include "CommandDistance.h"
+#include "CommandTriangle.h"
+#include "Sketch.h"
+#include <iostream>
+#include <zlib.h>
+#include "ThreadPool.h"
+#include "sketchParameterSetup.h"
+#include <math.h>
+
+#ifdef USE_BOOST
+    #include <boost/math/distributions/binomial.hpp>
+    using namespace::boost::math;
+#else
+    #include <gsl/gsl_cdf.h>
+#endif
+
+using namespace::std;
+
+namespace mash {
+
+CommandTriangle::CommandTriangle()
+: Command()
+{
+    name = "triangle";
+    summary = "Estimate a lower-triangular distance matrix.";
+    description = "Estimate the distance of each input sequence to every other input sequence. Outputs a lower-triangular distance matrix in relaxed Phylip format. The input sequences can be fasta or fastq, gzipped or not, or Mash sketch files (.msh) with matching k-mer sizes. Input files can also be files of file names (see -l). If more than one input file is provided, whole files are compared by default (see -i).";
+    argumentString = "<seq1> [<seq2>] ...";
+    
+    useOption("help");
+    addOption("list", Option(Option::Boolean, "l", "Input", "List input. Lines in each <query> specify paths to sequence files, one per line. The reference file is not affected.", ""));
+    addOption("comment", Option(Option::Boolean, "C", "Output", "Use comment fields for sequence names instead of IDs.", ""));
+    //addOption("log", Option(Option::Boolean, "L", "Output", "Log scale distances and divide by k-mer size to provide a better analog to phylogenetic distance. The special case of zero shared min-hashes will result in a distance of 1.", ""));
+    useSketchOptions();
+}
+
+int CommandTriangle::run() const
+{
+    if ( arguments.size() < 1 || options.at("help").active )
+    {
+        print();
+        return 0;
+    }
+    
+    int threads = options.at("threads").getArgumentAsNumber();
+    bool list = options.at("list").active;
+    //bool log = options.at("log").active;
+    double pValueMax = 0;
+    bool comment = options.at("comment").active;
+    
+    Sketch::Parameters parameters;
+    
+    if ( sketchParameterSetup(parameters, *(Command *)this) )
+    {
+    	return 1;
+    }
+    
+    if ( arguments.size() == 1 )
+    {
+    	parameters.concatenated = false;
+    }
+    
+    Sketch sketch;
+    
+    uint64_t lengthMax;
+    double randomChance;
+    int kMin;
+    string lengthMaxName;
+    int warningCount = 0;
+    
+    vector<string> queryFiles;
+    
+    for ( int i = 0; i < arguments.size(); i++ )
+    {
+        if ( list )
+        {
+            splitFile(arguments[i], queryFiles);
+        }
+        else
+        {
+            queryFiles.push_back(arguments[i]);
+        }
+    }
+    
+    sketch.initFromFiles(queryFiles, parameters);
+    
+    double lengthThreshold = (parameters.warning * sketch.getKmerSpace()) / (1. - parameters.warning);
+    
+	for ( uint64_t i = 0; i < sketch.getReferenceCount(); i++ )
+	{
+		uint64_t length = sketch.getReference(i).length;
+		
+		if ( length > lengthThreshold )
+		{
+			if ( warningCount == 0 || length > lengthMax )
+			{
+				lengthMax = length;
+				lengthMaxName = sketch.getReference(i).name;
+				randomChance = sketch.getRandomKmerChance(i);
+				kMin = sketch.getMinKmerSize(i);
+			}
+		
+			warningCount++;
+		}
+	}
+    
+    cout << '\t' << sketch.getReferenceCount() << endl;
+    cout << (comment ? sketch.getReference(0).comment : sketch.getReference(0).name) << endl;
+    
+    ThreadPool<TriangleInput, TriangleOutput> threadPool(compare, threads);
+    
+    for ( uint64_t i = 1; i < sketch.getReferenceCount(); i++ )
+    {
+        threadPool.runWhenThreadAvailable(new TriangleInput(sketch, i, parameters));
+        
+        while ( threadPool.outputAvailable() )
+        {
+            writeOutput(threadPool.popOutputWhenAvailable(), comment, pValueMax);
+        }
+    }
+    
+    while ( threadPool.running() )
+    {
+        writeOutput(threadPool.popOutputWhenAvailable(), comment, pValueMax);
+    }
+    
+    cerr << "Max p-value: " << pValueMax << endl;
+    
+    if ( warningCount > 0 && ! parameters.reads )
+    {
+    	warnKmerSize(parameters, *this, lengthMax, lengthMaxName, randomChance, kMin, warningCount);
+    }
+    
+    return 0;
+}
+
+void CommandTriangle::writeOutput(TriangleOutput * output, bool comment, double & pValueMax) const
+{
+	const Sketch & sketch = output->sketch;
+	const Sketch::Reference & ref = sketch.getReference(output->index);
+	
+	cout << (comment ? ref.comment : ref.name);
+	
+    for ( uint64_t i = 0; i < output->index; i++ )
+    {
+        const CommandDistance::CompareOutput::PairOutput * pair = &output->pairs[i];
+	    cout << '\t' << pair->distance;
+	    if ( pair->pValue > pValueMax )
+	    {
+	    	pValueMax = pair->pValue;
+	    }
+    }
+	cout << endl;
+    
+    delete output;
+}
+
+CommandTriangle::TriangleOutput * compare(CommandTriangle::TriangleInput * input)
+{
+    const Sketch & sketch = input->sketch;
+    
+    CommandTriangle::TriangleOutput * output = new CommandTriangle::TriangleOutput(input->sketch, input->index);
+    
+    uint64_t sketchSize = sketch.getMinHashesPerWindow();
+    
+    for ( uint64_t i = 0; i < input->index; i++ )
+    {
+    	compareSketches(&output->pairs[i], sketch.getReference(input->index), sketch.getReference(i), sketchSize, sketch.getKmerSize(), sketch.getKmerSpace(), -1., -1.);
+    }
+    
+    return output;
+}
+
+} // namespace mash


=====================================
src/mash/CommandTriangle.h
=====================================
@@ -0,0 +1,71 @@
+// Copyright © 2015, Battelle National Biodefense Institute (BNBI);
+// all rights reserved. Authored by: Brian Ondov, Todd Treangen,
+// Sergey Koren, and Adam Phillippy
+//
+// See the LICENSE.txt file included with this software for license information.
+
+#ifndef INCLUDED_CommandTriangle
+#define INCLUDED_CommandTriangle
+
+#include "Command.h"
+#include "CommandDistance.h"
+#include "Sketch.h"
+
+namespace mash {
+
+class CommandTriangle : public Command
+{
+public:
+    
+    struct TriangleInput
+    {
+        TriangleInput(const Sketch & sketchNew, uint64_t indexNew, const Sketch::Parameters & parametersNew)
+            :
+            sketch(sketchNew),
+            index(indexNew),
+            parameters(parametersNew)
+            {}
+        
+        const Sketch & sketch;
+        uint64_t index;
+        const Sketch::Parameters & parameters;
+    };
+    
+    struct TriangleOutput
+    {
+        TriangleOutput(const Sketch & sketchNew, uint64_t indexNew)
+            :
+            sketch(sketchNew),
+            index(indexNew)
+        {
+            pairs = new CommandDistance::CompareOutput::PairOutput[index];
+        }
+        
+        ~TriangleOutput()
+        {
+            delete [] pairs;
+        }
+        
+        const Sketch & sketch;
+        uint64_t index;
+        
+        CommandDistance::CompareOutput::PairOutput * pairs;
+    };
+    
+    CommandTriangle();
+    
+    int run() const; // override
+    
+private:
+    
+    double pValueMax;
+    bool comment;
+    
+    void writeOutput(TriangleOutput * output, bool comment, double & pValueMax) const;
+};
+
+CommandTriangle::TriangleOutput * compare(CommandTriangle::TriangleInput * input);
+
+} // namespace mash
+
+#endif


=====================================
src/mash/Sketch.cpp
=====================================
@@ -23,6 +23,8 @@
 #include <capnp/serialize.h>
 #include <sys/mman.h>
 #include <math.h>
+#include <list>
+#include <string.h>
 
 #define SET_BINARY_MODE(file)
 #define CHUNK 16384
@@ -91,6 +93,15 @@ uint64_t Sketch::getReferenceIndex(string id) const
     }
 }
 
+void Sketch::initFromReads(const vector<string> & files, const Parameters & parametersNew)
+{
+    parameters = parametersNew;
+    
+	useThreadOutput(sketchFile(new SketchInput(files, 0, 0, "", "", parameters)));
+	
+    createIndex();
+}
+
 int Sketch::initFromFiles(const vector<string> & files, const Parameters & parametersNew, int verbosity, bool enforceParameters, bool contain)
 {
     parameters = parametersNew;
@@ -155,9 +166,11 @@ int Sketch::initFromFiles(const vector<string> & files, const Parameters & param
             
             // init fully
             //
-			threadPool.runWhenThreadAvailable(new SketchInput(files[i], 0, 0, "", "", parameters), loadCapnp);
+            vector<string> file;
+            file.push_back(files[i]);
+			threadPool.runWhenThreadAvailable(new SketchInput(file, 0, 0, "", "", parameters), loadCapnp);
         }
-        else      
+        else
 		{
 			FILE * inStream;
 		
@@ -192,8 +205,10 @@ int Sketch::initFromFiles(const vector<string> & files, const Parameters & param
 				{
 					fclose(inStream);
 				}
-			
-				threadPool.runWhenThreadAvailable(new SketchInput(files[i], 0, 0, "", "", parameters), sketchFile);
+				
+				vector<string> file;
+				file.push_back(files[i]);
+				threadPool.runWhenThreadAvailable(new SketchInput(file, 0, 0, "", "", parameters), sketchFile);
 			}
 			else
 			{
@@ -257,6 +272,14 @@ uint64_t Sketch::initParametersFromCapnp(const char * file)
     
     void * data = mmap(NULL, fileInfo.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
     
+    if (data == MAP_FAILED)
+    {
+        uint64_t fileSize = fileInfo.st_size;
+        std::cerr << "Error: could not memory-map file " << file << " of size " << fileSize;
+        std::cerr << std::endl;
+        exit(1);
+    }
+
     capnp::ReaderOptions readerOptions;
     
     readerOptions.traversalLimitInWords = 1000000000000;
@@ -327,7 +350,7 @@ bool Sketch::sketchFileBySequence(FILE * file, ThreadPool<Sketch::SketchInput, S
 		//
 		memcpy(seqCopy, seq->seq.s, l);
 		
-		threadPool->runWhenThreadAvailable(new SketchInput("", seqCopy, l, string(seq->name.s, seq->name.l), string(seq->comment.s, seq->comment.l), parameters), sketchSequence);
+		threadPool->runWhenThreadAvailable(new SketchInput(vector<string>(), seqCopy, l, string(seq->name.s, seq->name.l), string(seq->comment.s, seq->comment.l), parameters), sketchSequence);
 		
 		while ( threadPool->outputAvailable() )
 		{
@@ -570,10 +593,12 @@ void addMinHashes(MinHashHeap & minHashHeap, char * seq, uint64_t length, const
             if ( debug ) cout << endl;
         }
         
-        const char * kmer = useRevComp ? seqRev + length - i - kmerSize : seq + i;
+        const char *kmer_fwd = seq + i;
+        const char *kmer_rev = seqRev + length - i - kmerSize;
+        const char * kmer = memcmp(kmer_fwd, kmer_rev, kmerSize) <= 0 ? kmer_fwd : kmer_rev;
         bool filter = false;
         
-        hash_u hash = getHash(useRevComp ? seqRev + length - i - kmerSize : seq + i, kmerSize, parameters.seed, parameters.use64);
+        hash_u hash = getHash(kmer, kmerSize, parameters.seed, parameters.use64);
         
         if ( debug ) cout << endl;
         
@@ -910,7 +935,7 @@ bool hasSuffix(string const & whole, string const & suffix)
 
 Sketch::SketchOutput * loadCapnp(Sketch::SketchInput * input)
 {
-	const char * file = input->fileName.c_str();
+	const char * file = input->fileNames[0].c_str();
     int fd = open(file, O_RDONLY);
     
     struct stat fileInfo;
@@ -1129,19 +1154,6 @@ void setMinHashesForReference(Sketch::Reference & reference, const MinHashHeap &
 
 Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
 {
-	gzFile fp;
-	
-	if ( input->fileName == "-" )
-	{
-		fp = gzdopen(fileno(stdin), "r");
-	}
-	else
-	{
-		fp = gzopen(input->fileName.c_str(), "r");
-	}
-	
-	kseq_t *seq = kseq_init(fp);
-	
 	const Sketch::Parameters & parameters = input->parameters;
 	
 	Sketch::SketchOutput * output = new Sketch::SketchOutput();
@@ -1149,11 +1161,6 @@ Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
 	output->references.resize(1);
 	Sketch::Reference & reference = output->references[0];
 	
-	if ( input->fileName != "-" )
-	{
-		reference.name = input->fileName;
-	}
-	
     MinHashHeap minHashHeap(parameters.use64, parameters.minHashesPerWindow, parameters.reads ? parameters.minCov : 1, parameters.memoryBound);
 
 	reference.length = 0;
@@ -1163,16 +1170,87 @@ Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
     int count = 0;
 	bool skipped = false;
 	
-	while ((l = kseq_read(seq)) >= 0)
+	int fileCount = input->fileNames.size();
+	gzFile fps[fileCount];
+	list<kseq_t *> kseqs;
+	//
+	for ( int f = 0; f < fileCount; f++ )
 	{
+		if ( input->fileNames[f] == "-" )
+		{
+			if ( f > 1 )
+			{
+				cerr << "ERROR: '-' for stdin must be first input" << endl;
+				exit(1);
+			}
+			
+			fps[f] = gzdopen(fileno(stdin), "r");
+		}
+		else
+		{
+			if ( reference.name == "" && input->fileNames[f] != "-" )
+			{
+				reference.name = input->fileNames[f];
+			}
+			
+			fps[f] = gzopen(input->fileNames[f].c_str(), "r");
+			
+			if ( fps[f] == 0 )
+			{
+				cerr << "ERROR: could not open " << input->fileNames[f] << endl;
+				exit(1);
+			}
+		}
+		
+		kseqs.push_back(kseq_init(fps[f]));
+	}
+	
+	list<kseq_t *>::iterator it = kseqs.begin();
+	
+	while ( kseqs.begin() != kseqs.end() )
+	{
+		l = kseq_read(*it);
+		
+		if ( l < -1 ) // error
+		{
+			break;
+		}
+		
+		if ( l == -1 ) // eof
+		{
+			kseq_destroy(*it);
+			it = kseqs.erase(it);
+			if ( it == kseqs.end() )
+			{
+				it = kseqs.begin();
+			}
+			continue;
+		}
+		
 		if ( l < parameters.kmerSize )
 		{
 			skipped = true;
 			continue;
 		}
 		
+		if ( count == 0 )
+		{
+			if ( input->fileNames[0] == "-" )
+			{
+				reference.name = (*it)->name.s;
+				reference.comment = (*it)->comment.s ? (*it)->comment.s : "";
+			}
+			else
+			{
+				reference.comment = (*it)->name.s;
+				reference.comment.append(" ");
+				reference.comment.append((*it)->comment.s ? (*it)->comment.s : "");
+			}
+		}
+		
 		count++;
 		
+		
 		//if ( verbosity > 0 && parameters.windowed ) cout << '>' << seq->name.s << " (" << l << "nt)" << endl << endl;
 		//if (seq->comment.l) printf("comment: %s\n", seq->comment.s);
 		//printf("seq: %s\n", seq->seq.s);
@@ -1181,20 +1259,22 @@ Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
 		if ( ! parameters.reads )
 		{
 			reference.length += l;
-			
-			if ( input->fileName == "-" && reference.name == "" )
-			{
-				reference.name = seq->name.s;
-			}
 		}
 		
-		addMinHashes(minHashHeap, seq->seq.s, l, parameters);
+		addMinHashes(minHashHeap, (*it)->seq.s, l, parameters);
 		
 		if ( parameters.reads && parameters.targetCov > 0 && minHashHeap.estimateMultiplicity() >= parameters.targetCov )
 		{
 			l = -1; // success code
 			break;
 		}
+		
+		it++;
+		
+		if ( it == kseqs.end() )
+		{
+			it = kseqs.begin();
+		}
 	}
 	
 	if ( parameters.reads )
@@ -1209,9 +1289,19 @@ Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
 		}
 	}
 	
+	if ( count > 1 )
+	{
+		reference.comment.insert(0, " seqs] ");
+		reference.comment.insert(0, to_string(count));
+		reference.comment.insert(0, "[");
+		reference.comment.append(" [...]");
+		//reference.comment.append(to_string(count - 1));
+		//reference.comment.append(" more]");
+	}
+	
 	if (  l != -1 )
 	{
-		cerr << "\nERROR: reading " << input->fileName << "." << endl;
+		cerr << "\nERROR: reading " << (input->fileNames.size() > 0 ? "input files" : input->fileNames[0]) << "." << endl;
 		exit(1);
 	}
 	
@@ -1219,11 +1309,11 @@ Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
 	{
 		if ( skipped )
 		{
-			cerr << "\nWARNING: All fasta records in " << input->fileName << "were shorter than the k-mer size (" << parameters.kmerSize << ")." << endl;
+			cerr << "\nWARNING: All fasta records in " << (input->fileNames.size() > 0 ? "input files" : input->fileNames[0]) << " were shorter than the k-mer size (" << parameters.kmerSize << ")." << endl;
 		}
 		else
 		{
-			cerr << "\nERROR: Did not find fasta records in \"" << input->fileName << "\"." << endl;
+			cerr << "\nERROR: Did not find fasta records in \"" << (input->fileNames.size() > 0 ? "input files" : input->fileNames[0]) << "\"." << endl;
 		}
 		
 		exit(1);
@@ -1245,8 +1335,10 @@ Sketch::SketchOutput * sketchFile(Sketch::SketchInput * input)
 	    }
     }
 	
-	kseq_destroy(seq);
-	gzclose(fp);
+	for ( int i = 0; i < fileCount; i++ )
+	{
+		gzclose(fps[i]);
+	}
 	
 	return output;
 }


=====================================
src/mash/Sketch.h
=====================================
@@ -141,9 +141,9 @@ public:
     
     struct SketchInput
     {
-    	SketchInput(std::string fileNameNew, char * seqNew, uint64_t lengthNew, const std::string & nameNew, const std::string & commentNew, const Sketch::Parameters & parametersNew)
+    	SketchInput(std::vector<std::string> fileNamesNew, char * seqNew, uint64_t lengthNew, const std::string & nameNew, const std::string & commentNew, const Sketch::Parameters & parametersNew)
     	:
-    	fileName(fileNameNew),
+    	fileNames(fileNamesNew),
     	seq(seqNew),
     	length(lengthNew),
     	name(nameNew),
@@ -159,7 +159,7 @@ public:
 	    	}
     	}
     	
-    	std::string fileName;
+    	std::vector<std::string> fileNames;
     	
     	char * seq;
     	
@@ -200,7 +200,10 @@ public:
     bool hasHashCounts() const {return references.size() > 0 && references.at(0).counts.size() > 0;}
     bool hasLociByHash(hash_t hash) const {return lociByHash.count(hash);}
     int initFromFiles(const std::vector<std::string> & files, const Parameters & parametersNew, int verbosity = 0, bool enforceParameters = false, bool contain = false);
+    void initFromReads(const std::vector<std::string> & files, const Parameters & parametersNew);
     uint64_t initParametersFromCapnp(const char * file);
+    void setReferenceName(int i, const std::string name) {references[i].name = name;}
+    void setReferenceComment(int i, const std::string comment) {references[i].comment = comment;}
 	bool sketchFileBySequence(FILE * file, ThreadPool<Sketch::SketchInput, Sketch::SketchOutput> * threadPool);
 	void useThreadOutput(SketchOutput * output);
     void warnKmerSize(uint64_t lengthMax, const std::string & lengthMaxName, double randomChance, int kMin, int warningCount) const;


=====================================
src/mash/mash.cpp
=====================================
@@ -10,6 +10,7 @@
 #include "CommandFind.h"
 #include "CommandDistance.h"
 #include "CommandScreen.h"
+#include "CommandTriangle.h"
 #include "CommandContain.h"
 #include "CommandInfo.h"
 #include "CommandPaste.h"
@@ -22,6 +23,7 @@ int main(int argc, const char ** argv)
     //commandList.addCommand(new CommandFind());
     commandList.addCommand(new mash::CommandDistance());
     commandList.addCommand(new mash::CommandScreen());
+    commandList.addCommand(new mash::CommandTriangle());
 #ifdef COMMAND_WITHIN
     commandList.addCommand(new mash::CommandContain());
 #endif


=====================================
src/mash/sketchParameterSetup.cpp
=====================================
@@ -59,9 +59,15 @@ int sketchParameterSetup(Sketch::Parameters & parameters, const Command & comman
     	parameters.genomeSize = command.getOption("genome").getArgumentAsNumber();
     }
     
+    if ( parameters.reads && command.getOption("threads").active )
+    {
+    	cerr << "ERROR: The option " << command.getOption("threads").identifier << " cannot be used with " << command.getOption("reads").identifier << "." << endl;
+    	return 1;
+    }
+    
     if ( parameters.reads && ! parameters.concatenated )
     {
-        cerr << "ERROR: The option " << command.getOption("individual").identifier << " cannot be used with " << command.getOption("unique").identifier << "." << endl;
+        cerr << "ERROR: The option " << command.getOption("individual").identifier << " cannot be used with " << command.getOption("reads").identifier << "." << endl;
         return 1;
     }
     


=====================================
src/mash/version.h
=====================================
@@ -4,4 +4,4 @@
 //
 // See the LICENSE.txt file included with this software for license information.
 
-static const char * version = "2.0";
+static const char * version = "2.1";


=====================================
test/genome1.fna
=====================================
The diff for this file was not included because it is too large.

=====================================
test/genome2.fna
=====================================
The diff for this file was not included because it is too large.

=====================================
test/genome3.fna
=====================================
The diff for this file was not included because it is too large.

=====================================
test/reads1.fastq
=====================================
The diff for this file was not included because it is too large.

=====================================
test/reads2.fastq
=====================================
The diff for this file was not included because it is too large.

=====================================
test/ref/genomes.dist
=====================================
@@ -0,0 +1,3 @@
+genome1.fna	reads	0.12101	4.48626e-214	41/1000
+genome2.fna	reads	0.12827	2.61074e-180	35/1000
+genome3.fna	reads	0.12101	4.45454e-214	41/1000


=====================================
test/ref/genomes.json
=====================================
@@ -0,0 +1,3037 @@
+{
+	"kmer" : 21,
+	"alphabet" : "ACGT",
+	"preserveCase" : false,
+	"canonical" : true,
+	"sketchSize" : 1000,
+	"hashType" : "MurmurHash3_x64_128",
+	"hashBits" : 64,
+	"hashSeed" : 42,
+ 	"sketches" :
+	[
+		{
+			"name" : "genome1.fna",
+			"length" : 4639675,
+			"comment" : "gi|49175990|ref|NC_000913.2| Escherichia coli str. K-12 substr. MG1655, complete genome",
+			"hashes" :
+			[
+				3703694776023,
+				4374531858158,
+				5345587754044,
+				17551373616191,
+				21150285087017,
+				24997698352584,
+				25771393241063,
+				27141746342066,
+				27362219888026,
+				27571760239933,
+				32603191963564,
+				36460262049084,
+				40135001466946,
+				54267487195332,
+				54928807149369,
+				65617729843018,
+				68792473092968,
+				71889932481702,
+				72656062656272,
+				76535402502726,
+				77069580434463,
+				77910711329991,
+				79103686168667,
+				86205975593482,
+				89217825112117,
+				90466295445917,
+				91491949740885,
+				92718753643175,
+				97239968037938,
+				98055163335582,
+				100178539101135,
+				102505731352189,
+				102565214680028,
+				104177745548946,
+				106776035873039,
+				111250015466157,
+				112288126498296,
+				112565798999620,
+				113269032034961,
+				113769038976489,
+				116289689660513,
+				116589162149174,
+				116925212033615,
+				117933296961001,
+				126141660684959,
+				135411200181186,
+				143345725674503,
+				148554695608225,
+				159311917533494,
+				165792636480134,
+				167043047663236,
+				167894249090983,
+				169624182697529,
+				175896512464017,
+				185135589226004,
+				191598411457504,
+				195539820147899,
+				204848266864272,
+				207114001673048,
+				219127232708164,
+				220404521261480,
+				231711600020668,
+				239945629602519,
+				248202950098135,
+				249343933607083,
+				257814287504831,
+				259088076671028,
+				262297732220758,
+				263511612897560,
+				265455171421180,
+				266747475753425,
+				268359922841358,
+				268748182387402,
+				269557356063693,
+				273169705301671,
+				275037120221046,
+				278740376483011,
+				284796527510384,
+				298150060019612,
+				311935564800556,
+				312258088334861,
+				312295230690246,
+				313805160671801,
+				318427908817011,
+				320413748797826,
+				320800131693944,
+				324230192022775,
+				325372858587454,
+				326739391046350,
+				333276993835961,
+				333578810836565,
+				341008182162706,
+				341545780572295,
+				347197665990378,
+				355068611980657,
+				357076974931262,
+				367745128085240,
+				372708354924664,
+				376057577697219,
+				377322277311259,
+				377510398200963,
+				379935127364017,
+				382644013236755,
+				386044708512124,
+				386621431482715,
+				390926245878939,
+				393907298139695,
+				398701726680669,
+				404290363667548,
+				406558773073729,
+				418142356576564,
+				436440873577812,
+				438382781212187,
+				442321068186029,
+				442379340315192,
+				448223986562665,
+				449954328588135,
+				454826083026166,
+				467060140985684,
+				468082959264345,
+				469119490768269,
+				471980910724736,
+				472429909944599,
+				478887256560220,
+				481883942840175,
+				483348184811890,
+				491199959981751,
+				492909452725815,
+				495812753818812,
+				504509449585650,
+				512562265217625,
+				517330267815754,
+				518593397944982,
+				532224739114182,
+				545034796114697,
+				546390065056310,
+				558080527737140,
+				558735877332876,
+				559336936231878,
+				568000522973802,
+				573632093979676,
+				576254598625185,
+				585844926888365,
+				598274857897757,
+				606392454750462,
+				606812680768397,
+				608678462596380,
+				611156861902846,
+				611334256802936,
+				616882705096529,
+				635136383123691,
+				635440561788678,
+				636729285540945,
+				639801425130105,
+				641497577649551,
+				650399733249559,
+				652324546143338,
+				666400861028399,
+				673908089802275,
+				674742502965615,
+				690623632202753,
+				694366846684166,
+				700059310672934,
+				739730488963525,
+				740607477961099,
+				742449454393303,
+				746921786421867,
+				748493633127713,
+				751099803827720,
+				751349278225892,
+				753153853702987,
+				767973926198089,
+				768617718185904,
+				777079255471824,
+				780927423520861,
+				785648654295272,
+				785842719842079,
+				788699946358381,
+				798868643812160,
+				806065740141997,
+				806540983549507,
+				816503841678163,
+				822834791155571,
+				828333694119781,
+				832839452246241,
+				838862162164301,
+				849299192264220,
+				849719651726676,
+				861506284070722,
+				861763781830808,
+				875134964763787,
+				876228623607351,
+				877463201362698,
+				889716034582361,
+				892684572200909,
+				907310714922475,
+				909557781804548,
+				910260459544594,
+				922005921377760,
+				924337930096207,
+				924694737817066,
+				956777688150257,
+				956794137753897,
+				956958540040835,
+				962585394603222,
+				965770318045625,
+				966960059485843,
+				971199458777122,
+				971475441995351,
+				976819860882976,
+				978850611402558,
+				993024786300312,
+				1002190466327595,
+				1004403388656351,
+				1009557435291109,
+				1012693995966716,
+				1020487038711202,
+				1021838098774831,
+				1022825183910212,
+				1024116778875076,
+				1025475811135389,
+				1027100588271656,
+				1031418968211075,
+				1034854861581131,
+				1040906481516572,
+				1041104938678753,
+				1041944326585600,
+				1042566742143296,
+				1051896060691813,
+				1052289371649832,
+				1053649852479242,
+				1056399742412383,
+				1056815373995971,
+				1058355358276771,
+				1072351958742583,
+				1073757075132416,
+				1080442269838143,
+				1085464144855401,
+				1093529392287663,
+				1093706599324609,
+				1096370249644185,
+				1104080838638807,
+				1110463687231669,
+				1113547510077440,
+				1122474689470832,
+				1124632343461454,
+				1125038647685684,
+				1130056091934672,
+				1136441185432963,
+				1137402168239582,
+				1138218115835429,
+				1140012540019696,
+				1147610223223647,
+				1153526756527497,
+				1154625347894374,
+				1156577842927566,
+				1156936765056096,
+				1158716490930212,
+				1167272700933513,
+				1171980783285280,
+				1172164637492226,
+				1174333854056800,
+				1177183468310475,
+				1184469739507378,
+				1193194748379973,
+				1203355550243244,
+				1204751753802167,
+				1206109020850657,
+				1209073613719220,
+				1211839407822556,
+				1214549316562201,
+				1223472291905776,
+				1226848664686811,
+				1228794839154904,
+				1233591354898210,
+				1248171481961867,
+				1249140625378049,
+				1250420615792499,
+				1270621240174851,
+				1271152529340978,
+				1277145842427434,
+				1278839460809518,
+				1279648188870847,
+				1285226976702363,
+				1292922906566475,
+				1293840135957021,
+				1306937454668551,
+				1308106938819177,
+				1311630570173226,
+				1315453574816614,
+				1316262047470064,
+				1323683905492377,
+				1327617093048938,
+				1328257188593957,
+				1328925760930540,
+				1336791348942658,
+				1337823682935323,
+				1338426797289558,
+				1347659037780763,
+				1349520275800762,
+				1350281300930207,
+				1350584707787619,
+				1350965798512051,
+				1352371759672857,
+				1355565657226279,
+				1366139758544952,
+				1370559325721362,
+				1372323191428327,
+				1374833818530662,
+				1378241694567182,
+				1390675320180837,
+				1397245118305521,
+				1399138228058685,
+				1401111668989440,
+				1405577059608436,
+				1415164117193179,
+				1416727865545266,
+				1417152008445458,
+				1417228982347968,
+				1420415050020789,
+				1422646266615883,
+				1428791016283229,
+				1437404333118871,
+				1439212134041297,
+				1443986292471515,
+				1448281385951810,
+				1452769867915484,
+				1458939511156390,
+				1468422094037376,
+				1468435389131163,
+				1470093577691192,
+				1473303838245121,
+				1501840430117884,
+				1502483749131498,
+				1509251897819909,
+				1515481216234594,
+				1518556890623136,
+				1525557707760212,
+				1525562526492942,
+				1526039318580833,
+				1526388199669049,
+				1528444436721677,
+				1532231731304012,
+				1535063496938977,
+				1537020432648880,
+				1541037172577104,
+				1549530261020368,
+				1550977950057176,
+				1561211337072795,
+				1573107540672390,
+				1578041137257892,
+				1580668012123321,
+				1587471541736126,
+				1589935211180918,
+				1590631988888441,
+				1594708228551845,
+				1598805435575473,
+				1604112006613713,
+				1613625605184352,
+				1615805749241267,
+				1616248529153055,
+				1623771691133374,
+				1625388712794197,
+				1626507814066212,
+				1630998321732091,
+				1631075121280256,
+				1632042571373627,
+				1632545932299825,
+				1635838075559940,
+				1639927227006797,
+				1646314243919347,
+				1648687757559290,
+				1652881559208978,
+				1654004508413302,
+				1659848504113041,
+				1667965263247545,
+				1669903458003823,
+				1672690280184610,
+				1684541581264319,
+				1686827846148564,
+				1687738124008082,
+				1691442091018326,
+				1692805704518431,
+				1693082404291748,
+				1696339135192354,
+				1703437916199732,
+				1708154517788500,
+				1709208928259084,
+				1710580230436138,
+				1714776101275494,
+				1719461470643099,
+				1720399334120937,
+				1724031441810059,
+				1727183672753893,
+				1735392745832045,
+				1735998386338362,
+				1738701129210471,
+				1740395278342643,
+				1743125229790106,
+				1751698265555764,
+				1752908108796220,
+				1753308552137375,
+				1753771755791029,
+				1756687539404719,
+				1762630490657248,
+				1764838771920937,
+				1767001339426217,
+				1770915762339832,
+				1787259017597685,
+				1789900134822701,
+				1792071081980571,
+				1801275206256617,
+				1802457946327669,
+				1808464570083889,
+				1812744655888381,
+				1817302344161584,
+				1818139840284483,
+				1819857177786509,
+				1820959062880842,
+				1827235886236624,
+				1830268693993444,
+				1831883332937520,
+				1833417472609184,
+				1842875044635002,
+				1844865274898047,
+				1848614151469314,
+				1850941908679371,
+				1853196278886744,
+				1855176227306009,
+				1858217593308953,
+				1874239187120175,
+				1876207015413196,
+				1882484501008945,
+				1887627906882134,
+				1907536247032118,
+				1917462362719845,
+				1922431136615521,
+				1923519840848274,
+				1929741658729314,
+				1930505532183871,
+				1930759754111553,
+				1934678717528993,
+				1939313756933503,
+				1947362805623621,
+				1950257317448391,
+				1950351940048555,
+				1951801563728943,
+				1953999342060852,
+				1956939094953262,
+				1957701014063289,
+				1958335824154835,
+				1967916335809068,
+				1969003266570787,
+				1974598399054984,
+				1981067029344623,
+				1981154059288291,
+				1983503147569462,
+				1995644919788432,
+				1997508214632124,
+				1999653908166971,
+				2004039151534897,
+				2004930974167174,
+				2016164553764703,
+				2017863976585964,
+				2019325732740981,
+				2019585422459536,
+				2023409032137504,
+				2025586042383011,
+				2025746269927368,
+				2028072384929697,
+				2029010057673557,
+				2031192927792843,
+				2037664946975586,
+				2039697840715802,
+				2041358419321528,
+				2042479209069706,
+				2052003813551995,
+				2054121759032486,
+				2054710580080339,
+				2055835598859733,
+				2058786262142372,
+				2063008413757867,
+				2066381598165413,
+				2069696959583009,
+				2073715707596673,
+				2084069143189934,
+				2086640713450971,
+				2087057658268076,
+				2088069525771659,
+				2098982571856576,
+				2106232978768637,
+				2109338263586241,
+				2109825994698043,
+				2114111736337670,
+				2114613282968616,
+				2115819507100504,
+				2119151366529277,
+				2119430287017055,
+				2120418862012154,
+				2122276175174129,
+				2122484177682025,
+				2124095034767201,
+				2128353777681243,
+				2132734055665043,
+				2133746750881594,
+				2135096604875718,
+				2137309594802075,
+				2139538089042443,
+				2139576114905451,
+				2144295051339044,
+				2144861695090934,
+				2153136934395861,
+				2156219194149567,
+				2163311498319671,
+				2164808574747226,
+				2167242595203119,
+				2169218424245518,
+				2172287414552644,
+				2174974481998107,
+				2177821880959407,
+				2181081730658196,
+				2182398795403341,
+				2187371118363080,
+				2187887423180628,
+				2194026537071857,
+				2203602782592944,
+				2203909323521797,
+				2206896186809891,
+				2209227890905803,
+				2211096632368775,
+				2213129570848532,
+				2215280247524439,
+				2215385946845855,
+				2217824728075048,
+				2220943948307820,
+				2221906647410175,
+				2223986253225205,
+				2224917765082082,
+				2227481306654124,
+				2239183959286133,
+				2241011611182580,
+				2245893536341001,
+				2249465920644360,
+				2259632172825864,
+				2261620935442464,
+				2263387216756302,
+				2263586660612036,
+				2268996645005542,
+				2269985197005983,
+				2273838361048952,
+				2281558473473012,
+				2287829694315293,
+				2290713827170847,
+				2291131537136610,
+				2298912361369990,
+				2302143995115746,
+				2312878396041528,
+				2314307504759831,
+				2316787462754888,
+				2325350755879136,
+				2331036032591016,
+				2332595734174534,
+				2341001259207800,
+				2344109037412480,
+				2346698706320505,
+				2350095992175591,
+				2353730651177615,
+				2365414048390744,
+				2366122170656712,
+				2367014159726613,
+				2368906433310811,
+				2370522626729401,
+				2372682746946332,
+				2375072351792490,
+				2375382411513780,
+				2384313132466132,
+				2391614908888951,
+				2392544648101477,
+				2392936587491291,
+				2397689414378114,
+				2399109144087028,
+				2406418852781832,
+				2407186399323232,
+				2408363197917556,
+				2409391466709503,
+				2409861074473399,
+				2410197458295558,
+				2417982387782565,
+				2419069951679570,
+				2428235422771172,
+				2430236048871462,
+				2431147396931338,
+				2435995871201630,
+				2437385865757479,
+				2440967105688895,
+				2441464999887780,
+				2450608614533781,
+				2458019191831029,
+				2458992410273605,
+				2471969595081801,
+				2472140177142350,
+				2474149675777685,
+				2474177960075165,
+				2475314713904717,
+				2478204206131689,
+				2488857113487989,
+				2492778624172776,
+				2493656341728273,
+				2493777281889121,
+				2494415491640334,
+				2495673317636489,
+				2498401103564525,
+				2502397184612176,
+				2508983603584979,
+				2509715549919396,
+				2513155861381520,
+				2513275657722041,
+				2513707624910234,
+				2516513634028452,
+				2517505051346271,
+				2520836106159833,
+				2521002441265700,
+				2525877720523013,
+				2526240495254663,
+				2535876467420972,
+				2545335484921653,
+				2546086870418754,
+				2555252183827150,
+				2556981141960497,
+				2557471253289799,
+				2559951211121412,
+				2562883673752919,
+				2564237403603359,
+				2564931009789095,
+				2569804992065676,
+				2571781153471230,
+				2578507172359119,
+				2581034133583066,
+				2587157541471436,
+				2589398439520608,
+				2593729243064004,
+				2596002053130697,
+				2605011208343467,
+				2607549250757871,
+				2616091809828649,
+				2616708825090300,
+				2618291197369414,
+				2623747523193354,
+				2624878766120106,
+				2633509876997698,
+				2640078475481372,
+				2641068255975445,
+				2644740716631333,
+				2646300381403787,
+				2649786361026710,
+				2651809316853810,
+				2654315936224170,
+				2657628209997025,
+				2657920817778708,
+				2664362379264181,
+				2679207567196806,
+				2681841310609335,
+				2696906355795514,
+				2697621990856187,
+				2709854642839249,
+				2715140864083002,
+				2723446825937667,
+				2729012306712815,
+				2731948431343265,
+				2733999854851063,
+				2741660511556431,
+				2743220549660135,
+				2746740739822815,
+				2750369727553093,
+				2750408660657524,
+				2751890801645518,
+				2752423935891959,
+				2756071361360475,
+				2764657354948603,
+				2765356004920344,
+				2766065063510668,
+				2772284167605343,
+				2773983446002210,
+				2774956265109566,
+				2777956427972420,
+				2779551068544955,
+				2780876524840844,
+				2788599090376268,
+				2789764921458739,
+				2790597388386299,
+				2796934217008523,
+				2805197600615205,
+				2811749323396711,
+				2814788311379466,
+				2818908710349372,
+				2824235399295266,
+				2827861308312231,
+				2830259086277627,
+				2830811517908480,
+				2833087346273922,
+				2833767936535060,
+				2834613235985145,
+				2843456650639316,
+				2855125351690727,
+				2856215005730980,
+				2862025196574124,
+				2864649603717909,
+				2864837300605269,
+				2868199030500362,
+				2868657437681302,
+				2871178830644782,
+				2874825177847044,
+				2882933581583305,
+				2885684181587029,
+				2897095043949180,
+				2904758868046007,
+				2909449267180539,
+				2909476481185125,
+				2913261154478977,
+				2914906215574294,
+				2915178544995369,
+				2916591282014603,
+				2917966323538534,
+				2923707812386141,
+				2927923311056621,
+				2931571972751850,
+				2935382216684553,
+				2949484647451052,
+				2953543609151018,
+				2953876267695651,
+				2957827287256567,
+				2961425221989873,
+				2966200342921724,
+				2967607514980173,
+				2973186577349424,
+				2975859727230645,
+				2976245038557084,
+				2981116908386663,
+				2983947831910337,
+				2985173944610375,
+				2987482276307270,
+				2994454008158770,
+				3005208739989786,
+				3005312060169169,
+				3015581196771826,
+				3020314390764917,
+				3022689456030471,
+				3025980369636388,
+				3029341628273089,
+				3029860654573792,
+				3032025711852414,
+				3037301542633117,
+				3043362163532172,
+				3046942532736602,
+				3047560614153298,
+				3058265525461530,
+				3066520441915813,
+				3067617749310490,
+				3069588084448814,
+				3074702185506880,
+				3075220407582460,
+				3076244208144327,
+				3082035596981534,
+				3082684337973299,
+				3089609529942184,
+				3095274585087045,
+				3101732378482309,
+				3102736794392912,
+				3109437597065678,
+				3112190251462546,
+				3113226145811862,
+				3118812205090388,
+				3124544497793334,
+				3131734316784638,
+				3132682207292497,
+				3132925813753493,
+				3139825612758737,
+				3141363853260471,
+				3148897366994230,
+				3151103808181412,
+				3151917161098580,
+				3156079150759700,
+				3156480916105693,
+				3156944276864018,
+				3159271588902650,
+				3164104797435227,
+				3164525091077613,
+				3164974827254980,
+				3167718230972956,
+				3168575450833798,
+				3170370480028284,
+				3176686928818846,
+				3182112634136143,
+				3182324679992379,
+				3187961819489741,
+				3189533497565395,
+				3195488200716776,
+				3202400544324347,
+				3203298087861934,
+				3203505065127928,
+				3209700985683389,
+				3212616315093692,
+				3213988571539449,
+				3217129615253672,
+				3217544566048649,
+				3223034165546826,
+				3224023476960008,
+				3225178300018176,
+				3225933434121706,
+				3230869729714732,
+				3233217934193683,
+				3237005651498609,
+				3238514465894546,
+				3243666353441572,
+				3254156206685824,
+				3254289886842596,
+				3255800624584166,
+				3260711832345837,
+				3262376948747614,
+				3265854206172751,
+				3269648229920800,
+				3275817234748541,
+				3282079768381895,
+				3287276111505491,
+				3292486056879827,
+				3296962647322980,
+				3298104694887216,
+				3301669530810893,
+				3304166496816853,
+				3305961102863438,
+				3308465573850446,
+				3309153399130101,
+				3310503323115309,
+				3310733893659544,
+				3312750158140177,
+				3316364698543535,
+				3320900876696445,
+				3322417381274756,
+				3323175572722919,
+				3324783922465598,
+				3326614806453267,
+				3327598578299680,
+				3332031864527052,
+				3334521995297550,
+				3346776127533380,
+				3354456329798908,
+				3360793887233705,
+				3362271048917139,
+				3364061500454402,
+				3365541559217554,
+				3367062585985197,
+				3373419224413028,
+				3375494323790526,
+				3375965378037189,
+				3384681920227564,
+				3385759904131899,
+				3387950719650663,
+				3389100120874734,
+				3391826174525466,
+				3391858706936950,
+				3394590901326434,
+				3394733054252918,
+				3395256208930528,
+				3396327423037428,
+				3397773105741955,
+				3412193769311791,
+				3417344214880197,
+				3421829275385521,
+				3424706376942600,
+				3424770874849455,
+				3427299941551477,
+				3427966188243021,
+				3429852718600970,
+				3433564635899284,
+				3441475510943216,
+				3453716837938022,
+				3455541699650375,
+				3459151149293686,
+				3461011284749746,
+				3468017773810975,
+				3468478413435006,
+				3469733676910284,
+				3472461633787037,
+				3480467116590888,
+				3484985178759181,
+				3485528599363927,
+				3490271597518843,
+				3496369553818299,
+				3496543980542943,
+				3504564547469991,
+				3509864058867581,
+				3512032577594001,
+				3512898337591665,
+				3517727528637750,
+				3517811915720599,
+				3519670054138657,
+				3527308810683320,
+				3529317775237354,
+				3532119970224050,
+				3533346461072296,
+				3533801781903427,
+				3540777767502482,
+				3541206393355077,
+				3542568308544960,
+				3545494450790484,
+				3552450997041483,
+				3554172356249736,
+				3555009350805453,
+				3556120827022399,
+				3556170538121875,
+				3557677947017994,
+				3559649975277099,
+				3562717374600439,
+				3578996623416481,
+				3579385405969678,
+				3579826204570180,
+				3580903455144653,
+				3581448968541992,
+				3589031359889510,
+				3598426031321008,
+				3602549932138307,
+				3608650679937847,
+				3618063291627055,
+				3621135234847333,
+				3622185794780449,
+				3625832106907018,
+				3628376511791330,
+				3633897363477924,
+				3634597400467599,
+				3637533446136323,
+				3640921402798955,
+				3643628911563101,
+				3647315641012711,
+				3653050799060306,
+				3653452058229566,
+				3655348890841869,
+				3657162687556612,
+				3658380591429298,
+				3670928756870593,
+				3671439528499520,
+				3672224951714544,
+				3676005960022917,
+				3683461550546707,
+				3687598771689608,
+				3688537180270287,
+				3691655301359562,
+				3694629211962424,
+				3697015043361184,
+				3702246733486441,
+				3703190419827622,
+				3706241000403472,
+				3713280205748872,
+				3713786577838412,
+				3715299619541116,
+				3715399430058895,
+				3715464516467511,
+				3717724958857386,
+				3721431724647317,
+				3723597580546044,
+				3728622142857222,
+				3734908231985394,
+				3735719011408786,
+				3738568221599915,
+				3743961606118764,
+				3744877234597490,
+				3745691804464370,
+				3747058568012949,
+				3753675332473720,
+				3758221620808616,
+				3760926935470523,
+				3761600094219947,
+				3763145072980668,
+				3764174567576474,
+				3769592583143344,
+				3774411384146786,
+				3780659210183975,
+				3790555233065450,
+				3791666338809637,
+				3804345956543339,
+				3807404653684416,
+				3808516667364885,
+				3810328094993686,
+				3812086123586299,
+				3813318153999051,
+				3813449001940802,
+				3813469322421121,
+				3815874058973771,
+				3816796472084155,
+				3820076883477449,
+				3822882072310145,
+				3823086960376516,
+				3823300628048301,
+				3827295790337235,
+				3829536338807628,
+				3836371620235232,
+				3836834437558808,
+				3840123825705920,
+				3841884847725994,
+				3844780248437300,
+				3848836181647957
+			]
+		},
+		{
+			"name" : "genome2.fna",
+			"length" : 5498450,
+			"comment" : "gi|47118301|dbj|BA000007.2| Escherichia coli O157:H7 str. Sakai DNA, complete genome",
+			"hashes" :
+			[
+				3703694776023,
+				12522063011144,
+				16683532343363,
+				16725500088852,
+				17551373616191,
+				21150285087017,
+				24997698352584,
+				25771393241063,
+				27141746342066,
+				32603191963564,
+				33355113951698,
+				33373174445483,
+				40135001466946,
+				52904105886554,
+				54267487195332,
+				62993059179672,
+				65617729843018,
+				66417400180258,
+				68792473092968,
+				71889932481702,
+				76535402502726,
+				77910711329991,
+				79103686168667,
+				83832538543685,
+				86205975593482,
+				86709255682763,
+				89217825112117,
+				90466295445917,
+				92718753643175,
+				98055163335582,
+				100178539101135,
+				101894942197086,
+				102565214680028,
+				106776035873039,
+				107762944101995,
+				110100254491429,
+				111250015466157,
+				111918366252389,
+				112288126498296,
+				112565798999620,
+				113769038976489,
+				114691889174745,
+				116289689660513,
+				116589162149174,
+				116925212033615,
+				126141660684959,
+				131111881973894,
+				135411200181186,
+				143345725674503,
+				148554695608225,
+				150497667828147,
+				167043047663236,
+				169624182697529,
+				171696315934934,
+				171764226221571,
+				175896512464017,
+				178733332903406,
+				183752051883782,
+				185135589226004,
+				190599583623642,
+				191598411457504,
+				194352815573588,
+				195539820147899,
+				195908969986613,
+				198176128092587,
+				203011812090168,
+				204848266864272,
+				207114001673048,
+				219126784303370,
+				219127232708164,
+				220404521261480,
+				227557656529835,
+				234488146968831,
+				239945629602519,
+				240298457663159,
+				241518479363894,
+				241979920125371,
+				247026401478011,
+				248202950098135,
+				249343933607083,
+				251532409189057,
+				252861414296929,
+				252863754782006,
+				257814287504831,
+				259088076671028,
+				263511612897560,
+				265393417158242,
+				268748182387402,
+				269557356063693,
+				270873324267804,
+				273169705301671,
+				275037120221046,
+				279171083054766,
+				284796527510384,
+				285411947115217,
+				293631713009889,
+				296682660121471,
+				304218464342357,
+				307284350852425,
+				309739075521586,
+				311935564800556,
+				312258088334861,
+				313805160671801,
+				320413748797826,
+				320800131693944,
+				324230192022775,
+				327506758448950,
+				330642771468364,
+				333578810836565,
+				336951755065573,
+				339099228340726,
+				341008182162706,
+				341666494353315,
+				347197665990378,
+				350602349011472,
+				355068611980657,
+				357076974931262,
+				357097696307611,
+				367745128085240,
+				377153256495223,
+				377510398200963,
+				379935127364017,
+				380669326629949,
+				382644013236755,
+				386621431482715,
+				390926245878939,
+				394997996693725,
+				397937306358997,
+				398701726680669,
+				404290363667548,
+				406558773073729,
+				418142356576564,
+				418367352246763,
+				419966752631691,
+				425106164556257,
+				435782664399408,
+				436440873577812,
+				436846893276547,
+				438594349490792,
+				438854574541963,
+				442379340315192,
+				448223986562665,
+				448962290097556,
+				458160611700585,
+				461446725332191,
+				463662742939420,
+				467060140985684,
+				468800565874948,
+				469119490768269,
+				472429909944599,
+				473480627538891,
+				481883942840175,
+				483348184811890,
+				491199959981751,
+				494826214448988,
+				498229868455789,
+				536326818739220,
+				538882355064724,
+				540841000010622,
+				545034796114697,
+				546390065056310,
+				547350398998973,
+				551989362894414,
+				552244608156192,
+				558735877332876,
+				559336936231878,
+				568000522973802,
+				571557648904164,
+				572885030955695,
+				576254598625185,
+				580717303928681,
+				585844926888365,
+				588437783155002,
+				590105686254881,
+				594525377085140,
+				598274857897757,
+				601889169876924,
+				606392454750462,
+				608678462596380,
+				609934825034092,
+				610181507915322,
+				611156861902846,
+				612498938365174,
+				616882705096529,
+				621014487617382,
+				635136383123691,
+				635298790804574,
+				636729285540945,
+				639801425130105,
+				641497577649551,
+				642572636960849,
+				644978940629776,
+				649936829809338,
+				652324546143338,
+				659362540556615,
+				666400861028399,
+				670478382943540,
+				673908089802275,
+				681795679544439,
+				690623632202753,
+				700059310672934,
+				708978815766062,
+				728525780166071,
+				730627061744034,
+				734243807774155,
+				739730488963525,
+				740607477961099,
+				742449454393303,
+				747536102775304,
+				749169256974776,
+				751099803827720,
+				753153853702987,
+				760199217039095,
+				767973926198089,
+				768617718185904,
+				769475990518197,
+				769954764926391,
+				772304653207534,
+				776074864329597,
+				780927423520861,
+				785648654295272,
+				785842719842079,
+				788699946358381,
+				798868643812160,
+				806065740141997,
+				806540983549507,
+				811813304941044,
+				813707845928891,
+				816503841678163,
+				820288749272502,
+				822834791155571,
+				823611825934046,
+				827541627309882,
+				828816348121895,
+				829780933409130,
+				832839452246241,
+				838862162164301,
+				849299192264220,
+				856867875933448,
+				857273407851175,
+				858019774603454,
+				861506284070722,
+				861763781830808,
+				875134964763787,
+				876228623607351,
+				877463201362698,
+				877898994993102,
+				881208268630405,
+				889716034582361,
+				892684572200909,
+				897063241324019,
+				901931471834337,
+				905559001582774,
+				907310714922475,
+				909557781804548,
+				910260459544594,
+				918834079791315,
+				922005921377760,
+				924337930096207,
+				924694737817066,
+				931049396265524,
+				936156697600155,
+				950790026596952,
+				953134083540635,
+				956777688150257,
+				956794137753897,
+				956958540040835,
+				961450797062312,
+				962585394603222,
+				966600094746660,
+				969964248239860,
+				971475441995351,
+				978850611402558,
+				979340250776451,
+				986503871161103,
+				990205170173965,
+				993024786300312,
+				1000793834431881,
+				1001921970146503,
+				1002190466327595,
+				1002750953623334,
+				1003569352056194,
+				1004403388656351,
+				1004930556369066,
+				1009557435291109,
+				1012693995966716,
+				1015224369540793,
+				1021838098774831,
+				1022825183910212,
+				1024116778875076,
+				1025475811135389,
+				1027100588271656,
+				1031418968211075,
+				1034854861581131,
+				1034885899455332,
+				1035348009397075,
+				1037573376058045,
+				1040906481516572,
+				1044221899305861,
+				1044693020825223,
+				1046243940463388,
+				1051896060691813,
+				1053649852479242,
+				1056399742412383,
+				1056815373995971,
+				1058355358276771,
+				1061014529070670,
+				1062265454900130,
+				1066889230817105,
+				1072351958742583,
+				1073757075132416,
+				1076579573766205,
+				1085464144855401,
+				1085810590136519,
+				1093706599324609,
+				1094962604173747,
+				1104080838638807,
+				1110463687231669,
+				1113547510077440,
+				1124632343461454,
+				1138218115835429,
+				1140012540019696,
+				1142966623106825,
+				1145125463956471,
+				1147610223223647,
+				1149574884354257,
+				1153526756527497,
+				1154395939808905,
+				1154625347894374,
+				1156519831795465,
+				1156577842927566,
+				1156936765056096,
+				1157467251442626,
+				1158716490930212,
+				1158832383796823,
+				1161793480607077,
+				1171980783285280,
+				1172164637492226,
+				1172425383849908,
+				1173007802359188,
+				1177183468310475,
+				1178572981144597,
+				1179155664979175,
+				1179841551578480,
+				1184469739507378,
+				1192224339153287,
+				1193194748379973,
+				1193310083082208,
+				1195262552234249,
+				1204751753802167,
+				1206109020850657,
+				1209073613719220,
+				1213973224068578,
+				1214229549227707,
+				1223472291905776,
+				1228794839154904,
+				1231472998157845,
+				1237411659816964,
+				1238181206405414,
+				1248171481961867,
+				1249140625378049,
+				1250420615792499,
+				1262366023195776,
+				1267845926174859,
+				1270621240174851,
+				1270945958952461,
+				1271152529340978,
+				1277145842427434,
+				1278839460809518,
+				1279648188870847,
+				1285144604825541,
+				1285226976702363,
+				1285410121505847,
+				1289394051340419,
+				1292922906566475,
+				1293840135957021,
+				1294795083337746,
+				1299663573122311,
+				1304950177664488,
+				1306937454668551,
+				1308079881551649,
+				1308106938819177,
+				1309468505503115,
+				1315453574816614,
+				1320911465824075,
+				1323243579668033,
+				1323683905492377,
+				1327617093048938,
+				1328257188593957,
+				1337626124900737,
+				1337823682935323,
+				1338426797289558,
+				1345552894532943,
+				1347659037780763,
+				1350281300930207,
+				1350584707787619,
+				1352371759672857,
+				1355565657226279,
+				1357262347445806,
+				1370484209987595,
+				1370559325721362,
+				1371094444841213,
+				1378241694567182,
+				1390675320180837,
+				1397245118305521,
+				1399138228058685,
+				1400958486026933,
+				1405577059608436,
+				1416727865545266,
+				1422646266615883,
+				1428472557280637,
+				1428791016283229,
+				1437404333118871,
+				1438819105992382,
+				1441645184802638,
+				1443986292471515,
+				1444165739257029,
+				1444859715970861,
+				1446238744318165,
+				1448281385951810,
+				1452769867915484,
+				1458939511156390,
+				1465483891283631,
+				1468435389131163,
+				1469601030702258,
+				1470093577691192,
+				1477834082216342,
+				1489532808730924,
+				1497370230207940,
+				1501840430117884,
+				1503893107066553,
+				1506544743870655,
+				1515481216234594,
+				1518556890623136,
+				1525557707760212,
+				1525562526492942,
+				1526039318580833,
+				1526388199669049,
+				1528444436721677,
+				1528752940936261,
+				1532231731304012,
+				1535063496938977,
+				1537020432648880,
+				1541037172577104,
+				1549530261020368,
+				1550977950057176,
+				1554384620856693,
+				1560440145576633,
+				1561211337072795,
+				1561392880694962,
+				1565506340163002,
+				1568756855591696,
+				1571845198751926,
+				1574712798197965,
+				1578041137257892,
+				1579611929371771,
+				1580668012123321,
+				1589935211180918,
+				1590631988888441,
+				1594814692912764,
+				1598805435575473,
+				1604112006613713,
+				1615805749241267,
+				1616057056259838,
+				1616248529153055,
+				1623756785893861,
+				1625388712794197,
+				1626679595848192,
+				1629191997749152,
+				1632042571373627,
+				1632545932299825,
+				1639927227006797,
+				1644436749735721,
+				1646305274637223,
+				1646314243919347,
+				1656404760027698,
+				1659848504113041,
+				1660790484797267,
+				1668731490461007,
+				1669903458003823,
+				1671813958193083,
+				1672317452907448,
+				1684541581264319,
+				1686868472005240,
+				1691442091018326,
+				1693065755421999,
+				1693082404291748,
+				1699078812835482,
+				1701534566916444,
+				1703437916199732,
+				1706699971125269,
+				1708154517788500,
+				1708450219601223,
+				1709208928259084,
+				1710580230436138,
+				1719461470643099,
+				1724031441810059,
+				1731414752328248,
+				1733488330992367,
+				1735392745832045,
+				1740395278342643,
+				1751698265555764,
+				1752908108796220,
+				1753308552137375,
+				1753771755791029,
+				1756517806858748,
+				1756687539404719,
+				1761374391450879,
+				1762630490657248,
+				1763833688373868,
+				1764838771920937,
+				1765399490975923,
+				1767001339426217,
+				1776133554019934,
+				1786106073311873,
+				1787259017597685,
+				1787998382186824,
+				1789900134822701,
+				1801275206256617,
+				1802457946327669,
+				1802982444863312,
+				1808464570083889,
+				1812744655888381,
+				1820959062880842,
+				1827235886236624,
+				1830268693993444,
+				1831883332937520,
+				1835139510972615,
+				1844924951981928,
+				1847629881531119,
+				1850941908679371,
+				1853196278886744,
+				1855176227306009,
+				1858217593308953,
+				1872575906889485,
+				1874542107503308,
+				1876207015413196,
+				1882484501008945,
+				1887627906882134,
+				1891261093359267,
+				1899441711775566,
+				1907536247032118,
+				1913472879708869,
+				1916948679539307,
+				1917220597480439,
+				1917462362719845,
+				1922264350502195,
+				1923519840848274,
+				1929741658729314,
+				1930759754111553,
+				1934678717528993,
+				1936255444455825,
+				1947362805623621,
+				1950351940048555,
+				1951801563728943,
+				1953999342060852,
+				1955559625503217,
+				1956939094953262,
+				1957701014063289,
+				1958335824154835,
+				1958869039156100,
+				1964534178586289,
+				1964997788744016,
+				1969003266570787,
+				1971712898559437,
+				1974598399054984,
+				1980568214822849,
+				1981067029344623,
+				1981154059288291,
+				1995644919788432,
+				1995986330027191,
+				1999653908166971,
+				2004039151534897,
+				2010487270906569,
+				2014658280982556,
+				2015248689971564,
+				2016164553764703,
+				2017863976585964,
+				2019325732740981,
+				2019585422459536,
+				2023409032137504,
+				2023429428011322,
+				2025746269927368,
+				2027378035780221,
+				2028072384929697,
+				2029010057673557,
+				2029463840150225,
+				2031192927792843,
+				2039697840715802,
+				2041358419321528,
+				2041565732481514,
+				2045576691854597,
+				2054121759032486,
+				2054710580080339,
+				2055835598859733,
+				2061913944260074,
+				2063008413757867,
+				2063904110392604,
+				2069696959583009,
+				2073715707596673,
+				2085565202986971,
+				2087057658268076,
+				2088069525771659,
+				2096373986414202,
+				2098982571856576,
+				2104519934924809,
+				2109338263586241,
+				2109437211441330,
+				2109825994698043,
+				2111625722039990,
+				2114613282968616,
+				2115819507100504,
+				2119151366529277,
+				2119430287017055,
+				2120418862012154,
+				2122484177682025,
+				2125609024105363,
+				2132734055665043,
+				2133104663716974,
+				2133746750881594,
+				2135096604875718,
+				2144295051339044,
+				2144861695090934,
+				2153136934395861,
+				2156219194149567,
+				2158501526794469,
+				2164808574747226,
+				2166916793541235,
+				2167242595203119,
+				2171203690601800,
+				2172287414552644,
+				2177527681517552,
+				2177821880959407,
+				2181081730658196,
+				2187887423180628,
+				2193889836206911,
+				2194026537071857,
+				2200240325502302,
+				2201189900979833,
+				2203602782592944,
+				2203909323521797,
+				2206896186809891,
+				2209227890905803,
+				2209299347388853,
+				2211096632368775,
+				2211190714555095,
+				2212822234758756,
+				2213129570848532,
+				2215280247524439,
+				2215385946845855,
+				2217824728075048,
+				2220943948307820,
+				2224917765082082,
+				2227481306654124,
+				2232265696954491,
+				2235497740665523,
+				2239183959286133,
+				2241011611182580,
+				2243032658349719,
+				2249465920644360,
+				2251884510464989,
+				2254104781395345,
+				2259632172825864,
+				2261620935442464,
+				2263586660612036,
+				2269985197005983,
+				2273838361048952,
+				2281558473473012,
+				2283166624204130,
+				2284532593561806,
+				2288953000098108,
+				2289534317079988,
+				2299373121453984,
+				2302143995115746,
+				2312878396041528,
+				2313083550406390,
+				2314307504759831,
+				2316787462754888,
+				2319028505625418,
+				2320997905608487,
+				2325350755879136,
+				2331036032591016,
+				2332595734174534,
+				2336944292198780,
+				2341001259207800,
+				2342397466617075,
+				2343853854830583,
+				2346698706320505,
+				2347756505567837,
+				2350095992175591,
+				2350144269647188,
+				2353730651177615,
+				2364893325534931,
+				2365414048390744,
+				2366122170656712,
+				2367014159726613,
+				2368906433310811,
+				2369345891505872,
+				2370192225385749,
+				2375382411513780,
+				2391614908888951,
+				2392936587491291,
+				2397689414378114,
+				2399109144087028,
+				2403884218355596,
+				2407186399323232,
+				2408363197917556,
+				2409391466709503,
+				2409861074473399,
+				2410197458295558,
+				2417982387782565,
+				2419069951679570,
+				2423211172870677,
+				2427010367737622,
+				2427506813960305,
+				2428115782695990,
+				2428235422771172,
+				2431147396931338,
+				2435995871201630,
+				2436520988387086,
+				2437385865757479,
+				2438746107822056,
+				2440967105688895,
+				2441464999887780,
+				2446087213431191,
+				2455948336809545,
+				2458019191831029,
+				2471969595081801,
+				2472140177142350,
+				2474149675777685,
+				2475314713904717,
+				2481990979504207,
+				2483232887628313,
+				2488857113487989,
+				2494415491640334,
+				2495673317636489,
+				2498401103564525,
+				2500580522931027,
+				2500975352543500,
+				2502397184612176,
+				2508983603584979,
+				2509715549919396,
+				2511751773952091,
+				2513155861381520,
+				2513275657722041,
+				2516513634028452,
+				2517505051346271,
+				2521002441265700,
+				2526240495254663,
+				2535876467420972,
+				2538038350386480,
+				2542333869410305,
+				2545335484921653,
+				2546086870418754,
+				2555873083818265,
+				2559951211121412,
+				2562883673752919,
+				2564237403603359,
+				2564931009789095,
+				2569804992065676,
+				2571781153471230,
+				2572598084629362,
+				2581034133583066,
+				2589398439520608,
+				2591063679385680,
+				2596002053130697,
+				2602896093442509,
+				2607549250757871,
+				2610147007996089,
+				2616447217909057,
+				2616708825090300,
+				2618291197369414,
+				2622250198347614,
+				2623747523193354,
+				2624878766120106,
+				2629720185060328,
+				2633509876997698,
+				2639883009031439,
+				2640078475481372,
+				2641068255975445,
+				2646300381403787,
+				2651809316853810,
+				2654315936224170,
+				2656744009072645,
+				2657628209997025,
+				2664362379264181,
+				2679207567196806,
+				2681841310609335,
+				2682230475466206,
+				2682235950348030,
+				2682260236873009,
+				2682827334041644,
+				2696906355795514,
+				2707154566713022,
+				2707290026870716,
+				2715090327597901,
+				2725345554993064,
+				2731408912889259,
+				2738453673972739,
+				2741660511556431,
+				2744473906118431,
+				2746740739822815,
+				2749301324841119,
+				2750369727553093,
+				2750408660657524,
+				2752423935891959,
+				2756071361360475,
+				2764657354948603,
+				2765356004920344,
+				2766065063510668,
+				2772284167605343,
+				2774956265109566,
+				2777956427972420,
+				2779551068544955,
+				2780876524840844,
+				2788599090376268,
+				2790759863837607,
+				2791711361773895,
+				2796165567564554,
+				2796934217008523,
+				2799292310626878,
+				2802885629650446,
+				2805197600615205,
+				2811749323396711,
+				2814788311379466,
+				2818908710349372,
+				2823011945287437,
+				2824235399295266,
+				2827861308312231,
+				2828057280695711,
+				2830165140481448,
+				2830259086277627,
+				2833087346273922,
+				2834613235985145,
+				2855125351690727,
+				2855474670840254,
+				2856215005730980,
+				2857242037990167,
+				2862025196574124,
+				2862132579312605,
+				2868199030500362,
+				2868657437681302,
+				2871178830644782,
+				2883969369356989,
+				2885435925236443,
+				2885684181587029,
+				2886624360716170,
+				2886812665780162,
+				2892959284792378,
+				2897095043949180,
+				2904670804484916,
+				2909024785801575,
+				2909449267180539,
+				2909476481185125,
+				2910129343563738,
+				2912631490053512,
+				2915178544995369,
+				2917966323538534,
+				2920066062038110,
+				2923707812386141,
+				2927923311056621,
+				2929015298427587,
+				2935382216684553,
+				2940092630809820,
+				2946586747552401,
+				2953543609151018,
+				2953876267695651,
+				2959250607480491,
+				2966396400958864,
+				2969184744463716,
+				2973186577349424,
+				2976245038557084,
+				2983947831910337,
+				2985173944610375,
+				2987482276307270,
+				2990805349977143,
+				2994454008158770,
+				2994704173026852,
+				2994725740515941,
+				3004214746770134,
+				3005312060169169,
+				3007323831692818,
+				3009046704019813,
+				3015478246262911,
+				3020314390764917,
+				3021511801402073,
+				3022689456030471,
+				3029860654573792,
+				3032025711852414,
+				3037301542633117,
+				3046942532736602,
+				3048345323157728,
+				3051255902187119,
+				3058265525461530,
+				3060027864623396,
+				3061946979607071,
+				3062102582500787,
+				3066389164804375,
+				3066520441915813,
+				3067442679313441,
+				3067617749310490,
+				3069588084448814,
+				3074702185506880,
+				3075220407582460,
+				3076244208144327,
+				3081894958282806,
+				3082828996070904,
+				3095274585087045,
+				3104360938756022,
+				3107578816854409,
+				3112190251462546,
+				3113226145811862,
+				3118812205090388,
+				3119791007357666,
+				3131411599493219,
+				3131734316784638,
+				3132682207292497,
+				3132925813753493,
+				3133576049751625,
+				3141363853260471,
+				3143797722484603,
+				3148514413817638,
+				3148897366994230,
+				3151103808181412,
+				3151917161098580,
+				3156079150759700,
+				3156480916105693,
+				3159271588902650,
+				3164525091077613,
+				3167718230972956,
+				3168575450833798,
+				3170370480028284,
+				3176686928818846,
+				3182112634136143,
+				3189533497565395,
+				3193706453044838,
+				3194308357559112,
+				3195488200716776,
+				3197456459879687,
+				3202400544324347,
+				3203298087861934,
+				3205569263312945,
+				3209681851269886,
+				3212616315093692,
+				3213970056970601,
+				3213988571539449,
+				3217544566048649,
+				3224023476960008,
+				3225178300018176,
+				3230869729714732,
+				3233217934193683,
+				3237005651498609,
+				3238514465894546,
+				3243666353441572,
+				3254156206685824,
+				3256898306976357,
+				3259000384147840,
+				3259397157512471,
+				3260711832345837,
+				3261513360556526,
+				3262376948747614,
+				3275817234748541,
+				3282079768381895,
+				3285863149081422,
+				3290751826004107,
+				3298104694887216,
+				3301669530810893,
+				3304166496816853,
+				3308465573850446,
+				3309064512593650,
+				3309153399130101,
+				3312750158140177,
+				3320900876696445,
+				3322417381274756,
+				3324783922465598,
+				3326614806453267,
+				3332031864527052,
+				3334521995297550,
+				3338013074967905,
+				3341964779300120,
+				3348809923047007,
+				3354456329798908,
+				3360793887233705,
+				3364210976543527,
+				3365541559217554,
+				3367062585985197,
+				3370100951126196,
+				3383050972815065,
+				3384681920227564,
+				3385759904131899,
+				3387206683861419,
+				3387950719650663,
+				3389100120874734,
+				3391826174525466,
+				3393011265291627,
+				3395256208930528,
+				3396327423037428,
+				3397773105741955,
+				3399648649598797,
+				3399904051063777
+			]
+		},
+		{
+			"name" : "genome3.fna",
+			"length" : 4631469,
+			"comment" : "gi|682117612|gb|CP009273.1| Escherichia coli BW25113, complete genome",
+			"hashes" :
+			[
+				3703694776023,
+				4374531858158,
+				5345587754044,
+				17551373616191,
+				21150285087017,
+				24997698352584,
+				25771393241063,
+				27141746342066,
+				27362219888026,
+				27571760239933,
+				32603191963564,
+				36460262049084,
+				40135001466946,
+				54267487195332,
+				54928807149369,
+				65617729843018,
+				68792473092968,
+				71889932481702,
+				72656062656272,
+				76535402502726,
+				77069580434463,
+				77910711329991,
+				79103686168667,
+				86205975593482,
+				89217825112117,
+				90466295445917,
+				91491949740885,
+				92718753643175,
+				97239968037938,
+				98055163335582,
+				100178539101135,
+				102505731352189,
+				102565214680028,
+				104177745548946,
+				106776035873039,
+				111250015466157,
+				112288126498296,
+				112565798999620,
+				113269032034961,
+				113769038976489,
+				116289689660513,
+				116589162149174,
+				116925212033615,
+				117933296961001,
+				126141660684959,
+				135411200181186,
+				143345725674503,
+				148554695608225,
+				159311917533494,
+				165792636480134,
+				167043047663236,
+				167894249090983,
+				169624182697529,
+				175896512464017,
+				185135589226004,
+				191598411457504,
+				195539820147899,
+				204848266864272,
+				207114001673048,
+				219127232708164,
+				220404521261480,
+				231711600020668,
+				239945629602519,
+				248202950098135,
+				249343933607083,
+				257814287504831,
+				259088076671028,
+				262297732220758,
+				263511612897560,
+				265455171421180,
+				266747475753425,
+				268359922841358,
+				268748182387402,
+				269557356063693,
+				273169705301671,
+				275037120221046,
+				278740376483011,
+				284796527510384,
+				298150060019612,
+				311935564800556,
+				312258088334861,
+				312295230690246,
+				313805160671801,
+				318427908817011,
+				320413748797826,
+				320800131693944,
+				324230192022775,
+				325372858587454,
+				326739391046350,
+				333276993835961,
+				333578810836565,
+				341008182162706,
+				341545780572295,
+				347197665990378,
+				355068611980657,
+				357076974931262,
+				367745128085240,
+				372708354924664,
+				376057577697219,
+				377322277311259,
+				377510398200963,
+				379935127364017,
+				382644013236755,
+				386044708512124,
+				386621431482715,
+				390926245878939,
+				393907298139695,
+				398701726680669,
+				404290363667548,
+				406558773073729,
+				418142356576564,
+				436440873577812,
+				438382781212187,
+				442321068186029,
+				442379340315192,
+				448223986562665,
+				449954328588135,
+				454826083026166,
+				467060140985684,
+				468082959264345,
+				469119490768269,
+				471980910724736,
+				472429909944599,
+				478887256560220,
+				481883942840175,
+				483348184811890,
+				491199959981751,
+				492909452725815,
+				495812753818812,
+				504509449585650,
+				512562265217625,
+				517330267815754,
+				518593397944982,
+				532224739114182,
+				545034796114697,
+				546390065056310,
+				558080527737140,
+				558735877332876,
+				559336936231878,
+				568000522973802,
+				573632093979676,
+				576254598625185,
+				585844926888365,
+				598274857897757,
+				606392454750462,
+				606812680768397,
+				608678462596380,
+				611156861902846,
+				611334256802936,
+				616882705096529,
+				635136383123691,
+				635440561788678,
+				636729285540945,
+				639801425130105,
+				641497577649551,
+				650399733249559,
+				652324546143338,
+				666400861028399,
+				673908089802275,
+				674742502965615,
+				690623632202753,
+				694366846684166,
+				700059310672934,
+				739730488963525,
+				740607477961099,
+				742449454393303,
+				746921786421867,
+				748493633127713,
+				751099803827720,
+				751349278225892,
+				753153853702987,
+				767973926198089,
+				768617718185904,
+				777079255471824,
+				780927423520861,
+				785648654295272,
+				785842719842079,
+				788699946358381,
+				798868643812160,
+				806065740141997,
+				806540983549507,
+				816503841678163,
+				822834791155571,
+				828333694119781,
+				832839452246241,
+				838862162164301,
+				849299192264220,
+				849719651726676,
+				861506284070722,
+				861763781830808,
+				875134964763787,
+				876228623607351,
+				877463201362698,
+				889716034582361,
+				892684572200909,
+				907310714922475,
+				909557781804548,
+				910260459544594,
+				922005921377760,
+				924337930096207,
+				924694737817066,
+				956777688150257,
+				956794137753897,
+				956958540040835,
+				962585394603222,
+				965770318045625,
+				966960059485843,
+				971199458777122,
+				971475441995351,
+				976819860882976,
+				978850611402558,
+				993024786300312,
+				1002190466327595,
+				1004403388656351,
+				1009557435291109,
+				1012693995966716,
+				1020487038711202,
+				1021838098774831,
+				1022825183910212,
+				1024116778875076,
+				1025475811135389,
+				1027100588271656,
+				1031418968211075,
+				1034854861581131,
+				1040906481516572,
+				1041104938678753,
+				1041944326585600,
+				1042566742143296,
+				1051896060691813,
+				1052289371649832,
+				1053649852479242,
+				1056399742412383,
+				1056815373995971,
+				1058355358276771,
+				1072351958742583,
+				1073757075132416,
+				1080442269838143,
+				1085464144855401,
+				1093529392287663,
+				1093706599324609,
+				1096370249644185,
+				1104080838638807,
+				1110463687231669,
+				1113547510077440,
+				1122474689470832,
+				1124632343461454,
+				1125038647685684,
+				1130056091934672,
+				1136441185432963,
+				1137402168239582,
+				1138218115835429,
+				1140012540019696,
+				1147610223223647,
+				1153526756527497,
+				1154625347894374,
+				1156577842927566,
+				1156936765056096,
+				1158716490930212,
+				1167272700933513,
+				1171980783285280,
+				1172164637492226,
+				1174333854056800,
+				1177183468310475,
+				1184469739507378,
+				1193194748379973,
+				1203355550243244,
+				1204751753802167,
+				1206109020850657,
+				1209073613719220,
+				1211839407822556,
+				1214549316562201,
+				1223472291905776,
+				1226848664686811,
+				1228794839154904,
+				1233591354898210,
+				1248171481961867,
+				1249140625378049,
+				1250420615792499,
+				1270621240174851,
+				1271152529340978,
+				1277145842427434,
+				1278839460809518,
+				1279648188870847,
+				1285226976702363,
+				1292922906566475,
+				1293840135957021,
+				1306937454668551,
+				1308106938819177,
+				1311630570173226,
+				1315453574816614,
+				1316262047470064,
+				1323683905492377,
+				1327617093048938,
+				1328257188593957,
+				1328925760930540,
+				1336791348942658,
+				1337823682935323,
+				1338426797289558,
+				1347659037780763,
+				1349520275800762,
+				1350281300930207,
+				1350584707787619,
+				1350965798512051,
+				1352371759672857,
+				1355565657226279,
+				1366139758544952,
+				1370559325721362,
+				1372323191428327,
+				1374833818530662,
+				1378241694567182,
+				1390675320180837,
+				1397245118305521,
+				1399138228058685,
+				1401111668989440,
+				1405577059608436,
+				1415164117193179,
+				1416727865545266,
+				1417152008445458,
+				1417228982347968,
+				1420415050020789,
+				1422646266615883,
+				1428791016283229,
+				1437404333118871,
+				1439212134041297,
+				1443986292471515,
+				1448281385951810,
+				1452769867915484,
+				1458939511156390,
+				1468422094037376,
+				1468435389131163,
+				1470093577691192,
+				1473303838245121,
+				1501840430117884,
+				1502483749131498,
+				1509251897819909,
+				1515481216234594,
+				1518556890623136,
+				1525557707760212,
+				1525562526492942,
+				1526039318580833,
+				1526388199669049,
+				1528444436721677,
+				1532231731304012,
+				1535063496938977,
+				1537020432648880,
+				1541037172577104,
+				1549530261020368,
+				1550977950057176,
+				1561211337072795,
+				1573107540672390,
+				1578041137257892,
+				1580668012123321,
+				1587471541736126,
+				1589935211180918,
+				1590631988888441,
+				1594708228551845,
+				1598805435575473,
+				1604112006613713,
+				1613625605184352,
+				1615805749241267,
+				1616248529153055,
+				1623771691133374,
+				1625388712794197,
+				1626507814066212,
+				1630998321732091,
+				1631075121280256,
+				1632042571373627,
+				1632545932299825,
+				1635838075559940,
+				1639927227006797,
+				1646314243919347,
+				1648687757559290,
+				1652881559208978,
+				1654004508413302,
+				1659848504113041,
+				1667965263247545,
+				1669903458003823,
+				1672690280184610,
+				1684541581264319,
+				1686827846148564,
+				1687738124008082,
+				1691442091018326,
+				1692805704518431,
+				1693082404291748,
+				1696339135192354,
+				1703437916199732,
+				1708154517788500,
+				1709208928259084,
+				1710580230436138,
+				1714776101275494,
+				1719461470643099,
+				1720399334120937,
+				1724031441810059,
+				1727183672753893,
+				1735392745832045,
+				1735998386338362,
+				1738701129210471,
+				1740395278342643,
+				1743125229790106,
+				1751698265555764,
+				1752908108796220,
+				1753308552137375,
+				1753771755791029,
+				1756687539404719,
+				1762630490657248,
+				1764838771920937,
+				1767001339426217,
+				1770915762339832,
+				1787259017597685,
+				1789900134822701,
+				1792071081980571,
+				1801275206256617,
+				1802457946327669,
+				1808464570083889,
+				1812744655888381,
+				1817302344161584,
+				1818139840284483,
+				1819857177786509,
+				1820959062880842,
+				1827235886236624,
+				1830268693993444,
+				1831883332937520,
+				1833417472609184,
+				1842875044635002,
+				1844865274898047,
+				1848614151469314,
+				1850941908679371,
+				1853196278886744,
+				1855176227306009,
+				1858217593308953,
+				1874239187120175,
+				1876207015413196,
+				1882484501008945,
+				1887627906882134,
+				1907536247032118,
+				1917462362719845,
+				1922431136615521,
+				1923519840848274,
+				1929741658729314,
+				1930505532183871,
+				1930759754111553,
+				1934678717528993,
+				1939313756933503,
+				1947362805623621,
+				1950257317448391,
+				1950351940048555,
+				1951801563728943,
+				1953999342060852,
+				1956939094953262,
+				1957701014063289,
+				1958335824154835,
+				1967916335809068,
+				1969003266570787,
+				1974598399054984,
+				1981067029344623,
+				1981154059288291,
+				1983503147569462,
+				1995644919788432,
+				1997508214632124,
+				1999653908166971,
+				2004039151534897,
+				2004930974167174,
+				2016164553764703,
+				2017863976585964,
+				2019325732740981,
+				2019585422459536,
+				2023409032137504,
+				2025586042383011,
+				2025746269927368,
+				2028072384929697,
+				2029010057673557,
+				2031192927792843,
+				2037664946975586,
+				2039697840715802,
+				2041358419321528,
+				2042479209069706,
+				2052003813551995,
+				2054121759032486,
+				2054710580080339,
+				2055835598859733,
+				2058786262142372,
+				2063008413757867,
+				2066381598165413,
+				2069696959583009,
+				2073715707596673,
+				2084069143189934,
+				2086640713450971,
+				2087057658268076,
+				2088069525771659,
+				2098982571856576,
+				2106232978768637,
+				2109338263586241,
+				2109825994698043,
+				2114111736337670,
+				2114613282968616,
+				2115819507100504,
+				2119151366529277,
+				2119430287017055,
+				2120418862012154,
+				2122276175174129,
+				2122484177682025,
+				2124095034767201,
+				2128353777681243,
+				2132734055665043,
+				2133746750881594,
+				2135096604875718,
+				2137309594802075,
+				2139538089042443,
+				2139576114905451,
+				2144295051339044,
+				2144861695090934,
+				2153136934395861,
+				2156219194149567,
+				2163311498319671,
+				2164808574747226,
+				2167242595203119,
+				2169218424245518,
+				2172287414552644,
+				2174974481998107,
+				2177821880959407,
+				2181081730658196,
+				2182398795403341,
+				2187371118363080,
+				2187887423180628,
+				2194026537071857,
+				2203602782592944,
+				2203909323521797,
+				2206896186809891,
+				2209227890905803,
+				2211096632368775,
+				2213129570848532,
+				2215280247524439,
+				2215385946845855,
+				2217824728075048,
+				2220943948307820,
+				2221906647410175,
+				2223986253225205,
+				2224917765082082,
+				2227481306654124,
+				2239183959286133,
+				2241011611182580,
+				2245893536341001,
+				2249465920644360,
+				2259632172825864,
+				2261620935442464,
+				2263387216756302,
+				2263586660612036,
+				2268996645005542,
+				2269985197005983,
+				2273838361048952,
+				2281558473473012,
+				2287829694315293,
+				2290713827170847,
+				2291131537136610,
+				2298912361369990,
+				2302143995115746,
+				2312878396041528,
+				2314307504759831,
+				2316787462754888,
+				2325350755879136,
+				2331036032591016,
+				2332595734174534,
+				2341001259207800,
+				2344109037412480,
+				2346698706320505,
+				2350095992175591,
+				2353730651177615,
+				2365414048390744,
+				2366122170656712,
+				2367014159726613,
+				2368906433310811,
+				2370522626729401,
+				2372682746946332,
+				2375072351792490,
+				2375382411513780,
+				2384313132466132,
+				2391614908888951,
+				2392544648101477,
+				2392936587491291,
+				2397689414378114,
+				2399109144087028,
+				2406418852781832,
+				2407186399323232,
+				2408363197917556,
+				2409391466709503,
+				2409861074473399,
+				2410197458295558,
+				2417982387782565,
+				2419069951679570,
+				2428235422771172,
+				2430236048871462,
+				2431147396931338,
+				2435995871201630,
+				2437385865757479,
+				2440967105688895,
+				2441464999887780,
+				2450608614533781,
+				2458019191831029,
+				2458992410273605,
+				2471969595081801,
+				2472140177142350,
+				2474149675777685,
+				2474177960075165,
+				2475314713904717,
+				2478204206131689,
+				2488857113487989,
+				2492778624172776,
+				2493656341728273,
+				2493777281889121,
+				2494415491640334,
+				2495673317636489,
+				2498401103564525,
+				2502397184612176,
+				2508983603584979,
+				2509715549919396,
+				2513155861381520,
+				2513275657722041,
+				2513707624910234,
+				2516513634028452,
+				2517505051346271,
+				2520836106159833,
+				2521002441265700,
+				2525877720523013,
+				2526240495254663,
+				2535876467420972,
+				2545335484921653,
+				2546086870418754,
+				2555252183827150,
+				2556981141960497,
+				2557471253289799,
+				2559951211121412,
+				2562883673752919,
+				2564237403603359,
+				2564931009789095,
+				2569804992065676,
+				2571781153471230,
+				2578507172359119,
+				2581034133583066,
+				2587157541471436,
+				2589398439520608,
+				2593729243064004,
+				2596002053130697,
+				2605011208343467,
+				2607549250757871,
+				2616091809828649,
+				2616708825090300,
+				2618291197369414,
+				2623747523193354,
+				2624878766120106,
+				2633509876997698,
+				2640078475481372,
+				2641068255975445,
+				2644740716631333,
+				2646300381403787,
+				2649786361026710,
+				2651809316853810,
+				2654315936224170,
+				2657628209997025,
+				2657920817778708,
+				2664362379264181,
+				2679207567196806,
+				2681841310609335,
+				2696906355795514,
+				2697621990856187,
+				2709854642839249,
+				2715140864083002,
+				2723446825937667,
+				2729012306712815,
+				2731948431343265,
+				2733999854851063,
+				2741660511556431,
+				2743220549660135,
+				2746740739822815,
+				2750369727553093,
+				2750408660657524,
+				2751890801645518,
+				2752423935891959,
+				2756071361360475,
+				2764657354948603,
+				2765356004920344,
+				2766065063510668,
+				2772284167605343,
+				2773983446002210,
+				2774956265109566,
+				2777956427972420,
+				2779551068544955,
+				2780876524840844,
+				2788599090376268,
+				2789764921458739,
+				2790597388386299,
+				2796934217008523,
+				2805197600615205,
+				2811749323396711,
+				2814788311379466,
+				2818908710349372,
+				2824235399295266,
+				2827861308312231,
+				2830259086277627,
+				2830811517908480,
+				2833087346273922,
+				2833767936535060,
+				2834613235985145,
+				2843456650639316,
+				2855125351690727,
+				2856215005730980,
+				2862025196574124,
+				2864649603717909,
+				2864837300605269,
+				2868199030500362,
+				2868657437681302,
+				2871178830644782,
+				2874825177847044,
+				2882933581583305,
+				2885684181587029,
+				2897095043949180,
+				2904758868046007,
+				2909449267180539,
+				2909476481185125,
+				2913261154478977,
+				2914906215574294,
+				2915178544995369,
+				2916591282014603,
+				2917966323538534,
+				2923707812386141,
+				2927923311056621,
+				2931571972751850,
+				2935382216684553,
+				2949484647451052,
+				2953543609151018,
+				2953876267695651,
+				2957827287256567,
+				2961425221989873,
+				2966200342921724,
+				2967607514980173,
+				2973186577349424,
+				2975859727230645,
+				2976245038557084,
+				2981116908386663,
+				2983947831910337,
+				2985173944610375,
+				2987482276307270,
+				2994454008158770,
+				3005208739989786,
+				3005312060169169,
+				3015581196771826,
+				3020314390764917,
+				3022689456030471,
+				3025980369636388,
+				3029341628273089,
+				3029860654573792,
+				3032025711852414,
+				3037301542633117,
+				3043362163532172,
+				3046942532736602,
+				3047560614153298,
+				3058265525461530,
+				3066520441915813,
+				3067617749310490,
+				3069588084448814,
+				3074702185506880,
+				3075220407582460,
+				3076244208144327,
+				3082035596981534,
+				3082684337973299,
+				3089609529942184,
+				3095274585087045,
+				3101732378482309,
+				3102736794392912,
+				3109437597065678,
+				3112190251462546,
+				3113226145811862,
+				3118812205090388,
+				3124544497793334,
+				3131734316784638,
+				3132682207292497,
+				3132925813753493,
+				3139825612758737,
+				3141363853260471,
+				3148897366994230,
+				3151103808181412,
+				3151917161098580,
+				3156079150759700,
+				3156480916105693,
+				3156944276864018,
+				3159271588902650,
+				3164104797435227,
+				3164525091077613,
+				3164974827254980,
+				3167718230972956,
+				3168575450833798,
+				3170370480028284,
+				3176686928818846,
+				3182112634136143,
+				3182324679992379,
+				3187961819489741,
+				3189533497565395,
+				3195488200716776,
+				3202400544324347,
+				3203298087861934,
+				3203505065127928,
+				3209700985683389,
+				3212616315093692,
+				3213988571539449,
+				3217129615253672,
+				3217544566048649,
+				3223034165546826,
+				3224023476960008,
+				3225178300018176,
+				3225933434121706,
+				3230869729714732,
+				3233217934193683,
+				3237005651498609,
+				3238514465894546,
+				3243666353441572,
+				3254156206685824,
+				3254289886842596,
+				3255800624584166,
+				3260711832345837,
+				3262376948747614,
+				3265854206172751,
+				3269648229920800,
+				3275817234748541,
+				3282079768381895,
+				3287276111505491,
+				3292486056879827,
+				3296962647322980,
+				3298104694887216,
+				3301669530810893,
+				3304166496816853,
+				3305961102863438,
+				3308465573850446,
+				3309153399130101,
+				3310503323115309,
+				3310733893659544,
+				3312750158140177,
+				3316364698543535,
+				3320900876696445,
+				3322417381274756,
+				3323175572722919,
+				3324783922465598,
+				3326614806453267,
+				3327598578299680,
+				3332031864527052,
+				3334521995297550,
+				3346776127533380,
+				3354456329798908,
+				3360793887233705,
+				3362271048917139,
+				3364061500454402,
+				3365541559217554,
+				3367062585985197,
+				3373419224413028,
+				3375494323790526,
+				3375965378037189,
+				3384681920227564,
+				3385759904131899,
+				3387950719650663,
+				3389100120874734,
+				3391826174525466,
+				3391858706936950,
+				3394590901326434,
+				3394733054252918,
+				3395256208930528,
+				3396327423037428,
+				3397773105741955,
+				3412193769311791,
+				3417344214880197,
+				3421829275385521,
+				3424706376942600,
+				3424770874849455,
+				3427299941551477,
+				3427966188243021,
+				3429852718600970,
+				3433564635899284,
+				3441475510943216,
+				3453716837938022,
+				3455541699650375,
+				3459151149293686,
+				3461011284749746,
+				3468017773810975,
+				3468478413435006,
+				3469733676910284,
+				3472461633787037,
+				3480467116590888,
+				3484985178759181,
+				3485528599363927,
+				3490271597518843,
+				3496369553818299,
+				3496543980542943,
+				3504564547469991,
+				3509864058867581,
+				3512032577594001,
+				3512898337591665,
+				3517727528637750,
+				3517811915720599,
+				3519670054138657,
+				3527308810683320,
+				3529317775237354,
+				3532119970224050,
+				3533346461072296,
+				3533801781903427,
+				3540777767502482,
+				3541206393355077,
+				3542568308544960,
+				3545494450790484,
+				3552450997041483,
+				3554172356249736,
+				3555009350805453,
+				3556120827022399,
+				3556170538121875,
+				3557677947017994,
+				3559649975277099,
+				3562717374600439,
+				3578996623416481,
+				3579385405969678,
+				3579826204570180,
+				3580903455144653,
+				3581448968541992,
+				3589031359889510,
+				3598426031321008,
+				3602549932138307,
+				3608650679937847,
+				3618063291627055,
+				3621135234847333,
+				3622185794780449,
+				3625832106907018,
+				3628376511791330,
+				3633897363477924,
+				3634597400467599,
+				3637533446136323,
+				3640921402798955,
+				3643628911563101,
+				3647315641012711,
+				3653050799060306,
+				3653452058229566,
+				3655348890841869,
+				3657162687556612,
+				3658380591429298,
+				3670928756870593,
+				3671439528499520,
+				3672224951714544,
+				3676005960022917,
+				3683461550546707,
+				3687598771689608,
+				3688537180270287,
+				3691655301359562,
+				3694629211962424,
+				3697015043361184,
+				3702246733486441,
+				3703190419827622,
+				3706241000403472,
+				3713280205748872,
+				3713786577838412,
+				3715299619541116,
+				3715399430058895,
+				3715464516467511,
+				3717724958857386,
+				3721431724647317,
+				3723597580546044,
+				3728622142857222,
+				3734908231985394,
+				3735719011408786,
+				3738568221599915,
+				3743961606118764,
+				3744877234597490,
+				3745691804464370,
+				3747058568012949,
+				3753675332473720,
+				3758221620808616,
+				3760926935470523,
+				3761600094219947,
+				3763145072980668,
+				3764174567576474,
+				3769592583143344,
+				3774411384146786,
+				3780659210183975,
+				3790555233065450,
+				3791666338809637,
+				3804345956543339,
+				3807404653684416,
+				3808516667364885,
+				3810328094993686,
+				3812086123586299,
+				3813318153999051,
+				3813449001940802,
+				3813469322421121,
+				3815874058973771,
+				3816796472084155,
+				3820076883477449,
+				3822882072310145,
+				3823086960376516,
+				3823300628048301,
+				3827295790337235,
+				3829536338807628,
+				3836371620235232,
+				3836834437558808,
+				3840123825705920,
+				3841884847725994,
+				3844780248437300,
+				3848836181647957
+			]
+		}
+	]
+}


=====================================
test/ref/reads.json
=====================================
@@ -0,0 +1,1021 @@
+{
+	"kmer" : 21,
+	"alphabet" : "ACGT",
+	"preserveCase" : false,
+	"canonical" : true,
+	"sketchSize" : 1000,
+	"hashType" : "MurmurHash3_x64_128",
+	"hashBits" : 64,
+	"hashSeed" : 42,
+ 	"sketches" :
+	[
+		{
+			"name" : "reads",
+			"length" : 502359,
+			"comment" : "[2000 seqs] SRR7885321.1 1 length=302 [...]",
+			"hashes" :
+			[
+				46491383595952,
+				100178539101135,
+				112565798999620,
+				312258088334861,
+				327506758448950,
+				390755089050721,
+				545034796114697,
+				585844926888365,
+				635136383123691,
+				644554837582965,
+				732691569753232,
+				742449454393303,
+				753153853702987,
+				772398320436697,
+				861763781830808,
+				907376842182960,
+				956777688150257,
+				957664219980442,
+				1025475811135389,
+				1060217018093196,
+				1108166494080021,
+				1124632343461454,
+				1124758206330345,
+				1197963051541675,
+				1223472291905776,
+				1229322190476138,
+				1279033375734577,
+				1327617093048938,
+				1337578450090171,
+				1383618410398270,
+				1501840430117884,
+				1505429101958216,
+				1610373911846835,
+				1631481276104406,
+				1654004508413302,
+				1775979806697265,
+				1801275206256617,
+				1881190341270586,
+				1882484501008945,
+				1930759754111553,
+				1980568214822849,
+				2023429428011322,
+				2023674656646132,
+				2025265340873843,
+				2041358419321528,
+				2044246544508087,
+				2060146604534036,
+				2104519934924809,
+				2137165687535943,
+				2168987310023653,
+				2301650179661192,
+				2314307504759831,
+				2440967105688895,
+				2449377188151471,
+				2569804992065676,
+				2634406262534294,
+				2670151490262491,
+				2716103836515161,
+				2741660511556431,
+				2746740739822815,
+				2795250868753790,
+				2796934217008523,
+				2830259086277627,
+				2855125351690727,
+				2855478885866684,
+				2927652349268240,
+				2943734024056827,
+				2965832364118588,
+				2991707264114691,
+				3003993427474573,
+				3024423721812592,
+				3029860654573792,
+				3164525091077613,
+				3182324679992379,
+				3195488200716776,
+				3223034165546826,
+				3225933434121706,
+				3254156206685824,
+				3262376948747614,
+				3351151371104660,
+				3404551184844146,
+				3406325407851319,
+				3413063729941371,
+				3421175480810039,
+				3422844413151330,
+				3454147883254448,
+				3490271597518843,
+				3509864058867581,
+				3544375496805865,
+				3580903455144653,
+				3643628911563101,
+				3671439528499520,
+				3701336865824908,
+				3757165922705827,
+				3791666338809637,
+				3795028387798767,
+				3813318153999051,
+				3816796472084155,
+				3860888804523460,
+				3889415131871372,
+				3917053492559807,
+				3923173118306245,
+				3926064929824923,
+				3936481708941320,
+				3959220638104661,
+				4018724785429646,
+				4092869042069419,
+				4101024717622840,
+				4146001591927211,
+				4159521219222929,
+				4161218688937757,
+				4213156180861343,
+				4260042644267182,
+				4274270668896048,
+				4289392086258291,
+				4313903103881637,
+				4384444165534822,
+				4413914210728928,
+				4444276710159983,
+				4519324738618364,
+				4563477645695586,
+				4584997588444931,
+				4588882368847958,
+				4630603735446003,
+				4650726365129083,
+				4756206974506970,
+				4791180443170130,
+				4814954096422653,
+				4845256832766776,
+				4854166216891908,
+				4905932281966984,
+				4979228426638091,
+				5016338966122686,
+				5016591687962014,
+				5080508310012510,
+				5088556791717240,
+				5132426954926581,
+				5148980250990256,
+				5243976997704565,
+				5287645478767897,
+				5333287473071844,
+				5386975842144570,
+				5445580157196750,
+				5472728336085921,
+				5486067987211268,
+				5510921714606156,
+				5516254888014156,
+				5535262954522235,
+				5557323231348066,
+				5561586553339569,
+				5583335211153654,
+				5591038921172465,
+				5593545597857557,
+				5635253064904946,
+				5647534168772475,
+				5648553106906646,
+				5707762488350730,
+				5754686370494109,
+				5766355933240157,
+				5803893689332093,
+				5829571994764557,
+				5830994252219125,
+				5859080619220994,
+				5871010252787677,
+				6046018190438837,
+				6050162097899483,
+				6076909087628102,
+				6103640832397770,
+				6144139965816849,
+				6160723392296856,
+				6167372250939378,
+				6216094863617291,
+				6221238639424316,
+				6227358377586073,
+				6230844835953987,
+				6263170972926126,
+				6290117943740219,
+				6311380195694991,
+				6364201369596275,
+				6375221759576633,
+				6393030055892435,
+				6480731486022647,
+				6480735812289876,
+				6500171898150299,
+				6506436218615639,
+				6515951171614089,
+				6564781728314826,
+				6568326263744387,
+				6573178773535278,
+				6578302166270354,
+				6584841380211501,
+				6621237049188252,
+				6722901807712388,
+				6747852412978431,
+				6822100204277336,
+				6848926219890382,
+				6853818491443933,
+				6929971272725003,
+				6931880560750517,
+				6939178355866962,
+				6940868016210900,
+				6946423621487146,
+				6947394199845773,
+				6984789661944611,
+				6985245606318144,
+				6994363248708417,
+				7268794764750076,
+				7358445198547209,
+				7416178528312624,
+				7430762223731570,
+				7445570533627963,
+				7454968044588513,
+				7510868637162769,
+				7545041443454243,
+				7591108387046624,
+				7646609744973725,
+				7665939473291737,
+				7674574889958818,
+				7684208044992885,
+				7707589327869064,
+				7716721045510667,
+				7822350133554977,
+				7896352435140504,
+				7922006282224037,
+				7938505541344069,
+				7944634833363757,
+				7958237890115892,
+				8017526242617715,
+				8044184034230448,
+				8051151538439456,
+				8056045855205771,
+				8142596272331308,
+				8179864612635877,
+				8190096274275782,
+				8200159383064348,
+				8301344556431535,
+				8315031461396977,
+				8327599730018706,
+				8416499520380454,
+				8426229263725945,
+				8445169186490623,
+				8462131047278645,
+				8471416538238614,
+				8501863874373356,
+				8502883030766102,
+				8549586904743920,
+				8550022748977778,
+				8568508094717510,
+				8610160831974098,
+				8629219888393242,
+				8646895613981820,
+				8697447499234046,
+				8722165604212256,
+				8754244360756140,
+				8774051203846072,
+				8806011350241903,
+				8865842697617917,
+				8884338078849004,
+				8890894647591594,
+				8913282277275219,
+				8920527252377698,
+				9007202001978984,
+				9037916445556738,
+				9074573824315647,
+				9076589951530744,
+				9107445861660467,
+				9168096297381430,
+				9176417956251397,
+				9201102619219927,
+				9264096168695847,
+				9360320677802368,
+				9367986326777249,
+				9421552372561113,
+				9493713660213447,
+				9569398313763428,
+				9580245945857920,
+				9610948155129548,
+				9630617505017715,
+				9655697412706381,
+				9658152728859963,
+				9669865355260858,
+				9673651859677183,
+				9679009532441464,
+				9785021228768621,
+				9807712276709322,
+				9812979217155111,
+				9912605219963361,
+				9929995652062695,
+				10009074273648598,
+				10068679812565710,
+				10106138790808912,
+				10186081809178983,
+				10263391906691201,
+				10266940725236704,
+				10267963811910533,
+				10271553794145779,
+				10296944372187219,
+				10324019693596800,
+				10324643374767511,
+				10324955878046065,
+				10338204671936683,
+				10365497347357152,
+				10372381561347421,
+				10389679794003959,
+				10416835219506642,
+				10417193470713127,
+				10477943918798861,
+				10513062600081396,
+				10513329281556569,
+				10539911846384479,
+				10582557270456518,
+				10613754695861216,
+				10643084701751160,
+				10726994714388160,
+				10825378225665282,
+				10840352570672003,
+				10851448866602129,
+				10870892173926172,
+				10871864134004932,
+				10970429377536222,
+				10977704821211775,
+				11054065299764817,
+				11067149831822668,
+				11092350999920285,
+				11094719529518453,
+				11183342894316005,
+				11238369836539039,
+				11275247828296791,
+				11314714584536024,
+				11394190856558439,
+				11415553728901252,
+				11425618236412006,
+				11482482973963068,
+				11528863309916537,
+				11541951364827087,
+				11551238514753935,
+				11563714740413117,
+				11568655924050071,
+				11581010626014689,
+				11587101814558401,
+				11616756803260001,
+				11660920649799182,
+				11692936349692655,
+				11718035510045116,
+				11736099809854683,
+				11757454866973974,
+				11764370968016405,
+				11785861853507629,
+				11873014453051905,
+				11874941833135409,
+				11963061612514289,
+				12014085241005448,
+				12041176893208884,
+				12078080116339817,
+				12103223005270300,
+				12123754226921788,
+				12162214637207210,
+				12177073432838854,
+				12177482041794365,
+				12259810079628854,
+				12261941590586740,
+				12264313613618296,
+				12283360008462683,
+				12503721266030345,
+				12520566909664694,
+				12558490321896606,
+				12568238822375401,
+				12595335564660359,
+				12603344205307305,
+				12639821555522561,
+				12659770203428063,
+				12812772652210658,
+				12883475524957152,
+				12958528732054451,
+				13056604442117108,
+				13061243003532606,
+				13084909904377042,
+				13096025236907860,
+				13111582977057617,
+				13137513681803362,
+				13174217796402044,
+				13213691979848680,
+				13226340804603421,
+				13322875038525079,
+				13347135903517567,
+				13397401763987432,
+				13417670514313993,
+				13548573983883736,
+				13627627921097562,
+				13742572461559406,
+				13761457071497945,
+				13779011352588702,
+				13810493587784572,
+				13854386928136825,
+				13984073775479735,
+				14039087118721023,
+				14067123363091348,
+				14081419959611914,
+				14119603414886261,
+				14142383023411174,
+				14220618344645269,
+				14270357029046210,
+				14344521908890168,
+				14354573544708105,
+				14368956423969359,
+				14375167498830557,
+				14473708606621642,
+				14485296256423702,
+				14485602312588115,
+				14584407154801939,
+				14614406347124620,
+				14641661446699141,
+				14663599207326471,
+				14663898769847663,
+				14669179733341709,
+				14718473981525745,
+				14842425003255586,
+				14867705283542617,
+				14892208355393207,
+				14961733879654495,
+				15012110948098189,
+				15082922040915632,
+				15096283654919457,
+				15099627020257434,
+				15106790263965773,
+				15123011315470810,
+				15171145319360393,
+				15171861273564435,
+				15197484416835154,
+				15280986113303471,
+				15303798475010946,
+				15329899113809689,
+				15334816660190717,
+				15462554700534956,
+				15469507481052050,
+				15472267869971738,
+				15482911162996625,
+				15556734291156837,
+				15656606200055633,
+				15688649129631650,
+				15723487858771950,
+				15731194051709871,
+				15731554146685093,
+				15761937161707806,
+				15815733033667741,
+				15845632539295630,
+				15861078978204028,
+				15895543117272749,
+				15920795471266349,
+				15969153930704192,
+				15997411295816354,
+				15998436811510812,
+				16029197423436785,
+				16086141306183876,
+				16168571642914382,
+				16208345523678749,
+				16219065640201583,
+				16220297928845886,
+				16232065175824789,
+				16258761697756185,
+				16271784283038808,
+				16291200029741485,
+				16330008443106471,
+				16368614614506120,
+				16372447723044168,
+				16420912593234259,
+				16467667555310350,
+				16587928460401420,
+				16603881339291218,
+				16678066607295182,
+				16785823172451397,
+				16804367921562432,
+				16827762958632503,
+				16903314823459261,
+				17033737795230338,
+				17199496156242576,
+				17231594051279785,
+				17310891680943496,
+				17326506205233463,
+				17353981438007556,
+				17369945667390546,
+				17380497791932182,
+				17380857308728788,
+				17401937938029560,
+				17410174293574451,
+				17461808780675229,
+				17522541711047416,
+				17536809392095435,
+				17546740749700683,
+				17613603438462737,
+				17656179820101656,
+				17660592298793235,
+				17671296242493267,
+				17696068444901293,
+				17755046722904839,
+				17821841191407654,
+				17842927206089298,
+				17866938445806064,
+				17967430043445273,
+				17970477550851477,
+				18038759197738802,
+				18097699797590914,
+				18099970200452142,
+				18169325140301768,
+				18260306722543684,
+				18289531354116782,
+				18308569332005892,
+				18308785552470596,
+				18320689979958784,
+				18373228548764203,
+				18434084795138949,
+				18459455093035262,
+				18486921458215905,
+				18497857373523252,
+				18530599789564008,
+				18577003531497839,
+				18588881810828923,
+				18651093184703693,
+				18654972833327353,
+				18672577278537993,
+				18688087008806104,
+				18689886086846563,
+				18794037271240278,
+				18797120537619641,
+				18841623850131385,
+				18842796940766143,
+				18860852642863926,
+				18875276352141491,
+				18885578557589326,
+				18924161458605428,
+				18960831807199433,
+				19011006618490598,
+				19054264101639400,
+				19117759389532261,
+				19159867221251531,
+				19169034492398081,
+				19209663066996028,
+				19283094247623738,
+				19296493521541514,
+				19406203182079510,
+				19486402940688331,
+				19513057664184554,
+				19545675786891792,
+				19793295771005215,
+				19803737038899382,
+				19809117990523192,
+				19814853591996177,
+				19831787664805966,
+				19848933789316734,
+				19900500331083663,
+				19954154939597863,
+				20036064548815646,
+				20056760101321507,
+				20112758512696747,
+				20130678846150998,
+				20151799928974288,
+				20169300195582032,
+				20194577407788716,
+				20373377092305827,
+				20440343903465324,
+				20468248460842035,
+				20479669361995104,
+				20489800375394797,
+				20494891957348019,
+				20513851819558973,
+				20551199055344442,
+				20601444246305870,
+				20601925567288182,
+				20729981734471973,
+				20757396503093904,
+				20764822732552546,
+				20783395626964342,
+				20832331520612925,
+				20861799051620607,
+				20971004090563936,
+				21032378411168842,
+				21065491889101609,
+				21179802319191407,
+				21195794019058977,
+				21209425346596704,
+				21238832490762256,
+				21262864479173559,
+				21296735838831406,
+				21369009407642118,
+				21542404956988094,
+				21615528476192831,
+				21650712050739234,
+				21682899883804505,
+				21807660589603008,
+				21832008520134955,
+				21898836747201591,
+				21947739793041113,
+				21991341760596839,
+				22082110290067346,
+				22087040141596115,
+				22160129053056367,
+				22186655885731319,
+				22242349781207156,
+				22282022704807915,
+				22315093109979223,
+				22334251059904114,
+				22359325542858318,
+				22367635604917849,
+				22453212949947772,
+				22531894380220715,
+				22650115348459390,
+				22653255373483912,
+				22664179541712460,
+				22696719339940196,
+				22724458408611001,
+				22812953830615366,
+				22858835766175936,
+				22885118594104950,
+				22896860181000365,
+				22932970975461651,
+				22959695978281064,
+				23026977621224742,
+				23063781922072870,
+				23065156675416832,
+				23098310384773441,
+				23135505085265248,
+				23146471556625994,
+				23209308289656097,
+				23247563959112694,
+				23258485819866021,
+				23300141508653145,
+				23320509297091069,
+				23391420697071304,
+				23409299970013852,
+				23414360567509509,
+				23431420527747141,
+				23442302891222021,
+				23445882084485883,
+				23518122700580510,
+				23520965575055661,
+				23528043699974306,
+				23542521829517793,
+				23571656076528131,
+				23609510202989689,
+				23646033889267918,
+				23663792067845492,
+				23711918537726053,
+				23766712432499514,
+				23787147787222320,
+				23847791451585900,
+				23860969854920468,
+				23932909292984722,
+				23956385005901371,
+				24022841329478067,
+				24079117974191654,
+				24166947121052996,
+				24222625202129761,
+				24237862720295953,
+				24251275376958579,
+				24255051624581435,
+				24268463182106372,
+				24303376649141769,
+				24306917116704116,
+				24315382512007133,
+				24351278525819921,
+				24356408728917523,
+				24437161458289761,
+				24443034611606896,
+				24446101810166665,
+				24461687639439164,
+				24504647579985598,
+				24506030746806197,
+				24534655197901233,
+				24551090737328642,
+				24573383754635984,
+				24632094604759541,
+				24654108389452255,
+				24680374561518840,
+				24685880581015742,
+				24735787231672611,
+				24799377233502630,
+				24831228366736723,
+				24831952529788001,
+				24832362256381477,
+				24847597008230002,
+				24949365118898143,
+				24961893880712907,
+				25002233084808568,
+				25006818660808608,
+				25007875247062427,
+				25009403196790454,
+				25015520700790219,
+				25156295850726189,
+				25175826431637984,
+				25178057030680286,
+				25178337922614123,
+				25308569622354226,
+				25326752401468544,
+				25378526415802198,
+				25439308807268745,
+				25463504348189306,
+				25470255715555720,
+				25491339401212235,
+				25569705420864583,
+				25634600256308086,
+				25642754124493895,
+				25648611859777576,
+				25650868658837872,
+				25671172843522458,
+				25694639623151656,
+				25713420701192710,
+				25717324547817438,
+				25738490699926615,
+				25742390298737401,
+				25758880394217575,
+				25768994352733800,
+				25779409338649774,
+				25818279957527435,
+				25970303412930297,
+				25974333566539140,
+				26106237998609302,
+				26123466700194004,
+				26164669335218143,
+				26264270950753765,
+				26265656682261342,
+				26298284502445291,
+				26311744362885118,
+				26410538758414176,
+				26435712366760957,
+				26489430230690250,
+				26511497752548584,
+				26531564687299303,
+				26585411670534769,
+				26603384460864027,
+				26640814323690783,
+				26642401976452115,
+				26729570046904907,
+				26766558055764350,
+				26797345990780957,
+				26838724479408791,
+				26886679667133747,
+				26955632060805405,
+				26993357958980421,
+				27025019681724779,
+				27077191390608775,
+				27087720738003653,
+				27123845684946671,
+				27126432044742222,
+				27162337221366964,
+				27213380784971017,
+				27240847844430786,
+				27259713819412633,
+				27276614710686010,
+				27350389252955175,
+				27399432084259673,
+				27412393998850283,
+				27413768877205104,
+				27461859552466948,
+				27473173699526709,
+				27475019125772512,
+				27494427993613453,
+				27499098330955448,
+				27520785720462070,
+				27548341855527193,
+				27555874418513663,
+				27588867120867504,
+				27638869407251394,
+				27738490886237461,
+				27839906778428445,
+				27899480542454729,
+				27959304800218841,
+				28005659466173574,
+				28029636619794969,
+				28036006197197815,
+				28129487979396681,
+				28148965477456548,
+				28176939284049546,
+				28191160003804462,
+				28199666451010352,
+				28200204766646350,
+				28223339428349207,
+				28284927840868151,
+				28318254264571946,
+				28392106857416536,
+				28402724202226392,
+				28416340527974032,
+				28470504824880442,
+				28516046634604043,
+				28545906389349223,
+				28558741019264205,
+				28572551023024739,
+				28649423546914701,
+				28664960444216984,
+				28675518251690559,
+				28692704844104009,
+				28714072893198685,
+				28774240657044568,
+				28788217665047189,
+				28871159264483748,
+				28920777789638828,
+				28966208935115155,
+				28991447462653454,
+				29004900490695378,
+				29036498034907092,
+				29107403473520295,
+				29256395290099610,
+				29284732003787287,
+				29300680127503883,
+				29339677384247865,
+				29356237779188168,
+				29381347223400775,
+				29389132252164433,
+				29416641406851030,
+				29484138342757119,
+				29508098456346488,
+				29529880778915383,
+				29580893859504502,
+				29686265623130798,
+				29761706129994935,
+				29778732139686961,
+				29782911194718608,
+				29848676515433893,
+				29938154204272780,
+				29969622223967408,
+				29986934099697754,
+				29996445286646126,
+				30019268678615732,
+				30022751138351804,
+				30047200473758690,
+				30108142325098107,
+				30127053729881377,
+				30228482518194158,
+				30246396574239367,
+				30246533136678478,
+				30302100188063526,
+				30311933354650179,
+				30412288034142083,
+				30469586175031048,
+				30492669745833624,
+				30507185519215185,
+				30519730198729604,
+				30598262664480088,
+				30608085987072357,
+				30616533933178789,
+				30635971363871989,
+				30650080602664173,
+				30678165912917425,
+				30679594828049430,
+				30684432008059137,
+				30687762644510059,
+				30728940536817280,
+				30741272073675107,
+				30763248467466539,
+				30764214244770262,
+				30772461723953695,
+				30837678985604536,
+				30863131652090210,
+				30947573679027737,
+				30972344374937758,
+				31053342746205580,
+				31065021269007904,
+				31121132243600542,
+				31136028515004417,
+				31175473999963974,
+				31231590917141685,
+				31275362952955610,
+				31326522440754549,
+				31391718241714934,
+				31405704498766911,
+				31476388512468513,
+				31490910285050697,
+				31504513650916622,
+				31578349027100951,
+				31629815502045207,
+				31631979091893046,
+				31814007702274474,
+				31892752483758785,
+				31901917130175376,
+				31909743394055228,
+				31910711330506944,
+				31922583194830760,
+				32007648348911317,
+				32021191671019389,
+				32023212097642523,
+				32049256789738948,
+				32059018287280268,
+				32174134489645327,
+				32263725688749997,
+				32276444215935593,
+				32365652949976426,
+				32388546117545634,
+				32429349734321363,
+				32528869412070157,
+				32597590699479615,
+				32615173405932120,
+				32629954673516118,
+				32682779259177716,
+				32749904774831447,
+				32783743396814010,
+				32797493102095228,
+				32830144433719654,
+				32830417685511593,
+				32905544133025967,
+				32958700947450407,
+				32962394399508395,
+				33052165135485136,
+				33064819217543236,
+				33097275266752753,
+				33130365793988179,
+				33162288650734818,
+				33203129415317421,
+				33214101064718622,
+				33285762042573320,
+				33297689902246484,
+				33378264516224325,
+				33493616240805093,
+				33494022107741587,
+				33500886447508256,
+				33625164252539869,
+				33634456943159476,
+				33679549269375879,
+				33680072493081573,
+				33682525994348022,
+				33729481097802709,
+				33792056898160550,
+				33811999046805387,
+				33818975614658561,
+				33847882053457229,
+				33969887281800750,
+				33988946867755394,
+				33990978133430589,
+				34007360997728768,
+				34010381063033750,
+				34131225131955355,
+				34134279145351937,
+				34138291837154405,
+				34151671510589265,
+				34191049057224889,
+				34269243531227042,
+				34288661622496258,
+				34304742914656020,
+				34360304054300798,
+				34392920788334122,
+				34405314056969819,
+				34437921968328340,
+				34448434829108485,
+				34467181325571453,
+				34479580899285656,
+				34489557079280463,
+				34615753301493680,
+				34617260274005013,
+				34685114365264944,
+				34749514575222707,
+				34770520945948192,
+				34842072403070351,
+				34853355303755959,
+				34922481286884318,
+				35021453861246647,
+				35050855088760856,
+				35072294543087079,
+				35087008397129198,
+				35205686631856922,
+				35215686472388882,
+				35231206824840131,
+				35244731086190280,
+				35273971253306221,
+				35355665919180614,
+				35362348246603126,
+				35373477397676064,
+				35413223597132334,
+				35449340987566923,
+				35492876928883845,
+				35550046054290202,
+				35574316417751330,
+				35708898715091356,
+				35755933943581085,
+				35785462061815781,
+				35837448177622184,
+				35846638658297964,
+				35857075504760177,
+				35888956601502018,
+				35971737223800858,
+				36028675500825422,
+				36083910147361727,
+				36139454655991162,
+				36144072422799294,
+				36153973177385557,
+				36178045638703428,
+				36237884058544224,
+				36297291692409619,
+				36330850860170876,
+				36377417239395709,
+				36439270512184045,
+				36445848960566598,
+				36512251955911198,
+				36534035929526555,
+				36547282113053498,
+				36556441906177151,
+				36562222467392426,
+				36569268437330210,
+				36589318137162087,
+				36675398242750400,
+				36678500990632317,
+				36697477554500277,
+				36720173020770731
+			]
+		}
+	]
+}


=====================================
test/ref/screen
=====================================
@@ -0,0 +1,3 @@
+0.861792	44/1000	1	5.00739e-229	genome1.fna	gi|49175990|ref|NC_000913.2| Escherichia coli str. K-12 substr. MG1655, complete genome
+0.853596	36/1000	1	1.70479e-184	genome2.fna	gi|47118301|dbj|BA000007.2| Escherichia coli O157:H7 str. Sakai DNA, complete genome
+0.861792	44/1000	1	5.00739e-229	genome3.fna	gi|682117612|gb|CP009273.1| Escherichia coli BW25113, complete genome



View it on GitLab: https://salsa.debian.org/med-team/mash/commit/89bf5d7425a8d6406ec91e4b23239749e5a7c98a

-- 
View it on GitLab: https://salsa.debian.org/med-team/mash/commit/89bf5d7425a8d6406ec91e4b23239749e5a7c98a
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20181011/04ad4a90/attachment-0001.html>


More information about the debian-med-commit mailing list