R phylo对象:如何连接节点标签和节点编号

2023-12-09

R 中的 phylo 对象可以具有内部节点标签(phylo_obj$node.label),但许多 R 函数使用节点编号而不是节点标签。甚至 phylo 对象本身也使用节点号来描述边(phylo_obj$edge)并且似乎没有内部节点标签到这些用于的节点号的直接映射phylo_obj$edge。如何将节点标签(例如,“NodeA”或“Artiodactyla”)映射到节点编号(例如,250 或 212)?我找不到任何 R 函数,也找不到任何相关文档。


不完全确定这里的目标是什么,但如果您想在边缘表中选择特定的节点号以及节点标签向量中的等效节点号,您可以简单地使用tree$node.label[node_number - Ntip(tree)].

更详细地说:

## Simulating a random tree
set.seed(1)
my_tree <- rtree(10)
my_tree$node.label <- paste0("node", seq(1:9))
## Method 1: selecting a node of interest (e.g. MRCA)
mrca_node <- getMRCA(my_tree, tip = c("t1", "t2"))
#[1] 16

mrca_node现在是边缘表中节点的 ID(在本例中是大于 10 的数字)。要选择等效的节点标签,您只需从mrca_node:

## The node label for the mrca_node
my_tree$node.label[mrca_node-Ntip(my_tree)]
#[1] "node6"

或者,您可以从边缘表中选择节点标签

## Method 2: directly extracting the nodes from the edge tables
# Function selecting the tip or node name corresponding to the edge row
select.tip.or.node <- function(element, tree) {
    ifelse(element < Ntip(tree)+1,
           tree$tip.label[element],
           tree$node.label[element-Ntip(tree)])
}

## Making the edge table
edge_table <- data.frame(
                "parent" = my_tree$edge[,1],
                "par.name" = sapply(my_tree$edge[,1],
                                    select.tip.or.node,
                                    tree = my_tree),
                "child" = my_tree$edge[,2],
                "chi.name" = sapply(my_tree$edge[,2],
                                    select.tip.or.node,
                                    tree = my_tree)
                )
#   parent par.name child chi.name
#1      11    node1    12    node2
#2      12    node2     1      t10
#3      12    node2    13    node3
#4      13    node3     2       t6
#5      13    node3     3       t9
#6      11    node1    14    node4
#7      14    node4    15    node5
#8      15    node5    16    node6
#9      16    node6     4       t1
#10     16    node6    17    node7
#11     17    node7     5       t2
#12     17    node7     6       t7
#13     15    node5     7       t3
#14     14    node4    18    node8
#15     18    node8    19    node9
#16     19    node9     8       t8
#17     19    node9     9       t4
#18     18    node8    10       t5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R phylo对象:如何连接节点标签和节点编号 的相关文章

  • Rscript 正在绘制 PDF

    我有一个简单的R http en wikipedia org wiki R 28programming language 29脚本 当它通过 Rscript exe 运行时 默认情况下它会绘制为 PDF 文件 我希望脚本打开一个绘图窗口 我
  • 绘图不适合 R 窗口

    我正在使用metaR 中的包对比例进行荟萃分析 我的分析中有大约一百项研究 当我打字时forest result 创建我的森林图 它可以工作 但图形在顶部和底部被切掉 无论我做什么 它都不适合绘图窗口 我对如何解决这个问题感到困惑 有任何想
  • 将值添加到 R 中 for 循环内的向量

    我刚刚开始学习 R 我编写了这段代码来学习函数和循环 squared lt function x m lt c for i in 1 x y lt i i c m y return m squared 5 NULL 为什么这个返回NULL
  • 数据集子集的回归

    我想做以下事情并需要一些帮助 分别计算 身高 与 年龄 的斜率和截距 lm Height Age 一 每个人 二 性别 并创建一个包含结果 斜率和截距 的表 我可以使用 申请 吗 在下一步中 我想做一个统计测试 以确定性别之间的斜率和截距是
  • 将线条剪裁到绘图区域并在绘图区域外显示文本

    我想限制绘图的可见 y 范围 为了保留超出此范围的值 我需要设置oob 出界 to rescale none这效果很好 不过 我还想在图外的页边空白处添加一些文本 为了做到这一点 我需要关闭剪辑 这会导致超出范围的值被绘制在绘图区域之外的边
  • 有没有办法将字母扩展到超过 26 个字符,例如 AA、AB、AC...?

    我大部分时间都使用字母来表示我的因素 但今天我尝试超过 26 个字符 LETTERS 1 32 期待有自动递归因式分解 AA AB AC 但很失望 这只是字母的限制还是有办法使用其他函数来获取我正在寻找的内容 702够吗 LETTERS70
  • 什么是 data.frame 可以做而 data.table 不能做的事情?

    我刚刚开始使用 R 并遇到了 data table 我发现它很棒 一个非常天真的问题 我可以忽略 data frame 来使用 data table 以避免两个包之间的语法混淆吗 来自数据表常见问题解答 http datatable r f
  • 不同的分位数:箱线图与小提琴图

    require ggplot2 require cowplot d iris ggplot2 ggplot d aes factor 0 Sepal Length geom violin fill black alpha 0 2 draw
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 如何编写一个也接受字符输入的 NES 函数?

    我正在开发一个将字符串作为函数参数的 R 包 现在我想使用非标准评估来允许非字符串输入 另外 为了保持向后兼容性 我想保留函数接受字符串的可能性 哈德利给出了example https cran r project org web pack
  • 使用 roxygen2 记录数据集

    我正在尝试使用 roxygen2 记录 R 包中的一些数据集 仅考虑其中之一 I have mypkg data CpG human GRCh37 RDa 其中包含一个名为的对象CpG human GRCh37 和一个名为 mypkg R
  • 哪种 LaTeX 包与 knit 一起使用以获得更多的表格控制?禁忌?

    我正在用 knitr 写一张更长的桌子xtable和tabular environment longtable 在 longtable 包中时print将它们纳入我的 Rnw file 问题是我对longtable环境控制不够 我有一些文本
  • 根据绘图单击事件对数据框进行子集化

    我有下面的数据框 Name lt c John Bob Jack Number lt c 3 3 5 NN lt data frame Name Number 还有一个简单闪亮的应用程序 可以从中创建一个绘图直方图 我的目标是单击直方图的一
  • 两个闪亮的操作按钮

    我正在编写一个闪亮的函数 其中包含两个操作按钮 这两个按钮是左右按钮 单击时可以帮助绘图移动 第一次单击时 这两个按钮都工作正常 当我重新单击它们时 就会出现问题 无论我单击哪个按钮 它都会在两个范围之间来回弹跳 我猜可能是 右 和 左 按
  • 为什么 quosures 在 group_by() 中起作用,但在 filter() 中不起作用?

    我正在构建一个函数 我将根据字符串操作数据框 在该函数中 我将根据字符串构建一个列名称 并使用它来操作数据框 如下所示 library dplyr orig df lt data frame id 1 3 amt c 100 200 300
  • 插值时间序列

    我有两组具有不同时间戳的数据 一组数据包含校准数据 另一组包含样本数据 校准的频率比样品少得多 我想做的是将校准数据 低频 插值到采样时间序列 高频 上 sam lt textConnection time value 01 00 52 2
  • 如何在 ggplot2 中向 x 轴添加特定值?

    我正在尝试在 ggplot2 中绘制图表 我希望 x 轴显示 2 84 以及下面键入的序列 除了在 Breaks 中输入所有精确值之外 还有其他方法吗 我尝试了谷歌 但它没有解决我的问题 scale x continuous limits
  • 在ggplot2中添加水平线到绘图和图例

    这段代码创建了一个漂亮的图 但我想在 y 50 处添加一条水平黑线 并让图例显示一条黑线 并在图例中显示文本 cutoff 但在图例中保留源点 我可以使用 geom line 添加该行 但无法在图例中获取该行 library ggplot2
  • 生成与现有变量具有预定义相关性的二进制变量

    对于模拟研究 我想生成一组随机变量 连续变量和二元变量 这些变量与已经存在的变量具有预定义的关联binary变量 此处表示为x 对于这篇文章 假设x是按照下面的代码生成的 但请记住 在现实生活中 x是一个已经存在的变量 set seed 1
  • 修改x轴刻度标签

    我正在尝试更改由生成的箱线图的 x 轴刻度标签ggplot2 x 轴是一个分类变量 HabFac 我想要的是将其刻度更改为 6 个化学品 A E 下面是我的代码 raw data read table Read data p TT ggpl

随机推荐

  • 将 C++ 类型信息保存到文件中以供跨程序调用使用

    Edit 如果需要 可以使用更多上下文来突出显示实际问题 我想实现以下方法 template
  • 在 HTML5 中无限循环加载视频

    我希望在 HTML5 页面中放置一个视频 该视频将在页面加载时开始播放 完成后 不间断地循环回到开头 视频应该还可以NOT有任何与之关联的控件 并且要么与所有 现代 浏览器兼容 要么可以选择填充 以前我会通过以下方式完成此操作Flash a
  • 选择 blob 上的不同值

    有没有办法验证 Oracle 数据库中更多行中 blob 中的值是否相同 blob 是同一列 我将 blob 的大小存储在另一列中 但我需要知道该值是否也相等 存储的值是序列化对象 我建议添加另一列 其中包含hashblob 值的 当您存储
  • 在SVG线性渐变停止偏移中绑定Angular2值?

    我想在线性梯度停止偏移中使用绑定 angular2 值 但它给了我错误 有人可以告诉我如何在线性渐变的停止偏移中绑定 angular2 值 如下所示 测试组件 ts import Component EventEmitter ViewEnc
  • Angularjs 创建输入掩码

    我正在尝试创建一个指令来为我的输入创建自定义掩码 我知道还有其他库可以使用 但有时我需要根据公司需求进行自定义输入 例如 OS 012 08765 所以我宁愿创建自己的指令 到目前为止 我能够在我需要的模式上格式化数字 但不能在输入上格式化
  • 基本 PowerShell 功能无输出

    自从我开始使用 PowerShell 以来已经有一段时间了 到今天我可以说我已经完成了很多日常任务 不过 在学校每天都是新的一天 现在 当我开始使用函数时 我再次绊倒了 这是我的问题 即使使用许多初学者教程中的最简单的功能 它也无法在我的工
  • 如何使用导出Excel并打印数据表中选定的列?

    我想使用导出 Excel 并打印数据表 我使用以下代码 但无法对选定的列使用这两个选项 example DataTable dom Blfrtip buttons extend excel print exportOptions colum
  • 在 PHP 中生成随机密钥的最佳方法是什么?

    我正在寻找创建一个可重用的函数 它将生成一个随机密钥 其中包含选定长度的可打印 ACSII 字符 从 2 到 1000 我认为可打印的 ASCII 字符为 33 126 它们的密钥不需要完全唯一 如果在完全相同的毫秒内生成则唯一 所以uni
  • Prolog 在单独的数据库文本文件上插入、修改和删除事实

    我有一个包含很多事实的序言数据库文件knowledge pl 例如 father of joe paul father of joe mary mother of jane paul mother of jane mary male pau
  • 从 Mathematica 函数返回相等性

    我有一个返回等式的函数 我想打印它 例如 x y 或 2x 5 10 这些通常对数学没有任何意义 它不能进一步简化它 然而 有时两边是相等的 但我希望能够以未计算的形式打印相等 也就是说 我希望 Mathematica 打印 x x 而不是
  • 动态创建类方法

    我正在编写一个类方法来创建另一个类方法 似乎有一些奇怪的地方class eval and instance eval在类方法的上下文中进行操作 为了显示 class Test1 def self add foo self class eva
  • 为什么是!!更适合检查对象是否真实? [复制]

    这个问题在这里已经有答案了 一些 JavaScript 示例使用 检查对象是否可用 Check to see if Web Workers are supported if window Worker Yes I can delegate
  • 带有尺寸参数的不成比例气泡图

    我创建了一个气泡图 并输入了一些测试值 如下所示 this chart1 Series blueBubble Points AddXY 2 3 6 this chart1 Series redBubble Points AddXY 1 0
  • GitHub.com 的存储库大小限制

    最近我一直在使用 GitHub 我想知道 github com 上托管的文件的存储库大小限制是多少 已知限制 有多个适用的回购协议大小限制 软限位 截至 2023 年 根据docs 这是 5 GB 如果超出此限制 您可能会收到来自 GitH
  • PHP 5.3 方法重载(就像 Java 中一样)

    在 Java 中 我们有一个方法重载功能 这对于单例非常有用 例如 我有两个不同的 getInstance 方法 公共静态 它们的行为根据收到的参数而有所不同 public static Currency getInstance Strin
  • 将字符串转换为哈希中的符号的最佳方法

    将散列中的所有键从字符串转换为 Ruby 中的符号的 最快 最干净 直接 方法是什么 这在解析 YAML 时会很方便 my hash YAML load file yml 我希望能够使用 my hash key 而不是 my hash ke
  • 如何将 pandas 数据帧转换为 NumPy 数组?

    按照我之前得到的建议在这里提问我正在将 Pandas 数据框转换为数字 NumPy 数组 为此 我使用了numpy asarray 我的数据框 DataFrame label vector 0 0 1 0 0033524514 2 0 02
  • 为什么Visual C++中栈地址低于堆地址?

    众所周知 栈地址高于堆地址进程地址空间 但是当我在VS2010中编写程序验证时 遇到了一些麻烦 栈的地址低于堆 甚至低于Data Segment 程序如下 include stdafx h include malloc h static i
  • scipy.minimize——获取成本函数与迭代?

    有没有办法使用 scipy minimize 在每次迭代的基础上访问成本函数 而不使用回调并重新执行成本函数 options disp似乎打算这样做 但只会导致优化器打印终止消息 将其打印到标准输出并使用就可以了contextlib red
  • R phylo对象:如何连接节点标签和节点编号

    R 中的 phylo 对象可以具有内部节点标签 phylo obj node label 但许多 R 函数使用节点编号而不是节点标签 甚至 phylo 对象本身也使用节点号来描述边 phylo obj edge 并且似乎没有内部节点标签到这