单细胞测序流程(九)单细胞的GO圈图

本文介绍了如何使用R语言和GOplot包创建单细胞测序的GO圈图,展示了基因与GO术语之间的关系,通过logFC值揭示基因表达程度和富集显著性。通过圈图,读者可以直观理解单细胞测序数据的GO富集分析结果。

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

系列文章目录


本期主讲内容——单细胞的GO圈图

咱们在上一个课程中进行了GO富集分析,但是我们无法看到基因在GOterm的富集情况,也无法看到GOterm之间的关系


提示:以下是本篇文章正文内容,下面案例可供参考

一、课前准备

之前所使用的数据(上个课程中运行结果这就是在所需的数据:id.txt与go.txt)

R语言的IDE

二、过程

将准备数据和脚本放在一起,直接运行R的脚本即可,

#install.packages("digest")
#install.packages("GOplot")

library(GOplot)
setwd("文件所在的目录")              #设置工作目录

ego=read.table("GO.txt", header = T,sep="\t",check.names=F)      #读取GO富集结果文件
go=data.frame(Category = "All",ID = ego$ID,Term = ego$Description, Genes = gsub("/", ", ", ego$geneID), adj_pval = ego$p.adjust)

#读取基因的logFC文件
id.fc <- read.table("id.txt", header = T,sep="\t",check.names=F)
genelist <- data.frame(ID = id.fc$gene, logFC = id.fc$avg_logFC)
row.names(genelist)=genelist[,1]

circ <- circle_dat(go, genelist)
termNum = 3                                     #限定term数目
geneNum = nrow(genelist)                        #限定基因数目

chord <- chord_dat(circ, genelist[1:geneNum,], go$Term[1:termNum])
pdf(file="circ.pdf",width = 11,height = 10.5)
GOChord(chord, 
        space = 0.001,           #基因之间的间距
        gene.order = 'logFC',    #按照logFC值对基因排序
        gene.space = 0.25,       #基因名跟圆圈的相对距离
        gene.size = 5,           #基因名字体大小 
        border.size = 0.1,       #线条粗细
        process.label = 6)       #term字体大小
dev.off()

termCol <- c("#223D6C","#D20A13","#FFD121","#088247","#58CDD9","#7A142C","#5D90BA","#431A3D","#91612D","#6E568C","#E0367A","#D8D155","#64495D","#7CC767")
pdf(file="cluster.pdf",width = 15,height = 10)
GOCluster(circ.gsym, 
          go$Term[1:termNum], 
          lfc.space = 0.2,                   #倍数跟树间的空隙大小
          lfc.width = 1,                     #变化倍数的圆圈宽度
          term.col = termCol[1:termNum],     #自定义term的颜色
          term.space = 0.2,                  #倍数跟term间的空隙大小
          term.width = 1)                    #富集term的圆圈宽度
dev.off()          

三、结果

 从图就可以看出,基因和各个GO之间的关系,图的下方可以看到每个GO的颜色,logFC的值代表基因的表达程度,颜色越深代表富集程度越高,表达成都越高越显著。

 图的下方可以看到每个GO的颜色,里面的环为基因,基因在哪里就代表那个GO里有这个基因,比如说有一个基因在三个颜色的环下面,则代表在三个GO中都有,logFC的值代表表达程度,颜色越深代表富集程度越高,表达越显著。

四、结尾


因为这次的结果很多取决于之前的数据,所以必须要把上一节课的内容也要用到,所以要保证之前所得到结果无误才可以​。
单细胞测序流程(九)单细胞的GO圈图到这里就已结束了
下一章会讲解kegg富集分析和kegg的圈图的绘画(最后一个课程了)
我所做的所有分析与教程的代码都会在我的个人公众号中,请打开微信搜索“生信学徒”进行关注,欢迎生信的研究人员和同学前来讨论分析。
ps:公众号刚刚建立比较简陋,但是该有的内容都不会少。

 

### 单细胞测序GO功能富集分析的R语言代码示例 以下是一个完整的单细胞测序数据进行GO功能富集分析的R语言代码示例。该代码基于Seurat对象,提取基因表达矩阵后,使用`clusterProfiler`包完成GO富集分析。 ```r # 加载必要的R包 library(Seurat) # 单细胞数据分析工具 library(clusterProfiler) # 富集分析工具 library(org.Mm.eg.db) # 鼠类基因注释数据库 library(dplyr) # 数据处理工具 library(ggplot2) # 可视化工具 # 假设已经有一个Seurat对象名为 'sobj',并且已经完成了聚类分析 # 提取特定细胞群的基因表达矩阵 cell_group <- Idents(sobj) == "Cluster_of_Interest" # 替换为感兴趣的细胞群 sub_sobj <- subset(sobj, subset = cell_group) # 提取差异表达基因 diff_genes <- FindMarkers(sub_sobj, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25) top_genes <- rownames(diff_genes)[1:50] # 选择前50个差异表达基因 # 将基因符号转换为Entrez ID gene_list <- bitr(top_genes, fromType = "SYMBOL", toType = "ENTREZID", OrgDb = org.Mm.eg.db) # 使用clusterProfiler进行GO富集分析 ego <- enrichGO(gene = gene_list$ENTREZID, universe = rownames(sub_sobj@assays$RNA@data), OrgDb = org.Mm.eg.db, ont = "BP", # 分析生物学过程(BP),也可以选择 "MF" 或 "CC" pAdjustMethod = "BH", pvalueCutoff = 0.05, qvalueCutoff = 0.2) # 可视化结果 dotplot(ego) + ggtitle("GO Biological Process Enrichment") barplot(ego) + ggtitle("Top GO Terms in Biological Process") ``` ### 说明 - 差异表达基因的提取基于`FindMarkers`函数[^2],该函数用于识别特定细胞群中的高表达基因。 - `bitr`函数将基因符号转换为Entrez ID格式,这是`clusterProfiler`包要求的输入格式[^3]。 - `enrichGO`函数执行GO富集分析,支持三种本体论:生物学过程(BP)、分子功能(MF)和细胞组分(CC)[^4]。 - 结果通过`dotplot`和`barplot`函数可视化,分别生成点和柱状以展示富集结果。 ### 注意事项 - 确保安装了所有必需的R包,可以通过以下命令安装: ```r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(c("clusterProfiler", "org.Mm.eg.db")) install.packages(c("Seurat", "dplyr", "ggplot2")) ``` - 如果分析的是人类数据,需将`org.Mm.eg.db`替换为`org.Hs.eg.db`。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值