系列文章目录
文章目录
本期主讲内容——单细胞的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的值代表表达程度,颜色越深代表富集程度越高,表达越显著。