使用GOplot包基于miRNA ID绘制弦图时出现下标越界错误如何解决
GOplot
chord_dat()下标越界报错解决方案 猜测正确性判断
你的猜测不完全正确:GOplot没有强制要求chord_dat()函数的输入必须为gene symbol,只要三个输入参数内的ID格式完全统一,使用miRNA ID也可以正常运行。
你遇到的subscript out of bounds报错核心原因是传入的circ、genes、process三个参数的ID/取值匹配失败:函数运行时需要用genes和process的取值作为下标索引circ对象的对应位置,当存在ID不在circ的基因列表、或者通路名称不匹配的情况时,就会触发下标越界报错。
解决步骤
- 校验
genes与circ对象的ID一致性
运行命令sum(!genes %in% circ$genes)查看不匹配的ID数量:如果返回值大于0,先将genes向量中不存在于circ$genes的ID剔除,再重新运行函数即可。如果存在大小写、命名后缀差异(比如miRNA的-3p/-5p后缀不一致),先统一ID命名格式后再做匹配校验。 - 校验
process参数的匹配性
运行unique(circ$term)查看circ对象包含的通路名称,确认你传入的process取值完全和其中某一个通路名称一致,同时确认该通路关联的所有ID都存在于genes向量中。 - 确需ID转换的处理方案
如果你后续分析要求使用gene symbol,可通过对应物种的注释包做ID转换:比如人类样本可使用org.Hs.eg.db包的mapIds()函数,先将miRNA ID映射为对应的靶基因symbol,再统一三个输入参数的ID类型后重新运行函数。
内容的提问来源于stack exchange,提问作者Morteza Hadizadeh
相关产品推荐
相关产品推荐

