page_title: Biopython
section_title: Phylogeny
hierarchical_section_title: Biopython / Key features and examples / Phylogeny
caption_attribution_description: English: This graph is the output from the draw_graphviz function in Biopython's Bio.Phylo module. The data came from the article 'Surprising complexity of the ancestral apoptosis network' by Zmasek et al.
context_page_description: The Biopython project is an open-source collection of non-commercial Python tools for computational biology and bioinformatics, created by an international association of developers. It contains classes to represent biological sequences and sequence annotations, and it is able to read and write to a variety of file formats. It also allows for a programmatic means of accessing online databases of biological information, such as those at NCBI. Separate modules extend Biopython's capabilities to sequence alignment, protein structure, population genetics, phylogenetics, sequence motifs, and machine learning. Biopython is one of a number of Bio* projects designed to reduce code duplication in computational biology.
context_section_description: The Bio.Phylo module provides tools for working with and visualising phylogenetic trees.  A variety of file formats are supported for reading and writing, including Newick, NEXUS and phyloXML.  Common tree manipulations and traversals are supported via the Tree and Clade objects.  Examples include converting and collating tree files, extracting subsets from a tree, changing a tree's root, and analysing branch features such as length or score.
  Rooted trees can be drawn in ASCII or using matplotlib (see Figure 1), and the Graphviz library can be used to create unrooted layouts (see Figure 2).
caption: Figure 2: The same tree as above, drawn unrooted using Graphviz via Bio.Phylo
exif: {}