|
|
|
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.
|
| |
| SplitsTree3.1 |
| |
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.
|
|