The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.
Branch: master
Clone or download
h-2 Merge pull request #753 from smehringer/argument_parser_from_chars
[MISC] Refactor argument_parser to exit
Latest commit 4b72296 Feb 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build_system [FEATUTE] MinGW support Jan 29, 2019
doc
include/seqan3 [MISC] Refactor argument_parser to exit instead of throwing seqan3::p… Feb 20, 2019
submodules [sdsl] track master with range fix Feb 1, 2019
test [MISC] Refactor argument_parser to exit instead of throwing seqan3::p… Feb 20, 2019
.gitmodules [submodules] move submodules into subdirectory Mar 13, 2018
.jenkinsfile [FEATURE] Add try-catch block to set build status and commit statuts … Feb 18, 2019
.travis.yml [INFRA] Moves the coverage test up to be executed first. Jan 28, 2019
LICENSE [MISC] Change copyright year of existing short header Jan 15, 2019
README.md Update README.md Sep 25, 2018

README.md

SeqAn3 -- the modern C++ library for sequence analysis

SeqAn3 is the next version of the popular SeqAn template library for the analysis of biological sequences. If you develop applications, we recommend you currently stick to SeqAn2.

SeqAn3 is major redesign of SeqAn and has fundamental changes throughout the codebase. We expect that porting applications from SeqAn2 to SeqAn3 requires substantial work, however by embracing new technologies from C++17 and modern third party libraries, SeqAn3 will be a much improved experience over SeqAn2.

Quick facts

  • same design goals as SeqAn2: fast, efficient, extensible C++ header library for sequence analysis
  • different design patterns: generic programming via C++ Concepts, encapsulation and members
  • modern C++ that relies heavily on C++17, the Concepts TS and Ranges TS

Requirements

Users of the library

To include SeqAn3 in your app, you need the following:

requirement version comment
compiler GCC ≥ 7 no other compiler is currently supported!
build system cmake ≥ 3.4 optional, but recommended
required libs SDSL ≥ 3 succint datastructures
Ranges-V3 == 0.3.* ranges and views
optional libs Cereal ≥ 1.2.3 serialisation
Lemon ≥ 1.3.1 graphs, required for MSA

Developers of the library

To build the tests and API documentation, you also need:

requirement version
build system cmake ≥ 3.4
test system GoogleTest ≥ 1.8
doc system Doxygen ≥ 1.8

Using

To use SeqAn3, clone this repository including it's submodules:

git clone --recursive https://github.com/seqan/seqan3.git

SeqAn3 is still a header-only library so it is sufficient to add the include folder to your include path. When building make sure that you add the required parameters:

g++-7 -std=c++17 -fconcepts -I /path/to/seqan3/include -I /path/to/seqan3/submodules/range-v3/include -I /path/to/seqan3/submodules/sdsl-lite/include myfile.cpp

Documentation

Recommended reading for (modern) C++

Users of the library

Developers of the library