jSplits

jSplits ––a Java Framework

a Java Framework

for Phylogenetic Trees and

for Phylogenetic Trees and

Networks

Networks

Tübingen, 4.7.2003

Tübingen, 4.7.2003

Copyright (c) 2008 Daniel Huson.

Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.2

or any later version published by the Free Software Foundation;

with no Invariant Sections, no Front-Cover Texts, and no Back-Cover

Texts. A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html

Trees vs networks

Trees vs networks

Evolutionary relationships are usually

Evolutionary relationships are usually

represented by phylogenetic trees

represented by phylogenetic trees

But, real data contain different and/or

But, real data contain different and/or

But, real data contain different and/or

But, real data contain different and/or

conflicting signals, and thus do not

conflicting signals, and thus do not

always clearly support a unique tree

always clearly support a unique tree

Hence, in some cases a phylogenetic

Hence, in some cases a phylogenetic

network may be more appropriate…

network may be more appropriate…

Trees vs networks

Trees vs networks

Computed using

Computed using

split decomposition

split decomposition

Computed using

Computed using

Neighbor

Neighbor--Joining

Joining

Neisseria phylogeny (Eddie Holmes, 1999)

Neisseria phylogeny (Eddie Holmes, 1999)

Trees and splits

Trees and splits

Edge

Edge

ee

corresponds to split {t

corresponds to split {t

11

,t,t

22

,t,t

66

,t,t

77

,t,t

88

} vs {t

} vs {t

33

,t,t

44

,t,t

55

}}

Networks and splits

Networks and splits

Cut

Cut--set of parallel edges defines split {

set of parallel edges defines split {

A,B

A,B

} vs rest

} vs rest

Splits and graphs

Splits and graphs

Any given system

Any given system

of splits can be represented

of splits can be represented

by a

by a

splits graph G

splits graph G

. Note that:

. Note that:

G is a tree iff

G is a tree iff

is compatible

is compatible

(e.g. Neighbor

(e.g. Neighbor--Joining)

Joining)

G is outer

G is outer

--

planar iff

planar iff

is circular

is circular

G is outer

G is outer

--

planar iff

planar iff

is circular

is circular

(e.g. Neighbor

(e.g. Neighbor--Net, Bryant & Moulton 2002)

Net, Bryant & Moulton 2002)

G is usually planar or only mildy non

G is usually planar or only mildy non--planar iff

planar iff

is weakly compatible

is weakly compatible

(e.g. Split Decomposition)

(e.g. Split Decomposition)

G is always subgraph of n

G is always subgraph of n--dim. hypercube

dim. hypercube

(e.g. recoding of sequences, spectral analysis, med

ian networks,

(e.g. recoding of sequences, spectral analysis, med

ian networks,

consensus networks)

consensus networks)

(Theory of splits worked out by Bandelt and Dress 1

992)

(Theory of splits worked out by Bandelt and Dress 1

992)

SplitsTree 3.2

SplitsTree 3.2

Implements split

Implements split

decomposition and

decomposition and

related methods

related methods

First version developed

First version developed

First version developed

First version developed

with Rainer Wetzel in

with Rainer Wetzel in

1995

1995

Current version 3.2 in

Current version 3.2 in

C++ using Tcl

C++ using Tcl--TkTk

Runs under Linux, Unix,

Runs under Linux, Unix,

Windows and MacOS

Windows and MacOS

Design criteria for jSplits

Design criteria for jSplits

(SplitsTree4)

(SplitsTree4)

Must run on any machine with minimal

Must run on any machine with minimal

installation requirements

installation requirements

GUI for interactive use, command

GUI for interactive use, command

--

line for

line for

GUI for interactive use, command

GUI for interactive use, command

--

line for

line for

pipelines

pipelines

Open system, decentralized plug

Open system, decentralized plug--in concept

in concept

Based on splits, also including quartets etc

Based on splits, also including quartets etc

Use Nexus file format

Use Nexus file format

Open source

Open source

Data flow in jSplits

Data flow in jSplits

Taxa

Taxa

Characters

Characters

Unaligned

Unaligned

Bootstrap

Bootstrap

Assumptions

Assumptions

Taxa are

Taxa are

represented e.g. by

represented e.g. by

aligned sequences

aligned sequences

Assumptions

Assumptions

Bootstrap

Bootstrap

Characters

Characters

Splits graph

Splits graph

Splits

Splits

Quartets

Quartets

Distances

Distances

Analysis

Analysis

Bootstrap

Bootstrap

Assumptions

Assumptions

Transform

Transform

characters into

characters into

distances e.g. using

distances e.g. using

Hamming distances

Hamming distances

Transform

Transform

distances into splits

distances into splits

e.g. using Neighbor

e.g. using Neighbor--

net

net

Transform splits in

Transform splits in

to graph e.g. using

to graph e.g. using

“circular” or “convex

“circular” or “convex

hull” algorithm

hull” algorithm

Trees

Trees

Every connector

Every connector

represents a data

represents a data

transformation

transformation

(plug

(plug--in)in)

Assumptions

Assumptions

Bootstrap

Bootstrap

Analysis

Analysis

Writing a new transformation

Writing a new transformation

E.g., a new tree

E.g., a new tree--building method “GreatTree” is pro

vided

building method “GreatTree” is provided

to jSplits as follows:

to jSplits as follows:

BioNJ on bacterial genomes

BioNJ on bacterial genomes

NN--Net on bacterial genomes

Net on bacterial genomes

Summary

Summary

jSplits is an open frame

jSplits is an open frame--work for

work for

phylogenetic analysis

phylogenetic analysis

Extensibility based on plugin design

Extensibility based on plugin design

Built on splits, incorperates both tree and

Built on splits, incorperates both tree and

network methods

network methods

Built on splits, incorperates both tree and

Built on splits, incorperates both tree and

network methods

network methods

Provides all popular distance

Provides all popular distance--based tree

based tree

building algorithms

building algorithms

Provides network methods such as split

Provides network methods such as split

decomposition, Neighbor

decomposition, Neighbor--net and median

net and median

networks

networks

Credits

Credits

Authors: David Bryant and D.H.

Authors: David Bryant and D.H.

Additional programmers: Markus Franz

Additional programmers: Markus Franz

Additional programmers: Markus Franz

Additional programmers: Markus Franz

and Michael Schröder

and Michael Schröder

Thanks to: Yuhui Wang

Thanks to: Yuhui Wang

## Comments 0

Log in to post a comment