• Stars
    star
    408
  • Rank 105,946 (Top 3 %)
  • Language
    C++
  • License
    Other
  • Created over 8 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

build status codecov license latest release platforms start twitter

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 ≥ 11 no other compiler is currently supported!
build system CMake ≥ 3.5 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.

Quick-Setup without CMake:

  • Clone the repository with submodules: git clone --recurse-submodules https://github.com/seqan/seqan3.git
  • Add the following to your compiler invocation:
    • the include directories of SeqAn and its dependencies
    • C++20 mode
    • Macros indicating the presence of zlib and bzip2 (set only if actually available in your paths!)
  • The command could look like this:
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

Sponsorships

Vercel

Vercel is kind enough to sponsor our documentation preview-builds within our pull requests. Check them out!

More Repositories

1

seqan

SeqAn's official repository.
C++
476
star
2

lambda

LAMBDA – the Local Aligner for Massive Biological DatA
C++
77
star
3

flexbar

flexible barcode and adapter removal
C++
76
star
4

raptor

A fast and space-efficient pre-filter for querying very large collections of nucleotide sequences.
C++
52
star
5

slimm

Species Level Identification of Microbes from Metagenomes
C++
27
star
6

needle

A fast and space-efficient pre-filter for estimating the quantification of very large collections of nucleotide sequences
C++
14
star
7

vaquita

Identification of structural variations
C++
12
star
8

sharg-parser

The modern argument parser for c++ tools
C++
10
star
9

chopper

A tool for partitioning a set of sequences into similar batches.
C++
9
star
10

iGenVar

The official repository for the iGenVar project.
C++
9
star
11

app-template

This template comes pre-configured with various SeqAn libraries and a basic Continuous Integration setup. It is designed to provide a robust starting point for your projects, while offering the flexibility to customize and adapt to your specific requirements.
CMake
6
star
12

seqan3-doc

All the scripts for generating API docs on ReadTheDocs
Python
6
star
13

learning-resources

Provides online material and tutorials for modern C++, efficient data structures and algorithms.
C++
6
star
14

lemon

Clone of the latest release of the lemon library (only the headers)
C++
5
star
15

anise_basil

Methods for the detection and assembly of novel sequence in high-throughput sequencing data
C++
5
star
16

knime_seqan_workflows

KNIME example workflows for NGS data analysis with SeqAn apps.
5
star
17

lara

LaRA 2: Lagrangian Relaxed structural Alignment
C++
4
star
18

hibf

HIBF and IBF
C++
4
star
19

bench

SeqAn Benchmarks
JavaScript
3
star
20

seqan-py

Provides python bindings for SeqAn.
2
star
21

product_backlog

This repository is used as product backlog for all SeqAn relevant backlog items. This is intended to organise the work for the team.
2
star
22

Hierachical_Interleaved_Bloomfilter

Work in progress for the HIBF.
C++
2
star
23

minions

Comparison between different methods to simplify sequence data
C++
2
star
24

mason

Tools for Biological Sequence Simulation
HTML
2
star
25

seqan_knime_plugin

Build infrastructure for the seqan KNIME plugin
Shell
1
star
26

flexcat

Fork of seqan/flexbar by @catkira
C++
1
star
27

seqan3-infrastructure

Infrastructure for seqan3 including nightly builds, continues integration, continues deployment, coverage tests, static code analysis and containerisation.
CMake
1
star
28

library-template

WIP
CMake
1
star