Awesome
SeqAn3 -- the modern C++ library for sequence analysis
<!-- SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik SPDX-License-Identifier: CC-BY-4.0 --> <!-- Above uses reference-style links with numbers. See also https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links. For example, `[![build status][1]][2]` evaluates to the following: `[link_text][2]` `[2]` is a reference to a link, i.e. `[link_text](https://...)` `[link_text]` = `[![build status][1]]` `[1]` is once again a reference to a link - this time an image, i.e. `[![build status](https://...)] `![build status]` is the text that should be displayed if the linked resource (`[1]`) is not available `[![build status][1]][2]` hence means: Show the picture linked under `[1]`. In case it cannot be displayed, show the text "build status" instead. The picture, or alternative text, should link to `[2]`. -->SeqAn3 is the new version of the popular SeqAn template library for the analysis of biological sequences. It enables the rapid development of high-performance solutions by providing generic algorithms and data structures for:
- sequence representation and transformation
- full-text indexing and efficient search
- sequence alignment
- input/output of common file formats
By leveraging Modern C++ it provides unprecedented ease-of-use without sacrificing performance.
Please see the online documentation for more details.
Quick facts
- C++ header-only library: easy to integrate with your app & easy to distribute
- liberal open source license: allows integration with any app or library, requires only attribution
- very high code quality standards: >97% unit test coverage, performance regression tests, ...
- extensive API documentation & tutorials: more lines of documentation than lines of code
- aims to support any 64-bit architecture running Linux/POSIX; currently big-endian CPU architectures like s390x are less supported
Dependencies
requirement | version | comment | |
---|---|---|---|
compiler | GCC | ≥ 12 | |
Clang | ≥ 17 | tested with -stdlib=libc++ | |
IntelOneAPI | ≥ 2024.0 | ||
build system | CMake | ≥ 3.20 | optional, but recommended |
required libs | SDSL | ≥ 3.0.3 | |
optional libs | cereal | ≥ 1.3.1 | required for serialisation and CTD support |
zlib | ≥ 1.2 | required for *.gz and .bam file support | |
bzip2 | ≥ 1.0 | required for *.bz2 file support |
Usage
We recommend that you use CMake to build your project:
- Setup-Tutorial
- Using CMake guarantees that all optional dependencies are automatically detected and activated.