获取KEGG通路的基因列表 做单细胞GSEA、GSVA分析

本文详细介绍了如何在R语言中使用MSIGDB和KEGGREST获取KEGG数据库的通路列表,并结合单细胞RNA-seq数据执行GSVA分析,以便评估不同通路在单细胞样本中的活动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用KEGG通路的基因列表进行单细胞GSEA GSVA分析的过程,我们需要遵循以下步骤:

  1. 获取KEGG通路的基因列表:这通常涉及使用专门的R包,如KEGGRESTbiomaRt,来查询KEGG数据库并检索特定通路的基因列表。

  2. 准备单细胞表达数据:这包括加载单细胞RNA-seq数据,通常使用Seurat或其他单细胞分析包进行预处理。

  3. 执行GSVA分析:使用GSVA包对单细胞数据执行基因集变异分析(GSVA),根据KEGG通路的基因列表评估每个单细胞样本的通路活性。

  4. 可视化GSVA结果:最后,基于GSVA分析结果,绘制热图或其他类型的图表来展示不同单细胞样本中通路活性的变化。

今天我们主要关注第一步,如何获取KEGG通路的基因列表?

问题来源

不管是转录组数据还是单细胞数据都可以做gsva分析。gsva需要两个文件作为输入:

1. 表达矩阵

2. 基因集

表达矩阵容易获得,但是如果我们想做kegg数据库的通路分析怎么办?如何获取kegg的通路列表?

获取kegg的通路列表代码

  • 方法一:使用msigdb

 library(msigdbr)    genesets = msigdbr(species = "Homo sapiens"  ) #msigdbr提供多个物种的基因集数据    # View(msigdbr_collections()) #查看msigdbr包中所有的基因集    unique(genesets$gs_subcat)  # 有多个数据库来源的基因集可选,这里选用KEGG    genesets <- subset(genesets, gs_subcat=="CP:KEGG", select = c("gs_name", "gene_symbol"))    unique(genesets$gs_name) #查看有多少条通路(186个)    

但是这里面的kegg只有186个基因集合

  • 方法二 使用 KEGGREST

    #BiocManager::install("KEGGREST")    #BiocManager::install("EnrichmentBrowser")    library("KEGGREST")    library("EnrichmentBrowser")    KEGGREST:: listDatabases()    KEGGREST::keggList(database ='kegg')    keggList("organism") ## returns the list of KEGG organisms with    #step2: check and obtain a list of entry identifiers (in this case: sar) and associated definition for a given database or a given set of database entries.    res <- keggList("pathway", "hsa") ## returns the list of human pathways    length(res)    res=as.data.frame(res)    head(res)    #step 3: download the pathways of that organism:    hsapathway <- downloadPathways("hsa")    head(hsapathway)    idTypes(org = 'hsa' )    #step 4: retrieve gene sets for an organism from databases such as GO and KEGG:    hsa_kegg_genesets <- getGenesets(org = "hsa", db = "kegg",                                     gene.id.type = "SYMBOL",                                     cache = TRUE, return.type="list")        #step5: Parse and write the gene sets to a flat text file in GMT format for other pathway enrichment analysis programs (e.g., GSEA):    writeGMT(hsa_kegg_genesets, gmt.file = "kegg_hsa_kegg_genesets_gmt")    save(hsa_kegg_genesets,file = "~/heart_muscle/hsa_kegg_genesets.rds")

我们可以看到这里的kegg数据集合有357个

做gsva分析

 library(GSVA);print(getwd())  load("~/heart_muscle/hsa_kegg_genesets.rds")  genesets_kegg=hsa_kegg_genesets  print(length(hsa_kegg_genesets))  #kegg---  gssea.res <- gsva(expr, genesets_kegg [1:50], method="ssgsea",kcdf="Poisson",min.sz > 3,max.sz=200 ,parallel.sz=10 )   saveRDS(gssea.res, paste0(new_dir,file_name,"_gssea.res_kegg.rds"  )  )    gssea.df <- data.frame(Genesets=rownames(gssea.res),gssea.res, check.names = F)  write.csv(gssea.df,  paste0(new_dir,file_name,"gssea_res_kegg.csv" ), row.names = F)        # ssgsea-----  #library(GSVA);print(getwd())  #gssea.res <- gsva(expr, genesets_GO [1:50], method="ssgsea",kcdf="Poisson",min.sz > 3,max.sz=200 ,parallel.sz=10 )  #,parallel.sz=10  #saveRDS(gssea.res, paste0(new_dir,file_name,"_gssea.res_go.rds"  )  )    #gssea.df <- data.frame(Genesets=rownames(gssea.res), gssea.res, check.names = F)  #write.csv(gssea.df,  paste0(new_dir,file_name,"gssea_res_go.csv"), row.names = F)   #print("done-------");print(getwd())

这里的expr是行为基因列为样本的 表达矩阵。

参考:https://biobeat.wordpress.com/category/r/https://www.researchgate.net/post/How_i_can_get_a_list_of_KEGG_pathways_and_its_list_of_genes

分析完成之后,可以使用新得到的通路矩阵进行差异分析。下期见~

看完记得顺手点个“在看”哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生信小博士

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

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

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

打赏作者

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

抵扣说明:

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

余额充值