Home

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 -->

build status codecov license latest release platforms start twitter

<!-- 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:

By leveraging Modern C++ it provides unprecedented ease-of-use without sacrificing performance.

Please see the online documentation for more details.

Quick facts

Dependencies

requirementversioncomment
compilerGCC≥ 11no other compiler is currently supported!
build systemCMake≥ 3.5optional, but recommended
required libsSDSL≥ 3.0.3
optional libscereal≥ 1.3.1required for serialisation and CTD support
zlib≥ 1.2required for *.gz and .bam file support
bzip2≥ 1.0required for *.bz2 file support

Usage

We recommend that you use CMake to build your project:

Quick-Setup without CMake:

g++-11 -O3 -DNDEBUG -Wall -Wextra                               \
    -std=c++20                                                  \
    -I       /path/to/seqan3/include                            \
    -isystem /path/to/seqan3/submodules/sdsl-lite/include       \
    -isystem /path/to/seqan3/submodules/cereal/include          \
    -DSEQAN3_HAS_ZLIB=1 -DSEQAN3_HAS_BZIP2=1                    \
    -lz -lbz2 -pthread                                          \
  your_file.cpp