使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法
使用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版本的原因了,是什么也不重要了,过些日子说不定就好了。
知识储备有限,描述不专业,敬请见谅!!!
使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法相关推荐
- R语言ggplot2绘图教程——Pathway富集分析气泡图
library(ggplot2) pathway = read.table("C://Users//Desktop//path.richFactor.head20.tsv",hea ...
- r语言进行go富集分析_R语言:clusterProfiler进行GO富集分析和Gene_ID转换
一.读取文件,ID转换 1.读取文件 library(clusterProfiler) library(org.Hs.eg.db) #读取文件,原始文件中使用空格分割的 go_ythdf2 go_yt ...
- 写一个KEGG富集分析的R语言代码
. 有很多方法可以在R语言中完成KEGG富集分析.这里是一个简单的代码示例: library(clusterProfiler) library(KEGG.db)# 读取基因列表 geneList &l ...
- R语言|clusterprofile超几何分布富集分析 GO,KEGG富集分析,循环Fisher‘s test
超几何分布富集分析 GO,KEGG富集分析,循环Fisher's test ID转换 GO KEGG 把KEGG里的geneid转回名称(readable table) 超几何分布以及生成data f ...
- 富集分析原理和clusterProfiler包进行GO、KEGG富集分析详细说明
概念: 基因富集分析是指对于给定一组基因根据基因组注释信息(GO.KEGG)对基因进行聚类分析,即给定的基因是不是GO中的一个功能(或KEGG中的一个通路). 基因的功能富集的目的是说明给定的基因集对 ...
- 如何利用clusterProfiler进行基因集的KEGG富集分析?
NGS 测序项目,不管是基因组测序,还是转录组测序,通常会得到一个基因列表,记录了基因突变,或者高/低表达量. 对成百上千甚至上万个基因进行解读,往往是困难的,对基因进行分组以帮助对数据的理解就非常有 ...
- python调用r语言加载包错误_Python中调用R语言包指南.docx
Python中调用R语言包指南R语言是非常强大的做统计分析和建模方面的开源软件,它有非常丰富的统计软件包,做统计可以说只有你想不到的,没有R办不到的.Python又是当下最流行的编程软件之一,Pyth ...
- R语言包在linux上的安装等知识
有关install.packages()函数的详见:R包 package 的安装(install.packages函数详解) R的包(package)通常有两种: 1 binary package:这 ...
- 在Linux中安装R语言包,遇到无法验证下列签名的错误
R语言包的安装方式如下 Ubuntu自带的APT包管理器中的R安装包总是落后于标准版,因此需要添加新的镜像源把APT包管理中的R安装包更新到最新版. 请登录Linux系统,打开一个终端,然后执行下面命 ...
最新文章
- 爬虫好学吗python-小白python学到什么程度可以学习网络爬虫? ?
- P3302-[SDOI2013]森林【主席树,LCA,启发式合并】
- [译] 使用 iPhone X 与 Maya 实现快速面部捕捉
- sql in not in_SQL IN – SQL NOT IN
- 活字格企业Web应用生成器V3.0发布更新,支持插件管理和多人协作开发
- SQL Server数据库连接工具SSMS18.2的安装与配置
- win7摄像头软件_电脑最好用录屏软件,一分钟下载安装
- 解决office2016显示图标异常
- Python基础(8)字符串及常用操作
- 珍珠项链(洛谷-P2768)(Dp矩阵加速)
- rocketdock 打不开 有进程
- Python Matplotlib设置坐标轴范围,以及旋转轴标签(xtickslabels)
- Vue + Element UI 实现权限管理系统 前端篇(六):更换皮肤主题
- 并行传输数据和串行传输数据_计算机系统中的并行处理和数据传输模式
- 自定义CollapsingToolbaLayout完成可收缩的带头像的Toolbar
- 如何查询一个IP上所绑定的域名
- L1-029 是不是太胖了 (5分)
- 人工神经元网络及其应用,人工神经元网络技术
- 程序员压力大?常灸这七大穴位减轻你的压力!
- heatmap(高德热力图)