GATB / gatb-core

Core library of the Genome Analysis Toolbox with de-Bruijn graph
https://gatb.inria.fr/software/gatb-core/
63 stars 26 forks source link
bioinformatics de-bruijn-graphs gatb genomics

GATB - The Genome Analysis Toolbox with de-Bruijn graph

    - []()  []()


   License      []()


Continuous integration on master branch - build status:

Linux gcc 4.7 gcc 4.8 gcc 4.9 clang 3.6 clang 3.9 Valgrind
Debian 8 Build Status Build Status Build Status Build Status -
Debian 7 Build Status - - - - Build Status
Fedora 20 - Build Status - - - -
Mac OSX clang-600 gcc 4.2.1
10.9 Build Status Build Status

What is GATB?

GATB is made of two master projects:


What is GATB-CORE ?

GATB-CORE is a high-performance and low memory footprint C++ library.

GATB-Core natively provides the following operations:

By itself GATB-CORE is not an NGS data analysis tool. However, it can be used to create such tools; see section [Quickly create a new GATB-TOOL software](#Quickly create a new GATB-TOOL software), below.

They already exist a set of ready-to-use tools relying on GATB-CORE library: see https://gatb.inria.fr/software/

Project content

All the needed material of GATB-CORE is contained in the current directory in order to generate the wanted artifacts:

Dependencies

The following third parties have to be already installed to compile GATB-Core:

In addition, you could install these optional tools:

Compile GATB-CORE

Compile in Release mode (default)

Type:

cd <some_directory>
git clone https://github.com/GATB/gatb-core.git
cd gatb-core/gatb-core
mkdir build ; cd build ; cmake .. ; make -j8

Compile in Debug mode

Type same as above, except for the CMake command:

cmake -D CMAKE_BUILD_TYPE=Debug ..
make -j8

Run unit tests

Then type:

 # enter gatb-core build directory
 cd gatb-core/gatb-core/build
 # set verbose mode to on so that we have name of failing tests (if any)
 export CPPUNIT_VERBOSE=1
 # Copy database for unit tests
 cp -r ../test/db ./test/
 # Launch the full test suite
 cd bin
 ./gatb-core-cppunit

The gatb-core-cppunit command may also take as argument the categories of tests that show up in the verbose output, e.g. './gatb-core-cppunit TestBank'.

More about GATB-CORE code compiling instruction is available here.

Work on GATB-Core code using Eclipse

Read this documentation.

Work on GATB-Core code using Xcode

Read this documentation.

Learning GATB-Core: tutorial

You can follow this link to start the GATB-Core Online Tutorial trail.

The project also contains many code examples that can be easily compiled and executed to review how to use GATB-Core APIs.

Documentation

The complete GATB-Core documentation is available here. It contains: API, code snippets, compile instructions, etc.

Nevertheless, you can create a local copy of the documentation as follows (we suppose you already compiled the c++ code, see above; requires 'doxygen'):

 cd gatb-core/gatb-core/build
 make doc

Documentation is then available in build/html/index.html

kmer default sizes

By default, the library is compiled for supporting 4 ranges of kmers :

You can customize these values through cmake, provided they rebuild the project from scratch. For instance:

rm -Rf build; mkdir build ; cd build ; cmake -DKSIZE_LIST="64 96 128 162" ..

Tools may set a default kmer lists in their CMakeFiles.txt, as such (see for instance Minia):

list (APPEND KSIZE_DEFAULT_LIST  32   64   96  128  160  192  224  256)

Directory content


Details for 'src' directory content

It contains several sub directories, each one corresponding to one software package.

A package may be composed of sub packages; the directory hierarchy should represent this packages tree structure.

For one atomic package (or sub package), we should have:


Quickly create a new GATB-TOOL software

A GATB-TOOL is a new software relying upon GATB-CORE.

You use GATB-CORE to create a new tool project, with the following script:

sh scripts/NewProject/NewProject.sh -d directory -n toolName

where:

'directory' is the directory where the project will be created
'toolName' is the name of the project.

The script will automatically creates the full path 'directory/toolName' to deploy a self-contained tool.

By default, the following part will be included in the project:

The 'thirdparty' directory is only available for tool created outside the GATB-Tools repository.

Tools located within GATB-Tools rely on a common GATB-CORE sub-module already available in this repository.

The directory where the project is created has no link to any external resources. You can therefore move it anywhere you want.

Such a project can be a start for building applications based on GATB-CORE.

More on creating a new GATB-Core based project: https://gatb.gitlabpages.inria.fr/gatb-core/doc/api/new_project.html

Contact

To contact a developer, request help, etc, use:

https://gatb.inria.fr/contact/

License

GATB is free software; you can redistribute it and/or modify it under the Affero GPL v3 license.