TreeSolve (portmanteau of “Tree” and “Resolve”) is a program for gene tree error-correction. By default, TreeSolve is designed for the error-correction of microbial gene trees (with horizontal gene transfer) but can be easily applied to non-microbial gene trees as well. TreeSolve takes as input a rooted gene tree topology with branch support values (such as bootstrap support values), a known rooted species tree, and a collection of gene tree samples such bootstrap replicates or samples from a posterior distribution, and outputs an error-corrected gene tree topology. TreeSolve works by collapsing weakly supported branches in the input gene tree and then optimally resolving it based on both the input gene tree samples and the species tree while accounting for horizontal gene transfer, gene duplication, and gene loss. A key feature of TreeSolve is that it can output multiple distinct optimal resolutions, ordered by average branch support values. Further technical details and experimental evaluation appear in the paper cited below.

TreeSolve serves a similar purpose as the TreeFix-DTL program available from the software download page, but is much faster, far more scalable, and yields multiple candidate error-corrected gene trees (rather than just a single one).

TreeSolve was implemented by Misagh Kordi and its source code is available upon request (and will be released open source under GNU GPL upon publication). Precompiled executable and a user manual are available below.

This software can be cited as follows:

Funding: Development of the software resource(s) available from this webpage was funded in part by U.S. National Science Foundation awards MCB 1616514 and IES 1615573.

Contact: Please feel free to contact Mukul Bansal ( if you have any questions, concerns, or suggestions.