【问题标题】:How to plot trees with introgression using ggtree or Python's ETE toolkit?如何使用 ggtree 或 Python 的 ETE 工具包绘制具有基因渗入的树?
【发布时间】:2017-03-29 16:54:06
【问题描述】:

我正在迁移几天前在ggtree's google forum 中提出的问题。由于 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 工具包做到这一点,我很乐意听取您的意见...

【问题讨论】:

    标签: python r python-2.7 python-3.x ggplot2


    【解决方案1】:

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

    已经在https://groups.google.com/forum/#!topic/bioc-ggtree/Q4LnwoTf1DM回复。

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2020-04-21
      • 1970-01-01
      • 2018-12-29
      • 2011-12-09
      相关资源
      最近更新 更多