Email updates

Keep up to date with the latest news and content from BMC Bioinformatics and BioMed Central.

This article is part of the supplement: Proceedings of the Third Annual RECOMB Satellite Workshop on Massively Parallel Sequencing (RECOMB-seq 2013)

Open Access Proceedings

Assembling contigs in draft genomes using reversals and block-interchanges

Chi-Long Li, Kun-Tze Chen and Chin Lung Lu*

Author Affiliations

Department of Computer Science, National Tsing Hua University, Hsinchu 30013, Taiwan

For all author emails, please log on.

BMC Bioinformatics 2013, 14(Suppl 5):S9  doi:10.1186/1471-2105-14-S5-S9


The electronic version of this article is the complete one and can be found online at: http://www.biomedcentral.com/1471-2105/14/S5/S9


Published:10 April 2013

© 2013 Li et al.; licensee BioMed Central Ltd.

This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

The techniques of next generation sequencing allow an increasing number of draft genomes to be produced rapidly in a decreasing cost. However, these draft genomes usually are just partially sequenced as collections of unassembled contigs, which cannot be used directly by currently existing algorithms for studying their genome rearrangements and phylogeny reconstruction. In this work, we study the one-sided block (or contig) ordering problem with weighted reversal and block-interchange distance. Given a partially assembled genome π and a completely assembled genome σ, the problem is to find an optimal ordering to assemble (i.e., order and orient) the contigs of π such that the rearrangement distance measured by reversals and block-interchanges (also called generalized transpositions) with the weight ratio 1:2 between the assembled contigs of π and σ is minimized. In addition to genome rearrangements and phylogeny reconstruction, the one-sided block ordering problem particularly has a useful application in genome resequencing, because its algorithms can be used to assemble the contigs of a draft genome π based on a reference genome σ. By using permutation groups, we design an efficient algorithm to solve this one-sided block ordering problem in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M1','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M1">View MathML</a> time, where n is the number of genes or markers and δ is the number of used reversals and block-interchanges. We also show that the assembly of the partially assembled genome can be done in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2">View MathML</a> time and its weighted rearrangement distance from the completely assembled genome can be calculated in advance in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2">View MathML</a> time. Finally, we have implemented our algorithm into a program and used some simulated datasets to compare its accuracy performance to a currently existing similar tool, called SIS that was implemented by a heuristic algorithm that considers only reversals, on assembling the contigs in draft genomes based on their reference genomes. Our experimental results have shown that the accuracy performance of our program is better than that of SIS, when the number of reversals and transpositions involved in the rearrangement events between the complete genomes of π and σ is increased. In particular, if there are more transpositions involved in the rearrangement events, then the gap of accuracy performance between our program and SIS is increasing.

Background

The techniques of next generation sequencing have greatly advanced in the past decade [1-3], which allows an increasing number of draft genomes to be produced rapidly in a decreasing cost. Usually, these draft genomes are partially sequenced, leading to their published genomes as collections of unassembled contigs (short for contiguous fragments). These draft genomes in contig form, however, can not be used immediately in some bioinformatics applications, such as the study of genome rearrangements, which requires the completely assembled genomes to calculate their rearrangement distances [4]. To adequately address this issue, Gaul and Blanchette [5] introduced and studied the so-called block ordering problem defined as follows. Given two partially assembled genomes, with each representing as an unordered set of blocks, the block ordering problem is to assemble (i.e., order and orient) the blocks of the two genomes such that the distance of genome rearrangements between the two assembled genomes is minimized. The blocks mentioned above are the contigs, each of which can be represented by an ordered list of genes or markers. In their work [5], Gaul and Blanchette proposed a linear-time algorithm to solve the block ordering problem if the problem is further simplified to maximize the number of cycles in the breakpoint graph corresponding to the assembled genomes. The rationale behind this modification is totally based on a result obtained by Bourque and Pevzner [6], showing that the reversal distance between two assembled genomes can be approximated well by maximizing the number of cycles in their corresponding breakpoint graph. Actually, in addition to the number of cycles, the number of hurdles, as well as the presence of a fortress or not, is also important and needed for determining the actual reversal distance [7]. Therefore, it is still a challenge to efficiently solve the block ordering problem by optimizing the true rearrangement distance.

In the literature, many different kinds of genome rearrangements have been extensively studied [4], such as reversal (also called inversion), transposition and block-interchange (also called generalized transposition), translocation, fusion and fission. Reversal affects a segment on a chromosome by reversing this segment as well as exchanging its strands. Transposition rearranges a chromosome by interchanging its two adjacent and nonoverlapping segments. Block-interchange is a generalized transposition that exchanges two nonoverlapping but not necessarily adjacent segments on a chromosome. Translocation acts on two chromosomes by exchanging their the end fragments. Fusion is a special translocation that joins two chromosomes into one and fission is also a special translocation that splits a chromosome into two. In this study, we consider a variant of the block ordering problem, in which one of the two input genomes is still partially assembled but the other is completely assembled, with optimizing the genome rearrangement distance measured by weighted reversals and block-interchanges, whose weights are 1 and 2, respectively. For distinguishing this special block ordering problem from the original one, we call it as one-sided block (or contig) ordering problem. In fact, an efficient algorithm to solve the one-sided block ordering problem has a useful application in genome resequencing [8,9], because the reference genome for resequencing organisms can serve as the completely assembled genome in the one-sided block ordering problem and the contigs of partially assembled resequencing genome can then be assembled together into one or several scaffolds based on the reference genome. From this respect, the one-sided block ordering problem can be considered as a kind of contig scaffolding (or assembly) problem that aims to use genome rearrangements to create contig scaffolds for a draft genome based on a reference genome.

Currently, several contig scaffolding tools based on the reference genomes have been developed, such as Projector 2 [10], OSLay [11], ABACAS [12], Mauve Aligner [13], fillScaffolds [14], r2cat [15] and SIS [16]. Among these contig scaffolding tools, both SIS and fillScaffolds use the concept of genome rearrangements to generate contig scaffolds for a draft genome. SIS deals with only reversals, while in addition to reversals, fillScaffolds considers other rearrangements, such as transpositions and translocations (including fissions and fusions). Basically, SIS was dedicated to creating the contig scaffolds for prokaryotic draft genomes by heuristically searching for their inversion signatures, where an inversion signature is a pair of adjacent genes or markers appearing along a contig such that they form a breakpoint and are also located in different transcriptional strands. As for fillScaffolds, it used the traditional technique of breakpoint graphs to assemble the contigs of draft genomes. In the study by Dias and colleagues [16], they have used real prokaryotic draft genomes to demonstrate that SIS had the best overall accuracy performance when compared to the other tools we mentioned above.

In this study, we utilize permutation groups in algebra, instead of the breakpoint graphs used by Gaul and Blanchette [5], to design an efficient algorithm, whose time complexity is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M1','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M1">View MathML</a>, for solving the one-sided block ordering problem with weighted reversal and block-interchange distance, where n is the number of genes or markers and δ is the number of reversals and block-interchanges used to transform the assembly of the partially assembled genome (i.e., draft genome) into the completely assembled genome (i.e., reference genome). In particular, we also show that the assembly of the partially assembled genome can be done in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2">View MathML</a> time and its weighted reversal and block-interchange distance from the completely assembled genome can be calculated in advance in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M2">View MathML</a> time. In addition, we have implemented our algorithm into a program and used some simulated datasets to compare its accuracy performance to SIS on assembling the contigs in the draft genomes based on their reference genomes. Our experimental results have shown that the averaged normalized contig mis-join errors of our program are lower than those of SIS, when the number of reversals and transpositions involved in the rearrangement events between the complete genomes of the partially and completely assembled organisms is increased. In particular, if there are more transpositions involved in the rearrangement events, then the gap of accuracy performance between our program and SIS is increasing.

Preliminaries

One-sided block ordering problem

In the following, we dedicate ourselves to linear, uni-chromosomal genomes. With a slight modification, however, our algorithmic result can still apply to circular, uni-chromosomal genomes, or to multi-chromosomal genomes with linear or circular chromosomes in a chromosome-by-chromosome manner. Once completely assembled, a uni-chromosomal genome can be represented by a signed permutation of n integers between 1 and n, with each integer representing a gene or marker and its associated sign indicating the strandedness of the corresponding gene or marker. If the genome is partially assembled, then it will be represented by an unordered set of blocks, where a block B of size k, denoted by B = [b1, b2, ..., bk], is an ordered list of k signed integers. Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M3','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M3">View MathML</a> denote the reverse of B. Given an unordered set of m blocks, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M4','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M4">View MathML</a>, corresponding to a partially assembled genome, an ordering (or assembly) of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5">View MathML</a> is an ordered list of m blocks in which each block Bi or its reverse <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M6','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M6">View MathML</a> appears exactly once, where 1 ≤ i m. For instance, suppose that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M13','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M13">View MathML</a>. Then (B1, B3, B2) = ([1, 4], [-5, 6], [3, 2]) and (B1, -B3, B2) = ([1, 4], [-6, 5], [3, 2]) are two orderings of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5">View MathML</a>. Basically, each ordering of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5">View MathML</a>induces (or defines) a signed permutation of size n, which is obtained by concatenating the blocks in this ordered list. For instance, the ordering (B1, B3, B2) in the above exemplified <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5">View MathML</a> induces the signed permutation (1, 4, -5, 6, 3, 2), which simply is denoted by B1 B3 B2. Clearly, the permutation induced by an ordering of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5">View MathML</a> corresponds to an assembly of the blocks in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M5">View MathML</a>. Now, the one-sided block ordering problem we study in this paper is formally defined as follows:

One-sided block ordering problem with reversal and block-interchange distance

Input: A partially assembled genome π and a completely assembled genome σ.

Output: Find an ordering of π such that the rearrangement distance measured by reversals and block-interchanges with the weight ratio 1:2 between the permutation induced by the ordering of π and σ is minimized.

As discussed in our previous study [17], it is biologically meaningful to assign twice the weight to block-interchanges than to reversals, due to the observation from the biological data that transpositions occur with about half the frequency of reversals [18].

Permutation groups

Permutation groups have been proven to be a very useful tool in the studies of genome rearrangements [17]. Below, we recall some useful definitions, notations and properties borrowed form our previous work [17]. Basically, given a set E = {1, 2, ..., n}, a permutation is defined to be a one-to-one function from E into itself and usually expressed as a product of cycles in the study of genome rearrangements. For instance, π = (1)(3, 2) is a product of two cycles to represent a permutation of E = {1, 2, 3} and means that π(1) = 1, π(2) = 3 and π(3) = 2. The elements in a cycle can be arranged in any cyclic order and hence the cycle (3, 2) in the permutation π exemplified above can be rewritten as (2, 3). Moreover, if the cycles in a permutation are all disjoint (i.e., no common element in any two cycles), then the product of these cycles is called the cycle decomposition of the permutation. In fact, a permutation in the cycle decomposition can be used to model a genome containing several circular chromosomes, with each disjoint cycle representing a circular chromosome. Notice that in the rest of this article, we say "cycle in a permutation" to mean "cycle in the cycle decomposition of this permutation" for simplicity, unless otherwise specified. A cycle with k elements is further called a k-cycle. In convention, the 1-cycles in a permutation are not written explicitly since their elements are fixed in the permutation. For instance, the above exemplified permutation π can be written as π = (2, 3). If the cycles in a permutation are all 1-cycles, then this permutation is called an identify permutation and denoted by 1. Suppose that α and β are two permutations of E. Then their product αβ, also called their composition, defines a permutation of E satisfying αβ(x) = α(β(x)) for all <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M7','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M7">View MathML</a>. If both α and β are disjoint, then αβ = βα. If αβ = 1, then α is called the inverse of β, denoted by β-1, and vice versa. Moreover, the conjugation of β by α, denoted by α · β, is defined to be the permutation <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M8','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M8">View MathML</a>. It can be verified that if y = β(x), then α(y) = αβ(x) = αβα-1α(x) = α · β(α(x)). Hence, α · β can be obtained from β by just changing its element x with α(x). In other words, if β = (b1, b2, ..., bk), then α · β = (α(b1), α(b2), ..., α(bk)).

It is a fact that every permutation can be expressed into a product of 2-cycles, in which 1-cycles are still written implicitly. Given a permutation α of E, its norm, denoted by ||α||, is defined to be the minimum number, say k, such that α can be expressed as a product of k 2-cycles. In the cycle decomposition of α, let nc(α) denote the number of its disjoint cycles, notably including the 1-cycles not written explicitly. Given two permutations α and β of E, α is said to divide β, denoted by α|β, if and only if ||βα-1|| = ||β|| - ||α||. In our previous work [17], it has been shown that ||α|| = |E| - nc(α) and for any k elements in E, say a1, a2, ..., ak, they all appear in a cycle of α in the ordering of a1, a2, ..., ak if and only if (a1, a2, ..., ak) | α.

Let α = (a1, a2) be a 2-cycle and β be an arbitrary permutation of E. If α|β, that is, both a1 and a2 appear in the same cycle of β, then the composition αβ, as well as βα, has the effect of fission by breaking this cycle into two smaller cycles. For instance, let α = (1, 3) and β = (1, 2, 3, 4). Then α|β, since both 1 and 3 are in the cycle (1, 2, 3, 4), and αβ = (1, 2)(3, 4) and βα = (4, 1)(2, 3). On the other hand, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M9','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M9">View MathML</a>, that is, a1 and a2 appear in different cycles of β, then αβ, as well as βα, has the effect of fusion by joining the two cycles into a bigger cycle. For example, if α = (1, 3) and β = (1, 2)(3, 4), then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M10','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M10">View MathML</a> and, as a result, αβ = (1, 2, 3, 4) and βα = (2, 1, 4, 3).

A model for representing DNA molecules

As mentioned before, a permutation in the form of the cycle decomposition can be used to model a genome containing multiple chromosomes (or a chromosome with multiple contigs), with each cycle representing a chromosome (or contig). To facilitate modelling the rearrangement of reversals using the permutation groups, however, we need to use two cycles to represent a chromosome, with one cycle representing a strand of the chromosome and the other representing the complementary strand. For this purpose, we first let E = {-1, 1, -2, 2, ..., -n, -n} and Γ = (1, -1)(2, -2) ... (n, -n). We then use an admissible cycle, which is a cycle containing no i and its opposite -i simultaneously for some <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M11','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M11">View MathML</a>, to represent a chromosomal strand, say π+, and use π- = Γ · (π+)-1, which is the reverse complement of π+, to represent the opposite strand of π+. As demonstrated in our previous work [17], it is useful to represent a double stranded chromosome π by the product of its two strands π+ and π-, that is, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M12','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M12">View MathML</a>, because a reversal (respectively, block-interchange) acting on this DNA molecule can be mimicked by multiplying two (respectively, four) 2-cycles with π, as described in the following lemmas.

Lemma 1 ([17]) Let π = π+π- denote a double stranded DNA and let x and y be two elements in E. If <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M14','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M14">View MathML</a>, that is, x and y are in the different strands of π, then the effect of (πΓ(y), πΓ(x))(x, y)π is a reversal acting on π.

Lemma 2 ([17]) Let π = π+π- denote a double stranded DNA and let u, v, x and y be four elements in E. If (x, u, y, v)|π, that is, x, u, y and v appear in the same strand of π in this order, then the effect of (πΓ(v), πΓ(u)) (πΓ(y), πΓ(x)) (u, v)(x, y)π is a block-interchange acting on π.

Moreover, as described in the following lemma, we have shown in [17] that given two different DNA molecules π and σ, every cycle α in (the cycle decomposition of) σπ-1 always has a mate cycle (πΓ) · α-1 that also appears in σπ-1. In fact, α and (πΓ) · α-1 in σπ-1 are each other's mate cycle.

Lemma 3 ([17]) Let π and σ be two different double-stranded DNA molecules. If α is a cycle in σπ-1, then (πΓ) · α-1 is also a cycle in σπ-1.

An efficient algorithm for the one-sided block ordering problem

To clarify our algorithm, we start with defining some notations. Let α denote an arbitrary linear DNA molecule (or contig). As mentioned previously, it is represented by the product of its two strands α+ and α-, that is, α = α+α-. If α contains k genes (or markers), we also denote its α+ by (α+[1], α+[2], ..., α+[k]), where α+[i] is the i-th gene in α, and its α- by (α- [1], α-[2], ..., α-[k]). By convention, α+[1] and α-[1] are called as tails of α. Let π = π1π2 ... πm be a linear, uni-chromosomal genome that is partially assembled into m contigs π1, π2, ..., πm, each with ni genes, and σ = (1, 2, ..., n) be a linear, uni-chromosomal genome that is assembled completely. Let C = {ck = n + k + 1: 0 ≤ k ≤ 2m - 1} ∪ {-ck = -n - k - 1: 0 ≤ k ≤ 2m - 1} be a set of 4m distinct integers, called caps, which are different from those genes in E. Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M15','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M15">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M16','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M16">View MathML</a>. For the purpose of designing our algorithm later, we add four caps <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M17','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M17">View MathML</a> and -c2(i-1)+1 to the ends of each contig πi, where 1 ≤ i m, leading to a capping contig <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M18','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M18">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M19','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M19">View MathML</a>, for <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M20','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M20">View MathML</a> for 2 ≤ j ni + 1, and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M21','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M21">View MathML</a>. Moreover, we insert m-1 dummy contigs without any genes (i.e., null contigs) σ2, σ3, ..., σm into σ, where the original contig in σ becomes σ1 now, and add four caps c2(i-1), c2(i-1)+1, -c2(i-1) and -c2(i-1)+1 to the ends of each contig σi to obtain a capping contig <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M22','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M22">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M23','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M23">View MathML</a> for <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M24','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M24">View MathML</a> for 2 ≤ j ni + 1, and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M25','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M25">View MathML</a>. Notice that the purpose of adding caps to the ends of the contigs is to serve as delimiters when we use permutation groups to model translocations of multiple contigs later. We denote the capping π and σ by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M26','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M26">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M27','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M27">View MathML</a>, respectively. To distinguish the four caps in a capping contig, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M28','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M28">View MathML</a>, we call the left caps <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M29','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M29">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M30','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M30">View MathML</a> as 5' caps and the right caps <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M31','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M31">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M32','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M32">View MathML</a> as 3' caps.

Given an integer x in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M33','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M33">View MathML</a> that is contained in a contig α = α+α- with k genes (or markers), we define a function char(x, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M34','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M34">View MathML</a>) below to represent the character of x in the capping contig <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M35','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M35">View MathML</a> that is obtained by adding four caps from C to the ends of α.

<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M36','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M36">View MathML</a>

In addition, we define 5cap<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M37','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M37">View MathML</a> to be the 5' cap in the strand of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M38','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M38">View MathML</a> that contains x. For convenience, we extend the definitions above from the capping contig to the capping genome. For instance, given a capping genome, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M39','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M39">View MathML</a>, char<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M40','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M40">View MathML</a> denotes the character of x in a capping contig <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M41','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M41">View MathML</a> of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M42','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M42">View MathML</a> that contains x, and 5cap<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M43','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M43">View MathML</a> denotes the 5' cap of the strand in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M44','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M44">View MathML</a> containing x, that is, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M45','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M45">View MathML</a> and 5cap<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M46','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M46">View MathML</a> = 5cap<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M47','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M47">View MathML</a>. In our previous work [17], we have shown the following lemma.

Lemma 4 ([17]) For a capping genome <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M48','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M48">View MathML</a>and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M49','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M49">View MathML</a>, if char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M50','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M50">View MathML</a>(respectively, T), then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M51','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M51">View MathML</a>is T (respectively, C3) and if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M52','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M52">View MathML</a> (respectively, N3 and C5), then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M53','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M53">View MathML</a>is O (respectively, N3 and C5).

Basically, we design our algorithm to solve the one-sided block ordering problem by dealing with the contigs of the capping genome <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M54','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M54">View MathML</a> as if they were linear chromosomes. Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M55','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M55">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M56','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M56">View MathML</a> be two 2-cycles with character pairs of (non-C5, non-C5) and (C5, C5), respectively, and let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M57','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M57">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M58','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M58">View MathML</a>. Notice that the character pair of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M59','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M59">View MathML</a> is (C5, C5) by Lemma 4. In our previous study [17], we have proven that performing a translocation <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M60','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M60">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M61','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M61">View MathML</a> can be mimicked by the composition of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M62','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M62">View MathML</a>, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M63','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M63">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M64','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M64">View MathML</a> (i.e., x and u, as well as y and v, lie in the same contig stand in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M65','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M65">View MathML</a>, but x and y appear in the different contigs in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M66','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M66">View MathML</a>). Moreover, if the character pair of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M67','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M67">View MathML</a> is in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M68','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M68">View MathML</a>, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M69','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M69">View MathML</a> acts on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M70','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M70">View MathML</a> by exchanging the two caps of some contig in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M71','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M71">View MathML</a> with the two caps of another contig and, as a result, leaves the original genome <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M72','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M72">View MathML</a> unaffected. Notice that the character pair of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M73','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M73">View MathML</a> also belongs to CEpair and that of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M74','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M74">View MathML</a> is (C5, C5) according to Lemma 4. Furthermore, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M75','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M75">View MathML</a> is a 2-cycle of character pair (T, C3) (respectively, (O, N3)), then performing τ on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M76','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M76">View MathML</a> becomes a fusion (respectively, fission) to act on π. Hence, we have the following lemma, where it can be verified that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M77','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M77">View MathML</a> and and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M78','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M78">View MathML</a>.

Lemma 5 ([17]) Let c1 = (x, y) denote a 2-cycle with char<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M79','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M79">View MathML</a>and char<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M80','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M80">View MathML</a>, and let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M81','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M81">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M82','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M82">View MathML</a>and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M83','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M83">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M84','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M84">View MathML</a>. If <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M85','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M85">View MathML</a>and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M86','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M86">View MathML</a>, then the effect of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M87','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M87">View MathML</a>is a fusion that acts on π by concatenating the contig containing y with the contig containing x.

It is not hard to see that the permutation induced by an ordering of the uncapped genome π can be considered as the result of applying consecutive m - 1 fusions to the m contigs in π. Based on the above discussion, it can be realized that our purpose is to find m - 1 translocations to act on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M88','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M88">View MathML</a> such that their rearrangement effects on the original π are m - 1 fusions and the genome rearrangement distance measured by weighted reversals and block-interchanges between the resulting assembly of the contigs in π and σ is minimum. In Algorithm 1 below, we describe our algorithm for efficiently solving the one-sided block ordering problem, where reversals are weighted one and block-interchanges are weighted two. Basically, we try to derive m - 1 fusions from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M89','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M89">View MathML</a> to act on π in Algorithm 1.

Algorithm 1

Input: A partially assembled, linear, uni-chromosomal genome π = π1π2 ... πm and a completely assembled, linear, uni-chromosomal genome σ = σ1.

Output: An optimally assembled genome of π, denoted by assembly(π), and the weighted reversal and block-interchange distance Δ(π, σ) between assembly(π) and σ.

1: Add m - 1 null contigs <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M90','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M90">View MathML</a> into σ such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M91','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M91">View MathML</a>.

Obtain <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M92','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M92">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M93','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M93">View MathML</a> by capping π and σ.

2: Compute <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M94','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M94">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M95','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M95">View MathML</a>.

3: /* To perform cap exchanges */

Let i = 0.

while there are x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M96','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M96">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M97','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M97">View MathML</a> ∈ CEpair do

Let i = i + 1.

Find x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M98','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M98">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M99','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M99">View MathML</a> ∈ CEpair.

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M100','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M100">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M101','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M101">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M102','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M102">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M103','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M103">View MathML</a>.

Calculate new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M104','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M104">View MathML</a>, new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M105','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M105">View MathML</a> and new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M106','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M106">View MathML</a>.

end while

4: /* To find consecutive m - 1 fusions */

Let i = 0.

while there are two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M107','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M107">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M108','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M108">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M109','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M109">View MathML</a>do

Let i = i + 1.

Find two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M110','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M110">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M111','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M111">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M112','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M112">View MathML</a>.

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M113','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M113">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M114','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M114">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M115','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M115">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M116','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M116">View MathML</a>.

Calculate new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M117','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M117">View MathML</a>, new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M118','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M118">View MathML</a> and new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M119','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M119">View MathML</a>.

end while

while i < m - 1 do

Let i = i + 1.

Find two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M120','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M120">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M121','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M121">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M122','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M122">View MathML</a>.

Find the strand of a different contig in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M123','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M123">View MathML</a> with at least a non-cap integer and its 3' cap, say z, different from y.

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M124','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M124">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M125','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M125">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M126','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M126">View MathML</a>.

Calculate new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M127','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M127">View MathML</a>, new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M128','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M128">View MathML</a> and new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M129','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M129">View MathML</a>.

end while

Let assembly(π) denote the assembled contig in current <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M130','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M130">View MathML</a> whose caps are removed.

5: /* To find reversals */

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M131','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M131">View MathML</a>.

while there are two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M132','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M132">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M133','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M133">View MathML</a>do

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M134','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M134">View MathML</a>.

Find two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M135','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M135">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M136','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M136">View MathML</a>.

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M137','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M137">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M138','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M138">View MathML</a>.

Calculate new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M139','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M139">View MathML</a>, new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M140','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M140">View MathML</a> and new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M141','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M141">View MathML</a>.

end while

6: /* To find block-interchanges */

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M142','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M142">View MathML</a>.

while <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M143','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M143">View MathML</a> do

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M144','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M144">View MathML</a>.

Choose any two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M145','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M145">View MathML</a>.

Find two adjacent integers u and v in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M146','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M146">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M147','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M147">View MathML</a>.

Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M148','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M148">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M149','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M149">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M150','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M150">View MathML</a>.

Calculate new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M151','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M151">View MathML</a>, new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M152','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M152">View MathML</a> and new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M153','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M153">View MathML</a>.

end while

7: Output assembly(π) and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M154','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M154">View MathML</a>.

Below, we consider an example to clarify Algorithm 1. Let π = {[1, 4], [-5, 6], [3, 2]} and σ = {[1, 2, ..., 6]} be the input linear, uni-chromosomal genomes of Algorithm 1. In our algorithm, these two genomes will be further represented by π = (1, 4)(-4, -1)(-5, 6)(-6, 5)(3, 2)(-2, -3) and σ = (1, 2, ..., 6)(-6, -5, ..., -1). First of all, we add two null contigs into σ and cap all the contigs in π and σ in a way such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M155','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M155">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M156','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M156">View MathML</a>. Next, we compute <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M157','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M157">View MathML</a>. It can be found that 10 and 8 are in a cycle of current <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M158','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M158">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M159','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M159">View MathML</a>. We perform a cap exchange on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M160','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M160">View MathML</a> by multiplying <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M161','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M161">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M162','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M162">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M163','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M163">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M164','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M164">View MathML</a><a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M165','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M165">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M166','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M166">View MathML</a>, resulting in new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M167','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M167">View MathML</a>. In addition, we have new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M168','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M168">View MathML</a>. It can be observed that -5 and 10 are in the same cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M169','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M169">View MathML</a> with satisfying that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M170','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M170">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M171','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M171">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M172','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M172">View MathML</a> (since -5 and 10 are in different contigs in current <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M173','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M173">View MathML</a>). Therefore, we perform a fusion on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M174','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M174">View MathML</a>, by multiplying <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M175','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M175">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M176','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M176">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M177','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M177">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M178','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M178">View MathML</a><a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M179','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M179">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M180','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M180">View MathML</a>, to obtain new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M181','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M181">View MathML</a>. Moreover, we have new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M182','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M182">View MathML</a>, in which 3 and 12 form a (T, C3) pair but they belong to the same contig strand in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M183','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M183">View MathML</a>, that is, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M184','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M184">View MathML</a>. In this case, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M185','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M185">View MathML</a> has a contig strand (7, 1, 4, -5, 6, 8) whose 3' cap is 8 that is different from 12. Hence, we multiply <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M186','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M186">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M187','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M187">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M188','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M188">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M189','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M189">View MathML</a> to obtain new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M190','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M190">View MathML</a> and new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M191','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M191">View MathML</a>. Notice that -4 and 6 are adjacent in a cycle of current <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M192','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M192">View MathML</a> and they are in different strands in current <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M193','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M193">View MathML</a> since <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M194','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M194">View MathML</a>. Thus, we can find a reversal, which is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M195','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M195">View MathML</a>, from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M196','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M196">View MathML</a> to transform <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M197','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M197">View MathML</a> into (7, 1, 4, 5, 6, 3, 2, 8) (-8, -2, -3, -6, -5, -4, -1, -7) (9, 10) (-10, -9) (11, 12) (-12, -11). After that, we have new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M198','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M198">View MathML</a>, which can serve as a block-interchange to further transform <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M199','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M199">View MathML</a> into (7, 1, 2, 3, 4, 5, 6, 8)(-8, -6, -5, -4, -3, -2, -1, -7) (9, 10) (-10, -9) (11, 12) (-12, -11), which is equal to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M200','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M200">View MathML</a>. As a result, we obtain an ordering ([1,4], [-5, 6], [3,2]) of π whose induced permutation [1,4] ⊙ [-5, 6] ⊙ [3,2] = (1, 4, -5, 6, 3, 2) can be transformed into the permutation (1, 2, ..., 6) of σ using a reversal and a block-interchange (i.e., Δ(π, σ) = 3).

Actually, after running the step 3 of Algorithm 1, it can be verified according to the capping of π and σ and Lemma 3 that for any two adjacent elements x and y in a cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M201','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M201">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M202','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M202">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M203','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M203">View MathML</a>, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M204','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M204">View MathML</a>, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M205','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M205">View MathML</a>. Moreover, the operation <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M206','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M206">View MathML</a> used in the step 4 of Algorithm 1 acts on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M207','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M207">View MathML</a> still as a fusion of π, as explained as follows. Notice that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M208','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M208">View MathML</a>, meaning that x and y are in the same cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M209','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M209">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M210','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M210">View MathML</a>. It can be verified that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M211','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M211">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M212','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M212">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M213','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M213">View MathML</a>. Since <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M214','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M214">View MathML</a>, we have <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M215','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M215">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M216','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M216">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M217','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M217">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M218','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M218">View MathML</a>. It is not hard to see that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M219','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M219">View MathML</a>. Thus, τi can be rewritten as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M220','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M220">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M221','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M221">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M222','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M222">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M223','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M223">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M224','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M224">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M225','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M225">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M226','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M226">View MathML</a>. It can be verified that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M227','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M227">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M228','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M228">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M229','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M229">View MathML</a>. By Lemma 5, as well as the previous discussion, it can be realized that a1 acts on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M230','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M230">View MathML</a> as a fusion of π and α2 continues to act on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M231','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M231">View MathML</a> as a cap exchange. As a result, the rearrangement effect of acting τi on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M232','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M232">View MathML</a> is still equivalent to a fusion acting on π. The above discussion indicates that a fusion to π can be mimicked by a translocation τ, which acts on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M233','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M233">View MathML</a> as a fusion of π, followed by zero or more translocations acting on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M234','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M234">View MathML</a> as cap exchanges.

In the following, we prove the correctness of Algorithm 1. Initially, it is not hard to see that all the 5' caps are fixed in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M235','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M235">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M236','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M236">View MathML</a> for all <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M237','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M237">View MathML</a>. For any element <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M238','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M238">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M239','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M239">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M240','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M240">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M241','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M241">View MathML</a>, that is, the 5' cap of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M242','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M242">View MathML</a> is not equal to that of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M243','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M243">View MathML</a>, then the character of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M244','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M244">View MathML</a> in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M245','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M245">View MathML</a> must be C3. If any cycle in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M246','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M246">View MathML</a> contains any two elements x and y with the same character (either T or C3) in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M247','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M247">View MathML</a>, then we can extract two 2-cycles c1 = (x, y) and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M248','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M248">View MathML</a> from two mate cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M249','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M249">View MathML</a> and multiply <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M250','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M250">View MathML</a> with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M251','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M251">View MathML</a> to exchange the caps of the contigs containing x and y, respectively, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M252','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M252">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M253','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M253">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M254','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M254">View MathML</a>. This is the job to be performed in the step 3 in Algorithm 1. Moreover, after finishing the cap exchanges in the step 3, each cycle in the remaining <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M255','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M255">View MathML</a> has at most one element with T character and at most one element with C3 character. In other words, after running the step 3, there are at least 2(m-1) cycles in the resulting <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M256','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M256">View MathML</a> such that each such a cycle contains exactly one element, say x, with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M257','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M257">View MathML</a> and exactly one element, say y, with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M258','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M258">View MathML</a>, and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M259','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M259">View MathML</a>. In this case, we can further derive 2(m - 1) 2-cycles from these cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M260','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M260">View MathML</a> with each 2-cycle having a character pair of (T, C3). Intriguingly, we shall show below that these 2(m-1) 2-cycles with character pair (T, C3), denoted by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M261','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M261">View MathML</a>, can be used to obtain an optimal ordering of π such that the weighted reversal and block-interchange distance between the permutation induced by this ordering of π and σ is minimum. In fact, fk and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M262','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M262">View MathML</a>, where 1 ≤ k m - 1, are derived from two mate cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M263','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M263">View MathML</a> and hence we call them as mate 2-cycles below. Moreover, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M264','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M264">View MathML</a>, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M265','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M265">View MathML</a>.

For 1 ≤ k m - 1, we simply let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M266','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M266">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M267','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M267">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M268','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M268">View MathML</a>. Then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M269','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M269">View MathML</a>. As mentioned previously, the permutation induced by an ordering of π can be mimicked by performing m - 1 consecutive fusions on π that has m contigs initially. According to Lemma 5 and our previous discussion, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M270','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M270">View MathML</a>, where 1 ≤ k m - 1, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M271','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M271">View MathML</a> can be applied to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M272','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M272">View MathML</a> to function as a fusion of two contigs in π, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M273','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M273">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M274','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M274">View MathML</a>. Notice that gk and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M275','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M275">View MathML</a> are mate 2-cycles. However, not all <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M276','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M276">View MathML</a> cannot divide <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M277','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M277">View MathML</a>. Suppose that only the first λ 2-cycles <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M278','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M278">View MathML</a> cannot divide <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M279','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M279">View MathML</a>, where 0 ≤ λ ≤ m - 1, that is, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M280','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M280">View MathML</a> for 1 ≤ k λ, but <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M281','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M281">View MathML</a> for λ + 1 ≤ k m - 1. In this situation, we shall show below that we still can use <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M282','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M282">View MathML</a>, as well as their mate 2-cycles, to derive an optimal ordering of π, as we did in the step 4 in Algorithm 1.

Recall that the 5' caps are all fixed in the beginning <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M283','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M283">View MathML</a> (before the step 3 in Algorithm 1). As mentioned before, for any translocation used to perform on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M284','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M284">View MathML</a>, it can be expressed as four 2-cycles, two with (non-C5, non-C5) character pair and the others with (C5, C5). It can be verified that during the process of the step 3, no two elements x and y with char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M285','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M285">View MathML</a> = C5 but char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M286','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M286">View MathML</a> can be found in a cycle of the <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M287','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M287">View MathML</a>[17], that is, C5 and non-C5 elements are not mixed together in the same cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M288','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M288">View MathML</a>. Actually, this property still continues to be asserted when we later perform any translocation on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M289','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M289">View MathML</a> to function as a fusion of π. Let us now pay attention on those cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M290','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M290">View MathML</a> with only non-C5 elements and temporarily denote the composition of these cycles by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M291','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M291">View MathML</a>. If we still can find any two elements x and y from a cycle in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M292','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M292">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M293','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M293">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M294','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M294">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M295','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M295">View MathML</a> is an exchange of caps when applying it to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M296','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M296">View MathML</a>, then we apply this cap exchange to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M297','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M297">View MathML</a> until we cannot find any one from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M298','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M298">View MathML</a>. Finally, we denote such a <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M299','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M299">View MathML</a> without any cap exchange by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M300','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M300">View MathML</a>. Basically, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M301','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M301">View MathML</a> can be considered as a permutation of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M302','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M302">View MathML</a> and hence its norm <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M303','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M303">View MathML</a> is equal to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M304','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M304">View MathML</a> according to the formula we mentioned before.

Lemma 6 Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M305','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M305">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M306','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M306">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M307','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M307">View MathML</a>be a fusion to act on π, where char<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M308','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M308">View MathML</a>and char<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M309','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M309">View MathML</a>. Then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M310','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M310">View MathML</a>.

Proof. For simplicity, it is assumed that we cannot find any cap exchange from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M311','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M311">View MathML</a> to perform on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M312','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M312">View MathML</a>. We then consider the following two cases.

Case 1: Suppose that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M313','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M313">View MathML</a>, that is, both x and y lie in the same cycle, say α, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M314','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M314">View MathML</a>. Without loss of generality, let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M315','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M315">View MathML</a>. Then α can be expressed as α = α1α2(x, y), where α1 = (a1, ..., ai}) and α2 = (ai+1, ..., aj). Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M316','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M316">View MathML</a> denote the mate cycle of α in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M317','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M317">View MathML</a>, that is, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M318','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M318">View MathML</a>. Then it can be expressed as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M319','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M319">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M320','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M320">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M321','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M321">View MathML</a>. Clearly, after applying τ to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M322','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M322">View MathML</a>, the cycle α becomes two disjoint cycles α1 and α2 in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M323','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M323">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M324','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M324">View MathML</a> becomes two disjoint <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M325','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M325">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M326','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M326">View MathML</a>. It means that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M327','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M327">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M328','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M328">View MathML</a>.

Case 2: Suppose that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M329','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M329">View MathML</a>, that is, x and y lie in two different cycles, say α1 and α2, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M330','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M330">View MathML</a>. In this case, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M331','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M331">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M332','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M332">View MathML</a> also are in two different cycles, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M333','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M333">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M334','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M334">View MathML</a>, that are the mate cycles of α1 and α2, respectively, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M335','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M335">View MathML</a>. By Lemma 4, char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M336','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M336">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M337','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M337">View MathML</a>. Then performing τ on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M338','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M338">View MathML</a> leads α1 and α2 to be joined together into a cycle, say α, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M339','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M339">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M340','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M340">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M341','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M341">View MathML</a> to be joined into another cycle, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M342','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M342">View MathML</a>. If α1 and α2, as well as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M343','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M343">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M344','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M344">View MathML</a>, does not contain both T and C3 elements simultaneously, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M345','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M345">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M346','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M346">View MathML</a>. If exactly one of α1 and α2, as well as exactly one of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M347','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M347">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M348','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M348">View MathML</a>, contains both T and C3 elements simultaneously, then joining α1 and α2 will also change char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M349','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M349">View MathML</a> from T to O and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M350','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M350">View MathML</a> from C3 to N3, and joining <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M351','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M351">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M352','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M352">View MathML</a> will change char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M353','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M353">View MathML</a> from C3 to N3 and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M354','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M354">View MathML</a> from T to O. Therefore, the cycle α, as well as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M355','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M355">View MathML</a>, contains a C3 (or T) element and an N3 element. In this case, we can use these four elements, along with their corresponding 5' caps in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M356','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M356">View MathML</a>, as a cap exchange to perform on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M357','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M357">View MathML</a>, resulting in that each of the cycles α and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M358','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M358">View MathML</a> is divided into two smaller ones in new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M359','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M359">View MathML</a>. As a result, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M360','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M360">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M361','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M361">View MathML</a>. Suppose that both α1 and α2, as well as both <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M362','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M362">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M363','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M363">View MathML</a>, contain T and C3 elements at the same time. Then, after applying τ to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M364','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M364">View MathML</a>, one of the above two T elements becomes an O element in new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M365','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M365">View MathML</a>, leading to α, as well as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M366','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M366">View MathML</a>, containing only a T element, along with a C3 element and an N3 element. Next, we can use the T and N3 elements (or the C3 and N3 elements) in α and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M367','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M367">View MathML</a> and their corresponding 5' caps in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M368','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M368">View MathML</a> to exchange the caps of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M369','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M369">View MathML</a>. After that, α, as well as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M370','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M370">View MathML</a>, is divided into two cycles in the new <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M371','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M371">View MathML</a> and, consequently, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M372','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M372">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M373','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M373">View MathML</a>.

Notice that if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M374','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M374">View MathML</a>, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M375','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M375">View MathML</a>. According to Lemmas 5 and 6, any translocation τ that acts on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M376','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M376">View MathML</a> as a fusion of π decreases the norm <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M377','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M377">View MathML</a> at most by two. Hence, we call τ as a good fusion of π if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M378','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M378">View MathML</a>. By the discussion in the proof of Lemma 6, we have the following corollary.

Corollary 1 Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M379','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M379">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M380','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M380">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M381','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M381">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M382','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M382">View MathML</a>be a fusion to act on π, where char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M383','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M383">View MathML</a>and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M384','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M384">View MathML</a>. If <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M385','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M385">View MathML</a>, then τ is a good fusion to perform on π.

According to Corollary 1, it can be realized that fk, as well as its mate 2-cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M386','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M386">View MathML</a>, can derive a good fusion to act on π, where 1 ≤ k λ. If λ = m - 1, then performing the m - 1 fusions on π, as we did in Algorithm 1, corresponds to an optimal ordering of π such that the weighted reversal and block-interchange distance between the assembly of π and σ is minimum. For simplifying our discussion below, we assume that the λ good fusions derived from f1, f2, ..., fλ and their mate 2-cycles can assemble λ + 1 contigs of π into several super-contigs. If λ <m - 1, then we show below that the fusions of m - 1 contigs in π performed by our algorithm utilizing f1, f2, ..., fm-1 is still optimal.

Lemma 7 Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M387','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M387">View MathML</a>be any sequence of m - 1 translocations that act on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M388','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M388">View MathML</a>as fusions to assemble m - 1 contigs in π. Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M389','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M389">View MathML</a>be the genome obtained by performing τk and zero or more following cap exchanges on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M390','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M390">View MathML</a>such that no more cap exchange can be derived from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M391','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M391">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M392','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M392">View MathML</a>and 1 ≤ k m - 1. Then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M393','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M393">View MathML</a>.

Proof. For simplicity, we assume that in the beginning, no cap exchange can be derived from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M394','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M394">View MathML</a> to act on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M395','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M395">View MathML</a>. Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M396','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M396">View MathML</a> denote the genome obtained from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M397','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M397">View MathML</a> by removing its caps, where 1 ≤ k m - 1. By Lemma 6, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M398','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M398">View MathML</a> and by Corollary 1, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M399','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M399">View MathML</a> if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M400','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M400">View MathML</a> is a good fusion to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M401','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M401">View MathML</a>. In fact, there are at most λ translocations from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M402','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M402">View MathML</a> that are good fusions. The reason is as follows. As mentioned before, we can obtain 2λ 2-cycles <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M403','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M403">View MathML</a> from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M404','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M404">View MathML</a> that can derive λ good fusions to act on π, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M405','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M405">View MathML</a>, as well as 2(m - λ - 1) other 2-cycles <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M406','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M406">View MathML</a> that cannot derive any good fusions to act on π since their T and C3 elements lie in the same contig strand in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M407','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M407">View MathML</a>. If we can further extract two 2-cycles, say f and its mate 2-cycle f', from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M408','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M408">View MathML</a> that can derive a good fusion, say τ, to act on π, then the C3 elements in both f and f' must locate at a contig whose T elements are in some fk and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M409','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M409">View MathML</a>, respectively, where 1 ≤ k ≤ λ. This implies that the good fusion τ cannot act on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M410','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M410">View MathML</a> together with <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M411','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M411">View MathML</a> at the same time, since they will assemble a circular contig that is not allowed. Now, we suppose that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M412','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M412">View MathML</a> are the fusions obtained by the step 4 of Algorithm 1. Clearly, for <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M413','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M413">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M414','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M414">View MathML</a> since τk is a good fusion to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M415','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M415">View MathML</a>. Moreover, for <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M416','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M416">View MathML</a>, due to the following reason. According to Algorithm 1, we have <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M417','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M417">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M418','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M418">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M419','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M419">View MathML</a>, which actually equals to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M420','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M420">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M421','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M421">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M422','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M422">View MathML</a>. Moreover, we have <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M423','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M423">View MathML</a>, in which the composition of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M424','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M424">View MathML</a> equals to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M425','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M425">View MathML</a> and the composition of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M426','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M426">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M427','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M427">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M428','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M428">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M429','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M429">View MathML</a> equals to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M430','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M430">View MathML</a>. Recall that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M431','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M431">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M432','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M432">View MathML</a>, both of which are extracted from two mate cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M433','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M433">View MathML</a>. According to the above discussion, both yk and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M434','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M434">View MathML</a> will be fixed in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M435','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M435">View MathML</a>, thus increasing the number of cycles by two. However, the 2-cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M436','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M436">View MathML</a> will further join other two cycles respectively containing xk and zk together into one cycle and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M437','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M437">View MathML</a> will join another two cycles respectively containing <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M438','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M438">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M439','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M439">View MathML</a> together into one cycle, thus decreasing the number of cycles by two. As a result, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M440','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M440">View MathML</a>. Therefore, we have <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M441','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M441">View MathML</a> for the (m -1) fusions obtained by the step 4 of Algorithm 1. In fact, to let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M442','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M442">View MathML</a> happen, there must be a translocation τi that acts on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M443','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M443">View MathML</a> as a fusion of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M444','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M444">View MathML</a> satisfying either (1) <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M445','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M445">View MathML</a>, the number of good fusions newly created by τi and its following cap exchanges minus that of good fusions currently destroyed by τi and the following cap exchanges is greater than or equal to one, and the total available good fusions can assemble more contigs than before, or (2) <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M446','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M446">View MathML</a>, the number of good fusions created by τi and its following cap exchanges minus that of the currently destroyed good fusions is greater than or equal to two, and the total good fusions can assemble more contigs than before. However, we show below that no such a translocation τi exits. Let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M447','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M447">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M448','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M448">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M449','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M449">View MathML</a> be a fusion (but not a good one) to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M450','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M450">View MathML</a>, where char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M451','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M451">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M452','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M452">View MathML</a>. According to Corollary 1, we have <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M453','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M453">View MathML</a>, that is, x and y are in different cycles of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M454','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M454">View MathML</a>. Moreover, char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M455','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M455">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M456','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M456">View MathML</a> after applying τi to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M457','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M457">View MathML</a>. Below, we consider two cases.

Case 1: Suppose that there is a 2-cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M458','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M458">View MathML</a> such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M459','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M459">View MathML</a>, where 1 <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M460','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M460">View MathML</a>, char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M461','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M461">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M462','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M462">View MathML</a>. For simplifying our discussion, we assume that fj is disjoint from the other cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M463','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M463">View MathML</a> and y is in the cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M464','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M464">View MathML</a> of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M465','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M465">View MathML</a>. Then in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M466','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M466">View MathML</a>, the cycles fj and α are joined into a cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M467','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M467">View MathML</a>, which can be expressed as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M468','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M468">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M469','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M469">View MathML</a>, char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M470','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M470">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M471','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M471">View MathML</a>. According to Lemma 3, there is a cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M472','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M472">View MathML</a>. that is the mate cycle of β in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M473','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M473">View MathML</a>. In other words, we can extract c1 = (y, yj) from β and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M474','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M474">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M475','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M475">View MathML</a> from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M476','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M476">View MathML</a>, and then apply <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M477','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M477">View MathML</a> to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M478','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M478">View MathML</a> as a cap exchange, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M479','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M479">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M480','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M480">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M481','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M481">View MathML</a>, since the character pair (C3, N3) of (yj, y) belongs to CEpair. After that, yj, as well as <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M482','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M482">View MathML</a>, will be fixed in the resulting <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M483','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M483">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M484','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M484">View MathML</a> will become C3. As a result, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M485','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M485">View MathML</a> and hence <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M486','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M486">View MathML</a>. According to the above discussion, if j ≤ λ, that is, fj cannot be used to derive a good fusion to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M487','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M487">View MathML</a>, then acting <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M488','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M488">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M489','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M489">View MathML</a> still serves as a fusion of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M487','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M487">View MathML</a> and after that, it can be verified that no existing good fusion is destroyed and no new good fusion is created. If j ≤ λ, that is, fj can be used to derive a good fusion to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M487','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M487">View MathML</a>, then this good fusion will be destroyed when we perform <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M488','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M488">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M489','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M489">View MathML</a>. Suppose that char<a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M490','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M490">View MathML</a>. Then after further performing the cap exchange <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M599','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M599">View MathML</a>, we still can extract a 2-cycle (ah-1, y) from γ with character pair of (T, C3) in the resulting <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495">View MathML</a>. Clearly, if (ah-1, y) = fk with k < λ, that is, fk cannot derive a good fusion to ωi-1 (ah-1 and y are in the same cycle of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M489','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M489">View MathML</a>), then after performing the cap exchange <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M599','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M599">View MathML</a>, it can be used to derive a good fusion to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495">View MathML</a>, since ah-1 and y will be separated by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497">View MathML</a> into two different cycles in the resulting <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495">View MathML</a>. If k ≤ λ, that is, fk can derive a good fusion to ωi-1, then after performing the cap exchange <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M599','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M599">View MathML</a>, fk can or cannot derive a good fusion to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M495">View MathML</a>. Based on the above discussion, the number of good fusions newly created by τi and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M496','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M496">View MathML</a> minus that of good fusions currently destroyed by τi and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M497">View MathML</a> must be less than or equal to zero.

Case 2: Suppose that there is no <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M498','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M498">View MathML</a> such that xj = x, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M499','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M499">View MathML</a>, char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M500','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M500">View MathML</a> and char <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M501','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M501">View MathML</a>. Let α1 denote the cycle containing x and α2 denote the cycle containing y in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M502','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M502">View MathML</a>. Also let <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M503','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M503">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M504','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M504">View MathML</a> be the mate cycles of α1 and α2, respectively, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M505','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M505">View MathML</a>. Note that after applying τi to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M506','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M506">View MathML</a>, the cycles α1 and α2 will be merged into a single cycle, say α, in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M507','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M507">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M508','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M508">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M509','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M509">View MathML</a> will be merged into a single cycle, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M510','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M510">View MathML</a>. Moreover, the characters of x and y in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M511','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M511">View MathML</a> will become O and N3, respectively. As discussed in the proof of Lemma 6, if both α1 and α2, as well as both <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M512','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M512">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M513','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M513">View MathML</a>, do not contain T and C3 elements simultaneously, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M514','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M514">View MathML</a>. In this case, it can be verified that no existing good fusion is destroyed by τi and no new good fusion is created by τi. In other words, the number of the increased good fusions minus that of the destroyed good fusions is zero. If at least one of α1 and α2, as well as at least one of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M515','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M515">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M516','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M516">View MathML</a>, has both T and C3 elements at the same time, then <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M517','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M517">View MathML</a> according to the discussion in the proof of Lemma 6. Now suppose that α1 has no C3 element. Then T and C3 elements in α2 can form a 2-cycle that equals to some <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M518','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M518">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M519','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M519">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M520','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M520">View MathML</a>. After applying τi to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M521','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M521">View MathML</a>, the T element x from α1 becomes an O element in α and the C3 element y from α2 becomes an N3 element in α. We can continue to extract <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M522','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M522">View MathML</a>, which is now a 2-cycle of (T, N3), from α and act <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M523','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M523">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M524','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M524">View MathML</a> as a cap exchange, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M525','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M525">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M526','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M526">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M527','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M527">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M528','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M528">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M529','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M529">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M530','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M530">View MathML</a>. Clearly, no new good fusion is created in this case and one existing good fusion derived by fk will be destroyed if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M531','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M531">View MathML</a>. Therefore, the number of the increased good fusions minus that of the destroyed good fusions is less than or equal to zero. Suppose that α1 contains both T and C3 elements, where we denote the C3 element by z for convenience. Then x and z can form a 2-cycle of (T, C3) pair, which can derive a good fusion <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M532','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M532">View MathML</a> to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M533','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M533">View MathML</a> if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M534','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M534">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M535','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M535">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M536','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M536">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M537','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M537">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M538','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M538">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M539','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M539">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M540','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M540">View MathML</a>. If <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M541','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M541">View MathML</a>, then, as mentioned previously, τ cannot work together with λ other good fusions derived by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M542','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M542">View MathML</a> at the same time, since they will assemble a circular contig that is not allowed. For the case in which α2 contains no T element, it is not hard to see that no new good fusion will be created and no existing good fusion will be destroyed when performing <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M543','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M543">View MathML</a> and its following cap exchange on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M544','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M544">View MathML</a>, resulting in that the number of the created good fusions minus that of the destroyed good fusions is zero. We now assume that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M545','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M545">View MathML</a> contains a T element, say w, and a C3 element y. Then w and y are adjacent in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M546','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M546">View MathML</a> and (w, y) equals to some fk, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M547','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M547">View MathML</a>. After applying <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M548','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M548">View MathML</a> to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M549','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M549">View MathML</a> has a C3 element z, a T element w and an N3 element y. Then a 2-cycle (w, y) can be extracted from α such that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M550','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M550">View MathML</a> can further perform on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M551','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M551">View MathML</a> as a cap exchange, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M552','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M552">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M553','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M553">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M554','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M554">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M555','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M555">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M556','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M556">View MathML</a>, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M557','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M557">View MathML</a>. Hence, if <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M558','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M558">View MathML</a>, then the good fusion derived by fk will be destroyed by τi and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M559','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M559">View MathML</a>. However, the remaining α still contains a C3 element z and a T element w, which can derive a good fusion, say <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M560','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M560">View MathML</a>. Hence, the number of the increased good fusions minus that of the destroyed good fusions is zero. On the other hand, if k > λ, then no exiting good fusion is destroyed by τi and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M561','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M561">View MathML</a>. In this case, the number of the increased good fusions minus that of the destroyed good fusions is equal to one. However, it can be verified that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M562','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M562">View MathML</a> cannot work with λ other good fusions derived by <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M563','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M563">View MathML</a>, because they will produce a circular contig that is not allowed. In other words, no more contigs can be assembled after performing <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M564','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M564">View MathML</a> and <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M565','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M565">View MathML</a> on <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M566','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M566">View MathML</a>.

According to the above discussion, we can conclude that <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M567','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M567">View MathML</a>.    □

Based on Lemma 7, as well as the discussion in its proof, the m - 1 fusions derived by Algorithm 1 correspond to an optimal ordering of π with an induced permutation assembly (π) such that the weighted rearrangement distance <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M568','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M568">View MathML</a> between assembly (π) and σ is minimized. The obtained rearrangement distance <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M569','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M569">View MathML</a> is calculated based on the algorithm in our previous study [17], and is equal to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M570','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M570">View MathML</a>, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M571','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M571">View MathML</a> is the genome obtained by performing the cap exchanges and m - 1 fusions on the initial capping of π, as done in the steps 3 and 4 in Algorithm 1, respectively. The total time complexity of Algorithm 1 is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M572','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M572">View MathML</a>, where δ is the number of reversals and block-interchanges used to transform assembly (π) into σ. The reason is as follows. Since <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M573','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M573">View MathML</a>, the cost of the step 1 for capping the input genomes is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M574','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M574">View MathML</a>. The computation of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M575','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M575">View MathML</a> in the step 2 still can be done in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M576','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M576">View MathML</a> time. Recall that after running the step 3, each cycle in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M577','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M577">View MathML</a> has at most a <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M578','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M578">View MathML</a> element and at most a C3 element. Totally, there are <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M579','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M579">View MathML</a> elements and 2m C3 elements in the cycles of <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M580','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M580">View MathML</a>. Moreover, deriving two 2-cycles to serve as a cap exchange from two long mate cycles in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M581','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M581">View MathML</a> will divide these two long cycles into four smaller cycles. Hence, there are <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M582','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M582">View MathML</a> cap exchanges to be performed in the step 3, which totally cost <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M583','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M583">View MathML</a> time since each cap exchange needs only constant time. The step 4 assembles m contigs by utilizing 2(m - 1) 2-cycle <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M584','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M584">View MathML</a>, which can be derived in advance from <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M585','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M585">View MathML</a> in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M586','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M586">View MathML</a> time. Since each fusion requires only constant time, the cost of the step 4 is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M587','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M587">View MathML</a>, which is equal to <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M588','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M588">View MathML</a>. As to the steps 5 and 6, they can be done in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M589','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M589">View MathML</a> time in total, since there are totally δ iterations to find the reversals and block-interchanges and the time complexity of each iteration is dominated by the cost of finding a reversal or block-interchange that is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M590','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M590">View MathML</a> time. Notice that although Algorithm 1 we described above is dedicated to linear, uni-chromosomal genomes, it can still be applied to circular, uni-chromosomal genomes, or to multi-chromosomal genomes with linear or circular chromosomes in a way of chromosome by chromosome.

Theorem 1 Given a partially assembled genome π and a completely assembled genome σ, the one-sided block ordering problem can be solved in O(δn) time and the weighted rearrangement distance between the permutation assembly(π) induced by the optimal ordering of π and σ is <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M591','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M591">View MathML</a>that can be computed in O(n) time, where <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M592','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M592">View MathML</a>is the capping genome of π with the cap exchanges and m - 1 fusions being done, <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M593','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M593">View MathML</a>is the capping genome of σ, n is the number of genes or markers, and δ is the number of reversals and block-interchanges used to transform assembly(π) into σ.

As mentioned in the introduction, any algorithm to solve the one-sided block ordering problem can be used to assemble (i.e., order and orient) the contigs in a draft genome based on a reference genome, if we denote this draft genome as π and use the reference genome as σ. For this application, our Algorithm 1 can finish its job just in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M594','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M594">View MathML</a> time, because it does not need to do the steps 5 and 6 in this situation.

Experimental results

We have implemented Algorithm 1 as mentioned in the previous section into a program and also compared its accuracy performance to SIS on assembling the contigs of partially assembled genomes using some simulated datasets of linear, uni-chromosomal genomes. For this purpose, we compared the permutation induced by an assembly algorithm for a partially assembled genome with its actual permutation by counting the number of breakpoints between them, where each breakpoint corresponds to an error of incorrectly joining two contigs (i.e., a mis-join error) caused by the assembly algorithm. This breakpoint number is then normalized by the number of contigs minus ρ to represent a fraction of incorrect contig joins, where ρ = 1 if the chromosome is linear; otherwise, ρ = 0. Each of partially assembled genomes with single linear chromosome in our simulated datasets was prepared and tested as follows. First, we generated the reference genome σ = (1, 2, ..., n) with a linear chromosome of n genes, where n varies from 50 to 1000 with in the step of 50, and performed δ random rearrangement events (reversals and/or transpositions) on s to obtain a permutation of a linear, uni-chromosomal genome π', where δ varies from zero to 100 in the step of 1. Among the δ rearrangement events in our simulations, we used four different occurrence ratios to randomly generate reversals and transpositions: (1) 1:0, (2) 2:1, (3) 1:1 and (4) 0:1. Next, the genome <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M595','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M595">View MathML</a> is randomly fragmented into m contigs of various sizes to simulate the partially assembled genome π, where m varies from 50 to 500 with step 50. Finally, for each choice of n, m, δ and reversal/transposition ratio, we repeated the experiments 10 times and compared our program with SIS using their averaged normalized mis-join errors. As shown in Figure 1, the averaged normalized contig mis-join errors of our program are lower than those of SIS for all simulated datasets when the number of the involved reversals and transpositions is increased. In particular, if there are more transpositions involved in the rearrangement events, then the gap of accuracy performance between our program and SIS is increasing. The main reason may be due to the fact that our program can deal with both reversals and block-interchanges (including transpositions as a special case), while SIS considers only reversals without taking into account transpositions.

thumbnailFigure 1. Comparison of accuracy performance between our program and SIS on simulated datasets with different ratios of the involved reversals and transpositions.

Conclusions

In this study, we introduced and studied the one-sided block/contig problem with optimizing the weighted reversal and block-interchange distance, which particularly has a useful application in genome resequencing. We finally designed an efficient algorithm to solve this problem in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M596','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M596">View MathML</a> time, where n is the number of genes or markers and d is the number of used reversals and block-interchanges. In addition, we showed that the assembly of the partially assembled genome can be done in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M597','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M597">View MathML</a> time and its weighted rearrangement distance from the completely assembled genome can be calculated in advance in <a onClick="popup('http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M598','MathML',630,470);return false;" target="_blank" href="http://www.biomedcentral.com/1471-2105/14/S5/S9/mathml/M598">View MathML</a> time. Finally, our simulation results showed that the accuracy performance of our program is better than that of the currently existing tool SIS when the number of the involved reversals and transpositions is increased. Moreover, the gap of this accuracy performance between our program and SIS is increasing, if there are more transpositions involved in the rearrangement events.

Competing interests

The authors declare that they have no competing interests.

Authors' contributions

Corresponding author CLL conceived of the study, designed and analyzed the algorithm, and drafted the manuscript. The other authors CLL and KTC participated in the development of the program, as well as in the simulated experiments and their result discussion. The authors wish it to be known that the first two authors CLL and KTC contributed equally to this work and should be considered co-first authors. All authors read and approved the final manuscript.

Acknowledgements

This work was supported in part by National Science Council of Republic of China under grant NSC100-2221-E-007-129-MY3.

Declarations

The publication costs for this article were funded by National Science Council of Republic of China under grant NSC100-2221-E-007-129-MY3.

This article has been published as part of BMC Bioinformatics Volume 14 Supplement 5, 2013: Proceedings of the Third Annual RECOMB Satellite Workshop on Massively Parallel Sequencing (RECOMB-seq 2013). The full contents of the supplement are available online at http://www.biomedcentral.com/bmcbioinformatics/supplements/14/S5.

References

  1. Shendure J, Ji HL: Next-generation DNA sequencing.

    Nature Biotechnology 2008, 26:1135-1145. PubMed Abstract | Publisher Full Text OpenURL

  2. Mardis ER: The impact of next-generation sequencing technology on genetics.

    Trends in Genetics 2008, 24:133-141. PubMed Abstract | Publisher Full Text OpenURL

  3. Metzker ML: Sequencing technologies - the next generation.

    Nature Reviews Genetics 2010, 11:31-46. PubMed Abstract | Publisher Full Text OpenURL

  4. Fertin G, Labarre A, Rusu I, Tannier E, Vialette S: Combinatorics of Genome Rearrangements. Cambridge, Massachusetts: The MIT Press; 2009. OpenURL

  5. Gaul E, Blanchette M: Ordering partially assembled genomes using gene arrangements.

    Lecture Notes in Computer Science 2006, 4205:113-128. Publisher Full Text OpenURL

  6. Bourque G, Pevzner PA: Genome-scale evolution: reconstructing gene orders in the ancestral species.

    Genome Research 2002, 12:26-36. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  7. Hannenhalli S, Pevzner PA: Transforming cabbage into turnip: polynomial algorithm for sorting signed permutations by reversals.

    Journal of the ACM 1999, 46:1-27. Publisher Full Text OpenURL

  8. Bentley DR: Whole-genome re-sequencing.

    Current Opinion in Genetics and Development 2006, 16:545-552. PubMed Abstract | Publisher Full Text OpenURL

  9. Koboldt DC, Ding L, Mardis ER, Wilson RK: Challenges of sequencing human genomes.

    Briefings in Bioinformatics 2010, 11:484-498. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  10. van Hijum SAFT, Zomer AL, Kuipers OP, Kok J: Projector 2: contig mapping for efficient gap-closure of prokaryotic genome sequence assemblies.

    Nucleic Acids Research 2005, 33:W560-W566. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  11. Richter DC, Schuster SC, Huson DH: OSLay: optimal syntenic layout of unfinished assemblies.

    Bioinformatics 2007, 23:1573-1579. PubMed Abstract | Publisher Full Text OpenURL

  12. Assefa S, Keane TM, Otto TD, Newbold C, Berriman M: ABACAS: algorithm-based automatic contiguation of assembled sequences.

    Bioinformatics 2009, 25:1968-1969. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  13. Rissman AI, Mau B, Biehl BS, Darling AE, Glasner JD, Perna NT: Reordering contigs of draft genomes using the Mauve Aligner.

    Bioinformatics 2009, 25:2071-2073. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  14. Muñoz A, Zheng CF, Zhu QA, Albert VA, Rounsley S, Sankoff D: Scaffold filling, contig fusion and comparative gene order inference.

    BMC Bioinformatics 2010, 11:304. PubMed Abstract | BioMed Central Full Text | PubMed Central Full Text OpenURL

  15. Husemann P, Stoye J: r2cat: synteny plots and comparative assembly.

    Bioinformatics 2010, 26:570-571. PubMed Abstract | Publisher Full Text | PubMed Central Full Text OpenURL

  16. Dias Z, Dias U, Setubal JC: SIS: a program to generate draft genome sequence scaffolds for prokaryotes.

    BMC Bioinformatics 2012, 13:96. PubMed Abstract | BioMed Central Full Text OpenURL

  17. Huang YL, Lu CL: Sorting by reversals, generalized transpositions, and translocations using permutation groups.

    Journal of Computational Biology 2010, 17:685-705. PubMed Abstract | Publisher Full Text OpenURL

  18. Blanchette M, Kunisawa T, Sankoff D: Parametric genome rearrangement.

    Gene 1996, 172:GC11-GC17. PubMed Abstract | Publisher Full Text OpenURL