问题标签 [ggtree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5190 浏览

r - ggtree 绘图区域不够大

我正在尝试绘制一个带有引导标记节点和用户定义/彩色提示标签的圆形系统发育树。我让引导结果和标签正常工作,但不知何故,我无法在我的图形设备中完全绘制绘图。总是有标签(从圆形系统树的中心向外辐射)丢失了自己的部分。唯一的方法是将尖端标签大小设置为非常非常小。

距离矩阵和引导程序所基于的 DNAbin 文件由 82 种微生物数据 (812aa) 组成。提示标签根据单独的属性文件着色。

我尝试设置具有更大宽度和高度的新图形设备,但无济于事。调整边距也不起作用。通过将tiplab 大小设置为小于0.05,我可以获得完整的情节,但这确实不是最佳的。真的很感谢这里的一些帮助。

会话信息:

工作室版本 1.0.136

修订:如前所述,应该提供数据来重现问题。我在这里附上部分数据,完整数据太大了。我尝试使用 stringi 命令随机生成 dna 序列,但随机序列通常会导致 dist 文件中的 NaN。下面的数据是直接从第一行代码引用的txt文件中复制过来的,部分名字被删掉了~

法斯塔数据(b):

发布没有用户定义颜色的图,问题类似

0 投票
0 回答
681 浏览

r - 在 ggtree/ggplot2 中拆分图例

我正在使用一个名为 的软件ggtree,它基于ggplot2并允许您可视化系统发育树并向其添加元数据。调用将元数据添加为彩色热图的函数,gheatmap据我了解,它只是将 data.frame 或矩阵中的行名与树的标签相关联。其余与之相关的语言基本上是ggplot2.

数据在这里:https ://github.com/CJREID/gheatmap

使用以下代码,我生成了以下图像

如您所见,我添加的数据分为 6 个类别"Origin", "Syndrome", "fimH", "CTX-M", "gyrA", "parC",每个类别都有自己的变量,如下所示,

我有两个主要问题:

  1. 我想将这些变量拆分为图例上各自的标题,因此它们是六个离散的图例。如您所见,我只设法将一个标题“起源”放在了所有这些标题之上。(我尝试使用上面的这个plots对象而不是q1作为breaksinscale_fill_manual无济于事)

  2. WT我希望单独处理undergyrAWTunder的变量,parC即在各自的分类标题下的图例中有自己的框。

希望解决方案没有我想的那么复杂

干杯。

0 投票
1 回答
3056 浏览

r - ggjoy facet 与 ggtree

是否可以将 Joyplot 作为面板添加到包含 ggtree 的绘图中,如这些示例中所示?欢乐图的例子在这里

我意识到我可以手动将游戏图的物种标签按照与树尖标签相同的顺序放置,但我正在寻找一种自动解决方案。我想将 Joyplot 行与树的尖端自动关联起来,类似于箱线图数据与尖端标签的关联方式。

我认为上述链接中于光创的例子提供了合适的数据:

这产生了下面的情节: 演示ggtree图

是否可以创建一个欢乐图来代替箱线图?

这是上面演示数据集 d4 的快速joyplot代码:

结果是: 演示欢乐图

我是 ggplot2、ggtree 和 ggjoy 的新手,所以我完全不知道如何开始这样做。

0 投票
1 回答
205 浏览

r - 丢弃提示后保留节点信息

当我有一棵树和一些节点信息存储在表中时,我想删除提示,并相应地修改表。因此,需要一个在列节点中具有正确新编号的新表。

在此处输入图像描述

0 投票
1 回答
136 浏览

r - 使用 mapply 将参数传递给 geom_point2

我的目标是使用 lapply 或类似地 mapply 将列表作为参数传递给函数 geom_point2。在类似的情况下,我成功地将一个列表(或多个列表)传递给 geom_cladelabel,如下所示:

问题与 aes内部geom_point2的使用有关。(不在 geom_cladelabel 中):

在 geom_point2 的情况下,节点信息在里面aes,我做不到。通常我没有收到任何错误消息,但它不起作用。

目标是使这个例子工作,但使用 mapply 而不是写geom_point2两次。

在此处输入图像描述

0 投票
1 回答
117 浏览

bioconductor - ggtree中的getSubtree函数,没有这样的函数

我已经安装了 ggtree 包 v1.8.2 并且我想使用 getSubtree 函数。但是我得到一个令人惊讶的错误:):

getSubtree() 中的错误:找不到函数“getSubtree”

即使我将 Rstudio Help 中的功能视为 ggtree 包的成员,并且正如包描述中提到的那样:https ://bioconductor.org/packages/release/bioc/manuals/ggtree/man/ggtree.pdf

通过 :: 从包中直接导出也不起作用。我也尝试过更新,重新安装软件包。ls("package:ggtree") 中没有这样的。我误解了某事还是没有这样的功能?

会话信息()

0 投票
1 回答
309 浏览

r - 可以对 gg_tree 中的 geom_text 进行编码以不错开与节点的距离吗?

我在 R 中对齐了一些氨基酸序列,并使用tree <- ape::nj(dist_mat). 它看起来像这样:

gg_tree 中的基本表示如下所示:

在此处输入图像描述

然后我附加一些数据以从原始数据框中添加美学:

然后我想将“tee”列中的信息作为彩色文本添加到树的外部,我的尝试如下:

在此处输入图像描述

如您所见,我尝试使用“hjust”使“geom_text”图层不与“geom_tiplab2”图层重叠,但每个“tee”文本到提示标签的距离似乎有很大不同。

任何人都可以建议如何让“tee”文本在树的外部顺利运行,然后形成尖端标签?注意:这也发生在矩形树上,而不仅仅是圆形树。

0 投票
2 回答
367 浏览

r - ggtree::facet_plot - 第二个面板使用第一个面板的 xlim 参数

我已经对许多用树进行层次结构的属进行了统计测试,因此我对树中的每个属都有一个 p 值。

我想在面板图中可视化树和 p 值,因为可以使用ggtree

包和树数据:

代码:

在此处输入图像描述

但是在这里,属的名称被截断了,所以我修改了xlim参数以完整地查看它们。

在此处输入图像描述

有用!但是,xlim传播到第二个面板......我该如何解决这个问题?

我尝试添加xlim(0:1)xlim = 0:1输入,facet_plot()但这不起作用...


在 F. Privé 回答后编辑:

我需要将标签保留在分支的右侧,因为我必须在它们上添加一些标签/统计信息。我希望它们左对齐。

0 投票
0 回答
558 浏览

r - 如何缩短/截断ggtree中的分支

使用 R 包 APE 生成的 phylo 树并使用 ggtree 绘图 - 有人知道使分支更短的方法吗?

我的角度是,我主要比较的是物种内,但添加了两个最密切相关的物种,部分是为了扎根树。但是,与近亲物种的进化距离当然比种内要高得多,这意味着我有一个超长的分支,占用太多空间+很难弄清楚种内的细节差异,因为图像被缩小以显示其他物种。

显而易见的手动解决方案是在 R 之外更改图像,但我更喜欢编程解决方案。

据我所知,ggtree 具有“缩放”功能,但这仅与进化枝的宽度有关,而不与深度有关。我已经从 ggtree 看到了带有我提到的那种截断的图(用虚线显示截断的区域),但我不知道这些细节是否在完成绘图后被编辑。

这是我正在使用的树

这是使用来自猿的数据生成树的代码。截断问题也可以应用于这里的大多数分支。

例子

0 投票
1 回答
198 浏览

r - 无法保存/写入 plotBS() 结果的树数据

我已经对齐了类中的序列phyDat。这是一个最小的例子:

我按照phangorn 包的手册构建了系统发育树。(下面我写了一个简化的代码,不用查手册,直接运行代码即可。)

我可以简单地绘制这棵树plotBS

到目前为止没有问题。我的问题从这一点开始

我想通过使用ggtree包来自定义这棵树,但我不知道该怎么做。当我使用ggtree(fitGTR$tree)时,它给了我一棵不同的树。

plotBS以某种方式使用bs值来更改树分支。如果你比较plot(fitGTR$tree, type="p")plotBS(fitGTR$tree, bs, type="p")差异很容易看出。ggtree()plot()构建相同的树,但不是我要自定义的树。

我尝试了不同的方法,例如使用write.treewrite.nexus函数保存树并使用包函数再次调用文件,ggtree但我无法保存plotBS树的版本。如何获得plotBS树的输出?

先感谢您。