全网最详细单细胞保姆级分析教程(五) --- 细胞富集

1. 准备工作

if (!requireNamespace("BiocManager", quietly = TRUE))   
  install.packages("BiocManager")
.libPaths("E:\\R\\test\\packaged") # 设置包的安装位置
rm(list = ls())

library(BiocManager)
BiocManager::install('GO.db')
library(GO.db)
BiocManager::install('GenomeInfoDbData')
library(GenomeInfoDbData)
BiocManager::install('HDO.db')
library(HDO.db)
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)

2. ID转换

go_ythdf2 <- read.table("gene.txt",sep=" ")#读取
go_ythdf2 <- t(go_ythdf2)#从列 变为行

请添加图片描述

3. 将gene_symbol转化成ENSEMBL

# 读取db包键值
keytypes(org.Hs.eg.db)
#  [1] "ACCNUM"       "ALIAS"        "ENSEMBL"      "ENSEMBLPROT"  "ENSEMBLTRANS"
#  [6] "ENTREZID"     "ENZYME"       "EVIDENCE"     "EVIDENCEALL"  "GENENAME"    
# [11] "GENETYPE"     "GO"           "GOALL"        "IPI"          "MAP"         
# [16] "OMIM"         "ONTOLOGY"     "ONTOLOGYALL"  "PATH"         "PFAM"        
# [21] "PMID"         "PROSITE"      "REFSEQ"       "SYMBOL"       "UCSCKG"  
# 查看有效键值
keys(org.Hs.eg.db, keytype = "SYMBOL")

# 将gene_symbol转换为ENSEMBL
# go_ythdf2 <- go_ythdf2 %>% top_n(n=-100,wt=p_val_adj) %>% rownames()
go_ythdf2_id_trance <- bitr(go_ythdf2,fromType = "SYMBOL",toType = "ENSEMBL",OrgDb = "org.Hs.eg.db",drop = T)

# 提取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)

请添加图片描述

4. 富集

4.1 GO富集
# ont = "ALL":指定进行所有三个ontology(生物过程、分子功能和细胞组成)的富集分析
ALL<- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "ALL",  readable= TRUE) 
BP<- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "BP",  readable= TRUE) 
CC<- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "CC",  readable= TRUE) 
MF<- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "MF",  readable= TRUE) 
write.csv(ALL@result ,file="GO A11 .csv")
write.csv(BP@result ,file="GO BP .csv")
write.csv(CC@result ,file="GO CC .csv")
write.csv(MF@result ,file="GO MF .csv")
4.1.1 气泡图
# showCategory=15 表示显示前 15 个富集的类别
dotplot(BP,showCategory=15,title="Enrichment GO Up-Gene")+
  scale_color_gradient(low = "red", high = "blue")+ # scale_color_gradient(low = "red", high = "blue"):设置点的颜色渐变,从红色到蓝色。
  theme_bw() # theme_bw():应用 bw 主题,使图形具有简洁的黑白背景

# 通过执行这行代码,将绘制一个点图,其中 x 轴表示富集的类别,y 轴表示富集的显著性(通常是富集得分或 p 值)。点的大小表示基因的数量,颜色表示富集的程度(根据设置的颜色渐变)

请添加图片描述

4.1.2 柱状图
barplot(ALL, showCategory=10,title="EnrichmentGO")

请添加图片描述

4.1.3 BP,MF,CC分别显示(要加载DOSE包)

请添加图片描述

4.1.4 按ONTOLOGY分离
dotplot(ALL,split="ONTOLOGY", # split="ONTOLOGY" 表示按照 ontology 进行分类
        showCategory=5, # 表示显示前 5 个富集的类别
        title="Enrichment GO DOWN-Gene")+
		facet_grid(ONTOLOGY~.,scale="free")+ # 使用 facet_grid 函数将点图按照 ontology 进			行分面显示,ONTOLOGY~. 表示按照 ONTOLOGY 列进行分面,scale="free" 表示每个分面的坐标轴刻		 度可以自由调整
  theme_bw() # 应用 bw 主题,使图形具有简洁的黑白背景

# 通过执行这行代码,将绘制一个点图,其中 x 轴表示富集的类别,y 轴表示富集的显著性(通常是富集得分或 p 值)。每个点代表一个基因,点的大小表示基因的数量。不同的 ontology 会在不同的分面中显示。

请添加图片描述

4.2 KEGG分析
KEGG <- enrichKEGG(gene= id, 
                   organism  = 'hsa', # 指定物种,这里是人类('hsa')
                   pvalueCutoff = 0.05) # 设置显著性阈值,只有 p 值小于或等于该阈值的通路才会被					 认为是显著富集的,执行这行代码后,将返回一个包含 KEGG 通路富集结果的对象。你可以				   进一步处理和分析这个结果,例如绘制图表、提取相关信息等。
4.2.1 气泡图
dotplot(KEGG,font.size=12)

请添加图片描述

4.2.2 柱状图
barplot(KEGG,font.size=16) 

请添加图片描述

4.2.3 泡泡图
dotplot(KEGG,showCategory=10,title="Enrichment KEGG Top10") 
dotplot(KEGG, font.size=8, showCategory=10, title="Enrichment KEGG Top10") + scale_size(rang=c(5.20)) # 设置点的大小范围为 5 到 20。

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

莘薪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值