... | ... |
@@ -61,7 +61,6 @@ export(geom_tippoint) |
61 | 61 |
export(geom_tree) |
62 | 62 |
export(geom_tree2) |
63 | 63 |
export(geom_treescale) |
64 |
-export(get.offspring.tip) |
|
65 | 64 |
export(get.path) |
66 | 65 |
export(get_balance_position) |
67 | 66 |
export(get_clade_position) |
... | ... |
@@ -123,7 +122,6 @@ export(xlim_tree) |
123 | 122 |
exportMethods(gzoom) |
124 | 123 |
exportMethods(scale_color) |
125 | 124 |
importFrom(ape,di2multi) |
126 |
-importFrom(ape,extract.clade) |
|
127 | 125 |
importFrom(ape,ladderize) |
128 | 126 |
importFrom(ape,read.nexus) |
129 | 127 |
importFrom(ape,read.tree) |
... | ... |
@@ -218,6 +216,7 @@ importFrom(tidytree,MRCA) |
218 | 216 |
importFrom(tidytree,as_tibble) |
219 | 217 |
importFrom(tidytree,groupClade) |
220 | 218 |
importFrom(tidytree,groupOTU) |
219 |
+importFrom(tidytree,offspring) |
|
221 | 220 |
importFrom(treeio,Nnode) |
222 | 221 |
importFrom(treeio,Ntip) |
223 | 222 |
importFrom(treeio,as.phylo) |
... | ... |
@@ -1,5 +1,6 @@ |
1 | 1 |
# ggtree 1.15.6 |
2 | 2 |
|
3 |
++ remove `get.offspring.df` and `get.offspring.tip` and instead use `tidytree::offspring` (2019-01-28, Mon) |
|
3 | 4 |
+ `facet_widths` function to set relative widths of facet panels (2019-01-28, Mon) |
4 | 5 |
- the output is `ggplotify::as.ggplot(grid_object)`, so it is not the original `ggtree` object. |
5 | 6 |
|
... | ... |
@@ -5,6 +5,7 @@ |
5 | 5 |
##' @param tree_view tree view |
6 | 6 |
##' @param node node |
7 | 7 |
##' @return taxa name vector |
8 |
+##' @importFrom tidytree offspring |
|
8 | 9 |
##' @export |
9 | 10 |
##' @author Guangchuang Yu |
10 | 11 |
get_taxa_name <- function(tree_view=NULL, node=NULL) { |
... | ... |
@@ -12,8 +13,9 @@ get_taxa_name <- function(tree_view=NULL, node=NULL) { |
12 | 13 |
|
13 | 14 |
df <- tree_view$data |
14 | 15 |
if (!is.null(node)) { |
15 |
- sp <- get.offspring.df(df, node) |
|
16 |
- df <- df[sp, ] |
|
16 |
+ ## sp <- get.offspring.df(df, node) |
|
17 |
+ ## df <- df[sp, ] |
|
18 |
+ df <- offspring(df, node) |
|
17 | 19 |
} |
18 | 20 |
|
19 | 21 |
with(df, { |
... | ... |
@@ -81,8 +83,9 @@ collapse.ggtree <- function(x=NULL, node, clade_name = NULL, ...) { |
81 | 83 |
return(tree_view) |
82 | 84 |
} |
83 | 85 |
|
84 |
- sp <- get.offspring.df(df, node) |
|
85 |
- sp.df <- df[sp,] |
|
86 |
+ ## sp <- get.offspring.df(df, node) |
|
87 |
+ ## sp.df <- df[sp,] |
|
88 |
+ sp.df <- offspring(df, node) |
|
86 | 89 |
## df[node, "isTip"] <- TRUE |
87 | 90 |
sp_y <- range(sp.df$y, na.rm=TRUE) |
88 | 91 |
ii <- which(df$y > max(sp_y)) |
... | ... |
@@ -91,8 +94,8 @@ collapse.ggtree <- function(x=NULL, node, clade_name = NULL, ...) { |
91 | 94 |
} |
92 | 95 |
df$y[node] <- min(sp_y) |
93 | 96 |
|
94 |
- df[sp, "x"] <- NA |
|
95 |
- df[sp, "y"] <- NA |
|
97 |
+ df[sp.df$node, "x"] <- NA |
|
98 |
+ df[sp.df$node, "y"] <- NA |
|
96 | 99 |
|
97 | 100 |
df <- reassign_y_from_node_to_root(df, node) |
98 | 101 |
|
... | ... |
@@ -170,10 +173,15 @@ rotate <- function(tree_view=NULL, node) { |
170 | 173 |
tree_view %<>% get_tree_view |
171 | 174 |
|
172 | 175 |
df <- tree_view$data |
173 |
- sp <- get.offspring.df(df, node) |
|
176 |
+ ## sp <- get.offspring.df(df, node) |
|
177 |
+ ## sp_idx <- with(df, match(sp, node)) |
|
178 |
+ ## tip <- sp[df$isTip[sp_idx]] |
|
179 |
+ ## sp.df <- df[sp_idx,] |
|
180 |
+ sp.df <- offspring(df, node) |
|
181 |
+ sp <- sp.df$node |
|
174 | 182 |
sp_idx <- with(df, match(sp, node)) |
175 | 183 |
tip <- sp[df$isTip[sp_idx]] |
176 |
- sp.df <- df[sp_idx,] |
|
184 |
+ |
|
177 | 185 |
ii <- with(sp.df, match(tip, node)) |
178 | 186 |
jj <- ii[order(sp.df$y[ii])] |
179 | 187 |
sp.df[jj,"y"] <- rev(sp.df$y[jj]) |
... | ... |
@@ -215,11 +223,16 @@ flip <- function(tree_view=NULL, node1, node2) { |
215 | 223 |
stop("node1 and node2 should share a same parent node...") |
216 | 224 |
} |
217 | 225 |
|
218 |
- sp1 <- c(node1, get.offspring.df(df, node1)) |
|
219 |
- sp2 <- c(node2, get.offspring.df(df, node2)) |
|
226 |
+ ## sp1 <- c(node1, get.offspring.df(df, node1)) |
|
227 |
+ ## sp2 <- c(node2, get.offspring.df(df, node2)) |
|
228 |
+ |
|
229 |
+ ## sp1.df <- df[sp1,] |
|
230 |
+ ## sp2.df <- df[sp2,] |
|
220 | 231 |
|
221 |
- sp1.df <- df[sp1,] |
|
222 |
- sp2.df <- df[sp2,] |
|
232 |
+ sp1.df <- offspring(df, node1, self_include = TRUE) |
|
233 |
+ sp2.df <- offspring(df, node2, self_include = TRUE) |
|
234 |
+ sp1 <- sp1.df$node |
|
235 |
+ sp2 <- sp2.df$node |
|
223 | 236 |
|
224 | 237 |
min_y1 <- min(sp1.df$y, na.rm=TRUE) |
225 | 238 |
min_y2 <- min(sp2.df$y, na.rm=TRUE) |
... | ... |
@@ -280,9 +293,11 @@ scaleClade <- function(tree_view=NULL, node, scale=1, vertical_only=TRUE) { |
280 | 293 |
} |
281 | 294 |
|
282 | 295 |
df <- tree_view$data |
283 |
- sp <- get.offspring.df(df, node) |
|
284 |
- sp.df <- df[sp,] |
|
285 |
- |
|
296 |
+ ## sp <- get.offspring.df(df, node) |
|
297 |
+ ## sp.df <- df[sp,] |
|
298 |
+ sp.df <- offspring(sp, node) |
|
299 |
+ sp <- sp.df$node |
|
300 |
+ |
|
286 | 301 |
## sp_nr <- nrow(sp.df) |
287 | 302 |
## span <- diff(range(sp.df$y))/sp_nr |
288 | 303 |
|
... | ... |
@@ -190,8 +190,9 @@ get_balance_position_ <- function(data, node, direction) { |
190 | 190 |
} |
191 | 191 |
|
192 | 192 |
i <- match(node, data$node) |
193 |
- sp <- tryCatch(get.offspring.df(data, ch[direction]), error=function(e) ch[direction]) |
|
194 |
- sp.all <- get.offspring.df(data, i) |
|
193 |
+ sp <- tryCatch(offspring(data, ch[direction])$node, |
|
194 |
+ error=function(e) ch[direction]) |
|
195 |
+ sp.all <- offspring(data, i)$node |
|
195 | 196 |
sp.df <- data[match(sp, data$node),] |
196 | 197 |
sp.all.df <- data[match(sp.all, data$node),] |
197 | 198 |
n.df <- data[i,] |
... | ... |
@@ -236,9 +236,11 @@ get_cladelabel_position_ <- function(data, node, angle = "auto", extend = 0) { |
236 | 236 |
extend = rep(extend, 2) |
237 | 237 |
} |
238 | 238 |
|
239 |
- sp <- get.offspring.df(data, node) |
|
240 |
- sp2 <- c(sp, node) |
|
241 |
- sp.df <- data[match(sp2, data$node),] |
|
239 |
+ ## sp <- get.offspring.df(data, node) |
|
240 |
+ ## sp2 <- c(sp, node) |
|
241 |
+ ## sp.df <- data[match(sp2, data$node),] |
|
242 |
+ |
|
243 |
+ sp.df <- offspring(data, node, self_include = TRUE) |
|
242 | 244 |
|
243 | 245 |
y <- sp.df$y |
244 | 246 |
y <- y[!is.na(y)] |
... | ... |
@@ -131,7 +131,7 @@ get_clade_position <- function(treeview, node) { |
131 | 131 |
} |
132 | 132 |
|
133 | 133 |
get_clade_position_ <- function(data, node) { |
134 |
- sp <- tryCatch(get.offspring.df(data, node), error=function(e) NULL) |
|
134 |
+ sp <- tryCatch(offspring(data, node)$node, error=function(e) NULL) |
|
135 | 135 |
|
136 | 136 |
i <- match(node, data$node) |
137 | 137 |
if (is.null(sp)) { |
... | ... |
@@ -79,7 +79,8 @@ layoutEqualAngle <- function(model, branch.length ){ |
79 | 79 |
N <- getNodeNum(tree) |
80 | 80 |
|
81 | 81 |
## Get number of tips for each node in tree. |
82 |
- nb.sp <- sapply(1:N, function(i) length(get.offspring.tip(tree, i))) |
|
82 |
+ ## nb.sp <- sapply(1:N, function(i) length(get.offspring.tip(tree, i))) |
|
83 |
+ nb.sp <- sapply(1:N, function(i) length(offspring(tree, i, tiponly = TRUE))) |
|
83 | 84 |
## Get list of node id's. |
84 | 85 |
nodes <- getNodes_by_postorder(tree) |
85 | 86 |
|
... | ... |
@@ -742,36 +743,39 @@ getChild.df <- function(df, node) { |
742 | 743 |
res[res != node] ## node may root |
743 | 744 |
} |
744 | 745 |
|
745 |
-get.offspring.df <- function(df, node) { |
|
746 |
- sp <- getChild.df(df, node) |
|
747 |
- i <- 1 |
|
748 |
- while(i <= length(sp)) { |
|
749 |
- sp <- c(sp, getChild.df(df, sp[i])) |
|
750 |
- i <- i + 1 |
|
751 |
- } |
|
752 |
- return(sp) |
|
753 |
-} |
|
746 |
+## get.offspring.df <- function(df, node) { |
|
747 |
+## ## sp <- getChild.df(df, node) |
|
748 |
+## ## i <- 1 |
|
749 |
+## ## while(i <= length(sp)) { |
|
750 |
+## ## sp <- c(sp, getChild.df(df, sp[i])) |
|
751 |
+## ## i <- i + 1 |
|
752 |
+## ## } |
|
753 |
+## ## return(sp) |
|
754 |
+## tidytree::offspring(df, node)$node |
|
755 |
+## } |
|
754 | 756 |
|
755 | 757 |
|
756 | 758 |
|
757 |
-##' extract offspring tips |
|
758 |
-##' |
|
759 |
-##' |
|
760 |
-##' @title get.offspring.tip |
|
761 |
-##' @param tr tree |
|
762 |
-##' @param node node |
|
763 |
-##' @return tip label |
|
764 |
-##' @author ygc |
|
765 |
-##' @importFrom ape extract.clade |
|
766 |
-##' @export |
|
767 |
-get.offspring.tip <- function(tr, node) { |
|
768 |
- if ( ! node %in% tr$edge[,1]) { |
|
769 |
- ## return itself |
|
770 |
- return(tr$tip.label[node]) |
|
771 |
- } |
|
772 |
- clade <- extract.clade(tr, node) |
|
773 |
- clade$tip.label |
|
774 |
-} |
|
759 |
+## ##' extract offspring tips |
|
760 |
+## ##' |
|
761 |
+## ##' |
|
762 |
+## ##' @title get.offspring.tip |
|
763 |
+## ##' @param tr tree |
|
764 |
+## ##' @param node node |
|
765 |
+## ##' @return tip label |
|
766 |
+## ##' @author ygc |
|
767 |
+## ##' @importFrom ape extract.clade |
|
768 |
+## ##' @export |
|
769 |
+## get.offspring.tip <- function(tr, node) { |
|
770 |
+## ## if ( ! node %in% tr$edge[,1]) { |
|
771 |
+## ## ## return itself |
|
772 |
+## ## return(tr$tip.label[node]) |
|
773 |
+## ## } |
|
774 |
+## ## clade <- extract.clade(tr, node) |
|
775 |
+## ## clade$tip.label |
|
776 |
+## tid <- offspring(tr, node, tiponly = TRUE) |
|
777 |
+## tr$tip.label[tid] |
|
778 |
+## } |
|
775 | 779 |
|
776 | 780 |
|
777 | 781 |
|
... | ... |
@@ -4,6 +4,6 @@ getRoot <- tidytree:::rootnode |
4 | 4 |
get.tree <- treeio::get.tree |
5 | 5 |
drop.tip <- treeio::drop.tip |
6 | 6 |
get.fields <- treeio::get.fields |
7 |
-is.tree <- treeio:::is.tree |
|
7 |
+is.tree <- getFromNamespace('is.tree', 'treeio') |
|
8 | 8 |
|
9 | 9 |
set_branch_length <- getFromNamespace("set_branch_length", "treeio") |
10 | 10 |
deleted file mode 100644 |
... | ... |
@@ -1,22 +0,0 @@ |
1 |
-% Generated by roxygen2: do not edit by hand |
|
2 |
-% Please edit documentation in R/tree-utilities.R |
|
3 |
-\name{get.offspring.tip} |
|
4 |
-\alias{get.offspring.tip} |
|
5 |
-\title{get.offspring.tip} |
|
6 |
-\usage{ |
|
7 |
-get.offspring.tip(tr, node) |
|
8 |
-} |
|
9 |
-\arguments{ |
|
10 |
-\item{tr}{tree} |
|
11 |
- |
|
12 |
-\item{node}{node} |
|
13 |
-} |
|
14 |
-\value{ |
|
15 |
-tip label |
|
16 |
-} |
|
17 |
-\description{ |
|
18 |
-extract offspring tips |
|
19 |
-} |
|
20 |
-\author{ |
|
21 |
-ygc |
|
22 |
-} |