Algorithms in Bioinformatics

A   A   A
Home > Software > SplitsTree3.2

Skip to content. | Skip to navigation


SplitsTree3: Analyzing and Visualizing Evolutionary Data

Web version

  Evolutionary data is most often presented as a phylogentic tree, the underlying assumption being that evolution is a branching process. However, real data is never ideal and thus doesn't always support a unique tree, but often supports more than one possible tree. Hence, it makes sense to consider tree reconstruction methods that produce a tree, if the given data heavily favors one tree over all others, but otherwise produces a more general graph that indicates different possible phylogenies. One such method is the Split Decomposition introduced by Hans-Juergen Bandelt and Andreas Dress (1992) and its variations. Another example is Spectral Analysis developed by Hendy, Penny and others.

These and other methods are implemented in the program SplitsTree, that I wrote with contributions from Dave Bryant, Mike Hendy, Holger Paschke, Dave Penny and Udo Toenges. It is based on the Nexus format.
SplitsTree reloaded: SplitsTree4
  Together with David Bryant, we have developed an all-new implementation of SplitsTree in Java, which is called SplitsTree4, available here!
SplitsTree 3.2
  SplitsTree was recently upgraded to version 3.2, with a number of bug fixes. Also, the linux distribution now contains all source files. Please note that the program was originally written for the ThinkC C+objects compiler and is thus not really in C++ but in a horrible C-based half-object-oriented language...  This is the most current Windows95  version of the program. It is available for Linux and Solaris. The Source-Code is also available. You will need to install TCL-TK (8.0.5) for Windows95 or TCL (8.0.5) and TK (8.0.5) for Linux, for this to work.
To be precise, there are two variants of the unix version: xsplits provides a menu driven graphical user interface and looks like a Windows program. Splits is a command line program with command line editing.

(Local users: /afs/wsi/sun4x_58/ab/bin/splits, /afs/wsi/sun4x_58/bin/xsplits & /afs/wsi/sun4x_58/share/bin/jsplits).

NEW: Version built for MacOS X (10.5, intel). No installation of TCL-TK 8.0.5 necessary, download here.
  This is the previous Windows 95 version of the program. It is also available for Linux. You will need to install TCL-TK (8.0.5) for Windows 95 or TCL (8.0.5) and TK (8.0.5) for Linux, for this to work.
SplitsTree 2
  This version SplitsTree2.4 of the program is available for MacOS (classic only). I wrote most of it while visiting Mike Hendy, Pete Lockhart and Dave Penny for a couple of months in Palmerston North, New Zealand. Also, additional bits were written while visiting Mike Steel at the Maths-Bio research Centre at the University of Canterbury in Christchurch, New Zealand. The rest was written while I was working with Andreas Dress at the Institute for the Study of Structure Formation at Bielefeld University, Germany.
SplitsTree 1

This version of SplitsTree is no longer available. It was written in cooperation with Rainer Wetzel, who developed a number of the algorithms involved as part of his PhD thesis under supervision of Andreas Dress. (The code is pretty shaky, but some people like this version of the program because it can read the old nexus format and has some features that I haven't got around to putting into later versions yet.)
Source Code

The command line version splits of SplitsTree3 is written in C++ and uses the gnu readline code to provide line editing. The GUI variant xsplits of SplitsTree3 is based on precisely the same C++ code as splits, but additionally provides a GUI written in Tcl-TK.
The source code is available from the author up on request, but please don't expect to learn good programming style from it! SplitsTree was originally written using Think C with objects, which is not the same as C++. In particular, originally objects could not be passed by reference and so you will find heavy use of pointers, which is very bad style. Secondly, I wish I took the time to develop something systematic for reading NEXUS files. Unfortunately I didn't and you will see endless lines of if() then else... to parse the NEXUS format.
To Do List

Lot's to do. SplitsTree4 is receiving a lot of programming attention. SplitsTree3 is no longer being updated.
Document Actions