PhyloNetworks is a Julia package with utilities to to handle phylogenetic trees and networks. It serves as a core package that other packages can depend on, such as PhyloPlots to visualize phylogenies, SNaQ to infer phylogenies from genetic data, PhyloTraits to analyze the evolution of traits along phylogenies.
Phylogenetic networks represent the evolutionary relationships between a set of organisms, e.g. populations, species, languages, cultures etc. They are also called admixture graphs when their leaves are populations of the same or closely related species. They are explicit graph representations, in which nodes represent ancestral populations / species, and edge lengths represent evolutionary time.
Utilities in this core package include:
- read / write phylogenies in (extended) Newick format
- manipulate networks: re-root, prune taxa, remove hybrid edges, transform a network with a semidirected nearest-neighbor interchange (sNNI), extract the major tree from a network, extract displayed networks / trees
- compare networks with dissimilarity measures (e.g. the Robinson-Foulds distance on trees)
- summarize samples of networks with support for local features (edges and clades of hybrid origin or sister to a hybrid clade)
- fit edges lengths from average pairwise distances between leaves, using least-squares
- network traversal routines
To get help, check
- the latest documentation
- the wiki for a step-by-step tutorial with background on networks (last revised 2022)
- tutorial for comparative methods, including network calibration (2023 workshop)
- 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 (bibtex format here). For the PhyloNetworks package in particular, please cite:
- Claudia Solís-Lemus, Paul Bastide and Cécile Ané (2017). PhyloNetworks: a package for phylogenetic networks. Molecular Biology and Evolution 34(12):3292–3298. doi:10.1093/molbev/msx235
Note
Version 0.17 of PhyloNetworks is a major change from version v0.16.4. Many functionalities were moved to other packages (e.g. SNaQ.jl and PhyloTraits.jl), the names of many methods were changed, and various internal functions were improved with breaking changes (e.g. traversal routines). PhyloNetworks v0.17 should serve as a better "core", used by other packages with more specialized functionalities.