Browse code

ggimage

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/ggtree@127721 bc3139a8-67e5-0310-9ffc-ced21a209358

Guangchuang Yu authored on 27/03/2017 01:58:54
Showing15 changed files

... ...
@@ -9,4 +9,6 @@ Makefile
9 9
 README.Rmd
10 10
 mkdocs
11 11
 docs
12
-logo.png
13 12
\ No newline at end of file
13
+logo.png.github
14
+.github
15
+ggtree_sticker.R
... ...
@@ -1,7 +1,8 @@
1 1
 Package: ggtree
2 2
 Type: Package
3
-Title: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data
4
-Version: 1.7.9
3
+Title: an R package for visualization and annotation of phylogenetic trees with
4
+    their covariates and other associated data
5
+Version: 1.7.10
5 6
 Authors@R: c(
6 7
 	   person("Guangchuang", "Yu", email = "guangchuangyu@gmail.com", role = c("aut", "cre", "cph")),
7 8
 	   person("Tommy Tsan-Yuk", "Lam", email = "tylam.tommy@gmail.com", rol = c("aut", "ths")),
... ...
@@ -9,8 +10,9 @@ Authors@R: c(
9 10
 	   person("Hugo", "Gruson", email = "hugo.gruson@normalesup.org", rol = "ctb")
10 11
 	   )
11 12
 Maintainer: Guangchuang Yu <guangchuangyu@gmail.com>
12
-Description: 'ggtree' extends the 'ggplot2' plotting system which implemented the grammar of graphics.
13
-	     'ggtree' is designed for visualization and annotation of phylogenetic trees with their covariates and other associated data.
13
+Description: 'ggtree' extends the 'ggplot2' plotting system which implemented
14
+    the grammar of graphics. 'ggtree' is designed for visualization and annotation
15
+    of phylogenetic trees with their covariates and other associated data.
14 16
 Depends:
15 17
     R (>= 3.3.2),
16 18
     ggplot2 (>= 2.2.0),
... ...
@@ -21,6 +23,7 @@ Imports:
21 23
     grid,
22 24
     magrittr,
23 25
     methods,
26
+    rvcheck,
24 27
     tidyr,
25 28
     utils
26 29
 Suggests:
... ...
@@ -12,6 +12,10 @@ rd:
12 12
 readme:
13 13
 	Rscript -e 'rmarkdown::render("README.Rmd")'
14 14
 
15
+sticker:
16
+	Rscript -e 'source("ggtree_sticker.R")';
17
+	rm Rplots.pdf
18
+
15 19
 build:
16 20
 	cd ..;\
17 21
 	R CMD build $(PKGSRC)
... ...
@@ -47,17 +51,11 @@ mkdocs: mdfiles
47 51
 	mkdocs build;\
48 52
 	cd ../docs;\
49 53
 	rm -rf fonts;\
50
-	rm -rf css/font-awesome*;\
51
-	Rscript -e 'library(ypages); add_biobabble("index.html")'
52
-
54
+	rm -rf css/font-awesome*
53 55
 
54 56
 mdfiles:
55 57
 	cd mkdocs;\
56
-	Rscript -e 'library(ypages); gendoc("src/index.md", "blue", "docs/index.md")';\
57
-	Rscript -e 'library(ypages); gendoc("src/documentation.md", "blue", "docs/documentation.md")';\
58
-	Rscript -e 'library(ypages); gendoc("src/featuredArticles.md", "blue", "docs/featuredArticles.md")';\
59
-	Rscript -e 'library(ypages); gendoc("src/gallery.md", "blue", "docs/gallery.md")';\
60
-	Rscript -e 'library(ypages); gendoc("src/faq.md", "blue", "docs/faq.md")';\
58
+	Rscript -e 'source("render.R")';\
61 59
 	cd docs;\
62 60
 	ln -f -s ../mysoftware/* ./
63 61
 
... ...
@@ -181,6 +181,7 @@ importFrom(magrittr,add)
181 181
 importFrom(magrittr,equals)
182 182
 importFrom(methods,is)
183 183
 importFrom(methods,missingArg)
184
+importFrom(rvcheck,get_fun_from_pkg)
184 185
 importFrom(tidyr,gather)
185 186
 importFrom(treeio,as.phylo)
186 187
 importFrom(treeio,as.treedata)
... ...
@@ -1,5 +1,13 @@
1
+CHANGES IN VERSION 1.7.10
2
+------------------------
3
+ o add message for subview, inset, phylopic, theme_transparent and theme_inset <2017-03-23, Thu>
4
+   + will be defunct in version >= 1.9.0
5
+   + user should use ggimage package to annotate tree with graphic object or image file
6
+ o update subview to support mainview produced by `ggplot() + layers` <2017-03-13, Mon>
7
+
1 8
 CHANGES IN VERSION 1.7.9
2 9
 ------------------------
10
+ o fixed geom_range to support height_0.95_HPD <2017-03-03, Fri>
3 11
  o fixed geom_tiplab(geom='label') <2017-03-02, Thu>
4 12
    + https://github.com/GuangchuangYu/ggtree/issues/115
5 13
 
... ...
@@ -1,3 +1,30 @@
1
+plot_fantree <- function(fantree, upper=TRUE) {
2
+    if (upper) {
3
+        ymin <- -.25
4
+        ymax <- 1.3
5
+        ## y <- 0.55
6
+    } else {
7
+        ymin <- .2
8
+        ymax <- 1.75
9
+        ## y <- 0.45
10
+    }
11
+
12
+    ggplot() + xlim(0,1) + ylim(0.5, 1) + theme_tree() +
13
+        annotation_custom(ggplotGrob(fantree),
14
+                          xmin=-.15, xmax=1.15,
15
+                          ymin=ymin, ymax=ymax)
16
+    ## d <- data.frame(x=c(0,1), y=c(0.5, 1))
17
+    ## ggplot(d, aes_(x=~x, y=~y)) %>%
18
+    ##     subview(fantree, 0.5, y, width=2, height=2.2) ##  %>%
19
+    ## subview(p2+theme_transparent(), 0.5, 0.45, width=2, height=2.2) + theme_tree()
20
+}
21
+
22
+plot_fantrees <- function(uppertree, lowertree) {
23
+    ggplot() + xlim(0,1) + ylim(0.5, 1) + theme_tree() +
24
+        annotation_custom(ggplotGrob(uppertree), xmin=-.15, xmax=1.15, ymin=0.52, ymax=1.02) +
25
+        annotation_custom(ggplotGrob(lowertree + theme_transparent()), xmin=-.15, xmax=1.15, ymin=0.48, ymax=0.98)
26
+}
27
+
1 28
 
2 29
 
3 30
 ##' return a data.frame that contains position information
... ...
@@ -16,7 +16,11 @@ geom_range <- function(range="height_0.95_HPD", ...) {
16 16
 
17 17
     default_aes <- aes_(x=~x, y=~y, xend=~x, yend=~y)
18 18
 
19
-    mapping <- modifyList(default_aes, aes_string(branch.length="branch.length", label=range))
19
+    if (grepl("^height", range)) {
20
+        mapping <- modifyList(default_aes, aes_string(branch.length="height", label=range))
21
+    } else {
22
+        mapping <- modifyList(default_aes, aes_string(branch.length="branch.length", label=range))
23
+    }
20 24
 
21 25
     layer(
22 26
         stat = StatRange,
... ...
@@ -26,7 +30,8 @@ geom_range <- function(range="height_0.95_HPD", ...) {
26 30
         position = position,
27 31
         show.legend=show.legend,
28 32
         inherit.aes = inherit.aes,
29
-        params = list(na.rm = na.rm, ...),
33
+        params = list(na.rm = na.rm,
34
+                      ...),
30 35
         check.aes = FALSE
31 36
     )
32 37
 
... ...
@@ -42,6 +47,7 @@ StatRange <- ggproto("StatRange", Stat,
42 47
                          rr2 <- strsplit(rr, split=',') %>% do.call('rbind', .)
43 48
                          rr2 <- matrix(as.numeric(rr2), ncol=2, byrow=FALSE)
44 49
                          rr2 <- rr2 + df$x - df$branch
50
+
45 51
                          data.frame(x = rr2[,1],
46 52
                                     xend = rr2[,2],
47 53
                                     y = df$y,
... ...
@@ -17,6 +17,8 @@
17 17
 inset <- function(tree_view, insets, width=0.1, height=0.1, hjust=0, vjust=0,
18 18
                   x="node", reverse_x=FALSE, reverse_y=FALSE) {
19 19
 
20
+    message("The inset function will be defunct in next release, please use ggimage::geom_subview() instead.")
21
+
20 22
     df <- tree_view$data[as.numeric(names(insets)),]
21 23
     x <- match.arg(x, c("node", "branch", "edge"))
22 24
 
... ...
@@ -1,6 +1,6 @@
1 1
 ##' download phylopic and convert to grob object
2 2
 ##'
3
-##' 
3
+##'
4 4
 ##' @title get.phylopic
5 5
 ##' @param id phylopic id
6 6
 ##' @param size size of the phylopic
... ...
@@ -34,9 +34,9 @@ download.phylopic <- function(id, size=512, color="black", alpha=1) {
34 34
 
35 35
     channel <- get_fun_from_pkg("EBImage", "channel")
36 36
     readImage <- get_fun_from_pkg("EBImage", "readImage")
37
-    
37
+
38 38
     img <- readImage(imgfile)
39
-       
39
+
40 40
     color <- col2rgb(color) / 255
41 41
 
42 42
     img <- channel(img, 'rgb')
... ...
@@ -44,7 +44,7 @@ download.phylopic <- function(id, size=512, color="black", alpha=1) {
44 44
     img[,,2] <- color[2]
45 45
     img[,,3] <- color[3]
46 46
     img[,,4] <- img[,,4]*alpha
47
-    
47
+
48 48
     return(img)
49 49
 }
50 50
 
... ...
@@ -59,13 +59,13 @@ download.phylopic_internal <- function(id, size=512, outfile=NULL) {
59 59
         outfile <- sub(".*/", "", imgurl)
60 60
     }
61 61
     ## mode = "wb" for Windows platform
62
-    download.file(imgurl, outfile, mode="wb", quiet = TRUE) 
62
+    download.file(imgurl, outfile, mode="wb", quiet = TRUE)
63 63
 }
64 64
 
65 65
 
66 66
 ##' add phylopic layer
67 67
 ##'
68
-##' 
68
+##'
69 69
 ##' @title phylopic
70 70
 ##' @param tree_view tree view
71 71
 ##' @param phylopic_id phylopic id
... ...
@@ -84,6 +84,9 @@ download.phylopic_internal <- function(id, size=512, outfile=NULL) {
84 84
 phylopic <- function(tree_view, phylopic_id,
85 85
                      size=512, color="black", alpha=0.5,
86 86
                      node=NULL, x=NULL, y=NULL, width=.1) {
87
+
88
+    message("The phylopic function will be defunct in next release, please use ggimage::geom_phylopic() instead.")
89
+
87 90
     width <- diff(range(tree_view$data$x)) * width
88 91
     img <- download.phylopic(phylopic_id, size, color, alpha)
89 92
     if ( is.null(node) ) {
... ...
@@ -104,7 +107,7 @@ phylopic <- function(tree_view, phylopic_id,
104 107
         ymin <- y - AR * width/2
105 108
         ymax <- y + AR * width/2
106 109
     }
107
-    
110
+
108 111
     tree_view + annotation_custom(xmin=xmin, ymin=ymin,
109 112
                                   xmax=xmax, ymax=ymax,
110 113
                                   rasterGrob(img))
... ...
@@ -118,7 +121,7 @@ getAR <- function(img) {
118 121
 
119 122
 ##' annotation taxa with images
120 123
 ##'
121
-##' 
124
+##'
122 125
 ##' @title annotation_image
123 126
 ##' @param tree_view tree view
124 127
 ##' @param img_info data.frame with first column of taxa name and second column of image names
... ...
@@ -149,7 +152,7 @@ annotation_image <- function(tree_view, img_info, width=0.1, align=TRUE, linetyp
149 152
         xmin <- x - width/2 + offset
150 153
     }
151 154
     xmax <- xmin + width
152
-    
155
+
153 156
     ymin <- y - ARs * width/2
154 157
     ymax <- y + ARs * width/2
155 158
     image_layers <- lapply(1:length(xmin), function(i) {
... ...
@@ -1,6 +1,6 @@
1 1
 ##' add subview to mainview for ggplot2 objects
2 2
 ##'
3
-##' 
3
+##'
4 4
 ##' @title subview
5 5
 ##' @param mainview main view
6 6
 ##' @param subview a ggplot or grob object
... ...
@@ -11,15 +11,24 @@
11 11
 ##' @return ggplot object
12 12
 ##' @importFrom ggplot2 annotation_custom
13 13
 ##' @importFrom ggplot2 ggplotGrob
14
+##' @importFrom ggplot2 ggplot_build
14 15
 ##' @export
15 16
 ##' @author Guangchuang Yu
16 17
 subview <- function(mainview, subview, x, y, width=.1, height=.1) {
18
+    message("The subview function will be defunct in next release, please use ggimage::geom_subview() instead.")
19
+
17 20
     mapping <- mainview$mapping %>% as.character
18 21
     aes_x <- mapping["x"]
19 22
     aes_y <- mapping["y"]
20
-    
21
-    xrng <- mainview$data[, aes_x] %>% range 
22
-    yrng <- mainview$data[, aes_y] %>% range
23
+
24
+    if (is.na(aes_x) || is.na(aes_y)) {
25
+        obj <- ggplot_build(mainview)
26
+        xrng <- obj$layout$panel_ranges[[1]]$x.range
27
+        yrng <- obj$layout$panel_ranges[[1]]$y.range
28
+    } else {
29
+        xrng <- mainview$data[, aes_x] %>% range
30
+        yrng <- mainview$data[, aes_y] %>% range
31
+    }
23 32
 
24 33
     for (i in seq_along(mainview$layers)) {
25 34
         layer <- mainview$layers[[i]]
... ...
@@ -58,13 +67,15 @@ subview <- function(mainview, subview, x, y, width=.1, height=.1) {
58 67
 
59 68
     xrng <- diff(xrng)
60 69
     yrng <- diff(yrng)
61
-    
62
-    if (!any(class(subview) %in% c("ggplot", "grob", "character"))) {
70
+
71
+    if (!any(class(subview) %in% c("ggplot", "trellis", "grob", "character"))) {
63 72
         stop("subview should be a ggplot or grob object, or an image file...")
64 73
     }
65
-    
74
+
66 75
     if (is(subview, "ggplot")) {
67 76
         sv <- ggplotGrob(subview)
77
+    } else if (is(subview, "trellis")) {
78
+        sv <- grid::grid.grabExpr(print(subview))
68 79
     } else if (is(subview, "grob")) {
69 80
         sv <- subview
70 81
     } else if (file.exists(subview)) {
... ...
@@ -76,7 +87,7 @@ subview <- function(mainview, subview, x, y, width=.1, height=.1) {
76 87
 
77 88
     width <- width/2
78 89
     height <- height/2
79
-    
90
+
80 91
     mainview + annotation_custom(
81 92
         sv,
82 93
         xmin = x - width*xrng,
... ...
@@ -20,7 +20,7 @@
20 20
 theme_tree <- function(bgcolor="white", fgcolor="black", ...) {
21 21
     list(xlab(NULL),
22 22
          ylab(NULL),
23
-	 theme_tree2_internal() + 
23
+	 theme_tree2_internal() +
24 24
          theme(panel.background=element_rect(fill=bgcolor, colour=bgcolor),
25 25
                axis.line.x = element_blank(),
26 26
                axis.text.x = element_blank(),
... ...
@@ -63,7 +63,7 @@ theme_tree2_internal <- function(bgcolor="white", fgcolor="black",
63 63
                                  axis.line.y=element_blank(),
64 64
                                  axis.ticks.y=element_blank(),
65 65
                                  axis.text.y=element_blank(),...) {
66
-    theme_bw() + 
66
+    theme_bw() +
67 67
         theme(legend.position=legend.position,
68 68
               panel.grid.minor=panel.grid.minor,
69 69
               panel.grid.major=panel.grid.major,
... ...
@@ -88,6 +88,8 @@ theme_tree2_internal <- function(bgcolor="white", fgcolor="black",
88 88
 ##' @export
89 89
 ##' @author Guangchuang Yu
90 90
 theme_transparent <- function(...) {
91
+    message("this theme was moved to ggimage::theme_transparent and will be removed in next release")
92
+
91 93
     theme(panel.background = element_rect(
92 94
               fill = "transparent",
93 95
               colour = NA),
... ...
@@ -95,10 +97,10 @@ theme_transparent <- function(...) {
95 97
               fill = "transparent",
96 98
               colour = NA),
97 99
           legend.key = element_rect(
98
-              fill = "transparent", 
100
+              fill = "transparent",
99 101
               colour = NA),
100 102
           legend.background = element_rect(
101
-              fill = "transparent", 
103
+              fill = "transparent",
102 104
               colour = NA), ...)
103 105
 }
104 106
 
... ...
@@ -111,6 +113,7 @@ theme_transparent <- function(...) {
111 113
 ##' @export
112 114
 ##' @author Guangchuang Yu
113 115
 theme_inset <- function(...) {
116
+    message("this theme will be removed in next release")
114 117
     list(xlab(NULL),
115 118
          ylab(NULL),
116 119
          theme_tree(...),
... ...
@@ -459,14 +459,7 @@ getCols <- function (n) {
459 459
     colorRampPalette(col3)(n)
460 460
 }
461 461
 
462
-
463
-get_fun_from_pkg <- function(pkg, fun) {
464
-    ## requireNamespace(pkg)
465
-    ## eval(parse(text=paste0(pkg, "::", fun)))
466
-    require(pkg, character.only = TRUE)
467
-    eval(parse(text = fun))
468
-}
469
-
462
+##' @importFrom rvcheck get_fun_from_pkg
470 463
 hist <- get_fun_from_pkg("graphics", "hist")
471 464
 
472 465
 
... ...
@@ -15,12 +15,15 @@ library("txtplot")
15 15
 library("ypages")
16 16
 ```
17 17
 
18
-`r badge_release("ggtree", "green")`
19
-`r badge_devel("ggtree", "green")`
18
+<img src="https://raw.githubusercontent.com/Bioconductor/BiocStickers/master/ggtree/ggtree.png" height="200" align="right" />
19
+
20
+
21
+`r badge_bioc_release("ggtree", "green")`
22
+`r badge_devel("guangchuangyu/ggtree", "green")`
20 23
 [![Bioc](http://www.bioconductor.org/shields/years-in-bioc/ggtree.svg)](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#since)
21
-`r badge_download("ggtree", "total", "blue")`
22
-`r badge_download("ggtree", "month", "blue")`
23
-<img src="logo.png" align="right" />
24
+`r badge_bioc_download("ggtree", "total", "blue")`
25
+`r badge_bioc_download("ggtree", "month", "blue")`
26
+
24 27
 
25 28
 [![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)
26 29
 [![codecov](https://codecov.io/gh/GuangchuangYu/ggtree/branch/master/graph/badge.svg)](https://codecov.io/gh/GuangchuangYu/ggtree)
... ...
@@ -74,8 +77,8 @@ txtplot(d$year, d$cites)
74 77
 ### Download stats
75 78
 
76 79
 `r badge_download_bioc("ggtree")`
77
-`r badge_download("ggtree", "total", "blue")`
78
-`r badge_download("ggtree", "month", "blue")`
80
+`r badge_bioc_download("ggtree", "total", "blue")`
81
+`r badge_bioc_download("ggtree", "month", "blue")`
79 82
 
80 83
 
81 84
 ```{r echo=F, comment=NA}
... ...
@@ -2,9 +2,11 @@
2 2
 ggtree: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data
3 3
 ===========================================================================================================================
4 4
 
5
-[![releaseVersion](https://img.shields.io/badge/release%20version-1.6.9-green.svg?style=flat)](https://bioconductor.org/packages/ggtree) [![develVersion](https://img.shields.io/badge/devel%20version-1.7.9-green.svg?style=flat)](https://github.com/GuangchuangYu/ggtree) [![Bioc](http://www.bioconductor.org/shields/years-in-bioc/ggtree.svg)](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#since) [![total](https://img.shields.io/badge/downloads-22704/total-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree) [![month](https://img.shields.io/badge/downloads-1894/month-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree) <img src="logo.png" align="right" />
5
+<img src="https://raw.githubusercontent.com/Bioconductor/BiocStickers/master/ggtree/ggtree.png" height="200" align="right" />
6 6
 
7
-[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) [![codecov](https://codecov.io/gh/GuangchuangYu/ggtree/branch/master/graph/badge.svg)](https://codecov.io/gh/GuangchuangYu/ggtree) [![Last-changedate](https://img.shields.io/badge/last%20change-2017--03--02-green.svg)](https://github.com/GuangchuangYu/ggtree/commits/master) [![GitHub forks](https://img.shields.io/github/forks/GuangchuangYu/ggtree.svg)](https://github.com/GuangchuangYu/ggtree/network) [![GitHub stars](https://img.shields.io/github/stars/GuangchuangYu/ggtree.svg)](https://github.com/GuangchuangYu/ggtree/stargazers) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://awesome-r.com/#awesome-r-graphic-displays)
7
+[![](https://img.shields.io/badge/release%20version-1.6.11-green.svg?style=flat)](https://bioconductor.org/packages/ggtree) [![](https://img.shields.io/badge/devel%20version-1.7.10-green.svg?style=flat)](https://github.com/guangchuangyu/ggtree) [![Bioc](http://www.bioconductor.org/shields/years-in-bioc/ggtree.svg)](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#since) [![](https://img.shields.io/badge/download-13254/total-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree) [![](https://img.shields.io/badge/download-967/month-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree)
8
+
9
+[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active) [![codecov](https://codecov.io/gh/GuangchuangYu/ggtree/branch/master/graph/badge.svg)](https://codecov.io/gh/GuangchuangYu/ggtree) [![Last-changedate](https://img.shields.io/badge/last%20change-2017--03--23-green.svg)](https://github.com/GuangchuangYu/ggtree/commits/master) [![GitHub forks](https://img.shields.io/github/forks/GuangchuangYu/ggtree.svg)](https://github.com/GuangchuangYu/ggtree/network) [![GitHub stars](https://img.shields.io/github/stars/GuangchuangYu/ggtree.svg)](https://github.com/GuangchuangYu/ggtree/stargazers) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://awesome-r.com/#awesome-r-graphic-displays)
8 10
 
9 11
 [![platform](http://www.bioconductor.org/shields/availability/devel/ggtree.svg)](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#archives) [![Build Status](http://www.bioconductor.org/shields/build/devel/bioc/ggtree.svg)](https://bioconductor.org/checkResults/devel/bioc-LATEST/ggtree/) [![Linux/Mac Travis Build Status](https://img.shields.io/travis/GuangchuangYu/ggtree/master.svg?label=Mac%20OSX%20%26%20Linux)](https://travis-ci.org/GuangchuangYu/ggtree) [![AppVeyor Build Status](https://img.shields.io/appveyor/ci/Guangchuangyu/ggtree/master.svg?label=Windows)](https://ci.appveyor.com/project/GuangchuangYu/ggtree) [![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-green.svg?style=flat)](http://bioconda.github.io/recipes/bioconductor-ggtree/README.html)
10 12
 
... ...
@@ -18,7 +20,7 @@ Please cite the following article when using `ggtree`:
18 20
 
19 21
 **G Yu**, DK Smith, H Zhu, Y Guan, TTY Lam<sup>\*</sup>. ggtree: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data. ***Methods in Ecology and Evolution***. 2017, 8(1):28-36.
20 22
 
21
-[![doi](https://img.shields.io/badge/doi-10.1111/2041--210X.12628-green.svg?style=flat)](http://dx.doi.org/10.1111/2041-210X.12628) [![citation](https://img.shields.io/badge/cited%20by-7-green.svg?style=flat)](https://scholar.google.com.hk/scholar?oi=bibs&hl=en&cites=7268358477862164627) [![Altmetric](https://img.shields.io/badge/Altmetric-352-green.svg?style=flat)](https://www.altmetric.com/details/10533079)
23
+[![](https://img.shields.io/badge/doi-10.1111/2041--210X.12628-green.svg?style=flat)](http://dx.doi.org/10.1111/2041-210X.12628) [![citation](https://img.shields.io/badge/cited%20by-11-green.svg?style=flat)](https://scholar.google.com.hk/scholar?oi=bibs&hl=en&cites=7268358477862164627) [![](https://img.shields.io/badge/Altmetric-351-green.svg?style=flat)](https://www.altmetric.com/details/10533079)
22 24
 
23 25
 ------------------------------------------------------------------------
24 26
 
... ...
@@ -31,50 +33,50 @@ For details, please visit our project website, <https://guangchuangyu.github.io/
31 33
 
32 34
 ### Citation
33 35
 
34
-[![citation](https://img.shields.io/badge/cited%20by-7-green.svg?style=flat)](https://scholar.google.com.hk/scholar?oi=bibs&hl=en&cites=7268358477862164627)
35
-
36
-      +--+---------+---------+---------+---------+---------+---+
37
-    6 +                                                    *   +
38
-      |                                                        |
39
-    5 +                                                        +
40
-      |                                                        |
41
-    4 +                                                        +
42
-      |                                                        |
43
-      |                                                        |
44
-    3 +                                                        +
45
-      |                                                        |
46
-    2 +                                                        +
47
-      |                                                        |
48
-    1 +  *                                                     +
49
-      +--+---------+---------+---------+---------+---------+---+
36
+[![citation](https://img.shields.io/badge/cited%20by-11-green.svg?style=flat)](https://scholar.google.com.hk/scholar?oi=bibs&hl=en&cites=7268358477862164627)
37
+
38
+       +-+---------+---------+---------+---------+---------+---+
39
+    10 +                                                   *   +
40
+       |                                                       |
41
+     8 +                                                       +
42
+       |                                                       |
43
+       |                                                       |
44
+     6 +                                                       +
45
+       |                                                       |
46
+     4 +                                                       +
47
+       |                                                       |
48
+       |                                                       |
49
+     2 +                                                       +
50
+       | *                                                     |
51
+       +-+---------+---------+---------+---------+---------+---+
50 52
        2016     2016.2    2016.4    2016.6    2016.8     2017   
51 53
 
52 54
 ### Download stats
53 55
 
54
-[![download](http://www.bioconductor.org/shields/downloads/ggtree.svg)](https://bioconductor.org/packages/stats/bioc/ggtree) [![total](https://img.shields.io/badge/downloads-22704/total-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree) [![month](https://img.shields.io/badge/downloads-1894/month-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree)
56
+[![download](http://www.bioconductor.org/shields/downloads/ggtree.svg)](https://bioconductor.org/packages/stats/bioc/ggtree) [![](https://img.shields.io/badge/download-13254/total-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree) [![](https://img.shields.io/badge/download-967/month-blue.svg?style=flat)](https://bioconductor.org/packages/stats/bioc/ggtree)
55 57
 
56
-         ++--------------------+--------------------+--------------------+--------------------+--------+
57
-         |                                                                                        *    |
58
-         |                                                                                 *           |
58
+         ++-------------------+-------------------+--------------------+-------------------+-----------+
59
+         |                                                                                    *        |
60
+         |                                                                              *         *    |
59 61
          |                                                                                             |
60
-         |                                                                         *   *               |
62
+         |                                                                       *  *                  |
61 63
          |                                                                                             |
62 64
     1500 +                                                                                             +
63 65
          |                                                                                             |
64
-         |                                                               *                             |
65
-         |                                                                                    *        |
66
-         |                                                    *             *   *                      |
67
-    1000 +                                                        *  *                                 +
66
+         |                                                             *                               |
67
+         |                                                                                 *           |
68
+         |                                                   *            *   *                        |
69
+    1000 +                                                      *  *                                   +
68 70
          |                                                                                             |
69
-         |                                      *      *                                               |
70
-         |                                                 *                                           |
71
-         |                               *   *      *                                                  |
71
+         |                                     *      *                                                |
72
+         |                                               *                                             |
73
+         |                              *   *     *                                                    |
72 74
          |                                                                                             |
73
-     500 +                            *                                                                +
74
-         |                     *  *                                                                    |
75
+     500 +                           *                                                                 +
76
+         |                    *  *                                                                     |
75 77
          |                 *                                                                           |
76
-         |              *                                                                              |
78
+         |             *                                                                               |
77 79
          |                                                                                             |
78 80
        0 +   *  *   *                                                                                  +
79
-         ++--------------------+--------------------+--------------------+--------------------+--------+
80
-        2015                2015.5                2016                2016.5                2017
81
+         ++-------------------+-------------------+--------------------+-------------------+-----------+
82
+        2015               2015.5               2016                2016.5               2017
81 83
deleted file mode 100644
82 84
Binary files a/logo.png and /dev/null differ