The objective of
PhyloTrees.jl is to provide fast and simple tools for working with rooted phylogenetic trees in Julia.
The current release can be installed from the Julia REPL with:
pkg> add PhyloTrees
The development version (master branch) can be installed with:
pkg> add PhyloTrees#master
There are several ways to add nodes and branches to our
Tree, see below for examples
> # Initialize the tree > exampletree = Tree() Phylogenetic tree with 0 nodes and 0 branches > # Add a node to the tree > addnode!(exampletree) Phylogenetic tree with 1 nodes and 0 branches
> # Add a node, connect it to node 1 with a branch 5.0 units in length > branch!(exampletree, 1, 5.0) Phylogenetic tree with 2 nodes and 1 branches > # Add 2 nodes > addnodes!(exampletree, 2) Phylogenetic tree with 4 nodes and 1 branches > # Add a branch from node 2 to node 3 10.0 units in length > addbranch!(exampletree, 2, 3, 10.0) Phylogenetic tree with 4 nodes and 2 branches
We can quickly look at the nodes present in our
> collect(exampletree.nodes) [unattached node] [branch 1]-->[internal node]-->[branch 2] [branch 2]-->[leaf node] [root node]-->[branch 1]
Distance between nodes can be calculated using the
distance function. A node visit ordering for postorder traversal of a tree can be found with
There are many other functions available that are helpful when dealing with trees including:
nodetype. These work nicely with Julia's elegant function vectorization. An example of this in action can be seen in the in our plot recipe code.