ggtree annotate phylogenetic tree with local images

[This article was first published on R on G. Yu, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

In ggtree, we provide a function annotation_image for annotating phylogenetic tree with images.

To demonstrate the usage, I created a tree view from a random tree as shown below:

set.seed(2015-08-01)
p <- ggtree(rtree(10)) + xlim(0, 5)+ ylim(0, 11)

We need a data.frame that contains information of taxa labels and image paths. Here I created such a data.frame containing image files downloaded from phylopic.

> img_info
  V1                                           V2
1 t1 25f165fa-f279-4f7c-9869-c55be251ffb8.512.png
2 t2 5d7ab302-960b-4db7-9dfd-215175a55906.512.png
3 t3 6fbe723c-3a6b-4d06-8680-bb2a52113df4.512.png
4 t4 d83c02ca-76ed-436b-83ae-7f98d7297be9.512.png
5 t5 ee764929-c865-44f6-b5db-b4e7d5693d1a.512.png

Annotating tree with images is simple in ggtree by using annotation_image function.

annotation_image(p, img_info)

By default, all the images will align to the right hand side. We can use align=FALSE, to disable it.

annotation_image(p, img_info, align=FALSE)

We can change the type and size of lines, as demonstrated below:

annotation_image(p, img_info, linetype="dashed", linesize=0.2)

The width of the images were controlled by width parameter, and the height will automatically determined by image dimension.

annotation_image(p, img_info, width = .2, linetype="dashed", linesize=0.2)

In the following example, we add tip labels to the tree.

p <- p+geom_tiplab(align=TRUE, linetype="dashed", linesize=.2)
print(p)

If we also want to add the image and align them, we don’t want to show the line added by annotation_image function. This can be achieved by setting linetype=NULL. By default the images and tip labels will be overlapped, we can move the images by offset parameter.

p %>% annotation_image(img_info, width=.2, linetype=NULL, offset=.3)

To leave a comment for the author, please follow the link and comment on their blog: R on G. Yu.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)