Skip to content
A phylogenetic tree store with an RDF backend
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Phylotastic RDF Treestore

This is an implementation of a phylogenetic tree store with an RDF backend.


The output format CDAO is now supported by BioPython ( This feature was introduced after the release of BioPython 1.6.1, so until the next release, you'll need to install the active development version.

git clone
cd biopython
sudo python install

Redland (librdf)

treestore requires the librdf Python bindings (

Virtuoso ODBC connection

You'll also need an ODBC connection to an RDF store such as Virtuoso. Help on setting this up for Virtuoso is here:

You'll need the Virtuoso ODBC library (Ubuntu package 'libvirtodbc0') and unixodbc-dev installed. Create two config files, one in /etc/odbcinst.ini:

Driver = /usr/lib/odbc/

and one in /etc/odbc.ini:

Driver = virtuoso-odbc
Description = Virtuoso Open-Source Edition
Address = localhost:1111

To allow the Virtuoso bulk loader to run, create a directory to store temporary RDF files (default is in ~/treestore) and add that path to the DirsAllowed setting in virtuoso.ini.

Next, install pypyodbc:

sudo pip install ppyyodbc


sudo easy_install pypyodbc



Try it out:

>>> from treestore import Treestore
>>> t = Treestore()
>>> t.add_trees('test.newick', 'newick', '')
>>> trees = t.get_trees('')
Tree(weight=1.0, rooted=False)
>>> print t.serialize_trees('', 'nexml')

Command line tool

Or from the command line:

treestore add test.newick newick
treestore get nexml
treestore query "Homo sapiens,Rattus norvegicus,Mus musculus" ascii
treestore rm

If you're not using Virtuoso, or you need to change connection parameters, refer to the command-line help menu:

treestore -h
You can’t perform that action at this time.