22.01.2015 Views

Refined Buneman Trees

Refined Buneman Trees

Refined Buneman Trees

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

implementing an algorithm with a high time and space complexity. However,<br />

by implementing the algorithm in Java and integrating it into JSplits as a plugin,<br />

the author has been handed a free user interface that fits perfectly with<br />

this algorithm. Also, this method can hopefully become an integrated part in<br />

future releases of JSplits which is easily and freely available, thereby contributing<br />

something valueable to the field of tree reconstruction.<br />

JSplits plug-ins fall into categories based on input and output. The refined<br />

<strong>Buneman</strong> tree algorithm will take a distance matrix as input and return a compatible<br />

set of splits, which can then be visualised in JSplits. Other methods<br />

might take a set of aligned nucleotide sequences and return tree structures. A<br />

full list of the extensive set of implemented methods and possible types of new<br />

methods can be found in the JSplits source code documentation, which is probably<br />

available upon request from Dr. Huson. At the time of writing it is not<br />

publicly available.<br />

The general way of creating a JSplits plug-in consists of two steps:<br />

• Implementing an interface from the catalogue of possible interfaces available<br />

in JSplits<br />

• Placing the implementing file correctly in the JSplits directory structure,<br />

which is grouped by input type<br />

The JSplits application will automatically detect the presence of implemented<br />

methods and create drop-down menu options for them. So the plug-in<br />

facility is very easy to use indeed, and the author experienced no problems with<br />

it at all.<br />

The author did experience a few problems with the classes used in JSplits.<br />

For some odd reason, the taxa list and input distance data is given in arrays<br />

with offset 1 instead of the traditional offset 0 used in most other computer<br />

science contexts - particularly in the Java programming language. But in spite<br />

of this minor quirk, the author has been very satisfied working with JSplits.<br />

11.4 The Distances2Splits interface<br />

In JSplits terminology, the refined <strong>Buneman</strong> tree algorithm falls in the category<br />

distances-to-splits algorithm, and Dr. Huson pointed out that the author should<br />

implement his work as a Java class implementing the Distances2Splits interface<br />

found in JSplits. That interface looks like this:<br />

package splits.algorithms.distances;<br />

interface Distances2Splits extends DistancesTransform<br />

{<br />

boolean isApplicable(Taxa taxa, Distances d);<br />

}<br />

Splits apply(Taxa taxa, Distances d) throws Exception;<br />

70

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!