差异基因富集分析(R语言——GO&KEGG&GSEA)

接着上次的内容,上篇内容给大家分享了基因表达量怎么做分组差异分析,从而获得差异基因集,想了解的可以去看一下,这篇主要给大家分享一下得到显著差异基因集后怎么做一下通路富集。

1.准备差异基因集

我就直接把上次分享的拿到这边了。我们一般都把差异基因分为上调基因和下调基因分别做通路富集分析。下面上代码,可能包含我的一些个人习惯,勿怪。显著差异基因的筛选条件根据个人需求设置哈。

##载入所需R包
library(readxl)
library(DOSE)
library(org.Hs.eg.db)
library(topGO)
library(pathview)
library(ggplot2)
library(GSEABase)
library(limma) 
library(clusterProfiler)
library(enrichplot)


##edger
edger_diff <- diff_gene_Group
edger_diff_up <- rownames(edger_diff[which(edger_diff$logFC > 0.584962501),])
edger_diff_down <- rownames(edger_diff[which(edger_diff$logFC < -0.584962501),])

##deseq2
deseq2_diff <- diff_gene_Group2
deseq2_diff_up <- rownames(deseq2_diff[which(deseq2_diff$log2FoldChange > 0.584962501),])
deseq2_diff_down <- rownames(deseq2_diff[which(deseq2_diff$log2FoldChange < -0.584962501),])

##将差异基因集保存为一个list
gene_diff_edger_deseq2 <- list()
gene_diff_edger_deseq2[["edger_diff_up"]] <- edger_diff_up
gene_diff_edger_deseq2[["edger_diff_down"]] <- edger_diff_down
gene_diff_edger_deseq2[["deseq2_diff_up"]] <- deseq2_diff_up
gene_diff_edger_deseq2[["deseq2_diff_down"]] <- deseq2_diff_down
2.进行通路富集分析

这里主要介绍普通的GO&KEGG&GSEA的简单富集。筛选显著富集通路的筛选条件也是根据自己的需求决定,一般是矫正后P值小于0.05。我这里是省事,写了各list循环。

for (i in 1:length(gene_diff_edger_deseq2)){
  keytypes(org.Hs.eg.db)
  
  entrezid_all = mapIds(x = org.Hs.eg.db,  
       
### R语言中的GO和KEGG富集分析 #### 数据准备 为了在R中执行GO和KEGG富集分析,数据通常需要经过预处理阶段。这涉及收集基因列表并将其转换成适合用于富集分析的形式。可以利用Excel来整理这些初步的数据文件[^1]。 #### 安装必要的 要开始GO和KEGG富集分析,在R环境中安装几个重要的库是必不可少的: ```r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(c("clusterProfiler", "org.Hs.eg.db")) ``` #### 加载所需的库 一旦上述被成功安装,下一步就是加载它们以便后续操作能够顺利进行: ```r library(clusterProfiler) library(org.Hs.eg.db) ``` #### 执行富集分析 下面是一个简单的例子展示如何使用`enrichGO()`函数来进行GO术语上的富集测试;对于KEGG路径,则可采用类似的逻辑调用相应的API接口如`enrichKEGG()`: ```r # 假设我们有一个差异表达基因(DEGs) ID 列表 deg_ids <- c("7089", "5643", ...) ego <- enrichGO(gene = deg_ids, universe = keys(org.Hs.eg.db, keytype="ENTREZID"), OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod= "BH", qvalueCutoff = 0.05) ekg <- enrichKEGG(gene = deg_ids, organism = 'hsa', pAdjustMethod= "BH", qvalueCutoff = 0.05) ``` 以上代码片段展示了基本的工作流程,其中含了设置参数以调整p值的方法(这里选择了Benjamini-Hochberg校正),以及指定显著性的阈值(q-value cutoff)。 #### 结果可视化 最后一步是对获得的结果进行解释和呈现。ClusterProfiler提供了多种绘图选项帮助理解所得结论: ```r dotplot(ego, showCategory=20) barplot(ego, showCategory=20) cnetplot(ego, categorySize='medium') ``` 通过这种方式,不仅可以直观地看到哪些生物过程受到了影响,还可以进一步探索不同类别之间的关系网络结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值