KEGG12大代谢基因提取

1949589
参考曾老师的文章,这个知识点挺好的,后面可以结合GSVA继续分析。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

利用下面的代码就可以将12大代谢的通路相关基因提取出来,再进行构建基因集进行GSVA分析(这部分内容后面会分布),或许不想自己做的可以跟我要,不过我只构建了rat的

dir.create('../12Metabolism')
setwd('../12Metabolism/')
if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("KEGGREST")

library(KEGGREST)
library(stringr)

org <- keggList('organism') 
head(org) 
org[str_detect(org[,3],"rat"),] 

rno_path <- keggLink("pathway","rno")

length(rno_path)
names(rno_path)[1:6] 
length(unique(names(rno_path)))
length(unique(rno_path))

meta1= unique(rno_path)[grepl('rno00',unique(rno_path))]
meta2=unique(rno_path)[grepl('rno010',unique(rno_path))]
meta3=unique(rno_path)[grepl('rno011',unique(rno_path))]
meta4=unique(rno_path)[grepl('rno012',unique(rno_path))]
meta5=unique(rno_path)[grepl('rno013',unique(rno_path))]#这部分对照一下KEGG官网就清楚了
meta=c(meta1,meta2,meta3,meta4,meta5)
rno_info <- lapply(meta, keggGet)

nm=unlist(lapply( rno_info , function(x) x[[1]]$NAME))

genes = unlist(lapply(rno_info, function(x) {
  if (is.null(x) || length(x) == 0) {
    return(NA)  # 如果x为空或不存在,返回NA
  }
  g = x[[1]]$GENE
  if (is.null(g) || length(g) < 2) {
    return(NA)  # 如果g不存在或长度小于2,返回NA
  }
  g = g[seq(2, length(g), by = 2)]  # 从第二个元素开始,步长为2
  if (length(g) == 0) {
    return(NA)  # 如果过滤后的g为空,返回NA
  }
  paste(str_split(g, ';', simplify = TRUE)[, 1], collapse = ';')
}))
cleaned_pathways <- sub(" - Rattus norvegicus \\(rat\\)", "", nm)
df =data.frame(
  hsa= meta,
  nm=cleaned_pathways,
  gene=genes
)

Metabolism=df[1:85,]
write.csv(Metabolism,'12Metabolism.csv')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值