<?xml version='1.0'?>
<!DOCTYPE art SYSTEM 'http://www.biomedcentral.com/xml/article.dtd'>
<art><ui>1471-2105-13-S19-S14</ui><ji>1471-2105</ji><fm>
<dochead>Proceedings</dochead>
<bibl>
<title>
<p>Restricted DCJ-indel model: sorting linear genomes with DCJ and indels</p>
</title>
<aug>
<au ca="yes" id="A1"><snm>da Silva</snm><mi>H</mi><fnm>Poly</fnm><insr iid="I1"/><insr iid="I2"/><email>poly.hannah@gmail.com</email></au>
<au id="A2"><snm>Machado</snm><fnm>Raphael</fnm><insr iid="I2"/><email>rmachado@inmetro.gov.br</email></au>
<au id="A3"><snm>Dantas</snm><fnm>Simone</fnm><insr iid="I1"/><email>sdantas@im.uff.br</email></au>
<au id="A4"><snm>Braga</snm><mi>DV</mi><fnm>Mar&#237;lia</fnm><insr iid="I2"/><email>mdbraga@inmetro.gov.br</email></au>
</aug>
<insg>
<ins id="I1"><p>IME, Universidade Federal Fluminense, Niter&#243;i, Brazil</p></ins>
<ins id="I2"><p>Inmetro - Instituto Nacional de Metrologia, Qualidade e Tecnologia, Duque de Caxias, 25250-020, Brazil</p></ins>
</insg>
<source>BMC Bioinformatics</source>


<supplement><title><p>Proceedings of the Tenth Annual Research in Computational Molecular Biology (RECOMB) Satellite Workshop on Comparative Genomics</p></title><editor>Mathieu Banchette, Marilia D V Braga and Marie-France Sagot</editor><sponsor><note>This supplement has not been supported by sponsorship or other external funding.</note></sponsor><note>Proceedings</note></supplement><conference><title><p>Tenth Annual Research in Computational Molecular Biology (RECOMB) Satellite Workshop on Comparative Genomics</p></title><location>Niteroi, Brazil</location><date-range>17-19 October 2012</date-range><url>http://www.uff.br/recombcg/</url></conference><issn>1471-2105</issn>
<pubdate>2012</pubdate>
<volume>13</volume>
<issue>Suppl 19</issue>
<fpage>S14</fpage>
<url>http://www.biomedcentral.com/1471-2105/13/S19/S14</url>
<xrefbib><pubidlist><pubid idtype="pmpid">23281630</pubid><pubid idtype="doi">10.1186/1471-2105-13-S19-S14</pubid></pubidlist></xrefbib>
</bibl>
<history><pub><date><day>19</day><month>12</month><year>2012</year></date></pub></history>
<cpyrt><year>2012</year><collab>da Silva et al; 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>The double-cut-and-join (DCJ) is a model that is able to efficiently sort a genome into another, generalizing the typical mutations (inversions, fusions, fissions, translocations) to which genomes are subject, but allowing the existence of circular chromosomes at the intermediate steps. In the general model many circular chromosomes can coexist in some intermediate step. However, when the compared genomes are linear, it is more plausible to use the so-called restricted DCJ model, in which we proceed the reincorporation of a circular chromosome immediately after its creation. These two consecutive DCJ operations, which create and reincorporate a circular chromosome, mimic a transposition or a block-interchange. When the compared genomes have the same content, it is known that the genomic distance for the restricted DCJ model is the same as the distance for the general model. If the genomes have unequal contents, in addition to DCJ it is necessary to consider indels, which are insertions and deletions of DNA segments. Linear time algorithms were proposed to compute the distance and to find a sorting scenario in a general, unrestricted DCJ-indel model that considers DCJ and indels.</p>
</sec>
<sec>
<st>
<p>Results</p>
</st>
<p>In the present work we consider the restricted DCJ-indel model for sorting linear genomes with unequal contents. We allow DCJ operations and indels with the following constraint: if a circular chromosome is created by a DCJ, it has to be reincorporated in the next step (no other DCJ or indel can be applied between the creation and the reincorporation of a circular chromosome). We then develop a sorting algorithm and give a tight upper bound for the restricted DCJ-indel distance.</p>
</sec>
<sec>
<st>
<p>Conclusions</p>
</st>
<p>We have given a tight upper bound for the restricted DCJ-indel distance. The question whether this bound can be reduced so that both the general and the restricted DCJ-indel distances are equal remains open.</p>
</sec>
</sec>
</abs>
</fm><bdy>
<sec>
<st>
<p>Background</p>
</st>
<p>The distance between two genomes is often computed using only the common content, which occurs in both genomes. Such distance takes into consideration only <it>organizational </it>operations, which change the organization of the genome, that is, the positions and orientations of DNA segments, number and types of chromosomes. Inversions, translocations, fusions and fissions are some of these operations <abbrgrp>
<abbr bid="B1">1</abbr>
</abbrgrp>. All these rearrangements can be generically represented as <it>double-cut-and-join </it>(DCJ) operations <abbrgrp>
<abbr bid="B2">2</abbr>
</abbrgrp>. The DCJ model has simple linear algorithms to compute the distance and to find an optimal sorting sequence <abbrgrp>
<abbr bid="B3">3</abbr>
</abbrgrp>. However, while sorting a genome into another by DCJ, circular chromosomes can appear in the intermediate species <abbrgrp>
<abbr bid="B3">3</abbr>
</abbrgrp>. In the <it>general model </it>many circular chromosomes can coexist in some intermediate species. Due to this fact, when the compared genomes are linear, it is desirable to consider the so-called <it>restricted model</it>, in which we proceed the reincorporation of a circular chromosome immediately after its creation <abbrgrp>
<abbr bid="B2">2</abbr>
<abbr bid="B4">4</abbr>
</abbrgrp>. These two consecutive DCJ operations, which create and reincorporate a circular chromosome, mimic a transposition or a block-interchange. In other words, in the restricted model most of the classical organizational operations (reversals, translocations, fusions and fissions) cost one DCJ, while transpositions and block-interchanges cost two DCJs.</p>
<p>When comparing genomes with the same content and without duplicated DNA segments, it is already known that the genomic distance for the restricted DCJ model is the same as the distance for the general model and can be computed in linear time <abbrgrp>
<abbr bid="B2">2</abbr>
<abbr bid="B3">3</abbr>
</abbrgrp>. In contrast, while the genomes can be sorted also in linear time in the general model <abbrgrp>
<abbr bid="B3">3</abbr>
</abbrgrp>, the best sorting algorithm in the restricted model up to now takes <it>O</it>(<it>n </it>log <it>n</it>) <abbrgrp>
<abbr bid="B4">4</abbr>
</abbrgrp>. Figure <figr fid="F1">1</figr> shows an example of a general and a restricted sorting sequence.</p>
<fig id="F1"><title><p>Figure 1</p></title><caption><p>(i) An optimal sorting sequence in the general DCJ model - many circular chromosomes can coexist in the intermediate species</p></caption><text>
   <p><b>(i) An optimal sorting sequence in the general DCJ model - many circular chromosomes can coexist in the intermediate species</b>. (ii) An optimal sorting sequence in the restricted DCJ model - a circular chromosome is immediately reincorporated after its excision. The distance is always the same for both general and restricted DCJ models.</p>
</text><graphic file="1471-2105-13-S19-S14-1"/></fig>
<p>If the genomes have unequal contents, in addition to DCJ operations it is necessary to consider <it>insertions </it>and <it>deletions </it>of DNA segments. Insertions and deletions are jointly called indels. In this context, linear algorithms were proposed to compute the distance and to find a sorting scenario in a general, unrestricted model that handles genomes without duplicated DNA segments, considering DCJ and indel operations <abbrgrp>
<abbr bid="B5">5</abbr>
<abbr bid="B6">6</abbr>
</abbrgrp>. During the evolution of many organisms, indel operations are said to occur more often than organizational operations and, consequently, should be assigned to a lower cost. Examples are bacteria that are obligate intracellular parasites, such as <it>Rickettsia </it>
<abbrgrp>
<abbr bid="B7">7</abbr>
</abbrgrp>. The genomes of such intracellular parasites are observed to have a reductive evolution, that is, the process by which genomes shrink and undergo extreme levels of gene degradation and loss.</p>
<p>The general DCJ-indel model has the flexibility of assigning different positive costs to DCJ and indel operations <abbrgrp>
<abbr bid="B5">5</abbr>
<abbr bid="B6">6</abbr>
</abbrgrp>. But, again, many circular chromosomes may coexist in intermediate stages of the sorting process. Thus, while sorting linear genomes, it would be more plausible to consider a restricted DCJ-indel model, in which a circular chromosome must be reincorporated immediately after its creation. Figure <figr fid="F2">2</figr> shows an example of a general and a restricted sorting sequence with DCJs and indels. In this case, no algorithm was provided up to now and even the question whether the distance is the same for both the general and the restricted DCJ-indel models remains open. Here we address this issue and give a sorting algorithm and a tight upper bound for the restricted DCJ-indel distance, also allowing the assignment of distinct costs to indel and DCJ operations and with the restriction that the indel cost is upper bounded by the DCJ cost.</p>
<fig id="F2"><title><p>Figure 2</p></title><caption><p>(i) An optimal sorting sequence in the general DCJ-indel model - many circular chromosomes can coexist in the intermediate species</p></caption><text>
   <p><b>(i) An optimal sorting sequence in the general DCJ-indel model - many circular chromosomes can coexist in the intermediate species</b>. (ii) An optimal sorting sequence in the restricted DCJ-indel model - a circular chromosome is immediately reincorporated after its excision. Although the number of steps in (i) and (ii) is the same, the question whether the distance is the same for both general and restricted DCJ-indel models is open. (The common content of the initial and the final genomes is represented in black, while the content exclusive to the initial genome is represented in red.).</p>
</text><graphic file="1471-2105-13-S19-S14-2"/></fig>
<p>This paper is organized as follows. In the remainder of this section we recall some key concepts of the DCJ-indel model with distinct operation costs <abbrgrp>
<abbr bid="B6">6</abbr>
</abbrgrp>, which is based on the DCJ-model <abbrgrp>
<abbr bid="B2">2</abbr>
<abbr bid="B3">3</abbr>
</abbrgrp>. We then develop a restricted DCJ-indel sorting algorithm, that gives an upper bound for the restricted DCJ-indel distance. Finally we conclude our work with some final remarks.</p>
<sec>
<st>
<p>The DCJ model</p>
</st>
<p>A linear genome is composed of linear chromosomes and can be represented by a set of strings as follows. For each chromosome <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i1"><m:mi>&#160;</m:mi>
<m:mi mathvariant="script">C</m:mi>
</m:math>
</inline-formula> of each genome, we build a string obtained by the concatenation of all markers in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i1">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">C</m:mi>
</m:math>
</inline-formula>. Each marker <it>g </it>is a DNA fragment and is represented by the symbol <it>g</it>, if it is read in direct orientation, or by the symbol <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i2"><m:mrow>
   <m:mi>&#160;</m:mi>
   <m:mi mathvariant="italic">&#7713;</m:mi>
</m:mrow>
</m:math>
</inline-formula>, if it is read in reverse orientation. Each one of the two extremities of a linear chromosome is called a <it>telomere</it>, represented by the symbol &#9675;.</p>
<p>Given two linear genomes <it>A </it>and <it>B</it>, possibly with unequal content, let <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3"><m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula>, <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4"><m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula> and <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5"><m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula> be three disjoint sets, such that the set <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula> is the set of markers which occur in <it>A </it>and in <it>B</it>, the set <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula> is the set of markers which occur only in <it>A </it>and the set <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula> is the set of markers which occur only in <it>B</it>. The markers in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula> and in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula> are also called <it>unique markers</it>. As an example, consider the genomes <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i6"><m:mi>A</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mo class="MathClass-bin">&#8728;</m:mo>
      <m:mi>b</m:mi>
      <m:mi>s</m:mi>
      <m:mi>u</m:mi>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>c</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mi>a</m:mi>
      <m:mi>v</m:mi>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>d</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mi>e</m:mi>
      <m:mo class="MathClass-bin">&#8728;</m:mo>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math>
</inline-formula> and <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i7"><m:mi>B</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mi>&#8728;</m:mi>
      <m:mi>a</m:mi>
      <m:mi>w</m:mi>
      <m:mi>b</m:mi>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>x</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mi>c</m:mi>
      <m:mi>&#8728;</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>&#8728;</m:mi>
      <m:mi>y</m:mi>
      <m:mi>d</m:mi>
      <m:mi>z</m:mi>
      <m:mi>e</m:mi>
      <m:mi>&#8728;</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math>
</inline-formula>. Here we have <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i8"><m:mi mathvariant="script">G</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mi>a</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>b</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>c</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>d</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>e</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math>
</inline-formula>, <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i9"><m:mi mathvariant="script">A</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mi>s</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>u</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>v</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math>
</inline-formula> and <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i10"><m:mi mathvariant="script">B</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mi>w</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>x</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>y</m:mi>
      <m:mo class="MathClass-punc">,</m:mo>
      <m:mi>z</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math>
</inline-formula>.</p>
<p>Given two genomes <it>A </it>and <it>B</it>, we denote the two extremities of each <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i11"><m:mi>g</m:mi>
<m:mo class="MathClass-rel">&#8712;</m:mo>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula> by <it>g<sup>t </sup>
</it>(tail) and <it>g<sup>h </sup>
</it>(head). A <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula>-adjacency or simply adjacency <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp> in genome <it>A </it>(respectively in genome <it>B</it>) is a string <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i12"><m:mrow>
   <m:mi>v</m:mi>
   <m:mo class="MathClass-rel">=</m:mo>
   <m:msub>
      <m:mrow>
         <m:mi>&#947;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msub>
   <m:mi>&#8467;</m:mi>
   <m:msub>
      <m:mrow>
         <m:mi>&#947;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>2</m:mn>
      </m:mrow>
   </m:msub>
   <m:mo class="MathClass-rel">&#8801;</m:mo>
   <m:msub>
      <m:mrow>
         <m:mi>&#947;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>2</m:mn>
      </m:mrow>
   </m:msub>
   <m:mover accent="false" class="mml-overline">
      <m:mrow>
         <m:mi>&#8467;</m:mi>
      </m:mrow>
      <m:mo accent="true">&#175;</m:mo>
   </m:mover>
   <m:msub>
      <m:mrow>
         <m:mi>&#947;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msub>
</m:mrow>
</m:math>
</inline-formula>, such that each <it>&#947;<sub>i </sub>
</it>is a telomere or an extremity of a marker from <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula> and <it>&#8467; </it>is a substring composed of the markers which are between <it>&#947;</it>
<sub>1 </sub>and <it>&#947;</it>
<sub>2 </sub>in <it>A </it>(respectively in <it>B</it>) and contains no marker which also belongs to <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula>. The substring <it>&#8467; </it>is the <it>label </it>of <it>v</it>. If <it>&#8467; </it>is empty, the adjacency is said to be <it>clean</it>, otherwise it is said to be <it>labeled</it>. If a linear chromosome is composed only of markers which are not in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula>, it is represented by an adjacency &#9675;<it>&#8467;</it>&#9675;.</p>
<sec>
<st>
<p>DCJ operations</p>
</st>
<p>
<it>A cut </it>performed on a genome <it>A </it>separates two adjacent markers of <it>A</it>. A cut affects a single adjacency <it>v </it>in <it>A</it>: it is done between two symbols of <it>v</it>, creating two open ends. A <it>double-cut and join </it>or <it>DCJ </it>applied on a genome <it>A </it>is the operation that performs cuts in two different adjacencies in <it>A</it>, creating four open ends, and joins these open ends in a different way. In other words, a DCJ rearranges two adjacencies in <it>A</it>, transforming them into two new adjacencies.</p>
<p>Consider a DCJ <it>&#961; </it>applied to adjacencies <it>v</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>4 </sub>and <it>v</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>, which creates <it>x</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2 </sub>and <it>x</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>4</sub>. We represent such an operation as <it>&#961; </it>= ({<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>4</sub>, <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>} &#8594; {<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>, <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>4</sub>}). The two adjacencies <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>are called the <it>sources</it>, while the two adjacencies <it>x</it>
<sub>1 </sub>and <it>x</it>
<sub>2 </sub>are called the <it>resultants </it>of <it>&#961; </it>
<abbrgrp>
<abbr bid="B8">8</abbr>
</abbrgrp>. One or more labels among <it>&#8467;</it>
<sub>1</sub>, <it>&#8467;</it>
<sub>2</sub>, <it>&#8467;</it>
<sub>3 </sub>and <it>&#8467;</it>
<sub>4 </sub>can be equal to <it>&#949; </it>(the empty string), as well as one or more extremities among <it>&#947;</it>
<sub>1</sub>, <it>&#947;</it>
<sub>2</sub>, <it>&#947;</it>
<sub>3 </sub>and <it>&#947;</it>
<sub>4 </sub>can be equal to &#9675; (a telomere), A DCJ operation can correspond to several rearrangement events, such as an inversion, a translocation, a fusion or a fission <abbrgrp>
<abbr bid="B2">2</abbr>
</abbrgrp>.</p>
</sec>
<sec>
<st>
<p>Adjacency graph and the DCJ distance</p>
</st>
<p>Given two genomes <it>A </it>and <it>B</it>, the <it>adjacency graph AG</it>(<it>A, B</it>) <abbrgrp>
<abbr bid="B3">3</abbr>
</abbrgrp> is the bipartite multigraph whose vertices are the adjacencies of <it>A </it>and of <it>B </it>and that has one edge for each common extremity of a pair of vertices. The graph <it>AG</it>(<it>A, B</it>) is composed of connected components that alternate vertices in genome <it>A </it>and in genome <it>B</it>. Each component can be either a cycle, or an <it>AB-path </it>(which has one endpoint in genome <it>A </it>and the other in <it>B</it>), or an <it>AA-path </it>(which has both endpoints in genome <it>A</it>), or a <it>BB-path </it>(which has both endpoints in <it>B</it>). <it>A </it>special case of an <it>AA </it>or a <it>BB-</it>path is a <it>linear singleton</it>, that is a linear chromosome represented by an adjacency of type &#9675;<it>&#8467;</it>&#9675;. In Figure <figr fid="F3">3</figr> we show the example of an adjacency graph.</p>
<fig id="F3"><title><p>Figure 3</p></title><caption><p>For genomes <it>A </it>and <it>B</it>, the graph has one <it>BB </it>and two <it>AB</it>-paths</p></caption><text>
   <p><b>For genomes <it>A </it>and <it>B</it>, the graph has one <it>BB </it>and two <it>AB</it>-paths</b>.</p>
</text><graphic file="1471-2105-13-S19-S14-3"/></fig>
<p>Components with 3 or more vertices need to be reduced - by applying DCJ operations - to components with only 2 vertices, that can be cycles or <it>AB</it>-paths <abbrgrp>
<abbr bid="B8">8</abbr>
</abbrgrp>. This procedure is called DCJ-sorting of <it>A </it>into <it>B</it>. The number of <it>AB</it>-paths in <it>AG</it>(<it>A, B</it>) is always even and a DCJ operation can be of three types <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>: it can either increase the number of cycles by one, or the number of <it>AB</it>-paths by two (<it>optimal </it>DCJ); or it does not affect the number of cycles and <it>AB</it>-paths (<it>neutral </it>DCJ); or it can either decrease the number of cycles by one, or the number of <it>AB</it>-paths by two (<it>counter-optimal </it>DCJ). We assign the same cost to any DCJ operation. For simplicity, we consider the DCJ cost equal to one. Then, the DCJ distance of <it>A </it>and <it>B</it>, denoted by <it>d<sub>DCJ </sub>
</it>(<it>A, B</it>), corresponds to the minimum number of steps required to do a DCJ-sorting of <it>A </it>into <it>B </it>and is given by the following theorem.</p>
<p>
<b>Theorem 1</b>([<b>3</b>]) <it>Given two genomes A and B without duplicated markers, we have </it>
<inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i13"><m:mrow>
   <m:msub>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
   </m:msub>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>A</m:mi>
         <m:mo class="MathClass-punc">,</m:mo>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-rel">=</m:mo>
   <m:mspace class="tmspace" width="2.77695pt"/>
   <m:mo class="MathClass-rel">|</m:mo>
   <m:mi mathvariant="script">G</m:mi>
   <m:mo class="MathClass-rel">|</m:mo>
   <m:mo class="MathClass-bin">-</m:mo>
   <m:mspace class="tmspace" width="2.77695pt"/>
   <m:mi>c</m:mi>
   <m:mspace class="tmspace" width="2.77695pt"/>
   <m:mo class="MathClass-bin">-</m:mo>
   <m:mspace class="tmspace" width="2.77695pt"/>
   <m:mfrac>
      <m:mrow>
         <m:mi>b</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>2</m:mn>
      </m:mrow>
   </m:mfrac>
</m:mrow>
</m:math>
</inline-formula>
, <it>where </it>
<inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula>
<it> is the set of common markers and c and b are, respectively, the number of cycles and of AB-paths in AG </it>(<it>A, B</it>).</p>
</sec>
</sec>
<sec>
<st>
<p>The DCJ-indel model with distinct costs</p>
</st>
<p>Although the DCJ-model was defined in the previous sections for genomes with unequal contents, only the common markers were handled. In this section we explain how to deal with unique markers, that are markers which occur only in genome <it>A </it>and markers which occur only in genome <it>B</it>.</p>
<sec>
<st>
<p>Indel operations</p>
</st>
<p>In order to deal with unique markers, we need operations that change the content of a genome. These operations can be an <it>insertion </it>or a <it>deletion </it>of a block of contiguous markers. Insertions and deletions can be jointly called <it>indel </it>operations. We consider a model in which an indel only affects the label of one single adjacency, by deleting or inserting contiguous markers in this label, with the restriction that an insertion cannot produce duplicated markers <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>. In other words, while sorting <it>A </it>into <it>B</it>, the indel operations are the steps in which the markers in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula> are deleted and the markers in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula> are inserted.</p>
<p>Given <it>&#8467;</it>
<sub>3 </sub>&#8800; <it>&#949;</it>, the deletion of <it>&#8467;</it>
<sub>3 </sub>from the adjacency <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2 </sub>is represented as (<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2 </sub>&#8594; <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>), while the insertion of <it>&#8467;</it>
<sub>3 </sub>in the adjacency <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2 </sub>is represented as (<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2 </sub>&#8594; <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>). One or both extremities among <it>&#947;</it>
<sub>1 </sub>and <it>&#947;</it>
<sub>2 </sub>can be equal to &#9675; (a telomere), as well as one or both labels among <it>&#8467;</it>
<sub>1 </sub>and <it>&#8467;</it>
<sub>2</sub>, can be equal to <it>&#949; </it>(the empty string). Observe that at most one chromosome can be entirely deleted or inserted at once. Moreover, since duplications are not allowed, an insertion of a marker that already exists is not allowed. Consequently, in this model, it is not possible to apply insertions and/or deletions involving the markers in <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i3">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">G</m:mi>
</m:math>
</inline-formula>.</p>
<p>Given two genomes <it>A </it>and <it>B</it>, the <it>DCJ-indel distance </it>of <it>A </it>and <it>B</it>, denoted by <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i14"><m:mrow>
   <m:msubsup>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>i</m:mi>
         <m:mi>d</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>A</m:mi>
         <m:mo class="MathClass-punc">,</m:mo>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
</m:mrow>
</m:math>
</inline-formula>, is the minimum cost of a DCJ-indel sequence of operations which sorts <it>A </it>into <it>B</it>, assigning the cost of 1 to each DCJ and a positive cost <it>w </it>&#8804; 1 to each indel operation. If <it>w </it>= 1, the DCJ-indel distance corresponds exactly to the minimum number of steps required to sort <it>A </it>into <it>B </it>
<abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>.</p>
</sec>
<sec>
<st>
<p>Runs, indel-potential and the DCJ-indel distance</p>
</st>
<p>Let us recall the concept of <it>run</it>, introduced by Braga <it>et al. </it>
<abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>. Given two genomes <it>A </it>and <it>B </it>and a component <it>C </it>of <it>AG</it>(<it>A, B</it>), a <it>run </it>is a maximal subpath of <it>C</it>, in which the first and the last vertices are labeled and all labeled vertices belong to the same genome (or partition). A run is then a subpath of a component and can be represented by its list of vertices. A vertex <it>v </it>that corresponds to an entire run is called a <it>compact</it>-<it>run</it>. If a run is not compact, it is a long-run. An example of a component with 3 runs is given in Figure <figr fid="F4">4</figr>. A run in genome <it>A </it>is also called an <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula>-run, and a run in genome <it>B </it>is called a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula>-run. We denote by &#923;(<it>C</it>) the number of runs in a component <it>C</it>. While a path can have 0 or any positive number or runs, a cycle has either 0, 1, or an even number of runs.</p>
<fig id="F4"><title><p>Figure 4</p></title><caption><p>An <it>AB</it>-path with 3 runs (extracted from Figure 3)</p></caption><text>
   <p><b>An <it>AB</it>-path with 3 runs (extracted from Figure 3)</b>. The first and the second runs are compact, while the third run is long and composed of three vertices.</p>
</text><graphic file="1471-2105-13-S19-S14-4"/></fig>
<p>A set of labels of one genome can be accumulated with DCJs. In particular, when we apply optimal DCJs on only one component of the adjacency graph, we can accumulate an entire run into a single adjacency <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>. It is possible to do a <it>separate DCJ</it>-<it>sorting </it>using only optimal DCJs in any component <it>C </it>of <it>AG</it>(<it>A, B</it>) <abbrgrp>
<abbr bid="B8">8</abbr>
</abbrgrp>. We denote by <it>d<sub>DCJ </sub>
</it>(<it>C</it>) the number of optimal DCJ operations used for DCJ-sorting <it>C </it>separately (<it>d<sub>DCJ </sub>
</it>(<it>C</it>) depends only on the number of vertices or, equivalently, the number of edges of <it>C </it>
<abbrgrp>
<abbr bid="B8">8</abbr>
</abbrgrp>). The DCJ distance can also be re-written as <it>d<sub>DCJ</sub>
</it>(<it>A, B</it>) = &#8721;<sub>
<it>c</it>&#8712;<it>AG</it>(<it>A, B</it>) </sub>
<it>d<sub>DCJ</sub>
</it>(<it>C</it>).</p>
<p>Runs can be merged by DCJ operations. Consequently, during the optimal DCJ-sorting of a component <it>C</it>, we can reduce its number of runs. The <it>indel-potential </it>of <it>C</it>, denoted by <it>&#955;</it>(<it>C</it>), is defined by Braga <it>et al. </it>
<abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp> as the minimum number of runs that we can obtain doing a separate DCJ-sorting in <it>C </it>with optimal DCJ operations. An example is given in Figure <figr fid="F5">5</figr>.</p>
<fig id="F5"><title><p>Figure 5</p></title><caption><p>Two optimal sequences for DCJ-sorting an <it>AB</it>-path with &#923; = 3 (the cuts of each DCJ in each sequence are represented by "|")</p></caption><text>
   <p><b>Two optimal sequences for DCJ-sorting an <it>AB</it>-path with &#923; = 3 (the cuts of each DCJ in each sequence are represented by "|")</b>. In (i) the overall number of runs in the resulting components is three, while in (ii) the resulting components have only two runs. Indeed, in this case, the best we can have is the indel-potential &#955; = 2.</p>
</text><graphic file="1471-2105-13-S19-S14-5"/></fig>
<p>The indel-potential of a component depends only on its number of runs:</p>
<p>
<b>Proposition 1 </b>(<abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>) <it>Given two genomes A and B and a component C of AG</it>(<it>A, B</it>), <it>the indel-potential of C is given by </it>
<inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i15"><m:mrow>
   <m:mi>&#955;</m:mi>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>C</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-rel">=</m:mo>
   <m:mfenced close="&#8969;" open="&#8968;" separators="">
      <m:mrow>
         <m:mfrac>
            <m:mrow>
               <m:mi mathvariant="normal">&#923;</m:mi>
               <m:mrow>
                  <m:mo class="MathClass-open">(</m:mo>
                  <m:mrow>
                     <m:mi>C</m:mi>
                  </m:mrow>
                  <m:mo class="MathClass-close">)</m:mo>
               </m:mrow>
               <m:mo class="MathClass-bin">+</m:mo>
               <m:mn>1</m:mn>
            </m:mrow>
            <m:mrow>
               <m:mn>2</m:mn>
            </m:mrow>
         </m:mfrac>
      </m:mrow>
   </m:mfenced>
</m:mrow>
</m:math>
</inline-formula>, <it>if </it>&#923;(<it>C</it>) &#8805; 1. <it>Otherwise, if </it>&#923;(<it>C</it>) = 0, <it>then &#955;</it>(<it>C</it>) = 0.</p>
<p>Let <it>&#955;</it>
<sub>0 </sub>and <it>&#955;</it>
<sub>1 </sub>be, respectively, the sum of the indel-potentials for the components of the adjacency graph before and after a DCJ operation <it>&#961;</it>, and let &#916;<it>&#955;</it>(<it>&#961;</it>) = <it>&#955;</it>
<sub>1 </sub>- <it>&#955;</it>
<sub>0</sub>. If <it>&#961; </it>is an optimal DCJ acting on two adjacencies of a single component of the graph, the definition of indel-potential implies &#916;<it>&#955;</it>(<it>&#961;</it>) &#8805; 0. We also know that &#916;<it>&#955;</it>(<it>&#961;</it>) &#8805; 0, if &#961; is counter-optimal, and &#916;<it>&#955;</it>(<it>&#961;</it>) &#8805; -1, if <it>&#961; </it>is neutral <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>. This allows us to exactly compute <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i16"><m:mrow>
   <m:msubsup>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>i</m:mi>
         <m:mi>d</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>C</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
</m:mrow>
</m:math>
</inline-formula>, that is the DCJ-indel distance of a component <it>C </it>of <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i17"><m:mrow>
   <m:mi>A</m:mi>
   <m:mi>G</m:mi>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>A</m:mi>
         <m:mo class="MathClass-punc">,</m:mo>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-rel">:</m:mo>
   <m:msubsup>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>i</m:mi>
         <m:mi>d</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>C</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-rel">=</m:mo>
   <m:msub>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
   </m:msub>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>C</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-bin">+</m:mo>
   <m:mi>w</m:mi>
   <m:mi>&#955;</m:mi>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>C</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
</m:mrow>
</m:math>
</inline-formula>
<abbrgrp>
<abbr bid="B6">6</abbr>
</abbrgrp>. We can then derive the following upper bound for the DCJ-indel distance:</p>
<p>
<b>Lemma 1 </b>(<abbrgrp>
<abbr bid="B6">6</abbr>
</abbrgrp>) <it>Given two genomes A and B without duplicated markers and a positive indel cost w &#8804; </it>1, <it>we have</it>
</p>
<p>
<display-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i18"><m:mrow>
   <m:msubsup>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>i</m:mi>
         <m:mi>d</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>A</m:mi>
         <m:mo class="MathClass-punc">,</m:mo>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-rel">&#8804;</m:mo>
   <m:msub>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
   </m:msub>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>A</m:mi>
         <m:mo class="MathClass-punc">,</m:mo>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mo class="MathClass-bin">+</m:mo>
   <m:mi>w</m:mi>
   <m:mstyle displaystyle="true">
      <m:munder class="msub">
         <m:mrow>
            <m:mo mathsize="big">&#8721;</m:mo>
         </m:mrow>
         <m:mrow>
            <m:mi>C</m:mi>
            <m:mo class="MathClass-rel">&#8712;</m:mo>
            <m:mi>A</m:mi>
            <m:mi>G</m:mi>
            <m:mrow>
               <m:mo class="MathClass-open">(</m:mo>
               <m:mrow>
                  <m:mi>A</m:mi>
                  <m:mo class="MathClass-punc">,</m:mo>
                  <m:mi>B</m:mi>
               </m:mrow>
               <m:mo class="MathClass-close">)</m:mo>
            </m:mrow>
         </m:mrow>
      </m:munder>
   </m:mstyle>
   <m:mi>&#955;</m:mi>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>C</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
   <m:mi>.</m:mi>
</m:mrow>
</m:math>
</display-formula>
</p>
<sec>
<st>
<p>Recombinations</p>
</st>
<p>Until this point, we have explored the possible effects of any DCJ that is applied to two adjacencies belonging to a single component of the graph. However, there is another type of DCJ that must be considered. A DCJ operation <it>&#961; </it>applied to adjacencies belonging to two different components is called a <it>recombination </it>and can have &#916;<it>&#955;</it>(<it>&#961;</it>) &lt; 0 <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>. Thus, depending on the value of <it>w </it>and on whether the recombination is an optimal, a neutral or a counter-optimal DCJ, a recombination with &#916;<it>&#955;</it>(<it>&#961;</it>) &lt; 0 can lead to a sorting sequence with lower cost. As an example, a neutral recombination with &#916;<it>&#955; </it>= -2 is represented in Figure <figr fid="F6">6</figr>.</p>
<fig id="F6"><title><p>Figure 6</p></title><caption><p>This recombination is a neutral DCJ that has &#916;<it>&#955; </it>= -2 (we represent only the labels of the adjacencies, the cuts of the recombination are represented by "/"and "\")</p></caption><text>
   <p><b>This recombination is a neutral DCJ that has &#916;<it>&#955; </it>= -2 (we represent only the labels of the adjacencies, the cuts of the recombination are represented by "/"and "\")</b>.</p>
</text><graphic file="1471-2105-13-S19-S14-6"/></fig>
<p>Although many different recombinations can occur, it is possible to explore the space of recombinations in linear time and compute the maximum deduction that we can obtain with respect to the upper bound of Lemma 1 <abbrgrp>
<abbr bid="B6">6</abbr>
</abbrgrp>.</p>
</sec>
</sec>
</sec>
</sec>
<sec>
<st>
<p>Results</p>
</st>
<p>In this section we develop a restricted DCJ-indel sorting algorithm, from which we can derive an upper bound for the restricted DCJ-indel distance.</p>
<sec>
<st>
<p>Chained operations</p>
</st>
<p>Let us generalize to the DCJ-indel model a concept introduced in <abbrgrp>
<abbr bid="B8">8</abbr>
</abbrgrp>. Let <it>s </it>= <it>&#961;</it>
<sub>1</sub>
<it>&#961;</it>
<sub>2 </sub>... <it>&#961;</it>
<sub>
<it>n</it>-1</sub>
<it>&#961;<sub>n </sub>
</it>be a DCJ-indel sequence of operations sorting genome <it>A </it>into genome <it>B</it>. Two consecutive operations <it>&#961;</it>
<sub>
<it>i </it>
</sub>and <it>&#961;</it>
<sub>
<it>i</it>+1 </sub>of <it>s </it>are said to be independent when no source of <it>&#961;</it>
<sub>
<it>i</it>+1 </sub>is a resultant of <it>&#961;<sub>i</sub>
</it>. Otherwise, <it>&#961;</it>
<sub>
<it>i</it>+1 </sub>use as a source a resultant from <it>&#961;<sub>i</sub>
</it>. In this case, the operations <it>&#961;<sub>i </sub>
</it>and <it>&#961;</it>
<sub>
<it>i</it>+1 </sub>are said to be <it>chained</it>.</p>
</sec>
<sec>
<st>
<p>Bi-directional approach</p>
</st>
<p>Although in general a sorting algorithm is conceived to follow a single direction, in which all operations are applied on the initial genome, here we design a bi-directional algorithm, in which some operations are applied on genome <it>A </it>and the others are applied on genome <it>B</it>. Running a bi-directional algorithm we actually transform genomes <it>A </it>and <it>B </it>into an intermediate genome <it>I</it>. However, with the operations that transform <it>A </it>and <it>B </it>into <it>I</it>, we can derive an optimal sequence of operations simply sorting genome <it>A </it>into <it>B</it>. Given any DCJ or indel operation <it>&#961; </it>= (<it>X </it>&#8594; <it>Y</it>), the <it>inverse </it>of <it>&#961; </it>is <it>&#961;</it>
<sup>-1 </sup>= (<it>Y </it>&#8594; <it>X</it>) <abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>. This notation can also be extended to a sequence of operations: given a sequence <it>s </it>= <it>&#961;</it>
<sub>1</sub>
<it>&#961;</it>
<sub>2 </sub>... <it>&#961;<sub>n </sub>
</it>, we have <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i19"><m:mrow>
   <m:msup>
      <m:mrow>
         <m:mi>s</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msup>
   <m:mo class="MathClass-rel">=</m:mo>
   <m:msubsup>
      <m:mrow>
         <m:mi>&#961;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>n</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msubsup>
   <m:msubsup>
      <m:mrow>
         <m:mi>&#961;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>n</m:mi>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
      <m:mrow>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msubsup>
   <m:mo class="MathClass-rel">&#8943;</m:mo>
   <m:msubsup>
      <m:mrow>
         <m:mi>&#961;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>2</m:mn>
      </m:mrow>
      <m:mrow>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msubsup>
   <m:msubsup>
      <m:mrow>
         <m:mi>&#961;</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>1</m:mn>
      </m:mrow>
      <m:mrow>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msubsup>
</m:mrow>
</m:math>
</inline-formula>. Observe that the inverse of a deletion is an insertion, and <it>vice</it>-<it>versa</it>.</p>
<p>
<b>Proposition 2 </b>(<abbrgrp>
<abbr bid="B5">5</abbr>
</abbrgrp>) <it>Given two genomes A and B, and a pair of sequences s</it>
<sub>1 </sub>
<it>and s</it>
<sub>2 </sub>
<it>composed of DCJ and indel operations applied respectively on genomes A and B, transforming both A and B into an intermediate genome I, such that </it>
<inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i20"><m:mrow>
   <m:mo class="MathClass-rel">|</m:mo>
   <m:msub>
      <m:mrow>
         <m:mi>s</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msub>
   <m:mo class="MathClass-rel">|</m:mo>
   <m:mo class="MathClass-bin">+</m:mo>
   <m:mo class="MathClass-rel">|</m:mo>
   <m:msub>
      <m:mrow>
         <m:mi>s</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>2</m:mn>
      </m:mrow>
   </m:msub>
   <m:mo class="MathClass-rel">|</m:mo>
   <m:mo class="MathClass-rel">=</m:mo>
   <m:msubsup>
      <m:mrow>
         <m:mi>d</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>D</m:mi>
         <m:mi>C</m:mi>
         <m:mi>J</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi>i</m:mi>
         <m:mi>d</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mrow>
      <m:mo class="MathClass-open">(</m:mo>
      <m:mrow>
         <m:mi>A</m:mi>
         <m:mo class="MathClass-punc">,</m:mo>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mo class="MathClass-close">)</m:mo>
   </m:mrow>
</m:mrow>
</m:math>
</inline-formula>, <it>then </it>
<inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i21"><m:mrow>
   <m:msub>
      <m:mrow>
         <m:mi>s</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msub>
   <m:msubsup>
      <m:mrow>
         <m:mi>s</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mn>2</m:mn>
      </m:mrow>
      <m:mrow>
         <m:mo class="MathClass-bin">-</m:mo>
         <m:mn>1</m:mn>
      </m:mrow>
   </m:msubsup>
</m:mrow>
</m:math>
</inline-formula>
<it>is an optimal sequence of DCJ and indel operations that transforms A into B</it>.</p>
<p>Figure <figr fid="F7">7</figr> illustrates the generation of a sequence of operations sorting <it>A </it>into <it>B </it>from a bi-directional sequence of operations.</p>
<fig id="F7"><title><p>Figure 7</p></title><caption><p>(i) Two sequences of lengths 3 and 2, sorting <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i39"><m:mi>A</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mo class="MathClass-bin">&#8728;</m:mo>
      <m:mi>a</m:mi>
      <m:mi>y</m:mi>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>c</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mi>b</m:mi>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>x</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>d</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mi>e</m:mi>
      <m:mo class="MathClass-bin">&#8728;</m:mo>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math></inline-formula> and <it>B </it>= {&#9675;<it>azbwcde</it>&#9675;} into <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i40"><m:mi>I</m:mi>
<m:mo class="MathClass-rel">=</m:mo>
<m:mrow>
   <m:mo class="MathClass-open">{</m:mo>
   <m:mrow>
      <m:mo class="MathClass-bin">&#8728;</m:mo>
      <m:mi>a</m:mi>
      <m:mover accent="true">
         <m:mrow>
            <m:mi>b</m:mi>
         </m:mrow>
         <m:mo class="MathClass-op">&#175;</m:mo>
      </m:mover>
      <m:mi>c</m:mi>
      <m:mi>d</m:mi>
      <m:mi>e</m:mi>
      <m:mo class="MathClass-bin">&#8728;</m:mo>
   </m:mrow>
   <m:mo class="MathClass-close">}</m:mo>
</m:mrow>
</m:math></inline-formula></p></caption><text>
   <p><b>(i) Two sequences of lengths 3 and 2, sorting <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i39"><m:mi>A</m:mi><m:mo class="MathClass-rel">=</m:mo><m:mrow><m:mo class="MathClass-open">{</m:mo><m:mrow><m:mo class="MathClass-bin">&#8728;</m:mo><m:mi>a</m:mi><m:mi>y</m:mi><m:mover accent="true"><m:mrow><m:mi>c</m:mi></m:mrow><m:mo class="MathClass-op">&#175;</m:mo></m:mover><m:mi>b</m:mi><m:mover accent="true"><m:mrow><m:mi>x</m:mi></m:mrow><m:mo class="MathClass-op">&#175;</m:mo></m:mover><m:mover accent="true"><m:mrow><m:mi>d</m:mi></m:mrow><m:mo class="MathClass-op">&#175;</m:mo></m:mover><m:mi>e</m:mi><m:mo class="MathClass-bin">&#8728;</m:mo></m:mrow><m:mo class="MathClass-close">}</m:mo></m:mrow></m:math></inline-formula> and <it>B </it>= {&#9675;<it>azbwcde</it>&#9675;} into <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i40"><m:mi>I</m:mi><m:mo class="MathClass-rel">=</m:mo><m:mrow><m:mo class="MathClass-open">{</m:mo><m:mrow><m:mo class="MathClass-bin">&#8728;</m:mo><m:mi>a</m:mi><m:mover accent="true"><m:mrow><m:mi>b</m:mi></m:mrow><m:mo class="MathClass-op">&#175;</m:mo></m:mover><m:mi>c</m:mi><m:mi>d</m:mi><m:mi>e</m:mi><m:mo class="MathClass-bin">&#8728;</m:mo></m:mrow><m:mo class="MathClass-close">}</m:mo></m:mrow></m:math></inline-formula></b>. (ii) A corresponding sequence of length 5 sorting A into B. (Unique markers are represented in red.).</p>
</text><graphic file="1471-2105-13-S19-S14-7"/></fig>
<sec>
<st>
<p>Accumulating x splitting labels</p>
</st>
<p>A DCJ that accumulates labels is always applied to two labeled adjacencies and results into a clean adjacency and an adjacency containing the concatenation of the labels of the original adjacencies. In general, we can represent such an accumulating DCJ <it>&#961; </it>by ({<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#947;</it>
<sub>4</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>}&#8594;{<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#947;</it>
<sub>4</sub>}). If <it>&#961; </it>accumulate labels of an <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula>-run, it is denoted by <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i22"><m:mrow>
   <m:msubsup>
      <m:mrow>
         <m:mi>A</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">A</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">A</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mo class="MathClass-rel">&#8827;</m:mo>
   <m:mi>B</m:mi>
</m:mrow>
</m:math>
</inline-formula>. Similarly, if <it>&#961; </it>accumulates labels of a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula>-run, it is denoted by <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i23"><m:mrow>
   <m:msubsup>
      <m:mrow>
         <m:mi>B</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">B</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">B</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mo class="MathClass-rel">&#8827;</m:mo>
   <m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula>.</p>
<p>The inverse of an accumulating DCJ <it>&#961; </it>is a splitting DCJ <it>&#961;</it>
<sup>-1 </sup>= ({<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#947;</it>
<sub>4</sub>} &#8594; {<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#947;</it>
<sub>4</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>}). Observe that, if <it>&#961; </it>is applied on <it>A, &#961;</it>
<sup>-1 </sup>is applied on <it>B </it>and split a label of an <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula>-run. In other words, the inverse of an <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i22">
<m:mrow>
<m:msubsup>
<m:mrow>
<m:mi>A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
</m:msubsup>
<m:mo class="MathClass-rel">&#8827;</m:mo>
<m:mi>B</m:mi>
</m:mrow>
</m:math>
</inline-formula> is a DCJ applied on <it>B </it>that separates vertices belonging to the same <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula>-run in two different cycles, denoted by <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i24"><m:mrow>
   <m:mi>B</m:mi>
   <m:msubsup>
      <m:mrow>
         <m:mo class="MathClass-rel">&#8826;</m:mo>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">A</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">A</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula>. Similarly, the inverse of a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i23">
<m:mrow>
<m:msubsup>
<m:mrow>
<m:mi>B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
</m:msubsup>
<m:mo class="MathClass-rel">&#8827;</m:mo>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> is a DCJ applied on A that separates vertices belonging to the same <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula>-run, denoted by <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i25"><m:mrow>
   <m:mi>A</m:mi>
   <m:msubsup>
      <m:mrow>
         <m:mo class="MathClass-rel">&#8826;</m:mo>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">B</m:mi>
      </m:mrow>
      <m:mrow>
         <m:mi mathvariant="script">B</m:mi>
      </m:mrow>
   </m:msubsup>
   <m:mi>B</m:mi>
</m:mrow>
</m:math>
</inline-formula>. An <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i25">
<m:mrow>
<m:mi>A</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>B</m:mi>
</m:mrow>
</m:math>
</inline-formula> or a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i24">
<m:mrow>
<m:mi>B</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> is called an <it>inverted</it>-<it>split</it>. In Table <tblr tid="T1">1</tblr> we summarize the operations described above.</p>
<tbl id="T1"><title><p>Table 1</p></title><caption><p>Accumulating and splitting DCJ operations</p></caption><tblbdy cols="4">
      <r>
         <c ca="center">
            <p>
               <b>Operation</b>
            </p>
         </c>
         <c ca="center">
            <p>
               <b>Direction</b>
            </p>
         </c>
         <c ca="center">
            <p>
               <b>Effect</b>
            </p>
         </c>
         <c ca="center">
            <p>
               <b>Inverse</b>
            </p>
         </c>
      </r>
      <r>
         <c cspan="4">
            <hr/>
         </c>
      </r>
      <r>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i31">
                     <m:mrow>
                        <m:msubsup>
                           <m:mrow>
                              <m:mi>A</m:mi>
                           </m:mrow>
                           <m:mrow>
                              <m:mi mathvariant="script">A</m:mi>
                           </m:mrow>
                           <m:mrow>
                              <m:mi mathvariant="script">A</m:mi>
                           </m:mrow>
                        </m:msubsup>
                        <m:mo class="MathClass-rel">&#8827;</m:mo>
                        <m:mi>B</m:mi>
                     </m:mrow>
                  </m:math>
               </inline-formula>
            </p>
         </c>
         <c ca="center">
            <p><it>A</it>&#8594;<it>B </it></p>
         </c>
         <c ca="center">
            <p>Accumulate labels of an <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4"><m:mi>&#160;</m:mi><m:mi mathvariant="script">A</m:mi></m:math></inline-formula>-run</p>
         </c>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i32">
                     <m:msup>
                        <m:mrow>
                           <m:mrow>
                              <m:mo class="MathClass-open">(</m:mo>
                              <m:mrow>
                                 <m:msubsup>
                                    <m:mrow>
                                       <m:mi>A</m:mi>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">A</m:mi>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">A</m:mi>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo class="MathClass-rel">&#8827;</m:mo>
                                 <m:mi>B</m:mi>
                              </m:mrow>
                              <m:mo class="MathClass-close">)</m:mo>
                           </m:mrow>
                        </m:mrow>
                        <m:mrow>
                           <m:mo class="MathClass-bin">-</m:mo>
                           <m:mn>1</m:mn>
                        </m:mrow>
                     </m:msup>
                     <m:mo class="MathClass-rel">=</m:mo>
                     <m:mi>B</m:mi>
                     <m:msubsup>
                        <m:mrow>
                           <m:mo class="MathClass-rel">&#8826;</m:mo>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">A</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">A</m:mi>
                        </m:mrow>
                     </m:msubsup>
                     <m:mi>A</m:mi>
                  </m:math>
               </inline-formula>
            </p>
         </c>
      </r>
      <r>
         <c cspan="4">
            <hr/>
         </c>
      </r>
      <r>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i33">
                     <m:mi>A</m:mi>
                     <m:msubsup>
                        <m:mrow>
                           <m:mo class="MathClass-rel">&#8826;</m:mo>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">B</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">B</m:mi>
                        </m:mrow>
                     </m:msubsup>
                     <m:mi>B</m:mi>
                  </m:math>
               </inline-formula>
            </p>
         </c>
         <c ca="center">
            <p><it>A</it>&#8594;<it>B </it></p>
         </c>
         <c ca="center">
            <p>Inversely split label of a <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5"><m:mi>&#160;</m:mi><m:mi mathvariant="script">B</m:mi></m:math></inline-formula>-run</p>
         </c>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i34">
                     <m:msup>
                        <m:mrow>
                           <m:mrow>
                              <m:mo class="MathClass-open">(</m:mo>
                              <m:mrow>
                                 <m:mi>A</m:mi>
                                 <m:msubsup>
                                    <m:mrow>
                                       <m:mo class="MathClass-rel">&#8826;</m:mo>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">B</m:mi>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">B</m:mi>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mi>B</m:mi>
                              </m:mrow>
                              <m:mo class="MathClass-close">)</m:mo>
                           </m:mrow>
                        </m:mrow>
                        <m:mrow>
                           <m:mo class="MathClass-bin">-</m:mo>
                           <m:mn>1</m:mn>
                        </m:mrow>
                     </m:msup>
                     <m:mo class="MathClass-rel">=</m:mo>
                     <m:msubsup>
                        <m:mrow>
                           <m:mi>B</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">B</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">B</m:mi>
                        </m:mrow>
                     </m:msubsup>
                     <m:mo class="MathClass-rel">&#8827;</m:mo>
                     <m:mi>A</m:mi>
                  </m:math>
               </inline-formula>
            </p>
         </c>
      </r>
      <r>
         <c cspan="4">
            <hr/>
         </c>
      </r>
      <r>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i35">
                     <m:mrow>
                        <m:msubsup>
                           <m:mrow>
                              <m:mi>B</m:mi>
                           </m:mrow>
                           <m:mrow>
                              <m:mi mathvariant="script">B</m:mi>
                           </m:mrow>
                           <m:mrow>
                              <m:mi mathvariant="script">B</m:mi>
                           </m:mrow>
                        </m:msubsup>
                        <m:mo class="MathClass-rel">&#8827;</m:mo>
                        <m:mi>A</m:mi>
                     </m:mrow>
                  </m:math>
               </inline-formula>
            </p>
         </c>
         <c ca="center">
            <p><it>B</it>&#8594;<it>A </it></p>
         </c>
         <c ca="center">
            <p>Accumulate labels of a <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5"><m:mi>&#160;</m:mi><m:mi mathvariant="script">B</m:mi></m:math></inline-formula>-run</p>
         </c>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i36">
                     <m:msup>
                        <m:mrow>
                           <m:mrow>
                              <m:mo class="MathClass-open">(</m:mo>
                              <m:mrow>
                                 <m:msubsup>
                                    <m:mrow>
                                       <m:mi>B</m:mi>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">B</m:mi>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">B</m:mi>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo class="MathClass-rel">&#8827;</m:mo>
                                 <m:mi>A</m:mi>
                              </m:mrow>
                              <m:mo class="MathClass-close">)</m:mo>
                           </m:mrow>
                        </m:mrow>
                        <m:mrow>
                           <m:mo class="MathClass-bin">-</m:mo>
                           <m:mn>1</m:mn>
                        </m:mrow>
                     </m:msup>
                     <m:mo class="MathClass-rel">=</m:mo>
                     <m:mi>A</m:mi>
                     <m:msubsup>
                        <m:mrow>
                           <m:mo class="MathClass-rel">&#8826;</m:mo>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">B</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">B</m:mi>
                        </m:mrow>
                     </m:msubsup>
                     <m:mi>B</m:mi>
                  </m:math>
               </inline-formula>
            </p>
         </c>
      </r>
      <r>
         <c cspan="4">
            <hr/>
         </c>
      </r>
      <r>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i37">
                     <m:mi>B</m:mi>
                     <m:msubsup>
                        <m:mrow>
                           <m:mo class="MathClass-rel">&#8826;</m:mo>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">A</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">A</m:mi>
                        </m:mrow>
                     </m:msubsup>
                     <m:mi>A</m:mi>
                  </m:math>
               </inline-formula>
            </p>
         </c>
         <c ca="center">
            <p><it>B</it>&#8594;<it>A </it></p>
         </c>
         <c ca="center">
            <p>Inversely split label of an <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4"><m:mi>&#160;</m:mi><m:mi mathvariant="script">A</m:mi></m:math></inline-formula>-run</p>
         </c>
         <c ca="center">
            <p>
               <inline-formula>
                  <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i38">
                     <m:msup>
                        <m:mrow>
                           <m:mrow>
                              <m:mo class="MathClass-open">(</m:mo>
                              <m:mrow>
                                 <m:mi>B</m:mi>
                                 <m:msubsup>
                                    <m:mrow>
                                       <m:mo class="MathClass-rel">&#8826;</m:mo>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">A</m:mi>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:mi mathvariant="script">A</m:mi>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mi>A</m:mi>
                              </m:mrow>
                              <m:mo class="MathClass-close">)</m:mo>
                           </m:mrow>
                        </m:mrow>
                        <m:mrow>
                           <m:mo class="MathClass-bin">-</m:mo>
                           <m:mn>1</m:mn>
                        </m:mrow>
                     </m:msup>
                     <m:mo class="MathClass-rel">=</m:mo>
                     <m:msubsup>
                        <m:mrow>
                           <m:mi>A</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">A</m:mi>
                        </m:mrow>
                        <m:mrow>
                           <m:mi mathvariant="script">A</m:mi>
                        </m:mrow>
                     </m:msubsup>
                     <m:mo class="MathClass-rel">&#8827;</m:mo>
                     <m:mi>B</m:mi>
                  </m:math>
               </inline-formula>
            </p>
         </c>
      </r>
   </tblbdy></tbl>
</sec>
<sec>
<st>
<p>Accumulation-deletion x insertion-split</p>
</st>
<p>Let <it>n </it>be a positive integer, such that <it>n </it>&#8805; 2 and let <it>r</it>
<sub>1 </sub>= <it>v</it>
<sub>1</sub>
<it>x</it>
<sub>1</sub>
<it>v</it>
<sub>2</sub>
<it>x</it>
<sub>2 </sub>... <it>v<sub>i</sub>x<sub>i </sub>
</it>... <it>v<sub>j</sub>x<sub>j </sub>
</it>... <it>v</it>
<sub>
<it>n</it>-1</sub>
<it>x</it>
<sub>
<it>n</it>-1</sub>
<it>v<sub>n </sub>
</it>be a long-run, in which <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>
<it>n </it>
</sub>are labeled, each <it>v<sub>k </sub>
</it>(2 &#8804; <it>k </it>&#8804; <it>n </it>- 1) can also be labeled and all <it>x<sub>k
</sub>
</it>(1 &#8804; <it>k </it>&#8804; <it>n </it>- 1) are clean. We say that two vertices <it>v</it>
<sub>
<it>i </it>
</sub>and <it>v</it>
<sub>
<it>j </it>
</sub>(1 &#8804; <it>i </it>&lt;<it>j </it>&#8804; <it>n</it>) in <it>r</it>
<sub>1 </sub>are <it>partners </it>if <it>v</it>
<sub>
<it>i </it>
</sub>and <it>v</it>
<sub>
<it>j </it>
</sub>are labeled and all vertices between <it>v</it>
<sub>
<it>i </it>
</sub>and <it>v</it>
<sub>
<it>j </it>
</sub>in <it>r</it>
<sub>1 </sub>are clean. We can apply an accumulating DCJ on the two partners <it>v</it>
<sub>
<it>i </it>
</sub>and <it>v<sub>j</sub>
</it>, accumulating their labels into a new vertex <it>v</it>
<sub>
<it>i</it>-<it>j</it>
</sub>, reducing <it>r</it>
<sub>1 </sub>to <it>r</it>
<sub>2 </sub>= <it>v</it>
<sub>1</sub>
<it>x</it>
<sub>1</sub>
<it>v</it>
<sub>2</sub>
<it>x</it>
<sub>2 </sub>... <it>v</it>
<sub>
<it>i</it>-1</sub>
<it>x</it>
<sub>
<it>i</it>-1</sub>
<it>v</it>
<sub>
<it>i</it>-<it>j</it>
</sub>
<it>x</it>
<sub>
<it>j</it>
</sub>
<it>v</it>
<sub>
<it>j</it>+1</sub>
<it>x</it>
<sub>
<it>j</it>+1 </sub>... <it>v</it>
<sub>
<it>n</it>-1</sub>
<it>x</it>
<sub>
<it>n</it>-1</sub>
<it>v<sub>n</sub>
</it>. The subsequent step of accumulation then occurs between two partners of <it>r</it>
<sub>2</sub>, reducing <it>r</it>
<sub>2 </sub>to <it>r</it>
<sub>3</sub>, and so on. Assuming that the initial <it>r</it>
<sub>1 </sub>has <it>m </it>&#8804; <it>n </it>labeled vertices, we need to apply <it>m </it>- 1 accumulating operations. In the end of the process, we obtain the compact-run <it>r<sub>m</sub>
</it>, that corresponds to a single vertex whose label is the accumulation of all labels of <it>r</it>
<sub>1</sub>. Observe that all labeled vertices will be used in some accumulating DCJ, until the compact-run <it>r<sub>m </sub>
</it>is obtained.</p>
<p>As an example, take <it>v</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#947;</it>
<sub>2</sub>, <it>x</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>3</sub>, <it>v</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>4</sub>, <it>x</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>5</sub>, <it>v</it>
<sub>3 </sub>= <it>&#947;</it>
<sub>5</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6</sub>, <it>x</it>
<sub>3 </sub>= <it>&#947;</it>
<sub>6</sub>
<it>&#947;</it>
<sub>7</sub>, <it>v</it>
<sub>4 </sub>= <it>&#947;</it>
<sub>7</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>8</sub>, with all <it>&#8467;</it>
<it>
<sub>k </sub>
</it>&#8800; <it>&#949; </it>and let <it>r</it>
<sub>1 </sub>= <it>v</it>
<sub>1</sub>
<it>x</it>
<sub>1</sub>
<it>v</it>
<sub>2</sub>
<it>x</it>
<sub>2</sub>
<it>v</it>
<sub>3</sub>
<it>x</it>
<sub>3</sub>
<it>v</it>
<sub>4 </sub>be a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula>-run. We can start the accumulation with a DCJ of type <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i23">
<m:mrow>
<m:msubsup>
<m:mrow>
<m:mi>B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
</m:msubsup>
<m:mo class="MathClass-rel">&#8827;</m:mo>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> on partners <it>v</it>
<sub>2 </sub>and <it>v</it>
<sub>3</sub>, creating <it>v</it>
<sub>2-3 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6 </sub>and <it>&#947;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>5</sub>, reducing <it>r</it>
<sub>1 </sub>to <it>r</it>
<sub>2 </sub>= <it>v</it>
<sub>1</sub>
<it>x</it>
<sub>1</sub>
<it>v</it>
<sub>2-3</sub>
<it>x</it>
<sub>3</sub>
<it>v</it>
<sub>4</sub>. We then apply another DCJ of type <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i23">
<m:mrow>
<m:msubsup>
<m:mrow>
<m:mi>B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
</m:msubsup>
<m:mo class="MathClass-rel">&#8827;</m:mo>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> on partners <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2-3</sub>, creating <it>v</it>
<sub>1-2-3 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6 </sub>and <it>&#947;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>3</sub>, reducing <it>r</it>
<sub>2 </sub>to <it>r</it>
<sub>3 </sub>= <it>v</it>
<sub>1-2-3</sub>
<it>x</it>
<sub>3</sub>
<it>v</it>
<sub>4</sub>. Finally, we apply a DCJ of type <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i23">
<m:mrow>
<m:msubsup>
<m:mrow>
<m:mi>B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
</m:msubsup>
<m:mo class="MathClass-rel">&#8827;</m:mo>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> on partners <it>v</it>
<sub>1-2-3 </sub>and <it>v</it>
<sub>4</sub>, creating <it>v</it>
<sub>1-2-3-4 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>8 </sub>and <it>&#947;</it>
<sub>6</sub>
<it>&#947;</it>
<sub>7</sub>, reducing <it>r</it>
<sub>3 </sub>to <it>r</it>
<sub>4 </sub>= <it>v</it>
<sub>1-2-3-4</sub>. If we follow the accumulation of a run, considering only the labeled vertices, we obtain a rooted tree that is built from the leafs to the root (see Figure <figr fid="F8">8</figr>). The root of the tree indicates the possible positions of a deletion.</p>
<fig id="F8"><title><p>Figure 8</p></title><caption><p>The rooted tree of an accumulation of a <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5"><m:mi>&#160;</m:mi><m:mi mathvariant="script">B</m:mi></m:math></inline-formula>-run is built from the leafs to the root (bottom to up)</p></caption><text>
   <p><b>The rooted tree of an accumulation of a <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5"><m:mi>&#160;</m:mi><m:mi mathvariant="script">B</m:mi></m:math></inline-formula>-run is built from the leafs to the root (bottom to up)</b>. Inversely, the rooted tree of an inverted-split of a <inline-formula><m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5"><m:mi>&#160;</m:mi><m:mi mathvariant="script">B</m:mi></m:math></inline-formula>-run is built from the root to the leafs (top to down).</p>
</text><graphic file="1471-2105-13-S19-S14-8"/></fig>
<p>The inversion of the run accumulation described in the example above is the inverted-split of the label of the compact-run <it>r</it>
<sub>4 </sub>= <it>v</it>
<sub>1-2-3-4 </sub>into the labeled vertices <it>v</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#947;</it>
<sub>2</sub>, <it>v</it>
<sub>2 </sub>=<it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>4</sub>, <it>v</it>
<sub>3 </sub>= <it>&#947;</it>
<sub>5</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6 </sub>and <it>v</it>
<sub>4 </sub>= <it>&#947;</it>
<sub>7</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>8</sub>. We start by applying a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i24">
<m:mrow>
<m:mi>B</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> DCJ on <it>v</it>
<sub>1-2-3-4 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>8 </sub>and <it>&#947;</it>
<sub>6 </sub>
<it>&#947;</it>
<sub>7</sub>, obtaining <it>v</it>
<sub>1-2-3 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6 </sub>and <it>v</it>
<sub>4 </sub>= <it>&#947;</it>
<sub>7</sub>
<it>&#8467;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>8</sub>. We then apply a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i24">
<m:mrow>
<m:mi>B</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> on <it>v</it>
<sub>1-2-3 </sub>and <it>&#947;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>3</sub>, obtaining <it>v</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#947;</it>
<sub>1 </sub>and <it>v</it>
<sub>2-3 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6</sub>. Finally we apply a <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i24">
<m:mrow>
<m:mi>B</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula> on <it>v</it>
<sub>2-3 </sub>and <it>&#947;</it>
<sub>4</sub>
<it>&#947;</it>
<sub>5</sub>, obtaining <it>v</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>4 </sub>and <it>v</it>
<sub>3 </sub>=<it>&#947;</it>
<sub>5</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>6</sub>. If we follow the inverted-split of a run, considering only the labeled vertices, we obtain a rooted tree that is built from the root to the leafs (see Figure <figr fid="F8">8</figr> again). In this case, the first inverted-split defines the root. Then, each one of the subsequent inverted-splits must be chained with a DCJ in this tree. The root of the tree indicates the possible positions of an insertion.</p>
</sec>
</sec>
<sec>
<st>
<p>An indel does not have to occur while a circular chromosome exists</p>
</st>
<p>We now show that an indel must not be applied while a circular chromosome exists.</p>
<p>Proposition 3 shows that an insertion can always be "moved up" in a DCJ-indel sorting sequence.</p>
<p>
<b>Proposition 3 </b>
<it>Let s </it>= <it>&#961;</it>
<sub>1</sub>
<it>&#961;</it>
<sub>2 </sub>... <it>&#961;</it>
<sub>
<it>n</it>-1</sub>
<it>&#961;<sub>n </sub>be a DCJ-indel sequence sorting genome A into genome B, such that, for an integer </it>1 &#8804; <it>i </it>&lt;<it>n, &#961;<sub>i </sub>is a DCJ operation and &#961;</it>
<sub>
<it>i</it>+1 </sub>
<it>is an insertion. Then &#961;<sub>i </sub>&#961;</it>
<sub>
<it>i</it>+1 </sub>
<it>can be replaced &#952;</it>
<sub>1</sub>
<it>&#952;</it>
<sub>2</sub>, <it>such that &#952;</it>
<sub>1 </sub>
<it>is an insertion and &#952;</it>
<sub>2 </sub>
<it>is a DCJ and s' </it>= <it>&#961;</it>
<sub>1</sub>
<it>&#961;</it>
<sub>2 </sub>... <it>&#961;</it>
<sub>
<it>i</it>-1</sub>
<it>&#952;</it>
<sub>1</sub>
<it>&#952;</it>
<sub>2</sub>
<it>&#961;</it>
<sub>
<it>i</it>+ 2 </sub>... <it>&#961;</it>
<sub>
<it>n</it>-1</sub>
<it>&#961;<sub>n </sub>is also a DCJ-indel sequence sorting genome A into genome B</it>.</p>
<p>
<it>Proof: </it>Observe that, if <it>&#961;</it>
<sub>
<it>i </it>
</sub>and <it>&#961;<sub>i</sub>
</it>+1 are independent, it is easy to see that they can be simply switched, that is: <it>&#952;</it>
<sub>1 </sub>= <it>&#961;</it>
<sub>
<it>i</it>+1 </sub>and <it>&#952;</it>
<sub>2 </sub>= <it>&#961;<sub>i</sub>
</it>. We still need to examine the case in which <it>&#961;<sub>i </sub>
</it>and <it>&#961;</it>
<sub>
<it>i</it>+1 </sub>are chained.</p>
<p>Observe that a DCJ in any optimal sorting scenario either accumulates or does not change the composition of runs. Take <it>&#961;</it>
<sub>
<it>i </it>
</sub>= ({<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#947;</it>
<sub>4</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>} &#8594; {<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>2</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#947;</it>
<sub>4</sub>}). Furthermore, since an insertion in any optimal sequence is performed without breaking any existing label, without loss of generality, take <it>&#961;<sub>i+1</sub>
</it> = (<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>|<it>&#947;</it>
<sub>2 </sub>&#8594; <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>|<it>&#8467;</it>
<sub>3</sub>|<it>&#947;</it>
<sub>2</sub>). Then <it>&#961;</it>
<sub>
<it>i</it>
</sub>
<it>&#961;</it>
<sub>
<it>i</it>+1 </sub>could be replaced by: <it>&#952;</it>
<sub>1 </sub>= (<it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>|<it>&#947;</it>
<sub>2 </sub>&#8594; <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>|<it>&#8467;</it>
<sub>3</sub>|<it>&#947;</it>
<sub>2</sub>) followed by <it>&#952;</it>
<sub>2 </sub>= ({<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#947;</it>
<sub>4</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>2</sub>} &#8594; {<it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>|<it>&#8467;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>2</sub>, <it>&#947;</it>
<sub>3</sub>|<it>&#947;</it>
<sub>4</sub>}).</p>
<p>Similarly, a deletion can always be "moved down" in a DCJ-indel sorting sequence.</p>
<p>
<b>Proposition 4 </b>
<it>Let s </it>= <it>&#961;</it>
<sub>1</sub>
<it>&#961;</it>
<sub>2 </sub>... <it>&#961;</it>
<sub>
<it>n</it>-1</sub>
<it>&#961;</it>
<sub>
<it>n </it>
</sub>
<it>be a DCJ-indel sequence sorting genome A into genome B, such that, for an integer </it>1 &#8804; <it>i </it>&lt;<it>n, &#961;<sub>i </sub>is a deletion and &#961;</it>
<sub>
<it>i</it>+1 </sub>
<it>is a DCJ operation. Then &#961;<sub>i</sub>&#961;</it>
<sub>
<it>i</it>+1 </sub>
<it>can be replaced by &#952;</it>
<sub>1</sub>
<it>&#952;</it>
<sub>2</sub>, <it>such that &#952;</it>
<sub>1 </sub>
<it>is a DCJ operation and &#952;</it>
<sub>2 </sub>
<it>is a deletion and s' </it>= <it>&#961;</it>
<sub>1</sub>
<it>&#961;</it>
<sub>2 </sub>... <it>&#961;</it>
<sub>
<it>i</it>-1</sub>
<it>&#952;</it>
<sub>1</sub>
<it>&#952;</it>
<sub>2</sub>
<it>&#961;</it>
<sub>
<it>i</it>+2</sub> ... <it>&#961;</it>
<sub>
<it>n</it>-1</sub>
<it>&#961;<sub>n </sub>is also a DCJ-indel sequence sorting genome A into genome B</it>.</p>
<p>
<it>Proof: </it>Analogous to the proof of Proposition 3. &#160;&#160;&#160;&#9633;</p>
<p>From the previous propositions we observe that finding a position to perform an indel imposes no difficulties to design a restricted DCJ-indel sorting algorithm. The trick is how to determine the DCJ part of the sorting sequence, so that we reincorporate each circular chromosome after its creation and achieve the indel-potential per component.</p>
</sec>
<sec>
<st>
<p>Restricted DCJ-indel sorting</p>
</st>
<p>Basically, our approach disregards recombinations and sorts the components of the graph separately, using optimal DCJ operations to achieve the minimum number of indels per component, that is given by the indel-potential. In this way, we achieve the distance given by the upper bound of Lemma 1, as we will see in the remainder of this section.</p>
<sec>
<st>
<p>Capping</p>
</st>
<p>Disregarding recombinations, we can first perform the genome capping, a technique that helps us to avoid difficulties and special cases produced by telomeres: we adjoin new markers (caps) to the ends of the chromosomes (and new chromosomes composed of caps only, if necessary) so that we do not change the distance and we do not have to worry about telomeres <abbrgrp>
<abbr bid="B4">4</abbr>
</abbrgrp>. After the capping, the two genomes have the same number of chromosomes and the corresponding adjacency graph contains only clean paths of size 1 and cycles. Recall that, since <it>AG</it>(<it>A, B</it>) is bipartite, all cycles have even length and can have 0, 1 or an even number of runs. Capped genomes can be then sorted with translocations (which mimic also fusions and fissions), inversions, circular chromosome excisions and reincorporations.</p>
</sec>
<sec>
<st>
<p>Merging runs in cycles</p>
</st>
<p>An important step of the DCJ-indel sorting is to merge runs in cycles with at least 4 runs, so that the indel-potential for each cycle is achieved.</p>
<p>
<b>Proposition 5 </b>
<it>The indel-potential of a cycle C with at least 4 vertices and 2 or more runs can be achieved by extracting from C a cycle with a single run</it>.</p>
<p>
<it>Proof: </it>For any positive integer i let <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i26"><m:mi>&#955;</m:mi>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mi>i</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
<m:mo class="MathClass-rel">=</m:mo>
<m:mfenced close="&#8969;" open="&#8968;" separators="">
   <m:mrow>
      <m:mfrac>
         <m:mrow>
            <m:mi>i</m:mi>
            <m:mo class="MathClass-bin">+</m:mo>
            <m:mn>1</m:mn>
         </m:mrow>
         <m:mrow>
            <m:mn>2</m:mn>
         </m:mrow>
      </m:mfrac>
   </m:mrow>
</m:mfenced>
</m:math>
</inline-formula>. If &#923;(<it>C</it>) = 2, we can split <it>C </it>into two cycles containing a single run each, and the indel-potential is preserved. For any cycle <it>C </it>with 4 or more runs, since the number of runs in this case is always even, we have <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i27"><m:mi>&#955;</m:mi>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mi>i</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
<m:mo class="MathClass-rel">=</m:mo>
<m:mfrac>
   <m:mrow>
      <m:mi>i</m:mi>
   </m:mrow>
   <m:mrow>
      <m:mn>2</m:mn>
   </m:mrow>
</m:mfrac>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
</m:math>
</inline-formula>. We then denote by &#955;' the alternative potential, obtained by extracting cycles with a single run from <it>C</it>. Observe that, for any <it>i </it>= 4, 6, 8, ..., <it>&#955;</it>'(<it>i</it>) = <it>&#955;</it>(<it>i </it>- 2) + 1. It is easy to check the base case, that is <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i28"><m:msup>
   <m:mrow>
      <m:mi>&#955;</m:mi>
   </m:mrow>
   <m:mrow>
      <m:mi>&#8242;</m:mi>
   </m:mrow>
</m:msup>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mn>4</m:mn>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
<m:mo class="MathClass-rel">=</m:mo>
<m:mi>&#955;</m:mi>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mn>2</m:mn>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mn>2</m:mn>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mn>3</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mfrac>
   <m:mrow>
      <m:mn>4</m:mn>
   </m:mrow>
   <m:mrow>
      <m:mn>2</m:mn>
   </m:mrow>
</m:mfrac>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mi>&#955;</m:mi>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mn>4</m:mn>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
</m:math>
</inline-formula>. By induction, for <it>i </it>= 6, 8, 10 ..., we have <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i29"><m:msup>
   <m:mrow>
      <m:mi>&#955;</m:mi>
   </m:mrow>
   <m:mrow>
      <m:mi>&#8242;</m:mi>
   </m:mrow>
</m:msup>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mi>i</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
<m:mo class="MathClass-rel">=</m:mo>
<m:mi>&#955;</m:mi>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mi>i</m:mi>
      <m:mo class="MathClass-bin">-</m:mo>
      <m:mn>2</m:mn>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mfrac>
   <m:mrow>
      <m:mi>i</m:mi>
      <m:mo class="MathClass-bin">-</m:mo>
      <m:mn>2</m:mn>
   </m:mrow>
   <m:mrow>
      <m:mn>2</m:mn>
   </m:mrow>
</m:mfrac>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mfrac>
   <m:mrow>
      <m:mi>i</m:mi>
   </m:mrow>
   <m:mrow>
      <m:mn>2</m:mn>
   </m:mrow>
</m:mfrac>
<m:mo class="MathClass-bin">+</m:mo>
<m:mn>1</m:mn>
<m:mo class="MathClass-rel">=</m:mo>
<m:mi>&#955;</m:mi>
<m:mrow>
   <m:mo class="MathClass-open">(</m:mo>
   <m:mrow>
      <m:mi>i</m:mi>
   </m:mrow>
   <m:mo class="MathClass-close">)</m:mo>
</m:mrow>
</m:math>
</inline-formula> &#160;&#160;&#160;&#9633;</p>
</sec>
<sec>
<st>
<p>Chromosome reincorporation</p>
</st>
<p>In the restricted sorting of linear genomes a circular chromosome has to be immediately reincorporated after its excision - these two consecutive operations mimic either a transposition or a block-interchange <abbrgrp>
<abbr bid="B2">2</abbr>
<abbr bid="B4">4</abbr>
</abbrgrp>. As we have seen before, the general DCJ-indel sorting is bi-directional - the operations can be applied on genome A or B, depending on whether we accumulate runs in A or in B. However, when a DCJ creates a circular chromosome, we need to apply the subsequent DCJ on the same genome, and it is not easy to see how this interferes with the indel-potential of <it>AG</it>(<it>A, B</it>).</p>
<p>Suppose that a DCJ performed an excision of a circular chromosome. Let (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) be a pair of vertices, such that <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>are in the same genome and belong to the same cycle in <it>AG</it>(<it>A, B</it>), <it>v</it>
<sub>1 </sub>is an adjacency at the circular chromosome and <it>v</it>
<sub>2 </sub>is an adjacency at a linear chromosome. The pair (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is called a link. Since <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>are in the same cycle, a chromosome reincorporation can always be done by applying a DCJ on the two vertices <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>
<abbrgrp>
<abbr bid="B8">8</abbr>
</abbrgrp>.</p>
<p>The cycle to which a link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) belongs is called a <it>connection cycle</it>. Let <it>C </it>be a connection cycle of <it>AG</it>(<it>A, B</it>) with 2<it>k </it>&#8805; 4 vertices. Since <it>C </it>has <it>k </it>vertices in each genome, there are at least <it>k </it>- 1 and at most <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i30"><m:mfenced close="&#8969;" open="&#8968;" separators="">
   <m:mrow>
      <m:mfrac>
         <m:mrow>
            <m:mi>k</m:mi>
         </m:mrow>
         <m:mrow>
            <m:mn>2</m:mn>
         </m:mrow>
      </m:mfrac>
   </m:mrow>
</m:mfenced>
<m:mi>.</m:mi>
<m:mfenced close="&#8971;" open="&#8970;" separators="">
   <m:mrow>
      <m:mfrac>
         <m:mrow>
            <m:mi>k</m:mi>
         </m:mrow>
         <m:mrow>
            <m:mn>2</m:mn>
         </m:mrow>
      </m:mfrac>
   </m:mrow>
</m:mfenced>
</m:math>
</inline-formula> distinct links in <it>C</it>.</p>
<p>The two vertices <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>of a link in a connection cycle <it>C </it>are connected by two distinct subpaths of <it>C</it>. The distance between <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>is given by the number of edges in the shortest path connecting them. Since both <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>are in the same genome, this distance is always even and positive. If the distance between <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>is 2, <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>have a common neighbor, and (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is called a <it>short-link</it>.</p>
<p>
<b>Proposition 6 </b>
<it>After the excision of a circular chromosome by a DCJ, there is at least one short-link in AG</it>(<it>A, B</it>).</p>
<p>
<it>Proof: </it>Suppose that the circular chromosome is in genome <it>A</it>. If <it>AG</it>(<it>A, B</it>) contained no connection cycle, genome B would also have a circular chromosome, which would be a contradiction. Let <it>C </it>= <it>v</it>
<sub>1</sub>
<it>x</it>
<sub>1</sub>
<it>v</it>
<sub>2</sub>
<it>x</it>
<sub>2 </sub>... <it>v</it>
<sub>
<it>n</it>
</sub>
<it>x</it>
<sub>
<it>n </it>
</sub>be a connection cycle in <it>AG</it>(<it>A, B</it>), in which the vertices <it>v</it>
<sub>1</sub>, ..., <it>v</it>
<sub>
<it>n </it>
</sub>are in <it>A </it>and the vertices <it>x</it>
<sub>1</sub>, ..., <it>x</it>
<sub>
<it>n </it>
</sub>are in <it>B</it>, and let (<it>v<sub>i</sub>, v<sub>j</sub>
</it>) be a link in <it>C </it>such that <it>v</it>
<sub>
<it>i </it>
</sub>is in the circular chromosome and <it>v</it>
<sub>
<it>j </it>
</sub>is in a linear chromosome of <it>A</it>. Consider without loss of generality that <it>i </it>&lt;<it>j</it>. Then take the vertex <it>v<sub>k</sub>, i </it>&#8804; <it>k </it>&lt;<it>j</it>, such that <it>k </it>is the largest index of a vertex between <it>v</it>
<sub>
<it>i </it>
</sub>and <it>v</it>
<sub>
<it>j </it>
</sub>belonging to the circular chromosome. Then (<it>v<sub>k</sub>, v</it>
<sub>
<it>k</it>+1</sub>) is a short-link. &#160;&#160;&#160;&#9633;</p>
<p>In order to find out whether the indel-potential of the connection cycle <it>C </it>can be preserved after applying a DCJ on a certain link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>), basically we need to analyze how the connection cycle <it>C </it>is split, by analyzing the vertices that are between <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>in <it>C</it>.</p>
<p>We focus on the short-links only. Let (<it>v</it>
<sub>1</sub>,<it>v</it>
<sub>2</sub>) be a short-link in a connection cycle <it>C</it>, such that <it>v</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#947;</it>
<sub>2 </sub>and <it>v</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>3</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>4 </sub>(<it>&#8467;</it>
<sub>1 </sub>and <it>&#8467;</it>
<sub>2 </sub>can be equal to <it>&#949;</it>). Without loss of generality, let <it>z </it>= <it>&#947;</it>
<sub>2</sub>
<it>&#8467;</it>
<sub>3</sub>
<it>&#947;</it>
<sub>3 </sub>be the common neighbor of <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>(<it>&#8467;</it>
<sub>3 </sub>can also be equal to <it>&#949;</it>). We then define the optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) = ({<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>} &#8594; {<it>x</it>
<sub>1</sub>, <it>x</it>
<sub>2</sub>}), such that <it>x</it>
<sub>1 </sub>= <it>&#947;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>3 </sub>and <it>x</it>
<sub>2 </sub>= <it>&#947;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>1</sub>
<it>&#8467;</it>
<sub>2</sub>
<it>&#947;</it>
<sub>4</sub>. Observe that <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) always extracts <it>z </it>together with a new clean vertex <it>x</it>
<sub>1 </sub>into a cycle, and accumulates the labels of <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>into a new vertex <it>x</it>
<sub>2</sub>, which is extracted into a cycle with the remaining vertices of <it>C</it>. There are three different cases:</p>
<p indent="1">1. <it>Gaps: </it>If the two vertices of a short-link have a clean common neighbor, it is called a <it>gap</it>. A DCJ applied to a gap of a connection cycle <it>C </it>splits <it>C </it>into a clean cycle <it>C' </it>and a cycle <it>C'' </it>that has the same indel-potential of <it>C</it>.</p>
<p indent="1">2. <it>Compact-runs: </it>Let (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) be a short-link in <it>AG</it>(<it>A, B</it>), such that the common neighbor <it>z </it>of <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>is a compact-run. An optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) extracts the compact-run <it>z </it>and a new clean vertex into a new cycle. According to Proposition 5, <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) preserves the indel-potential of <it>AG</it>(<it>A, B</it>).</p>
<p indent="1">3. <it>Inverted-splits: </it>If a short-link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is not a gap nor is separated by a compact-run, only one possiblity remains: the common neighbor <it>z </it>of <it>v</it>
<sub>1 </sub>and <it>v</it>
<sub>2 </sub>is labeled and belongs to a long-run <it>r</it>. Observe that an optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) splits <it>C </it>into a cycle <it>C' </it>containing a new clean vertex and <it>z </it>(&#923;(<it>C'</it>) = 1) and a cycle <it>C</it>'' containing all remaining runs of <it>C </it>and the remaining vertices of <it>r</it>, that is, we have &#923;(<it>C</it>'') = &#923;(<it>C</it>).</p>
<p indent="1">Although the overall indel-potential seems to be increased, the DCJ described above is an inverted-split of type <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i25">
<m:mrow>
<m:mi>A</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">B</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>B</m:mi>
</m:mrow>
</m:math>
</inline-formula> if the circular chromosome is in <it>A </it>and <it>r </it>is in <it>B </it>(or, symmetrically, of type <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i24">
<m:mrow>
<m:mi>B</m:mi>
<m:msubsup>
<m:mrow>
<m:mo class="MathClass-rel">&#8826;</m:mo>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
<m:mrow>
<m:mi mathvariant="script">A</m:mi>
</m:mrow>
</m:msubsup>
<m:mi>A</m:mi>
</m:mrow>
</m:math>
</inline-formula>, if the circular chromosome is in <it>B </it>and <it>r </it>is in <it>A</it>). We have seen that inverted-splits, if properly applied, do the backtracing of the insertion position of a run in the opposite genome and do not increase the indel-potential of <it>AG</it>(<it>A, B</it>).</p>
<p indent="1">It is important to guarantee that, after applying a DCJ that inversely splits a run <it>r</it>
<sub>1 </sub>and another DCJ that inversely splits another run <it>r</it>
<sub>2</sub>, the runs <it>r</it>
<sub>1 </sub>and <it>r</it>
<sub>2 </sub>are not merged. We do this by simply extracting the residual part of an inversely split run into a new cycle. Furthermore, during the merging or accumulation of runs, a run <it>r </it>can be inversely split by successive DCJs. In this case, we need to guarantee that each new inverted-split of <it>r </it>is either the first or chained with one of the previous inverted-splits.</p>
<p>We can always reincorporate the circular chromosome with a DCJ applied to any short-link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>), except if <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) splits a run <it>r </it>that is already inversely split and <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) cannot be chained with a previous inverted-split of <it>r</it>. However, in this case, <it>r </it>will be separated alone in a cycle (each run is immediately separated after its first inverted-split).</p>
<p>After an excision, suppose that the circular chromosome is in genome <it>A </it>(respectively in <it>B</it>). Let <it>C </it>be a connection cycle in <it>AG</it>(<it>A, B</it>). For each vertex <it>v </it>of <it>C </it>in <it>A </it>(respectively in <it>B</it>), there is at least one link containing <it>v</it>. Due to this fact, when we have a cycle containing a single inversely split run <it>r</it>, it is easy to find a link chained with a previous inverted split of <it>r</it>.</p>
<p>
<b>Proposition 7 </b>
<it>If a connection cycle C with a single run r has links in one genome and its run r is in the other genome, we can always reincorporate the circular chromosome and preserve the indel-potential</it>.</p>
<p>
<it>Proof: </it>Let <it>C </it>have links in genome <it>A</it>. Each short-link of <it>C </it>is either a gap, or a compact-run, or the first inverted-split of the <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula>-run <it>r</it>. Otherwise, <it>C </it>has in genome <it>A </it>a vertex <it>v </it>that was created by a previous inverted-split <it>&#961; </it>of <it>r</it>. Since each vertex of <it>C </it>in <it>A </it>is part of a link, we can choose a link that contains <it>v </it>and, consequently, is chained with <it>&#961;</it>. &#160;&#160;&#160;&#9633;</p>
</sec>
<sec>
<st>
<p>The sorting algorithm and an upper bound for the restricted DCJ-indel distance</p>
</st>
<p>We put everything together in Algorithm 1 (Additional file <supplr sid="S1">1</supplr>) and describe the sorting of capped genomes for the restricted model, in which each circular chromosome is reincorporated immediately after its creation. Applying this procedure we can find a sequence of optimal DCJs that sort <it>A </it>into <it>B </it>while preserving the indel-potential. In other words, this algorithm results in a sorting sequence in the restricted model that has exactly the same cost given by the upper bound of Lemma 1.</p>
<suppl id="S1">
<title>
<p>Additional file 1</p>
</title>
<file name="1471-2105-13-S19-S14-S1.PDF">
   <p>Click here for file</p>
</file>
</suppl>
</sec>
</sec>
</sec>
<sec>
<st>
<p>Conclusions</p>
</st>
<p>In this work we have presented a method to compute a restricted DCJ-indel sequence of operations that sort a linear genome into another linear genome. This method leads to a tight upper bound for the restricted DCJ-indel distance. The general DCJ-indel distance can be computed exactly and is a lower bound for the restricted DCJ-indel distance. However, the question whether these bounds are equal, meaning that both distances are equal, remains open.</p>
</sec>
<sec>
<st>
<p>Competing interests</p>
</st>
<p>The authors declare that they have no competing interests.</p>
</sec>
<sec>
<st>
<p>Authors' contributions</p>
</st>
<p>PHS, MDVB, RM and SD have elaborated the model, proved the results and written the paper.</p>
</sec>
<sec>
<st>
<p/>
</st>
<p>
<b>Algorithm 1 </b>Restricted sorting of genome A into B with optimal DCJs and indels</p>
<p>
<b>Input: </b>Two linear genomes <it>A </it>and <it>B</it>
</p>
<p>
<b>Output: </b>A restricted sequence of DCJ and indel operations sorting <it>A </it>into <it>B</it>
</p>
<p>&#160;&#160;&#160;&#160;&#160;cap genomes <it>A </it>and <it>B</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[MERGING:]</p>
<p>&#160;&#160;&#160;&#160;&#160;<it>r </it>&#8592; <it>null</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;<b>if </b>there is a cycle <it>C </it>&#8712; <it>AG</it>(<it>A</it>,<it>B</it>) with at least 4 vertices and at least 2 runs <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<it>r </it>&#8592; run from <it>C</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;<b>while </b>
<it>r </it>&#8800; <it>null </it>
<b>do</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;extract <it>r </it>into a cycle; [<it>this preserves the indel-potential of AG</it>(<it>A</it>,<it>B</it>) <it>according to Proposition </it>5]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<it>r </it>&#8592; <it>null</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>a circular chromosome was created <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find a short-link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>); [<it>Proposition 6</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is a gap or a compact-run <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>else</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;let <it>r</it>
<sub>1 </sub>be the run that would be inversely split by <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>
<it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is the first inverted-split of <it>r</it>
<sub>1 </sub>
<b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;let <it>r</it>
<sub>2 </sub>be the residual part of <it>r</it>
<sub>1</sub>;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>
<it>r</it>
<sub>2 </sub>is in a cycle with more runs <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<it>r </it>&#8592; <it>r</it>
<sub>2</sub>; [<it>extract r<sub>2 </sub>from its cycle in the next step</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>else</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[<it>r</it>
<sub>1 </sub>
<it>was inversely split before and is separated alone in cycle</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find a link (<it>x</it>
<sub>1</sub>, <it>x</it>
<sub>2</sub>) such that <it>x</it>
<sub>1 </sub>is a vertex created by a previous inverted-split of <it>r</it>
<sub>1</sub>; <it>Proposition </it>7]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>x</it>
<sub>1</sub>, <it>x</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>
<it>r </it>= <it>null </it>and there is a cycle <it>C </it>&#8712; <it>AG</it>(<it>A</it>,<it>B</it>) with at least 4 vertices and at least 2 runs <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<it>r </it>&#8592; run from <it>C</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[ACCUMULATING: <it>(each cycle with 4 or more vertices has at most one run)</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;<b>while </b>there is a long-run r in <it>AG</it>(<it>A</it>,<it>B</it>) <b>do</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply an optimal DCJ accumulating the labels of two partners of <it>r</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>a circular chromosome was created <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find a short-link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>); [<it>Proposition 6</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is a gap or a compact-run <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>else</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;let <it>r</it>
<sub>1 </sub>be the run that would be inversely split by <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>
<it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>) is the first inverted-split of <it>r</it>
<sub>1 </sub>
<b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>else</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[<it>r</it>
<sub>1 </sub>
<it>was inversely split before and is separated alone in cycle</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find a link (<it>x</it>
<sub>1</sub>, <it>x</it>
<sub>2</sub>) such that x<sub>1 </sub>is a vertex created by a previous inverted-split of <it>r</it>
<sub>1</sub>; [<it>Proposition </it>7]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>x</it>
<sub>1</sub>, <it>x</it>
<sub>2</sub>);</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[DCJ-SORTING: <it>(each remaining cycle with 4 or more vertices has at most one compact-run)</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;<b>while </b>there is cycle <it>C </it>&#8712; <it>AG</it>(<it>A</it>,<it>B</it>) with at least 4 vertices <b>do</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;extract a cycle from <it>C</it>, with an optimal DCJ applied on genome <it>A</it>;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<b>if </b>a circular chromosome was created <b>then</b>
</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;find a short-link (<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>); [<it>Proposition 6</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;[<it>at this stage this short-link is a gap or a compact-run</it>]</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;apply the optimal DCJ <it>&#961;</it>(<it>v</it>
<sub>1</sub>, <it>v</it>
<sub>2</sub>);</p>
<p indent="1">invert all DCJs applied on genome <it>B</it>;</p>
<p indent="1">insert each <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i5">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">B</m:mi>
</m:math>
</inline-formula>-run <it>r </it>before the first inverted-split of <it>r</it>;</p>
<p indent="1">move up insertions that occur in circular chromosomes;</p>
<p indent="1">delete all <inline-formula>
<m:math xmlns:m="http://www.w3.org/1998/Math/MathML" name="1471-2105-13-S19-S14-i4">
<m:mi>&#160;</m:mi>
<m:mi mathvariant="script">A</m:mi>
</m:math>
</inline-formula>-runs from the DCJ-sorted components;</p>
</sec>
</bdy><bm>
<ack>
<sec>
<st>
<p>Acknowledgements</p>
</st>
<p>This research was partially supported by the Brazilian research agencies CNPq and FAPERJ.</p>
<p>This article has been published as part of <it>BMC Bioinformatics </it>Volume 13 Supplement 19, 2012: Proceedings of the Tenth Annual Research in Computational Molecular Biology (RECOMB) Satellite Workshop on Comparative Genomics. The full contents of the supplement are available online at <url>http://www.biomedcentral.com/bmcbioinformatics/supplements/13/S19</url>
</p>
</sec>
</ack>
<refgrp><bibl id="B1"><title><p>Transforming men into mice (polynomial algorithm for genomic distance problem)</p></title><aug><au><snm>Hannenhalli</snm><fnm>S</fnm></au><au><snm>Pevzner</snm><fnm>P</fnm></au></aug><source>Proc of FOCS 1995</source><pubdate>1995</pubdate><fpage>581</fpage><lpage>592</lpage></bibl><bibl id="B2"><title><p>Efficient sorting of genomic permutations by translocation, inversion and block interchange</p></title><aug><au><snm>Yancopoulos</snm><fnm>S</fnm></au><au><snm>Attie</snm><fnm>O</fnm></au><au><snm>Friedberg</snm><fnm>R</fnm></au></aug><source>Bioinformatics</source><pubdate>2005</pubdate><volume>21</volume><fpage>3340</fpage><lpage>3346</lpage><xrefbib><pubidlist><pubid idtype="doi">10.1093/bioinformatics/bti535</pubid><pubid idtype="pmpid" link="fulltext">15951307</pubid></pubidlist></xrefbib></bibl><bibl id="B3"><title><p>A unifying view of genome rearrangements</p></title><aug><au><snm>Bergeron</snm><fnm>A</fnm></au><au><snm>Mixtacki</snm><fnm>J</fnm></au><au><snm>Stoye</snm><fnm>J</fnm></au></aug><source>Proc of WABI 2006 LNBI</source><pubdate>2006</pubdate><volume>4175</volume><fpage>163</fpage><lpage>173</lpage></bibl><bibl id="B4"><title><p>Restricted DCJ Model: rearrangement problems with chromosome reincorporation</p></title><aug><au><snm>Kov&#225;c</snm><fnm>J</fnm></au><au><snm>Warren</snm><fnm>R</fnm></au><au><snm>Braga</snm><fnm>MDV</fnm></au><au><snm>Stoye</snm><fnm>J</fnm></au></aug><source>Journal of Computational Biology</source><pubdate>2011</pubdate><volume>18</volume><issue>9</issue><fpage>1231</fpage><lpage>1241</lpage><xrefbib><pubidlist><pubid idtype="doi">10.1089/cmb.2011.0116</pubid><pubid idtype="pmpid" link="fulltext">21899428</pubid></pubidlist></xrefbib></bibl><bibl id="B5"><title><p>Double Cut and Join with Insertions and Deletions</p></title><aug><au><snm>Braga</snm><fnm>MDV</fnm></au><au><snm>Willing</snm><fnm>E</fnm></au><au><snm>Stoye</snm><fnm>J</fnm></au></aug><source>Journal of Computational Biology</source><pubdate>2011</pubdate><volume>18</volume><issue>9</issue><fpage>1167</fpage><lpage>1184</lpage><xrefbib><pubidlist><pubid idtype="doi">10.1089/cmb.2011.0118</pubid><pubid idtype="pmpid" link="fulltext">21899423</pubid></pubidlist></xrefbib></bibl><bibl id="B6"><title><p>DCJ-indel distance with distinct operation costs</p></title><aug><au><snm>da Silva</snm><fnm>PH</fnm></au><au><snm>Braga</snm><fnm>MDV</fnm></au><au><snm>Machado</snm><fnm>R</fnm></au><au><snm>Dantas</snm><fnm>S</fnm></au></aug><source>Proceedings of WABI 2012, Lecture Notes in BioInformatics </source><pubdate>2012</pubdate><volume>7534</volume><fpage>378</fpage><lpage>390</lpage><url>http://link.springer.com/chapter/10.1007/978-3-642-33122-0_30</url></bibl><bibl id="B7"><title><p>Reductive genome evolution from the mother of Rickettsia</p></title><aug><au><snm>Blanc</snm><fnm>G</fnm></au><au><snm>Ogata</snm><fnm>H</fnm></au><au><snm>Robert</snm><fnm>C</fnm></au><etal/></aug><source>PLoS Genetics</source><pubdate>2007</pubdate><volume>3</volume><fpage>e14</fpage><xrefbib><pubidlist><pubid idtype="doi">10.1371/journal.pgen.0030014</pubid><pubid idtype="pmcid">1779305</pubid><pubid idtype="pmpid" link="fulltext">17238289</pubid></pubidlist></xrefbib></bibl><bibl id="B8"><title><p>The solution space of sorting by DCJ</p></title><aug><au><snm>Braga</snm><fnm>MDV</fnm></au><au><snm>Stoye</snm><fnm>J</fnm></au></aug><source>Journal of Computational Biology</source><pubdate>2010</pubdate><volume>17</volume><issue>9</issue><fpage>1145</fpage><lpage>1165</lpage><xrefbib><pubidlist><pubid idtype="doi">10.1089/cmb.2010.0109</pubid><pubid idtype="pmpid" link="fulltext">20874401</pubid></pubidlist></xrefbib></bibl></refgrp>
</bm></art>