... | ... |
@@ -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.4 |
|
5 |
+Version: 1.11.5 |
|
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")), |
... | ... |
@@ -1,3 +1,8 @@ |
1 |
+# ggtree 1.11.5 |
|
2 |
+ |
|
3 |
++ fine tune y position after flip; flip compatible with collapse |
|
4 |
+ - <https://groups.google.com/d/msgid/bioc-ggtree/1d06342c-9645-4f71-9e66-7d7a7099bf0b%40googlegroups.com?utm_medium=email&utm_source=footer> |
|
5 |
+ |
|
1 | 6 |
# ggtree 1.11.4 |
2 | 7 |
|
3 | 8 |
+ re-implement collapse as collapse.ggtree method by importing dplyr::collapse |
... | ... |
@@ -215,8 +215,8 @@ flip <- function(tree_view=NULL, node1, node2) { |
215 | 215 |
sp1.df <- df[sp1,] |
216 | 216 |
sp2.df <- df[sp2,] |
217 | 217 |
|
218 |
- min_y1 <- min(sp1.df$y) |
|
219 |
- min_y2 <- min(sp2.df$y) |
|
218 |
+ min_y1 <- min(sp1.df$y, na.rm=TRUE) |
|
219 |
+ min_y2 <- min(sp2.df$y, na.rm=TRUE) |
|
220 | 220 |
|
221 | 221 |
if (min_y1 < min_y2) { |
222 | 222 |
tmp <- sp1.df |
... | ... |
@@ -227,16 +227,19 @@ flip <- function(tree_view=NULL, node1, node2) { |
227 | 227 |
sp2 <- tmp |
228 | 228 |
} |
229 | 229 |
|
230 |
- min_y1 <- min(sp1.df$y) |
|
231 |
- min_y2 <- min(sp2.df$y) |
|
230 |
+ min_y1 <- min(sp1.df$y, na.rm=TRUE) |
|
231 |
+ min_y2 <- min(sp2.df$y, na.rm=TRUE) |
|
232 | 232 |
|
233 |
- space <- min(sp1.df$y) - max(sp2.df$y) |
|
233 |
+ space <- min(sp1.df$y, na.rm=TRUE) - max(sp2.df$y, na.rm=TRUE) |
|
234 | 234 |
sp1.df$y <- sp1.df$y - abs(min_y1 - min_y2) |
235 |
- sp2.df$y <- sp2.df$y + max(sp1.df$y) + space - min(sp2.df$y) |
|
235 |
+ sp2.df$y <- sp2.df$y + max(sp1.df$y, na.rm=TRUE) + space - min(sp2.df$y, na.rm=TRUE) |
|
236 | 236 |
|
237 | 237 |
df[sp1, "y"] <- sp1.df$y |
238 | 238 |
df[sp2, "y"] <- sp2.df$y |
239 | 239 |
|
240 |
+ yy <- df$y[-c(sp1, sp2)] |
|
241 |
+ df$y[-c(sp1, sp2)] <- yy + ((min(sp2.df$y, na.rm=TRUE) - max(yy)) - (min(yy) - max(sp1.df$y, na.rm=TRUE)))/2 |
|
242 |
+ |
|
240 | 243 |
anc <- getAncestor.df(df, node1) |
241 | 244 |
ii <- match(anc, df$node) |
242 | 245 |
df[ii, "y"] <- NA |
... | ... |
@@ -1483,7 +1483,8 @@ re_assign_ycoord_df <- function(df, currentNode) { |
1483 | 1483 |
idx <- sapply(pNode, function(i) with(df, all(node[parent == i & parent != node] %in% currentNode))) |
1484 | 1484 |
newNode <- pNode[idx] |
1485 | 1485 |
## newNode <- newNode[is.na(df[match(newNode, df$node), "y"])] |
1486 |
- |
|
1486 |
+ if (length(newNode) == 0) |
|
1487 |
+ break |
|
1487 | 1488 |
df[match(newNode, df$node), "y"] <- sapply(newNode, function(i) { |
1488 | 1489 |
with(df, mean(y[parent == i], na.rm = TRUE)) |
1489 | 1490 |
}) |