给定基因集gene list后,R语言GO、KEGG分析

本文介绍了一套完整的基因列表GO与KEGG富集分析流程,包括基因ID转换、GO富集分析及可视化、KEGG通路富集分析及绘图等关键步骤。

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

一.把准备好的gene名字复制到txt文件中(此时是symbol格式的gene名,如下,得到gene.txt

二.安装所需包

if (!requireNamespace("BiocManager", quietly = TRUE))   
install.packages("BiocManager")
BiocManager::install("clusterProfiler")
library(clusterProfiler)
BiocManager::install("AnnotationHub")
library(AnnotationHub) 
BiocManager::install("org.Hs.eg.db")
library(org.Hs.eg.db)   
library(ggplot2)
BiocManager::install("DOSE")
library(DOSE)

三.ID转换


#1 读取第一步中的txt文件
go_ythdf2 <- read.table("gene.txt",sep=" ")#读取
go_ythdf2 <- t(go_ythdf2)#从列 变为行
#2 读取db包
keytypes(org.Hs.eg.db)
#3 将gene_symbol转换为ENSEMBL
go_ythdf2_id_trance <- bitr(go_ythdf2,fromType = "SYMBOL",toType = "ENSEMBL",OrgDb = "org.Hs.eg.db",drop = T)
#4 提取ENSEMBL的信息
f <- as.data.frame(go_ythdf2_id_trance[,2])
colnames(f)[1] <- ''
colnames(f) <- "V1"
EG2Ensembl=toTable(org.Hs.egENSEMBL)
f=f$V1  
geneLists=data.frame(ensembl_id=f)
results=merge(geneLists,EG2Ensembl,by='ensembl_id',all.x=T)
id=na.omit(results$gene_id)

四.GO分析

#1 GO分析
All <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "ALL",  readable= TRUE) 
save(All,file = 'All.rda')
#如果要单独绘制BP,CC,MF,把ont="ALL"修改成自己想要的类型即可

#2 画图,气泡图

#2.1 气泡图,显示前10项,标题为“Enrichment GO Up-Gene”
dotplot(All,showCategory=10,title="Enrichment GO Up-Gene")+
  scale_color_gradient(low = "red", high = "blue")+
  theme_bw() 

#2.2 柱状图,显示前20项,标题为“Enrichment GO Top20”
barplot(All, showCategory=20,title="EnrichmentGO")  

# 2.3 BP,MF,CC分别显示(要加载DOSE包)
p1 <- dotplot(All,split="ONTOLOGY",title="Enrichment GO Up-Gene")+ facet_grid(ONTOLOGY~.,scale="free")+
  theme_bw()
p1
ggsave('GO.pdf',p1,width = 8,height = 10)

# 只显示8个通路
# p3 <- dotplot(All,split="ONTOLOGY",showCategory=8,title="Enrichment GO Up-Gene")+ facet_grid(ONTOLOGY~.,scale="free")+
#   theme_bw()
# p3
# ggsave('GO8.pdf',p3,width = 8,height = 10)

#三个单独出图
BP <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "BP",  readable= TRUE) 
p10 <- dotplot(BP,showCategory=10,title="Enrichment GO Up-Gene-BP")+
  scale_color_gradient(low = "red", high = "blue")+
  theme_bw() 
ggsave('BF10.pdf',p10,width = 8,height = 6)

MF <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "MF",  readable= TRUE) 
p12 <- dotplot(MF,showCategory=10,title="Enrichment GO Up-Gene-MF")+
  scale_color_gradient(low = "red", high = "blue")+
  theme_bw() 
ggsave('MF10.pdf',p12,width = 8,height = 6)

CC <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "CC",  readable= TRUE) 
p14 <- dotplot(CC,showCategory=10,title="Enrichment GO Up-Gene-CC")+
  scale_color_gradient(low = "red", high = "blue")+
  theme_bw() 
ggsave('CC10.pdf',p14,width = 8,height = 6)

 

 

 

 五、KEGG分析

#1KEGG分析
KEGG <- enrichKEGG(gene= id, organism  = 'hsa', pvalueCutoff = 0.05) 
#2 画图,第一种做法,气泡图,设置字体大小
dotplot(KEGG,font.size=12)
#3 画图,第二种做法,柱状图
barplot(KEGG,font.size=8) 
#4 画图,第三种做法,泡泡图
dotplot(KEGG,showCategory=10,title="Enrichment KEGG Top10") 
#4.1 调节标题,字体,泡泡大小
p2 <- dotplot(KEGG, font.size=8, showCategory=10, title="Enrichment KEGG Top10") + scale_size(rang=c(5.20))
p2
ggsave('KEGG10.pdf',p2,width = 6,height = 6)

这样分析就结束啦,放上gene list练手

链接:https://pan.baidu.com/s/1wlwV6ItpLx_oIJzypI2crQ
提取码:mr4o

### 回答1: GSEA(基因分析)是一种常用的生物信息学分析方法,用于研究基因基因表达谱中的富情况。下面是使用R语言进行GSEA生信分析的代码示例: 1. 首先,需要安装和加载必要的R包,例如GSEA包和其他必要的依赖包。 ```R install.packages("GSEA") library(GSEA) ``` 2. 加载基因表达数据,通常是一个包含基因表达矩阵的数据文件。假设文件名为"expression_data.txt",其中包含基因表达矩阵和对应的样本信息。 ```R expression_matrix <- read.table("expression_data.txt", header = TRUE) ``` 3. 定义基因,可以是预定义的基因数据库(例如MSigDB)中的基因,也可以是自定义的基因。 ```R gene_sets <- c("GO_Biological_Process", "KEGG_Pathways", "Custom_Gene_Set") ``` 4. 进行GSEA分析,使用`gsea()`函数。其中,`gene_expr_matrix`参数为基因表达矩阵,`gene_sets`参数为基因,`class_vector`参数为样本类别信息向量。 ```R gsea_results <- gsea(gene_expr_matrix = expression_matrix, gene_sets = gene_sets, class_vector = sample_classes) ``` 5. 分析结果包括富分数(Enrichment Score)、正负富基因和富图谱等。可以通过可视化方法进一步探索和解释这些结果。 ```R enrichment_score <- gsea_results$es positive_sets <- gsea_results$pos_sets negative_sets <- gsea_results$neg_sets gene_set_plot <- plot(gsea_results) ``` 以上是使用R语言进行GSEA生信分析的基本代码示例。根据具体的研究问题和分析目标,还可以进行更多的数据预处理和可视化分析。 ### 回答2: GSEA(Gene Set Enrichment Analysis)是一种生物信息学分析工具,可用于确定基因给定基因表达数据中的富程度。下面是R语言中实现GSEA分析的示例代码。 首先,需要安装并加载GSEABase、clusterProfiler和enrichplot等相关的R包。 ```R install.packages("GSEABase") install.packages("clusterProfiler") install.packages("enrichplot") library(GSEABase) library(clusterProfiler) library(enrichplot) ``` 接下来,准备基因表达数据和基因数据。假设基因表达数据保存在一个矩阵中,行表示基因,列表示样本;基因数据保存在GMT格式文件中,每行包含一个基因的名称、描述和基因列表。 ```R expression_data <- read.table("expression_data.txt", header = TRUE, row.names = 1) gmt_file <- system.file("extdata", "c2.cp.kegg.v7.4.symbols.gmt", package = "DOSE") gene_sets <- readGMT(gmt_file) ``` 然后,进行GSEA分析。可以选择使用差异表达基因列表作为输入,或者将基因表达数据与基因数据一起传递。以下是基于基因表达数据进行GSEA分析的示例。 ```R gene_rank <- computeGeneRank(expression_data, method = "t.test") result <- enrichGSEA(gene_sets, gene_rank) ``` 最后,可以使用enrichplot包中的函数绘制GSEA结果的可视化,例如绘制富图和基因热图。 ```R dotplot(result, showCategory = 20) gene_heatmap(result, top = 10) ``` 通过这些代码,我们可以使用R语言实现GSEA生信分析,从而确定基因给定基因表达数据中的富程度,并可视化展示分析结果。 ### 回答3: GSEA (基因分析) 是一种用于分析生物学实验数据的生物信息学工具,它可以确定在给定条件下,特定基因中的基因与实验结果相关性的显著性。下面是一个用R语言进行GSEA生信分析的代码示例: 1. 导入所需的R包。 ```R library(clusterProfiler) ``` 2. 导入基因表达数据。 ```R expression_data <- read.table("expression_data.txt", header = TRUE, sep = "\t") ``` 3. 根据实验分组信息创建一个分组向量。 ```R group <- c(rep("Group A", 3), rep("Group B", 3)) ``` 4. 根据基因的符号名称创建一个基因符号向量。 ```R gene_symbols <- c("Gene1", "Gene2", "Gene3", "Gene4", "Gene5", "Gene6") ``` 5. 创建一个基因对象。 ```R gene_set <- list( GroupA_genes = c("Gene1", "Gene2", "Gene3"), GroupB_genes = c("Gene4", "Gene5", "Gene6") ) ``` 6. 运行GSEA分析。 ```R gsea_result <- gseGO(expression_data, geneSet = gene_set, nPerm = 1000, minGSSize = 3, maxGSSize = 500, pvalueCutoff = 0.05) ``` 7. 查看GSEA结果。 ```R print(gsea_result) ``` 这段代码中,首先导入了clusterProfiler包,它包含了进行GSEA分析所需的函数。然后,基因表达数据被读入到一个名为expression_data的数据框中。接下来创建了一个分组向量,它指定了每个样品所属的实验组。然后,基因符号向量被创建,其中包含了基因的符号名称。根据实验组信息和基因符号,一个基因对象被创建。最后,调用gseGO函数运行GSEA分析,其中包括参数,如基因、置换次数、最小/最大基因大小和显著性阈值。最后,打印GSEA分析的结果。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

18kkk

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

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

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

打赏作者

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

抵扣说明:

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

余额充值