This package exists to allow parsimony-style tree searches in R.

It extends the basic functionality available in the ‘phangorn’ package, with a view to making tree search faster and more efficient, and allowing user-defined optimality criteria to be employed.

Implied weighting and heuristic searches such as the Parsimony Ratchet (function: Ratchet()) are implemented.


Install and load the library from CRAN as follows:


If you’re feeling brave, you can install the development version thus:

if(!require(devtools)) install.packages("devtools")

Optimality criteria

‘TreeSearch’ allows the implementation of various optimality criteria, including

  • The Profile Parsimony approach introduced by Faith and Trueman (2001).
  • Successive Approximations weighting (Farris 1969).
  • Fitch parsimony with inapplicable data (Brazeau, Guillerme and Smith, 2019).

It is also possible to specify bespoke optimality criteria.


Please note that the ‘TreeSearch’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


Brazeau, M. D., Guillerme, T. and Smith, M. R. 2019. An algorithm for morphological phylogenetic analysis with inapplicable data. Systematic Biology, 68(4), 619-631. doi: 10.1093/sysbio/syy083.

D. P. Faith, J. W. H. Trueman, Towards an inclusive philosophy for phylogenetic inference. Syst. Biol. 50, 331–350 (2001). doi: 10.1080/10635150118627

Farris, J. S. (1969). A successive approximations approach to character weighting. Systematic Biology, 18(4), 374–385. doi: 10.2307/2412182