Skip to main content


  • Proceedings
  • Open Access

Gene tree correction guided by orthology

  • 1Email author,
  • 2,
  • 1, 4,
  • 2, 3 and
  • 1
BMC Bioinformatics201314 (Suppl 15) :S5

  • Published:



Reconciled gene trees yield orthology and paralogy relationships between genes. This information may however contradict other information on orthology and paralogy provided by other footprints of evolution, such as conserved synteny.


We explore a way to include external information on orthology in the process of gene tree construction. Given an initial gene tree and a set of orthology constraints on pairs of genes or on clades, we give polynomial-time algorithms for producing a modified gene tree satisfying the set of constraints, that is as close as possible to the original one according to the Robinson-Foulds distance. We assess the validity of the modifications we propose by computing the likelihood ratio between initial and modified trees according to sequence alignments on Ensembl trees, showing that often the two trees are statistically equivalent.


Software and data available upon request to the corresponding author.


  • Gene Tree
  • Corrected Tree
  • Extant Gene
  • Binary Resolution
  • Lower Common Ancestor


A gene tree represents the evolutionary relationships between a set of homologous genes. Gene trees are useful to unveil the molecular evolutionary events that have shaped today's genomes. They are traditionally constructed from sequence alignments [1], while recent methods also use the information from species phylogenies through reconciliation [28]. But constructing good gene trees is still challenging: for example, while they yield orthology and paralogy relationships between genes, often alternative or additional information, such as conserved synteny, is used to provide or confirm orthology [9].

The orthology information suggested by gene tree reconciliation may be contradictory with that suggested by an external source, such as conserved synteny [10, 11]. We explore a way to reconcile them by performing slight modifications to a given gene tree in order to fit external information on orthology.

We propose two kinds of gene tree modification, which consist in computing a gene tree as close as possible to the initial one, satisfying two kinds of constraints. One kind is a set of pairs of genes that should be orthologous but are seen as paralogous in the initial tree. This occurs when orthologs are computed with synteny for example [11]. The other kind is a set of clades that should be rooted by speciation nodes but are rooted by duplication nodes in the initial tree. This occurs when dubious duplications are detected because of the absence of extant support for a duplication, or because of ancestral synteny information [10]. We give polynomial-time algorithms for both problems under the Robinson-Foulds distance, thus proposing several ways to improve gene trees according to external information.

There are very few gene tree reconstruction methods including synteny information [12], whereas integrating this information could be valuable [13]. The modifications we propose could be included in a local search framework as other kinds of modifications based on duplications and losses [1417]. We assess the validity of the modifications we propose by computing the likelihood ratio between initial and modified trees according to sequence alignments on Ensembl trees [18], showing that often the two trees are statistically equivalent.

Different gene tree corrections


A phylogeny is a rooted binary tree which represents the evolutionary relationships between the nodes. Internal nodes are extinct ancestors, leaves are extant elements and edges represent direct descents between parents and children. Given a node x of a phylogeny T, we call an ancestor of x any node on the path from the root (inclusively) of T to the parent of x. For a leaf-subset X of T, lca T (X), the lowest common ancestor of X, denotes the farthest node from the root which is an ancestor of all elements of X. We use the notation l(x), and call the clade of x, the set of leaves which are descendant from an internal node x. We also denote by l(T ) the set of leaves, and by V(T ) the set of nodes of T.

We define two kinds of phylogenies: species trees and gene trees. Species are identified with genomes. For our purpose, genomes are simply sets of genes. Therefore, each gene g, extant or ancestral, belongs to a species s(g). We then have one species tree S, where nodes are identified with species, and many gene trees, where nodes are identified with genes. The set of genes in a gene tree is called a gene family.

A reconciliation between a gene tree G and a species tree S consists in assigning to each gene g of G (both extant and ancestral) the species s(g) corresponding to the lowest common ancestor in S of the set {s(l), for all l l(g)}. Every internal node g of G is labeled by an event E(g), verifying E(g) = speciation if s(g) is different from s(g) and s(g r ) where g and g r are the two children of g, and E(g) = duplication otherwise.

The reconciliation of G and S gives all informations about the gene family history. In particular it defines the gene content of an ancestral species at the time of speciation. A reconciliation also implies the orthology and paralogy relationships between genes: two genes g and g' of T are said to be orthologous if E(lca T (g, g')) = speciation; g and g' are paralogous if E(lca T (g, g')) = duplication. For example, Figure 1(1) shows a gene tree reconciled with a species tree. In this gene tree a1 and b1 are paralogous as their lowest common ancestor is d which is a duplication node, while a 2 and b 2 are orthologous. The number of dots inside big circles represents the number of genes in the corresponding genome (each big circle represents a species).
Figure 1
Figure 1

Description of the two problems. (1) A gene tree (the "initial tree") for the gene family {c, b 1, b 2, a 1, a 2} is shown with small red nodes and single thin red edges. It is reconciled with the phylogeny of the three species A, B and C shown with large green nodes and hollow edges represented by a pair of parallel black lines. Duplication nodes of the reconciled gene tree are squared, while speciation nodes and leaves are dots. (2) The two neighbors of b 1 on genome B and of a 1 on genome A are inferred to be orthologous according to their lowest common ancestor in their respective gene trees (not shown). This is an argument for infering orthology between b 1 and a 1, which is in contradiction with the information provided by the initial tree: their lowest common ancestor is a duplication, and thus they are inferred to be paralogous. (3) A solution to the GOC problem, that is a gene tree of minimum RF distance with the initial tree verifying the constraint of b 1 and a 1 being orthologous. (4) A solution to the COC problem, that is a reconciled tree in which the clade {b 1, b 2, a 1, a 2} of d in the initial tree is rather rooted by a speciation node in the corrected tree. This is an example where the optimal solutions to the two problems differ.

The Robinson-Fould (RF) distance

The RF distance RF (G, G') between two phylogenies G and G' is the cardinality of the symmetric difference between the clade-sets of the two trees. In other words, denote by c(G, G') the number of clades that are in G but not in G'. Then RF (G, G') = c(G, G') + c(G', G).

In this paper, since we only compare rooted binary trees sharing the same leaf-sets, they always have the same number of internal nodes, and hence the same number of clades. Therefore c(G, G') = c(G', G), and RF (G, G') = 2c(G, G').

Two correction problems

Suppose that in addition to a species tree and a set of reconciled gene trees, we are given additional information of two kinds:

  • Pairs of genes that we know are orthologous;

  • Duplication nodes of some gene trees that we suspect to be false.

Constraints of orthology on pairs of genes may for example be generated from synteny analysis [9, 11]. Some pairs may contradict the information given by the gene tree. Let P be a set of pairs (g1, g2) of orthologous extant genes (verifying s(g1) ≠ s(g2)). A gene tree G is said to satisfy a set P if, for any pair (g1, g2) P, lca G (g1, g2) is a speciation node.

Problem 1 Gene Orthology Correction [GOC] Problem

Input: A gene tree G reconciled with a species tree S, and a set P of gene pairs that are required to be orthologous;

Output: A corrected gene tree G P satisfying P, such that RF (G, G P ) is minimum among all possible solutions.

An example is given in Figure 1: (1) is the initial tree, and (2) depicts two syntenic regions of size 3 surrounding genes b 1 and a 1. In general (if we neglect the effect of gene conversion) genes in two syntenic regions should be either all pairwise orthologous or all pairwise paralogous [11]. Consequently, if the two neighbors of b 1 on genome B and of a 1 on genome C are inferred to be orthologous (according to their lowest common ancestor in their respective gene trees), then an orthology constraint should be imposed on the pair (b 1, a 1). Figure 1. This principle is usually considered as one of the most efficient method to detect orthologies [9]. (3) is a corrected tree.

On the other hand, duplication nodes of a gene tree can be considered dubious for different reasons. For example, in Ensembl [19], "dubious" is a label assigned to the non-apparent duplication nodes [20, 21] pointing to an incongruence between the gene tree and the species tree. Alternatively, inferred ancestral synteny may also point to dubious duplication nodes [10]. Formally, clades corresponding to some duplication nodes may erroneously be considered as sets of paralogous genes, and should rather be considered as orthologous.

A gene tree G is said to satisfy a set C of its clades if E(lca G (c)) = speciation for all c C.

Problem 2 Clade Orthology Correction [ COC ] Problem

Input: A gene tree G reconciled with a species tree S, and a set C of clades of G assigned to duplication nodes;

Output: A corrected tree GC satisfying C, such that RF (G, G C ) is minimum among all possible solutions.

The two problems are different, as exemplified by Figure 1, where (3) is an optimal solution to GOC while (4) is an optimal solution to COC, the latter more distant to the initial tree.

In the next two sections, we use S for the species tree name, G for the reconciled gene tree, and we give efficient solutions to these two problems.

The Gene Orthology Correction Problem

Notice that for any instance of the GOC problem, a corrected tree satisfying P always exists. Indeed, for any extant species x of S, one can make a tree whose leaf-set is all the extant genes g of G for which s(g) = x. Doing this for every species yields a forest whose roots can be reconnected by matching the topology of S, ensuring that any pair of genes not in the same species are orthologous. However, the obtained tree can be very far from the original.

Let P be a set of gene pairs (which are leaves of G) required to be orthologous. Notice that if (a, b) P, then we also have (b, a) P. For any pair (a, b) P, if lca G (a, b) is a duplication in G, then (a, b) is a pair of false paralogs. The set P f P denotes the set of all false paralogous pairs of P.

Given two distinct leaves a and b of G, we set r a,b = lca G (a, b), s a,b = lca S (s(a), s(b)), and define h a,b as the highest node (closest to the root) on the path from a to r a,b such that s(h a,b ) is a descendant of s a,b . Notice that h a,b can be a itself, but not r a,b .

For instance on Figure 2(1), a1, c2 are false paralogs with r a 1 , c 2 = e 3 and s a 1 , c 2 = E . From this, one can deduce that h a 1 , c 2 = d 2 and h c 2 , a 1 = c 2 . We show below that, for any pair (a, b) of false paralogs, h a,b is the highest node on the path from a to r a,b over which we can move b to make lca G (a, b) a speciation node. The reason for moving b as high as possible is to preserve as many clades as possible, allowing a minimum RF distance between the initial and corrected tree.
Figure 2
Figure 2

GOC Procedure. (1) A gene tree G reconciled with species tree S. Duplication nodes are denoted by a black square. The leaves and internal nodes of G are labeled with the letter of their corresponding species. Brackets denote the required orthologs given by the input set P = {(a1, b2), (a1, c1), (a1, c2)}. The non-preservable nodes (nodes of H) are depicted by red crosses, while preservable nodes are circled in green. (2) The species tree associated with G. (3) The tree G P , a solution to the GOC problem, which preserves every possible clade.

Lemma 1 Let (a, b) be a pair of false paralogs in G, and let G' be a tree in which a and b are orthologous. If x is an ancestor of h a,b and a descendant of r a,b , then the clade of x is not in G'.

Proof: Suppose otherwise that there is some x' V (G') with the same clade as x (and hence s(x) = s(x')). Let r' a,b = lca G' (a, b), which should be a speciation. Since b was not in the clade of x, it cannot be in the clade of x' either, implying that r'a,b is an ancestor of x'. Also, since s(x') = s(x) and x is above h a,b in G, we have that s(x') is s a,b or one of its ancestors (otherwise we would have picked x to be h a,b ). But r' has x' in one of its subtrees, and b in the other, implying that r'a,b is a duplication: contradiction.    □

We now have a way to identify a set of clades that cannot be in G P . For any (a, b) P f , denote by H a,b the set of ancestors of h a,b that are descendants of r a,b . If G P satisfies the set P f , G P cannot contain any clade from the set H = ( a , b ) P f H a , b . It follows that a minimum of |H| clades of G are missing in G P . We claim that a solution G P to the GOC problem is obtained by modifying exactly c(G, G P ) = |H| clades.

Theorem 1 Let G P be a solution to the GOC problem. Then RF (G, G P ) = 2|H|.

In what follows, we give a constructive proof of Theorem 1 by describing an algorithm for solving the GOC problem.

An algorithm for the GOC problem

Call V (G)\H the set of preservable nodes of G (those that we hope to preserve). For example in Figure 2(1), H = H a 1 , c 2 H c 2 , a 1 H a 1 , c 1 H c 1 , a 1 H a 1 , b 2 H b 2 , a 1 = { e 1 } { e 2 } { d 1 } = { e 1 , e 2 , d 1 } .The nodes of H are represented by red crosses, while the preservable nodes are circled in green. Notice that the root r of G is preservable, since any solution G P to the GOC problem should share the same leaf-set as G. Consider the set G of subtrees of G rooted on the highest preservable descendants of r, i.e. preservable nodes for which r is the unique preservable ancestor. Observe that since any leaf of G is preservable, we have G x G l ( G x ) = l ( G ) . If, for some (g1, g2) P, g1 and g2 are scattered across two subtrees of G, we call these subtrees required orthologous subtrees (or simply required orthologs when the context is clear as to whether we are comparing genes or subtrees). For example in the tree G of Figure 2(1), G is the set of subtrees rooted at d2, c1, b3 and c2 (the last four restricted to a single leaf), and the subtrees rooted at d2 and c1 are required orthologs, as well as those rooted at d2 and c2. However, connecting two subtrees under a speciation might not always be feasible. A definition of possible orthologs follows.

Definition 1 (Possible orthologs) Two subtrees G1, G2 G rooted at x1, x2 respectively are possible orthologs if and only if s(x1) and s(x2) are unrelated, i.e. neither is an ancestor of the other in S.

The following lemma ensures that the roots of required orthologous subtrees can actually be joined under a common parent which is a speciation.

Lemma 2 Let G1, G2 G be required orthologs. Then G1 and G2 are possible orthologs.

Proof: Let x1, x2 be the roots of G1, G2 respectively, and let (g1, g2) P such that g1 l(G1) and g2 l(G2). Let s , s r be the left and right children of s g 1 , g 2 , and denote by S and S r the subtrees of S rooted at s and s r respectively. Suppose without loss of generality that s(g1) is in l(S ) and s(g2) is in l(S r ). Since x1 is preservable and on the path between g1 and r g 1 , g 2 , we have x 1 H g 1 , g 2 and thus s(x1) V (S ). Similarly, s(x2) V (S r ). Therefore s(x1) and s(x2) are unrelated and possible orthologs.

The problem, formally defined in the sequel as the maximum orthology tree, consists in joining all trees of G into a single tree G' in a way ensuring that each pair of possible orthologs is joined under a speciation. More precisely, for some possible orthologs G 1 , G 2 G rooted at nodes x1, x2, we get that lcaG'(x 1, x2) is a speciation, with G1, G2 being unchanged.

We begin by giving an overview of the whole algorithm.

Algorithm Outline:
  1. 1.

    Compute the set H = ( a , b ) P f H a , b of internal nodes of G corresponding to clades that cannot be in G P ;

  2. 2.

    Compute the set G of subtrees rooted at the highest preservable descendants of the root of G. If G is empty, return G and terminate;

  3. 3.

    Construct a tree G' by joining all trees of G in a way ensuring that possible orthologs are joined under speciation. We call G' the maximum orthology tree for G ;

  4. 4.

    For every tree G x G , construct G x,P by recursively repeating Steps 2 to 4 with G being G x , and replace the G x subtree of G' by G x,P .


The tree obtained corresponds to the corrected tree G P we want. Running this algorithm on the G tree of Figure 2 yields the corrected tree G P . This algorithm terminates, since we eventually reach all the leaves of G, which correspond to terminal cases in the recursion. Implementing step 1 is straightforward, while step 2 can be done by performing a depth-first search from the root, in which upon visiting a preservable node, we add it to G and continue the search without visiting its children. Step 3 is the purpose of the next section, so assume for now that it can be performed correctly as stated. This algorithm can be implemented to run in O(|P | × |V (G)|) steps in the worst case, the main bottleneck being the computation of H. The algorithm correctness follows from the two lemmas below.

Lemma 3 Any preservable node x of G is preserved in G P , meaning that the clade of G rooted at x is a clade of G P .

Proof: Let x be a preservable node of G and G x be the subtree rooted at x. It is not hard to see that eventually, steps 2-4 will be run on G x and return a tree G x,P , which will itself be a subtree of the final corrected tree G P . As the algorithm only moves and reconnects subtrees of G x , we have that l(G x ) = l(G x,P ). Since G x,P is a subtree of G P , it follows that the clade of x is preserved in G P .

Lemma 4 Let (g1, g2) P. Then g1 and g2 are orthologs in G P .

Proof: Denote by G v the subtree rooted at v, for some v V (G). Let x be a preservable node and G x,P be the subtree produced after running steps 2-4 on G x . Let D be the set of highest preservable descendants of x. We say that a gene pair (g1,g2) is contained in G x if g1, g2 l(G x ). We use induction on the height of the tree to show that all gene pairs in P that are contained in G x are orthologous in G x,P (which proves the lemma since x can be the root). This is trivially true for leaves as they are preservable and contain no gene pairs. We thus suppose by induction that for any d D, gene pairs in P that are contained in G d are orthologous in G d,P . Let (g1, g2) P such that (g1, g2) is contained in G x , but there is no d D such that G d contains (g1, g2). What is left to prove is that g1 and g2 are orthologous in G x,P .

We first observe that g1, g2 belong to two different subtrees G d 1 , G d 2 , where d1, d2 D. Otherwise G d 1 = G d 2 , implying that (g1, g2) is contained in G d 1 and we are done. Therefore, G d 1 , G d 2 are required orthologs, and hence possible orthologs. Since we may assume that Gd1 and Gd2 are joined under a speciation in G x,P , we get that lc a G x , P ( g 1 , g 2 ) is a speciation. The result follows from observing that G x,P is a subtree of G P .

Maximum orthology tree

We now describe a solution to the maximum orthology tree problem. Formally, given a set of k possible orthologous subtrees of G rooted on a set of nodes X = {x1, . . . , x k }, the problem is to construct a tree F with l(F) = X, such that for each pair x i , x j X that correspond to roots of possible orthologs, x i and x j are orthologous in F.

Roughly speaking, the algorithm proceeds as follows: start with F0 being a copy of S. Iterate over i from 1 to k, at each step constructing F i by grafting x i on Fi- 1right above the node v V (F0) such that s(v) = s(x i ). Proceeding this way, we show in Lemma 5 that nodes of V (F0) are ensured to remain speciation nodes all over the procedure, and in lemma 6 that the lowest common ancestor of two possible orthologs belongs to V (F0), leading to corollary 1 stating that possible orthologs are in fact orthologous in the output tree. Finally remove the leaves artificially introduced by F0 and standardize the tree, which means

  • remove all nodes with no descendant labeled with extant genes;

  • contract non-root degree 2 nodes, then contract the root if it is of degree one.

Starting with F0 being a copy of S is a step that might be omitted, but the set of nodes V (F0) serves as a skeleton around which we graft our x i 's, making it both easily implementable and provable. Figure 3 shows how the algorithm proceeds on the set of highest preservable descendants of the root of the tree G in Figure 2(1).
Figure 3
Figure 3

The Max Orthology problem. An instance of the max orthology problem, with X being the highest preservable descendants of the root of G in figure 2. (1) The starting tree F0, which is a copy of S. (2) The F k tree, which depicts the tree obtained after grafting every node of X. (3) The final tree F, obtained by removing the leaves initially in F0 and standardizing.

Algorithm 1 findMaxOrthology(S, X = {x1, ... , x k })

   F0 A copy of S

   V0 ← V (F0)

   L ← l(F0)

   for i = 1 → k do

      Find the unique node v V0 such that s(v) = s(x i )

      F i a copy of F i - 1 on which we graft x i on the edge linking v to its parent node (or if v is the root of F i - 1 , create a new root with children v and x i )

   end for

   F ←F k on which we remove L and stardardize

Lemma 5 If r V (F0) ∩ V (F), then r is a speciation.

Proof: Since F0 is a copy of S, all nodes of V (F0) are initially speciation nodes. We show that each grafting operation does not change the event corresponding to these nodes. Say that at iteration i, we graft x i on the edge linking v to its parent node p. We first observe that the only nodes that can be transformed from speciation in F i-1 to duplication in F i are on the path from p to the root of F i-1 . Suppose without loss of generality that v is the left child of p in F i-1 , and let w be the newly created node between p and v in F i . Thus w has children xi and v, and since s(x i ) = s(v), we get that s(w) = s(v). It follows that if p was a speciation in F i-1 , it remains a speciation in F i . Moreover, this implies that s(p) is left unchanged in F i , implying in turn that any ancestor of p cannot change from speciation to duplication. Therefore, no grafting operation can affect speciation of any vertex in V (F i-1 ). Finally, we note that removing leaves or deleting degree two nodes in F also cannot affect speciation nodes.

Lemma 6 Let x i , x j X be the roots of possible orthologous subtrees. Then, lca F (x i , x j ) V (F0).

Proof: First recall that if x i ,x j are the roots of possible ortholog subtrees, then there is some s V (S) such that s(x i ) and s(x j ) are in the left and right subtrees of s, respectively. Now, let r be the unique node in V (F0) such that s(r) = s, and let v i , v j V (F0) such that s(v i ) = s(x i ) and s(v j ) = s(x j ). It is clear that in F0, lca(v i ,v j ) = r. This also holds for any F i by observing that grafting nodes cannot change the lca relationship. Since x i is grafted on some edge between v i and r, and x j between v j and r, it follows that lca(x i , x j ) = r V (F0).

Corollary 1 Let x i , x j X be the roots of possible orthologs. Then they are orthologous in F.

The Clade Orthology Correction Problem

We prove several results characterizing the solutions to the COC problem. Let C be a set of clades that has to be satisfied. For a clade c C, we denote by s(c) the value of s(r(c)) where r(c) is the root of c, and by E(c) the value of E(r(c)) that we call the label of c.

First, unlike in the GOC problem, a solution to the COC problem does not always exist. Indeed, it is possible that no gene tree has all clades in C labeled by speciations. We give a necessary and sufficient condition for the existence of a solution. The following lemma is obvious from the definition of reconciliation, and will be used in several proofs.

Lemma 7 For a reconciled gene tree G, if a node x is an ancestor of a node y and s(x) = s(y) then E(x) = duplication.

Theorem 2 There is a solution to the COC problem if and only if for every clade c C, s(c) is not a leaf of S, and if for every pair c1, c2 C, either c1 and c2 are disjoint sets of leaves, or s(c1) ≠ s(c2).

The necessity of these conditions directly follow from Lemma 7, since s(c1), s(c2) and the ancestry relationship between c1 and c2 remain unchanged in a solution. Their sufficiency will be constructively demonstrated in the sequel. Suppose that the conditions are satisfied. We give a way of finding all optimal solutions according to the RF distance, followed by two ways of finding an optimal one optimizing other criteria in addition.

Given a duplication node x of G, pushing x by multifurcation means applying the following procedure:

  • Let s = s(x), and A and B be the two children of s in S.

  • Let T A be the set of maximal subtrees of the subtree of G rooted at x, such that all their leaves l verify that s(l) is a descendant of A (including A itself). Let G A [x] be the multifurcated tree obtained by joining all roots of trees in T A under a common root.

  • Let symmetrically T B be the set of maximal subtrees of the subtree of G rooted at x, such that all their leaves l verify that s(l) is a descendant of B (including B itself). Let G B [x] be the multifurcated tree obtained by joining all roots of trees in T B under a common root.

  • Let G' be obtained from G by replacing the clade rooted at x by a new subtree, obtained by joining G A [x] and G B [x] under a common root.

This rearrangement is described in [16] and applied to dubious duplications as a preprocessing step for ancestral genome reconstruction.

A binary resolution G b of a multifurcated tree G is a binary tree in which all the clades of G are in G b .

Theorem 3 If there is a solution to the COC problem, then a binary gene tree is an optimal solution if and only if it is a binary resolution of the multifurcated tree obtained by pushing the roots of the elements of C by multifurcation (in any order).

Proof: It is clear that a binary resolution is a solution, provided that the conditions for the existence of a solution are satisfied. Indeed any clade is preserved through pushing a duplication node, so this operation can be done for all clades in C independently. This proves the converse part of Theorem 2.

Then it is an optimal solution because by Lemma 7, no clade x which is a descendant of the pushed clade c such that s(c) = s(x) may be conserved if we want c to be a speciation node. And by construction all clades such that s(c) ≠ s(x) are preserved by this operation.

Binary resolutions which minimize the number of duplications and losses are studied by [22] and may be applied to provide bona fide phylogenies. We describe an alternative maximizing the number of common triplets. A triplet in a tree G is a set of three leaves ((a, b), c) of G, such that the LCA of the three is strictly more ancient than the LCA of the first two.

Given a species tree S, a reconciled gene tree G and one of its duplication nodes x, pushing x by tree duplication means applying the following procedure, illustrated in Figure 4:
Figure 4
Figure 4

COC Procedure. An instance of the COC problem. In the gene tree G, where s(a1) = s(a2) = A, s(b1) = s(b2) = B and s(c) = C, extract and copy the subtree rooted at × to get the subtrees G A (x) and G B (x). Remove b1 and b2 from G A (x) and a1 and a2 from G B (x). Join G A (x) and G B (x) under a common root and replace G(x) by the new subtree in the gene tree G'.

  • Let s = s(x), and A and B be the two children of s in S.

  • Let G A [x] be a tree obtained from the subtree of G rooted at x, by deleting all leaves l with s(l) being a descendant of A, and standardizing it, which as in the previous sections, means
    • removing all nodes with no descendant labeled with extant genes;

    • contracting non-root degree 2 nodes, then contracting the root if it is of degree one.

  • Let symmetrically G B [x] be a tree obtained from the subtree of G rooted at x, by deleting all leaves l with s(l) being a descendant of B, and standardizing it.

  • Let G' be obtained from G by replacing the clade rooted at x by a new subtree, obtained by joining G A [x] and G B [x] under a common root.

Note that if a clade y is disjoint from x or assigned to a different species, then pushing x by tree duplication does not affect the subtree rooted at y. In consequence, pushing several clades by tree duplications in any order gives a unique solution if the clades satisfy the properties of Lemma 2.

Theorem 4 If there is a solution to the Clade Orthology Correction problem, the gene tree obtained by successively pushing the roots of the elements of C by tree duplication (in any order) is an optimal solution. Among all optimal solutions, it maximizes the number of common triplets with G.

Proof: As already noticed pushing a duplication by multifurcation preserves all clades assigned to species which are different from the species assigned to the pushed node. So it is an optimal solution.

Now we have to prove that none of the triplets that are in G but not in G' can be preserved in any other optimal solution. For this we characterize the triplets that can be preserved. For a triplet ((a, b), c) of G, let T((a,b),c)be the rooted phylogeny with three leaves and two internal nodes containing the triplet. If the leaves a, b, c are in the pushed clade x, then the triplet can be preserved only if in the reconciliation of T((a,b),c), the lowest internal node is not mapped to s(x). Otherwise by Lemma 7, the root node of the triplet cannot be a speciation.

Let ((a, b), c) be a triplet such that in the reconciliation of T((a,b),c), the lowest internal node is not mapped to s(x). This triplet is entirely included in G1[x] or G2[x]. So it is preserved. In consequence all triplets possibly preserved are indeed preserved by the operation, showing the optimality of the procedure reguarding the number of common triplets.

Now if there is no solution to the Clade Orthology problem, we advice to push duplication nodes in C starting from the highest ones, without having formalized why we find this solution adequate.

Fish gene trees

Using synteny as evidence of orthology, we wanted to test the ability of our algorithm designed for the GOC problem to correct gene trees. To this end, we considered the four fish genomes Gasterosteus aculeatus (Stickleback), Oryzias latipes (Medaka), Tetraodon nigroviridis, and Danio rerio (Zebrafish) with human and mouse as outgroups. We used the Ensembl Genome Browser to collect all available gene trees, and filtered each tree to preserve only genes from the taxa of interest. We then reconciled the trees with the known species trees, and identified duplication and speciation nodes. Following our methodology in [11], a region surrounding a gene is defined as the substring containing the gene and both its left and right adjacencies, and two regions are considered syntenic if they contain homologous genes in the same order. We observed in [11] that more than 22% of the 6241 collected gene trees contain at least one false paralogy, that is a pair of genes required from synteny to be orthologous, but the LCA of the corresponding leaves being a duplication rather than a speciation node.

For 1000 of the trees containing at least one false paralogy, we applied the correction procedure previously described, and retrieved the gene family alignment from Ensembl. With PhyML [23], we computed the likelihood of the initial and corrected tree, given the alignment. These two likelihood values were compared with Consel [24]. For only 17.7% of the trees, the correction was rejected by the AU test. In other words, the correction algorithm is valid for a vast majority (82.3%) of the tested trees. Moreover, the likelihood of the corrected tree is higher than the original for 44.4% of the trees. Interestingly, 14.8% of the original Ensembl gene trees were rejected when compared to the corrected trees.

The correction of the gene tree for the ZNF800 gene family, which is related to transcriptional regulation, is given as an example in Figure 5. The corrected tree was highly favored by the AU Test, giving it a statistical support advantage with a p-value below 0.001. Furthermore, the non-apparent duplication of G, located at the root of the (m1, t1, s1) subtree, was eliminated, resulting in one less duplication in G P .
Figure 5
Figure 5

An example of corrected fish tree. The tree for the ZNF800 gene family before and after correction, restricted to the species Stickleback (S), Medaka (M), Tetraodon (T) and Zebrafish (Z). (1) The original gene tree G given by Ensembl, using the same notation as in figure 2 for duplications, preservable nodes and required orthologs. Gene region analysis gave us the required orthologs P = {(m1, s1), (t1,d2)}. (2) The species tree associated with the four species. (3) The gene tree given by our correction algorithm.


We give two efficient algorithms for two new gene tree rearrangement problems, related to the correction of a gene tree according to some external information on orthology. The rearrangements are modifications that are as small as possible, given some distance criterion (namely the RF distance), but can be more significant according to other distances such as the usual NNI (nearest neighbor interchange) distance. We show that for fish genomes, the rearrangements we define can be efficient to explore statistically equivalent gene trees when sequence alignement is used to compute likelihood. As corrected trees satisfy synteny contraints, we can be confident enough that they describe the gene family evolution better.

Many algorithmic and theoretical problems remain open. For example, is there a similar way for handling paralogy constraints? What about having both orthology and paralogy constraints? It can be shown that there exist sets of constraints with both types that cannot be satisfied. What are the conditions for a set of orthology/paralogy constraints to be satisfiable?

These algorithms may be used in a global framework to contruct large gene tree sets which are arguably better than those found in standard databases. The implementation of such a framework is an on-going work.



This work is funded by the Natural Sciences and Engineering Reserach Council of Canada (NSERC), Fonds de Recherche Nature et technologies of Quebec, Agence Nationale pour la Recherche and Ancestrome project ANR-10-BINF-01-01.

This article has been published as part of BMC Bioinformatics Volume 14 Supplement 15, 2013: Proceedings from the Eleventh Annual Research in Computational Molecular Biology (RECOMB) Satellite Workshop on Comparative Genomics. The full contents of the supplement are available online at

Authors’ Affiliations

Département d'Informatique (DIRO), Université de Montréal, H3C3J7, Canada
Laboratoire de Biométrie et Biologie Évolutive, UMR CNRS 5558, Université Lyon I, F-69622 Villeurbanne, France
INRIA Grenoble Rhône-Alpes, F-38334 Montbonnot, France
McGill Center for Bioinformatics, McGill University, H3C2B4, Canada


  1. Felsenstein J: Evolurionary trees from DNA sequences: a maximum likelihood approach. Journal of Molecular Evolution. 1981, 17: 368-376. 10.1007/BF01734359.View ArticlePubMedGoogle Scholar
  2. Akerborg O, Sennblad B, Arvestad L, Lagergren J: Simultaneous Bayesian gene tree reconstruction and reconciliation analysis. Proceedings of the National Academy of Sciences of the United States of America. 2009, 106 (14): 5714-5719. 10.1073/pnas.0806251106.PubMed CentralView ArticlePubMedGoogle Scholar
  3. Berglund-Sonnhammer A, Steffansson P, Betts M, Liberles D: Optimal gene trees from sequences and species trees using a soft interpretation of parsimony. Journal of Molecular Evolution. 2006, 63: 240-250. 10.1007/s00239-005-0096-1.View ArticlePubMedGoogle Scholar
  4. Boussau B, Szöllosi GJ, Duret L, Gouy M, Tannier E, Daubin V: Genome-scale coestimation of species and gene trees. Genome Research. 2013, 23: 323-330. 10.1101/gr.141978.112.PubMed CentralView ArticlePubMedGoogle Scholar
  5. Gorecki P, Eulenstein O: A linear-time algorithm for error-corrected reconciliation of unrooted gene trees. ISBRA, Volume 6674 of LNBI. 2011, Springer-Verlag, 148-159.Google Scholar
  6. Rasmussen MD, Kellis M: A Bayesian approach for fast and accurate gene tree reconstruction. Molecular Biology and Evolution. 2011, 28: 273-290. 10.1093/molbev/msq189.PubMed CentralView ArticlePubMedGoogle Scholar
  7. Szöllosi GJ, Rosikiewicz W, Bousseau B, Tannier E, Daubin V: Efficient Exploration of the Space of Reconciled Gene Trees 2013. [Submitted].Google Scholar
  8. Thomas P: GIGA: a simple, efficient algorithm for gene tree inference in the genomic age. BMC Bioinformatics. 2010, 11: 312-10.1186/1471-2105-11-312.PubMed CentralView ArticlePubMedGoogle Scholar
  9. Jun J, Mandoiu II, Nelson CE: Identification of mammalian orthologs using local synteny. BMC Genomics. 2009, 10: 630-10.1186/1471-2164-10-630. []PubMed CentralView ArticlePubMedGoogle Scholar
  10. Chauve C, El-Mabrouk N, Gueguen L, Semeria M, Tannier E: Models and algorithms for genome evolution. 2013, Springer, chap. Duplication, rearrangement and reconciliation: a follow-up 13 years laterView ArticleGoogle Scholar
  11. Lafond M, Swenson K, El-Mabrouk N: Models and algorithms for genome evolution. 2013, Springer, chap. Error detection and correction of gene treesGoogle Scholar
  12. Wapinski I, Pfeffer A, Friedman N, Regev A: Automatic genome-wide reconstruction of phylogenetic gene trees. Bioinformatics. 2007, 23 (13): i549-i558. 10.1093/bioinformatics/btm193. []View ArticlePubMedGoogle Scholar
  13. Bérard S, Gallien C, Boussau B, Szöllosi GJ, Daubin V, Tannier E: Evolution of gene neighborhoods within reconciled phylogenies. Bioinformatics. 2012, 28 (18): i382-i388. 10.1093/bioinformatics/bts374.PubMed CentralView ArticlePubMedGoogle Scholar
  14. Chaudhary R, Burleigh J, Eulenstein O: Efficient error correction algorithms for gene tree reconciliation based on duplication, duplication and loss, and deep coalescence. BMC-Bioinformatics. 2011, 13 (Supp 10): S11-Google Scholar
  15. Górecki P, Eulenstein O: Algorithms: simultaneous error-correction and rooting for gene tree reconciliation and the gene duplication problem. BMC Bioinformatics. 2012, 13 (Suppl 10): S14-10.1186/1471-2105-13-S10-S14.PubMed CentralView ArticlePubMedGoogle Scholar
  16. Muffato M, Louis A, Poisnel CE, Crollius HR: Genomicus: a database and a browser to study gene synteny in modern and ancestral genomes. Bioinformatics. 2010, 26 (8): 1119-1121. 10.1093/bioinformatics/btq079.PubMed CentralView ArticlePubMedGoogle Scholar
  17. Nguyen T, Ranwez V, Pointet S, Chifolleau AMA, Doyon JP, Berry V: Reconciliation and local gene tree rearrangement can be of mutual profit. Algorithms Mol Biol. 2013, 8: 12-10.1186/1748-7188-8-12. []PubMed CentralView ArticlePubMedGoogle Scholar
  18. Flicek P: Ensembl 2012. Nucleic Acids Research. 2012, 40 (Database): D84-D90.PubMed CentralView ArticlePubMedGoogle Scholar
  19. Vilella A, Severin J, Ureta-Vidal A, Heng L, Birney E: EnsemblCompara GeneTrees: Complete, duplication-aware phylogenetic trees in vertebrates. Genome Research. 2009, 19 (2): 327-335.PubMed CentralView ArticlePubMedGoogle Scholar
  20. Chauve C, El-Mabrouk N: New perspectives on gene family evolution: losses in reconciliation and a link with supertrees. RECOMB 2009, Volume 5541 of LNCS. 2009, Springer, 46-58.Google Scholar
  21. Doroftei A, El-Mabrouk N: Removing Noise from Gene Trees. WABI 2011, Algorithms in Bioinformatics, Volume 6833 of LNCS/LNBI. 2011, 76-91.Google Scholar
  22. Lafond M, Swenson K, El-Mabrouk N: An Optimal Reconciliation Algorithm for Gene Trees with Polytomies. Algorithms in Bioinformatics, proceedings of WABI'12, Volume 7534 of LNCS/LNBI. 2012, 106-122.Google Scholar
  23. Guidon S, Gascuel O: A simple, fast and accurate algorithm to estimate large phylogenies by maximum likelihood. Systematic Biology. 2003, 52: 696704-Google Scholar
  24. Shimodaira H, Hasegawa M: Consel: for assessing the confidence of phylogenetic tree selection. Bioinformatics. 2001, 17 (12): 1246-1247. 10.1093/bioinformatics/17.12.1246.View ArticlePubMedGoogle Scholar


© Lafond et al; licensee BioMed Central Ltd. 2013

This article is published under license to BioMed Central Ltd. This is an open access article distributed under the terms of the Creative Commons Attribution License (, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.