Library: implemented checkpointing for paired reads

Resolves-bug: https://github.com/sebhtml/ray/issues/19
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
SeedingData: reduced amount of printed information

This patch reduces the amount of information reported
in the standard output.

Resolves-bug: https://github.com/sebhtml/ray/issues/127
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
removed all calls to fflush(stdout) and cout.flush()

These calls are really not friendly with distributed file systems such
as Lustre and GPFS.

Resolves-bug: https://github.com/sebhtml/ray/issues/129
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
SeedExtender: reduce the verbosity of graph traversal

Since a lot of seeds won't produce good traversals, it is
useless to be too verbose in these cases.

Resolves-bug: https://github.com/sebhtml/ray/issues/128
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
reduced the amount of information in the standard output

For particular problems, the high amount of information causes
mpiexec to consume almost all the system memory, presumably due to
buffering.

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
JoinerTaskCreator: reduced the default verbosity

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
KmerAcademyBuilder: reduced the verbosity for graph construction

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
SequencesLoader: reduced verbosity

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
VerticesExtractor: reduced verbosity

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
reduced verbosity

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
reduced verbosity

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
SequencesLoader: the Illumina export format is now supported

I decided to implement the export format because some datasets in
Amazon EC2 are in this format. This change is quite simple and
without any impact on the algorithms.

This dataset is in export format:

SNAPSHOT    snap-53b3cb3a    vol-ce0dcba7    completed
2010-01-10T20:48:42+0000    100%    947081328633    350    Illumina -
Jay Flatley Genome Data Set (Linux)

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
added a loader interface for file formats

Resolves-bug: https://github.com/sebhtml/ray/issues/16
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
SequencesLoader: all supported formats use the interface

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
SequencesLoader: implemented a product factory

Several code paths were tested.

Key:
[x] = Pass
[!] = Fail
[-] = Not applicable
[?] = Not evaluated
[ ] = Manual review needed

[x] fasta
[x] fasta.gz
[x] fasta.bz2
[x] fastq
[x] fastq.gz
[x] fastq.bz2
[x] export.txt
[x] sff

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
Mock: updated documentation for new export format

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
Mock: output a single file for library data

It is better to write only 1 file instead of many files that pollute
the directory.

Resolves-bug: https://github.com/sebhtml/ray/issues/124
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
implemented an adaptive Bloom filter

The previous Bloom filter used a constant number of bits
regardless of the data. The new code scales with the data:
more bits for more reads.

Resolves-bug: https://github.com/sebhtml/ray/issues/139
Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
improved the interface of path objects

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>
add debug symbols by default

Signed-off-by: Sébastien Boisvert <sebastien.boisvert.3@ulaval.ca>