问题标签 [ape-phylo]
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.
r - Counting phylogenetic tree topologies in R
Given a multiPhylo object in R, what's the simplest way to count the number of duplicate topologies. For instance, if I randomly sample from all 15 possible resolutions of a 4 tip topology:
I will have 1000 trees from 15 possible topologies. What's the simplest way to tabulate the count of trees with each topology (i.e. the sum of counts will be 1000).
r - 如何使用 R_II 中的变量为无根树的分支着色
我想为来自输入单倍型数据的无根邻居连接树中的特定标签着色分支。提供了akang和Will Hamilton的这两个例子。他们试图解决这个问题,但答案与定义标签的正确颜色不匹配。
第一个例子。在这里,我们要为相邻连接树中的 Iris 数据帧(setosa、versicolor、virginica)中的三个组着色。我包括 rownames(Iris) 来为每个样本定义一个名称,以便识别图中的样本
问题:每组的样本没有正确着色。来自不同组的一些样本具有相同的颜色(即来自 versicolor 和 virginica 的样本颜色相同)
Will Hamilton的第二个例子。我们希望 Sample_A、Sample_B 和 Sample_E 基于单倍型矩阵具有相同的橙色。
问题:第二个例子不能正常工作。样本 A、B 和 E 应该是橙色的(即它们是“a”),但在图中,E 是蓝色的。C 是橙色但是“b”(应该是蓝色)。我想要 A,B,E = 橙色;C、D、F = 蓝色。
基本上,我希望能够为特定标签的每个边缘分配颜色。这可能吗?
r - 有没有办法重新排序 phylo 对象的提示标签,以使它们与另一个 phylo 对象一致?
我有两棵树要比较。一个来自 mrbayes,另一个来自 Paup。
当我使用 read.nexus 时,生成的 phylo 对象具有不同顺序的尖端标签,尽管这两个文件具有相同的关系分类单元块。
我在下面复制了这些树:
有没有办法重新排序 t1 的提示标签,使它们与 t2 一致?
r - 试图将数据写入 newick 格式 R
我有一个从顶层开始具有不同级别分支的数据集:stock -> mbranch -> sbranch -> lsbranch。我希望能够将这些级别的数据可视化为 Newick 格式。我在每个库存级别中有不同的语言组,并希望根据这些最高级别的组制作不同的树。
例如我的数据格式如下:
我正在尝试输出 newick 树格式,类似于:
我正在这样做,所以稍后我可以对输出树的节点进行距离矩阵。
函数 write.tree 是否能够分析这样的数据并从中制作一棵树(假设我的实际数据集要大得多)?或者一般来说,一个输出树格式的函数。谢谢
ape-phylo - 在猿中运行 PGLS 时出错:“未指定协变量”
我刚刚重新访问了一个旧的 r 脚本来仔细检查我的分析。当我尝试运行 PGLS 时出现这个新错误:
未指定协变量,物种将按数据框中的顺序排列。为避免出现此消息,请使用“form”参数指定包含物种名称的协变量。
我想知道这是否与新的更新有关?我认为我的脚本没有任何问题,因为当我尝试复制以前的教程时也遇到了这个错误。但以防万一我错了,我在下面粘贴了我的脚本:
gls(Diet_PC1~Habitat_PC1,correlation = corBrownian(phy = PrimateTree.phy), data=traits, method="ML")
有没有人有任何解决方案?
谢谢!医学博士
r - 是否可以通过将分类群与姐妹分类群而不是节点绑定来将它们添加到系统发育中?
我正在尝试创建一棵树来计算系统发育信号并进行系统发育广义最小二乘分析。然而,我用于此分析的文献树中缺少我的一些分类群,主要是因为这些分类群在父研究时被认为是包含分类群的亚种,后来被提升到物种等级。结果,我确切地知道这些分类群需要去哪里(它们以前包含的分类群的姐妹),但我无法将它们添加到树中。
我一直在使用以下代码将分类群添加到我的树中。
然而,这有几个问题。一方面,这通过创建一个多分法来添加新的分类群,然后我必须使用像bifurcatr
. 然而,这对于已知的系统发育是不准确的。这不是真正的多分法,这种情况下的拓扑是已知的:t6a 和 t6 是姊妹类群。如果我尝试将任何化石分类群添加到数据中,这也是一个问题,因为如果化石靠近两个主要进化枝的基部,随机解析多分法可能会将其作为错误进化枝的基础成员。
此外,我使用具有可变数量节点的树,因为在某些情况下某些分类单元的数据丢失,我必须运行省略分类单元的数据子集。因此,树之间的 then 节点的数量并不总是相同的。所以我想找出一种方法来添加不依赖于特定树中特定节点数量的分类群。
我想知道是否有任何方法可以通过将分类单元作为姐妹分类单元绑定到已知尖端来将分类单元添加到树中,而不是在内部节点创建多分支?这将使我能够更轻松地将分类单元绑定到树,因为无论树的长度如何,都有一个一致的点可以绑定它们(作为具有特定标签的任何尖端的姐妹)。
r - 有没有办法手动调整猿/植物工具中系统发育的颜色渐变边界?
ape
我正在尝试使用和可视化系统发育最小二乘回归的结果phytools
。具体来说,我一直在尝试创建一个用于预测目的的回归方程,并且我正在研究有多少系统发育信号影响残差(以及因此方程的准确性)。我一直在使用类似于以下的代码来绘制结果(尽管这里针对虚拟数据进行了重新设计)。
然而,问题在于我有一些物种相对于数据集的其余部分表现出极高的残差。因为颜色梯度的最小值和最大值被设置为实际列的最小值和最大值,所以这会冲掉 90% 的数据集之间的所有对比度,以可视化少数极端异常值。下面的代码重现了我的意思与obj
上面相比的一个例子。
这使得该图看起来好像系统发育信号比实际信号少得多,因为它使除了最极端的异常点之外的所有点都在颜色上相似。
我试图找出一种方法来设置颜色渐变的最小值和最大值,以便任何值≤ -1 是最大可能的红色值,任何值 ≥ 1 是最大可能的蓝色值,从而在其余部分允许更大的对比度的残差。我尝试使用命令
但正如您从这段代码中看到的那样,这什么也没做。我知道ggplot2
有一个选项可以根据用户输入的值重新调整颜色渐变,但我似乎无法弄清楚如何从 ggplot2 制作系统发育对象ape
或phytools
在 ggplot2 中绘制。
鉴于此,是否有任何方法可以操纵ape/phytools 中的颜色渐变模式,以便可以任意设置颜色渐变的最大和最小边界?
r - 如何在系统发育树上调整尖端标签相对于树尖端的位置?
ape
我正在尝试使用和phytools
包在系统发育树上创建一个连续性状图的图形R
用于出版物。我正在尝试生成的示例代码如下:
唯一的区别是分支的末端都是相同的长度,因为它们都是活的分类群,但这足以说明我遇到的问题。我在这棵树中有大量的分类群,因此我必须使用fsize=
参数将文本缩小到相当小,以使它们清晰易读。但是,正如您从示例代码中看到的那样,这样做会导致每个物种名称的末端被系统发育树的轮廓所掩盖。我试过删除轮廓,但它使系统发育的热图很难阅读。我一直找不到任何方法来减少轮廓的粗细,它似乎是自动生成的。
我也尝试将cex
命令添加到plot(obj...)
,但它对生成的树根本没有影响。
我想弄清楚如何做的是如何定位提示标签,以使它们更清晰且不被树的轮廓覆盖。我不能简单地使用dplyr
mutate
函数或类似的方法在每个终端前面添加一个空格,因为分类单元名称的位置并不总是一致的,有时名称的左侧附加到尖端,有时它是右侧. 我尝试不将数据绘制为风扇,但这最终会创建一个具有大量死区的图形,因为我在树中有一些非常深的分裂(基本上将图形绘制为面向右侧的树结果一半的数字是死空间,因为我的分类群在中生代分歧,但只在 KT 边界之后形成)。
r - 在特定位置选择具有指定碱基的所有样本
我是 R 编程新手,并试图完成一项非常具体的任务。
我有一个包含 n 个样本的 fasta 序列,我读到ape
:
这创建了一个矩阵,如下所示:
其中 Seq(n) 是每个样本的 DNA 序列,V(n) 表示核苷酸位置。
如何选择在某个位置(例如“V1”)带有某个核苷酸(例如“a”)的序列,然后将这些序列作为连接字符串返回?
因此,对于 V1 位置,我想要“Seq1,Seq2,Seq3”之类的东西,而对于 V4 位置,对于相同的基础,我想要“Seq2,Seq4”
我试过了which()
,filter(matrix, V1 == "a")
但我很挣扎。
提前致谢!