Make a UPGMA cluster

Section author: Catherine Lozupone

An example of how to calculate the pairwise distances for a set of sequences.

Note

UPGMA should not be used for phylogenetic reconstruction.

from cogent3 import load_aligned_seqs
from cogent3.evolve import distance
from cogent3.cluster.UPGMA import upgma

Import a substitution model (or create your own)

from cogent3.evolve.models import HKY85

Load the alignment.

al = load_aligned_seqs("data/test.paml")

Create a pairwise distances object calculator for the alignment, providing a substitution model instance.

d = distance.EstimateDistances(al, submodel=HKY85())
d.run(show_progress=False)

Now use this matrix to build a UPGMA cluster.

mycluster = upgma(d.get_pairwise_distances())
print(mycluster.ascii_art())
                    /-DogFaced
                   |
          /edge.0--|                    /-HowlerMon
         |         |          /edge.2--|
         |          \edge.1--|          \-Human
-root----|                   |
         |                    \-NineBande
         |
          \-Mouse

We demonstrate saving this UPGMA cluster to a file.

mycluster.write("test_upgma.tree")