What’s new in ETE 2.1

  • A basic standalone tree visualization program called “ete3” is now installed along with the package.

  • The drawing engine has been completely rewritten to provide the following new features:

    • Added TreeStyle class allowing to set the following

      • Added circular tree drawing mode
      • Added tree title face block (Text or images that rendered on top of the tree)
      • Added tree legend face block (Text or images that rendered as image legend)
      • Added support for tree rotation and orientation
      • Possibility of drawing aligned faces as a table
      • Added header and footer regions for aligned faces.
      • And more! Check TreeStyle documentation
    • Added new face positions float, branch-top and branch-bottom. See tutorial (Node faces) for more details.

    • Added several Face attributes:

      • face border
      • face background color
      • left, right, top and bottom margins
      • face opacity
      • horizontal and vertical alignment (useful when faces are rendered as table)
    • Added support for predefined NodeStyle, which can be set outside the layout function (allows to save and export image rendering info)

    • Added new face types:
    • Improved faces:
      • AttrFace accepts prefix and suffix text, as well as a text formatter function. fstyle argument can be set to italic
      • TextFace: fstyle argument can be set to italic
    • Save and export images
      • Added full support for SVG image rendering
      • Added more options to the TreeNode.render() function to control image size and resolution
    • Added support for SVG_COLORS names in faces and node styles

  • Core methods:
    • Added TreeNode.copy(): returns an exact and independent copy of node and all its attributes
    • Added TreeNode.convert_to_ultrametric(): converts all branch lengths to allow leaves to be equidistant to root
    • Added TreeNode.sort_descendants(): sort tree branches according to node names.
    • Added TreeNode.ladderize(): sort tree branches according to partition size
    • Added TreeNode.get_partitions(): return the set of all possible partitions grouping leaf nodes
    • Tree nodes can now be fully exported using cPickle
    • Newick parser can read and export branch distances and support values using scientific notation
    • TreeNode.swap_childs() method has changed to TreeNode.swap_children()
  • Added ete3.nexml module (read and write nexml format)

  • Added ete3.phyloxml module (read and write phyloxml format)

  • Added ete3.webplugin module: Allows to create interactive web tree applications

  • Tree visualization GUI checks now for newer version of the ETE package.

  • Added PhylomeDB3Connector

  • Added PhyloNode.get_farthest_oldest_node() function, which allows to find the best outgroup node in a tree, even if it is an internal node.

  • Bug Fixes and improvements:
    • Fix: TreeNode.get_common_ancestor() accepts a single argument (node or list of nodes) instead of a succession or nodes. It can also return the path of each node to the parent.
    • Fix: Fast scroll based zoom-in was producing tree image inversions
    • Fix: Phylip parser does not truncate long names by default
    • Fix: “if not node” syntax was using a len(node) test, which made it totally inefficient. Now, the same expression returns always True
    • Improvement: Traversing methods are now much faster (specially preorder and levelorder)
    • Improvement: Faster populate function (added possibility of random and non-random branch lengths)
    • Improvement: Faster prune function
    • Improvement: unicode support for tree files
    • Improvement: Added newick support for scientific notation in branch lengths
  • Improved documentation and examples:
    • Online and PDF tutorial
    • Better library reference
    • A set of examples is now provided with the installation package and here