GATB Programming Tutorial

GATB-Core is a modern c++/11 library that natively provides high-performance and memory-efficient operations to handle Fasta/Fastq files, k-mers, bloom filters and de Bruijn graphs.

Learning GATB-Core API (Application Programming Interface) is the purpose of this tutorial: provide you with theoretical concepts and corresponding code snippets to design and write GATB-Core tools.


  • Being a c++ developer: the GATB-Core library is intended to be used by developers having skills in c++ programming.
  • Having a web browser: this tutorial will provide you with an online GATB software compiler and runner, so you do not have to install the library on your system.

Teach yourself

Before digging into the c++ coding examples provided below, you may have a look at these slides:

Now, you are aware of the theory behind GATB-Core: let’s start working with the library!

Rookie Trail: Learning GATB-Core basics

  • Banks: reading and writing Fasta and Fastq files containing DNA reads.
  • k-mers: creating, computing, iterating k-mers.
  • de Buijn graph: building and loading graphs, iterating over nodes, looking for branching nodes, etc.

Start the Rookie Trail

Expert Trail: Learning GATB-Core advanced APIs

  • More on de Bruijn graphs
  • Multithreading made easy
  • Storage: creating, saving and loading collection of objects (e.g. k-mers).
  • Application and Tool: quick creation of GATB-Core based command-line softwares.

Start the Expert Trail

Advanced Trail: re-creating DiscoSNP

Let’s see how to convert theory to practice… re-create DiscoSNP, a reference-free detection software of isolated SNPs.

Start the Advanced Trail

More code snippets

The GATB-CORE project contains 80+ code snippets that illustrate the use of the APIs. Please follow this link for more information.

Comments are closed.