- We are sorry, but NCBI web applications do not support your browser and may not function properly. More information

- Journal List
- BMC Bioinformatics
- v.7; 2006
- PMC1569878

# Analysis of circular genome rearrangement by fusions, fissions and block-interchanges

^{1}Department of Biological Science and Technology, National Chiao Tung University, Hsinchu 300, ROC, Taiwan

^{2}Department of Computer Science, National Tsing Hua University, Hsinchu 300, ROC, Taiwan

^{}Corresponding author.

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

### Background

Analysis of genomes evolving via block-interchange events leads to a combinatorial problem of sorting by block-interchanges, which has been studied recently to evaluate the evolutionary relationship in distance between two biological species since block-interchange can be considered as a generalization of transposition. However, for genomes consisting of multiple chromosomes, their evolutionary history should also include events of chromosome fusions and fissions, where fusion merges two chromosomes into one and fission splits a chromosome into two.

### Results

In this paper, we study the problem of genome rearrangement between two genomes of circular and multiple chromosomes by considering fusion, fission and block-interchange events altogether. By use of permutation groups in algebra, we propose an $\mathcal{O}$(*n*^{2}) time algorithm to efficiently compute and obtain a minimum series of fusions, fissions and block-interchanges required to transform one circular multi-chromosomal genome into another, where *n *is the number of genes shared by the two studied genomes. In addition, we have implemented this algorithm as a web server, called FFBI, and have also applied it to analyzing by gene orders the whole genomes of three human *Vibrio *pathogens, each with multiple and circular chromosomes, to infer their evolutionary relationships. Consequently, our experimental results coincide well with our previous results obtained using the chromosome-by-chromosome comparisons by landmark orders between any two *Vibrio *chromosomal sequences as well as using the traditional comparative analysis of 16S rRNA sequences.

### Conclusion

FFBI is a useful tool for the bioinformatics analysis of circular and multiple genome rearrangement by fusions, fissions and block-interchanges.

## Background

For the past two decades, genome rearrangements have been studied and can be modelled to learn more about the evolution of mitochondrial, chloroplast, viral, bacterial and mammalian genomes [1]. To evaluate the evolutionary distance between two related genomes in gene order, various rearrangement events acting on genes within or among chromosomes have been proposed, such as reversals (also known as inversions) [1-10], transpositions [11,12], block-interchanges [13-15], translocations [16,17], and fusions and fissions [18,19]. Most genome rearrangement studies in computation involve the issue of solving the combinatorial problem to find an optimal series of rearrangements required to transform one genome into another.

Recently, the study on the genome rearrangement by block-interchanges has increasingly drawn great attention, since the block-interchange event is a generalization of transposition and, currently, its computational models measuring the genetic distance are more tractable than those modeled by transposition. Christie [13] first introduced the concept of block-interchange, affecting a chromosome by swapping two non-intersecting blocks containing any number of consecutive genes. Block-interchange can be considered as a generalization of transposition, since any exchanged blocks via transposition must be contiguous in a chromosome, whereas those via block-interchange need not be. As a matter of fact, the occurrence of an exchange of two non-contiguous blocks has been suggested in the previous studies related to the biological processes of bacterial replication [[20], and references therein]. Christie also proposed an $\mathcal{O}$(*n*^{2}) time algorithm, where *n *is the number of genes, to solve the so-called *block-interchange distance problem *that is to find a minimum series of block-interchanges for transforming one linear chromosome into another. Later, we [14] designed a simpler algorithm for solving the block-interchange problem on linear or circular chromosomes with time-complexity of $\mathcal{O}$(*δ**n*), where *δ *is the the minimum number of block-interchanges required for the transformation and can be calculated in $\mathcal{O}$(*n*) time in advance. We also demonstrated that block-interchange events play a significant role in the genetic evolution of bacterial (*Vibrio*) species. Very recently, based on this algorithm, we have further implemented a tool, called ROBIN, for analyzing the rearrangements of gene orders via block-interchanges between two linear/circular chromosomal genomes [15]. Not only gene-order data but also sequence data are allowed to be input into the ROBIN system. If the input is the sequence data, ROBIN can automatically search for the common homologous/conserved regions shared by all input sequences.

It should be noted that the above block-interchange studies were dedicated to genomes containing only one chromosome (i.e., uni-chromosomal genomes) for evaluating their evolutionary relationships. However, for biological species with different numbers of chromosomes, the evolutionary history must also consider events of chromosomal fusions and fissions. A *fusion *occurs when two chromosomes merge into one and a *fission *takes place when a chromosome splits into two. The reason is that different chromosomes may as well exchange their genetic material with each other and, moreover, this exchange can only be achieved via inter-chromosomal operations such as fusions and fissions, instead of intra-chromosomal operations like block-interchanges. Hence, it is worthwhile to study genome rearrangements considering fusions, fissions and block-interchanges altogether. In this paper, we solve such a genome rearrangement problem by designing an efficient algorithm to compute and obtain a minimum series of all the events involving fusions, fissions and block-interchanges that are required to transform one circular multi-chromosomal genome into another, when both have the same set of genes without repeats. Although most eukaryotic genomes are linear, most prokaryotic (e.g., bacterial) genomes are circular and some of them consist of multiple circular chromosomes and large plasmids^{1}. For example, some important bacterial pathogens like *Brucella*, *Burkholderia*, *Leptospira *and *Vibrio *species fall into this category. Notably, our approach is based on permutation group in algebra, instead of breakpoint graph, a commonly used approach in the study of genome rearrangement.

Recently, Yancopoulos *et al*. [21] used breakpoint graph to design an algorithm to solve a genome rearrangement problem in which the considered reversals, translocations (including fusions and fissions) and block-interchanges were given different weights. Unfortunately, their algorithm cannot be applied to solving our problem in which the events we considered are unweighted, because a series of weighted events with minimum weights in total may not be a minimum series of unweighted events, provided the events are given different weights.

## Results and discussion

Based on Algorithm Sorting-by-ffbi developed in this study, we have implemented a web server, called FFBI [22], in which biologists or scientists in genomics can conduct comprehensive analyses of circular genome rearrangements by fusions, fissions and block-interchanges for their scientific interests and needs. Furthermore, we used this web server to conduct the rearrangement analyses on the whole genomes of three pathogenic *Vibrio *species, including *V. vulnificus*, *V. parahaemolyticus *and *V. cholerae*, to infer their evolutionary relationships.

Each of these three *Vibrio *pathogens consists of two circular chromosomes, and all their genomic sequences have recently been reported in GenBank with protein-coding genes annotated (see Table Table11 for their sequence information). As annotated in GenBank (as of April 2006), the genomes of *V. vulnificus*, *V. parahaemolyticus *and *V. cholerae *contain 5098, 4992 and 4008 genes, respectively. From these protein-coding genes, we identified a total of 2393 (one-to-one) orthologous genes that are physically located in different positions on the chromosomes (see the Method section for construction of orthologous genes). Inevitably, there can be a high possibility that some genes with mis-annotated or uncertain protein functions are included in the genome annotation data. We therefore used only those authentic genes whose protein functions are not annotated as hypothetical or putative proteins, or are conserved and not poorly characterized (e.g., not those genes with only general function prediction or unknown function) in the NCBI COGs [23] database of orthologous genes. As a result, there are 1274 authentic orthologous genes in total remained for the further study of genome rearrangement. The relative orders of these orthologous genes along chromosomes, as well as the annotated COGs of their coding proteins, are detailed in the web site of our server.

For each pair of these pathogenic *Vibrio *species, the variation in their gene orders has suggested that the genome rearrangement events have occurred and their genomes are closely related in evolution. To evaluate the contribution of fusions, fissions and block-interchanges to these observed rearrangements, we used the server developed in this study to compute the rearrangement distance between the gene orders of any two *Vibrio *genomes. Consequently, as shown in Table Table2,2, the calculated rearrangement distance between *V. vulnificus *and *V. parahaemolyticus *is smaller than that between *V. vulnificus *and *V. cholerae *and that between *V. parahaemolyticus *and *V. cholerae*, suggesting that *V. vulnificus *is closer to *V. parahaemolyticus *than to *V. cholerae *in evolutionary relationship. Intriguingly, this result of genome-wide experiment well coincides with those we obtained in the previous chromosome-wide experiments [14,15]. Recall that our previous experiments were conducted in a chromosome-by-chromosome style of computing the block-interchange distance between the landmark orders of any two large/small *Vibrio *chromosomes, where the used landmarks are the maximal unique matches (MUMs) or the locally collinear blocks (LCBs) that are commonly shared by three large/small *Vibrio *chromosomes.

*V. vulnificus*,

*V. parahaemolyticus*and

*V. cholerae*by fusions, fissions and block-interchanges.

In fact, the evolutionary relationships of the three pathogenic *Vibrio *species revealed in our experiment of analyzing their genome rearrangements also confirms that obtained by the biological community on the basis of the traditional comparative analysis of 16S rRNA gene sequences [24-26]. For confirmation, we here repeated this comparative analysis as follows. The 16S rRNA gene sequences of three Vibrios were first aligned using the Clustal W program [27], from which the distance matrix (as shown in Table Table3)3) was then estimated by the algorithm of Kimura's two-parameter model in PHYLIP package [28].

*V. vulnificus*[GenBank:{"type":"entrez-nucleotide","attrs":{"text":"X76333","term_id":"531552","term_text":"X76333"}}X76333],

*V. parahaemolyticus*[GenBank:{"type":"entrez-nucleotide","attrs":{"text":"X56580","term_id":"48472","term_text":"X56580"}}

**...**

## Conclusion

In this paper, we studied the genome rearrangement problem between circular genomes with multiple chromosomes by simultaneously considering fusion, fission and block-interchange events. We have shown in the Method section that an optimal series of events required to transform one genome into another can be obtained in a canonical order such that all fusions come before all block-interchanges, which come before all fissions. Based on this property as well as the concept of permutation groups in algebra, we have successfully designed an $\mathcal{O}$(*n*^{2}) time algorithm to obtain the minimum number of fusion, fission and block-interchange events for the transformation and also to generate an optimal scenario of the required rearrangement events. In addition, we have practically implemented this algorithm as a web server and applied it to analyzing by gene orders the whole genomes of three human *Vibrio *pathogens to infer their evolutionary relationships. As a consequence, our experimental results well coincide with the previous results obtained using the chromosome-by-chromosome comparisons by landmark orders between any two *Vibrio *chromosomal sequences as well as using the traditional comparative analysis of 16S rRNA sequences. The algorithm, however, should not be applied on linear multi-chromosomal genomes, because as mentioned in the Method section, it is not always possible to have an optimal scenario in a canonical order for linear genomes. Further studies in genome rearrangement can still be pursued to solve the problem for linear multi-chromosomal genomes.

## Methods

### Permutations versus genome rearrangements

In group theory, a *permutation *is defined to be a one-to-one mapping from a set *E *= {1, 2, ..., *n*} into itself, where *n *is some positive integer. For example, we may define a permutation *α *of the set {1, 2, 3, 4, 5, 6, 7} by specifying *α*(1) = 4, *α*(2) = 3, *α*(3) = 1, *α*(4) = 2, *α*(5) = 7, *α*(7) = 6 and *α*(6) = 5. The above mapping can be expressed using a *cycle notation *as illustrated in Figure Figure11 and simply denoted by *α *= (1, 4, 2, 3) (5, 7, 6). A cycle of length *k*, say (*a*_{1}, *a*_{2}, ..., *a*_{k}), is simply called *k-cycle *and can be rewritten as (*a*_{i}, *a*_{i+1}, ..., *a*_{k}, *a*_{1}, ..., *a*_{i-1}), where 2 ≤ *i *<*k*, or (*a*_{k}, *a*_{1}, *a*_{2}, ..., *a*_{k-1}). Any two cycles are said to be *disjoint *if they have no element in common. In fact, any permutation, say *α*, can be written in a unique way as the product of disjoint cycles, which is called the *cycle decomposition *of *α*, if we ignore the order of the cycles in the product [29]. Usually, a cycle of length one in *α *is not explicitly written and its element, say *x*, is said to be *fixed *by *α *since *α*(*x*) = *x*. Especially, the permutation whose elements are all fixed is called an *identity permutation *and is denoted by **1 **(i.e., **1 **= (1) (2) ... (*n*)).

*α*= (1, 4, 2, 3) (5, 7, 6) meaning that

*α*(1) = 4,

*α*(2) = 3,

*α*(3) = 1,

*α*(4) = 2,

*α*(5) = 7,

*α*(7) = 6 and

*α*(6) = 5.

Given two permutations *α *and *β *of *E*, the *composition *(or *product*) of *α *and *β*, denoted by *α**β*, is defined to be a permutation of *E *with *α**β*(*x*) = *α*(*β*(*x*)) for all *x * *E*. For instance, if we let *E *= {1, 2, 3, 4, 5, 6}, *α *= (2, 3) and *β *= (2, 1, 5, 3, 6, 4), then *α**β *= (2, 1, 5) (3, 6, 4). If *α *and *β *are disjoint cycles, then *α**β *= *β**α*. The *inverse *of *α *is defined to be a permutation, denoted by *α*^{-1}, such that *α**α*^{-1 }= *α*^{-1}*α *= **1**. If a permutation is expressed by the product of disjoint cycles, then its inverse can be obtained by just reversing the order of the elements in each cycle. For example, if *α *= (2, 1, 5) (3, 6, 4), then *α*^{-1 }= (5, 1, 2) (4, 6, 3). Clearly, *α*^{-1 }= *α *if *α *is a 2-cycle.

Meidanis and Dias [19,30] first noted that each cycle of a permutation may represent a circular chromosome of a genome with each element of the cycle corresponding to a gene, and the order of the cycle corresponding to the gene order of the chromosome. Figure Figure1,1, for example, shows a genome with two circular chromosomes, one represented by (1, 4, 2, 3) and the other by (5, 7, 6). Moreover, they observed that global evolutionary events, such as fusions and fissions (respectively, transpositions), correspond to the composition of a 2-cycle (respectively, 3-cycles) and the permutation representing a genome. For instance, let *α *be any permutation whose cycle decomposition is *α*_{1}*α*_{2} ... *α*_{r}. If *ρ *= (*x*, *y*) is a 2-cycle and *x *and *y *are in the different cycles of *α*, say *α*_{p }= (*a*_{1 } *x*, *a*_{2}, ..., *a*_{i}) and *α*_{q }= (*b*_{1 } *y*, *b*_{2}, ..., *b*_{j}) where 1 ≤ *p*, *q *≤ *r*, then in the composition *ρ**α*, *α*_{p }and *α*_{q }are joined into a cycle (*a*_{1}, *a*_{2}, ..., *a*_{i}, *b*_{1}, *b*_{2}, ..., *b*_{j}), i.e., *ρ *is a fusion event affecting on *α *(and also called a *join operation *of *α *here). If *ρ *= (*x*, *y*) is a 2-cycle and *x *and *y *are in the same cycle of *α*, say *α*_{p }= (*a*_{1 } *x*, *a*_{2}, ..., *a*_{i } *y*, *a*_{i+1}, ..., *a*_{j}) where 1 ≤ *p *≤ *r*, then in the composition *ρ**α*, this cycle *α*_{p }is broken into two disjoint cycles (*a*_{1}, *a*_{2}, ..., *a*_{i-1}) and (*a*_{i}, *a*_{i+1}, ..., *a*_{j}), i.e., *ρ *is a fission event affecting on *α *(and also called a *split operation *of *α *here). If *ρ *= (*x*, *y*, *z*) is a 3-cycle and *x*, *y *and *z *are in the same cycle of *α*, say *α*_{p }= (*a*_{1 } *x*, *a*_{2}, ..., *a*_{i}, *b*_{1 } *y*, *b*_{2}, ..., *b*_{j}, *c*_{1 } *z*, *c*_{2}, ..., *c*_{k}) where 1 ≤ *p *≤ *r*, then in the composition *ρ**α*, the cycle *α*_{p }becomes (*a*_{1}, *a*_{2}, ..., *a*_{i}, *c*_{1}, *c*_{2}, ..., *c*_{k}, *b*_{1}, *b*_{2}, ..., *b*_{j}), i.e., *ρ *is a transposition event affecting on *α*.

Recently, Lin *et al. *[14] further observed that a block-interchange event affecting on *α *corresponds to the composition of two 2-cycles, say *ρ*_{1 }and *ρ*_{2}, and *α *under the condition that *ρ*_{1 }is a split operation of *α *and *ρ*_{2 }is a join operation of *ρ*_{1}*α*. More clearly, let *α*_{p }= (*a*_{1}, *a*_{2},..., *a*_{k}) be a cycle of *α*, *ρ*_{1 }= (*a*_{1}, *a*_{i}) and *ρ*_{2 }= (*a*_{h}, *a*_{j}), where 1 <*i *≤ *k*,1 ≤ *h *≤ *i *- 1 and *i *≤ *j *≤ *k*. Then *ρ*_{2}*ρ*_{1}*α *is the resulting permutation by exchanging the blocks [*a*_{h}, *a*_{i-1}] and [*a*_{j}, *a*_{k}] of *α*_{p}. That is, *ρ*_{2}*ρ*_{1 }is a block-interchange event affecting on *α *by swapping [*a*_{h}, *a*_{i-1}] and [*a*_{j}, *a*_{k}], two non-intersecting blocks in *α*.

As discussed above, any series of fusions, fissions and block-interchanges required to transform one circular multi-chromosomal genome *α *into another *I *can be expressed by a product of 2-cycles, say *ρ*_{k}*ρ*_{k-1}...*ρ*_{1}, such that *ρ*_{k}*ρ*_{k-1}...*ρ*_{1}*α *= *I *(hence, *ρ*_{k}*ρ*_{k-1}...*ρ*_{1 }= *I**α*^{-1}). This property implies that *I**α*^{-1 }contains all information that can be utilized to derive *ρ*_{1}, *ρ*_{2},...,*ρ*_{k}for transforming *α *into *I*.

It is well known that every permutation can be written as a product of 2-cycles. For example, (1, 2, 3, 4) = (1, 4) (1, 3) (1, 2). However, there are many ways of expressing a permutation *α *as a product of 2-cycles [29]. Given a permutation *α*, let *f*(*α*) denote the number of the disjoint cycles in the cycle decomposition of *α*. Notice that *f*(*α*) counts also the non-expressed cycles of length one. For example, if *α *= (1, 5) (2, 4) is a permutation of *E *= {1, 2,..., 5}, then *f*(*α*) = 3, instead of *f*(*α*) = 2, since *α *= (1, 5) (2, 4) (3). Then the following lemma shows the lower bound of the number of 2-cycles in any product of 2-cycles of a permutation.

**Lemma 1 ***Let **α **be an arbitrary permutation of **E *= {1, 2,..., *n*}. *If **α **can be expressed as a product of m 2-cycles, say **α *= *α*_{1}*α*_{2}...*α*_{m }with each *α*_{i}* being 2-cycle, then m *≥ *n *- *f*(*α*).

*Proof*. We prove this lemma by induction on *m*. The lemma is true if *m *= 0, since *α *= **1 **then, meaning that *f*(*α*) = *n*, and hence *m *= *n *- *f*(*α*) = 0. Suppose now that the lemma holds for any permutation that can expressed as a product of less than *m *2-cycles, where *m *> 0. Let *α*' = *α*_{2}*α*_{3}, ...,*α*_{m}. Then by the induction hypothesis, we have *m *- 1 ≥ *n *- *f*(*α*'). Since *α *= *α*_{1}*α*' and *α*_{1 }is a 2-cycle, *α*_{1 }operates on *α*' either as a fusion by joining two cycles of *α*' into one cycle (i.e., *f*(*α*) = *f*(*α*') - 1) or as a fission by splitting one cycle of *α*' into two cycles (i.e., *f*(*α*) = *f*(*α*') + 1). Whichever *α*_{1 }operates on *α*', we have *f*(*α*) ≥ *f*(*α*') - 1. As a result, *m *= (*m *- 1) + 1 ≥ *n *- *f*(*α*') + 1 = *n *- (*f*(*α*') - 1) ≥ *n *- *f*(*α*). □

### Optimal scenario in canonical order

As mentioned previously, each circular multi-chromosomal genome with *n *genes can be expressed by a permutation of *E *= {1, 2,..., *n*}. Given two such genomes *G*_{1 }and *G*_{2 }over the same gene set *E*, the *genome rearrangement distance *between *G*_{1 }and *G*_{2}, denoted by *d*(*G*_{1},*G*_{2}), is defined to be the minimum number of events needed to transform *G*_{1 }into *G*_{2}, where the events allowed to take place are fusions, fissions and block-interchanges. In this section, we shall show that there is an optimal series of events required to transform *G*_{1 }into *G*_{2 }such that all fusions come prior to all block-interchanges, which come before all fissions. Here, such an optimal scenario of genome rearrangements is referred as in *canonical order*.

**Lemma 2 ***d*(*G*_{1}, *G*_{2}) = *d*(*G*_{2}, *G*_{1}).

*Proof*. Let Φ = <*σ*_{1}, *σ*_{2},...,*σ*_{δ}> be an optimal series of events required to transform *G*_{1 }into *G*_{2}. Clearly, Φ' = <*σ*_{δ}, *σ*_{δ-1},...,*σ*_{1}> is an optimal series of events for transforming *G*_{2 }into *G*_{1 }by reversing the role of every event *σ*_{i}, where 1 ≤ *i *≤ *δ*, such that *σ*_{i} is a fission (respectively, fusion) in Φ' if *σ*_{i }is a fusion (respectively, fission) in Φ.

**Lemma 3 ***There is an optimal series of events required to transform **G*_{1 }*into **G*_{2 }*such that every fission occurs after every fusion and block-interchange*.

*Proof*. Let Φ = <*σ*_{1}, *σ*_{2},...,*σ*_{δ}> be an optimal series of events needed to transform *G*_{1 }into *G*_{2}. Of course, if every fission occurs after every fusion and block-interchange in Φ, then the proof is done. Now, suppose that not every fission occurs after every fusion or block-interchange in Φ. Then let *i *be the largest index in Φ such that *σ*_{i }is a fission preceding *σ*_{i+1 }that is either a fusion or a block-interchange. We can then obtain a new optimal series Φ' = <*σ*_{1},...,*σ*_{i-1}, ${{\sigma}^{\prime}}_{i}$, ${{\sigma}^{\prime}}_{i+1}$, *σ*_{i+2},...,*σ*_{δ}> to transform *G*_{1 }into *G*_{2 }such that ${{\sigma}^{\prime}}_{i}$ is a fusion or a block-interchange and ${{\sigma}^{\prime}}_{i+1}$ is a fission, as discussed below. Suppose that *σ*_{i} splits a chromosome *α *into *α*_{1 }and *α*_{2}. If *σ*_{i+1 }is a fusion, then we assume that it joins two chromosomes *β*_{1 }and *β*_{2}into *β*; otherwise, if *σ*_{i+1 }is a block-interchange, then assume that it affects *β*_{1 }such that *β*_{1 }becomes *β *through a block-interchange. Clearly, if neither *β*_{1 }nor *β*_{2 }is created by *σ*_{i}, then the desired series Φ' is obtained by swapping *σ*_{i} and *σ*_{i+1 }in Φ (i.e., ${{\sigma}^{\prime}}_{i}$ = *σ*_{i+1 }and ${{\sigma}^{\prime}}_{i+1}$ = *σ*_{i}). If both *β*_{1 }and *β*_{2 }are created by *σ*_{i}, then the net rearrangement of *σ*_{i} (a split operation) followed by *σ*_{i+1 }(a joint operation) either has no effect on *α *or becomes a block-interchange affecting *α*. By removing *σ*_{i }and *σ*_{i+1 }from Φ or replacing them with an extra block-interchange, we thus obtain a new optimal series of the events transforming *G*_{1 }into *G*_{2 }with strictly less than *δ *events, a contradiction. Hence, we assume that only one of *β*_{1 }and *β*_{2 }is created by *σ*_{i} and without loss of generality, let *β*_{1 }= *α*_{1}. Now, we consider the following two cases.

Case 1: *σ*_{i+1 }is a fusion. For simplicity of discussion, we let *α *= (1, 2,..., *x *- 1, *x*,..., *y *- 1), *β*_{2 }= (*y*, *y *+ 1,..., *z*), *σ*_{i }= (1, *x*) and *σ*_{i+1 }= (1, *y*), where 1 <*x *<*y *- 1 and *y *<*z*. Then the net rearrangement caused by *σ*_{i} and *σ*_{i+1 }is to transform *α *and *β *into *α*_{2 }= (*x*,*x*+1,...,*y *- 1) and *β *= (1, 2,..., *x *- 1, *y*, *y *+ 1,..., *z*). In fact, this rearrangement can also be done by first joining *α *and *β*_{2 }into (1, 2,..., *z*) via *σ*_{i+1 }and then splitting (1, 2,..., *z*) into *α*_{2 }and *β *via (*x*, *y*). In other words, we can obtain Φ' by letting ${{\sigma}^{\prime}}_{i}$ = *σ*_{i+1 }and ${{\sigma}^{\prime}}_{i+1}$ = (*x*, *y*).

Case 2: *σ*_{i+1 }is a block-interchange. Clearly, the net rearrangement caused by *σ*_{i} and *σ*_{i+1 }is to transform *α *into *β *and *α*_{2}, which is equivalent to the rearrangement by first applying *σ*_{i+1}to *α *and then further splitting it into *β *and *α*_{2 }via *σ*_{i}. Then Φ' is obtained by swapping *σ*_{i} and *σ*_{i+1 }in Φ.

In other words, we can always obtain Φ' from Φ according to the method described above. Repeating this process on the resulting Φ', we can finally obtain an optimal series of events that are required to transform *G*_{1 }into *G*_{2 }such that all fissions come after all fusions and block-interchanges.

**Lemma 4 ***There is an optimal series of events required to transform **G*_{1 }*into **G*_{2 }*in a canonical order such that all fusions come before all block-interchanges, which come before all fissions*.

*Proof*. Let Φ = <*σ*_{1}, *σ*_{2},..., *σ*_{δ}> be an optimal series of events required to transform *G*_{1 }into *G*_{2}. If there are no fusions or block-interchanges, then the proof is completed. If not, according to Lemma 3, we may assume that all fusions and block-interchanges occur earlier than all fissions. Let *i *be the index of the last non-fission in Φ and also let *G*' be the resulting genome after all *σ*_{1}, *σ*_{2},...*σ*_{i }have affected *G*_{1}. Since Φ is optimal, it is straightforward to see that Φ_{i }= <*σ*_{1}, *σ*_{2},...,*σ*_{i}> is an optimal series of fusions and block-interchanges needed to transform *G*_{1 }into *G*'. As discussed in the proof of Lemma 2, ${{\Phi}^{\prime}}_{i}$ = <*σ*_{i}, *σ*_{i-1},...,*σ*_{1}> is an optimal series of fissions and block-interchanges for transforming *G*' into *G*_{1}. Moreover, by Lemma 3, we can obtain ${{{\Phi}^{\prime}}^{\prime}}_{i}$ = <${{\sigma}^{\prime}}_{i}$, ${{\sigma}^{\prime}}_{i-1}$,...,${{\sigma}^{\prime}}_{1}$> from ${{\Phi}^{\prime}}_{i}$ for transforming *G*' into *G*_{1 }such that all block- interchanges in ${{{\Phi}^{\prime}}^{\prime}}_{i}$ occur prior to all fissions. Consequently, <${{\sigma}^{\prime}}_{1}$, ${{\sigma}^{\prime}}_{2}$,...,${{\sigma}^{\prime}}_{i}$> is an optimal series of fusions and block-interchanges needed to transform *G*_{1 }into *G*', and all its fusions occur before all its block-interchanges. Therefore, there is an optimal series of events needed to transform *G*_{1 }into *G*_{2 }such that all fusions come earlier than all block-interchanges, which come before all fissions. □

It is worth mentioning that an optimal scenario in a canonical order does not necessarily exist for linear multi-chromosomal genomes. For example, suppose that *G*_{1 }and *G*_{2 }are two given linear multi-chromosomal genomes, where *G*_{1 }= (1, 4, 5) (2, 3) and *G*_{2 }= (1, 2, 3) (4, 5). Then the optimal scenario between them is a fission, splitting (1, 4, 5) into (1) (4, 5), followed by a fusion, joining (1) and (2, 3) to (1, 2, 3). However, this optimal scenario can not be transformed into another in the canonical order according to the steps as described in Lemmas 3 and 4. Actually, there is no an optimal scenario between such two linear genomes using any two rearrangement events that begin with a fusion.

#### Algorithm

Let *α *and *I *be two given circular multi-chromosomal genomes over the same gene set *E *= {1, 2,...,*n*}. Here, we assume that the genes in *I *are sorted in the order of increasing and consecutive numbers, and that gene *i *+ 1 is on the right side of gene *i *within the same chromosome, where 1 ≤ *i *≤ *n *- 1. For example, *I *= (1, 2) (3, 4, 5) (6, 7, 8, 9) if *I *has three circular chromosomes with two, three and four genes, respectively. In this case, the computation of *d*(*α*,*I*) and its corresponding optimal scenario can be considered as a problem of *sorting **α *using the minimum set of operations, including fusions, fissions and block-interchanges.

Suppose that *ρ*_{λ}*ρ*_{λ - 1 }... *ρ*_{1 }is a product of 2-cycles that corresponds to an optimal series Φ of fusions, fissions and block-interchanges for transforming *α *into *I*. Then Φ = *ρ*_{λ}*ρ*_{λ - 1}...*ρ*_{1 }= *I**α*^{-1 }and by Lemma 1, *λ *≥ *n *- *f*(*Iα*^{-1}). If Φ' = ${{\rho}^{\prime}}_{\lambda}{{\rho}^{\prime}}_{\lambda -1}\dots {{\rho}^{\prime}}_{1}$ is another product of *λ *2-cycles with Φ' = *Iα*^{-1}, then the number of 2-cycles in Φ' that function as fusions or fissions must be greater than or equal to that in Φ; otherwise, the total number of fusions, fissions and block-interchanges in Φ' for transforming *α *into *I *must be less than that in Φ, a contradiction. The reason is that a fusion or fission requires only one 2-cycle for rearrangement, whereas a block-interchange requires two 2-cycles. In other words, the number of 2-cycles serving as the fusions and fissions is minimum in any optimal series of events.

Based on the above observation as well as Lemma 4, below we design an efficient algorithm for computing *d*(*α*,*I*) and its optimal scenario of rearrangement events in a canonical order. Let *χ*(*α*) and *χ*(*I*) denote the numbers of chromosomes in *α *and *I*, respectively, and let *α *= *α*_{1}*α*_{2}...*α*_{χ(α) }and *I *= *I*_{1}*I*_{2}...*I*_{χ(I)}. Then, an undirected graph $\mathcal{G}$(*α*,*I*) = ($\mathcal{V}$_{α}, $\mathcal{V}$_{I}, $\mathcal{E}$) is constructed from *α *and *I *as follows.

• $\mathcal{V}$_{α }= {*α*_{1}, *α*_{2},...,*α*_{χ(α)}}.

• $\mathcal{V}$_{I }= {*I*_{1}, *I*_{2},...,*I*_{χ(I)}}.

• $\mathcal{E}$ = {(*α*_{i}, *I*_{j}) | 1 ≤ *i *≤ *χ *(*α*), 1 ≤ *j *≤ *χ *(*I*), and *α*_{i }and *I*_{j }have at least a common gene}.

For instance, suppose that *α *= *α*_{1}*α*_{2}...*α*_{5 }= (1, 2, 10) (11, 8, 9, 3, 6) (7, 4, 5,12) (13, 15) (14, 16) and *I *= *I*_{1}*I*_{2 }... *I*_{6 }= (1, 2, 3) (4, 5) (6, 7, 8) (9, 10, 11, 12) (13, 14) (15, 16). Then the induced graph $\mathcal{G}$(*α*,*I*) is shown in Figure Figure2,2, which is a bipartite graph since $\mathcal{V}$_{α }and $\mathcal{V}$_{I }are independent sets in $\mathcal{G}$(*α*, *I*) (i.e., no edge between any two vertices in $\mathcal{V}$_{α }or $\mathcal{V}$_{I}). A *connected component *of $\mathcal{G}$(*α*,*I*) is defined to be a maximal subgraph of $\mathcal{G}$(*α*,*I*) such that there exists a path between any pair of vertices in this subgraph. For example, the induced $\mathcal{G}$(*α*,*I*) as shown in Figure Figure22 has two connected components. Notice that if in a chromosome *I*_{k }of *I *there are two genes that appear in two different chromosomes *α*_{i} and *α*_{j }of *α*, then (*α*_{i}, *I*_{k}) $\mathcal{E}$ and (*α*_{j}, *I*_{k}) $\mathcal{E}$, and hence both *α*_{i} and *α*_{j} belong to the same connected component in $\mathcal{G}$(*α*,*I*).

Let {$\mathcal{C}$_{1}, $\mathcal{C}$_{2},...,$\mathcal{C}$_{ω}} denote the collection of all connected components in $\mathcal{G}$(*α*,*I*). For each 1 ≤ *i *≤ *ω*, let *β*_{i }and *J*_{i} denote the chromosomes in *α *and *I*, respectively, whose corresponding vertices belong to $\mathcal{C}$_{i }in $\mathcal{G}$(*α*,*I*). Let gene(*β*_{i}) and gene(*J*_{i}) be the collections of the genes in all chromosomes of *β*_{i }and *J*_{i}, respectively. Then gene(*β*_{i}) = gene(*J*_{i}) and gene(*β*_{i}) ∩ gene(*β*_{j}) = for any 1 ≤ *j *≠ *i *≤ *ω*. Let *n*_{i} be the number of genes in gene(*β*_{i}). Clearly, *n *= *n*_{1 }+ *n*_{2 }+ ... + *n*_{ω}. In addition, it can be verified that *Iα*^{-1 }= (*J*_{1}${\beta}_{1}^{-1}$) (*J*_{2}${\beta}_{2}^{-1}$) ... (*J*_{ω}${\beta}_{\omega}^{-1}$) and *f*(*Iα*^{-1}) = *f*(*J*_{1}${\beta}_{1}^{-1}$) + *f*(*J*_{2}${\beta}_{2}^{-1}$) + ... + *f*(*J*_{ω}${\beta}_{\omega}^{-1}$).

According to the properties above, we then find a product Φ of 2-cycles so that Φ*α *= *I *as follows. We first find a product Φ_{i }of 2-cycles that corresponds to an optimal series of the rearrangement events required to transform *β*_{i }into *J*_{i }(i.e., Φ_{i}*β*_{i }= *J*_{i} and hence Φ_{i }= *J*_{i}${\beta}_{j}^{-1}$) and then let Φ = Φ_{ω}Φ_{ω-1 }... Φ_{1}. Clearly, Φ = *Iα*^{-1 }and hence Φ corresponds to a feasible series of events for transforming *α *into *I*. Actually, we shall show later that the number of 2-cycles in each Φ_{i }is *n*_{i }- *f*(*J*_{i}${\beta}_{i}^{-1}$), and in Φ_{i} the number of 2-cycles functioning as the fusions and fissions is minimum. This causes that the number of 2-cycles in Φ equals to ${\sum}_{i=1}^{\omega}{n}_{i}}-f({J}_{i}{\beta}_{i}^{-1})=n-f(I{\alpha}^{-1})$, in which the number of 2-cycles serving as the fusions and fissions is minimum. As a result, Φ is an optimal series of events for transforming *α *into *I*. The above description indicates that the original problem can be conquered by independently solving the same problem on the smaller instance whose induced bipartite graph is a connected component of $\mathcal{G}$(*α*, *I*).

To simplify our discussion, throughout the rest of this section we assume that the induced $\mathcal{G}$(*α*, *I*) of a given instance *α *and *I *has exactly one connected component. Let Φ = <*σ*_{1}, *σ*_{2}, ...., *σ*_{δ}> be an optimal series of events for transforming *α *into *I *in which all fusions precede all block-interchanges that further precede all fissions. Let *n*_{fu}, *n*_{bi }and *n*_{fi }denote the numbers of fusions, block-interchanges and fissions, respectively, in Φ. Then *δ *= *n*_{fu }+ *n*_{bi }+ *n*_{fi}. In the following, we shall show that Φ can be expressed by a product of *n *- *f*(*Iα*^{-1}) 2-cycles in which the number of 2-cycles functioning as the fusions and fissions is minimum.

It should be noticed that the chromosomes considered here are disjoint (i.e., without gene duplication). Hence, for any two chromosomes *α*_{i} and *α*_{j }in *α *with (*α*_{i}*I*_{k}) $\mathcal{E}$ and (*α*_{j}, *I*_{k}) $\mathcal{E}$, there must exist a fusion in Φ that joins *α*_{i} and *α*_{j }to one chromosome; otherwise, *I*_{k }can not be formed from *α *by a fission later. Since all needed fusions come together in the beginning of Φ, *n*_{fu }= *χ*(*α*) - 1, which is the lower bound of the number of fusions required in any optimal series of events for transforming *α *into *I*. After these *n*_{fu }fusions, the resulting *α *becomes only one chromosome. Since the next *n*_{bi }block-interchanges are intra-chromosomal mutations, we have *n*_{fi }= *χ*(*I*) - 1. Actually, *χ*(*I*) - 1 is the minimum number of the required fissions in any optimal series of events for transforming *α *into *I*, since it is the minimum number of the fusions used in the corresponding optimal series of events to transform *I *into *α*.

Given any cycle *ρ*, we use *x * *ρ *to denote that *x *is a number in *ρ*. For any two *x * *ρ *and *y * *ρ*, they are said to be *adjacent *in *ρ *if *ρ*(*x*) = *y *or *ρ*(*y*) = *x*. Next, we show a way to derive *n*_{fu }2-cycles from *Iα*^{-1 }such that these 2-cycles function as the fusions that join all chromosomes of *α *to a single one, if *α *has multiple chromosomes, where *n*_{fu }= *χ*(*α*) - 1. For simplicity, later in the text we use "cycle in *Iα*^{-1}" to represent " cycle in the cycle decomposition of *Iα*^{-1}" in meaning, unless a possible confusion may arise.

**Lemma 5 ***Let **α*_{i }*and **α*_{j }*be any two disjoint cycles in **α*. *Then there must exist a cycle in **Iα*^{-1 }*that contains two numbers x and y such that x * *α*_{i }*and y * *α*_{j}.

*Proof*. Since we assume that the induced $\mathcal{G}$(*α*, *I*) contains exactly and only one connected component, and *α*_{i }and *α*_{j }contain some numbers *u *and *v*, respectively, such that both *u *and *v *are in a cycle *I*_{k }of *I*. Notice that *u * *α*_{j }and *v * *α*_{i}. Suppose that there is no cycle in *Iα*^{-1 }that contains two numbers *x *and *y *such that they are in these two different cycles of *α*, say *x * *α*_{i} and *y * *α*_{j}. Then all numbers in any cycle of *Iα*^{-1 }are contained in some cycle of *α*. Without loss of generality, let *I*_{k }= (*u * *a*_{1}, *a*_{2}, ..., *a*_{p } *v*, ..., *a*_{q}) and let *p *<*q *for simplifying the discussion. For each 1 ≤ *x *≤ *p*, let *α*(*a*_{x}) = *b*_{x}. Then we have *Iα*^{-1}(*b*_{x}) = *a*_{x+1 }(since *Iα*^{-1}*α *= *I*), which means that both *b*_{x }and *a*_{x+1 }are in the same cycle of *Iα*^{-1 }and hence they are also in the same cycle of *α*. If *a*_{x }is in *α*_{i}, then *b*_{x }is also in *α*_{i}, which further leads to *a*_{x+1 } *α*_{i}. Since *u *= *a*_{1 }is in *α*_{i}, all *a*_{2}, *a*_{3}, ..., *a*_{p }are in *α*_{i}. As a result, both of *u *and *v *are in *α*_{i}, a contradiction. Hence, there exists a cycle in *Iα*^{-1 }that contains *x *and *y *such that *x * *α*_{i }and *y * *α*_{j}.

The following lemma can be easily verified.

**Lemma 6 **(*a*_{1}, *a*_{2},..., *a*_{i},..., *a*_{j}) = (*a*_{1}, *a*_{2},..., *a*_{i}) (*a*_{i+1},..., *a*_{j}) (*a*_{i}, *a*_{j}), *where *1 ≤ *i *<*j*.

According to Lemma 5, for any two cycles *α*_{i} and *α*_{j }of *α*, we can find two numbers *x *and *y *in a cycle of *Iα*^{-1}, say *β*, such that *x * *α*_{i} and *y * *α*_{j}. Let *β *= (*a*_{1}, *a*_{2},..., *a*_{q}), where *q *≥ 2. Then we consider the following two cases. Case 1: *x *and *y *are adjacent in *β*. For simplicity, let *x *= *a*_{q-1 }and *y *= *a*_{q}. Then by Lemma 6, *β *= (*a*_{1}, *a*_{2},..., *a*_{q-1}) (*a*_{q}) (*x*, *y*). Case 2: *x *and *y *are not adjacent in *β*. Let *x *= *a*_{p }and *y *= *a*_{q}, where 1 ≤ *p *<*q *- 1. Then *β *= (*a*_{1}, *a*_{2},..., *a*_{p}) (*a*_{p+1},..., *a*_{q}) (*x*,*y*) according to Lemma 6. In other words, we can derive a 2-cycle (*x*, *y*) from *β *such that it can join *α*_{i} and *α*_{j }to one cycle. After *α*_{i}, and *α*_{j }are joined together via (*x*, *y*), the number of the cycles (including 1-cycles) in the resulting *Iα*^{-1 }increases by one. Repeatedly based on the procedure above, we can derive consecutive *n*_{fu }2-cycles from *Iα*^{-1}, say _{1}, _{2},...,${\phi}_{{n}_{fu}}$, that can join *χ *(*α*) cycles in *α *to a single one, where *n*_{fu }= *χ*(*α*) - 1. In other words, _{1}, _{2},...,${\phi}_{{n}_{fu}}$ function as *χ*(*α*) - 1 fusions that transform genome *α *with *χ*(*α*) chromosomes into a genome, denoted by *α*', with a single chromosome. Clearly, we have *α*' = ${\phi}_{{n}_{fu}}$${\phi}_{{n}_{fu}-1}$..._{1}*α*, *Iα*'^{-1 }= *Iα*^{-1 }_{1}_{2 }... ${\phi}_{{n}_{fu}}$, and *f*(*Iα*'^{-1}) = *f*(*Iα*^{-1}) + *n*_{fu}. Hence, we can immediately claim the following.

**Claim 1 ***α*' = ${\phi}_{{n}_{fu}}$${\phi}_{{n}_{fu}-1}$..._{1}*α*, *Iα*'^{-1 }= *Iα*^{-1 }_{1}_{2 }... ${\phi}_{{n}_{fu}}$, and *f*(*Iα*'^{-1}) = *f*(*Iα*^{-1}) + *n*_{fu}, where *n*_{fu }= *χ*(*α*) - 1.

Without loss of generality, we now suppose that *χ*(*I*) > 1. Similarly as the discussion above, we can derive consecutive *n*_{fi }2-cycles from *α*'*I*^{-1}, say *ψ*_{1}, *ψ*_{2}, ..., ${\psi}_{{n}_{fi}}$, such that they serve as the fusions to transform *I *with *χ*(*I*) chromosomes into a genome, denoted by *I*', with only one chromosome, where *n*_{fi }= *χ*(*I*) - 1 and *α*'*I*^{-1 }is the inverse of *Iα*'^{-1 }(i.e., *α*'*I*^{-1 }= (*Iα*'^{-1})^{-1}). Then we have *I*' = ${\psi}_{{n}_{fi}}$${\psi}_{{n}_{fi}-1}$ ... *ψ*_{1}*I *(hence *ψ*_{1}*ψ*_{2 }... ${\psi}_{{n}_{fi}}$*I*' = *I*), *α*'*I*'^{-1 }= *α*'*I*^{-1}*ψ*_{1}*ψ*_{2 }... ${\psi}_{{n}_{fi}}$ and *f*(*α*'*I*'^{-1}) = *f*(*α*'*I*^{-1}) + *n*_{fi}. Conversely, we can use ${\psi}_{{n}_{fi}}$, ${\psi}_{{n}_{fi}-1}$…, *ψ*_{1 }as fissions to split *I*' with one chromosome into *I *with *n*_{fi }chromosomes. Since *α*'*I*^{-1 }is the inverse of *Iα*'^{-1}, it can be easily obtained from *Iα*'^{-1 }by just reversing the order of the numbers in each cycle of *Iα*'^{-1 }and hence *f*(*α*'*I*^{-1}) = *f*(*Iα*'^{-1}), which leads to *f*(*α*'*I*'^{-1}) = *f*(*Iα*'^{-1}) + *n*_{fi}. As a result, we have *f*(*I*'*α*'^{-1}) = *f*(*α*'*I*^{-1}) = *f*(*I**α*'^{-1}) + *n*_{fi }since *I*'*α*'^{-1 }= (*α*'*I*^{-1})^{-1}. Therefore, the following claim can be obtained.

**Claim 2 ***ψ*_{1}*ψ*_{2 }... ${\psi}_{{n}_{fi}}$*I*' = *I*, *α*'*I*'^{-1 }= *α*'*I*^{-1}*ψ*_{1}*ψ*_{2 }... ${\psi}_{{n}_{fi}}$*and **f*(*I*'*α*'^{-1}) = *f*(*Iα*'^{-1}) + *n*_{fi}, *where n*_{fi }= *χ*(*I*) - 1.

Notice that both *α*' and *I*' now are the genomes with only one chromosome. Then based on the algorithm proposed by Lin *et al*. [14], we can find ${n}_{bi}=\frac{n-f({I}^{\prime}{{\alpha}^{\prime}}^{-1})}{2}$ block-interchanges from *I*'*α*'^{-1 }to transform *α*' into *I*'. Certainly, these *n*_{bi }block-interchanges can be further expressed by a product of 2*n*_{bi }2-cycles, say ${\tau}_{1}^{1},{\tau}_{1}^{2},{\tau}_{2}^{1},{\tau}_{2}^{2},\dots ,{\tau}_{{n}_{bi}}^{1},{\tau}_{{n}_{bi}}^{2}$, such that every two consecutive 2-cycles act as a block-interchange in the process of transforming *α*' into *I*', where *I*'*α*'^{-1 }= ${\tau}_{{n}_{bi}}^{2}{\tau}_{{n}_{bi}}^{1}{\tau}_{{n}_{bi}-1}^{2}{\tau}_{{n}_{bi}-1}^{1}\dots {\tau}_{1}^{2}{\tau}_{1}^{1}$. Hence, we have the following claim immediately.

**Claim 3 ***I' *= ${\tau}_{{n}_{bi}}^{2}{\tau}_{{n}_{bi}}^{1}{\tau}_{{n}_{bi}-1}^{2}{\tau}_{{n}_{bi}-1}^{1}\dots {\tau}_{1}^{2}{\tau}_{1}^{1}$*α'*.

Now we let Φ = *ψ*_{1}*ψ*_{2}...${\psi}_{{n}_{fi}}{\tau}_{{n}_{bi}}^{2}{\tau}_{{n}_{bi}}^{1}\dots {\tau}_{1}^{2}{\tau}_{1}^{1}{\phi}_{{n}_{fu}}{\phi}_{{n}_{fu}-1}\dots {\phi}_{1}$. Then the result of Φ*α *= *I *(hence Φ = *Iα*^{-1}) can be easily verified by Claims 1, 2 and 3 as follows.

In other words, Φ is a product of (*n*_{fu }+ (*n *- *f*(*I*'*α*'^{-1})) + *n*_{fi}) 2-cycles that can transform *α *into *I*. More clearly, Φ first uses _{1}, _{2},...,${\phi}_{{n}_{fu}}$ (acting as *n*_{fu }fusions) to transform *α *into *α*', then uses ${\tau}_{1}^{1},{\tau}_{1}^{2},\dots ,{\tau}_{{n}_{bi}}^{1},{\tau}_{{n}_{bi}}^{2}$ (acting as *n*_{bi }block-interchanges) to transform *α*' into *I*', and finally uses ${\psi}_{{n}_{fi}}$, ${\psi}_{{n}_{fi}-1}$,..., *ψ*_{1 }(acting as *n*_{fi }fissions) to transform *I*' into *I*. By Claims 1 and 2, we can show that (*n*_{fu }+ (*n *- *f*(*I*'*α*'^{-1})) + *n*_{fi }= *n *- *f*(*Iα*^{-1}) as follows.

*n*_{fu }+ (*n *- *f*(*I*'*α*'^{-1})) + *n*_{fi}

= *n*_{fu }+ (*n *- *f*(*Iα*'^{-1}) + *n*_{fi}) + *n*_{fi } (by Claim 2)

= *n*_{fu }+ (*n *- *f*(*Iα*^{-1}) + *n*_{fu }- *n*_{fi}) + *n*_{fi } (by Claim 1)

= *n *- *f*(*Iα*^{-1})

As mentioned before, *χ*(*α*) - 1 and *χ*(*I*) - 1 are the lower bounds of the numbers of fusions and fissions, respectively, required in any optimal series of rearrangement events for transforming *α *into *I*. Hence, the number of 2-cycles in Φ that function as the fusions and fissions is minimum. Along with that Φ = *Iα*^{-1 }can be expressed as a product of *n *- *f*(*Iα*^{-1}) 2-cycles, we thus conclude that Φ is an optimal series of the events that transform *α *into *I *with first *n*_{fu }fusions, then *n*_{bi }block-interchanges and finally *n*_{fi }fissions, where *n*_{fu }= *χ*(*α*) -1, ${n}_{bi}=\frac{n-f({I}^{\prime}{{\alpha}^{\prime}}^{-1})}{2}=\frac{n-f(I{\alpha}^{-1})-{n}_{fu}-{n}_{fi}}{2}$, and *n*_{fi }= *χ*(*I*) - 1.

**Lemma 7 ***There is an optimal series of the events needed to transform α into I in a canonical order such that all n _{fu }fusions come before all n_{bi }block-interchanges that come before all n_{fi }fissions, where *

*n*

_{fu }=

*χ*(

*α*) - 1, ${n}_{bi}=\frac{n-f(I{\alpha}^{-1})-{n}_{fu}-{n}_{fi}}{2}$

*and*

*n*

_{fi }=

*χ*(

*I*) - 1.

Let us take *α *= (1, 2,10) (11, 8, 9, 3, 6) (7, 4, 5, 12) and *I *= (1, 2, 3) (4, 5) (6, 7, 8) (9, 10, 11, 12) for an example. It should be straightforward to see that $\mathcal{G}$(*α*,*I*) is a connected bipartite graph with *χ*(*α*) = 3 and *χ*(*I*) = 4, and *Iα*^{-1 }= (1, 11, 7, 9, 6) (3, 10) (4, 8, 12) and hence *f*(*Iα ^{-2}*) = 5, since two 1-cycles (i.e., (2) and (5)) are not explicitly shown. First, we are to find two 2-cycles

_{1 }and

_{2 }(since

*n*

_{fu }=

*χ*(

*α*) -1 = 2) from

*Iα*

^{-1 }to transform genome

*α*with three chromosomes into genome

*α*' with exactly one chromosome. To this purpose, we let

_{1 }= (3,10) and

_{2 }= (4,8), since

*Iα*

^{-1 }= (1, 11, 7, 9, 6) (4, 12) (4, 8) (3, 10). Then by Claim 1,

*α*' =

_{2}

_{1}

*α*= (4, 5, 12, 7, 8, 9, 10, 1, 2, 3, 6, 11) and

*Iα*'

^{-1 }=

*Iα*

^{-1}

_{1}

_{2 }= (1, 11, 7, 9, 6) (4, 12). Next, we need to find three 2-cycles

*ψ*

_{1},

*ψ*

_{2 }and

*ψ*

_{3 }(since

*n*

_{fi }=

*χ*(

*I*) - 1 = 3) from

*α*'

*I*

^{-1}, which is equal to (

*Iα*'

^{-1})

^{-1 }= (6, 9, 7, 11, 1) (12, 4) = (1, 7, 11) (1, 9) (1, 6) (12, 4), to transform

*I*into

*I*' with only one chromosome. By letting

*ψ*

_{1 }= (12, 4),

*ψ*

_{2 }= (1, 6) and

*ψ*

_{3 }= (1, 9), we have

*I*' =

*ψ*

_{3}

*ψ*

_{2}

*ψ*

_{1 }= (1, 2, 3, 6, 7, 8, 9, 10, 11, 4, 5, 12) and

*α*'

*I*'

^{-1 }=

*α*'

*I*

^{-1}

*ψ*

_{1}

*ψ*

_{2}

*ψ*

_{3 }= (1, 7, 11) according to Claim 2. Finally, we will find two 2-cycles ${\tau}_{\text{1}}^{\text{1}}$ and ${\tau}_{\text{1}}^{\text{2}}$ (since

*n*-

*f*(

*Iα*

^{-1}) -

*n*

_{fu }-

*n*

_{fi }= 12 - 5 - 2 - 3 = 2) from

*I*'

*α*'

^{-1 }that act as a block-interchange to transform

*α*' into

*I*', where

*I*'

*α*'

^{-1 }= (

*α*'

*I*'

^{-1})

^{-1 }= (11, 7, 1) = (11, 1) (11, 7). By letting ${\tau}_{\text{1}}^{\text{1}}$ = (11, 7) and ${\tau}_{\text{1}}^{\text{2}}$ = (11, 1), we have ${\tau}_{\text{1}}^{\text{2}}$${\tau}_{\text{1}}^{\text{1}}$

*α*' = (11, 1) (11, 7) (4, 5, 12, 7, 8, 9, 10, 1, 2, 3, 6, 11) = (11, 4, 5, 12, 1, 2, 3, 6, 7, 8, 9, 10), which indeed equals

*I*'. Consequently, we find an optimal series of events Φ=

*ψ*

_{1}

*ψ*

_{2}

*ψ*

_{3}${\tau}_{\text{1}}^{\text{2}}$${\tau}_{\text{1}}^{\text{1}}$

_{2}

_{1 }that transform

*α*into

*I*(i.e., Φ

*α*=

*I*).

Based on the idea above, we have designed Algorithm Sorting-by-ffbi (meaning sorting by fusions, fissions and block-interchanges) to compute the genome rearrangement distance *d*(*α*, *I*) between two given circular multi-chromosomal genomes *α *and *I*, and also to generate an optimal scenario of the required rearrangement events in a canonical order. In Algorithm Sorting-by-ffbi, the purpose of Step 2.3.3 (respectively, Step 2.4.4) is to find two numbers *x *and *y *that are both in some cycle of *γ *= *J*_{i}${\beta}_{i}^{-1}$ (respectively, *γ *= ${{\beta}^{\prime}}_{i}{J}_{i}^{-1}$), but in different cycles in *β*_{i}. By Lemma 5, such *x *and *y *exist. In fact, they can be found using the following simple approach. For simplicity, let *γ*_{k }= (${a}_{k}^{1},{a}_{k}^{2},\dots ,{a}_{k}^{{l}_{k}}$) be a cycle in *γ *that contains two numbers *x *and *y *such that they are in different cycles in *β*_{i}. Then we only need to check whether ${a}_{k}^{1}$ and ${a}_{k}^{j}$, where 2 ≤ *j *≤ *l*_{k}, are in different cycles in *β*_{i }or not. If so, we let *x *= ${a}_{k}^{1}$ and *y *= ${a}_{k}^{j}$. The reason is as follows. Suppose that both ${a}_{k}^{1}$ and ${a}_{k}^{j}$ for all 2 ≤ *j *≤ *l*_{k }are in the same cycle in *β*_{i}. Then all of numbers ${a}_{k}^{1},{a}_{k}^{2},\dots ,{a}_{k}^{{l}_{k}}$ in *γ*_{k }are in the same cycle in *β*_{i}, which contradicts the above assumption that *γ*_{k }contains *x *and *y *that are in different cycles in *β*_{i}.

#### Algorithm sorting-by-ffbi

**Input: **Two circular multi-chromosomal genomes *α *and *I*.

**Output: ***d*(*α*,*I*) and a minimum series Φ of events required to transform *α *into *I*.

**1:** Find all connected components $\mathcal{C}$_{1}, $\mathcal{C}$_{2},...,$\mathcal{C}$_{ω }in graph $\mathcal{G}$(*α*,*I*);

/* Denote by *n*_{i} the number of genes in $\mathcal{C}$_{i}. */

**2:** **for **each $\mathcal{C}$_{i}, 1 ≤ *i *≤ *ω*,**do**

/* Denote by *β*_{i }(resp. *J*_{i}) the collection of chromosomes in *α *(resp. *I*) whose corresponding vertices are in $\mathcal{C}$_{i}. */

**2.1:** Compute *J*_{i}${\beta}_{i}^{-1}$ and let *γ *= *J*_{i}${\beta}_{i}^{-1}$;

**2.2:** *n*_{fu }= *χ*(*β*_{i}) - 1, *n*_{fi }= *χ*(*J*_{i}) -1, ${n}_{bi}=\frac{{n}_{i}-f(\gamma )-{n}_{fu}-{n}_{fi}}{2}$ and *δ*_{i }= *n*_{fu }+ *n*_{bi }+ *n*_{fi};

**2.3:** **if ***χ*(*β*_{i}) > 1 **then** /* To compute _{1}, _{2},...,${\phi}_{{n}_{fu}}$ */

**2.3.1:** **for **each cycle of *β*_{i }**do**

Create a set to contain all the numbers in this cycle;

**endfor**

**2.3.2:** /* Let *γ*_{1}*γ*_{2 }... *γ*_{p }be the cycle decomposition of the current *γ *and

let *γ*_{q }= (${a}_{q}^{1},{a}_{q}^{2},\dots ,{a}_{q}^{{l}_{q}}$), where 1 ≤ *q *≤ *p *and *l*_{q }≥ 2 */

*k *= 1 and *h *= 2;

**2.3.3:** **for ***j *= 1 to *n*_{fu }**do**

*S *= find-set (${a}_{k}^{1}$);

**while ***S *= find-set(${a}_{k}^{h}$)) **do**

**if ***h *<*l*_{k }**then ***h *= *h *+ 1; **else ***k *= *k *+ 1, *h *= 2 and *S *= findset (${a}_{k}^{1}$);

**endwhile**

*x *= ${a}_{k}^{1}$ and *y *= ${a}_{k}^{h}$;

_{j }= (*x*, *y*) and union(*x*, *y*);

**endfor**

**2.3.4:** ${{\beta}^{\prime}}_{i}$ = ${\phi}_{{n}_{fu}}$${\phi}_{{n}_{fu}-1}$..._{1}*β*_{i }and *γ *= *γ*_{1}_{2}...${\phi}_{{n}_{fu}}$; /* Currently, *γ *is *J*_{i}${{\beta}^{\prime}}_{i}^{-1}$ */

**endif**

**2.4:** **if ***χ*(*J*_{i}) > 1 **then**/* To compute *ψ*_{1}, *ψ*_{2},...,${\psi}_{{n}_{fi}}$ */

**2.4.1:** *γ *= *γ*^{-1}/* New *γ *becomes ${{\beta}^{\prime}}_{i}{J}_{i}^{-1}$ */

**2.4.2:** **for **each cycle of *J*_{i}** do**

Create a set to contain all the numbers in this cycle;

**endfor**

**2.4.3:** /* Let *γ*_{1}*γ*_{2}...*γ*_{p }be the cycle decomposition of the current *γ *and

let *γ*_{q }= (${a}_{q}^{1},{a}_{q}^{2},\dots ,{a}_{q}^{{l}_{q}}$), where 1 ≤ *q *≤ *p *and *l*_{q }≥ 2 */

*k *= 1 and *h *= 2;

**2.4.4:** **for ***j *= 1 to *n*_{fi }**do**

*S *= find-set(${a}_{k}^{1}$);

**while **(*S *= find-set(${a}_{k}^{h}$)) **do**

**if ***h *<*I*_{k }**then ***h *= *h *+ 1; **else ***k *= *k *+ 1,*h *= 2 and *S *= find-set(${a}_{k}^{1}$);

**endwhile **

*x *= ${a}_{k}^{1}$ and *y *= ${a}_{k}^{h}$;

*ψ*_{j }= (*x*, *y*) and union(*x*, *y*);

**endfor**

**2.4.5:** = ${\psi}_{{n}_{fi}}$${\psi}_{{n}_{fi}-1}$... *ψ*_{1}*J*_{i }and *γ *= *γ**ψ*_{1}*ψ*_{2}...${\psi}_{{n}_{fi}}$; /* Currently, *γ *is ${{\beta}^{\prime}}_{i}{{J}^{\prime}}_{i}^{-1}$ */

**endif**

**2.5:** /* To compute ${\tau}_{1}^{1},{\tau}_{1}^{2},\dots ,{\tau}_{{n}_{bi}}^{1},{\tau}_{{n}_{bi}}^{2}$ */

**2.5.1:** *γ *= *γ*^{-1};/* New *γ *becomes ${{J}^{\prime}}_{i}$${{\beta}^{\prime}}_{i}^{-1}$ */

**2.5.2:** ${n}_{bi}=\frac{{n}_{i}-f(\gamma )}{2}$;

**2.5.3:** **for ***j *= 1 to *n*_{bi }**do**

Arbitrarily choose two adjacent elements *x *and *y *in *γ*;

/* Let ${{\beta}^{\prime}}_{i}$ = (*a*_{1},*a*_{2}...,${a}_{{n}_{i}}$) */

Circularly shift (*a*_{1}, *a*_{2},...,${a}_{{n}_{i}}$) such that *a*_{1 }= *x *and assume *y *= *a*_{k};

${\tau}_{j}^{\text{1}}$ = (*x*, *y*);

**for ***h *= 1 to *n*_{i }**do**

index (*a*_{h}) = *h*;

**end for**

Find two adjacent elements *u *and *v *in *γ *(*x*, *y*) such that

index(*u*) ≤ *k *- 1 and index(*v*) ≥ *k*;

${\tau}_{j}^{\text{2}}$ = (*u, v*);

${{\beta}^{\prime}}_{i}$ = ${\tau}_{j}^{\text{2}}$${\tau}_{j}^{\text{1}}$${{\beta}^{\prime}}_{i}$ and *γ *= *γ*${\tau}_{j}^{\text{1}}$${\tau}_{j}^{\text{2}}$;

**endfor**

**3:** Let ${\Phi}_{i}={\psi}_{1}\dots {\psi}_{{n}_{fi}}{\tau}_{{n}_{bi}}^{2}{\tau}_{{n}_{bi}}^{1}\dots {\tau}_{1}^{2}{\tau}_{1}^{1}{\phi}_{{n}_{fu}}\dots {\phi}_{1}$ for each 1 ≤ *i *≤ *ω*;.

**4:** Output *d*(*α*, *I*) = $\sum}_{i=1}^{\omega}{\delta}_{i$ and Φ = Φ_{1}Φ_{2}...Φ_{ω};

**Theorem 1 ***Given two circular multi-chromosomal genomes α and I over the same gene set **E *= {1,2,..., *n*}, *the problem of computing the genome rearrangement distance between α and I using fusions, fissions and block-interchanges can be solved and an optimal series of such events in a canonical order can be obtained in *$\mathcal{O}$(*n*^{2}) *time*.

*Proof*. As discussed above, Algorithm Sorting-by-ffbi transforms *α *into *I *using the minimum number of fusions, fissions and block-interchanges. Next, we follow to analyze its time-complexity. Notice that given an undirected graph with *p *vertices and *q *edges, all the connected components in this graph can be found in $\mathcal{O}$(*p *+ *q*) time using depth-first search or breadth-first search [31]. As a result, Step 1 can be done in $\mathcal{O}$(*n*^{2}) time for computing the connected components in the induced bipartite graph $\mathcal{G}$(*α*, *I*), since in the worst case, the number of edges in $\mathcal{G}$(*α*,*I*) is *χ*(*α*) × *χ*(*I*) and *χ*(*α*) = $\mathcal{O}$(*n*) and *χ*(*I*) = $\mathcal{O}$(*n*). In Step 2, there are *ω *outer iterations, each computing the minimum series of events needed to transform *β*_{i }into *J*_{i}, where 1 ≤ *i *≤ *ω*. Clearly, Steps 2.1 costs $\mathcal{O}$(*n*_{i}) time for computing *J*_{i}${\beta}_{i}^{-1}$ and Step 2.2 takes only a constant time. The time cost of Step 2.3 is mostly contributed from that of Step 2.3.3. There are *n*_{fu }inner iterations in Step 2.3, each with the purpose of finding two numbers *x *and *y *that are both in the same cycle in *γ *and, however, in the different cycles in *β*_{i}. In the worst case, Step 2.3 needs *n*_{i} find-set operations and *n*_{fu }union operations to finish its overall process. Note that Step 2.3.1 can be implemented by initially creating a set for each number in gene(*β*_{i}) and then performing *n*_{i }- *χ*(*β*_{i}) union operations to generate *χ*(*β*_{i}) sets with each corresponding to a cycle in *β*_{i}, where *χ*(*β*_{i}) = *n*_{fu }+ 1. Hence, the total number of union operations is *n*_{i }- 1 in Step 2.3. In fact, these find-set and union operations can be implemented in $\mathcal{O}$(*n*_{i}) time using the so-called "static disjoint set union and find" algorithm proposed by Gabow and Tarjan [32]. In other words, Step 2.3 can cost only $\mathcal{O}$(*n*_{i}) time. By the same principle, it can be verified that the time cost of Step 2.4 is $\mathcal{O}$(*n*_{i}). As for Step 2.5, adopted from our previous work [14], it takes $\mathcal{O}$(*n*_{bi}*n*_{i}) time, where = $\mathcal{O}$*n*_{i}). As a result, the time cost of Step 2 is $\mathcal{O}$(*ζ**n*), where *ζ *is the maximum *n*_{bi }among all iterations in Step 2 and *ζ *<*n*. Clearly, Steps 3 and 4 cost constant time. Therefore, the total time-complexity of Algorithm Sorting-by-ffbi is $\mathcal{O}$(*n*^{2}).

### Construction of orthologous genes

To analyze the rearrangement of three *Vibrio *genomes, we identified and constructed a table of orthologous genes that are putatively not involved in horizontal gene transfer (HGT) events by adopting the so-called symmetrical best hits (SymBets for short). In principle, two genes match and give SymBets if they are more similar to each other than they are to any other genes from the compared genomes [33,34]. Detection of such SymBet genes is, yet arguably, the simplest and most suitable method for identification of probable orthologs for closely related genomes [33,34]. Particularly, this prediction of orthologs holds to be applicable even when sequence similarity between the compared proteins is relatively low [33,34]. For the purpose of excluding paralogous genes derived from lineage-specific gene duplications, we here considered only one-to-one orthologous genes, which actually have been demonstrated as a major pattern in prokaryotic genome evolution [34]. Therefore, we used the following steps to identify an HGT-free table of one-to-one orthologous genes from the three complete *Vibrio *genomes. First, the GenePlot [35] program offered by NCBI was utilized to find and construct a table of SymBet genes between each pair of *Vibrio *genomes. Next, after removing all one-to-many or many-to-many SymBets, the three resulting tables of SymBet genes were joined to give a new one of one-to-one orthologous genes for all the three *Vibrio *genomes by using a rule as follows. If genes *a *(from genome *A*) and *b *(from genome *B*),*b *and *c *(from genome C), and *c *and *a *are all one-to-one SymBet pairs, then a, *b *and *c *are considered as one-to-one orthologous genes for the genomes *A*,*B *and *C*. In other words, the SymBet relationships among a, *b *and *c *result in a triangle. Finally, those genes that were involved in the putative HGT events detected and available in the Horizontal Gene Transfer Database [36] were then deleted from the table of one-to-one orthologous genes.

## Authors' contributions

CLL and HTC contributed equally to this work. CLL conceived of the study, participated in the design and analysis of algorithm and drafted the manuscript. YLH participated in the algorithm design and software development, and carried out the bioinformatics experiments. TCW participated in the software development. HTC participated in the design and coordination of this study as well as in drafting the manuscript.

## Note

^{1}The Institute for Genome Research (TIGR) offers a website of Comprehensive Microbial Resource (CMR) that provides information on all of the publicly available and complete bacterial genomes.

## Acknowledgements

The authors would like to thank anonymous referees for many constructive comments in the presentation of this paper. This work was supported in part by National Science Council of Republic of China under grants NSC 94-2213-E-009-141 (C.L. Lu) and NSC 94-2113-M-009-007 (H.-T. Chiu).

## References

- Hannenhalli S, Pevzner PA. Transforming cabbage into turnip: polynomial algorithm for sorting signed permutations by reversals. J Assoc Comput Mach. 1999;46:1–27.
- Bader DA, Yan M, Moret BMW. A linear-time algorithm for computing inversion distance between signed permutations with an experimental study. J Comput Biol. 2001;8:483–491. [PubMed]
- Bafna V, Pevzner PA. Genome rearrangements and sorting by reversals. SIAM J Comput. 1996;25:272–289.
- Berman P, Hannenhalli S. Fast sorting by reversal. In: Hirschberg DS, Myers E, editor. Proceedings of the 7th Annual Symposium on Combinatorial Pattern Matching (CPM1996), Volume 1075 of Lecture Notes in Computer Science. Springer-Verlag; 1996. pp. 168–185.
- Berman P, Hannenhalli S, Karpinski M. 1.375-approximation algorithm for sorting by reversals. In: Mohring RH, Raman R, editor. Proceedings of the 10th Annual European Symposium on Algorithms (ESA2002), Volume 2461 of Lecture Notes in Computer Science. Springer-Verlag; 2002. pp. 200–210.
- Caprara A. Proceedings of the 1th Annual International Conference on Research in Computational Molecular Biology (RECOMB1997) ACM Press; 1997. Sorting by reversal is difficult; pp. 75–83.
- Caprara A. Sorting permutations by reversals and
*Eulerian*cycle decompositions. SIAM J Discrete Math. 1999;12:91–110. - Christie DA. A 3/2-approximation algorithm for sorting by reversals. In Proceedings of the 9th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA1998), ACM/SIAM. 1998. pp. 244–252.
- Kaplan H, Shamir R, Tarjan RE. Faster and simpler algorithm for sorting signed permutations by reversals. SIAM J Comput. 2000;29:880–892.
- Kececioglu JD, Sankoff D. Exact and approximation algorithms for the inversion distance between two permutations. In: Apostolico A, Crochemore M, Galil Z, Manber U, editor. Proceedings of the 4th Annual Symposium on Combinatorial Pattern Matching (CPM1993), Volume 684 of Lecture Notes on Computer Science. Springer-Verlag; 1993. pp. 87–105.
- Bafna V, Pevzner PA. Sorting by transpositions. SIAM J Discrete Math. 1998;11:221–240.
- Walter MEMT, Dias Z, Meidanis J. Proceedings of String Processing and Information Retrieval (SPIRE1998) IEEE Computer Society; 1998. Reversal and transposition distance of linear chromosomes; pp. 96–102.
- Christie DA. Sorting by block-interchanges. Inform Process Lett. 1996;60:165–169.
- Lin YC, Lu CL, Chang HY, Tang CY. An efficient algorithm for sorting by block- interchanges and its application to the evolution of
*Vibrio*species. J Comput Biol. 2005;12:102–112. [PubMed] - Lu CL, Wang TC, Lin YC, Tang CY. ROBIN: a tool for genome rearrangement of block-interchanges. Bioinformatics. 2005;21:2780–2782. [PubMed]
- Hannenhalli S. Polynomial algorithm for computing translocation distance between genomes. Discrete Appl Math. 1996;71:137–151.
- Kececioglu JD, Ravi R. Proceedings of the 6th ACM-SIAM Symposium on Discrete Algorithms (SODA1995) ACM/SIAM, San Francisco; 1995. Of mice and men: algorithms for evolutionary distances between genomes with translocation; pp. 604–613.
- Hannenhalli S, Pevzner PA. Proceedings of the 36th IEEE Symposium on Foundations of Computer Science (FOCS1995) IEEE Computer Society; 1995. Transforming men into mice (polynomial algorithm for genomic distance problem) pp. 581–592.
- Meidanis J, Bias Z. Genome rearrangements distance by fusion, fission, and transposition is easy. In: Navarro G, editor. Proceedings of the 8th International Symposium on String Processing and Information Retrieval (SPIRE2001) IEEE Computer Society; 2001. pp. 250–253.
- Tillier ER, Collins RA. Genome rearrangement by replication-directed translocation. Nat Genet. 2000;26:195–197. [PubMed]
- Yancopoulos S, Attie O, Friedberg R. Efficient sorting of genomic permutations by translocation, inversion and block interchange. Bioinformatics. 2005;21:3340–3346. [PubMed]
- FFBI: a tool of circular genome rearrangement by fusions, fissions and block-interchanges http://genome.life.nctu.edu.tw/FFBI/ [PMC free article] [PubMed]
- The COG database http://www.ncbi.nlm.nih.gov/COG/
- Dorsch M, Lane D, Stackebrandt E. Towards a phylogeny of the genus
*Vibrio*based on 16S rRNA sequences. Int J Syst Bacterial. 1992;42:58–63. [PubMed] - Kita-Tsukamoto K, Oyaizu H, Nanba K, Simidu U. Phylogenetic relationships of marine bacteria, mainly members of the family
*Vibrionaceae*,determined on the basis of 16S rRNA sequences. Int J Syst Bacteriol. 1993;43:8–19. [PubMed] - Okada K, Iida T, Kita-Tsukamoto K, Honda T. Vibrios commonly possess two chromosomes. J Bacteriol. 2005;187:752–757. [PMC free article] [PubMed]
- Thompson JD, Higgins DG, Gibson TJ. CLUSTAL W: improving the sensitivity of progressive multiple sequence alignment through sequence weighting, position-specific gap penalties and weight matrix choice. Nucleic Acids Res. 1994;22:4673–4680. [PMC free article] [PubMed]
- Felsenstein J. PHYLIP: phylogeny inference package (version 3.2) Cladistics. 1989;5:164–166.
- Fraleigh JB. A First Course in Abstract Algebra. 7. Addison-Wesley; 2003.
- Meidanis J, Dias Z. An alternative algebraic formalism for genome rearrangements. In: Sankoff D, Nadeau JH, editor. Comparative Genomics: Empirical and Analytical Approaches to Gene Order Dynamics, Map Alignment and Evolution of Gene Families. Kluwer Academic Publisher; 2000. pp. 213–223.
- Cormen TH, Leiserson CE, Rivest RL, Stein C. Introduction to Algorithms. 2. The MIT Press; 2001.
- Gabow HN, Tarjan RE. A linear-time algorithm for a special case of disjoint set union. J Comput Syst Sci. 1985;30:209–221.
- Tatusov RL, Koonin EV, Lipman DJ. A genomic perspective on protein families. Science. 1997;278:631–637. [PubMed]
- Koonin EV. Orthologs, paralogs, and evolutionary genomics. Annu Rev Genet. 2005;39:309–338. [PubMed]
- GenePlot http://www.ncbi.nlm.nih.gov/sutils/geneplot.cgi
- Garcia-Vallve S, Guzman E, Montero MA, Romeu A. HGT-DB: a database of putative horizontally transferred genes in prokaryotic complete genomes. Nucleic Acids Res. 2003;31:187–189. http://www.fut.es/~debb/HGT/ [PMC free article] [PubMed]

**BioMed Central**