... | ... |
@@ -2,7 +2,7 @@ Package: ggtree |
2 | 2 |
Type: Package |
3 | 3 |
Title: an R package for visualization and annotation of phylogenetic trees with |
4 | 4 |
their covariates and other associated data |
5 |
-Version: 1.11.2 |
|
5 |
+Version: 1.11.3 |
|
6 | 6 |
Authors@R: c( |
7 | 7 |
person("Guangchuang", "Yu", email = "guangchuangyu@gmail.com", role = c("aut", "cre", "cph"), comment = c(ORCID = "0000-0002-6485-8781")), |
8 | 8 |
person("Tommy Tsan-Yuk", "Lam", email = "tylam.tommy@gmail.com", role = c("aut", "ths")), |
... | ... |
@@ -36,6 +36,10 @@ check2: build |
36 | 36 |
cd ..;\ |
37 | 37 |
R CMD check $(PKGNAME)_$(PKGVERS).tar.gz |
38 | 38 |
|
39 |
+check3: rd build2 |
|
40 |
+ cd ..;\ |
|
41 |
+ R CMD check --ignore-vignettes $(PKGNAME)_$(PKGVERS).tar.gz |
|
42 |
+ |
|
39 | 43 |
bioccheck: |
40 | 44 |
cd ..;\ |
41 | 45 |
Rscript -e 'BiocCheck::BiocCheck("$(PKGNAME)_$(PKGVERS).tar.gz")' |
... | ... |
@@ -4,20 +4,12 @@ S3method(as.binary,phylo) |
4 | 4 |
S3method(as.data.frame,phylo) |
5 | 5 |
S3method(as_data_frame,phylo) |
6 | 6 |
S3method(as_data_frame,treedata) |
7 |
-S3method(fortify,codeml) |
|
8 |
-S3method(fortify,codeml_mlc) |
|
9 |
-S3method(fortify,hyphy) |
|
10 |
-S3method(fortify,jplace) |
|
11 | 7 |
S3method(fortify,multiPhylo) |
12 | 8 |
S3method(fortify,obkData) |
13 |
-S3method(fortify,paml_rst) |
|
14 |
-S3method(fortify,phangorn) |
|
15 |
-S3method(fortify,phylip) |
|
16 | 9 |
S3method(fortify,phylo) |
17 | 10 |
S3method(fortify,phylo4) |
18 | 11 |
S3method(fortify,phylo4d) |
19 | 12 |
S3method(fortify,phyloseq) |
20 |
-S3method(fortify,r8s) |
|
21 | 13 |
S3method(fortify,treedata) |
22 | 14 |
S3method(identify,gg) |
23 | 15 |
S3method(print,beastList) |
... | ... |
@@ -195,9 +187,10 @@ importFrom(scales,alpha) |
195 | 187 |
importFrom(tibble,as_data_frame) |
196 | 188 |
importFrom(tibble,data_frame) |
197 | 189 |
importFrom(tidyr,gather) |
190 |
+importFrom(treeio,Nnode) |
|
191 |
+importFrom(treeio,Ntip) |
|
198 | 192 |
importFrom(treeio,as.phylo) |
199 | 193 |
importFrom(treeio,as.treedata) |
200 |
-importFrom(treeio,get.placements) |
|
201 | 194 |
importFrom(treeio,groupClade) |
202 | 195 |
importFrom(treeio,groupOTU) |
203 | 196 |
importFrom(utils,modifyList) |
... | ... |
@@ -1,3 +1,7 @@ |
1 |
+CHANGES IN VERSION 1.11.3 |
|
2 |
+------------------------ |
|
3 |
+ o remove paml_rst, codeml_mlc, codeml and jplace fortify methods according to the change of treeio (v = 1.3.3) <2017-12-07, Thu> |
|
4 |
+ |
|
1 | 5 |
CHANGES IN VERSION 1.11.2 |
2 | 6 |
------------------------ |
3 | 7 |
o keep tree order (previously using postorder) <2017-12-06-Wed> |
... | ... |
@@ -1,4 +1,3 @@ |
1 |
- |
|
2 | 1 |
##' collapse binary tree to polytomy by applying 'fun' to 'feature' |
3 | 2 |
##' |
4 | 3 |
##' |
... | ... |
@@ -19,11 +18,11 @@ as.polytomy <- function(tree, feature, fun) { |
19 | 18 |
phylo <- get.tree(tree) |
20 | 19 |
|
21 | 20 |
if (feature == 'node.label') { |
22 |
- feat <- df[!df$isTip, 'label'] |
|
21 |
+ feat <- df$label[!df$isTip] |
|
23 | 22 |
} else if (feature == 'tip.label') { |
24 |
- feat <- df[df$isTip, 'label'] |
|
23 |
+ feat <- df$label[df$isTip] |
|
25 | 24 |
} else { |
26 |
- feat <- df[, feature] |
|
25 |
+ feat <- df[[feature]] |
|
27 | 26 |
} |
28 | 27 |
|
29 | 28 |
idx <- which(fun(feat)) |
... | ... |
@@ -133,12 +133,12 @@ expand <- function(tree_view=NULL, node) { |
133 | 133 |
root <- which(df$node == df$parent) |
134 | 134 |
pp <- node |
135 | 135 |
while(any(pp != root)) { |
136 |
- df[pp, "y"] <- mean(df[getChild.df(df, pp), "y"]) |
|
137 |
- pp <- df[pp, "parent"] |
|
136 |
+ df[pp, "y"] <- mean(df$y[getChild.df(df, pp)]) |
|
137 |
+ pp <- df$parent[pp] |
|
138 | 138 |
} |
139 | 139 |
j <- getChild.df(df, pp) |
140 | 140 |
j <- j[j!=pp] |
141 |
- df[pp, "y"] <- mean(df[j, "y"]) |
|
141 |
+ df[pp, "y"] <- mean(df$y[j]) |
|
142 | 142 |
|
143 | 143 |
## re-calculate branch mid position |
144 | 144 |
df <- calculate_branch_mid(df) |
... | ... |
@@ -166,17 +166,17 @@ rotate <- function(tree_view=NULL, node) { |
166 | 166 |
tip <- sp[df$isTip[sp_idx]] |
167 | 167 |
sp.df <- df[sp_idx,] |
168 | 168 |
ii <- with(sp.df, match(tip, node)) |
169 |
- jj <- ii[order(sp.df[ii, "y"])] |
|
170 |
- sp.df[jj,"y"] <- rev(sp.df[jj, "y"]) |
|
169 |
+ jj <- ii[order(sp.df$y[ii])] |
|
170 |
+ sp.df[jj,"y"] <- rev(sp.df$y[jj]) |
|
171 | 171 |
sp.df[-jj, "y"] <- NA |
172 | 172 |
sp.df <- re_assign_ycoord_df(sp.df, tip) |
173 | 173 |
|
174 | 174 |
df[sp_idx, "y"] <- sp.df$y |
175 | 175 |
## df$node == node is TRUE when node was root |
176 |
- df[df$node == node, "y"] <- mean(df[df$parent == node & df$node != node, "y"]) |
|
176 |
+ df[df$node == node, "y"] <- mean(df$y[df$parent == node & df$node != node]) |
|
177 | 177 |
pnode <- df$parent[df$node == node] |
178 | 178 |
if (pnode != node && !is.na(pnode)) { |
179 |
- df[df$node == pnode, "y"] <- mean(df[df$parent == pnode, "y"]) |
|
179 |
+ df[df$node == pnode, "y"] <- mean(df$y[df$parent == pnode]) |
|
180 | 180 |
} |
181 | 181 |
|
182 | 182 |
tree_view$data <- calculate_angle(df) |
... | ... |
@@ -275,9 +275,9 @@ scaleClade <- function(tree_view=NULL, node, scale=1, vertical_only=TRUE) { |
275 | 275 |
|
276 | 276 |
## new_span <- span * scale |
277 | 277 |
old.sp.df <- sp.df |
278 |
- sp.df$y <- df[node, "y"] + (sp.df$y - df[node, "y"]) * scale |
|
278 |
+ sp.df$y <- df$y[node] + (sp.df$y - df$y[node]) * scale |
|
279 | 279 |
if (! vertical_only) { |
280 |
- sp.df$x <- df[node, "x"] + (sp.df$x - df[node, "x"]) * scale |
|
280 |
+ sp.df$x <- df$x[node] + (sp.df$x - df$x[node]) * scale |
|
281 | 281 |
} |
282 | 282 |
|
283 | 283 |
scale_diff.up <- max(sp.df$y) - max(old.sp.df$y) |
... | ... |
@@ -285,12 +285,12 @@ scaleClade <- function(tree_view=NULL, node, scale=1, vertical_only=TRUE) { |
285 | 285 |
|
286 | 286 |
ii <- df$y > max(old.sp.df$y) |
287 | 287 |
if (sum(ii) > 0) { |
288 |
- df[ii, "y"] <- df[ii, "y"] + scale_diff.up |
|
288 |
+ df[ii, "y"] <- df$y[ii] + scale_diff.up |
|
289 | 289 |
} |
290 | 290 |
|
291 | 291 |
jj <- df$y < min(old.sp.df$y) |
292 | 292 |
if (sum(jj) > 0) { |
293 |
- df[jj, "y"] <- df[jj, "y"] + scale_diff.lw |
|
293 |
+ df[jj, "y"] <- df$y[jj] + scale_diff.lw |
|
294 | 294 |
} |
295 | 295 |
|
296 | 296 |
df[sp,] <- sp.df |
... | ... |
@@ -320,13 +320,13 @@ scaleClade <- function(tree_view=NULL, node, scale=1, vertical_only=TRUE) { |
320 | 320 |
|
321 | 321 |
reassign_y_from_node_to_root <- function(df, node) { |
322 | 322 |
root <- which(df$node == df$parent) |
323 |
- pp <- df[node, "parent"] |
|
323 |
+ pp <- df$parent[node] |
|
324 | 324 |
while(any(pp != root)) { |
325 |
- df[pp, "y"] <- mean(df[getChild.df(df, pp), "y"]) |
|
326 |
- pp <- df[pp, "parent"] |
|
325 |
+ df[pp, "y"] <- mean(df$y[getChild.df(df, pp)]) |
|
326 |
+ pp <- df$parent[pp] |
|
327 | 327 |
} |
328 | 328 |
j <- getChild.df(df, pp) |
329 | 329 |
j <- j[j!=pp] |
330 |
- df[pp, "y"] <- mean(df[j, "y"]) |
|
330 |
+ df[pp, "y"] <- mean(df$y[j]) |
|
331 | 331 |
return(df) |
332 | 332 |
} |
... | ... |
@@ -220,169 +220,132 @@ rm.singleton.newick <- function(nwk, outfile = NULL) { |
220 | 220 |
## } |
221 | 221 |
|
222 | 222 |
|
223 |
-##' @method fortify codeml |
|
224 |
-##' @export |
|
225 |
-fortify.codeml <- function(model, data, |
|
226 |
- layout = "rectangular", |
|
227 |
- yscale = "none", |
|
228 |
- ladderize = TRUE, |
|
229 |
- right = FALSE, |
|
230 |
- branch.length = "mlc.branch.length", |
|
231 |
- ndigits = NULL, |
|
232 |
- mrsd = NULL, |
|
233 |
- ...) { |
|
234 |
- |
|
235 |
- dNdS <- model@mlc@dNdS |
|
236 |
- if (branch.length == "branch.length") { |
|
237 |
- message("branch.length setting to mlc.branch.length by default...") |
|
238 |
- branch.length <- "mlc.branch.length" |
|
239 |
- } |
|
240 |
- length <- match.arg(branch.length, |
|
241 |
- c("none", |
|
242 |
- "mlc.branch.length", |
|
243 |
- "rst.branch.length", |
|
244 |
- colnames(dNdS)[-c(1,2)]) |
|
245 |
- ) |
|
246 |
- |
|
247 |
- if (length == "rst.branch.length") { |
|
248 |
- phylo <- get.tree(model@rst) |
|
249 |
- } else { |
|
250 |
- if (length == "mlc.branch.length") { |
|
251 |
- length <- "branch.length" |
|
252 |
- } |
|
253 |
- mlc <- set_branch_length(model@mlc, length) |
|
254 |
- phylo <- get.tree(mlc) |
|
255 |
- } |
|
256 |
- |
|
257 |
- df <- fortify(phylo, data, layout, ladderize, right, |
|
258 |
- branch.length=length, mrsd=mrsd, ...) |
|
259 |
- |
|
260 |
- res <- merge_phylo_anno.codeml_mlc(df, dNdS, ndigits) |
|
261 |
- df <- merge_phylo_anno.paml_rst(res, model@rst) |
|
262 |
- df <- scaleY(phylo, df, yscale, layout, ...) |
|
263 |
- |
|
264 |
- append_extraInfo(df, model) |
|
265 |
-} |
|
266 |
- |
|
267 |
- |
|
268 |
-##' @method fortify codeml_mlc |
|
269 |
-##' @export |
|
270 |
-fortify.codeml_mlc <- function(model, data, |
|
271 |
- layout = "rectangular", |
|
272 |
- yscale = "none", |
|
273 |
- ladderize = TRUE, |
|
274 |
- right = FALSE, |
|
275 |
- branch.length = "branch.length", |
|
276 |
- ndigits = NULL, |
|
277 |
- mrsd = NULL, |
|
278 |
- ...) { |
|
279 |
- |
|
280 |
- model <- set_branch_length(model, branch.length) |
|
281 |
- phylo <- get.tree(model) |
|
282 |
- df <- fortify(phylo, data, layout, ladderize, right, |
|
283 |
- branch.length=branch.length, mrsd=mrsd, ...) |
|
284 |
- |
|
285 |
- dNdS <- model@dNdS |
|
286 |
- |
|
287 |
- df <- merge_phylo_anno.codeml_mlc(df, dNdS, ndigits) |
|
288 |
- df <- scaleY(phylo, df, yscale, layout, ...) |
|
289 |
- |
|
290 |
- append_extraInfo(df, model) |
|
291 |
-} |
|
223 |
+## ##' @method fortify codeml |
|
224 |
+## ##' @export |
|
225 |
+## fortify.codeml <- function(model, data, |
|
226 |
+## layout = "rectangular", |
|
227 |
+## yscale = "none", |
|
228 |
+## ladderize = TRUE, |
|
229 |
+## right = FALSE, |
|
230 |
+## branch.length = "mlc.branch.length", |
|
231 |
+## ndigits = NULL, |
|
232 |
+## mrsd = NULL, |
|
233 |
+## ...) { |
|
234 |
+ |
|
235 |
+## dNdS <- model@mlc@dNdS |
|
236 |
+## if (branch.length == "branch.length") { |
|
237 |
+## message("branch.length setting to mlc.branch.length by default...") |
|
238 |
+## branch.length <- "mlc.branch.length" |
|
239 |
+## } |
|
240 |
+## length <- match.arg(branch.length, |
|
241 |
+## c("none", |
|
242 |
+## "mlc.branch.length", |
|
243 |
+## "rst.branch.length", |
|
244 |
+## colnames(dNdS)[-c(1,2)]) |
|
245 |
+## ) |
|
246 |
+ |
|
247 |
+## if (length == "rst.branch.length") { |
|
248 |
+## phylo <- get.tree(model@rst) |
|
249 |
+## } else { |
|
250 |
+## if (length == "mlc.branch.length") { |
|
251 |
+## length <- "branch.length" |
|
252 |
+## } |
|
253 |
+## mlc <- set_branch_length(model@mlc, length) |
|
254 |
+## phylo <- get.tree(mlc) |
|
255 |
+## } |
|
292 | 256 |
|
293 |
-merge_phylo_anno.codeml_mlc <- function(df, dNdS, ndigits = NULL) { |
|
294 |
- if (!is.null(ndigits)) { |
|
295 |
- idx <- which(! colnames(dNdS) %in% c("node", "parent")) |
|
296 |
- for (ii in idx) { |
|
297 |
- if (is.numeric(dNdS[, ii])) { |
|
298 |
- dNdS[, ii] <- round(dNdS[,ii], ndigits) |
|
299 |
- } |
|
300 |
- } |
|
301 |
- } |
|
257 |
+## df <- fortify(phylo, data, layout, ladderize, right, |
|
258 |
+## branch.length=length, mrsd=mrsd, ...) |
|
302 | 259 |
|
303 |
- res <- merge(df, dNdS, |
|
304 |
- by.x = c("node", "parent"), |
|
305 |
- by.y = c("node", "parent"), |
|
306 |
- all.x = TRUE) |
|
260 |
+## res <- merge_phylo_anno.codeml_mlc(df, dNdS, ndigits) |
|
261 |
+## df <- merge_phylo_anno.paml_rst(res, model@rst) |
|
262 |
+## df <- scaleY(phylo, df, yscale, layout, ...) |
|
307 | 263 |
|
308 |
- res[match(df$node, res$node),] |
|
309 |
-} |
|
264 |
+## append_extraInfo(df, model) |
|
265 |
+## } |
|
310 | 266 |
|
311 |
-fortify.codeml_mlc_ <- function(model, data, |
|
312 |
- layout = "rectangular", |
|
313 |
- ladderize = TRUE, |
|
314 |
- right = FALSE, |
|
315 |
- branch.length = "branch.length", |
|
316 |
- ...) { |
|
317 | 267 |
|
318 |
-} |
|
268 |
+## ##' @method fortify codeml_mlc |
|
269 |
+## ##' @export |
|
270 |
+## fortify.codeml_mlc <- function(model, data, |
|
271 |
+## layout = "rectangular", |
|
272 |
+## yscale = "none", |
|
273 |
+## ladderize = TRUE, |
|
274 |
+## right = FALSE, |
|
275 |
+## branch.length = "branch.length", |
|
276 |
+## ndigits = NULL, |
|
277 |
+## mrsd = NULL, |
|
278 |
+## ...) { |
|
319 | 279 |
|
280 |
+## model <- set_branch_length(model, branch.length) |
|
281 |
+## phylo <- get.tree(model) |
|
282 |
+## df <- fortify(phylo, data, layout, ladderize, right, |
|
283 |
+## branch.length=branch.length, mrsd=mrsd, ...) |
|
320 | 284 |
|
285 |
+## dNdS <- model@dNdS |
|
321 | 286 |
|
322 |
-##' @method fortify paml_rst |
|
323 |
-##' @export |
|
324 |
-fortify.paml_rst <- function(model, data, |
|
325 |
- layout = "rectangular", |
|
326 |
- yscale = "none", |
|
327 |
- ladderize = TRUE, |
|
328 |
- right = FALSE, |
|
329 |
- mrsd = NULL, |
|
330 |
- ...) { |
|
331 |
- df <- fortify.phylo(model@phylo, data, layout, ladderize, right, mrsd=mrsd, ...) |
|
332 |
- df <- merge_phylo_anno.paml_rst(df, model) |
|
333 |
- df <- scaleY(model@phylo, df, yscale, layout, ...) |
|
287 |
+## df <- merge_phylo_anno.codeml_mlc(df, dNdS, ndigits) |
|
288 |
+## df <- scaleY(phylo, df, yscale, layout, ...) |
|
334 | 289 |
|
335 |
- append_extraInfo(df, model) |
|
336 |
-} |
|
290 |
+## append_extraInfo(df, model) |
|
291 |
+## } |
|
337 | 292 |
|
338 |
-merge_phylo_anno.paml_rst <- function(df, model) { |
|
339 |
- types <- get.fields(model) |
|
340 |
- types <- types[grepl('subs', types)] |
|
341 |
- for (type in types) { |
|
342 |
- anno <- get.subs(model, type=type) |
|
343 |
- colnames(anno)[2] <- type |
|
344 |
- df <- df %add2% anno |
|
345 |
- } |
|
346 |
- return(df) |
|
347 |
-} |
|
293 |
+## merge_phylo_anno.codeml_mlc <- function(df, dNdS, ndigits = NULL) { |
|
294 |
+## if (!is.null(ndigits)) { |
|
295 |
+## idx <- which(! colnames(dNdS) %in% c("node", "parent")) |
|
296 |
+## for (ii in idx) { |
|
297 |
+## if (is.numeric(dNdS[, ii])) { |
|
298 |
+## dNdS[, ii] <- round(dNdS[,ii], ndigits) |
|
299 |
+## } |
|
300 |
+## } |
|
301 |
+## } |
|
348 | 302 |
|
303 |
+## res <- merge(df, dNdS, |
|
304 |
+## by.x = c("node", "parent"), |
|
305 |
+## by.y = c("node", "parent"), |
|
306 |
+## all.x = TRUE) |
|
349 | 307 |
|
350 |
-##' @method fortify phangorn |
|
351 |
-##' @export |
|
352 |
-fortify.phangorn <- fortify.paml_rst |
|
308 |
+## res[match(df$node, res$node),] |
|
309 |
+## } |
|
353 | 310 |
|
354 | 311 |
|
355 |
-##' @method fortify hyphy |
|
356 |
-##' @export |
|
357 |
-fortify.hyphy <- fortify.paml_rst |
|
312 |
+## ##' @method fortify paml_rst |
|
313 |
+## ##' @export |
|
314 |
+## fortify.paml_rst <- function(model, data, |
|
315 |
+## layout = "rectangular", |
|
316 |
+## yscale = "none", |
|
317 |
+## ladderize = TRUE, |
|
318 |
+## right = FALSE, |
|
319 |
+## mrsd = NULL, |
|
320 |
+## ...) { |
|
321 |
+## df <- fortify.phylo(model@phylo, data, layout, ladderize, right, mrsd=mrsd, ...) |
|
322 |
+## df <- merge_phylo_anno.paml_rst(df, model) |
|
323 |
+## df <- scaleY(model@phylo, df, yscale, layout, ...) |
|
358 | 324 |
|
325 |
+## append_extraInfo(df, model) |
|
326 |
+## } |
|
359 | 327 |
|
360 |
-##' @method fortify jplace |
|
361 |
-##' @importFrom ape read.tree |
|
362 |
-##' @importFrom treeio get.placements |
|
363 |
-##' @export |
|
364 |
-fortify.jplace <- function(model, data, |
|
365 |
- layout = "rectangular", |
|
366 |
- yscale = "none", |
|
367 |
- ladderize = TRUE, |
|
368 |
- right = FALSE, |
|
369 |
- mrsd = NULL, |
|
370 |
- ...) { |
|
371 |
- df <- extract.treeinfo.jplace(model, layout, ladderize, right, mrsd=mrsd, ...) |
|
372 |
- place <- get.placements(model, by="best") |
|
328 |
+## merge_phylo_anno.paml_rst <- function(df, model) { |
|
329 |
+## types <- get.fields(model) |
|
330 |
+## types <- types[grepl('subs', types)] |
|
331 |
+## for (type in types) { |
|
332 |
+## anno <- get.subs(model, type=type) |
|
333 |
+## colnames(anno)[2] <- type |
|
334 |
+## df <- df %add2% anno |
|
335 |
+## } |
|
336 |
+## return(df) |
|
337 |
+## } |
|
373 | 338 |
|
374 |
- nplace <- split(place, place$edge_num) %>% lapply(nrow) |
|
375 |
- nplace.df <- data.frame(edgeNum = names(nplace), nplace=unlist(nplace)) |
|
376 | 339 |
|
377 |
- ## df <- merge(df, place, by.x="edgeNum", by.y="edge_num", all.x=TRUE) |
|
378 |
- df <- merge(df, nplace.df, by.x="edgeNum", by.y="edgeNum", all.x=TRUE) |
|
340 |
+## ##' @method fortify phangorn |
|
341 |
+## ##' @export |
|
342 |
+## fortify.phangorn <- fortify.paml_rst |
|
379 | 343 |
|
380 |
- df$nplace[is.na(df$nplace)] <- 0 |
|
381 | 344 |
|
382 |
- df <- scaleY(model@phylo, df, yscale, layout, ...) |
|
345 |
+## ##' @method fortify hyphy |
|
346 |
+## ##' @export |
|
347 |
+## fortify.hyphy <- fortify.paml_rst |
|
383 | 348 |
|
384 |
- append_extraInfo(df, model) |
|
385 |
-} |
|
386 | 349 |
|
387 | 350 |
scaleY <- function(phylo, df, yscale, layout, ...) { |
388 | 351 |
if (yscale == "none") { |
... | ... |
@@ -447,72 +410,72 @@ fortify.phylo4d <- function(model, data, |
447 | 410 |
|
448 | 411 |
|
449 | 412 |
|
450 |
-##' fortify a phylo to data.frame |
|
451 |
-##' |
|
452 |
-##' |
|
453 |
-##' @rdname fortify |
|
454 |
-##' @title fortify |
|
455 |
-##' @param model phylo object |
|
456 |
-##' @param data not use here |
|
457 |
-##' @param layout layout |
|
458 |
-##' @param ladderize ladderize, logical |
|
459 |
-##' @param right logical |
|
460 |
-##' @param mrsd most recent sampling date |
|
461 |
-##' @param as.Date logical whether using Date class in time tree |
|
462 |
-##' @param ... additional parameter |
|
463 |
-##' @return data.frame |
|
464 |
-##' @importFrom ape ladderize |
|
465 |
-##' @importFrom ape reorder.phylo |
|
466 |
-##' @importFrom ggplot2 fortify |
|
467 |
-##' @method fortify phylo |
|
468 |
-##' @export |
|
469 |
-##' @author Yu Guangchuang |
|
470 |
-fortify.phylo <- function(model, data, |
|
471 |
- layout = "rectangular", |
|
472 |
- ladderize = TRUE, |
|
473 |
- right = FALSE, |
|
474 |
- mrsd = NULL, |
|
475 |
- as.Date = FALSE, ...) { |
|
476 |
- ## tree <- reorder.phylo(model, 'postorder') |
|
477 |
- tree <- model |
|
478 |
- |
|
479 |
- if (ladderize == TRUE) { |
|
480 |
- tree <- ladderize(tree, right=right) |
|
481 |
- } |
|
413 |
+## ##' fortify a phylo to data.frame |
|
414 |
+## ##' |
|
415 |
+## ##' |
|
416 |
+## ##' @rdname fortify |
|
417 |
+## ##' @title fortify |
|
418 |
+## ##' @param model phylo object |
|
419 |
+## ##' @param data not use here |
|
420 |
+## ##' @param layout layout |
|
421 |
+## ##' @param ladderize ladderize, logical |
|
422 |
+## ##' @param right logical |
|
423 |
+## ##' @param mrsd most recent sampling date |
|
424 |
+## ##' @param as.Date logical whether using Date class in time tree |
|
425 |
+## ##' @param ... additional parameter |
|
426 |
+## ##' @return data.frame |
|
427 |
+## ##' @importFrom ape ladderize |
|
428 |
+## ##' @importFrom ape reorder.phylo |
|
429 |
+## ##' @importFrom ggplot2 fortify |
|
430 |
+## ##' @method fortify phylo |
|
431 |
+## ##' @export |
|
432 |
+## ##' @author Yu Guangchuang |
|
433 |
+## fortify.phylo <- function(model, data, |
|
434 |
+## layout = "rectangular", |
|
435 |
+## ladderize = TRUE, |
|
436 |
+## right = FALSE, |
|
437 |
+## mrsd = NULL, |
|
438 |
+## as.Date = FALSE, ...) { |
|
439 |
+## ## tree <- reorder.phylo(model, 'postorder') |
|
440 |
+## tree <- model |
|
441 |
+ |
|
442 |
+## if (ladderize == TRUE) { |
|
443 |
+## tree <- ladderize(tree, right=right) |
|
444 |
+## } |
|
482 | 445 |
|
483 |
- if (! is.null(tree$edge.length)) { |
|
484 |
- if (anyNA(tree$edge.length)) { |
|
485 |
- warning("'edge.length' contains NA values...\n## setting 'edge.length' to NULL automatically when plotting the tree...") |
|
486 |
- tree$edge.length <- NULL |
|
487 |
- } |
|
488 |
- } |
|
446 |
+## if (! is.null(tree$edge.length)) { |
|
447 |
+## if (anyNA(tree$edge.length)) { |
|
448 |
+## warning("'edge.length' contains NA values...\n## setting 'edge.length' to NULL automatically when plotting the tree...") |
|
449 |
+## tree$edge.length <- NULL |
|
450 |
+## } |
|
451 |
+## } |
|
489 | 452 |
|
490 |
- df <- as.data.frame(tree, layout=layout, ...) |
|
491 |
- idx <- is.na(df$parent) |
|
492 |
- df$parent[idx] <- df$node[idx] |
|
493 |
- rownames(df) <- df$node |
|
494 |
- cn <- colnames(df) |
|
495 |
- colnames(df)[grep("length", cn)] <- "branch.length" |
|
496 |
- if(layout == "slanted") { |
|
497 |
- df <- add_angle_slanted(df) |
|
498 |
- } |
|
499 |
- aa <- names(attributes(tree)) |
|
500 |
- group <- aa[ ! aa %in% c("names", "class", "order", "reroot", "node_map")] |
|
501 |
- if (length(group) > 0) { |
|
502 |
- for (group_ in group) { |
|
503 |
- ## groupOTU & groupClade |
|
504 |
- group_info <- attr(tree, group_) |
|
505 |
- if (length(group_info) == nrow(df)) { |
|
506 |
- df[, group_] <- group_info |
|
507 |
- } |
|
508 |
- } |
|
509 |
- } |
|
453 |
+## df <- as.data.frame(tree, layout=layout, ...) |
|
454 |
+## idx <- is.na(df$parent) |
|
455 |
+## df$parent[idx] <- df$node[idx] |
|
456 |
+## rownames(df) <- df$node |
|
457 |
+## cn <- colnames(df) |
|
458 |
+## colnames(df)[grep("length", cn)] <- "branch.length" |
|
459 |
+## if(layout == "slanted") { |
|
460 |
+## df <- add_angle_slanted(df) |
|
461 |
+## } |
|
462 |
+## aa <- names(attributes(tree)) |
|
463 |
+## group <- aa[ ! aa %in% c("names", "class", "order", "reroot", "node_map")] |
|
464 |
+## if (length(group) > 0) { |
|
465 |
+## for (group_ in group) { |
|
466 |
+## ## groupOTU & groupClade |
|
467 |
+## group_info <- attr(tree, group_) |
|
468 |
+## if (length(group_info) == nrow(df)) { |
|
469 |
+## df[, group_] <- group_info |
|
470 |
+## } |
|
471 |
+## } |
|
472 |
+## } |
|
510 | 473 |
|
511 |
- if (!is.null(mrsd)) { |
|
512 |
- df <- scaleX_by_time_from_mrsd(df, mrsd, as.Date) |
|
513 |
- } |
|
514 |
- return(df) |
|
515 |
-} |
|
474 |
+## if (!is.null(mrsd)) { |
|
475 |
+## df <- scaleX_by_time_from_mrsd(df, mrsd, as.Date) |
|
476 |
+## } |
|
477 |
+## return(df) |
|
478 |
+## } |
|
516 | 479 |
|
517 | 480 |
##' convert phylo to data.frame |
518 | 481 |
##' |
... | ... |
@@ -592,29 +555,6 @@ as.data.frame.phylo_ <- function(x, layout="rectangular", |
592 | 555 |
return(res) |
593 | 556 |
} |
594 | 557 |
|
595 |
-## ##' @method fortify nhx |
|
596 |
-## ##' @export |
|
597 |
-## fortify.nhx <- function(model, data, layout= "rectangular", |
|
598 |
-## ladderize=TRUE, right=FALSE, mrsd=NULL, ...) { |
|
599 |
-## df <- fortify(get.tree(model), layout=layout, ladderize=ladderize, right=right, mrsd=mrsd, ...) |
|
600 |
-## df <- merge(df, model@nhx_tags, by.x="node", by.y="node", all.x=TRUE) |
|
601 |
-## append_extraInfo(df, model) |
|
602 |
-## } |
|
603 |
- |
|
604 |
- |
|
605 |
-## ##' @method fortify raxml |
|
606 |
-## ##' @export |
|
607 |
-## fortify.raxml <- function(model, data, layout= "rectangular", |
|
608 |
-## ladderize=TRUE, right=FALSE, mrsd=NULL, ...) { |
|
609 |
-## df <- fortify(get.tree(model), layout=layout, ladderize=ladderize, right=right, mrsd=mrsd, ...) |
|
610 |
-## df <- merge(df, model@bootstrap, by.x="node", by.y="node", all.x=TRUE) |
|
611 |
-## append_extraInfo(df, model) |
|
612 |
-## } |
|
613 |
- |
|
614 |
-## ##' @method fortify apeBootstrap |
|
615 |
-## ##' @export |
|
616 |
-## fortify.apeBootstrap <- fortify.raxml |
|
617 |
- |
|
618 | 558 |
|
619 | 559 |
##' @method fortify multiPhylo |
620 | 560 |
##' @export |
... | ... |
@@ -633,38 +573,9 @@ fortify.multiPhylo <- function(model, data, |
633 | 573 |
df <- do.call("rbind", df.list) |
634 | 574 |
df$.id <- rep(names(df.list), times=sapply(df.list, nrow)) |
635 | 575 |
df$.id <- factor(df$.id, levels=names(df.list)) |
636 |
- |
|
637 |
- ## nNode <- sapply(df.list, nrow) |
|
638 |
- ## nNode2 <- cumsum(c(0, nNode[-length(nNode)])) |
|
639 |
- ## df$parent <- df$parent + rep(nNode2, times=nNode) |
|
640 | 576 |
return(df) |
641 | 577 |
} |
642 | 578 |
|
643 |
-##' @method fortify phylip |
|
644 |
-##' @export |
|
645 |
-fortify.phylip <- function(model, data, |
|
646 |
- layout = "rectangular", |
|
647 |
- ladderize = TRUE, |
|
648 |
- right = FALSE, |
|
649 |
- branch.length = "TREE", |
|
650 |
- mrsd = NULL, ...) { |
|
651 |
- trees <- get.tree(model) |
|
652 |
- fortify(trees, layout=layout, ladderize = ladderize, right=right, mrsd=mrsd, ...) |
|
653 |
-} |
|
654 |
- |
|
655 |
-##' @method fortify r8s |
|
656 |
-##' @export |
|
657 |
-fortify.r8s <- function(model, data, |
|
658 |
- layout = "rectangular", |
|
659 |
- ladderize = TRUE, |
|
660 |
- right = FALSE, |
|
661 |
- branch.length = "TREE", |
|
662 |
- mrsd = NULL, ...) { |
|
663 |
- trees <- get.tree(model) |
|
664 |
- branch.length %<>% match.arg(names(trees)) |
|
665 |
- phylo <- trees[[branch.length]] |
|
666 |
- fortify(phylo, layout=layout, ladderize = ladderize, right=right, mrsd=mrsd, ...) |
|
667 |
-} |
|
668 | 579 |
|
669 | 580 |
##' @method fortify obkData |
670 | 581 |
##' @export |
... | ... |
@@ -94,16 +94,16 @@ groupClade.ggtree <- function(object, nodes, group_name) { |
94 | 94 |
df <- object$data |
95 | 95 |
df[, group_name] <- 0 |
96 | 96 |
for (node in nodes) { |
97 |
- df <- groupClade.df(df, node, group_name) |
|
97 |
+ df <- groupClade.tbl(df, node, group_name) |
|
98 | 98 |
} |
99 |
- df[, group_name] <- factor(df[, group_name]) |
|
99 |
+ df[, group_name] <- factor(df[[group_name]]) |
|
100 | 100 |
object$data <- df |
101 | 101 |
return(object) |
102 | 102 |
} |
103 | 103 |
|
104 |
-groupClade.df <- function(df, node, group_name) { |
|
104 |
+groupClade.tbl <- function(df, node, group_name) { |
|
105 | 105 |
foc <- c(node, get.offspring.df(df, node)) |
106 | 106 |
idx <- match(foc, df$node) |
107 |
- df[idx, group_name] <- max(df[, group_name]) + 1 |
|
107 |
+ df[idx, group_name] <- max(df[[group_name]]) + 1 |
|
108 | 108 |
return(df) |
109 | 109 |
} |
... | ... |
@@ -191,30 +191,30 @@ setMethod("groupOTU", signature(object="ggtree"), |
191 | 191 |
|
192 | 192 |
groupOTU.ggtree <- function(object, focus, group_name, ...) { |
193 | 193 |
df <- object$data |
194 |
- df[, group_name] <- 0 |
|
195 |
- object$data <- groupOTU.df(df, focus, group_name, ...) |
|
194 |
+ df[[group_name]] <- 0 |
|
195 |
+ object$data <- groupOTU.tbl(df, focus, group_name, ...) |
|
196 | 196 |
return(object) |
197 | 197 |
} |
198 | 198 |
|
199 | 199 |
|
200 |
-groupOTU.df <- function(df, focus, group_name, ...) { |
|
200 |
+groupOTU.tbl <- function(df, focus, group_name, ...) { |
|
201 | 201 |
if (is(focus, "list")) { |
202 | 202 |
for (i in 1:length(focus)) { |
203 |
- df <- gfocus.df(df, focus[[i]], group_name, names(focus)[i], ...) |
|
203 |
+ df <- gfocus.tbl(df, focus[[i]], group_name, names(focus)[i], ...) |
|
204 | 204 |
} |
205 | 205 |
} else { |
206 |
- df <- gfocus.df(df, focus, group_name, ...) |
|
206 |
+ df <- gfocus.tbl(df, focus, group_name, ...) |
|
207 | 207 |
} |
208 |
- df[, group_name] <- factor(df[, group_name]) |
|
208 |
+ df[[group_name]] <- factor(df[[group_name]]) |
|
209 | 209 |
return(df) |
210 | 210 |
} |
211 | 211 |
|
212 |
-gfocus.df <- function(df, focus, group_name, focus_label=NULL, overlap="overwrite") { |
|
212 |
+gfocus.tbl <- function(df, focus, group_name, focus_label=NULL, overlap="overwrite") { |
|
213 | 213 |
overlap <- match.arg(overlap, c("origin", "overwrite", "abandon")) |
214 | 214 |
|
215 | 215 |
focus <- df$node[which(df$label %in% focus)] |
216 | 216 |
if (is.null(focus_label)) |
217 |
- focus_label <- max(suppressWarnings(as.numeric(df[, group_name])), na.rm=TRUE) + 1 |
|
217 |
+ focus_label <- max(suppressWarnings(as.numeric(df[[group_name]])), na.rm=TRUE) + 1 |
|
218 | 218 |
|
219 | 219 |
if (length(focus) == 1) { |
220 | 220 |
hit <- match(focus, df$node) |
... | ... |
@@ -231,7 +231,7 @@ gfocus.df <- function(df, focus, group_name, focus_label=NULL, overlap="overwrit |
231 | 231 |
hit <- match(foc, df$node) |
232 | 232 |
} |
233 | 233 |
|
234 |
- foc <- df[, group_name] |
|
234 |
+ foc <- df[[group_name]] |
|
235 | 235 |
if (overlap == "origin") { |
236 | 236 |
sn <- hit[is.na(foc[hit]) | foc[hit] == 0] |
237 | 237 |
} else if (overlap == "abandon") { |
... | ... |
@@ -78,12 +78,12 @@ setMethod("gzoom", signature(object="ggtree"), |
78 | 78 |
## gzoom.phylo(get.tree(object), focus, subtree, widths) |
79 | 79 |
## }) |
80 | 80 |
|
81 |
-##' @rdname gzoom-methods |
|
82 |
-##' @exportMethod gzoom |
|
83 |
-setMethod("gzoom", signature(object="codeml"), |
|
84 |
- function(object, focus, subtree=FALSE, widths=c(.3, .7)) { |
|
85 |
- gzoom.phylo(get.tree(object), focus, subtree, widths) |
|
86 |
- }) |
|
81 |
+## ##' @rdname gzoom-methods |
|
82 |
+## ##' @exportMethod gzoom |
|
83 |
+## setMethod("gzoom", signature(object="codeml"), |
|
84 |
+## function(object, focus, subtree=FALSE, widths=c(.3, .7)) { |
|
85 |
+## gzoom.phylo(get.tree(object), focus, subtree, widths) |
|
86 |
+## }) |
|
87 | 87 |
|
88 | 88 |
##' zoom selected subtree |
89 | 89 |
##' |
... | ... |
@@ -96,12 +96,12 @@ setMethod("gzoom", signature(object="treedata"), |
96 | 96 |
}) |
97 | 97 |
|
98 | 98 |
|
99 |
-##' @rdname gzoom-methods |
|
100 |
-##' @exportMethod gzoom |
|
101 |
-setMethod("gzoom", signature(object="paml_rst"), |
|
102 |
- function(object, focus, subtree=FALSE, widths=c(.3, .7)) { |
|
103 |
- gzoom.phylo(get.tree(object), focus, subtree, widths) |
|
104 |
- }) |
|
99 |
+## ##' @rdname gzoom-methods |
|
100 |
+## ##' @exportMethod gzoom |
|
101 |
+## setMethod("gzoom", signature(object="paml_rst"), |
|
102 |
+## function(object, focus, subtree=FALSE, widths=c(.3, .7)) { |
|
103 |
+## gzoom.phylo(get.tree(object), focus, subtree, widths) |
|
104 |
+## }) |
|
105 | 105 |
|
106 | 106 |
|
107 | 107 |
##' @rdname gzoom-methods |
... | ... |
@@ -18,12 +18,12 @@ setMethod("scale_color", signature(object="treedata"), |
18 | 18 |
scale_color_(object, by, ...) |
19 | 19 |
}) |
20 | 20 |
|
21 |
-##' @rdname scale_color-methods |
|
22 |
-##' @exportMethod scale_color |
|
23 |
-setMethod("scale_color", signature(object="paml_rst"), |
|
24 |
- function(object, by, ...) { |
|
25 |
- scale_color_(object, by, ...) |
|
26 |
- }) |
|
21 |
+## ##' @rdname scale_color-methods |
|
22 |
+## ##' @exportMethod scale_color |
|
23 |
+## setMethod("scale_color", signature(object="paml_rst"), |
|
24 |
+## function(object, by, ...) { |
|
25 |
+## scale_color_(object, by, ...) |
|
26 |
+## }) |
|
27 | 27 |
|
28 | 28 |
|
29 | 29 |
##' @rdname scale_color-methods |
30 | 30 |
deleted file mode 100644 |
... | ... |
@@ -1,175 +0,0 @@ |
1 |
-## ##' @rdname show-methods |
|
2 |
-## ##' @importFrom ape print.phylo |
|
3 |
-## ##' @exportMethod show |
|
4 |
-## setMethod("show", signature(object = "beast"), |
|
5 |
-## function(object) { |
|
6 |
-## cat("'beast' S4 object that stored information of\n\t", |
|
7 |
-## paste0("'", object@file, "'.\n\n")) |
|
8 |
-## cat("...@ tree: ") |
|
9 |
-## print.phylo(get.tree(object)) |
|
10 |
-## cat("\nwith the following features available:\n") |
|
11 |
-## print_fields(object) |
|
12 |
-## }) |
|
13 |
- |
|
14 |
-## ##' @rdname show-methods |
|
15 |
-## ##' @exportMethod show |
|
16 |
-## setMethod("show", signature(object = "codeml"), |
|
17 |
-## function(object) { |
|
18 |
-## cat("'codeml' S4 object that stored information of\n\t", |
|
19 |
-## paste0("'", object@rst@rstfile, "' and \n\t'", |
|
20 |
-## object@mlc@mlcfile, "'."), |
|
21 |
-## "\n\n") |
|
22 |
-## cat("...@ tree:") |
|
23 |
-## print.phylo(get.tree(object)) |
|
24 |
-## cat("\nwith the following features available:\n") |
|
25 |
-## print_fields(object, len=4) |
|
26 |
-## }) |
|
27 |
- |
|
28 |
-## ##' @rdname show-methods |
|
29 |
-## ##' @exportMethod show |
|
30 |
-## setMethod("show", signature(object = "codeml_mlc"), |
|
31 |
-## function(object) { |
|
32 |
-## cat("'codeml_mlc' S4 object that stored information of\n\t", |
|
33 |
-## paste0("'", object@mlcfile, "'."), |
|
34 |
-## "\n\n") |
|
35 |
- |
|
36 |
-## cat("...@ tree:") |
|
37 |
-## print.phylo(get.tree(object)) |
|
38 |
- |
|
39 |
-## cat("\nwith the following features available:\n") |
|
40 |
-## cat("\t", paste0("'", |
|
41 |
-## paste(get.fields(object), collapse="',\t'"), |
|
42 |
-## "'."), |
|
43 |
-## "\n") |
|
44 |
-## } |
|
45 |
-## ) |
|
46 |
- |
|
47 |
-## ##' show method for \code{jplace} instance |
|
48 |
-## ##' |
|
49 |
-## ##' |
|
50 |
-## ##' @name show |
|
51 |
-## ##' @docType methods |
|
52 |
-## ##' @rdname show-methods |
|
53 |
-## ##' |
|
54 |
-## ##' @title show method |
|
55 |
-## ##' @param object one of \code{jplace}, \code{beast} object |
|
56 |
-## ##' @return print info |
|
57 |
-## ##' @importFrom methods show |
|
58 |
-## ##' @exportMethod show |
|
59 |
-## ##' @usage show(object) |
|
60 |
-## ##' @author Guangchuang Yu \url{http://ygc.name} |
|
61 |
-## ##' @examples |
|
62 |
-## ##' jp <- system.file("extdata", "sample.jplace", package="ggtree") |
|
63 |
-## ##' jp <- read.jplace(jp) |
|
64 |
-## ##' show(jp) |
|
65 |
-## setMethod("show", signature(object = "jplace"), |
|
66 |
-## function(object) { |
|
67 |
-## cat("'jplace' S4 object that stored information of\n\t", |
|
68 |
-## paste0("'", object@file, "'."), |
|
69 |
-## "\n\n") |
|
70 |
- |
|
71 |
-## cat("...@ tree: ") |
|
72 |
- |
|
73 |
-## phylo <- get.tree(object) |
|
74 |
-## phylo$node.label <- NULL |
|
75 |
-## phylo$tip.label %<>% gsub("\\@\\d+", "", .) |
|
76 |
- |
|
77 |
-## print.phylo(phylo) |
|
78 |
- |
|
79 |
-## cat("\nwith the following features availables:\n") |
|
80 |
-## cat("\t", paste0("'", |
|
81 |
-## paste(get.fields(object), collapse="',\t'"), |
|
82 |
-## "'."), |
|
83 |
-## "\n") |
|
84 |
-## } |
|
85 |
-## ) |
|
86 |
- |
|
87 |
- |
|
88 |
-## ##' @rdname show-methods |
|
89 |
-## ##' @exportMethod show |
|
90 |
-## setMethod("show", signature(object = "nhx"), |
|
91 |
-## function(object) { |
|
92 |
-## cat("'nhx' S4 object that stored information of\n\t", |
|
93 |
-## paste0("'", object@file, "'.\n\n")) |
|
94 |
-## cat("...@ tree: ") |
|
95 |
-## print.phylo(get.tree(object)) |
|
96 |
-## cat("\nwith the following features available:\n") |
|
97 |
-## print_fields(object) |
|
98 |
-## }) |
|
99 |
- |
|
100 |
- |
|
101 |
-## ##' @rdname show-methods |
|
102 |
-## ##' @exportMethod show |
|
103 |
-## setMethod("show", signature(object = "phylip"), |
|
104 |
-## function(object) { |
|
105 |
-## cat("'phylip' S4 object that stored information of\n\t", |
|
106 |
-## paste0("'", object@file, "'.\n\n")) |
|
107 |
-## cat("...@ tree: ") |
|
108 |
-## print.phylo(get.tree(object)) |
|
109 |
-## msg <- paste0("\nwith sequence alignment available (", length(object@sequence), |
|
110 |
-## " sequences of length ", nchar(object@sequence)[1], ")\n") |
|
111 |
-## cat(msg) |
|
112 |
-## }) |
|
113 |
- |
|
114 |
-## ##' @rdname show-methods |
|
115 |
-## ##' @exportMethod show |
|
116 |
-## setMethod("show", signature(object = "paml_rst"), |
|
117 |
-## function(object) { |
|
118 |
-## cat("'paml_rst' S4 object that stored information of\n\t", |
|
119 |
-## paste0("'", object@rstfile, "'.\n\n")) |
|
120 |
-## ## if (length(object@tip.fasfile) != 0) { |
|
121 |
-## ## cat(paste0(" and \n\t'", object@tip.fasfile, "'.\n\n")) |
|
122 |
-## ## } else { |
|
123 |
-## ## cat(".\n\n") |
|
124 |
-## ## } |
|
125 |
-## fields <- get.fields(object) |
|
126 |
- |
|
127 |
-## if (nrow(object@marginal_subs) == 0) { |
|
128 |
-## fields <- fields[fields != "marginal_subs"] |
|
129 |
-## fields <- fields[fields != "marginal_AA_subs"] |
|
130 |
-## } |
|
131 |
-## if (nrow(object@joint_subs) == 0) { |
|
132 |
-## fields <- fields[fields != "joint_subs"] |
|
133 |
-## fields <- fields[fields != "joint_AA_subs"] |
|
134 |
-## } |
|
135 |
- |
|
136 |
-## cat("...@ tree:") |
|
137 |
-## print.phylo(get.tree(object)) |
|
138 |
-## cat("\nwith the following features available:\n") |
|
139 |
-## cat("\t", paste0("'", |
|
140 |
-## paste(fields, collapse="',\t'"), |
|
141 |
-## "'."), |
|
142 |
-## "\n") |
|
143 |
-## }) |
|
144 |
- |
|
145 |
- |
|
146 |
- |
|
147 |
-## ##' @rdname show-methods |
|
148 |
-## ##' @importFrom ape print.phylo |
|
149 |
-## ##' @exportMethod show |
|
150 |
-## setMethod("show", signature(object = "r8s"), |
|
151 |
-## function(object) { |
|
152 |
-## cat("'r8s' S4 object that stored information of\n\t", |
|
153 |
-## paste0("'", object@file, "'.\n\n")) |
|
154 |
-## cat("...@ tree: ") |
|
155 |
-## print.phylo(get.tree(object)) |
|
156 |
-## ## cat("\nwith the following features available:\n") |
|
157 |
-## ## print_fields(object) |
|
158 |
-## }) |
|
159 |
- |
|
160 |
- |
|
161 |
-## ##' @rdname show-methods |
|
162 |
-## ##' @importFrom ape print.phylo |
|
163 |
-## ##' @exportMethod show |
|
164 |
-## setMethod("show", signature(object = "phangorn"), |
|
165 |
-## function(object) { |
|
166 |
-## cat("'phangorn' S4 object that stored ancestral sequences inferred by 'phangorn::ancestral.pml'", ".\n\n") |
|
167 |
-## cat("...@ tree: ") |
|
168 |
-## print.phylo(get.tree(object)) |
|
169 |
-## fields <- get.fields(object) |
|
170 |
-## cat("\nwith the following features available:\n") |
|
171 |
-## cat("\t", paste0("'", |
|
172 |
-## paste(fields, collapse="',\t'"), |
|
173 |
-## "'."), |
|
174 |
-## "\n") |
|
175 |
-## }) |
... | ... |
@@ -1,27 +1,63 @@ |
1 | 1 |
##' @importFrom ggplot2 fortify |
2 | 2 |
##' @method fortify treedata |
3 | 3 |
##' @export |
4 |
-fortify.treedata <- function(model, data, layout="rectangular", yscale="none", |
|
5 |
- ladderize=TRUE, right=FALSE, branch.length ="branch.length", |
|
6 |
- mrsd=NULL, as.Date = FALSE, ...) { |
|
4 |
+fortify.treedata <- function(model, data, |
|
5 |
+ layout = "rectangular", |
|
6 |
+ yscale = "none", |
|
7 |
+ ladderize = TRUE, |
|
8 |
+ right = FALSE, |
|
9 |
+ branch.length = "branch.length", |
|
10 |
+ mrsd = NULL, |
|
11 |
+ as.Date = FALSE, ...) { |
|
7 | 12 |
|
8 | 13 |
model <- set_branch_length(model, branch.length) |
9 | 14 |
|
10 |
- x <- reorder.phylo(get.tree(model), "postorder") |
|
15 |
+ fortify.phylo(model, data, |
|
16 |
+ layout = layout, |
|
17 |
+ yscale = yscale, |
|
18 |
+ ladderize = ladderize, |
|
19 |
+ right = right, |
|
20 |
+ branch.length = branch.length, |
|
21 |
+ mrsd = mrsd, |
|
22 |
+ as.Date = as.Date, ...) |
|
23 |
+} |
|
24 |
+ |
|
25 |
+##' @importFrom ape ladderize |
|
26 |
+##' @method fortify phylo |
|
27 |
+##' @export |
|
28 |
+fortify.phylo <- function(model, data, |
|
29 |
+ layout = "rectangular", |
|
30 |
+ ladderize = TRUE, |
|
31 |
+ right = FALSE, |
|
32 |
+ branch.length = "branch.length", |
|
33 |
+ mrsd = NULL, |
|
34 |
+ as.Date = FALSE, |
|
35 |
+ yscale = "none", |
|
36 |
+ ...) { |
|
37 |
+ |
|
38 |
+ x <- as.phylo(model) ## reorder.phylo(get.tree(model), "postorder") |
|
11 | 39 |
if (ladderize == TRUE) { |
12 | 40 |
x <- ladderize(x, right=right) |
13 | 41 |
} |
42 |
+ |
|
43 |
+ if (! is.null(x$edge.length)) { |
|
44 |
+ if (anyNA(x$edge.length)) { |
|
45 |
+ warning("'edge.length' contains NA values...\n## setting 'edge.length' to NULL automatically when plotting the tree...") |
|
46 |
+ x$edge.length <- NULL |
|
47 |
+ } |
|
48 |
+ } |
|
49 |
+ |
|
14 | 50 |
if (is.null(x$edge.length) || branch.length == "none") { |
15 | 51 |
xpos <- getXcoord_no_length(x) |
16 | 52 |
} else { |
17 | 53 |
xpos <- getXcoord(x) |
18 | 54 |
} |
55 |
+ |
|
19 | 56 |
ypos <- getYcoord(x) |
20 | 57 |
N <- Nnode(x, internal.only=FALSE) |
21 | 58 |
xypos <- data_frame(node=1:N, x=xpos, y=ypos) |
22 | 59 |
|
23 |
- df <- as_data_frame(model, branch.length="branch.length") # already set by set_branch_length |
|
24 |
- ##rownames(df) <- as.character(df$node) |
|
60 |
+ df <- as_data_frame(model) |
|
25 | 61 |
|
26 | 62 |
res <- full_join(df, xypos, by = "node") |
27 | 63 |
|
... | ... |
@@ -41,15 +77,14 @@ fortify.treedata <- function(model, data, layout="rectangular", yscale="none", |
41 | 77 |
scaleY(as.phylo(model), res, yscale, layout, ...) |
42 | 78 |
} |
43 | 79 |
|
80 |
+ |
|
44 | 81 |
##' @method as_data_frame treedata |
45 | 82 |
##' @importFrom tibble as_data_frame |
46 | 83 |
##' @export |
47 |
-## @importFrom treeio Nnode |
|
48 |
-## @importFrom treeio Ntip |
|
49 |
-as_data_frame.treedata <- function(x, branch.length = "branch.length", ...) { |
|
50 |
- tree <- set_branch_length(x, branch.length) |
|
51 |
- |
|
52 |
- res <- as_data_frame(tree@phylo) |
|
84 |
+##' @importFrom treeio Nnode |
|
85 |
+##' @importFrom treeio Ntip |
|
86 |
+as_data_frame.treedata <- function(x, ...) { |
|
87 |
+ res <- as_data_frame(x@phylo) |
|
53 | 88 |
tree_anno <- as_data_frame(get_tree_data(x)) |
54 | 89 |
if (nrow(tree_anno) > 0) { |
55 | 90 |
by <- "node" |
... | ... |
@@ -109,24 +144,17 @@ as_data_frame.phylo <- function(x, ...) { |
109 | 144 |
} |
110 | 145 |
|
111 | 146 |
get_tree_data <- function(tree_object) { |
112 |
- if (is(tree_object, "codeml")) { |
|
113 |
- tree_anno <- tree_object@mlc@dNdS |
|
114 |
- } else if (is(tree_object, "codeml_mlc")) { |
|
115 |
- tree_anno <- tree_object@dNdS |
|
116 |
- } else if (is(tree_object, "beast")) { |
|
117 |
- tree_anno <- tree_object@stats |
|
118 |
- } else { |
|
119 |
- tree_anno <- tree_object@data |
|
120 |
- } |
|
147 |
+ tree_anno <- tree_object@data |
|
148 |
+ extraInfo <- tree_object@extraInfo |
|
121 | 149 |
|
122 |
- if (has.extraInfo(tree_object)) { |
|
123 |
- if (nrow(tree_anno) > 0) { |
|
124 |
- tree_anno <- merge(tree_anno, tree_object@extraInfo, by="node") |
|
125 |
- } else { |
|
126 |
- return(tree_object@extraInfo) |
|
127 |
- } |
|
150 |
+ if (nrow(tree_anno) == 0) { |
|
151 |
+ return(extraInfo) |
|
128 | 152 |
} |
129 |
- return(tree_anno) |
|
153 |
+ if (nrow(extraInfo) == 0) { |
|
154 |
+ return(tree_anno) |
|
155 |
+ } |
|
156 |
+ |
|
157 |
+ full_join(tree_anno, extraInfo, by = "node") |
|
130 | 158 |
} |
131 | 159 |
|
132 | 160 |
|
... | ... |
@@ -915,7 +943,7 @@ getChild.df <- function(df, node) { |
915 | 943 |
if (length(i) == 0) { |
916 | 944 |
return(0) # it has no children, hence tip node. |
917 | 945 |
} |
918 |
- res <- df[i, "node"] |
|
946 |
+ res <- df$node[i] |
|
919 | 947 |
res <- res[res != node] ## node may root |
920 | 948 |
return(res) |
921 | 949 |
} |
... | ... |
@@ -1676,6 +1704,8 @@ set_branch_length <- function(tree_object, branch.length) { |
1676 | 1704 |
|
1677 | 1705 |
## return(phylo) |
1678 | 1706 |
## } |
1707 |
+ |
|
1708 |
+ |
|
1679 | 1709 |
re_assign_ycoord_df <- function(df, currentNode) { |
1680 | 1710 |
while(anyNA(df$y)) { |
1681 | 1711 |
pNode <- with(df, parent[match(currentNode, node)]) %>% unique |
... | ... |
@@ -1,13 +1,8 @@ |
1 | 1 |
has.slot <- treeio:::has.slot |
2 | 2 |
getNodeNum <- treeio:::getNodeNum |
3 |
-Ntip <- treeio:::Ntip |
|
4 |
-Nnode <- treeio:::Nnode |
|
5 | 3 |
getRoot <- treeio:::getRoot |
6 | 4 |
has.field <- treeio:::has.field |
7 |
-is.character_beast <- treeio:::is.character_beast |
|
8 | 5 |
append_extraInfo <- treeio:::append_extraInfo |
9 |
-get.subs <- treeio:::get.subs |
|
10 |
- |
|
11 | 6 |
get.tree <- treeio::get.tree |
12 | 7 |
drop.tip <- treeio::drop.tip |
13 | 8 |
get.fields <- treeio::get.fields |
... | ... |
@@ -4,9 +4,9 @@ ggtree: an R package for visualization and annotation of phylogenetic trees with |
4 | 4 |
|
5 | 5 |
<img src="https://raw.githubusercontent.com/Bioconductor/BiocStickers/master/ggtree/ggtree.png" height="200" align="right" /> |
6 | 6 |
|
7 |
-[](https://bioconductor.org/packages/ggtree) [](https://github.com/guangchuangyu/ggtree) [](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#since) [](https://bioconductor.org/packages/stats/bioc/ggtree) [](https://bioconductor.org/packages/stats/bioc/ggtree) |
|
7 |
+[](https://bioconductor.org/packages/ggtree) [](https://github.com/guangchuangyu/ggtree) [](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#since) [](https://bioconductor.org/packages/stats/bioc/ggtree) [](https://bioconductor.org/packages/stats/bioc/ggtree) |
|
8 | 8 |
|
9 |
-[](http://www.repostatus.org/#active) [](https://codecov.io/gh/GuangchuangYu/ggtree) [](https://github.com/GuangchuangYu/ggtree/commits/master) [](https://github.com/GuangchuangYu/ggtree/network) [](https://github.com/GuangchuangYu/ggtree/stargazers) [](https://awesome-r.com/#awesome-r-graphic-displays) |
|
9 |
+[](http://www.repostatus.org/#active) [](https://codecov.io/gh/GuangchuangYu/ggtree) [](https://github.com/GuangchuangYu/ggtree/commits/master) [](https://github.com/GuangchuangYu/ggtree/network) [](https://github.com/GuangchuangYu/ggtree/stargazers) [](https://awesome-r.com/#awesome-r-graphic-displays) |
|
10 | 10 |
|
11 | 11 |
[](https://www.bioconductor.org/packages/devel/bioc/html/ggtree.html#archives) [](https://bioconductor.org/checkResults/devel/bioc-LATEST/ggtree/) [](https://travis-ci.org/GuangchuangYu/ggtree) [](https://ci.appveyor.com/project/GuangchuangYu/ggtree) [](#backers) [](#sponsors) |
12 | 12 |
|
... | ... |
@@ -27,7 +27,7 @@ Please cite the following article when using `ggtree`: |
27 | 27 |
|
28 | 28 |
**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. |
29 | 29 |
|
30 |
-[](http://dx.doi.org/10.1111/2041-210X.12628) [](https://www.altmetric.com/details/10533079) [](https://scholar.google.com.hk/scholar?oi=bibs&hl=en&cites=7268358477862164627) |
|
30 |
+[](http://dx.doi.org/10.1111/2041-210X.12628) [](https://www.altmetric.com/details/10533079) [](https://scholar.google.com.hk/scholar?oi=bibs&hl=en&cites=7268358477862164627) |
|
31 | 31 |
|
32 | 32 |
------------------------------------------------------------------------ |
33 | 33 |
|
... | ... |
@@ -37,7 +37,7 @@ Please cite the following article when using `ggtree`: |
37 | 37 |
|
38 | 38 |
### Download stats |
39 | 39 |
|
40 |
-[](https://bioconductor.org/packages/stats/bioc/ggtree) [](https://bioconductor.org/packages/stats/bioc/ggtree) [](https://bioconductor.org/packages/stats/bioc/ggtree) |
|
40 |
+[](https://bioconductor.org/packages/stats/bioc/ggtree) [](https://bioconductor.org/packages/stats/bioc/ggtree) [](https://bioconductor.org/packages/stats/bioc/ggtree) |
|
41 | 41 |
|
42 | 42 |
<img src="docs/images/dlstats.png" width="890"/> |
43 | 43 |
|
45 | 45 |
deleted file mode 100644 |
... | ... |
@@ -1,35 +0,0 @@ |
1 |
-% Generated by roxygen2: do not edit by hand |
|
2 |
-% Please edit documentation in R/method-fortify.R |
|
3 |
-\name{fortify.phylo} |
|
4 |
-\alias{fortify.phylo} |
|
5 |
-\title{fortify} |
|
6 |
-\usage{ |
|
7 |
-\method{fortify}{phylo}(model, data, layout = "rectangular", |
|
8 |
- ladderize = TRUE, right = FALSE, mrsd = NULL, as.Date = FALSE, ...) |
|
9 |
-} |
|
10 |
-\arguments{ |
|
11 |
-\item{model}{phylo object} |
|
12 |
- |
|
13 |
-\item{data}{not use here} |
|
14 |
- |
|
15 |
-\item{layout}{layout} |
|
16 |
- |
|
17 |
-\item{ladderize}{ladderize, logical} |
|
18 |
- |
|
19 |
-\item{right}{logical} |
|
20 |
- |
|
21 |
-\item{mrsd}{most recent sampling date} |
|
22 |
- |
|
23 |
-\item{as.Date}{logical whether using Date class in time tree} |
|
24 |
- |
|
25 |
-\item{...}{additional parameter} |
|
26 |
-} |
|
27 |
-\value{ |
|
28 |
-data.frame |
|
29 |
-} |
|
30 |
-\description{ |
|
31 |
-fortify a phylo to data.frame |
|
32 |
-} |
|
33 |
-\author{ |
|
34 |
-Yu Guangchuang |
|
35 |
-} |
... | ... |
@@ -5,9 +5,7 @@ |
5 | 5 |
\alias{gzoom} |
6 | 6 |
\alias{gzoom} |
7 | 7 |
\alias{gzoom,ggtree-method} |
8 |
-\alias{gzoom,codeml-method} |
|
9 | 8 |
\alias{gzoom,treedata-method} |
10 |
-\alias{gzoom,paml_rst-method} |
|
11 | 9 |
\alias{gzoom,phylo-method} |
12 | 10 |
\title{gzoom method} |
13 | 11 |
\usage{ |
... | ... |
@@ -16,15 +14,9 @@ gzoom(object, focus, subtree = FALSE, widths = c(0.3, 0.7), ...) |
16 | 14 |
\S4method{gzoom}{ggtree}(object, focus, widths = c(0.3, 0.7), |
17 | 15 |
xmax_adjust = 0) |
18 | 16 |
|
19 |
-\S4method{gzoom}{codeml}(object, focus, subtree = FALSE, widths = c(0.3, |
|
20 |
- 0.7)) |
|
21 |
- |
|
22 | 17 |
\S4method{gzoom}{treedata}(object, focus, subtree = FALSE, widths = c(0.3, |
23 | 18 |
0.7)) |
24 | 19 |
|
25 |
-\S4method{gzoom}{paml_rst}(object, focus, subtree = FALSE, widths = c(0.3, |
|
26 |
- 0.7)) |
|
27 |
- |
|
28 | 20 |
\S4method{gzoom}{phylo}(object, focus, subtree = FALSE, widths = c(0.3, |
29 | 21 |
0.7)) |
30 | 22 |
} |
... | ... |
@@ -4,7 +4,6 @@ |
4 | 4 |
\name{scale_color} |
5 | 5 |
\alias{scale_color} |
6 | 6 |
\alias{scale_color,treedata-method} |
7 |
-\alias{scale_color,paml_rst-method} |
|
8 | 7 |
\alias{scale_color,phylo-method} |
9 | 8 |
\title{scale_color method} |
10 | 9 |
\usage{ |
... | ... |
@@ -12,8 +11,6 @@ scale_color(object, by, ...) |
12 | 11 |
|
13 | 12 |
\S4method{scale_color}{treedata}(object, by, ...) |
14 | 13 |
|
15 |
-\S4method{scale_color}{paml_rst}(object, by, ...) |
|
16 |
- |
|
17 | 14 |
\S4method{scale_color}{phylo}(object, by, ...) |
18 | 15 |
} |
19 | 16 |
\arguments{ |