- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含许多提示和内部节点的系统发育树。我有一个树中的节点 ID 列表。这些是单独表格的一部分。我想在表中添加一个新列,children。为了获得后代(节点和提示),我使用了 phangorn::Descendants(tree, NODEID, type = 'all')
。我可以添加长度以获得后代的数量。例如,
phangorn::Descendants(tree, 12514, type = 'all')
[1] 12515 12517 12516 5345 5346 5347 5343 5344
length(phangorn::Descendants(tree, 12514, type = 'all'))
[1] 8
我想非常简单地获取我的数据框“节点”中的列,并使用 length(phangorn::Descendants(tree, 12514, type = 'all'))
上面的函数来根据输入节点在数据框中创建一个新列。
这是一个例子:
tests <- data.frame(nodes=c(12551, 12514, 12519))
length(phangorn::Descendants(tree, 12519, type = 'all'))
[1] 2
length(phangorn::Descendants(tree, 12514, type = 'all'))
[1] 8
length(phangorn::Descendants(tree, 12551, type = 'all'))
[1] 2
tests$children <- length(phangorn::Descendants(tree, tests$nodes, type = 'all'))
tests
nodes children
1 12551 3
2 12514 3
3 12519 3
如上所示,children的数量是data.frame的长度,并不是上面计算的实际children的数量。应该是:
tests
nodes children
1 12551 2
2 12514 8
3 12519 2
如果您对我如何使此行为符合预期有任何提示或想法,那就太好了。我有一种感觉,我必须使用 apply() 或者我需要在使用 length() 函数之前在内部建立索引。提前谢谢你。
最佳答案
你非常接近!这是一个使用 sapply
的快速解决方案!还有更多选择,但这个似乎符合您问题的结构!
library(ape)
ntips <- 10
tree <- rtree(ntips)
targetNodes <- data.frame(nodes=seq(ntips+1, ntips+tree$Nnode))
请注意,我将所有相关节点存储在 targetNodes
对象中。这相当于您问题中的以下对象:
tests <- data.frame(nodes=c(12551, 12514, 12519))
现在,让我们使用 sapply
在 targetNodes
中的所有相关节点上重复相同的操作:
targetNodes$children<- sapply(targetNodes$nodes, function(x){
length(phangorn::Descendants(tree, x, type = 'all'))
})
我通过在 targetNodes
中创建一个新列来保存我们的 sapply
函数的输出。
祝你好运!
关于r - 在树文件类 Phylo 的列上使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72779015/
我有一个包含许多提示和内部节点的系统发育树。我有一个树中的节点 ID 列表。这些是单独表格的一部分。我想在表中添加一个新列,children。为了获得后代(节点和提示),我使用了 phangorn::
我正在尝试使用 BioPython、Phylo 模块构建一棵树。 到目前为止我所做的是这张图片: 每个名称都有一个四位数字,后跟 - 和一个数字:这个数字指的是该序列出现的次数。这意味着 1578 -
我对肠杆菌基因组中的 4 个管家基因感兴趣。 所以我有我的管家基因,我在 NR 上大放异彩并下载了对齐的序列。 我使用 MEGA7 软件和最大似然法制作了系统发育树。 Boostrap 方法执行了 2
Biopython 带有与 PAML 包交互的方法,用于系统发育分析。 特别是我正在使用 Bio.Phylo.PAML使用 PAML 的 codeml.exe 程序运行分析,在我的例子中,该程序对直系
我想使用 cutree() 函数将系统发育树聚类到指定数量的进化枝中。然而, phylo 对象(无根的系统发育树)不是 unltrametric,因此在使用 as.hclust.phylo() 时会返
我正在使用 Biopython 的 Phylo 包来创建系统发育树。 对于大树,我需要减小叶节点的字体大小。有人建议更改 matplotlib.pyplot.rcParams['font.size']
我正在尝试以与使用包“ape”绘制树时相同的“样式”绘制凝聚聚类(UPGMA 与 Agnes)的结果。我在下图中包含的一个简单示例 关键问题是我希望能够根据叶子标签中的 a 图案为树状图的叶子着色。我
我是一名优秀的程序员,十分优秀!