A library for working with phylogenetic and population genetic data.

The easiest way to get started with genesis is to follow the tutorials. They are split into different modules, which are listed below.

In order to walk through a tutorial, we recommend using the ./apps directory. See Apps for setup instructions. Once you have set everything up, you can create a new *.cpp file in the ./apps directory and compile it using make update.

You find the code listings of the tutorials in


Those files can be copied to the ./apps directory for testing them. They contain the examples from the tutorials, plus all needed headers and namespace declarations (which are omitted in the tutorials to keep them simple).

Tutorials Chapters

  • Placement Basics : For working with phylogenetic placement data, e.g. in jplace format.
  • Placement Analyses : Conducting typical analyses of placement data.
  • Tree Basics : Provides a flexible structure and functions for phylogenetic trees.
  • Tree Advanced : More details about the data structure and its data.
  • Tree Visualization : Visualization of trees, such as drawing them to svg files.
  • Sequence : Works with genetic sequences in e.g. fasta or phylip format.
  • Taxonomy : Works with taxonomies and taxonomic databases.
  • Colors : Working with colors, for visualization of trees and others.

For more code examples, see the Demos page.