TreeMethods

Creating a neighbour joining tree.


License
MIT
Install
pip install TreeMethods==1.0.3

Documentation

This repository stores a basic implementation for creating a neighbour joining tree from a given distance or similarity matrix.

Generating a distance matrix (A good way to do this is to use sklearn.DistanceMetrics with real data):

from sklearn.neighbors import DistanceMetric

dist = DistanceMetric.get_metric('euclidean')
X = [[0, 1, 2],
     [3, 4, 5],
     [2, 3, 1],
     [0, 2, 1]]
dist_mat = dist.pairwise(X)

Now that we have our distance matrix, we can now use it to construct a neighbour joining tree, giving some labels for the different samples:

import numpy
import TreeMethods.TreeBuild as TB

tree = TB.njTree(dist_mat, numpy.array(['A', 'B', 'C', 'D']))

We can then use ete3 to construct this into a tree object:

from ete3 import Tree

tree = Tree(tree)
print(tree)

   /-B
  |
  |   /-D
--|--|
  |   \-A
  |
   \-C