Phylogenetic reconciliation
In phylogenetics, reconciliation is an approach to connect the history of two or more coevolving biological entities. The general idea of reconciliation is that a phylogenetic tree representing the evolution of an entity (e.g. homologous genes or symbionts) can be drawn within another phylogenetic tree representing an encompassing entity (respectively, species, hosts) to reveal their interdependence and the evolutionary events that have marked their shared history. The development of reconciliation approaches started in the 1980s, mainly to depict the coevolution of a gene and a genome, and of a host and a symbiont, which can be mutualist, commensalist or parasitic. It has also been used for example to detect horizontal gene transfer, or understand the dynamics of genome evolution.
Phylogenetic reconciliation can account for a diversity of evolutionary trajectories of what makes life's history, intertwined with each other at all scales that can be considered, from molecules to populations or cultures. A recent avatar of the importance of interactions between levels of organization is the holobiont concept, where a macro-organism is seen as a complex partnership of diverse species. Modeling the evolution of such complex entities is one of the challenging and exciting direction of current research on reconciliation.
Phylogenetic trees as nested structures
Phylogenetic trees are intertwined at all levels of organization, integrating conflicts and dependencies within and between levels. Macro-organism populations migrate between continents, their
Phylogenies have been used for representing the diversification of life at many
Phylogenetic reconciliation is the identification of the links between levels through the comparison of at least two associated trees. Originally developed for two trees, reconciliations for more than two levels have been recently constructed (see section Explicit modeling of three or more levels). As such, reconciliation provides evolutionary scenarios that reveal conflict and cooperation among evolving entities. These links may be unintuitive, for instance, genes present in the same genome may show uncorrelated evolutionary histories while some genes present in the genome of a symbiont may show a strong coevolution signal with the host phylogeny. Hence, reconciliation can be a useful tool to understand the constraints and evolutionary strategies underlying the assemblage that forms a holobiont.
Because all levels essentially deal with the same object, a
History
The principle of phylogenetic reconciliation was introduced in 1979[14] to account for differences between genes and species-level phylogenies. In a parsimonious setting, two evolutionary events, gene duplication and gene loss were invoked to explain the discrepancies between a gene tree and a species tree. It also described a score on gene trees knowing the species tree and an aligned sequence by using the number of gene duplication, loss, and nucleotide replacement for the evolution of the aligned sequence, an approach still central today with new models of reconciliation and phylogeny inference.[15]
The term reconciliation has been used by Wayne Maddison in 1997,[16] as a reverse concept of "phylogenetic discord" resulting from gene level evolutionary events.
Reconciliation was then developed jointly for the coevolution of host and symbiont and the geographic diversification of species. In both settings, it was important to model a horizontal event that implied parallel branches of the host tree: host switch for host and symbiont and species dispersion from one area to another in biogeography. Unlike for genes and genomes, the coevolution of host and symbiont and the explanation of species diversification by geography are not always the null hypothesis. A visual depiction of the two phylogenies in a tanglegram can help assess such coevolution, although it has no statistical obvious interpretation.[17]
Character methods, such as Brooks Parsimony Analysis,[18] were proposed to test coevolution and reconstruct scenarios of coevolution. In these methods, one of the trees is forgotten except for its leaves, which are then used as a character evolving on the second tree. First models for reconciliation, taking explicitly into account the two topologies and using a mechanistic event-based approach, were proposed for host and symbiont and biogeography.[19][20] Debates followed, as the methods were not yet completely sound but integrated useful information in a new framework.[21]
Costs for each event and a dynamic programming technique considering all pairs of host and symbiont nodes were then introduced into a host and symbiont approach, both of which still underlie most of the current reconciliation methods for host and symbiont as well as for species and genes.[22]
Reconciliation returned to the framework it was introduced in, gene and species. After character models were considered for horizontal gene transfer,[23] a new reconciliation model, following and improving the dynamic programming approach presented for host and symbiont, effectively introduced horizontal gene transfer to gene and species reconciliation on top of the duplication and loss model.[24]
The progressive development of phylogenetic reconciliation was thus possible through exchanges between multiple research communities studying phylogenies at the host and symbiont, gene and species, or biogeography levels. This story and its modern developments have been reviewed several times, generally focusing on specific pairs of levels, with a few exceptions.[25][13] New developments start to bring the different frameworks together with new integrative models.
Pocket Gophers and their chewing lices: a classical example
Pocket gophers (
Development of Phylogenetic Reconciliaton Models
Models and methods used today in phylogeny are the result of several decades of research, made progressively complex, driven by the nature of the data and the quest for biological realism on one side, and the limits and progresses of mathematical and algorithmic methods on the other.
Pre-reconciliation models: characters on trees
Character methods can be used when there is no tree available for one of the levels, but only values for a character at the leaves of a phylogenetic tree for the other level. A model defines the events of character value change, their rate, probabilities or costs. For instance, the character can be the presence of a host on a symbiont tree,[18] the geographical region on a species tree,[31] the number of genes on a genome tree,[32] or nucleotides in a sequence.[4] Such methods thus aim at reconstructing ancestral characters at internal nodes of the tree.[33]
Although these methods have produced results on genome evolution, the utility of a second tree appears with very simple examples. If a symbiont has recently acquired the ability to spread in a group of species and thus it is present in most of them, character methods will wrongly indicate that the common ancestor of the hosts already had the symbiont. In contrast, a comparison of the symbiont and host trees would show discrepancies revealing horizontal transfers.
The origins of reconciliation: the Duplication Loss model and the Lowest Common Ancestor mapping
Duplication and loss were invoked first to explain the presence of multiple copies of a gene in a genome or its absence in certain species.[10] It is possible with those two events to reconcile any two trees,[14] i.e. to map the nodes and branches of the lower and upper trees, or equivalently to give a list of evolutionary events explaining the discrepancies between the upper tree and the lower tree. A most parsimonious Duplication and Loss (DL) reconciliation is computed through the Lowest Common Ancestor (LCA) mapping: proceeding from the leaves to the root, each internal node is mapped to the lowest common ancestor of the mapping of its two children.
A Markovian model for reconciliation
The LCA mapping in the DL model follows a parsimony principle: no event should be invoked if it is not necessary. However the use of this principle is debated,[4] and it is commonly admitted that it is more accurate in molecular evolution to fit a probabilistic model as a random walk, which does not necessarily produce parsimonious scenarios. A birth and death Markovian model is such a model that can generate a lower tree "inside" a fixed upper one from root to leaves.[34] Statistical inference provides a framework to find most likely scenarios, and in that case, a maximum likelihood reconciliation of two trees is also a parsimonious one. In addition, it is possible with such a framework to sample scenarios, or integrate over several possible scenarios in order to test different hypotheses, for example to explore the space of lower trees. Moreover, probabilistic models can be integrated into larger models, as probabilities simply multiply when assuming independence, for instance combining sequence evolution and DL reconciliation.[35]
Introducing horizontal transfer
Host switch, i.e. inheritance of a symbiont from a kin lineage, is a crucial event in the evolution of parasitic or symbiotic relationships between species. This horizontal transfer also models migration events in biogeography and became of interest for the reconciliation of gene and species trees when it appeared that many discrepancies could not simply be explained by duplication and loss and that horizontal gene transfer (HGT) was a major evolutionary process in micro-organisms evolution. This switching, or horizontal transfer, pattern can also model admixture or introgression.[36] It is considered in character methods, without information from the symbiont phylogeny.[18][37] On top of the DL model, horizontal transfer enables new and very different reconciliation scenarios.
The simple yet powerful dynamic programming approach
The LCA reconciliation method yields a unique solution, which has been shown to be optimal for the problem of minimizing the weighted number of events, whatever the relative weights of duplication and loss.[38] In contrast, with Duplication, horizontal Transfer and Loss (DTL), there can be several equally parsimonious reconciliations. For instance, a succession of duplications and losses can be replaced by a single transfer. One of the first ideas to define a computational problem and approach a resolution was, in a host/symbiont framework, to maximize the number of co-speciations with a heuristic algorithm.[27] Another solution is to give relative costs to the events and find a scenario that minimizes the sum of the costs of its events.[22] In the probabilistic model frameworks, the equivalent task consists of assigning rates or probabilities to events and search for maximum likelihood scenarios, or sample scenarios according to their likelihood. All these problems are solved with a dynamic programming approach. This dynamic programming method involves traversing the two trees in a postorder. Proceeding from the leaves and then going up in the two trees, for each couple of internal nodes (one for each tree), the cost of a most parsimonious DTL reconciliation is computed.[22]
In a parsimony framework, costs of reconciling a lower subtree rooted at with an upper subtree rooted at is initialized for the leaves with their matching:
And then inductively, denoting the children of the children of the costs associated with speciation, duplication, horizontal transfer and loss, respectively (with often fixed to 0),
The costs and , because they do not depend on , can be computed once for all , hence achieving quadratic complexity to compute for all couples of and . The cost of losses only appears in association with other events because in parsimony, a loss can always be associated with the preceding event in the tree.
The induction behind the use of dynamic programming is based on always progressing in the trees toward the roots. However some combinations of events that can happen consecutively can make this induction ill-defined. One such combination consists of a transfer followed immediately by a loss in the donor lineage (TL). Restricting the use of this TL event repairs the induction.[39] With an unlimited use, it is necessary to use or add other known methods to solve systems of equations like fixed point methods,[40] or numerical solving of differential equations.[41] In 2016, only two out of seven of the most commonly used parsimony reconciliation programs did handle TL events,[42] although their consideration can drastically change the result of a reconciliation.[43]
Unlike LCA mapping, DTL reconciliation typically yields several scenarios of minimal cost, in some cases an exponential number. The strength of the dynamic programming approach is that it enables to compute a minimum cost of coevolution of the input upper and lower tree in quadratic time,[44] and to get a most parsimonious scenario through backtracking. It can also be transposed to a probabilistic framework to compute the likelihood of coevolution and get a most likely reconciliation, replacing costs with rates, minimums by sums and sums by products.[45] Moreover, through multiple backtracks, the approach is suitable for enumerating all parsimonious solutions or to sample scenarios, optimal and sub-optimal, according to their likelihood.
Estimation of event costs and rates
Dynamic programming per se is only a partial solution and does not solve several problems raised by reconciliation. Defining a most parsimonious DTL reconciliation requires assigning costs to the different kinds of events (D, T and L). Different cost assignments can yield different reconciliation scenarios, so there is a need for a way to choose those costs. There is a diversity of approaches to do so. CoRe-PA[46] explores in a recursive manner the space of cost vectors, searching for a good matching with the event frequencies in reconciliations. ALE[45] uses the same idea in a probabilistic framework to estimate the event rates by maximum likelihood. Alternatively, COALA[47] is a preprocess using approximate Bayesian computation with sequential Monte Carlo: simulation and statistic rejection or acceptance of parameters with successive refinement.
In the parsimony framework, it is also possible to divide the space of possible event costs into areas of costs which lead to the same Pareto optimal solution.[48] Pareto optimal reconciliations are such that no other reconciliation has a strictly inferior cost for one type of event (duplication, transfer or loss), and less or equal for the others.
It is possible as well to rely on external considerations in order to choose the event costs. For example, the software Angst[49] chooses the costs that minimize the variation of genome size, in number of genes, between parent and children species.
The problem of temporal feasibility
The dynamic programming method works for dated (internal nodes are totally ordered) or undated upper trees. However, with undated trees, there is a temporal feasibility issue. Indeed, a horizontal transfer implies that the donor and the receiver are contemporaneous, therefore implying a time constraint on the tree. In consequence, two horizontal transfers may be incompatible, because they imply contradicting time constraints. The dynamic programming approach can not easily check for such incompatibilities. If the upper tree is undated, finding a temporally feasible most parsimonious reconciliation is NP-hard.[50][51][52] It is fixed parameter tractable, which means that there are algorithms running in time bounded by an exponential of the number of transfers in the output scenarios.[51] Some solutions imply integer linear programming[53] or branch and bound exploration.[13] If the upper tree is dated, then there is no incompatibility issue because horizontal transfers can be constrained to never go backward in time. Finding a coherent optimal reconciliation is then solved in polynomial time[51] or with a speed-up in RASCAL,[54][55] by testing only a fraction of node mappings.
Most of the software taking undated trees does not look for temporal feasibility, except Jane,[56] which explores the space of total orders via a genetic algorithm, or, in a post process, Notung,[57] and Eucalypt,[58] which searches inside the set of optimal solutions for time consistent ones. Other methods work as supplementary layers to reconciliations, correcting reconciliations[59] or returning a subset of feasible transfers,[60] which can be used to date a species tree.[60][61]
Expanding phylogenies: Transfers from the dead
In phylogenetics in general, it is important to keep in mind that the extant and ancestral species that are represented in any phylogeny are only a sparse sample of the species that currently exist or ever have existed. This is why one can safely assume that all transfers that can be detected using phylogenetic methods have originated in lineages that are, strictly speaking, absent from a studied phylogeny.[62] Accounting for extinct or unsampled biodiversity in phylogenetic studies can give a better understanding of these processes.[63] Originally, DTL reconciliation methods did not recognize this phenomenon and only allowed for transfer between contemporaneous branches of the tree, hence ignoring most plausible solutions. However, methods working on undated upper trees can be seen as implicitly handling the unknown diversity by allowing transfers "to the future" from the point of view of one phylogeny, that is, the donor is more ancient than the recipient. A transfer to the future can be translated into a speciation to unknown species, followed by a transfer from unknown species. ALE[62] in its dated version explicitly takes the unknown diversity into account by adding a Moran process of speciation/extinctions of species to the dated birth/death model of gene evolution. Transfers from the dead are also handled in a parsimonious setting by Tera and ecceTERA,[64][42] showing that considering these transfers improves the capacity to reconstruct gene trees using reconciliation, and with a more explicit model[65] and in a probabilistic setting, in ALE undated.[66]
The specificity of biogeography: a tree like structure for the "evolution" of areas
In biogeography, some applications of reconciliation approaches consider as an upper tree an area
Graphical output
With two trees and multiple evolutionary events linking them to represent, viewing reconciled trees is a challenging but necessary question in order to make reconciliation studies more accessible. Some reconciliation softwares include annotation of the evolutionary events on the lower trees,[57] while others,[56][71][58][46] and specific packages, in DL[72] or DTL,[73] trace the lower tree embedded in the upper one. One difficulty in this regard is the variety of output formats for the different reconciliation softwares. A common standard, recphyloxml,[74] has been established and endorsed by part of the community, and a viewer is available, able to display reconciliation in multi level systems.[75]
Addressing Additional Practical Considerations
Applying DTL reconciliation to biological data raises several problems related to uncertainty and confidence levels of input and output. Concerning the output, the uncertainty of the answer calls for an exploration of the whole solution space. Concerning the input, phylogenetic reconciliation has to handle uncertainties in the resolution or rooting of the upper or lower trees, or even to propose roots or resolutions according to their confidence.
Exploring the space of reconciliations
Dynamic programming makes it possible to sample reconciliations, uniformly among optimal ones[76] or according to their likelihood. It is also possible to enumerate them in time proportional to the number of solutions,[58] a number which can quickly become intractable (even only for optimal ones). Finding and presenting structure among the multitude of possible reconciliations has been at the center of recent methodological developments, especially for host and symbiont aimed methods. Several works have focused on representing a set of reconciliations in a compact way, from a uniform sample of optimal ones[76] or by constructing a graph summarizing the optimal solutions.[77] This can be achieved by giving support values to specific events based on all optimal (or suboptimal) reconciliations,[78] or with the use of a consensus reconciled tree.[79][59] In a DL model, it is possible to define a median reconciliation, based on shared events and to compute it in polynomial time.[80] EMPRess[71] can group similar reconciliations through clustering,[81] with all pairwise distance between reconciliations computable in polynomial time (independently of the number of most parsimonious reconciliations).[82] With the same aim, Capybara[83] defines equivalence classes among reconciliations, efficiently computing representatives for all classes, and outputs with linear delay a given number of reconciliations (first optimal ones, then sub optimal). The space of most parsimonious reconciliation can be expanded or reduced when increasing or decreasing horizontal transfer allowed distance,[58] which is easily done by dynamic programming.
Inferring phylogenetic trees with reconciliation
Reconciliation and input uncertainty
Reconciliation works with two fixed trees, a lower and an upper, both assumed correct and rooted. However, those trees are not first hand data. The most frequently used data for phylogenetics consists in aligned nucleotidic or proteic sequences. Extracting DNA, sequencing, assembling and annotating genomes, recognizing homology relationships among genes and producing multiple alignments for phylogenetic reconstruction are all complex processes where errors can ultimately affect the reconstructed tree.[84] Any topology or rooting error can be misinterpreted and cause systematic bias. For instance, in DL reconciliations, errors on the lower tree bias the reconciliation toward more duplication events closer to the root and more losses closer to the leaves.[85]
On the other hand, reconciliation, as a macro evolutionary model, can work as a supplementary layer to the micro evolutionary model of sequence evolution, resolving polytomies (nodes with more than two children) or rooting trees, or be intertwined with it through integrative models in order to get better phylogenies.
Most of the works in this direction focus on gene/species reconciliations, nevertheless some first steps have been made in host/symbiont, such as considering unrooted symbiont trees[86] or dealing with polytomies in Jane.[56]
Exploring the space of lower trees with reconciliation
Reconciliation can easily take unrooted lower trees as input, which is a frequently used feature because trees inferred from molecular data are typically unrooted. It is possible to test all possible roots, or a thoughtful triple traversal of the unrooted tree allows to do it without additional time complexity.[39] In a duplication-loss model, the set of roots minimizing the costs are found close to one another, forming a "plateau",[87] a property which does not generalize to DTL.[86][79]
Reconciliation can also take as input non binary trees, that is, with internal nodes with more than two children. Such trees can be obtained for example by contracting branches with low statistical support. Inferring a binary tree from a non binary tree according to reconciliation scores is solved in DL with efficient methods.[57][88][89][90][91] In DTL, the problem is NP hard.[92] Heuristics[93] and exact fixed parameter tractable algorithms[92][94][95] are possible solutions.
Another way to handle uncertainty in lower trees is to take as input a sample of alternative lower trees instead of a single one. For example, in the paper that gave reconciliation its name,[14] it was proposed to consider all most likely lower trees, and choose from these trees the best one according to their DL costs, a principle also used by TreeFix-DTL.[96] The sample of lower trees can similarly reflect their likelihood according to the aligned sequences, as obtained from Bayesian Markov chain Monte Carlo methods as implemented for example in Phylobayes.[97] AngST,[49] ALE[40] and ecceTERA[64] use "amalgamation", an extension of the DTL dynamic programming that is able to efficiently traverse a set of alternative lower trees instead of a single tree.
A local search in the space of lower trees guided by a joint likelihood, on the one hand from multiple sequence alignments and on the other hand from reconciliation with the upper tree, is achieved in Phyldog with a DL model[98] and in GeneRax with DTL.[15] In a DL model with sequence evolution and relaxed molecular clock, the lower tree space can be explored with an MCMC.[99] MowgliNNI[100] can modify the input gene tree at poorly supported nodes to increase DTL score, while TreeSolve resolves the multifurcations added by collapsing poorly supported nodes.[101]
Finally, integrative models—mixing sequence evolution and reconciliation—can compute a joint likelihood via dynamic programming (for both reconciliation and gene sequences evolution),[40] use Markov chain Monte Carlo to include molecular clock to estimate branch lengths, in a DL model[34] or with a relaxed molecular clock,[99] and in a DTL model.[102] These models have been applied in gene/species frameworks, not yet in host/symbiont or biogeography contexts.
Inferring upper trees using reconciliation
Inferring an upper tree from a set of lower trees is a long standing question related to the
Reconciliation can also be used for the inference of upper trees. This is a computationally hard problem: already resolving polytomies in a non binary upper tree with a binary lower one—minimizing a DL reconciliation score—is NP-hard.
ODTL
Addressing a more general problem, Phyldog[98] searches for the maximum likelihood species tree, gene trees and DL parameters from multiple family alignments via multiple rounds of local search. It thus performs the exploration of both upper and lower trees at the same time. MixTreEM[116] presents a faster solution.
Limits of the two-level DTL model
A limit to dynamic programming: non independent evolution of children lineages
The dynamic programming framework, like usual birth and death models, works under the hypothesis of independent evolution of children lineages in the lower tree. However, this hypothesis does not hold if the model is complemented with several other documented evolutionary events, such as horizontal transfer with replacement of a homologous gene in the recipient lineage, or
Another way to model and infer replacing horizontal transfers is through maximum agreement forest, where branches are cut in the lower and upper trees in order to get two identical (or statistically indistinguishable[119]) upper and lower forests. The problem is NP-hard,[120] but several approximations have been proposed.[121] Replacing transfers can be considered on top of the DL model.[122] In the same vein, gene conversion can be seen as a "replacing duplication". In this latter case, a polynomial algorithm which does not use dynamic programming and is an extension of the LCA method can find all optimal solutions, including gene conversions.[118]
Integrating population levels: failure to diverge and Incomplete Lineage Sorting
In host/symbiont frameworks, a single symbiont species is sometimes associated to several host species. This means that while a speciation or diversification has been observed in the host, the populations are indistinguishable in the symbiont. This is handled for example by additional polytomies in the symbiont tree, possibly leading to intractable inference problems, because polytomies need to be resolved. It is also modeled by an additional evolutionary event "failure to diverge" (Jane,[56] Amocoala[123]). Failure to diverge can be a way to allow "free" host switch in a population, a flow of symbionts between closely related hosts. Following that vision, host switch allowed only for close hosts is considered in Eucalypt.[58] This idea of horizontal flow between close populations can also be applied to gene/species frameworks, with a definition of species based on a gradient of gene flow between populations.[124]
Failure to diverge is one way of introducing population dynamics in reconciliation, a framework mainly adapted to the multi-species level, where populations are supposed to be well differentiated. There are other population phenomena that limit this framework, one of them being deep coalescence of lineages, leading to Incomplete Lineage Sorting (ILS), which is not handled by the DTL model.[88][125] The multi species coalescent is a classical model of allele evolution along a species tree, with birth of alleles and sorting of alleles at speciations, that takes into account population sizes and naturally encompasses ILS.[126][127][111][128][129] In a reconciliation context, several attempts have been made in order to account for ILS without the complex integration of a population model. For example, ILS can be seen as a possible evolutionary pattern for the gene tree. In that case, children lineages are not independent of one another, leading to intractability results. ILS alone can be handled with LCA, but ILS + DL reconciliation is NP hard, even without transfers.[130]
Notung[88] handles ILS by collapsing short branches of the species tree in polytomies and allowing ILS as a free diversification of gene trees on those polytomies. ecceTERA[131] binds the maximum size of connected parts of the species tree where ILS can happen, proposing a fixed parameter tractable algorithm in that parameter.
ILS and DL can be considered on an upper network instead of a tree. This models in particular introgression, with the possibility to estimate model parameters.[132]
More integrative reconciliation models accounting for ILS have been proposed, including both DL and multispecies coalescent,[133] with DLCoal. It is a probabilistic model with a parsimony translation,[134] proposing two sequential LCA-type heuristics handled via an intermediate locus tree between gene and species. However, outside of the gene/species reconciliation framework, ILS seems, for no particular reason, never considered in host/symbiont, nor in biogeography.
Cophylogeny with more than two levels
A striking aspect of reconciliation is the common methodology handling different levels of organization: it is used for comparing domain and protein trees, gene and species trees, hosts and symbiont trees, population and geographic trees. However, now that scientists tend to consider that multi-level models of biological functioning bring a novel and game changing view of organisms and their environment,[136] the question is how to use reconciliation to bring phylogenetics to this holobiont era.
Coevolution of entities at different scales of evolution is at the basis of the holobiont idea: macro-organisms, micro-organisms and their genes all have a different history bound to a common functioning in a single ecosystem. Biological systems like the entanglement of host, symbionts and their genes imply functional and evolutionary dependencies between more than two levels.
Examples of multi level systems with complex evolutionary inter-dependencies
Genes coevolving beyond genome boundaries
The holobiont concept[137] stresses the possibility of genes from different genomes to cooperate and coevolve.[138][139][140] For instance, certain genes in a symbiont genome may provide a function to its host, like the production of a vital compound absent from available feeding sources. An iconic example is the case for blood-feeding or sap-feeding insects, which often depend on one or several bacterial symbionts to thrive on a resource that is abundant in sugar, but lacks essential amino-acids or vitamins.[141] Another example is the association of Fabaceae with nitrogen-fixing bacteria. The compound beneficiary to the host is typically produced by a set of genes encoded in the symbiont genome, which throughout evolution, may be transferred to other symbionts, and/or in and out of the host genome. Reconciliation methods have the potential to reveal evolutionary links between portions of genomes from different species. A search for coevolving genes beyond the boundaries of the genomes in which they are encoded would highlight the basis for the association of organisms in the holobiont.
Horizontal gene transfer routes depend on multiple levels
In intracellular mutualistic symbiont insect systems, multiple occurrences of horizontal gene transfers have been identified, whether from host to symbiont, symbiont to host or symbiont to symbiont.[142]
Transfers of endosymbiont genes involved in nutrition pathways beneficiary to the insect host have been shown to occur preferentially if the donor and recipient lineages share the same host.[143][144][145] This is also the case in insects with bacterial symbionts providing defensive protein[146] or in obligate leaf nodule bacterial symbionts associated with plants.[147] In the human host, gene transfer has been shown to occur preferentially among symbionts hosted in the same organs.[148]
A review of horizontal gene transfers in host/symbiont systems[149] stresses the importance of supporting HGTs with multiple evidence. Notably it is argued that transfers should be considered better supported when involving symbionts sharing a habitat, a geographical area, or the same host. One should, however, keep in mind that most of the diversity of hosts and symbionts is unknown and that transfers may have occurred in unsampled closely related species, hosts or symbionts.
The idea that gene transfer in symbionts is constrained by the host can also be used to investigate the host's phylogenetic history. For instance, based on phylogeographical studies, it is now accepted that the bacterium Helicobacter pylori has been associated with human populations since the origins of the human species.[150][151] An analysis of the genomes of Helicobacter pylori in Europe suggests that they are issued from a recombination between African and Asian Helicobacter pylori. This strongly implies early contacts between the corresponding human populations.
Similarly, an analysis of HGTs in coronaviruses from different mammalian species using reconciliation methods has revealed frequent contact between viral lineages, which can be interpreted as frequent host switches.[152]
Cultural evolution
The evolution of elements of
, has been studied using concepts from phylogenetics. Although reconciliation has never been used in this framework, some of these studies encompass multiple levels of organization, each represented by a tree or the evolution of a character, with a focus on the coevolution of these levels.Language trees can be compared with population trees in order to reveal vertically transmitted folktales, via a character model on this language tree.[153] Variants in each folktale's family, languages, genetic diversity, populations and geography can be compared two by two, to link folktale diversification with languages on one side and with geography on the other side.[154] As in genetics with symbionts sharing host promoting HGTs, linguistic barriers can foreclose the transmission of folktales or language elements.[155]
Investigating three-level systems using two-level reconciliation
Multi level reconciliation is not as developed as two-level reconciliation. One way to approach the evolutionary dependencies between more than two levels of organization is to try to use available standard two-level methods to give a first insight into a biological system's complexity.
-
Multiple gene lineages can undergo joint events like segmental duplication, transfer or loss, or even whole genome duplication.
-
Reconciliation can help identify highways of transfers and hybridizations.
-
Three levels can be reconciled together, sequentially: the intermediate in the upper before adding the lower, or trying to find a joint most parsimonious scenario for the two reconciliations.
-
With more than two levels, the reconciliation of the lower and intermediate levels can be compared to the reconciliation of the lower and upper.
Multi-gene events: implicit consideration of an intermediate level
At the gene/species tree level, one typically deals with many different gene trees. In this case, the hypothesis that different gene families evolve independently is made implicitly. However, this does not need to be the case. For instance, duplication, transfer and loss can occur for segments of a genome spanning an arbitrary number of contiguous genes. It is possible to consider such multi-gene events using an intermediate guide for lower trees inside the upper one. For instance, one can compute the joint likelihood of multiple gene tree reconciliations with a dated species tree with duplication, loss and whole genome duplication[5] or in a parsimonious setting,[156][157][158][159] and one definition of the problem is NP-hard.[160] Similarly, the DL framework can be enriched with duplication and loss of chromosome segments instead of a single gene. However, DL reconciliation becomes intractable with that new possibility.[161]
The link between two consecutive genes can also be modeled as an evolving character, subject to gain, loss, origination, breakage, duplication and transfer.[1] The evolution of this link appears as an additional level to species and gene trees, partly constrained by the gene/species tree reconciliation, partly evolving on its own, according to genome organization. It thus models the synteny, or proximity between genes. At another scale, it can as well model the evolution of two domains belonging to a protein.
The detection of "highways of transfers", the preferential acquisition of groups of genes from a specific donor, is another example of non-independence of gene histories.[162] Similarly, multi-gene transfers can be detected.[163] It has also led to methodological developments such as reconciliations using phylogenetic networks, seen as a tree augmented with transfer edges, which can be used to constrain transfers in a DTL model.[164] Networks can also be used to model introgression and incomplete lineage sorting.[165][166][36]
Detecting coevolution in multiple pairs of levels
It is a central question to understand the evolution of a holobiont to know what the levels are that coevolve with each other, for instance between host species, host genes, symbionts and symbiont genes. It is possible to approach the multiple inter-dependencies between all levels of evolution by multiple pairwise comparisons of two evolving entities.
Reconciliation of host and symbiont on one side and geography and symbiont on the other can also help to identify patterns of diversification of host and symbiont that reflect either coevolution or patterns that can be explained by a common geographical diversification.[167][168][169][170] Similarly, a study used reconciliation methods to differentiate the effect of diet evolution and phylogenetic inertia on the composition of mammalian gut microbiomes. By reconstructing ancestral diets and microbiome composition onto a mammalian phylogeny, the study revealed that both effects contribute but at different time scales.[171]
Explicit modeling of three or more levels
In a model of a multi-level system as host/symbiont/genes, horizontal gene transfers should be more likely between two symbionts of a same host. This is invisible to a two-level gene tree/species tree or host/symbiont reconciliation: in some cases, looking at any combination of two levels can lead to missing an evolutionary scenario which can only be the most likely if the information from the three trees is considered together.
Trying to face the limitation of these uses of standard two-level reconciliations with systems involving inter-dependencies at multiple levels, a methodological effort has been undertaken in the last decade to construct and use multi-level models. This requires the identification of at least one "intermediate" level between the upper and the lower one.
-
Two levels can be reconciled with the constraint of an upper one, for instance host and symbiont with geography.
-
Characters can evolve on reconciled phylogenies, like gene synteny on a gene/species reconciliation.
-
Transfers can be upper dependent, which is more likely between two intermediate entities that belong to a same upper one.
-
With 3-levels reconciliation models, the intermediate tree can be inferred from the lower and upper trees.
Pre-reconciliation: characters onto reconciled trees
A first step towards integrated three-level models is to consider phylogenetic trees at two levels and another level represented only with characters at the leaves of one of the trees.
For instance, a reconciliation of host and symbiont phylogenies can be informed by geographic data.[172] Ancestral geographic locations of host and symbiont species obtained through a character inference method can then be used to constrain the host/symbiont reconciliation: ancestral hosts and symbionts can only be associated if they belong to the same geographical location.
At another scale, the evolution at the sub-gene level can be approached with a character method.[173] Here, parts of genes (e.g. the sequence coding for protein domains) is reconciled according to a DL model with a species tree, and the genes they belong to are mentioned as characters of these parts. Ancestral genes are then reconstructed a posteriori via merge and splits of gene parts.
Two-level reconciliations informed by a third level
As pointed out by several studies mentioned in § Horizontal transfer at multiple levels, an upper level can inform a reconciliation between an intermediate and lower one, notably for horizontal transfers.
Three-level models can take into account these assumptions to guide reconciliations between an intermediate tree and lower levels with the knowledge of an upper tree. The model can for example give higher likelihoods to reconciliation scenarios where horizontal gene transfers happen between entities sharing the same habitat. This has been achieved for the first time with DTL gene/species reconciliations nested with a DTL gene domain and gene reconciliation.[174] Different costs for inter and intra transfers depend on whether or not transfers happen between genes of the same genomes.
Note that this model explicitly considers three levels and three trees, but does not yet define a real three-level reconciliation, with a likelihood or score associated.[174] It relies on a sequential operation, where the second reconciliation is informed by the result of the first one.
The reconciliation problem in multi-level models
The next step is to define the score of a reconciliation consisting of three nested trees and to compute, given the three trees, three-level reconciliations according to their score. It has been achieved with a species/gene/domain system, where genes evolve within the species tree with a DL model and domains evolve within the gene/species system with a DTL model, forbidding domain transfers between genes of two different species.[175] Inference involves candidate scenarios with joint scores. Computing the minimum score scenario is NP-hard, but dynamic programming or integer linear programming can offer heuristics.[175][176] Variations of the problem considering multiple domains[177] are available, and so is a simulation framework.[178]
Inferring the intermediate tree using models of 3-level lower/intermediate/upper reconciliation
Just like two-level reconciliation can be used to improve lower or upper phylogenies, or to help constructing them from aligned sequences, joint reconciliation models can be used in the same manner.
In this vein, a coupled gene/species DL, domain gene DL and gene sequence evolution model in a Bayesian framework improves the reconstruction of gene trees.[179]
Software
Multiple pieces of software have been developed to implement the various models of reconciliation. The following table does not aim for exhaustiveness but presents a number of software tools aimed at reconciling trees to infer reconciliation scenarios or for related usage, such as correcting or inferring trees, or testing coevolution. The levels of interest section details the levels for which the software was implemented, even though it is entirely possible, for instance, to use a software made for species and gene reconciliation to reconcile host and symbionts.[180] Parsimony or probability is the underlying model that is used for the reconciliation.
Name | Levels of interest | Platform | Graphical User Interface (GUI) |
Usage | Probability or parsimony | Software availability and software license |
---|---|---|---|---|---|---|
Diva[181] | Geography and species | Unix, Mac, Win | Command line | Reconciliation inference | Parsimony | GNU GPLv2
|
Lagrange[182] | Geography and species | Linux, Mac, Win | Python package | Reconciliation inference | Probability | GNU GPLv2 |
BioGeoBEARS[183] | Geography and species | R package | R package | Reconciliation inference, statistical model test | Probability | GNU GPLv2, GNU GPLv3
|
Jane[184] | Host and symbionts | Unix, Mac, Win | GUI or command line | Reconciliation inference, tree uncertainty | Parsimony | Proprietary, registration to download |
eMPRess[185] | Host and symbionts | Unix, Mac, Win | GUI or command line | Reconciliation inference, cost estimation, solution space study | Parsimony | GNU GPLv3 |
Eucalypt[186] | Host and symbionts | Java | Command line, graphical output with included viewer CophyTrees | Reconciliation inference, solution space study | Parsimony | CeCILL |
Capybara[187] | Host and symbionts | Linux, Mac, Win, and Python package | GUI, Python package | Reconciliation inference, solution space study | Parsimony | code available on github |
Coala[188] | Host and symbionts | Linux, Mac | Command line | cost estimation | Parsimony | CeCILL |
RANGER-DTL[189] | Species and genes | Linux, Mac, Win | Command line | Reconciliation inference, tree uncertainty, solution sampling, replacing transfers | Parsimony | GNU GPLv3 |
Notung[190] | Species and genes | Linux, Mac, Win < 7 | GUI | Reconciliation inference, tree uncertainty, gene, gene domain, species model | Parsimony | Proprietary |
Mowgli[191] | Species and genes, Host and symbiont | Linux, Mac | Command line, graphical output with compatible viewer Sylvx | Reconciliation inference, tree uncertainty, ILS, geographical constraints, dated tree input | Parsimony | Proprietary |
Sylvx[192] | Species and genes, Host and symbiont | Linux, Mac, Win | GUI | Viewer, compatible with Mowgli, ecceTERA | - | GNU GPLv2 or later |
AnGST[193] | Species and genes | Python 2 | Command line | Reconciliation inference, cost estimation, dated tree input, tree uncertainty | Parsimony | source-available software[194] |
ecceTERA[195] | Species and genes | Linux, Mac, built from code | Command line, compatible with Sylvx viewer, and recphyloxml output | Reconciliation inference, cost estimation, dated, partially dated or undated species tree input, tree uncertainty, reconciliation space study, species network | Parsimony | CeCILL |
ALE[196] | Species and genes | Linux, Mac | Command line | Reconciliation inference, cost estimation, dated or undated species tree input, tree uncertainty | Probability | GNU GPLv3 |
Treerecs[197] | Species and genes | Linux, Mac, Win | GUI, integrated to Seaview | DL tree correction | Parsimony, Probability | GNU Affero GPL Version 3.0-or-later |
GeneRax[198] | Species and genes | Linux, Mac | Command line, graphical output with recphyloxml and thirdkind | Gene tree inference from reconciliation and aligned sequences, species tree inference | Probability | GNU Affero GPL v3.0 |
Phyldog[199] | Species and genes | Linux, docker, vm | Command line | Gene and species tree inference from reconciliation and aligned sequences | Probability | CeCILL |
CoRe-PA[200] | Host and symbiont | Linux, Mac, Win | GUI, Command line, graphical svg output | Reconciliation inference, cost estimation, dated tree, statistical test | Parsimony | - |
CoRe-ILP[201] | Host and symbiont | Linux, Mac, Win | Command line | Reconciliation inference, temporal feasibility, dated tree | Parsimony | requires CPLEX (academic license can be obtained for free) |
Rascal[55] | Host and symbiont | Java | Command line | Reconciliation inference, dated tree | Parsimony | - |
MixTreEM[dead link] | Species and gene | Linux, Mac, Win (build from source) | Command line | Gene and species tree inference from reconciliation and aligned sequences | Probability | |
PrIME[dead link] | Species and gene | Linux, Mac | Command line, graphical output (PrIMETV) | Reconciliation inference, gene and species tree inference from reconciliation and aligned sequences, orthology analysis | Probability | |
Treemap[dead link] | Host and symbiont | Java | Command line | Reconciliation inference, statistical test | Parsimony | |
JPrIME[202] | Gene and species | Java library | Command line | Reconciliation inference, gene and species tree inference from reconciliation and aligned sequences | Probability | New BSD |
SEADOG[203] | Species and genes and domains | Linux, Mac | Command line | 3-level reconciliation inference | Parsimony | GNU GPLv3 |
iGTP[204] | Species and genes | Linux, Mac, Win | GUI | Gene tree correction in DL or deep coalescence | Parsimony | Source code on request |
TreeSolve[205] | Species and genes | Linux, Win | GUI | Gene tree correction in DTL | Parsimony | Source code on request |
TreeFix,[206] TreeFix-DTL[207] | Species and genes | Linux | Command line | Gene tree correction in DL and DTL | Parsimony | GNU GPLv3 |
ARTra[208] | Species and genes | Linux, Mac | Command line | Additive and replacing transfers inference | Parsimony | GNU GPL |
DLCoal[209] | Species and genes | Linux, Mac, Win | Command line | Reconciliation inference with ILS | Parsimony | GNU GPL |
Thirdkind[210] | Species and genes | Linux, Mac, Win | Command line | Viewer, compatible with recphyloxml | - | CeCILL |
References
This article was adapted from the following source under a CC BY 4.0 license (2022) :
Hugo Menet; Vincent Daubin; Eric Tannier (3 November 2022). "Phylogenetic reconciliation". {{cite journal}}
: CS1 maint: unflagged free DOI (link
- ^ PMID 28402423.
- S2CID 32424144.
- PMID 31323028.
- ^ a b c Felsenstein J (2004) Inferring Phylogenies. Oxford University Press
- ^ PMID 31004147.
- ^ PMID 21286315.
- PMID 25104072.
- PMID 2112744.
- PMID 17246876.
- ^ PMID 5876245.
- PMID 21041216.
- PMID 24236061.
- ^ ].
- ^ JSTOR 2412519.
- ^ PMID 32502238.
- ^ Wayne P. Maddison (1997) Gene Trees in Species Trees, Systematic Biology, 46(3) 523-536.
- PMID 30351416.
- ^ JSTOR 2413247.
- JSTOR 2413040.
- JSTOR 2992354.
- S2CID 86307275.
- ^ PMID 9621683.
- S2CID 16346458.
- S2CID 5804061.
- .
- S2CID 4236760.
- ^ .
- S2CID 86298930.
- ^ DTL stands for ""Duplication, horizontal Transfer and Loss
- ^ This table is intended to serve as illustration to the 2-Level reconciliation section of Menet et al. (2022) Phylogenetic reconciliation. PLoS Comput Biol 18(11): e1010621.doi:10.1371/journal.pcbi.1010621 and can be read along with it. Adding the horizontal Transfer event adds new, more parsimonious solutions compared to the previous DL model (A). With this new event, costs must be assigned to D, T and L events, and different costs give different solutions (B). Not all scenarios including transfers are time feasible. Some might include time constraints incompatible with the upper tree (C). Transfer can go from a species to one of its descendant via a sister lineages that went extinct (D). In biogeography, a tree like structure can be constructed to account for the possible migrations between different geographical areas (E). In some cases, an exponential number of scenarios might be most parsimonious, for example when two equivalent patterns have the same cost (F). The lower tree can be unrooted (G), multifurcating (H), or given as a sample of potential trees (I) and reconciliation can be used to resolve those uncertainties to get a binary rooted lower tree. Reconciliation score can also be used to help construct an upper tree (J). Dynamic programming is limited by the fact that it assumes independence between sister lineages, which makes it unable to consider replacing transfers or gene conversion (K), as well as Failure to diverge (L) and Incomplete Lineage Sorting (M), two population level events.
- JSTOR 2992373.
- PMID 19570746.
- ISBN 9780128004265.
- ^ PMID 12855432.
- S2CID 12364792.
- ^ PMID 25368173.
- PMID 20551134.
- ^ Chauve C and El-Mabrouk N (2009) New Perspectives on Gene Family Evolution: Losses in Reconciliation and a Link with Supertrees. RECOMB 5541:46-58
- ^ a b Doyon J, Scornavacca C, Gorbunov K, Szöllősi G, Ranwez V et al. (2010) An Efficient Algorithm for Gene/Species Trees Parsimonious Reconciliation with Losses, Duplications and Transfers. RECOMB-CG
- ^ PMID 23925510.
- ^ S2CID 14205291.
- ^ PMID 27153713.
- PMID 21949266.
- PMID 22689773.
- ^ PMID 23043116.
- ^ PMID 20122236.
- PMID 25540454.
- PMID 24932009.
- ^ S2CID 4420725.
- S2CID 5804061.
- ^ S2CID 16462428.
- PMID 20715926.
- S2CID 2291208.
- .
- ^ PMID 26828619.
- ^ PMID 20181081.
- ^ PMID 16597243.
- ^ PMID 25648467.
- ^ S2CID 4566350.
- ^ )
- PMID 29610471.
- ^ PMID 23355531.
- PMID 31566657.
- .
- PMID 26323765.
- ^ Ronquist F (1997) Phylogenetic approaches in coevolution and biogeography. Zoologica Scripta 26:313--322
- S2CID 23245573.
- ^ PMID 25123369.
- S2CID 87276317.
- ^ PMID 33216126.
- PMID 17484781.
- PMID 26515823.
- PMID 29762653.
- PMID 35139153.
- ^ PMID 24033262.
- PMID 24124449.
- ^ PMID 30367593.
- ^ Huber K, Moulton V, Sagot M-F, Sinaimeri B (2018) Geometric medians in reconciliation spaces of phylogenetic trees. Information Processing Letter. 136: 96–101
- PMID 31775628.
- PMID 31842734.
- PMID 32556075.
- PMID 19880211.
- PMID 17634151.
- ^ S2CID 51613681.
- S2CID 13416908.
- ^ PMID 22962460.
- ^ Lafond M and Noutahi E and El-Mabrouk N (2016) Efficient Non-Binary Gene Tree Resolution with Weighted Reconciliation Cost. 27th Annual Symposium on Combinatorial Pattern Matching (CPM 2016) 14:1--14:12
- PMID 33085745.
- ^ ].
- ^ S2CID 4458502.
- ISBN 978-3-319-67978-5.
- PMID 28073758.
- S2CID 54606569.
- PMID 25481006.
- PMID 15014145.
- ^ PMID 23132911.
- ^ PMID 19299507.
- PMID 23566548.
- S2CID 210171366.
- PMID 24562812.
- arXiv:1805.03530 [q-bio.PE].
- PMID 33325781.
- PMID 32657396.
- PMID 24180377.
- ^ Ma B and Li M and Zhang L (2000) From Gene Trees to Species Trees. SIAM J. Comput., may, 729–752 24
- PMID 8899723.
- PMID 10631044. Retrieved 17 December 2022.
- S2CID 7086924.
- ^ S2CID 13453831.
- PMID 21342543.
- PMID 9918954.
- PMID 18474508.
- PMID 21092314.
- PMID 25963975.
- ^ Bordewich W and Semple C (2005) On the Computational Complexity of the Rooted Subtree Prune and Regraft Distance. Annals of Combinatoris 8: 409-423
- ^ S2CID 8476555.
- PMID 20550700.
- ^ Hein J, Jiang T, Wang L, Zhang K (1996) On the complexity of comparing evolutionary trees. Discrete Applied Mathematics 71:153--169
- S2CID 16479722.
- ^ Kordi M (2019) Inferring Microbial Gene Family Evolution Using Duplication-Transfer-Loss Reconciliation: Algorithms and Complexity. Doctoral Dissertations. 2101.
- ^ Urbini L (2017) Models and algorithms to study the common evolutionary history of hosts and symbionts. Doctoral thesis, Université de Lyon
- S2CID 91543153.
- PMID 25070970.
- PMID 12930768.
- PMID 15792224.
- PMID 17562474.
- ^ Rannala B and Edwards S and Leaché A and Yang Z (2020) Phylogenetics in the Genomic Era, 3.3:1--3.3:21
- PMID 28316640.
- S2CID 7854827.
- ^ Du P and Ogilvie H A and Nakhleh L (2019) Unifying Gene Duplication, Loss, and Coalescence on Phylogenetic Networks. Bioinformatics Research and Applications. ISBRA 2019. Lecture Notes in Computer Science, vol 11490. Springer, Cham.
- PMID 22271778.
- PMID 24310000.
- ^ This table is intended to serve as illustration to the 3-Level reconciliation section of Menet et al. (2022) Phylogenetic reconciliation. PLoS Comput Biol 18(11): e1010621.doi:10.1371/journal.pcbi.1010621 and can be read along with it. Colors correspond to the different levels (similar but different colors if there are several trees at the same level). The legend gives an example of all these colours and shape codes. Multiple gene lineages can undergo joint events like whole genome duplication (A) or segmental events (B), some events might be more probable than others, like specific horizontal transfers with highway of transfers or hybridization (C). Cophylogenetic patterns can be compared, to see for instance if the common pattern of a host and a symbiont are not just the common pattern of the symbiont and the geography (D). Characters can evolve on reconciled phylogeny, like gene synteny (E), or two levels can be reconciled with the constraint of an upper one (F). Transfers can be upper dependent, which is more likely between two intermediate entities that belong to a same upper one (G). Three levels can be reconciled together, sequentially: the intermediate and the upper before adding the lower, or trying to find a joint most parsimonious scenario for the two reconciliations (H). These multi-level models can also be used to reconstruct an intermediate phylogeny (I).
- PMID 27822520.
- ISBN 9780262132695.
- PMID 26284777.
- S2CID 2967190.
- PMID 18549407.
- PMID 18983256.
- PMID 28961177.
- PMID 23133394.
- PMID 24982177.
- PMID 31624345.
- S2CID 1637956.
- PMID 26978165.
- PMID 30976019.
- PMID 23759418.
- PMID 22589724.
- PMID 27534956.
- bioRxiv 10.1101/2020.08.11.232520.
- PMID 26909191.
- PMID 23390109.
- PMID 28784786.
- PMID 8899723.
- S2CID 5638166.
- PMID 19689214.
- PMID 18586705.
- ^ Michael R. Fellows, Michael T. Hallet, and Ulrike Stege. 1998. On the Multiple Gene Duplication Problem. In Proceedings of the 9th International Symposium on Algorithms and Computation (ISAAC '98). Springer-Verlag, Berlin, Heidelberg, 347–356.
- PMID 30930955.
- PMID 21899418.
- PMID 33565580.
- PMID 24564257.
- PMID 23736104.
- PMID 18346916.
- PMID 24999998.
- PMID 14965910.
- PMID 28288943.
- PMID 28230052.
- S2CID 25758856.
- PMID 21900599.
- ^ PMID 26451642.
- ^ S2CID 51614715.
- S2CID 49426403.
- S2CID 85507475.
- PMID 30715213.
- )
- PMID 28201740.
- ^ "Diva". 26 April 2013. Retrieved 21 November 2022.
- ^ "Lagrange". Retrieved 21 November 2022.
- ^ "BioGeoBEARS". Retrieved 21 November 2022.
- ^ "Jane". Retrieved 21 November 2022.
- ^ "eMPRess". Retrieved 21 November 2022.
- ^ "Eucalypt". 28 July 2014. Retrieved 21 November 2022.
- ^ "Capybara". Retrieved 21 November 2022.
- ^ "Coala". 28 July 2014. Retrieved 21 November 2022.
- ^ "RANGER-DTL". 31 May 2018. Retrieved 21 November 2022.
- ^ "Notung". Retrieved 21 November 2022.
- ^ "Mowgli". Retrieved 21 November 2022.
- ^ "Sylvx". Retrieved 21 November 2022.
- ^ "AnGST". Retrieved 21 November 2022.
- ^ Code available on Github
- ^ "ecceTERA". GitHub. 21 September 2021. Retrieved 21 November 2022.
- ^ "ALE". GitHub. 4 October 2022. Retrieved 21 November 2022.
- ^ "Treerecs – Fast, Versatile and user friendly phylogenetic reconciliation". Retrieved 20 December 2022.
- ^ "GeneRax". GitHub. 8 September 2022. Retrieved 20 December 2022.
- ^ "PHYLDOG: joint reconstruction of species and gene phylogenies". pbil.univ-lyon1.fr (in French). Retrieved 20 December 2022.
- ^ "Leipzig University - Faculty of Mathematics and Computer Science - Swarm Intelligence and Complex Systems Group". pacosy.informatik.uni-leipzig.de. Retrieved 20 December 2022.
- ^ "Universität Leipzig - Fakultät für Mathematik und Informatik - Professur für Schwarmintelligenz und Komplexe Systeme". pacosy.informatik.uni-leipzig.de. Retrieved 20 December 2022.
- ^ Arvestad, Lars (6 September 2021). "About JPrIME". GitHub. Retrieved 20 December 2022.
- ^ Orlando, Echevarria (31 May 2018). "SEADOG | Computational Biology Research Laboratory". compbio.engr.uconn.edu. Retrieved 20 December 2022.
- ^ "iGTP Home". Computational Biology Laboratory. Retrieved 20 December 2022.
- ^ Mukul, Bansal (26 November 2018). "TreeSolve | Computational Biology Research Laboratory". compbio.engr.uconn.edu.
- ^ "TreeFix". www.cs.hmc.edu. Retrieved 20 December 2022.
- ^ "TreeFix-DTL". www.cs.hmc.edu. Retrieved 20 December 2022.
- ^ Mukul, Bansal (26 November 2018). "ARTra: Additive and Replacing Transfer Inference | Computational Biology Research Laboratory". compbio.engr.uconn.edu. Retrieved 20 December 2022.
- ^ "DLCoal: Modeling gene duplications, losses, and coalescence". compbio.mit.edu. Retrieved 20 December 2022.
- ^ "Home · simonpenel/thirdkind Wiki". GitHub. Retrieved 20 December 2022.
External links
- Media related to Phylogenetic reconciliation at Wikimedia Commons