1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
Make a neighbor joining tree
============================
.. sectionauthor:: Gavin Huttley
An example of how to calculate the pairwise distances for a set of sequences.
.. doctest::
>>> from cogent import LoadSeqs
>>> from cogent.phylo import distance, nj
Import a substitution model (or create your own)
.. doctest::
>>> from cogent.evolve.models import HKY85
Load the alignment.
.. doctest::
>>> al = LoadSeqs("data/long_testseqs.fasta")
Create a pairwise distances object calculator for the alignment, providing a substitution model instance.
.. doctest::
>>> d = distance.EstimateDistances(al, submodel= HKY85())
>>> d.run(show_progress=False)
Now use this matrix to build a neighbour joining tree.
.. doctest::
>>> mytree = nj.nj(d.getPairwiseDistances())
We can visualise this tree by ``print mytree.asciiArt()``, which generates the equivalent of:
.. code-block:: python
/-Human
/edge.0--|
| \-HowlerMon
|
-root----| /-NineBande
|-edge.1--|
| \-DogFaced
|
\-Mouse
We can save this tree to file.
.. doctest::
>>> mytree.writeToFile('test_nj.tree')
.. clean up
.. doctest::
:hide:
>>> import os
>>> os.remove('test_nj.tree')
|