How can I use 'geom_taxalink()' with the circular layout in the 'ggtree' package in R?
1
0
Entering edit mode
sd.gamboa.t ▴ 10
@sdgamboat-23851
Last seen 4.4 years ago

Hello,

I want to create a figure of an annotated phylogenetic tree in circular layout with ggtree in R. Some tip nodes must be linked by a curve line. I can achieve this with the geom_taxalink() function in the rectangular layout, but it doesn't work in the circular layout. This seems to be because the geom_taxalink() uses geom_curve(), which doesn't support non-linear coordinates. I get the following message:

"Warning message: geom_curve is not implemented for non-linear coordinates"

Below: reproducible code, the output I get, the output I want, and session info.

I'd appreciate any help to get the result I need.

Thanks!

Samuel

Example code:

library(treeio)
library(ggtree)
library(ggplot2)

raxml_file <- system.file("extdata/RAxML", 
                          "RAxML_bipartitionsBranchLabels.H3",
                          package="treeio")

raxml <- read.raxml(raxml_file)
raxml <- as_tibble(raxml)
raxml$label <- gsub("_.*$", "", raxml$label)
raxml <- as.treedata(raxml)

my_tree <- ggtree(raxml, layout = "circular", branch.length = "none") +
  geom_tiplab2(size = 3, hjust = 1) +
  geom_taxalink("EU857082", 
                "YGSIV1534",
                color = "red") +
  scale_x_reverse(limits = c(100, 0))

ggsave("my_tree.png", my_tree,
       width = 10, height = 10, units = "in",
       dpi = 300)

Link to the result I get: https://raw.githubusercontent.com/sdgamboa/ggtree_example/master/my_tree.png

Link to the result I need: https://raw.githubusercontent.com/sdgamboa/ggtree_example/master/my_tree2.png

tinfo <- sessionInfo()
toLatex(info, locale = FALSE)
# \begin{itemize}\raggedright
# \item R version 4.0.2 (2020-06-22), \verb|x86_64-pc-linux-gnu|
#   \item Running under: \verb|Ubuntu 18.04.4 LTS|
#   \item Matrix products: default
# \item BLAS:   \verb|/usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1|
#   \item LAPACK: \verb|/usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1|
#   \item Base packages: base, datasets, graphics, grDevices, methods,
# stats, utils
# \item Other packages: ggplot2~3.3.2, ggtree~2.2.1, treeio~1.12.0
# \item Loaded via a namespace (and not attached): ape~5.4,
# aplot~0.0.4, assertthat~0.2.1, BiocManager~1.30.10, cli~2.0.2,
# colorspace~1.4-1, compiler~4.0.2, crayon~1.3.4, dplyr~1.0.0,
# ellipsis~0.3.1, fansi~0.4.1, farver~2.0.3, generics~0.0.2,
# glue~1.4.1, grid~4.0.2, gtable~0.3.0, jsonlite~1.7.0, labeling~0.3,
# lattice~0.20-41, lazyeval~0.2.2, lifecycle~0.2.0, magrittr~1.5,
# munsell~0.5.0, nlme~3.1-148, parallel~4.0.2, patchwork~1.0.1,
# pillar~1.4.6, pkgconfig~2.0.3, purrr~0.3.4, R6~2.4.1, Rcpp~1.0.5,
# rlang~0.4.7, rstudioapi~0.11, rvcheck~0.1.8, scales~1.1.1,
# tibble~3.0.3, tidyr~1.1.0, tidyselect~1.1.0, tidytree~0.3.3,
# tools~4.0.2, vctrs~0.3.1, withr~2.2.0
# \end{itemize}
r ggtree phylogeny • 1.4k views
ADD COMMENT
1
Entering edit mode
ADD REPLY
1
Entering edit mode
Guangchuang Yu ★ 1.2k
@guangchuang-yu-5419
Last seen 24 days ago
China/Guangzhou/Southern Medical Univer…

We've updated ggtree (v=2.3.2, currently in github) to extend geom_taxalink to support circular layout.

Currently your code will produce:

[image: image.png]

ADD COMMENT
1
Entering edit mode

Thanks! I hadn't noticed the last version of ggtree on your github repo. Upgrading to v2.3.2 works just fine for what I need.

ADD REPLY

Login before adding your answer.

Traffic: 633 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6