<?xml version='1.0'?>
<!DOCTYPE art SYSTEM 'http://www.biomedcentral.com/xml/article.dtd'>
<art>
   <ui>1471-2148-8-22</ui>
   <ji>1471-2148</ji>
   <fm>
      <dochead>Methodology article</dochead>
      <bibl>
         <title>
            <p>Drawing explicit phylogenetic networks and their integration into SplitsTree</p>
         </title>
         <aug>
            <au id="A1" ca="yes">
               <snm>Kloepper</snm>
               <mi>H</mi>
               <fnm>Tobias</fnm>
               <insr iid="I1"/>
               <email>kloepper@informatik.uni-tuebingen.de</email>
            </au>
            <au id="A2">
               <snm>Huson</snm>
               <mi>H</mi>
               <fnm>Daniel</fnm>
               <insr iid="I1"/>
               <email>huson@informatik.uni-tuebingen.de</email>
            </au>
         </aug>
         <insg>
            <ins id="I1">
               <p>Center for Bioinformatics ZBIT, T&#252;bingen University, Sand 14, 72076 T&#252;bingen, Germany</p>
            </ins>
         </insg>
         <source>BMC Evolutionary Biology</source>
         <issn>1471-2148</issn>
         <pubdate>2008</pubdate>
         <volume>8</volume>
         <issue>1</issue>
         <fpage>22</fpage>
         <url>http://www.biomedcentral.com/1471-2148/8/22</url>
         <xrefbib>
            <pubidlist>
               <pubid idtype="pmpid">18218099</pubid>
               <pubid idtype="doi">10.1186/1471-2148-8-22</pubid>
            </pubidlist>
         </xrefbib>
      </bibl>
      <history>
         <rec>
            <date>
               <day>16</day>
               <month>11</month>
               <year>2007</year>
            </date>
         </rec>
         <acc>
            <date>
               <day>24</day>
               <month>1</month>
               <year>2008</year>
            </date>
         </acc>
         <pub>
            <date>
               <day>24</day>
               <month>1</month>
               <year>2008</year>
            </date>
         </pub>
      </history>
      <cpyrt>
         <year>2008</year>
         <collab>Kloepper and Huson; licensee BioMed Central Ltd.</collab>
         <note>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<url>http://creativecommons.org/licenses/by/2.0</url>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</note>
      </cpyrt>
      <abs>
         <sec>
            <st>
               <p>Abstract</p>
            </st>
            <sec>
               <st>
                  <p>Background</p>
               </st>
               <p>SplitsTree provides a framework for the calculation of phylogenetic trees and networks. It contains a wide variety of methods for the import/export, calculation and visualization of phylogenetic information. The software is developed in Java and implements a command line tool as well as a graphical user interface.</p>
            </sec>
            <sec>
               <st>
                  <p>Results</p>
               </st>
               <p>In this article, we present solutions to two important problems in the field of phylogenetic networks. The first problem is the visualization of explicit phylogenetic networks. To solve this, we present a modified version of the equal angle algorithm that naturally integrates reticulations into the layout process and thus leads to an appealing visualization of these networks. The second problem is the availability of explicit phylogenetic network methods for the general user. To advance the usage of explicit phylogenetic networks by biologists further, we present an extension to the SplitsTree framework that integrates these networks. By addressing these two problems, SplitsTree is among the first programs that incorporates <it>implicit </it>and <it>explicit </it>network methods together with standard phylogenetic tree methods in a graphical user interface environment.</p>
            </sec>
            <sec>
               <st>
                  <p>Conclusion</p>
               </st>
               <p>In this article, we presented an extension of SplitsTree 4 that incorporates explicit phylogenetic networks. The extension provides a set of core classes to handle explicit phylogenetic networks and a visualization of these networks.</p>
            </sec>
         </sec>
      </abs>
   </fm>
   <bdy>
      <sec>
         <st>
            <p>Background</p>
         </st>
         <p>Phylogenetic networks are graphs used for representing phylogenetic relationships between different taxa, and are usually employed when a tree representation does not suffice. There are many different types of phylogenetic networks and it is useful to distinguish between two main classes: <it>implicit </it>phylogenetic networks that provide tools to visualize and analyze incompatible phylogenetic signals, such as split networks <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B2">2</abbr></abbrgrp>, and <it>explicit </it>phylogenetic networks that provide explicit scenarios of reticulate evolution, such as hybridization networks <abbrgrp><abbr bid="B3">3</abbr><abbr bid="B4">4</abbr><abbr bid="B5">5</abbr><abbr bid="B6">6</abbr><abbr bid="B7">7</abbr></abbrgrp>, HGT networks <abbrgrp><abbr bid="B8">8</abbr></abbrgrp> and recombination networks <abbrgrp><abbr bid="B9">9</abbr><abbr bid="B10">10</abbr><abbr bid="B11">11</abbr><abbr bid="B12">12</abbr><abbr bid="B13">13</abbr><abbr bid="B14">14</abbr><abbr bid="B15">15</abbr><abbr bid="B16">16</abbr><abbr bid="B17">17</abbr><abbr bid="B18">18</abbr><abbr bid="B19">19</abbr></abbrgrp>.</p>
         <p>The software currently available for the calculation and analysis of explicit phylogenetic networks consists of a spread of basic implementations of algorithms developed to solve the computational task <abbrgrp><abbr bid="B6">6</abbr><abbr bid="B14">14</abbr><abbr bid="B16">16</abbr><abbr bid="B17">17</abbr><abbr bid="B18">18</abbr><abbr bid="B20">20</abbr></abbrgrp>. Most of the software is command line driven and an appealing visualization of the results is often lacking. It is essential to have a tool that allows both broad usage of the methods available to biologists, and better and further development of new methods.</p>
         <p>SplitsTree is an application developed in our research group, originally aiming at the phylogenetic analysis of sets of splits. The newest version of SplitsTree <abbrgrp><abbr bid="B2">2</abbr></abbrgrp> incorporates a variety of methods for the calculation, visualization and interpretation of phylogenetic trees and implicit phylogenetic networks. Two main advantages of SplitsTree are the graphical user interface (GUI) and the integration of algorithms via an interface driven class loader (plugins). In this article we present an extension to SplitsTree that enables the program to handle explicit phylogenetic networks. The extension solves two important problems: an efficient integration of explicit phylogenetic networks, and visualizing these networks.</p>
      </sec>
      <sec>
         <st>
            <p>Results and Discussion</p>
         </st>
         <p>A <it>tree T </it>= (<it>V</it>, <it>E</it>) is a connected acyclic graph with vertex set <it>V </it>and edge set <it>E</it>. A vertex of degree one is called a <it>leaf </it>of <it>T </it>and the set of all leaves is called the <it>leaf set </it>of <it>T</it>. A <it>rooted tree T </it>= (<it>V</it>, <it>E</it>, <it>&#1009;</it>) is a tree (<it>V</it>, <it>E</it>) that has exactly one distinguished vertex called the <it>root</it>, denoted <it>&#1009;</it>. A rooted tree <it>T </it>has a natural ordering where <it>v </it>&#8804; <it>v'</it>, if <it>v </it>lies on the path from the root to <it>v'</it>. If <it>v </it>&#8804; <it>v'</it>, we say that <it>v </it>is an <it>ancestor </it>of <it>v' </it>and <it>v' </it>is a <it>descendant </it>of <it>v</it>. For any set of vertices <it>V</it>, a vertex <it>v </it>is called <it>minimal </it>with respect to <it>V </it>if for all <it>v' </it>in <it>V</it>, it holds that <it>v </it>&#8804; <it>v'</it>. For any edge <it>e</it>, we use <it>&#945; </it>(<it>e</it>) and <it>&#946;</it>(<it>e</it>) to denote the source and target of <it>e</it>. A <it>rooted phylogenetic X-tree </it>is a pair (<it>T</it>, <it>&#957;</it>), where <it>T </it>= (<it>V</it>, <it>E</it>, <it>&#1009;</it>) is a rooted tree and <it>&#957; </it>: <it>X </it>&#8594; <it>V </it>is a bijection from <it>X </it>to the leaf set of <it>T</it>. See <abbrgrp><abbr bid="B21">21</abbr></abbrgrp> for more details.</p>
         <p><b>Definition 1 </b><it>Let X be a set of taxa. A </it>rooted reticulate network <it>N </it>= <it>N </it>(<it>V</it>, <it>E</it>, <it>&#957;</it>) on <it>X is a connected, directed acyclic graph with vertex set V, edge set E and vertex labeling &#957; : X &#8594; V, such that:</it></p>
         <p><it>1. there exists precisely one distinguished vertex &#1009; called the </it>root;</p>
         <p><it>2. every vertex v </it>&#8712; <it>V is either a </it>tree vertex, <it>v </it>&#8712; <it>V</it><sub><it>T</it></sub>, <it>that has exactly one ancestor, or a </it>reticulation vertex <it>r </it>&#8712; <it>V</it><sub><it>R </it></sub><it>that has exactly two ancestors;</it></p>
         <p><it>3. every edge is either a </it>tree edge <it>leading to a vertex of indegree one or a </it>reticulation edge <it>leading to a vertex of indegree two; and</it></p>
         <p><it>4. the set of </it>leaves <it>L (vertices with no descendants) consists only of tree vertices and is labeled by the set of taxa X, i.e. &#957; maps X bijectively onto L</it>.</p>
         <p>It follows from these definitions that each reticulation vertex (or <it>reticulation</it>, for short) <it>r </it>&#8712; <it>V</it><sub><it>R </it></sub>is contained in one or more cycles of the form <it>C </it>= (<it>r</it>, <it>p</it>(<it>r</it>), <it>w</it><sub>1</sub>, <it>e</it><sub>1</sub>, ..., <it>e</it><sub><it>k</it>-1</sub>, <it>w</it><sub><it>k</it></sub>, <it>q</it>(<it>r</it>), <it>r</it>), with <it>w</it><sub><it>i </it></sub>&#8712; <it>V </it>and <it>e</it><sub><it>i </it></sub>&#8712; <it>E</it>\{<it>p</it>(<it>r</it>), <it>q</it>(<it>r</it>)} for all <it>i</it>. (Note that additionally, <it>r </it>can also be contained in one or more cycles that do not contain <it>p</it>(<it>r</it>) and <it>q</it>(<it>r</it>)). We say that two reticulations <it>r</it>, <it>r' </it>&#8712; <it>V</it><sub><it>R </it></sub>are <it>dependent </it>if a cycle that contains both <it>r </it>and <it>r' </it>exists.</p>
         <p>In graph theory, a <it>two-connected component </it>of a graph <it>G </it>is any maximal subgraph <it>G' </it>with the property that any two vertices <it>v </it>and <it>w </it>of <it>G' </it>are connected by two paths <it>p </it>and <it>p' </it>that share no vertices except for <it>v </it>and <it>w</it>. For any reticulation vertex <it>r</it>, let <it>p</it><sup><it>r </it></sup>and <it>q</it><sup><it>r </it></sup>denote the two associated reticulation edges.</p>
         <p>Furthermore, let <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i1"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiabdkhaYbaaaaa@304B@</m:annotation></m:semantics></m:math></inline-formula> and <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i2"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>q</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdghaXbqaaiabdkhaYbaaaaa@304D@</m:annotation></m:semantics></m:math></inline-formula> denote the two ancestors of <it>r </it>with respect to <it>p</it><sup><it>r </it></sup>and <it>q</it><sup><it>r</it></sup>. The <it>lowest single ancestor lsa</it>(<it>r</it>) of a reticulation <it>r </it>is the minimum of all nodes in <it>V </it>that is connected to <it>r </it>by two paths <it>p </it>and <it>p' </it>that share no vertices except for <it>lsa</it>(<it>r</it>) and <it>r</it>.</p>
         <sec>
            <st>
               <p>Algorithm</p>
            </st>
            <p>One important approach to drawing trees is the equal angle algorithm which was developed by Meacham (see <abbrgrp><abbr bid="B22">22</abbr></abbrgrp>). The equal angle algorithm guarantees that no two edges intersect. Our algorithm for visualizing recombination networks is based on a generalization of the equal angle algorithm. The algorithms adds an ordering step at each vertex, that chooses an optimal ordering of the descending edges, that minimizes the number of crossings between reticulations edges and other edges. It can easily be altered to be used with any drawing algorithm for trees. We will start out with a description of the equal angle algorithm and will then define some basic properties. Finally, we will give solutions to minimize crossing edges in a drawing of a reticulate networks, and the optimal placement of reticulation vertices.</p>
            <p>The equal angle algorithm is a recursive algorithm that starts at an internal vertex of a tree. For each subtree connected to the starting vertex, we appoint an angle proportional to the share of leaves it contains. In the next step, we assign to each subtree a sector of the circle of the size of the angle appointed to it and draw the edge to the subtree in the middle of the sector. We place the sector of the subtree in a way that it is centered at the end of the branch and the branch is pointing at the bisector of the angle. We then recurse to the starting vertex of the subtree and assign each newly discovered subtree its proportional share of the angle. Each subtree is than placed in the sector of the starting vertex. The recursion is repeated until we have appointed angles to each branch of the tree. The only modifications for rooted trees are the explicit start point (the root of the tree) and the use of a fraction of the cycle. For a detailed description of the algorithm, see <abbrgrp><abbr bid="B22">22</abbr></abbrgrp>.</p>
            <p>The rooted equal angle algorithm is not directly applicable to a reticulate network since for each reticulation, we have to decide which of the reticulation edges we want to use for the drawing algorithm and either choice may be suboptimal. The idea behind our approach is to use neither of them. The <it>influence </it>of a reticulation upon the graph structure is bounded by the reticulation and its lowest single ancestor, therefore we decided to define an <it>auxiliary edge </it>between those two vertices and to use the auxiliary edges for the layout of the graph. When the algorithm reaches a node each descending edge is checked for its status (being either a tree-edge, an auxiliary-edge or a reticulation-edge) and only tree- and auxiliary-edges are incorporated into the process.</p>
            <p>Through these modifications to the rooted equal angle algorithm, it is possible to visualize reticulate networks, but these visualizations are not very satisfying. To obtain an improved method, we will address two key problems. The first problem is the crossing of reticulation edges: even though it can not always be avoided, the number of such events should be minimized. The second problem is that the auxiliary edges are artifical edges and their optimal edge length must be determined. In the following, we will show solutions to these two problems.</p>
            <sec>
               <st>
                  <p>Minimizing crossing edges</p>
               </st>
               <p>An edge crossing another one is an undesirable event in drawing a graph. It is well known that solving this problem is, in general, computationally hard <abbrgrp><abbr bid="B23">23</abbr></abbrgrp>. The equal angle algorithm ensures that we only have to deal with reticulation edges crossing other edges. Furthermore, the construction of the auxiliary edges implies that edges that can be crossed by the reticulation edges are descendent edges of the lowest single ancestor of the reticulation. The optimization starts at the root of the networks and optimizes the arrangement of the directly descending vertices. It then continues the optimization iteratively at each directly descending vertex in the order given and keeps going until it has optimized all placements.</p>
               <p>Let <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i3"><m:semantics><m:mrow><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>T</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOvay1aa0baaSqaaiabdAha2bqaaiabdsfaubaaaaa@2FDB@</m:annotation></m:semantics></m:math></inline-formula> be the set of tree vertices directly below a vertex <it>v </it>and let <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i4"><m:semantics><m:mrow><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>I</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOvay1aa0baaSqaaiabdAha2bqaaiabdMeajbaaaaa@2FC5@</m:annotation></m:semantics></m:math></inline-formula> be the set of reticulation vertices connected to <it>v </it>by auxiliary edges. We say that a <it>tree path p</it>(<it>v, v'</it>) from a vertex <it>v </it>to a vertex <it>v' </it>exists if <it>v' </it>is a descendant of <it>v </it>and every edge in <it>p</it>(<it>v, v'</it>) is either a tree- or auxiliary-edge. Furthermore, we say that a reticulation <it>r </it>is <it>easily reachable </it>from a vertex <it>v </it>if a tree path <it>p</it>(<it>v</it>, <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i1"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiabdkhaYbaaaaa@304B@</m:annotation></m:semantics></m:math></inline-formula>) exists. Finally, let <it>R</it><sub><it>v </it></sub>be the set of all reticulations that are easily reachable from the vertex <it>v</it>.</p>
               <p>The set <it>R</it><sub><it>v </it></sub>can be divided into those reticulations <it>r </it>for which <it>v </it>= <it>lsa</it>(<it>r</it>), which we will again denote by <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i5"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>G</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdEeahbaaaaa@2FB9@</m:annotation></m:semantics></m:math></inline-formula>; <it>v </it>is a descendant of <it>lsa</it>(<it>r</it>), denoted by <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i6"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdseaebaaaaa@2FB3@</m:annotation></m:semantics></m:math></inline-formula>; and <it>v </it>is an ancestor of <it>lsa</it>(<it>r</it>), denoted by <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i7"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>A</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdgeabbaaaaa@2FAD@</m:annotation></m:semantics></m:math></inline-formula>. If <it>v </it>is the root, <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i6"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdseaebaaaaa@2FB3@</m:annotation></m:semantics></m:math></inline-formula> is empty. The set <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i6"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdseaebaaaaa@2FB3@</m:annotation></m:semantics></m:math></inline-formula> can be divided further. Since for a reticulation <it>r </it>in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i6"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdseaebaaaaa@2FB3@</m:annotation></m:semantics></m:math></inline-formula>, the nodes directly below <it>lsa</it>(<it>r</it>) have been previously sorted, we can denote the set <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i8"><m:semantics><m:mrow><m:msubsup><m:mover accent="true"><m:mi>R</m:mi><m:mo>&#175;</m:mo></m:mover><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGafmOuaiLbaebadaqhaaWcbaGaemODayhabaGaemiraqeaaaaa@2FCB@</m:annotation></m:semantics></m:math></inline-formula> as containing those <it>r </it>in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i6"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdseaebaaaaa@2FB3@</m:annotation></m:semantics></m:math></inline-formula> for which <it>r </it>is sorted less than the directly descending node of <it>lsa</it>(<it>r</it>) leading via a tree path to <it>v</it>.</p>
               <p>The aim of our optimization is to find a linear arrangement of the vertices in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i9"><m:semantics><m:mrow><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>T</m:mi></m:msubsup><m:mo>&#8746;</m:mo><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>I</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOvay1aa0baaSqaaiabdAha2bqaaiabdsfaubaakiabgQIiilabdAfawnaaDaaaleaacqWG2bGDaeaacqWGjbqsaaaaaa@3577@</m:annotation></m:semantics></m:math></inline-formula> such that the number of reticulation edges, in the subtrees of the vertices in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i9"><m:semantics><m:mrow><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>T</m:mi></m:msubsup><m:mo>&#8746;</m:mo><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>I</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOvay1aa0baaSqaaiabdAha2bqaaiabdsfaubaakiabgQIiilabdAfawnaaDaaaleaacqWG2bGDaeaacqWGjbqsaaaaaa@3577@</m:annotation></m:semantics></m:math></inline-formula>, intersecting with tree edges is minimized. We define the <it>optimal linear arrangement graph OLA</it><sup><it>v </it></sup>(<it>V</it>, <it>E</it>) of a vertex <it>v </it>as one that contains a vertex representative for any vertex in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i9"><m:semantics><m:mrow><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>T</m:mi></m:msubsup><m:mo>&#8746;</m:mo><m:msubsup><m:mi>V</m:mi><m:mi>v</m:mi><m:mi>I</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOvay1aa0baaSqaaiabdAha2bqaaiabdsfaubaakiabgQIiilabdAfawnaaDaaaleaacqWG2bGDaeaacqWGjbqsaaaaaa@3577@</m:annotation></m:semantics></m:math></inline-formula>. We add a weighted edge between any two vertices (<it>v</it><sub><it>i</it></sub>, <it>v</it><sub><it>k</it></sub>) in <it>V </it>and set the weight <it>w</it><sub><it>ik </it></sub>of the edge to <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i10"><m:semantics><m:mrow><m:mrow><m:mo>|</m:mo><m:mrow><m:msubsup><m:mi>R</m:mi><m:mrow><m:msub><m:mi>v</m:mi><m:mi>i</m:mi></m:msub></m:mrow><m:mi>D</m:mi></m:msubsup><m:mo>&#8745;</m:mo><m:msubsup><m:mi>R</m:mi><m:mrow><m:msub><m:mi>v</m:mi><m:mi>k</m:mi></m:msub></m:mrow><m:mi>D</m:mi></m:msubsup></m:mrow><m:mo>|</m:mo></m:mrow></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaWaaqWaaeaacqWGsbGudaqhaaWcbaGaemODay3aaSbaaWqaaiabdMgaPbqabaaaleaacqWGebaraaGccqGHPiYXcqWGsbGudaqhaaWcbaGaemODay3aaSbaaWqaaiabdUgaRbqabaaaleaacqWGebaraaaakiaawEa7caGLiWoaaaa@3B91@</m:annotation></m:semantics></m:math></inline-formula>. More formally written:</p>
               <p>
                  <b>Problem 1 </b>
                  <it>With</it>
               </p>
               <p>
                  <display-formula>
                     <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i11">
                        <m:semantics>
                           <m:mrow>
                              <m:msub>
                                 <m:mi>x</m:mi>
                                 <m:mrow>
                                    <m:mi>i</m:mi>
                                    <m:mi>k</m:mi>
                                 </m:mrow>
                              </m:msub>
                              <m:mo>=</m:mo>
                              <m:mrow>
                                 <m:mo>{</m:mo>
                                 <m:mrow>
                                    <m:mtable>
                                       <m:mtr>
                                          <m:mtd>
                                             <m:mrow>
                                                <m:mtable columnalign="left">
                                                   <m:mtr columnalign="left">
                                                      <m:mtd columnalign="left">
                                                         <m:mn>1</m:mn>
                                                      </m:mtd>
                                                      <m:mtd columnalign="left">
                                                         <m:mrow>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>f</m:mi>
                                                            <m:mtext>&#160;</m:mtext>
                                                            <m:mi>v</m:mi>
                                                            <m:mi>e</m:mi>
                                                            <m:mi>r</m:mi>
                                                            <m:mi>t</m:mi>
                                                            <m:mi>e</m:mi>
                                                            <m:mi>x</m:mi>
                                                            <m:mtext>&#160;</m:mtext>
                                                            <m:mi>i</m:mi>
                                                            <m:mtext>&#160;</m:mtext>
                                                            <m:mi>t</m:mi>
                                                            <m:mi>a</m:mi>
                                                            <m:mi>k</m:mi>
                                                            <m:mi>e</m:mi>
                                                            <m:mi>s</m:mi>
                                                            <m:mtext>&#160;</m:mtext>
                                                            <m:mi>p</m:mi>
                                                            <m:mi>o</m:mi>
                                                            <m:mi>s</m:mi>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>t</m:mi>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>o</m:mi>
                                                            <m:mi>n</m:mi>
                                                            <m:mtext>&#160;</m:mtext>
                                                            <m:mi>k</m:mi>
                                                            <m:mo>,</m:mo>
                                                         </m:mrow>
                                                      </m:mtd>
                                                   </m:mtr>
                                                   <m:mtr columnalign="left">
                                                      <m:mtd columnalign="left">
                                                         <m:mn>0</m:mn>
                                                      </m:mtd>
                                                      <m:mtd columnalign="left">
                                                         <m:mrow>
                                                            <m:mi>o</m:mi>
                                                            <m:mi>t</m:mi>
                                                            <m:mi>h</m:mi>
                                                            <m:mi>e</m:mi>
                                                            <m:mi>r</m:mi>
                                                            <m:mi>w</m:mi>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>s</m:mi>
                                                            <m:mi>e</m:mi>
                                                            <m:mo>,</m:mo>
                                                         </m:mrow>
                                                      </m:mtd>
                                                   </m:mtr>
                                                </m:mtable>
                                             </m:mrow>
                                          </m:mtd>
                                          <m:mtd>
                                             <m:mrow>
                                                <m:mo>&#8704;</m:mo>
                                                <m:mi>i</m:mi>
                                                <m:mo>,</m:mo>
                                                <m:mi>k</m:mi>
                                             </m:mrow>
                                          </m:mtd>
                                       </m:mtr>
                                    </m:mtable>
                                 </m:mrow>
                              </m:mrow>
                           </m:mrow>
                           <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aaSbaaSqaaiabdMgaPjabdUgaRbqabaGccqGH9aqpdaGabaqaauaabeqabiaaaeaafaqaaeGacaaabaGaeGymaedabaGaemyAaKMaemOzayMaeeiiaaIaemODayNaemyzauMaemOCaiNaemiDaqNaemyzauMaemiEaGNaeeiiaaIaemyAaKMaeeiiaaIaemiDaqNaemyyaeMaem4AaSMaemyzauMaem4CamNaeeiiaaIaemiCaaNaem4Ba8Maem4CamNaemyAaKMaemiDaqNaemyAaKMaem4Ba8MaemOBa4MaeeiiaaIaem4AaSMaeiilaWcabaGaeGimaadabaGaem4Ba8MaemiDaqNaemiAaGMaemyzauMaemOCaiNaem4DaCNaemyAaKMaem4CamNaemyzauMaeiilaWcaaaqaaiabgcGiIiabdMgaPjabcYcaSiabdUgaRbaaaiaawUhaaaaa@6B21@</m:annotation>
                        </m:semantics>
                     </m:math>
                  </display-formula>
               </p>
               <p>
                  <it>minimize</it>
               </p>
               <p>
                  <display-formula>
                     <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i12">
                        <m:semantics>
                           <m:mtable columnalign="left">
                              <m:mtr>
                                 <m:mtd>
                                    <m:mtable columnalign="left">
                                       <m:mtr columnalign="left">
                                          <m:mtd columnalign="left">
                                             <m:mrow>
                                                <m:mstyle displaystyle="true">
                                                   <m:munder>
                                                      <m:mo>&#8721;</m:mo>
                                                      <m:mrow>
                                                         <m:mo stretchy="false">(</m:mo>
                                                         <m:mi>i</m:mi>
                                                         <m:mo>,</m:mo>
                                                         <m:mi>j</m:mi>
                                                         <m:mo stretchy="false">)</m:mo>
                                                         <m:mo>&#8712;</m:mo>
                                                         <m:mi>E</m:mi>
                                                      </m:mrow>
                                                   </m:munder>
                                                   <m:mrow>
                                                      <m:msub>
                                                         <m:mi>w</m:mi>
                                                         <m:mrow>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>j</m:mi>
                                                         </m:mrow>
                                                      </m:msub>
                                                      <m:msub>
                                                         <m:mi>x</m:mi>
                                                         <m:mrow>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>k</m:mi>
                                                         </m:mrow>
                                                      </m:msub>
                                                      <m:msub>
                                                         <m:mi>x</m:mi>
                                                         <m:mrow>
                                                            <m:mi>j</m:mi>
                                                            <m:mi>l</m:mi>
                                                         </m:mrow>
                                                      </m:msub>
                                                      <m:mrow>
                                                         <m:mo>|</m:mo>
                                                         <m:mrow>
                                                            <m:mi>k</m:mi>
                                                            <m:mo>&#8722;</m:mo>
                                                            <m:mi>l</m:mi>
                                                         </m:mrow>
                                                         <m:mo>|</m:mo>
                                                      </m:mrow>
                                                      <m:mo>+</m:mo>
                                                      <m:mstyle displaystyle="true">
                                                         <m:munder>
                                                            <m:mo>&#8721;</m:mo>
                                                            <m:mrow>
                                                               <m:mi>i</m:mi>
                                                               <m:mo>&#8712;</m:mo>
                                                               <m:mi>V</m:mi>
                                                            </m:mrow>
                                                         </m:munder>
                                                         <m:mrow>
                                                            <m:mrow>
                                                               <m:mo>|</m:mo>
                                                               <m:mrow>
                                                                  <m:msubsup>
                                                                     <m:mi>R</m:mi>
                                                                     <m:mrow>
                                                                        <m:msub>
                                                                           <m:mi>v</m:mi>
                                                                           <m:mi>i</m:mi>
                                                                        </m:msub>
                                                                     </m:mrow>
                                                                     <m:mi>D</m:mi>
                                                                  </m:msubsup>
                                                                  <m:mo>&#8745;</m:mo>
                                                                  <m:msubsup>
                                                                     <m:mover accent="true">
                                                                        <m:mi>R</m:mi>
                                                                        <m:mo>&#175;</m:mo>
                                                                     </m:mover>
                                                                     <m:mi>n</m:mi>
                                                                     <m:mi>D</m:mi>
                                                                  </m:msubsup>
                                                               </m:mrow>
                                                               <m:mo>|</m:mo>
                                                            </m:mrow>
                                                            <m:msub>
                                                               <m:mi>x</m:mi>
                                                               <m:mrow>
                                                                  <m:mi>i</m:mi>
                                                                  <m:mi>k</m:mi>
                                                               </m:mrow>
                                                            </m:msub>
                                                            <m:mrow>
                                                               <m:mo>|</m:mo>
                                                               <m:mi>k</m:mi>
                                                               <m:mo>|</m:mo>
                                                            </m:mrow>
                                                         </m:mrow>
                                                      </m:mstyle>
                                                   </m:mrow>
                                                </m:mstyle>
                                                <m:mo>+</m:mo>
                                             </m:mrow>
                                          </m:mtd>
                                       </m:mtr>
                                       <m:mtr columnalign="left">
                                          <m:mtd columnalign="left">
                                             <m:mrow>
                                                <m:mstyle displaystyle="true">
                                                   <m:munder>
                                                      <m:mo>&#8721;</m:mo>
                                                      <m:mrow>
                                                         <m:mi>i</m:mi>
                                                         <m:mo>&#8712;</m:mo>
                                                         <m:mi>V</m:mi>
                                                      </m:mrow>
                                                   </m:munder>
                                                   <m:mrow>
                                                      <m:mrow>
                                                         <m:mo>|</m:mo>
                                                         <m:mrow>
                                                            <m:msubsup>
                                                               <m:mi>R</m:mi>
                                                               <m:mrow>
                                                                  <m:msub>
                                                                     <m:mi>v</m:mi>
                                                                     <m:mi>i</m:mi>
                                                                  </m:msub>
                                                               </m:mrow>
                                                               <m:mi>D</m:mi>
                                                            </m:msubsup>
                                                            <m:mo>&#8745;</m:mo>
                                                            <m:mrow>
                                                               <m:mo>(</m:mo>
                                                               <m:mrow>
                                                                  <m:msubsup>
                                                                     <m:mi>R</m:mi>
                                                                     <m:mi>n</m:mi>
                                                                     <m:mi>D</m:mi>
                                                                  </m:msubsup>
                                                                  <m:mo>\</m:mo>
                                                                  <m:msubsup>
                                                                     <m:mover accent="true">
                                                                        <m:mi>R</m:mi>
                                                                        <m:mo>&#175;</m:mo>
                                                                     </m:mover>
                                                                     <m:mi>n</m:mi>
                                                                     <m:mi>D</m:mi>
                                                                  </m:msubsup>
                                                               </m:mrow>
                                                               <m:mo>)</m:mo>
                                                            </m:mrow>
                                                            <m:mrow>
                                                               <m:mo>|</m:mo>
                                                               <m:mrow>
                                                                  <m:msub>
                                                                     <m:mi>x</m:mi>
                                                                     <m:mrow>
                                                                        <m:mi>i</m:mi>
                                                                        <m:mi>k</m:mi>
                                                                     </m:mrow>
                                                                  </m:msub>
                                                               </m:mrow>
                                                               <m:mo>|</m:mo>
                                                            </m:mrow>
                                                            <m:mrow>
                                                               <m:mo>|</m:mo>
                                                               <m:mi>V</m:mi>
                                                               <m:mo>|</m:mo>
                                                            </m:mrow>
                                                            <m:mo>&#8722;</m:mo>
                                                            <m:mi>k</m:mi>
                                                         </m:mrow>
                                                         <m:mo>|</m:mo>
                                                      </m:mrow>
                                                   </m:mrow>
                                                </m:mstyle>
                                             </m:mrow>
                                          </m:mtd>
                                       </m:mtr>
                                    </m:mtable>
                                 </m:mtd>
                              </m:mtr>
                              <m:mtr>
                                 <m:mtd>
                                    <m:mtable>
                                       <m:mtr>
                                          <m:mtd>
                                             <m:mrow>
                                                <m:mi>s</m:mi>
                                                <m:mi>u</m:mi>
                                                <m:mi>b</m:mi>
                                                <m:mi>j</m:mi>
                                                <m:mi>e</m:mi>
                                                <m:mi>c</m:mi>
                                                <m:mi>t</m:mi>
                                                <m:mtext>&#160;</m:mtext>
                                                <m:mi>t</m:mi>
                                                <m:mi>o</m:mi>
                                             </m:mrow>
                                          </m:mtd>
                                          <m:mtd>
                                             <m:mrow>
                                                <m:mstyle displaystyle="true">
                                                   <m:munder>
                                                      <m:mo>&#8721;</m:mo>
                                                      <m:mrow>
                                                         <m:mi>i</m:mi>
                                                         <m:mo>&#8712;</m:mo>
                                                         <m:mo stretchy="false">(</m:mo>
                                                         <m:mi>V</m:mi>
                                                         <m:mo stretchy="false">)</m:mo>
                                                      </m:mrow>
                                                   </m:munder>
                                                   <m:mrow>
                                                      <m:msub>
                                                         <m:mi>x</m:mi>
                                                         <m:mrow>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>k</m:mi>
                                                         </m:mrow>
                                                      </m:msub>
                                                      <m:mo>=</m:mo>
                                                      <m:mn>1</m:mn>
                                                   </m:mrow>
                                                </m:mstyle>
                                             </m:mrow>
                                          </m:mtd>
                                          <m:mtd>
                                             <m:mrow>
                                                <m:mtable>
                                                   <m:mtr>
                                                      <m:mtd>
                                                         <m:mrow>
                                                            <m:mi>a</m:mi>
                                                            <m:mi>n</m:mi>
                                                            <m:mi>d</m:mi>
                                                         </m:mrow>
                                                      </m:mtd>
                                                      <m:mtd>
                                                         <m:mrow>
                                                            <m:mtable>
                                                               <m:mtr>
                                                                  <m:mtd>
                                                                     <m:mrow>
                                                                        <m:mstyle displaystyle="true">
                                                                           <m:munder>
                                                                              <m:mo>&#8721;</m:mo>
                                                                              <m:mrow>
                                                                                 <m:mi>k</m:mi>
                                                                                 <m:mo>&#8712;</m:mo>
                                                                                 <m:mo>{</m:mo>
                                                                                 <m:mn>1</m:mn>
                                                                                 <m:mo>,</m:mo>
                                                                                 <m:mn>...</m:mn>
                                                                                 <m:mo>,</m:mo>
                                                                                 <m:mrow>
                                                                                    <m:mo>|</m:mo>
                                                                                    <m:mi>V</m:mi>
                                                                                    <m:mo>|</m:mo>
                                                                                 </m:mrow>
                                                                                 <m:mo>}</m:mo>
                                                                              </m:mrow>
                                                                           </m:munder>
                                                                           <m:mrow>
                                                                              <m:msub>
                                                                                 <m:mi>x</m:mi>
                                                                                 <m:mrow>
                                                                                    <m:mi>i</m:mi>
                                                                                    <m:mi>k</m:mi>
                                                                                 </m:mrow>
                                                                              </m:msub>
                                                                              <m:mo>=</m:mo>
                                                                              <m:mn>1</m:mn>
                                                                              <m:mo>,</m:mo>
                                                                           </m:mrow>
                                                                        </m:mstyle>
                                                                     </m:mrow>
                                                                  </m:mtd>
                                                                  <m:mtd>
                                                                     <m:mrow>
                                                                        <m:mo>&#8704;</m:mo>
                                                                        <m:mi>i</m:mi>
                                                                        <m:mo>,</m:mo>
                                                                        <m:mi>k</m:mi>
                                                                     </m:mrow>
                                                                  </m:mtd>
                                                               </m:mtr>
                                                            </m:mtable>
                                                         </m:mrow>
                                                      </m:mtd>
                                                   </m:mtr>
                                                </m:mtable>
                                             </m:mrow>
                                          </m:mtd>
                                       </m:mtr>
                                    </m:mtable>
                                 </m:mtd>
                              </m:mtr>
                           </m:mtable>
                           <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGceaqabeaafaqaaeGabaaabaWaaabuaeaacqWG3bWDdaWgaaWcbaGaemyAaKMaemOAaOgabeaakiabdIha4naaBaaaleaacqWGPbqAcqWGRbWAaeqaaOGaemiEaG3aaSbaaSqaaiabdQgaQjabdYgaSbqabaGcdaabdaqaaiabdUgaRjabgkHiTiabdYgaSbGaay5bSlaawIa7aiabgUcaRmaaqafabaWaaqWaaeaacqWGsbGudaqhaaWcbaGaemODay3aaSbaaWqaaiabdMgaPbqabaaaleaacqWGebaraaGccqGHPiYXcuWGsbGugaqeamaaDaaaleaacqWGUbGBaeaacqWGebaraaaakiaawEa7caGLiWoacqWG4baEdaWgaaWcbaGaemyAaKMaem4AaSgabeaakmaaemaabaGaem4AaSgacaGLhWUaayjcSdaaleaacqWGPbqAcqGHiiIZcqWGwbGvaeqaniabggHiLdaaleaacqGGOaakcqWGPbqAcqGGSaalcqWGQbGAcqGGPaqkcqGHiiIZcqWGfbqraeqaniabggHiLdGccqGHRaWkaeaadaaeqbqaamaaemaabaGaemOuai1aa0baaSqaaiabdAha2naaBaaameaacqWGPbqAaeqaaaWcbaGaemiraqeaaOGaeyykIC8aaeWaaeaacqWGsbGudaqhaaWcbaGaemOBa4gabaGaemiraqeaaOGaeiixaWLafmOuaiLbaebadaqhaaWcbaGaemOBa4gabaGaemiraqeaaaGccaGLOaGaayzkaaWaaqWaaeaacqWG4baEdaWgaaWcbaGaemyAaKMaem4AaSgabeaaaOGaay5bSlaawIa7amaaemaabaGaemOvayfacaGLhWUaayjcSdGaeyOeI0Iaem4AaSgacaGLhWUaayjcSdaaleaacqWGPbqAcqGHiiIZcqWGwbGvaeqaniabggHiLdaaaaGcbaqbaeqabeWaaaqaaiabdohaZjabdwha1jabdkgaIjabdQgaQjabdwgaLjabdogaJjabdsha0jabbccaGiabdsha0jabd+gaVbqaamaaqafabaGaemiEaG3aaSbaaSqaaiabdMgaPjabdUgaRbqabaGccqGH9aqpcqaIXaqmaSqaaiabdMgaPjabgIGiolabcIcaOiabdAfawjabcMcaPaqab0GaeyyeIuoaaOqaauaabeqabiaaaeaaieGacqWFHbqycqWFUbGBcqWFKbazaeaafaqabeqacaaabaWaaabuaeaacqWG4baEdaWgaaWcbaGaemyAaKMaem4AaSgabeaakiabg2da9iabigdaXiabcYcaSaWcbaGaem4AaSMaeyicI4Saei4EaSNaeGymaeJaeiilaWIaeiOla4IaeiOla4IaeiOla4IaeiilaWYaaqWaaeaacqWGwbGvaiaawEa7caGLiWoacqGG9bqFaeqaniabggHiLdaakeaacqGHaiIicqWGPbqAcqGGSaalcqWGRbWAaaaaaaaaaaaa@CFC6@</m:annotation>
                        </m:semantics>
                     </m:math>
                  </display-formula>
               </p>
               <p>The optimal linear arrangement problem is known to be <it>hard </it><abbrgrp><abbr bid="B24">24</abbr></abbrgrp>. Nevertheless, this arrangement problem is in general much smaller than the complexity of minimizing all crossing edges at once. Interestingly, a couple of additional restrictions exist that we may apply to the ordering, leading to a "greedy" solution that works well in most cases. One restriction that we can place upon the structure is that for any reticulation <it>r</it>, the position in the ordering should be between <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i1"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiabdkhaYbaaaaa@304B@</m:annotation></m:semantics></m:math></inline-formula> and <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i2"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>q</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdghaXbqaaiabdkhaYbaaaaa@304D@</m:annotation></m:semantics></m:math></inline-formula>. Consequently, we should place <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i1"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiabdkhaYbaaaaa@304B@</m:annotation></m:semantics></m:math></inline-formula> and <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i2"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>q</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdghaXbqaaiabdkhaYbaaaaa@304D@</m:annotation></m:semantics></m:math></inline-formula> before we place <it>r</it>.</p>
               <p>Another restriction we can place is a consequence from the dependency of the reticulations upon each other. For any pair of reticulation <it>r, r' </it>in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i5"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>G</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdEeahbaaaaa@2FB9@</m:annotation></m:semantics></m:math></inline-formula> we say that <it>r </it>is less than <it>r' </it>if and only if a tree path <it>p</it>(<it>r</it>, <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i13"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:msup><m:mi>r</m:mi><m:mo>&#8242;</m:mo></m:msup></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiqbdkhaYzaafaaaaaaa@3057@</m:annotation></m:semantics></m:math></inline-formula>) exists. To meet the first restriction we have to place <it>r </it>before we can place <it>r'</it>. The graph that can be constructed from the relations between the reticulations must be cycle free, since the reticulation network is cycle free. Consequently, we can use a standard topological sorting algorithm to obtain a linear ordering <it>Ord</it><sub><it>l </it></sub>(<inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i5"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>G</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdEeahbaaaaa@2FB9@</m:annotation></m:semantics></m:math></inline-formula>) for the reticulations in <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i5"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>G</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdEeahbaaaaa@2FB9@</m:annotation></m:semantics></m:math></inline-formula>.</p>
               <p>The optimization algorithm iterates through the ordering and at each reticulation <it>r </it>it first places <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i1"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiabdkhaYbaaaaa@304B@</m:annotation></m:semantics></m:math></inline-formula> and <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i2"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>q</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdghaXbqaaiabdkhaYbaaaaa@304D@</m:annotation></m:semantics></m:math></inline-formula>, if necessary, and then <it>r</it>. If all reticulation are placed, the algorithm places all descending tree edges that have not yet been placed. At each placement, the algorithm positions the vertex at the position that minimizes the score given in Problem 1. After all nodes have been placed in the linear arrangement, the result is returned to the main method. An Example of the optimization procedure can be seen in Figure <figr fid="F1">1</figr>.</p>
               <fig id="F1">
                  <title>
                     <p>Figure 1</p>
                  </title>
                  <caption>
                     <p>Example of the layout optimization</p>
                  </caption>
                  <text>
                     <p><b>Example of the layout optimization</b>. The figure on the left side shows an explicit phylogenetic network. The reticulation edges of the network are shown as dashed lines. Removing the reticulation edges and integrating the auxiliary edges into the network leads to a tree structure, as shown on the right-hand side of the figure (auxiliary edges are drawn as dashed lines). The set of easily reachable edges <it>R</it><sub><it>v </it></sub>of the node <it>v </it>contains the reticulations <it>r</it>1, <it>r</it>2, <it>r</it>3, <it>r</it>4 and <it>r</it>*. The set <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i6"><m:semantics><m:mrow><m:msubsup><m:mi>R</m:mi><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemOuai1aa0baaSqaaiabdAha2bqaaiabdseaebaaaaa@2FB3@</m:annotation></m:semantics></m:math></inline-formula> only contains <it>r</it>* and is equal to <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i8"><m:semantics><m:mrow><m:msubsup><m:mover accent="true"><m:mi>R</m:mi><m:mo>&#175;</m:mo></m:mover><m:mi>v</m:mi><m:mi>D</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGafmOuaiLbaebadaqhaaWcbaGaemODayhabaGaemiraqeaaaaa@2FCB@</m:annotation></m:semantics></m:math></inline-formula>. The placement of <it>r</it>* has cost 1 since the reticulation edges only cross the edge that leads to leaf <it>g</it>. The placement of <it>r</it>4 has cost 2, since the reticulation edges to the right crosses <it>r</it>1 and <it>r</it>3.</p>
                  </text>
                  <graphic file="1471-2148-8-22-1"/>
               </fig>
            </sec>
            <sec>
               <st>
                  <p>Optimal placement for reticulation vertices</p>
               </st>
               <p>Having calculated the angle and optimal arrangement for each edge, we have to place the vertices. Tree vertices can be placed in the same way as in the standard equal angle algorithm. But since auxiliary edges do not come with a given length, we have to calculate an optimal placement for each of the reticulation vertices. Such a placement has to incorporate the conditions of the equal angle algorithm, otherwise we might face unnecessary crossings between edges. Note that there are two cases for which we have to consider different placement methods. In the first case, we have a reticulation <it>r </it>where the nodes <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i1"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>p</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdchaWbqaaiabdkhaYbaaaaa@304B@</m:annotation></m:semantics></m:math></inline-formula> and <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2148-8-22-i2"><m:semantics><m:mrow><m:msubsup><m:mi>v</m:mi><m:mi>q</m:mi><m:mi>r</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaagaart1ev2aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGacaGaaiaabeqaaeqabiWaaaGcbaGaemODay3aa0baaSqaaiabdghaXbqaaiabdkhaYbaaaaa@304D@</m:annotation></m:semantics></m:math></inline-formula> are both different from <it>lsa</it>(<it>r</it>), and in the second case, one of them is equal to <it>lsa</it>(<it>r</it>).</p>
               <p>In both cases, we place the reticulation vertex <it>r </it>on the bisector of the sector assigned to its auxiliary edge. In the first case, the distance between <it>r </it>and <it>lsa</it>(<it>r</it>) should be larger than the minimum distance between <it>lsa</it>(<it>r</it>) and the line <it>l</it>(<it>v</it><sub><it>p</it></sub>, <it>v</it><sub><it>q</it></sub>), indicating that <it>r </it>is a descendant of <it>v</it><sub><it>p </it></sub>and <it>v</it><sub><it>q</it></sub>. In other words, we assume the angles <it>v</it><sub><it>q</it></sub><it>v</it><sub><it>p</it></sub><it>r </it>and <it>v</it><sub><it>p</it></sub><it>v</it><sub><it>q</it></sub><it>r </it>are positive. In the second case, we assume that <it>v</it><sub><it>q </it></sub>is equal to <it>lsa</it>(<it>r</it>). We first calculate the point on the bisector <it>r</it><sub><it>t </it></sub>that has the same distance to <it>lsa</it>(<it>r</it>) as <it>v</it><sub><it>p </it></sub>and than ensure that the angle between <it>r</it><sub><it>t</it></sub><it>v</it><sub><it>p</it></sub><it>r </it>is positive. We added an option to the algorithm so that the user can specify the (maximum) value of this angle; the standard value is 15&#176;. An example of the drawing algorithm can be seen in Figure <figr fid="F2">2</figr>.</p>
               <fig id="F2">
                  <title>
                     <p>Figure 2</p>
                  </title>
                  <caption>
                     <p>Example of the drawing algorithm</p>
                  </caption>
                  <text>
                     <p><b>Example of the drawing algorithm</b>. The figure shows the drawing of a reticulation network that we recently published [20] which is based on three gene trees described in [28].</p>
                  </text>
                  <graphic file="1471-2148-8-22-2"/>
               </fig>
            </sec>
         </sec>
      </sec>
      <sec>
         <st>
            <p>Implementation</p>
         </st>
         <p>We started to integrate explicit phylogenetic networks into SplitsTree in our RECOMB 2005 article <abbrgrp><abbr bid="B6">6</abbr></abbrgrp>. Originally, such methods were squeezed into the existing data structures within SplitsTree. SplitsTree itself is built around a group of core classes, each one representing a different type of information. The standard file format of SplitsTree is the <it>Nexus </it><abbrgrp><abbr bid="B25">25</abbr></abbrgrp> file format and each core class has its own Nexus representation. Consequently, developing a Nexus representation of explicit phylogenetic networks is essential for the integration of these into SplitsTree.</p>
         <p>To build a Nexus representation for an explicit phylogenetic network, one needs to find an efficient way to present it as a string. We decided to use a version of the <it>extended Newick </it>(eNewick) <abbrgrp><abbr bid="B26">26</abbr></abbrgrp> format. In general, the eNewick format allows labels to be present up to two times within the network. A label is allowed to appear once as a leaf and once as an internal label. Whenever a label occurs twice, the leaf is identified with the internal vertex, thus providing a network with vertices of indegree two. A lot of research has lately been focused on proving some interesting decomposition theorems <abbrgrp><abbr bid="B6">6</abbr><abbr bid="B16">16</abbr><abbr bid="B20">20</abbr></abbrgrp> for explicit phylogenetic networks. The general motivation of these theorems is that the calculation of a reticulate network, with a minimal number of reticulation events, from some given information is hard <abbrgrp><abbr bid="B27">27</abbr></abbrgrp>. The idea is to decompose each network into its two-connected components and to calculate the minimal solutions of each two-connected component separately.</p>
         <p>Following the idea of decomposing explicit phylogenetic networks, each two-connected component may have several solutions and the possible combinations of these solutions grows exponentially, which is a problem if the number of two-connected components is large. Consequently, we decided that the Nexus representation of the network needs to reflect the two-connected components within it.</p>
         <p>Note that any reticulate network contains either a two-connected component or a tree like element, that contains the root. We call this particular element the <it>root component</it>. The two-connected components are called <it>netted components</it>, and for each netted component, a number of solutions may exist. Any connected component that is not a two-connected component is a <it>tree component</it>. Each tree component may appear more than once within the possible configurations. The possible combinations of these three basics elements is left to the user.</p>
         <p>We now describe a Nexus notation for explicit phylogenetic networks, the schematic of this notation is shown in Figure <figr fid="F3">3</figr>. In general, one needs to save the components containing the root in the <it>RootComponents </it>section. Any such string should either be formated in standard eNewick, in Newick format where any two leaves with the same label are labeled with the name of a tree component, or in Newick format where at least one leaf is labeled with the name of a netted component.</p>
         <fig id="F3">
            <title>
               <p>Figure 3</p>
            </title>
            <caption>
               <p>Reticulate Nexus Block Schematic</p>
            </caption>
            <text>
               <p><b>Reticulate Nexus Block Schematic</b>. Shown is a schematic of the Reticulate nexus block as it is implemented in SplitsTree. The block is divided into three parts: the <it>Dimensions </it>contains all information about the dimensions of the reticulate network; the <it>Format </it>is an optional element that describes the configuration of the reticulate network; and the <it>TreeComponents</it>, <it>NettedComponents </it>and <it>RootComponents </it>contain the string representation of the reticulate network.</p>
            </text>
            <graphic file="1471-2148-8-22-3"/>
         </fig>
         <p>The <it>NettedComponents </it>section contains a list of all two-connected components. Each one must be identified by a unique name and there must be at least one string representation given for each. Any such string must either be formated in eNewick, or in Newick format where any two leaves with the same label are labeled with the name of a tree component.</p>
         <p>Finally, the <it>TreeComponents </it>section contains a list of uniquely named strings in Newick format, where leaves can be labeled with the name of netted components.</p>
      </sec>
      <sec>
         <st>
            <p>Conclusion</p>
         </st>
         <p>In this article we presented a new algorithm for the visualization of explicit phylogenetic networks. The algorithm is a generalization of the well known equal angle algorithm and can be used to adapt most known phylogenetic tree drawing algorithm to the task of drawing reticulate networks. Moreover, we have described a datastructure and file format for representing reticulate networks in a way that reflects the structural properties of the networks.</p>
         <p>Our implementation of these results in the popular SplitsTree software will make them accessible to biologists and other researchers that are interested in using such networks.</p>
      </sec>
      <sec>
         <st>
            <p>Availability and requirements</p>
         </st>
         <p>&#8226; <b>Project name: </b>Drawing Phylogenetic Networks</p>
         <p>&#8226; <b>Project home page: </b><url>http://www.SplitsTree.org</url></p>
         <p>&#8226; <b>Operation system(s): </b>Platform independent</p>
         <p>&#8226; <b>Programming language: </b>Java</p>
         <p>The extensions to SplitsTree 4 are freely available for users of the application. SplitsTree 4 can be downloaded from the projects home page. Using the application is free.</p>
      </sec>
      <sec>
         <st>
            <p>Authors' contributions</p>
         </st>
         <p>TK designed the algorithm and the integration into SplitsTree. TK and DH implemented the algorithm and the integration. TK and DH wrote the manuscript for the article.</p>
      </sec>
   </bdy>
   <bm>
      <ack>
         <sec>
            <st>
               <p>Acknowledgements</p>
            </st>
            <p>We would like to thank Anand Radhakrishnan, C. Nickias Kienle and K. Wiederhold for many helpful discussions. Furthermore we thank anonymous reviewers for their helpful comments and suggestions.</p>
         </sec>
      </ack>
      <refgrp>
         <bibl id="B1">
            <title>
               <p>A canonical decomposition theory for metrics on a finite set</p>
            </title>
            <aug>
               <au>
                  <snm>Bandelt</snm>
                  <fnm>HJ</fnm>
               </au>
               <au>
                  <snm>Dress</snm>
                  <fnm>AWM</fnm>
               </au>
            </aug>
            <source>Advances in Mathematics</source>
            <pubdate>1992</pubdate>
            <volume>92</volume>
            <fpage>47</fpage>
            <lpage>105</lpage>
         </bibl>
         <bibl id="B2">
            <title>
               <p>Application of phylogenetic networks in evolutionary studies</p>
            </title>
            <aug>
               <au>
                  <snm>Huson</snm>
                  <fnm>DH</fnm>
               </au>
               <au>
                  <snm>Bryant</snm>
                  <fnm>D</fnm>
               </au>
            </aug>
            <source>Molecular Biology and Evolution</source>
            <pubdate>2006</pubdate>
            <volume>23</volume>
            <fpage>254</fpage>
            <lpage>267</lpage>
            <note>[Software available from <url>http://www.splitstree.org</url>].</note>
         </bibl>
         <bibl id="B3">
            <title>
               <p>Testing hybrization hypotheses based on incongruent gene trees</p>
            </title>
            <aug>
               <au>
                  <snm>Sang</snm>
                  <fnm>T</fnm>
               </au>
               <au>
                  <snm>Zhong</snm>
                  <fnm>Y</fnm>
               </au>
            </aug>
            <source>System Biol</source>
            <pubdate>2000</pubdate>
            <volume>49</volume>
            <issue>3</issue>
            <fpage>422</fpage>
            <lpage>424</lpage>
         </bibl>
         <bibl id="B4">
            <title>
               <p>Reconstructing Patterns of Reticulate Evolution in Plants</p>
            </title>
            <aug>
               <au>
                  <snm>Linder</snm>
                  <fnm>CR</fnm>
               </au>
               <au>
                  <snm>Rieseberg</snm>
                  <fnm>LH</fnm>
               </au>
            </aug>
            <source>Am J Bot</source>
            <pubdate>2004</pubdate>
            <volume>91</volume>
            <issue>10</issue>
            <fpage>1700</fpage>
            <lpage>1708</lpage>
         </bibl>
         <bibl id="B5">
            <title>
               <p>Reconstructing reticulate evolution in species &#8211; theory and practice</p>
            </title>
            <aug>
               <au>
                  <snm>Nakhleh</snm>
                  <fnm>L</fnm>
               </au>
               <au>
                  <snm>Warnow</snm>
                  <fnm>T</fnm>
               </au>
               <au>
                  <snm>Linder</snm>
                  <fnm>CR</fnm>
               </au>
            </aug>
            <source>Proceedings of the Eighth International Conference on Research in Computational Molecular Biology (RECOMB)</source>
            <pubdate>2004</pubdate>
            <fpage>337</fpage>
            <lpage>346</lpage>
         </bibl>
         <bibl id="B6">
            <title>
               <p>Reconstruction of Reticulate Networks from Gene Trees</p>
            </title>
            <aug>
               <au>
                  <snm>Huson</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Kloepper</snm>
                  <fnm>T</fnm>
               </au>
               <au>
                  <snm>Lockhart</snm>
                  <fnm>P</fnm>
               </au>
               <au>
                  <snm>Steel</snm>
                  <fnm>M</fnm>
               </au>
            </aug>
            <source>Proceedings of the Ninth International Conference on Research in Computational Molecular Biology (RECOMB)</source>
            <publisher>LNCS, Springer Verlag</publisher>
            <pubdate>2005</pubdate>
            <volume>3500</volume>
            <fpage>233</fpage>
            <lpage>249</lpage>
         </bibl>
         <bibl id="B7">
            <title>
               <p>Computing the minimum number of hybridisation events for a consistent evolutionary history</p>
            </title>
            <aug>
               <au>
                  <snm>Bordewich</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Semple</snm>
                  <fnm>C</fnm>
               </au>
            </aug>
            <source>Discrete Appl Math</source>
            <pubdate>2007</pubdate>
            <volume>155</volume>
            <issue>8</issue>
            <fpage>914</fpage>
            <lpage>928</lpage>
         </bibl>
         <bibl id="B8">
            <title>
               <p>Simultaneous Identification of Duplications and Lateral Transfers</p>
            </title>
            <aug>
               <au>
                  <snm>Hallett</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Largergren</snm>
                  <fnm>J</fnm>
               </au>
               <au>
                  <snm>Tofigh</snm>
                  <fnm>A</fnm>
               </au>
            </aug>
            <source>Proceedings of the Eight International Conference on Research in Computational Molecular Biology (RECOMB)</source>
            <pubdate>2004</pubdate>
            <fpage>347</fpage>
            <lpage>356</lpage>
         </bibl>
         <bibl id="B9">
            <title>
               <p>Properties of the Neutral Allele Model with intergenic Recombination</p>
            </title>
            <aug>
               <au>
                  <snm>Hudson</snm>
                  <fnm>RR</fnm>
               </au>
            </aug>
            <source>Theoretical Population Biology</source>
            <pubdate>1983</pubdate>
            <volume>23</volume>
            <fpage>183</fpage>
            <lpage>201</lpage>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">6612631</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B10">
            <title>
               <p>Reconstructing evolution of sequences subject to recombination using parsimony</p>
            </title>
            <aug>
               <au>
                  <snm>Hein</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>Math Biosci</source>
            <pubdate>1990</pubdate>
            <fpage>185</fpage>
            <lpage>200</lpage>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">2134501</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B11">
            <title>
               <p>Ancestral Inference from Samples of DNA Sequences with Recombination</p>
            </title>
            <aug>
               <au>
                  <snm>Griffiths</snm>
                  <fnm>RC</fnm>
               </au>
               <au>
                  <snm>Marjoram</snm>
                  <fnm>P</fnm>
               </au>
            </aug>
            <source>J Computational Biology</source>
            <pubdate>1996</pubdate>
            <volume>3</volume>
            <fpage>479</fpage>
            <lpage>502</lpage>
         </bibl>
         <bibl id="B12">
            <title>
               <p>Efficient reconstruction of phylogenetic networks with constrained recombination</p>
            </title>
            <aug>
               <au>
                  <snm>Gusfield</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Eddhu</snm>
                  <fnm>S</fnm>
               </au>
               <au>
                  <snm>Langley</snm>
                  <fnm>C</fnm>
               </au>
            </aug>
            <source>Proceedings of the IEEE Computer Society Conference on Bioinformatics</source>
            <pubdate>2003</pubdate>
            <fpage>363</fpage>
         </bibl>
         <bibl id="B13">
            <title>
               <p>Parsimonious Reconstruction of Sequence Evolution and Haplotype Blocks: Finding the Minimum Number of Recombination Events</p>
            </title>
            <aug>
               <au>
                  <snm>Song</snm>
                  <fnm>Y</fnm>
               </au>
               <au>
                  <snm>Hein</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>Proceedings of the IEEE Computer Society Conference on Bioinformatics</source>
            <pubdate>2003</pubdate>
            <fpage>287</fpage>
            <lpage>302</lpage>
            <note>[Proceedings of the Workshop on Algorithms in Bioinformatics].</note>
         </bibl>
         <bibl id="B14">
            <title>
               <p>The Fine Structure of Galls in Phylogenetic Networks</p>
            </title>
            <aug>
               <au>
                  <snm>D Gusfield</snm>
                  <fnm>SE</fnm>
               </au>
               <au>
                  <snm>Langley</snm>
                  <fnm>C</fnm>
               </au>
            </aug>
            <source>INFORMS J. of Computing Special Issue on Computational Biology</source>
            <pubdate>2004</pubdate>
            <volume>16</volume>
            <issue>4</issue>
            <fpage>459</fpage>
            <lpage>469</lpage>
         </bibl>
         <bibl id="B15">
            <title>
               <p>On the minimum Number of Recombination Events in the Evolutionary History of DNA Sequences</p>
            </title>
            <aug>
               <au>
                  <snm>Song</snm>
                  <fnm>Y</fnm>
               </au>
               <au>
                  <snm>Hein</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>J Math Biol</source>
            <pubdate>2004</pubdate>
            <volume>48</volume>
            <fpage>160</fpage>
            <lpage>186</lpage>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">14745509</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B16">
            <title>
               <p>A Fundamental Decomposition Theory for Phylogenetic Networks and Incompatible Characters</p>
            </title>
            <aug>
               <au>
                  <snm>Gusfield</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Bansal</snm>
                  <fnm>V</fnm>
               </au>
            </aug>
            <source>Proceedings of the Ninth International Conference on Research in Computational Molecular Biology (RECOMB)</source>
            <pubdate>2005</pubdate>
            <fpage>217</fpage>
            <lpage>232</lpage>
         </bibl>
         <bibl id="B17">
            <title>
               <p>Computing Recombination Networks from Binary Sequences</p>
            </title>
            <aug>
               <au>
                  <snm>Huson</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Kloepper</snm>
                  <fnm>T</fnm>
               </au>
            </aug>
            <source>Bioinformatics</source>
            <pubdate>2005</pubdate>
            <volume>21</volume>
            <issue>suppl. 2</issue>
            <fpage>ii159</fpage>
            <lpage>ii165</lpage>
            <note>[ECCB].</note>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">16204096</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B18">
            <title>
               <p>Constructing Minimal Ancestral Recombination Graphs</p>
            </title>
            <aug>
               <au>
                  <snm>Song</snm>
                  <fnm>Y</fnm>
               </au>
               <au>
                  <snm>Hein</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>J Comp Biol</source>
            <pubdate>2005</pubdate>
            <volume>12</volume>
            <fpage>147</fpage>
            <lpage>169</lpage>
         </bibl>
         <bibl id="B19">
            <title>
               <p>Minimum Recombination Histories by Branch and Bound</p>
            </title>
            <aug>
               <au>
                  <snm>Lyngs&#248;</snm>
                  <fnm>RB</fnm>
               </au>
               <au>
                  <snm>Song</snm>
                  <fnm>YS</fnm>
               </au>
               <au>
                  <snm>Hein</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>WABI</source>
            <pubdate>2005</pubdate>
            <fpage>239</fpage>
            <lpage>250</lpage>
         </bibl>
         <bibl id="B20">
            <title>
               <p>Beyond Galled Trees &#8211; Decomposition and Computation of Galled Networks</p>
            </title>
            <aug>
               <au>
                  <snm>Huson</snm>
                  <fnm>DH</fnm>
               </au>
               <au>
                  <snm>Kloepper</snm>
                  <fnm>TH</fnm>
               </au>
            </aug>
            <pubdate>2007</pubdate>
            <note>[Accepted to RECOMB2007].</note>
         </bibl>
         <bibl id="B21">
            <aug>
               <au>
                  <snm>Semple</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Steel</snm>
                  <fnm>MA</fnm>
               </au>
            </aug>
            <source>Phylogenetics</source>
            <publisher>Oxford University Press</publisher>
            <pubdate>2003</pubdate>
         </bibl>
         <bibl id="B22">
            <aug>
               <au>
                  <snm>Felsenstein</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>Inferring Phylogenies</source>
            <publisher>Sinauer Associates, Inc</publisher>
            <pubdate>2004</pubdate>
         </bibl>
         <bibl id="B23">
            <title>
               <p>Some simplified NP-complete graph problems</p>
            </title>
            <aug>
               <au>
                  <snm>MR Garey</snm>
                  <fnm>DSJ</fnm>
               </au>
               <au>
                  <snm>Stockmeyer</snm>
                  <fnm>L</fnm>
               </au>
            </aug>
            <source>Theoretical Computer Science</source>
            <pubdate>1976</pubdate>
            <fpage>237</fpage>
            <lpage>267</lpage>
         </bibl>
         <bibl id="B24">
            <title>
               <p>Crossing Number is NP-Complete</p>
            </title>
            <aug>
               <au>
                  <snm>Garey</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Johnson</snm>
                  <fnm>D</fnm>
               </au>
            </aug>
            <source>SIAM J Alg Discr Math</source>
            <pubdate>1983</pubdate>
            <issue>4</issue>
            <fpage>312</fpage>
            <lpage>316</lpage>
         </bibl>
         <bibl id="B25">
            <title>
               <p>NEXUS: an extendible file format for systematic information</p>
            </title>
            <aug>
               <au>
                  <snm>Maddison</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Swofford</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Maddison</snm>
                  <fnm>W</fnm>
               </au>
            </aug>
            <source>System Bio</source>
            <pubdate>1997</pubdate>
            <volume>46</volume>
            <issue>4</issue>
            <fpage>590</fpage>
            <lpage>621</lpage>
         </bibl>
         <bibl id="B26">
            <title>
               <p>NetGen: generating phylogenetic networks with diploid hybrids</p>
            </title>
            <aug>
               <au>
                  <snm>Morin</snm>
                  <fnm>MM</fnm>
               </au>
               <au>
                  <snm>Moret</snm>
                  <fnm>BME</fnm>
               </au>
            </aug>
            <source>Bioinformatics</source>
            <pubdate>2006</pubdate>
            <volume>22</volume>
            <issue>15</issue>
            <fpage>1921</fpage>
            <lpage>1923</lpage>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">16717070</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B27">
            <title>
               <p>Perfect Phylogenetic Networks with Recombination</p>
            </title>
            <aug>
               <au>
                  <snm>Wang</snm>
                  <fnm>L</fnm>
               </au>
               <au>
                  <snm>Zhang</snm>
                  <fnm>K</fnm>
               </au>
               <au>
                  <snm>Zhang</snm>
                  <fnm>L</fnm>
               </au>
            </aug>
            <source>Journal of Computational Biology</source>
            <pubdate>2001</pubdate>
            <volume>8</volume>
            <fpage>69</fpage>
            <lpage>78</lpage>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">11339907</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B28">
            <title>
               <p>Molecular characterization of Embellisia and Nimbya species and their relationship to Alternaria, Ulocladium and Stemphylium</p>
            </title>
            <aug>
               <au>
                  <snm>Pryor</snm>
                  <fnm>BM</fnm>
               </au>
               <au>
                  <snm>Bigelow</snm>
                  <fnm>DM</fnm>
               </au>
            </aug>
            <source>Mycologia</source>
            <pubdate>2003</pubdate>
            <volume>95</volume>
            <issue>6</issue>
            <fpage>1141</fpage>
            <lpage>1154</lpage>
         </bibl>
      </refgrp>
   </bm>
</art>
