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.
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.