使用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.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...