MARLON (Minimum Amount of Reticulation Level One Network)
Introduction
MARLON is an implementation, in Java, of the algorithm of Leo
van Iersel
which finds (for a dense set of triplets T) the level-1
network with a minimum number of reticulation nodes that
is consistent with T, or determines that no such
network exists. The code was written, and is maintained, by
Steven Kelk. The
structure, running time and correctness of the algorithm is
explained in the article Constructing the Simplest Possible
Phylogenetic Network from Triplets by Leo van Iersel and Steven
Kelk.
Latest versions
Version 0.91, June 20th 2008
- Marlon.java. In this version we have added the possibility to output the resulting
network in eNewick format. Comparison
measures such as that contained within Bio::PhyloNetwork (by G.
Cardona, F. Rossello, and G. Valiente) can then be used to compare the
output of MARLON with competing solutions. Level-1 networks belong trivially
to the class of tree-child networks which is why the 'mu' measurement
used in Bio::PhyloNetwork can safely be used. To output in eNewick format,
add -n after the triplet filename e.g. java Marlon triplets.txt
-n
Version 0.9, May 7th 2008
- Marlon.java - the Java source
code. (Rename file to 'Marlon.java' before compiling.)
How to run the algorithm
The following instructions assume a UNIX environment. There are
no fundamental reasons however why the algorithm will not work
under another operating system environment as long as Java and the graph drawing
package DOT are available in that environment. (Please contact Steven Kelk
if you are interested in an output format for a package other than DOT.)
-
It is advisable that you first compile Marlon.java on your own
computer, using the Java compiler javac. This will
create a file Marlon.class (amongst others) in the directory.
-
Create a file of triplet data. MARLON assumes that the
species are numbered 1 through n and that there are no
missing species. Some examples of triplet data files
can be found below.
-
Run the algorithm with and direct the output to a file. For example, with
the command java Marlon yourtripletdat.txt > output
-
If the algorithm could not find a level-0 or level-1 network for
those triplets, this will be reported in the output file. Otherwise, the
file output can be fed into the graph drawing package DOT, which in
turn can produce images in various formats. For example, to get DOT to produce a
postscript file from your data, try dot -Tps < output >
mynetwork.ps. Other output formats are possible by adjusting the -T
switch.
- The code is still in development. If for some reason you encounter a
bug or a problem, please inform the author! At the moment internal error
reporting is minimal, many error messages simply report an error and an
error number, this will be improved in future versions.
Examples
Click here for example data sets and
outputs.
Why use MARLON?
Relevant links
- LEVEL2 : A fast algorithm for constructing level-2 phylogenetic networks
from dense sets of rooted triplets