利用KEGGREST包提取所有代谢相关的基因

写笔记主要是为了自己进步,也是方便自己查看。R语言新手,如有不对请指正。

直接上代码吧

rm(list = ls())
library(KEGGREST)
library(stringr)

##提取KEGG所有的通路
hsa_path <- keggLink("pathway","hsa")

#KEGG共收集8443个相关通路的基因
length(unique(names(hsa_path)))

#涉及通路353个
length(unique(hsa_path))

#代谢相关的通路在KEGG中以“00……”开头,提取”00……“开头通路共84个
pathway= unique(hsa_path)[grepl('hsa00',unique(hsa_path))];length(pathway)


#提取这84个通路的基因
hsa_info <- lapply(pathway, keggGet)

分别把基因名字和基因的ID提取出来,合成一个数据框
gene_symbol = unlist(lapply( hsa_info , function(x) {
  g = x[[1]]$GENE
  str_split(g[seq(2,length(g),by=2)],';',simplify = T)[,1]
}))

gene_ID = unlist(lapply( hsa_info , function(x) {
  g = x[[1]]$GENE
  paste0("hsa:",g[seq(1,length(g),by=2)])
}))

genelist <- data.frame(gene_ID,gene_symbol)

#去重复,提取84个代谢通路中1728个基因
genelist <- genelist[!duplicated(genelist$gene_symbol),]
length(genelist$gene_symbol)

head(genelist)

#保存为Rdata,随时可以加载使用
save(genelist,file = "metabolism.Rdata")
最终结果长这样子:
##   gene_ID gene_symbol
1  hsa:3101         HK3
2  hsa:3098         HK1
3  hsa:3099         HK2
4 hsa:80201       HKDC1
5  hsa:2645         GCK
6  hsa:2821         GPI

KEGG上的基因数量和通路数量都是不断更新的,所以KEGGREST包能提取的基因数量也在不断变化。我去年运行的时候总基因8192个,现在已经有8443个了,以后也会不断增加。

KEGG官网上也有少量的代谢通路不以00开头,以01开头。数量太少,且不是重要的通路,所以我省略了。想要提取更全的基因基的朋友可以自己加上。

最后,本文参考自生信技能树曾老师的代码,感谢曾老师的分享。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值