富集分析go/kegg

GO和KEGG富集方法以及简单富集图的绘制


一、需要准备文件:

基因列表(可以是差异分析的结果文件或者取交集的交集基因等,有标志的基因Symbol名称即可),测试文件为DEG_result.csv

DEG_result.csv

1)这个DEG(差异表达基因)表格包含了基因的统计分析结果。各列的含义如下:

- logFC:对数转换的折叠变化(log Fold Change)。表示某基因在实验组与对照组之间的表达变化量。值为负表示基因在实验组的表达水平低于对照组,值为正则表示实验组中该基因的表达高于对照组。在这个表格中,KLF9、CEBPD和SLC19A2都是负值,意味着这些基因在实验组中的表达低于对照组。

- AveExpr:平均表达值(Average Expression)。表示该基因在所有样本中的平均表达水平。数值越大,表示该基因的表达水平越高。例如,KLF9的平均表达为5.34,说明它在样本中的表达水平较高。

- t:t值,表示差异表达基因的统计显著性。t值越大(无论是正值还是负值),表示该基因在两组间的差异越显著。在这个表格中,KLF9的t值为-17.49,说明它的表达差异非常显著。

- pvalue:P值,用于评估该基因差异表达的统计显著性。P值越小,表示该基因的差异表达越显著。例如,KLF9的P值为2.12E-14,远小于0.05,说明该基因的差异表达具有极高的显著性。

- padj:调整后的P值,通常使用Benjamini-Hochberg(BH)方法或其他方法来校正多重假设检验带来的假阳性率。padj值越小,表示差异表达结果越可靠。KLF9的padj值为2.59E-10,表示即使考虑到多个假设检验,该基因的差异表达依然是非常显著的。

- B:贝叶斯统计量(B-statistic)。这是一种基于贝叶斯模型的评估标准,反映了基因是否有显著的差异表达。数值越大,表示该基因的差异表达越可信。例如,KLF9的B值为22.25,说明它的差异表达显著且可信。

总结:

① logFC:表示基因在两组之间的表达差异,负值表示实验组中的表达低于对照组。

② AveExpr:基因的平均表达水平。

③ t:差异的统计显著性,t值越大表示差异越显著。

④ pvalue:P值,表示差异表达的统计显著性。

⑤ padj:多重检验调整后的P值,控制假阳性率。

⑥ B:贝叶斯统计量,反映差异表达的可信度。


二、KEGG 富集分析,并生成三个图形:条形图、气泡图和小弦图。

1.KEGG 富集分析

说明如下

① R.utils::setOption("clusterProfiler.download.method", "auto"):该选项指定了下载 KEGG 注释时使用的方式。"auto" 表示自动选择合适的下载方式。

② enrichKEGG():使用 clusterProfiler 包的 enrichKEGG 函数进行 KEGG 富集分析。它基于给定的基因集,计算这些基因在 KEGG 通路中的富集程度。

③ gene = Gene$ENTREZID:Gene$ENTREZID 应该是你基因数据框中的基因 ID 列,这里是 ENTREZ ID。

④ organism = 'hsa':选择物种为人类(hsa 表示 Homo sapiens)。

⑤ keyType = 'kegg':指定输入的基因 ID 类型是 KEGG ID。

⑥ pvalueCutoff = 0.05:设置 p 值的阈值为 0.05。

⑦ qvalueCutoff = 0.2:设置 q 值的阈值为 0.2。

⑧ pAdjustMethod = 'BH':选择 Benjamini-Hochberg 方法对 p 值进行调整,以减少假阳性。

在运行时,enrichKEGG() 会从 KEGG 数据库在线下载相关注释数据,输出一个 enrichResult 对象,存储 KEGG 富集分析的结果。

2、将结果设置为可读格式

① setReadable(kegg, 'org.Hs.eg.db', 'ENTREZID'):这个步骤将富集结果中的基因 ID 转换为人类基因符号(gene symbols)。org.Hs.eg.db是Bioconductor提供的数据库,包含了关于人类基因的信息,ENTREZID是转换前的基因 ID 类型。

3、查看富集分析结果的条目数,并保存文件

① nrow(kegg):查看 KEGG 富集结果中有多少个条目。这将返回富集结果的通路数量。

4、绘制 KEGG 条形图

① pdf(file = "fig4.KEGG_barplot.pdf", width = 6.8, height = 7.2):在生成一个 PDF 文件来保存图形,图形的宽度和高度分别为 6.8 和 7.2。

② barplot():使用 clusterProfiler 包中的 barplot() 函数来绘制富集结果的条形图。

③ kegg:输入的 KEGG 富集分析结果。

④ title = '':去除标题,你可以自定义标题。

⑤ color = 'p.adjust':条形图的颜色依据 p 值调整。

⑥ showCategory = 15:显示前 15 个富集通路。

⑦ font.size = 12:条目字体大小设置为 12。

⑧ scale_y_discrete(labels = function(y) stringr::str_wrap(y, width = 45)):通过 stringr::str_wrap() 函数设置 Y 轴标签的换行,使得每个标签最多显示 45 个字符,以防止标签过长。

5、绘制 KEGG 气泡图

说明

① dotplot():使用 clusterProfiler 包中的 dotplot() 函数绘制 KEGG 富集分析的气泡图。

② showCategory = 15:显示前 15 个富集通路。

③ font.size = 12:字体大小。

④ label_format = 40:控制标签的宽度,避免标签过长。

⑤ color = 'p.adjust':设置颜色根据 p 值调整。

⑥ scale_y_discrete(labels = function(y) stringr::str_wrap(y, width = 45)):同样设置 Y 轴标签的换行,以保证标签的显示效果。

6、绘制 KEGG 小弦图

说明

① cnetplot():使用 clusterProfiler 包中的 cnetplot() 函数绘制 KEGG 富集分析的小弦图(circle network plot)。该图展示了 KEGG 通路中的基因与通路之间的关系。

② showCategory = 6:显示前 6 个富集通路。

③ circular = TRUE:设置为圆形布局。

④ colorEdge = TRUE:边缘使用颜色表示。

⑤ node_label = "category":节点标签为类别。

⑥ cex_gene = 1 和 cex_label_category = 1:设置基因节点和类别标签的大小。

7、可视化结果

气泡图
柱状图


小弦图

三、GO 富集分析,并生成三个图形:条形图、气泡图和小弦图。

1、安装包,并载入数据

2、保存结果

3、可视化绘图

条形图
气泡图和小弦图

4、结果


表格


图形

生物信息学领域非常广泛,难以一次说尽。我们下次继续更新,一起深入学习生物信息学的内容!

喜欢的宝子们点个赞吧~码字不易,且行且珍惜~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容