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.
Requirements
- 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:
- GATB-Core basics: a theoretical introduction to GATB.
- de Buijn graph: what it is, how it works, how to use it, etc.
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.
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.
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.
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.