Make a neighbor joining treeΒΆ

Section author: Gavin Huttley

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

>>> from cogent3 import load_aligned_seqs
>>> from cogent3.evolve import distance
>>> from cogent3.phylo import nj

Import a substitution model (or create your own)

>>> from cogent3.evolve.models import HKY85

Load the alignment.

>>> al = load_aligned_seqs("data/long_testseqs.fasta")

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 neighbour joining tree.

>>> mytree = nj.nj(d.get_pairwise_distances())

We can visualise this tree by print mytree.ascii_art(), which generates the equivalent of:

                    /-Human
          /edge.0--|
         |          \-HowlerMon
         |
-root----|          /-NineBande
         |-edge.1--|
         |          \-DogFaced
         |
          \-Mouse

We can save this tree to file.

>>> mytree.write('test_nj.tree')