A Julia package for statistical inference, data manipulation and visualization of phylogenetic networks
94 Stars
Updated Last
2 Years Ago
Started In
August 2014

PhyloNetworks: analysis for phylogenetic networks

Build status codecov Coverage Status


PhyloNetworks is a Julia package with utilities to:

  • read / write phylogenetic trees and networks, in (extended) Newick format. Networks are considered explicit: nodes represent ancestral species. They can be rooted or unrooted.
  • manipulate networks: re-root, prune taxa, remove hybrid edges, extract the major tree from a network, extract displayed networks / trees
  • compare networks / trees with dissimilarity measures (Robinson-Foulds distance on trees)
  • summarize samples of bootstrap networks (or trees) with edge and node support
  • estimate species networks from multilocus data (see below)
  • phylogenetic comparative methods for continuous trait evolution on species networks / trees
  • plot networks (and trees), via the companion package PhyloPlots

To get help, check

  • the latest documentation
  • the wiki for a step-by-step tutorial (July 2018) with background on networks
  • the google group for common questions. Join the group to post/email your questions, or to receive information on new versions, bugs fixed, etc.

If you use the package, please cite

Maximum pseudolikelihood estimation of species network: SNaQ

SNaQ implements the statistical inference method in Solís-Lemus and Ané (2016). The procedure involves a numerical optimization of branch lengths and inheritance probabilities and a heuristic search in the space of phylogenetic networks.

If you use SNaQ, please cite

Phylogenetic comparative methods for trait evolution

For continuous traits, study based on the Brownian motion process, with or without transgressive evolution after reticulations: