使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法
创始人
2024-05-30 04:40:40
0

使用enrichKEGG做通路富集分析时,一直报错:显示No gene can be mapped....

k <- enrichKEGG(gene = gene, organism = "hsa", pvalueCutoff =1, qvalueCutoff =1)

但是之前用同样的基因做分析是能够成功地富集到通路,即便是网上的数据会更新,也不可能变化的这么大吧,我换了一组基因,出现相同的问题。去B站视频教程的评论去找答案,发现有小伙伴在前几天刚刚评论说出现和我一样的问题,可能这个问题是刚新出的,网上也一直没找到解决这个问题的方法。

我考虑是不是因为clusterProfiler版本的原因,但我没有立刻更换clusterProfiler版本。(先留个扣,到底是不是版本的原因?)

看到了网上很多在本地进行富集分析的教程,于是,便冒着今天科研进度为零的风险,大胆尝试一下把数据下载到本地,进行通路富集分析,因为这么做也有个优点,就是数据库在本地,不会随着网上的更新而导致富集结果的更新,因为这样避免了前期的实验在后期复现不出来的麻烦。

参考了这个方法:

构建自己的R包--KEGG.db

先去上述官方地址找到自己研究的物种在KEGG数据里的3字符缩写,比如:我研究的是人类和玉米,缩写是'hsa'和'zma'。

#安装Y叔的包,
#安装创建KEGG数据库的包的包
remotes::install_github("YuLab-SMU/createKEGGdb")
#创建自己的物种的包create_kegg_db,会自动创建名称为KEGG.db_1.0.tar,gz的包。物种名称的简写,在
createKEGGdb::create_kegg_db('zma')    #人类是'hsa'#安装这个包(默认的包的路径在当前工作目录,根据实际情况修改路径)
install.packages("~/KEGG.db_1.0.tar.gz",repos=NULL,type="source")

但是在第二步时出现了小插曲,应该是说我的clusterProfiler有问题,我去安装了最新版本的clusterProfiler,clusterProfiler下载链接,在导入时又出现了麻烦,说最新版的clusterProfiler引入了DOSE,我的DOSE版本太低,我用BiocManager安装DOSE,但是BiocManager安装的DOSE依旧不符合要求,我考虑是否是BiocManager版本太低,又更新了BiocManager在安装DOSE,还是不行。迫不得已,我直接更新了R,从4.2.0更新了4.2.2,重新安装BiocManager、DOSE依旧解决不了问题。机缘巧合下(之前一直用某度,完全找不到官方信息,使用Bing浏览器搜到了这个,仿佛打开了新世界的大门),我找到了官方的DOSE,变下载安装包,在RStudio中手动安装,安装成功,继续导包clusterProfiler,又出现了一下包的关联问题,像GOSemSim, HDO, DO等,用同样的方法去官网下载安装包手动安装,因为BiocManager更新迟后,使用BiocManager不能安装最新版。后面甚至是JSON都需要安装,最后,clusterProfiler导包成功了!!!!

执行第二步和第三步,也都成功了!

还需要把“~/KEGG.db_1.0.tar.gz”手动安装,最后成为KEGG.db包,才可以使用library导入。

附上运行成功的代码(注意本地分析的话use_internal_data = TRUE,线上分析是默认的FALSE):

library("clusterProfiler")
library("org.Hs.eg.db")
library("enrichplot")
library("ggplot2")
library("pathview")
library("ggnewscale")
library("DOSE")
library(stringr)
library(AnnotationHub)    #library导入需要使用的数据包
library(eoffice)
library('KEGG.db')
# 以上有些包在共享的代码中没用到,是后续画图用的# 把SYMBOL转成gene_id
EG2SYMBOL=toTable(org.Hs.egSYMBOL)    
geneLists=read.table("data/gene_module_5.txt",sep="\t",check.names=F,header=F)    
colnames(geneLists) <- c('symbol')
results=merge(geneLists,EG2SYMBOL,by='symbol',all.x=T)  # 合并两个数据框
gene <- results$gene_id  # 选择一列
# 进行通路分析
k <- enrichKEGG(gene = gene, organism = "hsa", pvalueCutoff =1, qvalueCutoff =1, use_internal_data = TRUE)
# 强制转成数据框,便于查看
KEGG=as.data.frame(k)

本地通路富集分析完成!!!

下面看一下是不是clusterProfiler版本的原因,我运行

k <- enrichKEGG(gene = gene, organism = "hsa", pvalueCutoff =1, qvalueCutoff =1)

仍然报错:

那就不是clusterProfiler版本的原因了,是什么也不重要了,过些日子说不定就好了。

知识储备有限,描述不专业,敬请见谅!!!

相关内容

热门资讯

婚纱走秀主持词 婚纱走秀主持词三篇  篇一:婚纱走秀演出主持词  当您披上洁白的婚纱,点亮您一生中最美丽的日子,您是...
医者仁心台词 医者仁心台词大全  1. 钟立行对丁祖望:我们都在努力做一个能够被人怀念的人。  2.罗雪樱旁白:从...
《美丽人生》的经典台词 《美丽人生》的经典台词  意大利电影《美丽人生》,由罗伯托贝尼尼自编自演,讲述了意大利一对犹太父子被...
二年级主持词 二年级主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在一步步向前发展的社会中...
年会的主持词 年会的主持词范文(通用5篇)  根据活动对象的不同,需要设置不同的主持词。时代不断在进步,主持词是活...
姨妈的后现代生活经典台词分享 姨妈的后现代生活经典台词分享  吉日良辰当欢笑,为什么鲛珠化泪抛?此时却又明白了,世上何尝尽富豪。也...
学校语文教研活动主持词 学校语文教研活动主持词  借鉴诗词和散文诗是主持词的一种写作手法。在一步步向前发展的社会中,很多晚会...
六一庆祝大会主持词 六一庆祝大会主持词  六一就是我们的节日,六一就是一个欢乐的日子,下面小编整理的六一庆祝大会主持词,...
婚礼感谢词 婚礼感谢词(15篇)婚礼感谢词1各位来宾,各位亲友:  大家晚上好!  今日是我女儿XXX和女婿XX...
文艺汇演主持词开场白 文艺汇演主持词开场白9篇  根据活动对象的不同,需要设置不同的主持词。我们眼下的社会,活动集会越来越...
总结大会主持词   导语:春去秋回又一栽,似水流年旺年来。  2017年公司年会主持词  一.主持人开场白  男:一...
农村结婚典礼主持词 农村结婚典礼主持词  一对新人立堂前,两心相印似蜜甜,三生有幸结良缘,下面是小编分享的 农村结婚典礼...
春节联欢晚会主持词开场白   翻开精美的日历,我细数着春节将要来临。那是我们中华民族的传统节日,更是我期盼的佳节,因为只有这几...
真爱至上中英文经典台词 真爱至上中英文经典台词  1、All I want for Christmas is you.  今...
欢聚一堂舞蹈主持词 欢聚一堂舞蹈主持词  串词是在晚会、联欢会等大型联欢活动中,主持人把前后节目,把整台节目恰到好处的联...
主持词结束语 主持词结束语(通用12篇)  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在人们越来越...
秋季小学开学典礼校长的致辞 秋季小学开学典礼校长的致辞(通用13篇)  在学习、工作、生活中,许多人都有过写致辞的经历,对致辞都...
五月的主持词开场白 五月的主持词开场白  主持人在台上表演的灵魂就表现在主持词中。在当下这个社会中,各种场合中活跃现场气...
重阳节优秀致辞 重阳节优秀致辞范文  无论是身处学校还是步入社会,大家都用到过致辞吧,在各种重大的庆典、外交、纪念活...
QQ群晚会开幕词 QQ群晚会开幕词  QQ群晚会开幕词    尊贵的各位嘉宾,群主,各位管理,群友们大家晚上好:   ...