# biotite.sequence.phylo.upgma¶

biotite.sequence.phylo.upgma(distances)

Perform hierarchical clustering using the unweighted pair group method with arithmetic mean (UPGMA).

This algorithm produces leaf nodes with the same distance to the root node. In the context of evolution this means a constant evolution rate (molecular clock).

Parameters
distancesndarray, shape=(n,n)

Pairwise distance matrix.

Returns
treeTree

A rooted binary tree. The index attribute in the leaf TreeNode objects refer to the indices of distances.

Raises
ValueError

If the distance matrix is not symmetric or if any matrix entry is below 0.

Examples

>>> distances = np.array([
...     [0, 1, 7, 7, 9],
...     [1, 0, 7, 6, 8],
...     [7, 7, 0, 2, 4],
...     [7, 6, 2, 0, 3],
...     [9, 8, 4, 3, 0],
... ])
>>> tree = upgma(distances)
>>> print(tree.to_newick(include_distance=False))
((4,(3,2)),(1,0));