使用蛋白ID如何进行KEGG和GO富集分析


事由起因

昨天,有个童鞋咨询如何使用蛋白ID进行功能富集分析,功能富集分析主要是KEGG和GO。

思路

  1. 蛋白ID转UniProt数据库ID
  2. UniProt数据库ID转KEGG和GO号
  3. 使用KEGG和GO号进行富集分析

教程(实操开始)

蛋白ID数据类型

蛋白ID的数据是的使用;进行隔分的,如果要整理成一列数据,我最开始想到的就是使用sed进行处理。

注:个人还是建议使用fa序列进行mapping,但是只要获得正确的结果,也无所谓。

1. 蛋白ID转UniProt数据库ID

使用UniProt数据库的工具UniProtKB ID Mapping(https://www.uniprot.org/uploadlists/

1. 直接将数据复制-粘贴到过来即可,无需操作。

2. 选择UniProtKB AC/ID To KEGG Pathway,如下图所示。

3. 选择好后直接点解Map即可。

等待一段时间,即可完成Completed

4. Download数据

格式选择其中一种即可。


获得结果

目前,已经获得UniProt数据库ID。那么,我们可以直接试用其进行转换即可,方法有两种,一种是直接在KEGG数据库中进行转换,一种是使用云平台进行转换。

  1. KEGG数据库中机芯富集https://www.genome.jp/kegg/mapper/color.html,自己做了没成功。
    2.使用云平台进行转换(我们的童鞋使用基迪奥云平台进行转换,获得如下结果)

    依旧是你喜欢的样子,GO号和KEGG号都有,可以直接使用。

方式二: 使用R语言进行转换

我们在这里尝试很多方式,依旧是没有成功!需要同学们的帮助,如果你有好的建议或方式,欢迎进行交流,这个问题一直留个大家讨论!!!!

代码一

安装R包

install.packages("UniprotR")
install.packages("KEGGREST")
install.packages("clusterProfiler")
## 
# 如果安装不了换成BiocManager::install()安装
##'@加载
library(UniprotR)
library(KEGGREST)
library(clusterProfiler)

加载数据

##'@加载蛋白ID数据
protein_ids <- read.table("test.02.txt",header = F)
#protein_ids <- sapply(protein_ids, as.character)
protein_ids <- as.character(protein_ids$V1)
head(protein_ids)
> head(protein_ids)
[1] "N1PAF1"     "G2WAT7"     "C8Z5A3"     "C7GN09"     "A6ZYE7"     "A0A815XJ81"
### 转换
kegg_ids <- idmapping(protein_ids, from = "ACC", 
                      to = "KEGG_ID", format = "list", 
                      verbose = FALSE)$KEGG_ID

这里报错,找不到"idmapping"

报错后后面的依旧是进行不了,找了很多教程依旧是没找到。


代码二

这里依旧是同样的问题,那么大家看一下代码吧。我个人觉得,这个代码的可靠性更高一些。这里使用org.Sc.sgd.db包。

加载R包

library(clusterProfiler)
library(org.Sc.sgd.db)
library(pathview)
library(enrichplot)

加载数据

##'@加载蛋白ID数据
protein_ids <- read.table("test.02.txt",header = F)
#protein_ids <- sapply(protein_ids, as.character)
protein_ids <- as.character(protein_ids$V1)
head(protein_ids)

转换

kegg_ids <- idmapping(protein_ids, "ACC", "KEGG_ID", format = "list", "org.Sc.sgd.db")

代码三

加载R包

install.packages("KEGGREST")
install.packages("org.Sc.sgd.db")

library(KEGGREST)
library(org.Sc.sgd.db)

加载数据-(同上)

转换

kegg_ids <- vector("list", length(protein_ids))
for(i in seq_along(protein_ids)){
  kegg_ids[[i]] <- tryCatch(keggConv(protein_ids[i], 
                                     "ncbi-proteinid", "pathway+gene"), 
                            error = function(e) NA)
}
kegg_ids <- unlist(kegg_ids[!is.na(kegg_ids)])


没有结果!!!!


由于没有结果,后面富集分析也就是不能继续了!!

如果你想折腾,可以继续折腾!!

如果,你不想折腾,也开始直接使用第一种方法即可!


往期文章:
1. 最全WGCNA教程(替换数据即可出全部结果与图形)
WGCNA分析 | 全流程分析代码 | 代码一

WGCNA分析 | 全流程分析代码 | 代码二

WGCNA分析 | 全流程代码分享 | 代码三

2. 精美图形绘制教程

精美图形绘制教程

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杜的生信筆記

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值