Week08 - Interactive Phylogeny
February 26, 2015
htmlwidgets News This Week
-@HarlanH - c3 htmlwidget
c3r
. c3 is a really nice reusable d3.js
charting library that will make for a very powerful htmlwidget
. Be sure to check out the c3.js
demo and all of the examples.
-@yutannihilation - two more from this prolific htmlwidget
-er
highstockR
provides ahtmlwidget
for Highstock, but be careful of Highcharts licensing.dcStockR
will attempt to do what has baffled me for a long time which is to build ahtmlwidget
fordc.js
. I hope he can pull it off.
This Week’s Widget - treewidget
| Interactive Phylogeny + Tree
Once again, this week I can only claim contributions, and most of the credit goes to sdwfrost and Hackout2 on the R side. For the all important JavaScript, we can thank Sergei Pond and Steven Weaver from UCSD Viral Evolution Group for some brilliant work on phylotree.js. I mentioned in this post Week03 | More Network Layouts that a phylogeny viewer has been the most requested htmlwidget
on Github and Twitter. As a nice coincidence, I spotted on Github the beginning of this widget and consequently discovered phylotree.js
. Now I know nothing about phylogeny, but I couldn’t resist getting this thing to work. What I have since discovered is that this little beauty works well for hclust
and dendrograms
also.
Examples
Since it was designed for phylogeny, let’s start with an example in this field. We can use “some cytochrome b sequences” data on some North American snakes from this example from @kueda. I highly encourage you to click on nodes, reroot, tag, and just play a lot with this widget to see all that it offers.
# devtools::install("sdwfrost/epiwidgets")
library(epiwidgets)
treewidget(
"(((Crotalus_oreganus_oreganus_cytochrome_b:0.00800,Crotalus_horridus_cytochrome_b:0.05866):0.04732,(Thamnophis_elegans_terrestris_cytochrome_b:0.00366,Thamnophis_atratus_cytochrome_b:0.00172):0.06255):0.00555,(Pituophis_catenifer_vertebralis_cytochrome_b:0.00552,Lampropeltis_getula_cytochrome_b:0.02035):0.05762,((Diadophis_punctatus_cytochrome_b:0.06486,Contia_tenuis_cytochrome_b:0.05342):0.01037,Hypsiglena_torquata_cytochrome_b:0.05346):0.00779);"
)
You might have noticed that the Newick was used in this example. treewidget
also accepts phylo
data from the ape
package. Let’s have a look using ?ape::bird.orders
.
library(ape)
data(bird.orders)
treewidget(bird.orders)
I enjoy the phylogeny stuff, but in finance, I don’t think I have ever encountered a phylogenetic tree. I don’t want anyone to feel left out. With the magic of ?ape::as.phylo
, we can use this really powerful interactivity on hclust
and dendrograms
. Let’s use the ?hclust
example.
treewidget(
as.phylo(hclust(dist(USArrests), "ave"))
)
Thanks
Thanks so much for all the work by
- sdwfrost
- Hackout2
- Sergei Pond and Steven Weaver from UCSD Viral Evolution Group for phylotree.js
- Ramnath Vaidyanathan and RStudio for
htmlwidgets