news 2026/4/23 20:48:38

GO和kEGG富集分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GO和kEGG富集分析
文章目录
  • 前言
  • 一、GO和KEGG
    • 1. **GO 富集分析:**
    • 2. KEGG 富集分析:
  • 二、使用步骤
    • 1.数据处理
    • 2. GO分析
    • 3.KEGG富集
  • 总结

前言

GO(Gene Ontology,基因本体)富集和 KEGG(Kyoto Encyclopedia of Genes and Genomes,京都基因与基因组百科全书)富集分析能够从不同角度揭示基因的功能和生物学意义


一、GO和KEGG

1.GO 富集分析:
  • 说明基因在分子功能(Molecular Function)、生物过程(Biological Process)和细胞组成(Cellular Component)三个方面的特征和倾向。
  • 帮助了解基因参与的具体生物学活动,例如基因是具有催化活性、结合能力,还是参与细胞分裂、信号转导等过程,以及在细胞的哪个部位发挥作用。
2. KEGG 富集分析:
  • 反映基因所参与的代谢通路、信号转导通路、疾病相关通路等。
  • 揭示基因在细胞整体的生化反应和生理过程中的协同作用和调控关系
  • 有助于理解基因在疾病发生发展、药物作用机制等方面的作用。

综合来看,GO 富集更侧重于基因功能的分类描述,而 KEGG 富集则更侧重于基因在生物系统中的通路级别的相互作用和调控。两者结合可以更全面深入地理解基因的功能和在生物学系统中的角色

二、使用步骤

1.数据处理
library(tidyverse) library(ggplot2) library(ggrepel) library(readxl) setwd('G:/R/TCGA/venn') # 这里的excel文档是之前TCGA差异分析得到的数据,主要用longFC,p值,FDR和基因名 COVIN_24_wpi_DEGs <- read_xlsx('long_CONVID_19_deg.xlsx',sheet='24 wpi DEGs') COVIN_24_wpi_DEGs <- data.frame(COVIN_24_wpi_DEGs$logFC,COVIN_24_wpi_DEGs$PValue,COVIN_24_wpi_DEGs$FDR,COVIN_24_wpi_DEGs$external_gene_name,COVIN_24_wpi_DEGs$ensembl_gene_id,COVIN_24_wpi_DEGs$description,row.names = COVIN_24_wpi_DEGs$external_gene_name) colnames(COVIN_24_wpi_DEGs) <- c('logFC','FDR','PValue','genename','gene_id','description') COVIN_24_wpi_DEGs$time <- c('24 w.p.i.') common_difference_gene_24_wpi <- read.csv('common_difference_gene_24_wpi.csv',row.names = 1) selected_data_24_wpi <- COVIN_24_wpi_DEGs[COVIN_24_wpi_DEGs$genename %in% t(common_difference_gene_24_wpi), ] threshold <- 0.3 selected_data_24_wpi$regulation <- ifelse(selected_data_24_wpi$logFC > threshold, "Up-Regulated", ifelse(selected_data_24_wpi$logFC < -threshold, "Down-Regulated", ifelse(abs(selected_data_24_wpi$logFC) < threshold, "NotSig", "Unknown"))) # 获取上下调基因 top <- 100 top_genes_24_wpi <- bind_rows( selected_data_24_wpi %>% filter(regulation == 'Up-Regulated') %>% arrange(desc(abs(logFC))) %>% head(top) ) bottom_genes_24_wpi <- bind_rows( selected_data_24_wpi %>% filter(regulation == 'Down-Regulated') %>% arrange(desc(abs(logFC))) %>% head(top) ) # 保存数据之后方便之后的通路分析 library(openxlsx) dir.create('differential gene/result/24_wpi/data_100') write.xlsx(selected_data_24_wpi,'./differential gene/result/24_wpi/data_100/data_24_wpi.xlsx',rowNames = TRUE) write.xlsx(top_genes_24_wpi,'./differential gene/result/24_wpi/data_100/top_genes_24_wpi.xlsx',rowNames = TRUE) write.xlsx(bottom_genes_24_wpi,'./differential gene/result/24_wpi/data_100/bottom_genes_24_wpi.xlsx',rowNames = TRUE)
2. GO分析
setwd('G:/R/TCGA/venn/differential gene') library(clusterProfiler) # 这里org.Hs.eg.db需要通过BiocManager包进行下载,如果多次尝试下载不成功的恶化,可以先更改镜像源,之后再尝试下载 # options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor") # BiocManager::install('org.Hs.eg.db') library(org.Hs.eg.db) library(ggplot2) library(readxl) # 读取数据 upgene <- read_xlsx('./result/24_wpi/data_100/up_genes_24_wpi.xlsx') rownames(upgene) <- upgene$...1 Genes <- bitr(rownames(upgene), fromType = 'SYMBOL', toType = c('ENTREZID'), OrgDb = org.Hs.eg.db) # GO富集分析和结果存储 GO <- enrichGO(gene = Genes$ENTREZID, # 输入基因的ENTREZID OrgDb = org.Hs.eg.db, # 注释信息 keyType = 'ENTREZID', ont = 'ALL',# 可选条目BP/CC/MF pAdjustMethod = 'BH',# p值的校正方式 qvalueCutoff = 1,# q的阈值 pvalueCutoff = 1, # p的阈值 minGSSize = 5, maxGSSize = 500, readable = TRUE # 是否将ENTREZID转换为symbol ) dir.create('./result/24_wpi/up_100') write.csv(data.frame(ID=rownames(GO@result),GO@result),'./result/24_wpi/up_100/up_genes_24_wpi_GO.csv') # 柱状图 pdf(file = './result/24_wpi/up_100/up_genes_24_wpi_GO_barplot.pdf',width = 10,height = 8) barplot(GO,drop=TRUE, showCategory = 6, split='ONTOLOGY') + facet_grid(ONTOLOGY~.,scales = 'free') dev.off() # 点图 pdf(file = './result/24_wpi/up_100/up_genes_24_wpi_GO_dotplot.pdf',width = 10,height = 8) dotplot(GO,showCategory=6, split='ONTOLOGY')+ facet_grid(ONTOLOGY~.,scales = 'free') dev.off() # 不分面 pdf(file = './result/24_wpi/up_100/up_genes_24_wpi_GO_dotplot_nosplit.pdf',width = 10,height = 8) dotplot(GO, x='GeneRatio', color='p.adjust', showCategory=15, size=NULL, split=NULL, font.size=13, title='', orderBy='x', label_format=30) dev.off()

3.KEGG富集
KEGG <- enrichKEGG(Genes$ENTREZID, organism = 'hsa', keyType = 'kegg',# kegg数据库 pAdjustMethod = 'BH', pvalueCutoff = 1, qvalueCutoff = 1) pdf(file = './result/24_wpi/up_100/up_genes_24_wpi_KEGG.pdf',width = 10,height = 8) barplot(KEGG, x='GeneRatio', color='p.adjust', showCategory=15) dev.off() pdf(file = './result/24_wpi/up_100/up_genes_24_wpi_KEGG_dotplot.pdf',width = 10,height = 8) dotplot(KEGG) dev.off() # View(as.data.frame(KEGG)) # 以数据框的形式展示KEGG的结果 # browseKEGG(KEGG,'hsa03010') # 打开KEGG官网查看相关通路的信息 # 结果存储 KEGG_results <- DOSE::setReadable(KEGG, OrgDb = org.Hs.eg.db, keyType = 'ENTREZID') write.csv(data.frame(ID=rownames(GO@result),GO@result),'./result/24_wpi/up_100/up_genes_24_wpi_KEGG.csv')


总结

图片很多,这里就不再一一展示了,有兴趣的朋友可以自己常以跑一下,了解一下它们之间的区别,需要数据的话私我领取!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:18:20

基于微信小程序的新能源汽车租赁换电管理系统(毕设源码+文档)

课题说明本课题聚焦基于微信小程序的新能源汽车租赁换电管理系统的设计与实现&#xff0c;核心目标是解决传统新能源汽车租赁及换电服务中流程繁琐、车辆与换电站信息不透明、租赁订单管理混乱、换电预约低效、电池状态监控缺失及服务进度追踪困难等痛点问题。系统深度依托微信…

作者头像 李华
网站建设 2026/4/23 9:17:33

基于Python的智能房价分析与预测系统设计-计算机毕业设计源码+LW文档

摘 要 房地产市场一直在发展&#xff0c;房价问题引起社会广泛关注。分析房价很重要&#xff0c;购房者需要这些信息&#xff0c;投资者需要这些数据&#xff0c;房地产企业也需要参考这些结果。传统房价分析方法存在不足&#xff0c;主要依靠个人经验&#xff0c;使用数据量较…

作者头像 李华
网站建设 2026/4/23 9:18:27

微信小程序 PHP_uniapp的共享停车场系统_4s3tl42j

目录系统概述核心功能技术架构创新亮点应用价值项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理系统概述 微信小程序 PHP_uniapp共享停车场系统是一款基于微信平台的智能停车解决方案&#xff0c;旨在解决城市停车难问题。系统采用PHP后端和Uniap…

作者头像 李华