Installation

devtools::install_github("zachcp/phylocanvas")

Basic Usage

Use phylocanvas to draw phylogenetic trees. Basic options to control the tree are availalbe in this top level function. The tree shape in controlled by the treetype option. Try ‘radial’ and ‘heirarchical’ as well.

library(phylocanvas)
library(dplyr)

phycanv <- phylocanvas("(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;", treetype = "rectangular", alignlabels = T)
phycircle <- phylocanvas("(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;", treetype = "circular", nodesize = 30, linewidth = 10)
phycircle

Stylize nodes

Node styling options are available. Most of the appearance of a node can be changed here. Note below that colors can be either colornames, rgb strings or hex strings.

# Note that colors are names, rgbs or hex
phycanv %>%
  style_node("A", nodesizeratio = 4, fillcolor="rgb(0, 255, 0)") %>% 
  style_node("B", fillcolor = "blue") %>%
  style_node("C", labeltextsize = 10, shape="triangle") %>%
  style_node("D", fillcolor="#ffa500", highlighted=TRUE) 

Collapse Branches

phycircle %>% collapse_branch("E")

Rotate Branches

phycircle %>% rotate_branch("E")

Select Branches

phycanv %>% select_branch("B")
phycanv %>% select_branch("E", cascade=TRUE)

Highlight Nodes

phycanv %>% highlight_node("B")

Use Plugins

Phylocanvas has a nubmer of different plugins that extend the basic tree. These include pluings ofr metadata, scale bars, svg export, context menu on the mouse, and history. We will try to add as many as reasonable. Currently this htmlwidget sis based on the phylocanvas-quickstart so we can activate the history, context, scale, and metadata features.

# Note the scalebar is active
phylocanvas("(A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;", showscalebar = TRUE)

Roadmap

Not expecting 1:1 parity with the pure JS version. The goal is to expose the basic styling and sizing to allow easy tree drawing within R. Possibly, to use the metadata plugin for heatmap displays and ideally (don’t know how hard this will be) allow drag and drop selection for returnign sequence names into shiny.

Reference

The sourcecode for the phylocanvas htmltools package can be found at the github repo. For more information about the phylocanvas JavaScript library, check out the phylocanvas website.