Skip to main content

Table 2 Performance

From: Bio.Phylo: A unified toolkit for processing, analyzing and visualizing phylogenetic trees in Biopython

Task

Input tree

Python 2.7

Python 3.2

PyPy 1.9

Read a very large Newick tree

Smith 2011 angiosperm supertree

   
 

(55473 terminal nodes) [38]

17.45

16.85

1.214

Read the same large tree in phyloXML

Smith 2011, converted to phyloXML with

   
 

phylo_converter (http://phylosoft.org/)

3.805

4.318

3.937

Write the same large tree as Newick

Smith 2011

0.5238

0.7704

0.4378

Write the same large tree as phyloXML

Smith 2011

10.39

10.85

24.17

Read a medium-sized Newick tree

Davies 2004 angiosperm supertree

   
 

(440 terminal nodes) [39]

0.1097

0.1087

0.007312

Parse many Newick trees

Davies 2004, copies rerooted at

   
 

each node (816 trees)

84.91

84.29

6.812

Reroot at each node

Davies 2004

1.347

1.167

0.3450

Collapse all splits with bootstrap values less than 50

Davies 2004

2.266

2.312

2.411

Total branch length

Davies 2004

0.01322

0.01310

0.01448

Ladderize the tree

Davies 2004

0.1274

0.1190

0.1127

Count terminal nodes

Davies 2004

0.006838

0.006323

0.005914

  1. Performance of Bio.Phylo functions and tree methods under different Python versions on several benchmark tasks. Reported execution times are the median of 101 replications of each task, in seconds (Additional file 2). Benchmarks were evaluated with Python versions 2.7.3 and 3.2.3 and PyPy version 1.9 on an Intel Xeon E5405 2.00 GHz processor with 8 GB memory, running under 64-bit Ubuntu Linux 12.04 with Biopython 1.60 installed.