三向 2023-05-27 14:26 采纳率: 100%
浏览 3535
已结题

R语言 bitr函数报错:None of the keys entered are valid keys for 'ENSEMBL'

尝试使用clusterProfiler包中的bitr函数进行基因注释,想将ENSEMBLID转为Symbol,但出现报错信息:

Error in .testForValidKeys(x, keys, keytype, fks) : 
  None of the keys entered are valid keys for 'ENTREZID'. Please use the keys method to see a listing of valid arguments.

原始数据信息如下,请大家解答。

img

img

img

  • 写回答

2条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-28 00:25
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答来自chatgpt:

      首先,我们需要确认数据是否有误。尝试使用其他方式将ENSEMBL ID转换为Symbol,例如使用biomaRt包或DAVID工具。如果数据没有问题,那么可能是clusterProfiler内置的数据库过期或者不支持所选的物种。此时,我们需要手动下载并更新相应物种的数据库。具体步骤如下: 1. 打开clusterProfiler包所在的文件夹。 2. 进入./clusterProfiler/libs/clusterProfiler/文件夹,找到enricher.R文件,并打开。 3. 在文件中找到以下代码段:

      if (!(db %in% c("GO", "KEGG", "Reactome"))) {
              if (!db %in% availableEnsDbs()) {
                  stop(sQuote(db), " is not a valid choice for the 'db' argument.\n",
                       "The available choices for 'db' argument are: ", paste(availableEnsDbs(), collapse = ", "), "\n",
                       "Or\n",
                       "please refer to ?getGeneID to retrieve data from other databases.")
              }
          }
      
      1. 将availableEnsDbs()改为updateEnsDb()。
      2. 保存文件并退出。
      3. 打开R控制台,加载clusterProfiler包,并使用updateEnsDb()函数手动下载并更新相应物种的数据库。例如:
      library(clusterProfiler)
      updateEnsDb(species = "Homo sapiens")
      

      注意:此步骤可能需要一定时间来下载和更新数据库,具体时间取决于数据库的大小和下载速度。 7. 尝试重新运行bitr函数进行转换,检查是否仍然出现报错。如果问题仍然存在,请尝试使用其他方式进行基因注释或者寻求其他专家的帮助。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月28日
  • 创建了问题 5月27日