Summary: There is a large amount of tools for interactive display of phylogenetic trees. However, there is a shortage of tools for the automation of tree rendering. Scripting phylogenetic graphics would enable the saving of graphical analyses involving numerous and complex tree handling operations and would allow the automation of repetitive tasks. ScripTree is a tool intended to fill this gap. It is an interpreter to be used in batch mode. Phylogenetic graphics instructions, related to tree rendering as well as tree annotation, are stored in a text file and processed in a sequential way.
Availability: ScripTree can be used online or downloaded at www.scriptree.org, under the GPL license.
Implementation: ScripTree, written in Tcl/Tk, is a cross-platform application available for Windows and Unix-like systems including OS X. It can be used either as a stand-alone package or included in a bioinformatic pipeline and linked to a HTTP server.
1 PHYLOGENETIC GRAPHICS
Phylogenetic graphics deals with basic operations on trees (e.g. rooting) and tree rendering processes (e.g. annotation) in the context of large trees and/or collection of trees. Phylogenetic graphics resorts to dynamic information visualization techniques such as ‘focus+context’ magnifying features. Tree annotation consists in the highlighting (coloring, posting of text or symbols) of subtrees or leaf labels according to additional information (e.g. taxonomy, geography, gene function, etc.) related to the entities under study (molecular sequences, species, etc.). Tools like TreeJuxtaposer (Munzner et al., 2003), TreeDyn (Chevenet et al., 2006), Dendroscope (Huson et al., 2007) are examples of tree editors with phylogenetic graphic capabilities. A new challenge in the field is the automation of a graphical analysis encoded as a sequence of operations that precisely describes the way to display and tag trees with additional information. These operations are stored in a script, usable on the same or different datasets. Moreover, scripting is a flexible approach allowing computations to be run either as a local stand-alone process or incorporated within a pipeline and potentially accessible through a web interface. Currently, there is a need for such automation of phylogenetic graphics as we see more and more web sites that provide access to bioinformatic analyses displaying trees, e.g. PhylomeDB (Huerta-Cepas et al., 2007), phylogeny.fr (Dereeper et al., 2008), PhyloExplorer (Ranwez et al., 2009). Yet, few existing tools have scripting capabilities—ATV/Archeopteryx (Zmasek et al., 2001), TreeGraph (Muller et al., 2004), Ape (Paradis et al., 2004), TreeDyn (Chevenet et al., 2006), Dendroscope (Huson et al., 2007) or ETE (Huerta-Cepas et al., 2010). Archeopteryx displays single trees in interactive manipulations. Hence, this is not the tool of choice for automatically rendering tree collections with complex annotations. ETE offers elaborated features for analysis of trees as well as automation and visualization of trees. It is a powerful programmable toolkit, but requires object oriented Python programming skills to annotate trees in an automated way. ScripTree has tree annotation features more elaborated than the TreeDyn ones. ScripTree is a higher level interpreter, including numerous and specific annotation commands. It is dedicated to automation and, hence, does not contain a graphical user interface.
2 ScripTree input/output
The basic ScripTree command line is
3 SCRIPTREE COMMANDS
The edition family acts on trees as a whole, specifying: (i) global tree rendering such tree size, leaf label font, organization of a tree collection into rows and columns; (ii) tree manipulations such as branch swapping and rerooting. For instance, command (1) in Figure 1a sets the size of the trees to 80 × 150 pixels, organizes them as a two-by-two matrix, displays them with a rectangular shape accounting for branch lengths (
The projection command family allows posting information onto trees. It is organized according to three criteria concerning annotation: (i) its kind (e.g. text, symbol, bracket, arc), (ii) its object (e.g. leaf, edge, subtree) and, (iii) its source, i.e. either the newick string itself (e.g. branch lengths) or the annotation file. Commands (2) and (2′) in Figure 1a put two columns of annotations next to each tree:
The identification commands which enable to highlight only parts of the trees, identified by a query, operate either on the newick string itself (pattern matching allowed) or on the information contained in an annotation file. Each query returns a list of matching labels to which one or several highlighting operations are then applied. Identification commands comprise two parts: selection (
ScripTree is a tool for scripting phylogenetic graphics. It allows the management of multiple trees and usual kinds of annotations. It can be used either as a stand-alone package or included in a pipeline and linked to a HTTP server. ScripTree is under continuous development, and suggestions of new functionnalities are welcome.
We thank V. Guignon and A. Dereeper for comments.
Funding: IRD-SPIRALES 2007; ANR PhylAriane project ANR-08-EMER-011-01; ANR-Biodiversité Aquaparadox project.
Conflict of Interest: none declared.