r - 使用点将提示标签链接到系统发育树

标签 r plot phylogeny

我正在尝试使用 R 中的 ape 包和函数plot.phylo() 生成一棵非超度量树。我正在努力寻找任何有关如何使尖端标签在其左边缘垂直对齐以及如何使用一系列点(可变长度)将物种名称与节点尖端连接起来的文档。

任何帮助以及 R 中可能能够实现此目的的其他包的链接将不胜感激。

newick tree 的示例

我没有任何我想要的树示例,但是,描述似乎是不言自明的。标签将全部移至最右侧,并在左侧对齐,然后一系列点 (.......) 将标签链接到旧位置所在的位置。

  MLJTT = newickTree (as a string)
  plot.phylo(read.tree(text = MLJTT), show.tip.label = T,use.edge.length = T, no.margin = T, cex = 0.55)

non-aligned phylogeny

我想从 here 复制布局的三个示例:enter image description here

最佳答案

好吧,我最终稍微修改了默认的 plot.phylo 代码以适应这样的更改。这是它的样子

library(ape)
plot.phylo2 <- plot.phylo
environment(plot.phylo2) <- environment(plot.phylo)

body(plot.phylo2)[[c(34, 3, 6, 3, 4, 3)]] <- quote({
    mx <- max(xx[1:Ntip])
    segments(xx[1:Ntip], yy[1:Ntip] + loy, mx, yy[1:Ntip] + loy, 
        lty=2, col="grey")
    text(mx + lox, yy[1:Ntip] + loy, x$tip.label, adj = adj, 
        font = font, srt = srt, cex = cex, col = tip.color)
})

这有点脆弱,可能会在不同版本的 ape 中发生变化,我已经使用 ape_3.1-4 版本对此进行了测试。您可以通过验证来检查这是否有效

body(plot.phylo)[[c(34, 3, 6, 3, 4, 3)]]

返回

text(xx[1:Ntip] + lox, yy[1:Ntip] + loy, x$tip.label, adj = adj, 
    font = font, srt = srt, cex = cex, col = tip.color)

只是为了确保我们更改的是正确的行。但上面的代码基本上通过移动绘制标签的 x 轴并添加虚线段来替换绘制标签的那条线。然后您可以使用测试数据运行它

MLJTT = read.tree(text="..<sample data>..")
plot.phylo2(MLJTT, 
    show.tip.label = T,use.edge.length = T, no.margin = T, cex = 0.55)

这会产生

enter image description here

关于r - 使用点将提示标签链接到系统发育树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276322/

相关文章:

r - 将 dplyr mutate_at 与自定义函数一起使用

plot - 在 x、y、z 上等比例绘制 3D 绘图

r - 保存到 devSVG 时,如何更改 R ape 包中系统发育树中提示标签的字体系列?

r - 非英语(丹麦语和挪威语)的月份缩写名称不一致

r - 在 R 中从一年到十年

r - 在 R 中取消列出多个元素的列表

python - 形状摘要图上的颜色图栏未正确显示

python - 改变 Pandas 图的颜色条

python - Newick 树表示为 scipy.cluster.hierarchy 链接矩阵格式

python - 通过序列输出进行解析 - Python