Abstract
In this paper we study the problem of sorting unsigned genomes by doublecutandjoin operations, where genomes allow a mix of linear and circular chromosomes to be present. First, we formulate an equivalent optimization problem, called maximum cycle/path decomposition, which is aimed at finding a largest collection of edgedisjoint cycles/AApaths/ABpaths in a breakpoint graph. Then, we show that the problem of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length no more than l can be reduced to the wellknown degreebounded kset packing problem with k = 2l. Finally, a polynomialtime approximation algorithm for the problem of sorting unsigned genomes by doublecutandjoin operations is devised, which achieves the approximation ratio for any positive ε. For the restricted variation where each genome contains only one linear chromosome, the approximation ratio can be further improved to
Introduction
A fundamental problem in the study of genome rearrangements is to compute the genomic distance between two genomes based on their gene orders, where the genomic distance is generally defined as the minimum number of evolutionary operations necessary to transform one genome to another. This problem has been extensively studied in the last two decades [14].
The choices of genome evolutionary operations include reversals (also called inversions), translocations, fissions, fusions, transpositions and blockinterchanges. To unify all these classical operations, Yancopoulos et al [4] introduced a single operation, called doublecutandjoin (DCJ). It basically cuts a genome in two places and then joins the resulting four ends in a new way. Noticeably, computing the genomic distance based on DCJ operations can be applied between two genomes that allow a mix of linear and circular chromosomes to be present.
The complexity of computing the genomic distance between two genomes seems to largely depend on the availability of gene strand information rather than on the choice of evolutionary operations. For instance, the problem of sorting by reversals is tractable when gene strand information is available [5,6], but becomes intractable once gene strand information is not available [7]. The same conclusion also applies to the problem of sorting genomes by the doublecutandjoin operations. The DCJ operation was initially introduced to sort two signed genomes in [4,8], where a simple formula was derived to compute the genomic distance in linear time. It was recently used to sort two unsigned genomes in [9,10]; in this case, one instead has to tackle an NPhard optimization problem.
To tackle an NPhard optimization problem, it is of highly practical interest to develop a polynomialtime approximation algorithm with provable performance guarantee. For the problem of sorting by doublecutandjoin operations, in the case of unsigned unichromosome genomes, Chen presented in [9] an approximation algorithm with a performance ratio of for any positive ε. In the case of unsigned linear genomes, Jiang et al [10] recently devised a 1.5approximation algorithm.
In this paper we study the problem of sorting unsigned genomes by doublecutandjoin operations in the more general case where genomes allow a mix of linear and circular chromosomes to be present. The main goal is to devise a polynomialtime approximation algorithm for this NPhard problem. To this end, we first formulate a new and equivalent combinatorial optimization problem, called maximum cycle/path decomposition, which is aimed at finding a largest collection of edgedisjoint cycles/AApaths/ABpaths in the breakpoint graph constructed from two input genomes. Then, we show that the problem of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length no more than l in the breakpoint graph can be reduced to the wellknown degreebounded kset packing problem, where k = 2l. Finally, we present a polynomialtime approximation algorithm for the problem of sorting unsigned genomes by DCJ operations and then obtain its approximation ratio for any positive ε. To our best knowledge, it is the first polynomialtime approximation algorithm of this kind.
Methods
Preliminaries
Genes, chromosomes, and genomes
A gene is a stretch of DNA with two ends: the 3′ end and the 5′ end. Both are called the extremities of a gene. A chromosome is a single doublestranded DNA molecule that contains a sequence of genes. It can be either a linear molecule or a circular molecule. For a linear chromosome, there is a telomere marker located at each of its two ends. A genome is the whole collection of chromosomes in a cell. For example, the following gives a genome containing two linear chromosomes and one circular chromosome.
Genome A = {(o, a, c, d, o), (b, e), (o, f, g, o)}
Here we use the symbol ‘o’ to represent a telomere marker, further indicating that the corresponding chromosome is linear. An unsigned alphabetical symbol is used to represent a gene for which the 3′ end and 5′ end are not yet identified. Accordingly, a genome in this representation is called unsigned. On the other hand, if every gene is represented as a signed symbol where the sign indicates which extremity is the 3′ end (and the other extremity must be the 5′ end), then the corresponding genome is called signed. For a signed genome, Bergeron et al [8] introduced a new and equivalent representation, which is a set of adjacencies between extremities from different genes or between telomeres and extremities. For example, we may represent a signed genome
as
where a_{h} and a_{t} represents the 5′ end and 3′ ends of gene a, respectively.
Sorting by doublecutandjoins
The doublecutandjoin (DCJ) is an operation that cuts a genome in two places and joins the resulting four ends in a new way. Specifically, the cuts are applied between two adjacent extremities from different genes, between a telomere and its adjacent gene extremity, or between the two extremities of a null chromosome if necessary. The DCJ operation was first introduced by Yancopoulos et al [4] and later refined by Bergeron et al [8] to unify all the classical genome rearrangement events including inversions, translocations, fissions, fusions, transpositions, blockinterchanges, circularization and linearization.
Given two unsigned genomes A and B on the same set of genes, the problem of sorting unsigned genomes by DCJ operations (UDCJ) is defined to find a shortest sequence of DCJ operations that transform one genome into the other. The length of such a sequence is called the doublecutandjoin distance between two genomes A and B, and denoted by d_{D}_{CJ}(A, B).
Example 1. Let two unsigned genomes be
Genome A has two linear chromosomes and one circular chromosome, while genome B has two linear chromosomes and two circular chromosomes. Sorting A into B can, for example, be done in the following four DCJ operations, where the places to be cut are underlined:
We will see later that at least four DCJ operations are needed to transform one genome into the other. Therefore, the DCJ distance between A and B is d_{DCJ}(A, B) = 4.
The degreebounded kset packing problem
Given a base set S and a collection S of subsets of S, the set packing problem asks for the maximum number of pairwise disjoint subsets in S. The kset packing problem is a restricted variant of the set packing problem where every subset in S has size at most k. If in addition the number of occurrences in S of any element is upper bounded by a constant Δ, then it reduces to the degreebounded kset packing problem. The following theorem states the besttodate approximability and its detailed proof can be found in [11].
Theorem 2 ([12]). The degreebounded kset packing problem can be approximated within ratioin polynomial time, for any positive ε.
This algorithm is denoted by APPROXSP(k, Δ) and will be used in our approximation for computing the DCJ distance between two unsigned genomes. Its running time complexity is as shown in [11].
Basic facts
The breakpoint graph
The breakpoint graph (also called edge graph or comparison graph) is first introduced in [1] and widely used to compute the genomic rearrangement distances. Let A and B be two unsigned genomes defined on the same set of n genes containing;l_{A} and l_{B} linear chromosomes, respectively. We construct the breakpoint graph G(A, B) = (V, E = E_{b} ∪ E_{g}) as follows. Each vertex in V corresponds to a distinct gene or a telomere, so V = n + 2l_{A} + 2l_{B}. Every adjacency in A forms a black edge belonging to E_{b} and every adjacency in B forms a gray edge belonging to E_{g}. It is easy to see that E_{b} = n + l_{A}, E_{g} = n + I_{B}, and E = 2n + l_{A} + l_{B}. Moreover, every telomere of genome A (resp. genome B) has degree one and is incident to a black (resp. gray) edge, whereas every gene has degree four and is incident to two black and two gray edges. For short, a telomere of genome A is referred to as an Atelomere, and a telomere of genome B as a Btelomere. Note that the number of Atelomeres is not necessarily equal to the number of Btelomeres in a breakpoint graph.
Example 3. Consider the two unsigned genomes A and B given in Example 1, where l_{A} = 2 and l_{B} = 2. The breakpoint graph G(A, B) = (V, E = E_{b} ∪ E_{g}) is depicted in Figure1, in which V = 15, E_{b} = 9, E_{g} = 9, and E = 18.
Figure 1. A breakpoint graph between two genomes. The input two genomes are A = {(o, a, c, d, o), (b, e), (o, f, g, o)} and B = {(a, b), (o, c, d, o), (o, e, o), (f, g)}. The solid dots, hollow circles and squares are vertices representing genes, the telomere markers of genome A and of genome B, respectively. The solid and dashed lines are used to represent black and gray edges, respectively.
The cycle/path decomposition
A cycle/path in the breakpoint graph G(A, B) is called alternating if its edges are alternatively black and gray. From now on, whenever we mention cycles/paths in a breakpoint graph, they are alternating and edgedisjoint. A path is called an AApath (resp. BBpath) if it connects two Atelomeres (resp. two Btelomeres) or an ABpath if it connects an Atelomere and a Btelomere. The length of a cycle/path is referred to as the number of black edges that it contains.
Since every telomere vertex has degree one and every gene vertex has two incident black edges and two incident gray edges, there always exists a cycle/path decomposition of G(A, B) into edgedisjoint cycles, AApaths, ABpaths and BBpaths. A maximum cycle/path decomposition refers to a cycle/path decomposition that contains the maximum number of edgedisjoint cycles, AApaths and ABpaths. Note that this maximum number does not take into account any BBpaths. The maximum cycle/path decomposition problem is hence defined as the problem of finding such a maximum cycle/path decomposition of a breakpoint graph. See Figure 2 for an example.
Sorting signed genomes
Before proceeding to study the problem of sorting unsigned genomes by DCJ operations, we take a first look at the case of signed genomes. Note that the above concept of breakpoint graph extends naturally to two signed genomes and It can be done by replacing each signed gene by its two (unsigned) extremities in the relative order. Yancopoulos, et al. [4] further proposed to close each AApath into a cycle by adding a gray edge connecting two Atelomeres, close each BBpath into a cycle by adding a black edge connecting two Btelomeres, and close each ABpath into a cycle by identifying the Atelomere and Btelomere (with the Btelomere eliminated). As is customary, no edge is drawn between two extremities of the same gene in the breakpoint graph.
Given a breakpoint graph for two signed genomes and we note that its cycle/path decomposition is unique and trivial because every vertex in has degree at most two. The following theorem implies that computing the DCJ distance between two signed genomes can be done in linear time.
Theorem 4 ([4]). Letandbe two genomes defined on the same set of n genes, then we have
whereis the number of black edges andthe number of cycles in the breakpoint graphafter closing all the paths into cycles.
Sorting unsigned genomes
Theorem 7 that we will present below establishes the connection between the cycle/path decomposition of a breakpoint graph and the DCJ distance between two unsigned genomes. Its proof uses the following two lemmas (i.e., Lemmas 5 and 6).
Lemma 5. For every cycle/path decomposition of G(A, B), there exists a signed versionandof genomes A and B such that
where b is the number of black edges in the breakpoint graph G(A, B) and c (resp. I_{AA} and I_{AB}) is the number of cycles (resp. AApaths and ABpaths) in the given cycle/path decomposition of G(A, B).
Proof. Note that every gene vertex would be visited twice if we traverse all the cycles/paths in a fixed cycle/path decomposition of G(A, B). When a gene vertex (e.g., gene a) is visited for the first time, we may assume that we are visiting the 5′ end of the gene (denoted as a_{h}). When it is visited for the second time, we may assume that we are visiting the 3′ end of the gene (denoted as a_{t}). To obtain a signed genome (represented as a set of adjacencies), we form an adjacency for every two extremities (or one extremity and one Atelomere) that are connected by a black edge in the given cycle/path decomposition. Similarly, to obtain a signed genome we form an adjacency for every two extremities (or one extremity and one Btelomere) that are connected by a gray edge in the given cycle/path decomposition. It is easy to see that the resulting genomes and are the signed version of genomes A and B, respectively.
Moreover, the breakpoint graph before closing its paths into cycles, preserves all the cycles/paths from the given cycle/path decomposition of G(A, B)—that is, there are still b black edges, I_{AA} AApaths, I_{AB} ABpaths and I_{BB} BBpaths. After closing paths into cycles, the breakpoint graph would have black edges (as we close each BBpath into a cycle by adding one black edge) and cycles. It hence follows from Theorem 4 that
Lemma 6. For every signed versionandof genomes A and B, there exists a cycle/path decomposition of G(A, B) such that
where b is the number of black edges in the breakpoint graph G(A, B) and c (resp. I_{AA} and I_{AB}) is the number of cycles (resp. AApaths and ABpaths) in this cycle/path decomposition of G(A, B).
Proof. Observe that we would obtain the breakpoint graph G(A, B) if we combine two extremity vertices of a same gene into a single vertex in the breakpoint graph (before closing paths into cycles).
Therefore, the trivial cycle/path decomposition of naturally gives rise to a cycle/path decomposition of G(A, B) which preserves the same numbers of black edges/cycles/AApaths/ABpaths/BBpaths (denoted as b, c, I_{AA}, I_{AB} and I_{BB}, respectively). After closing paths into cycles, the breakpoint graph would have black edges and cycles, as justified in the preceding lemma. By Theorem 4, we then have
Theorem 7. Let A and B be two unsigned genomes defined on the same set of genes. Then, we have
d_{DCJ}(A, B) = b – (c + I_{AA} + I_{AB})
where b is the number of black edges in G(A, B) and c (resp., I_{AA} and I_{AB}) is the number of cycles (resp., AApaths and ABpaths) in a maximum cycle/path decomposition of G(A, B).
Proof. Let us consider a maximum cycle/path decomposition of G(A, B). By Lemma 5, we would obtain a signed version and of genomes A and B such that It means that genome can be transformed into genome with a sequence of DCJ operations. Observe that this same sequence of DCJ operations can be also used to transform genome A into genome B. It hence follows that
Assume now that a sequence of d_{DCJ}(A, B) DCJ operations can be applied to transform genome A into genome B. Let be a signed version of genome A in which all genes are positive. We then apply the same sequence of d_{DCJ}(A, B) DCJ operations to the signed genome The resulting genome would be genome B if we disregard all the gene signs; in other words, shall be a signed version of genome B. Thus, On the other hand, by Lemma 6, there exists a cycle/path decomposition of G(A, B) such that Thus, d_{DCJ}(A, B) ≥ b – (c + I_{AA} + I_{AB}).
Results
The approximation algorithm
Note that, for a given pair of genomes, the number of black edges is fixed without regard to any cycle/path decomposition. Theorem 7 hence suggests a way to approximate the DCJ distance between two unsigned genomes via maximizing the number of cycles/AApaths/ABpaths in a cycle/decomposition of the breakpoint graph. To do so, our proposed approximation algorithm performs three subroutines to find edgedisjoint cycles/paths of length one, of length two, and of length no more than three, respectively.
Finding edgedisjoint cycles/paths of length one
Lemma 8. There exists a maximum cycle/path decomposition of G(A, B) which contains a largest collection of edgedisjoint cycles/AApaths/ABpaths of length one.
Proof. Let C be a maximum cycle/path decomposition of G(A, B) and C_{1} a largest collection of edgedisjoint cycles/AApaths/ABpaths of length one in G(A, B). If C_{3} is a cycle/AApath/ABpath contained in C_{1} but not in C (please refer to Figure 3), then the maximum cycle/path decomposition C shall contain the cycles/paths C_{1} and C_{2} (note that they are not necessarily distinct). In this case, we would modify the maximum cycle/path decomposition C as follows: take one gene vertex of the only black edge of C_{3} and reconnect its incident black edges and gray edges in a new way. Consequently, C_{1} and C_{2} would be replaced by the two distinct cycles/paths C_{3} and C_{4} in C. Suppose by contradiction that the above modification decreases the number of cycles/AApaths/ABpaths so that the new C is no longer a maximum cycle/path decomposition. Note first that this would happen only when C_{1} and C_{2} are two distinct cycles/AApaths/ABpaths but C_{4} is a BBpath. Since no AApath in G(A, B) could be of length one, C_{3} is either a cycle or an ABpath. Hence, C_{3} and C_{4} together use at least two Btelomeres and at most one Atelomere, and so do C_{1} and C_{2} together. Since neither C_{1} nor C_{2} is a BBpath, they together shall use Atelomeres no less than Btelomeres, contrasting the previously established fact that they together use at least two Btelomeres and at most one Atelomere. Continue this process with the remaining cycles/AApaths/ABpaths that are contained in C_{1} but not in C. It would necessarily end up with a maximum cycle/path decomposition that contains a largest collection of edgedisjoint cycles/AApaths/ABpaths of length one.
Figure 3. Two possible cases of the cycles/paths C_{3} of length one. (I) a cycle, and (II) an ABpath.
It is worth noticing that there might be no maximum cycle/path decomposition of G(A, B) which could contain all the cycles/AApaths/ABpaths of length one.
Lemma 9. The problem of finding a largest collection of edgedisjoint cycles, AApaths and ABpaths of length one in the breakpoint graph G(A, B) is solvable in polynomial time.
Proof. We can transform a problem instance of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length one into an instance of the 2set packing problem, where the base set S contains all the edges of G(A, B) and each subset of the collection S is comprised of edges of a cycle/AApath/ABpath of length one in G(A, B). The 2set packing problem can be reduced to the maximal matching problem which is wellknown to be solvable in polynomial time by a simple greedy algorithm [13].
Following Lemma 9, we assume from now on that there does not exist any cycle/AApath/ABpath of length one in the breakpoint graph G(A, B).
Finding edgedisjoint cycles/paths of length two or three
The following lemma gives an upper bound on the number of distinct cycles/paths of length less than or equal to l that traverse a common edge. Although this upper bound is no way the tight one, it is already enough for our purpose to devise an approximation algorithm.
Lemma 10. Every edge in the breakpoint graph G(A, B) belongs to at most (2^{2}^{l}^{+1} × l^{2}) distinct cycles/AApaths/ABpaths of length less than or equal to l.
Proof. Let us consider a breadthfirst traversal of edges in the breakpoint graph G(A, B) that starts at a given edge e, and then count all the cycles/AApaths/ABpaths of length less than or equal to l that use the edge e. Note that every vertex is incident to at most two black edges and at most two gray edges and also that every edge is at distance at most (2l – 1) from another edge of the same cyle/path of length less than or equal to l. The traversal of every such cycle/path will end at two edges at distance i and j from the root edge e, respectively, such that i ,j ≥ 0 and i + j ≤ 2l – 1. If we fix values for i and j, there are at most 2^{i} × 2^{j} = 2^{i}^{+}^{j} ≤ 2^{2}^{l–}^{1} cycles/paths whose traversals end at two edges in distance i and j from the root edge e, respectively. For all the combinations of values i and j such that i ≤ 2l – 1 and j ≤ 2l – 1, there are at most 2l × 2l × 2^{2}^{l–}^{1} = 2^{2}^{l}^{+1} × l^{2} cycles/paths to be reached; in other words, there are at most 2^{2}^{l}^{+1} × l^{2} cycles/paths of length less than or equal to l that use the edge e.
To find a largest collection of edgedisjoint cycles/paths of length no more than l, we may construct a collection S of subsets of the base set S, where S is comprised of all the edges in G(A, B) and each subset of S is comprised of edges of a distinct cycle/AApath/ABpath of length no more than l in G(A, B). Then, we obtain an instance (S, S) of the kset packing problem where k = 2l. Further by the above lemma, we obtain the following observations.
Corollary 11. Finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length two can he transformed into an instance of the degreebounded 4set packing problem.
Corollary 12. Finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length no more than three can he transformed into an instance of the degreebounded 6set packing problem.
It is worth noting that, if, as previously done in [10] on the breakpoint graph, all the paths are closed into cycles to make a maximum cycle decomposition instead of a maximum cycle/path decomposition, we would not know whether the above corollaries (and hence our approximation algorithm proposed later) are still valid. Two lemmas below further follow from Theorem 2.
Lemma 13. The problem of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length two in the breakpoint graph G(A, B) can be approximated with ratioin polynomial time, for any positive ε.
Lemma 14. The problem of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length no more than three in the breakpoint graph G(A, B) can be approximated with ratioin polynomial time, for any positive ε.
Algorithm details
Let A and B be two unsigned genomes defined on the same set of genes. Given a breakpoint graph G(A,B), our proposed algorithm for the cycle/path decomposition is summarized below:
1. Find a largest collection C_{1} of cycles/AApaths/ABpaths of length one by a greedy algorithm;
2. Remove from the breakpoint graph all the edges used by the cycles/AApaths/ABpaths of C_{1};
3. Find a collection C_{2} of cycles/AApaths/ABpaths of length two by Algorithm APPROXSP(k, Δ);
4. Find a collection C_{3} of cycles/AApaths/ABpaths of length no more than three by Algorithm APPROXSP(k, Δ);
5. Decompose the remaining edges arbitrarily into a collection C_{4} of cycles/AApaths/ABpaths/BBpaths;
6. Output either C_{1} ∪ C_{2} ∪ C_{4} or C_{1} ∪ C_{3} ∪ C_{4}, depending on which one has the larger size.
For a maximum cycle/path decomposition, let r_{2} denote the number of cycles/AApaths/ABpaths of length two, r_{3} the number of cycles/AApaths/ABpaths of length three, and r′ the total number of cycles/AApaths/ABpaths. Let r be the total number of cycles/AApaths/ABpaths in the cycle/path decomposition returned by our proposed algorithm. The cycles/AApaths/ABpaths of length one are all excluded from the above counts since it would not affect the worstcase algorithmic performance. We find the worstcase approximation ratio of our algorithm by solving the following optimization problem:
The second constraint is due to the fact that every cycle/AApath/ABpath of length four or larger uses at least four black edges. The third and fourth constraints follow from Lemmas 13 and 14, respectively. By solving the above fractional linear programming problem (please refer to Lemma 2.3 of [14]), we would obtain the maximum objective function value being which indeed gives the performance ratio of our proposed algorithm.
Theorem 15. The problem of sorting unsigned genomes by DCJ operations can be approximated within ratioin polynomial time, for any positive ε.
Sorting unsigned permutations
A genome can be represented as an unsigned permutation when it contains only one linear chromosome. For this restricted case, we can improve the approximation ratio further by applying the following result from [14] in place of Lemma 13.
Lemma 16 ([14]). Let A and B be two unsigned unichromosome genomes. The problem of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length two in the breakpoint graph G(A, B) can be approximated with ratioin polynomial time, for any positive ε.
In view of this lemma, the third constraint in the above fractional linear programming problem can be replaced by the inequality which hence leads to the following theorem.
Theorem 17. The problem of sorting unsigned permutations by DCJ operations can be approximated within ratioin polynomial time, for any positive ε.
Conclusions
Since the introduction of the NPhard problem of sorting unsigned genomes by doublecutandjoin operations in [9], the polynomialtime approximation algorithms have been developed only under two restricted genome models. The first one is intended for sorting unichromosome genomes and its besttodate performance ratio is for any positive ε [9]. The second one is intended for sorting linear genomes and its besttodate performance ratio is 1.5 [10]. In this paper, we have presented an approximation algorithm for the problem of sorting unsigned genomes by doublecutandjoin operations in the general case where genomes allow a mix of linear and circular chromosomes to be present. The performance ratio thus achieved is for any positive ε. In addition, for the first restricted genome model mentioned above, an improved performance ratio of is also achieved. However, the proposed algorithm is mainly of theoretical interest rather than the practical use, due to its huge factor polynomial running time
Conceptually, our proposed algorithm operates in the same spirit as many previous algorithms for approximating the genomic distance via genome rearrangement operations [1,10,14,15]. However, when we began this work, it was not clear whether the problem of finding a largest collection of edgedisjoint cycles/AApaths/ABpaths of length two or three can be reduced to a degreebounded kset packing problem (rather than a general kset packing problem). In this paper we established this reduction, which then leads to the improved approximation ratios.
Competing interests
The authors declare that they have no competing interests.
Authors' contributions
XC conceived the study. All authors contributed to the algorithm analysis, read and approved the final manuscript.
Acknowledgements
This work was partially supported by the Singapore MOE AcRF Tier 1 grant RG78/08.
This article has been published as part of BMC Bioinformatics Volume 12 Supplement 9, 2011: Proceedings of the Ninth Annual Research in Computational Molecular Biology (RECOMB) Satellite Workshop on Comparative Genomics. The full contents of the supplement are available online at http://www.biomedcentral.com/14712105/12?issue=S9.
References

Bafna V, Pevzner PA: Genome rearrangements and sorting by reversals.
SFCS '93: Proceedings of the 1993 IEEE 34th Annual Foundations of Computer Science 1993, 148157. PubMed Abstract  Publisher Full Text  PubMed Central Full Text

Hannenhalli S, Pevzner P: To cut … or not to cut (applications of comparative physical maps in molecular evolution).
SODA '96: Proceedings of the seventh annual ACMSIAM symposium on Discrete algorithms 1996, 304313. PubMed Abstract  Publisher Full Text

Kececioglu JD, Sankoff D: Exact and Approximation Algorithms for Sorting by Reversals, with Application to Genome Rearrangement.

Yancopoulos S, Attie O, Friedberg R: Efficient sorting of genomic permutations by translocation, inversion and block interchange.
Bioinformatics 2005, 21(16):33403346. PubMed Abstract  Publisher Full Text

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

Hannenhalli S, Pevzner PA: Transforming Men into Mice (Polynomial Algorithm for Genomic Distance Problem).

Caprara A: Sorting by reversals is difficult.
RECOMB '97: Proceedings of the first annual international conference on Computational molecular biology 1997, 7583. PubMed Abstract

Bergeron A, Mixtacki J, Stoye J: A Unifying View of Genome Rearrangements.

Chen X: On sorting permutations by doublecutandjoins.
Proceedings of the 16th annual international conference on Computing and combinatorics 2010, 439448.

Jiang H, Zhu B, Zhu D: Algorithms for sorting unsigned linear genomes by the DCJ operations.
Bioinformatics 2011, 27(3):311316. PubMed Abstract  Publisher Full Text

Sun R, Chen X: Approximating the degreebounded kset packing problem. [http://www1.spms.ntu.edu.sg/~chenxin/paper/SP.pdf] webcite
2011.

Halldórsson MM: Approximating discrete collections via local improvements.
SODA '95: Proceedings of the sixth annual ACMSIAM symposium on Discrete algorithms 1995, 160169. PubMed Abstract  Publisher Full Text

Papadimitriou CM: Computational complexity. AddisonWesley; 1994.

Caprara A, Rizzi R: Improved Approximation for Breakpoint Graph Decomposition and Sorting by Reversals.
J. Comb. Optim. 2002, 6(2):157182. Publisher Full Text

Lin G, Jiang T: A Further Improved Approximation Algorithm for Breakpoint Graph Decomposition.