繁体   English   中英

如何使用ggtree或Python的ETE工具包绘制具有渐渗的树?

[英]How to plot trees with introgression using ggtree or Python's ETE toolkit?

我正在迁移我几天前在ggtree谷歌论坛上提出的一个问题。 由于SO社区规模较大,更重要的是,因为我必须继续我的项目,所以我会给出一个有人在这里可能有答案的镜头。 我正在绘制一个系统发育树,其中分支的颜色对应于物种。 我的树有渐渗。 这意味着:同一物种的所有个体可能都没有连接到树中的唯一节点,而是分散在它周围。 为了反映这种差异,我想对分支属于同一物种的一组个体进行分组(因此称之为操作分类单位或OTU),直到发现冲突为止。

例如,在下面的图(没有渐渗)中,t3,t4和t10属于“绿色”OTU,而t1,t2,t7和t8属于“红色”OTU。 一旦这些不同的OTU命中树中的相同节点,其余分支就会变成黑色。

library(ggtree)
set.seed(123)
tree <- rtree(10)

cls <- list(c1=c("t1", "t2","t8","t7"),
        c2=c("t3", "t4", "t10"),
        c3=c( "t9","t6","t5"))

tree <- groupOTU(tree, cls)
ggtree(tree, aes(color=group)) + geom_text(aes(label=label)) +
 scale_color_manual(values=c("black", "red","green","blue")) +
  theme(legend.position="right")

没有渐渗的情节

这是我想要明确定义的OTU的行为,不幸的是,一旦渐渗被添加到等式中,并且不同物种的个体遍布整个树,ggtree似乎基于某种多数共识将颜色分配给冲突的分支(情节到左边)。 在下面的图中,f1(“绿色”物种的一部分)与物种“红色”中的个体渗透。 由于连接t1和t2的节点标记了系统发育中的差异,我希望其余边缘的颜色变黑,直到原点(右图)。

library(ggtree)
set.seed(123)
tree <- rtree(10)

cls <- list(c1=c( "t2","t8","t7"),
        c2=c("t3", "t4", "t10","t1"),
        c3=c( "t9","t6","t5"))

tree <- groupOTU(tree, cls)
ggtree(tree, aes(color=group)) + geom_text(aes(label=label)) +
 scale_color_manual(values=c("black", "red","green","blue")) +
  theme(legend.position="right")

用渐渗的情节 - 糟糕的颜色 具有渐渗的情节 - 正确的颜色

冲突后的边缘变成黑色不仅可怕。 从科学的角度来看是误导。 有没有办法解决这个问题并获得正确的情节?

编辑-------

如果您可以使用Python ETE Toolkit执行此操作,我很乐意听取您的意见......

你应该用#ggtree标记你的帖子。

已在https://groups.google.com/forum/#!topic/bioc-ggtree/Q4LnwoTf1DM中得到解答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM