Learn R Programming

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

Install

install.packages('phyloTop')

Monthly Downloads

261

Version

2.1.2

License

GPL-2

Issues

Pull Requests

Stars

Forks

Last Published

January 24th, 2023

Functions in phyloTop (2.1.2)

maxHeight

Maximum tree height
phyloCheck

Check tree format (internal)
phyloTop

phyloTop: topological properties of phylogenies
nodeDepthFrac

Fraction of nodes beyond a given depth
nConfig

Configuration sizes in a tree
nodeDepth

Node depth
pitchforks

Number of pitchforks
nodeImbFrac

Fraction of nodes with given imbalance
makePhyloTree

Make phylogenetic tree (internal)
rtree4

Random phylo4 tree
treeImb

Tree imbalance
subtreeShow

Highlight a subtree
sackin.phylo

Sackin index
nodeImb

Node imbalance
splitTop

Split topology
stairs

Stairs
widths

Number of nodes at each depth
colless.phylo

Colless number
getLabGenealogy

Create genealogy
ladderSizes

Ladder sizes
cherries

Cherry number
ladderShow

Show ladders
makeEpiRecord

Simulate epidemiological record
configShow

Plot a tree highlighting configurations
ILnumber

IL number
getDepths

Find the depth of each node
avgLadder

Average ladder size