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

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自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函数进行转换,检查是否仍然出现报错。如果问题仍然存在,请尝试使用其他方式进行基因注释或者寻求其他专家的帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

问题解决,是我数据库用错了。我之前用的是大鼠的数据库(org.Rn.eg.db),但应该使用小鼠的数据库(org.Mm.eg.db)。

img