Fiona: a parallel and automatic strategy for read error correction


Fiona is a tool for the automatic correction of sequencing errors in reads produced by high throughput sequencing experiments. It uses an efficient implementation of suffix arrays to detect read overlaps with different seed lengths in parallel. Fiona was compared on several real datasets to state-of-the-art methods and  showed overall superior correction accuracy. It was also among the fastest. Additionaly Fiona embarks unique characteristics which makes it a good choice over existing programs:

  • No parameters to set for the user. You just need to know the length of the genome!
  • Correction of both substitution and indel errors.
  • Optimal correction over a range of seed values.
  • Multicore-Parallelization using OpenMP.
  • Efficient, memory-saving implementation.


Follow the link below to download a binary of Fiona for your platform or compile your own (see Compilation From Source below). Please take a look at the README file for usage instructions.

  • Fiona (v0.1) - Linux x86 64 bit binaries of Fiona built in Debian 6.0.6.
  • Fiona (v0.2.0) - Linux x86 64 bit binaries of Fiona built in Debian 6.0.6.

Quick start

To be run fiona needs only one parameters, an estimate of the genome length. The command:

fiona -g 314159 IN.fq OUT.fq

will correct reads in IN.fq and write the results to OUT.fq, given the genome length is 314,159bp. If you are running Fiona on a multicore architecture, you can specify the
-nt t option with t being the number of threads in you want to use. If you know an estimate on the base-wise error rate, you can also provide it with the -e parameter.

fiona -g 314159 -e 0.02-nt 4 IN.fq OUT.fq

will run fiona with 4 threads and an estimated error rate of 2% (default error rate is 1%).

Version History

2014-03-13: v0.2

  • Second Release of Fiona.

2013-01-07: v0.1

  • Initial Release of Fiona.

Compilation From Source

Make sure that your compiler supports OpenMP, e.g. Visual C++ and GNU/g++, but not clang. If not set the CXX variable appropriately. Follow the Getting Started section and check out and compile the latest Fiona version, e.g. with cmake/make as follows:

git clone --depth=1 git:// fiona
mkdir fiona/build
cd fiona/build
cmake ..
make fiona fiona_illumina


For questions, comments, or suggestions feel free to contact Marcel Schulz or Hugues Richard.


  • Schulz M.H., Weese D., Holtgrewe M., Dimitrova V., Niu S., Reinert K., & Richard H. (2014) Fiona: a parallel and automatic strategy for read error correction. submitted.

Author Affiliations

Marcel Schulz @Cluster of Excellence MCI
David Weese @FU Berlin UPMC Logo

Last Update 16. June 2014