Algorithms

SeqAn contains many efficient implementations of core bioinformatics algorithms. This starts with the standard dynamic programming based alignment algorithms with all its subtypes. Global alignment, local alignment, banded and unbanded, for proteins or DNA, using seeds or not, needing a traceback or not. Check out nearly 200 combinations of this module which incidentally will soon be fully multithreaded and SIMD accelerated.

../../_images/stellarextension-150x150.png

A depiction of the extension phase of the Stellar algorithm.

../../_images/fionaalg-150x150.png

A depiction of the error correcting algorithm in the Fiona algorithm.

SeqAn contains algorithms for read mapping based on q-gram or string indices, multiple alignment algorithms, filter algorithms for string search as well es error correction methods.

The algorithms are usually generic in the sense that they can be configured via template arguments and usually work for many, if not arbitrary alphabets. SeqAn applications are usually short, very maintainable combinations of those core algorithmic components. Being well defined, the SeqAn components are quite amenable to optimisation and acceleration using multicore computing, vectorisation or accelerators.

On the right you will find several tutorials about SeqAn’s algorithms. Under Pattern Matching you will find tutorials for online or indexed pattern search. Under DP Alignment you will find tutorials for all versions of DP based alignments (pairwise and multiple) and as special cases consensus alignment under Consensus Alignment and realignment algorithms under Realignment.

Under Seed Extension you will find tutorials for SeqAn’s seed module and various extension algorithms. And finally you can find under Graph Algorithms algorithms that work on SeqAn’s graph type.