phyloTop: Calculating Topological Properties of Phylogenies

phyloTop provides tools for calculating and viewing topological properties of phylogenetic trees.

Installing phyloTop

To install the development version from github:

library(devtools)
install_github("michellekendall/phyloTop")

The stable version can be installed from CRAN using:

install.packages("phyloTop")

Then, to load the package, use:

library("phyloTop")

## Loading required package: ape

Content overview

The key functions available in phyloTop are:

Tree statistics and topological properties:

  • avgLadder: find the average ladder size in a tree

  • cherries: find the number of cherries in a tree

  • colless.phylo: find the Colless imbalance number of a tree

  • getDepths: find the depth of each node in a tree

  • ILnumber: find the number of nodes with exactly one tip child

  • ladderSizes: find the size of any “ladders” in a tree (consecutive nodes, each with exactly one tip child)

  • maxHeight: find the maximum height (equivalently, depth) of nodes in a tree

  • nConfig: find the sizes of all configurations (equivalently, clades) in a tree

  • nodeDepth: find the depth of a given node in a tree

  • nodeDepthFrac: find the fraction of nodes in a tree at a given depth

  • nodeImb: find the imbalance of a given node in a tree

  • nodeImbFrac: find the fraction of nodes in a tree with an imbalance of a given threshold or more

  • phyloTop: find a range of tree statistics for a list of trees (faster than calling each function individually)

  • pitchforks: find the number of pitchforks (clades of size three) in a tree

  • sackin.phylo: find the Sackin index of a tree

  • splitTop: find the split topology of a tree - the size of clades at a given depth

  • stairs: find the “staircase-ness” measures, as defined by Norstrom et al. 2012

  • treeImb: find the tree imbalance - the imbalance at each node

  • widths: find the number of nodes at each depth in a tree

Tree visualisation tools:

  • configShow: plot a tree, highlighting the configurations of a given size

  • ladderShow: plot a tree, highlighting the “ladders”

  • subtreeShow: plot a tree, highlighting the subtree(s) descending from the given node(s)

Simulating an epidemic and creating the corresponding genealogy:

  • makeEpiRecord: simulate an epidemiological record of infectors, infectees, infection times and recovery times

  • getLabGenealogy: create a genealogy from an epidemiological record

Examples

Tree statistics:

Apply tree statistic functions to a list of 10 random trees, each with 50 tips:

set.seed(123)
phyloTop(rmtree(10,50))

##    avgLadder cherries colless.phylo ILnumber maxHeight pitchforks sackin.phylo
## 1      0.000       19            82       12         9          9          312
## 2      2.167       16           120       18         9          7          330
## 3      2.500       19           192       12        12          6          394
## 4      2.333       16           139       18        11          9          345
## 5      2.000       18           150       14        10          8          358
## 6      2.333       17           105       16        11         10          321
## 7      2.333       19           112       12        10          5          330
## 8      2.333       15           229       20        13          9          421
## 9      3.000       17           121       16        11          7          331
## 10     3.000       16           181       18        12          7          377
##    stairs1 stairs2
## 1   0.5510  0.7257
## 2   0.5306  0.6752
## 3   0.5102  0.6907
## 4   0.6327  0.6487
## 5   0.5714  0.6880
## 6   0.6122  0.6649
## 7   0.5714  0.6696
## 8   0.6735  0.5760
## 9   0.6122  0.6487
## 10  0.6122  0.6237

Tree visualisation tools:

Plot a random tree with 20 tips, highlighting the the clade(s) descending from nodes 25 and 33:

subtreeShow(rtree(20),nodeList=c(25,33), mainCol="navy", subtreeCol="cyan", nodeLabelCol="cyan", edge.width=2)

Contributing / asking a question

Contributions are welcome via pull requests.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Questions, feature requests and bugs can be reported using the package’s issue system.

Copy Link

Version

Down Chevron

Install

install.packages('phyloTop')

Monthly Downloads

267

Version

2.1.2

License

GPL-2

Issues

Pull Requests

Stars

Forks

Last Published

January 24th, 2023

Functions in phyloTop (2.1.2)