FirstLoveLife / seqan3

The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.

Home Page:http://www.seqan.de

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

The modern C++ library for sequence analysis. Contains version 3 of the library and API docs.

http://www.seqan.de

License:Other


Languages

Language:C++ 98.3%Language:CMake 1.7%