Motivation: During the last years NGS sequencing has become a key technology for many applications in the biomedical sciences. Throughput continues to increase and new protocols provide longer reads than currently available. In almost all applications, read mapping is a first step. Hence, it is crucial to have algorithms and implementations that perform fast, with high sensitivity, and are able to deal with long reads and a large absolute number of indels.
Results: RazerS is a read mapping program with adjustable sensitivity based on counting q-grams. In this work we propose the successor RazerS 3 which now supports shared-memory parallelism, an additional seed-based filter with adjustable sensitivity, a much faster, banded version of the Myers’ bit-vector algorithm for verification, memory saving measures and support for the SAM output format. This leads to a much improved performance for mapping reads, in particular long reads with many errors. We extensively compare RazerS 3 with other popular read mappers and show that its results are often superior to them in terms of sensitivity while exhibiting practical and often competetive run times. In addition, RazerS 3 works without a precomputed index.
Availability and Implementation: Source code and binaries are freely available for download at http://www.seqan.de/projects/razers. RazerS 3 is implemented in C++ and OpenMP under a GPL license using the SeqAn library and supports Linux, Mac OS X, and Windows.
- import of FASTA/FASTQ read and genome files
- 5 output formats (including SAM)
- reads can be of arbitrary length
- supports Hamming and edit distance read mapping with configurable error rates
- supports paired-end read mapping
- configurable and predictable sensitivity (runtime/sensitivity tradeoff)
- key improvements (compared to RazerS):
- multicore parallelization
- additional pigeonhole filter optimized for low error-rates with controllable sensitivity
- banded Myers’ algorithm for verification
- full sensitivity under the definition given in Rabema
- SAM output
To install RazerS 3 you can either download a precompiled binary of RazerS 3 or follow the instruction in the Compilation from Source Code section (below). Please take a look at the README file for usage instructions.
Previous versions of RazerS can be found here.
- moved the sources of RazerS 3 from private sandbox to seqan/extras, see README for installation instructions
- removed the gapped_params folder (required for sensitivity control of the SWIFT filter) and instead compiled the parameters into the binary. It is still possible to use a custom parameter folder with the -pd option
- switched from deprecated CommandLineParser to the new ArgumentParser
- updated README to the new features of RazerS 3
- updated command line interface
- -id to enabled indels was removed (enabled by default)
- -ng to disable indels was added
- -fl pigeonhole (default) and -fl swift added to manually select the filter
- first official release of RazerS 3
- this version was used in the submitted publication
Compilation from Source Code
Follow the Getting Started section and check out the latest SVN trunk. Instead of creating a project file in Debug mode, switch to Release mode (-DCMAKE_BUILD_TYPE=Release) and compile razers3. This can be done as follows:
svn co http://svn.seqan.de/seqan/trunk seqan-trunk
cmake .. -DCMAKE_BUILD_TYPE=Release
If RazerS 3 will be run on the same machine it is compiled on, you may consider to optimize for the given system architecture. For gcc or llvm/clang compilers this can be done with:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS:STRING="-march=native"
After successful compilation, copy the binary to a folder in your PATH variable, e.g. /usr/local/bin:
sudo cp bin/razers3 /usr/local/bin
For questions, comments, or suggestions feel free to contact David Weese.
- Weese, D., Holtgrewe M., & Reinert, K. (2012). RazerS 3: Faster, fully sensitive read mapping. Bioinformatics, 28(20), 2592–2599.
- Weese, D., Emde, A.-K., Rausch, T., Döring, A., & Reinert, K. (2009). RazerS – Fast read mapping with sensitivity control. Genome Research, 19(9), 1646–1654.
Last Update 8. May 2013