如何快速理解GO富集结果?
今天是生信星球陪你的第475天
大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~
就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~
这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!
豆豆写于19.10.24
一篇很短的推文,来说明GO注释的结果
前言
我们应该都做过基因功能注释,但是你有没有好奇其中的统计数值怎么得到的呢?
我们使用GO注释的R包做出来的结果一般是长这样:

其中重点是这几个数字
看第一行:
-
背景基因是20000多个,其中属于这个GO通路的有256个基因;
-
然后C1这个cluster这里总共得到的差异基因是1236个,其中属于这个GO通路的是66个
那么怎么证明呢?
以第一个GO:0140014为例
首先获得GO:0140014中的基因 =》 256个
因为这是小鼠的注释结果,所以先加载它的物种注释包
library(org.Mm.eg.db)
# 结果有3百多万条GO注释信息
go2gene <- toTable(org.Mm.egGO2ALLEGS)

其实看到里面的基因ID存在重复,一个go_id
会对应多个同样的gene_id
,那么就要去重复,获取unique gene id
uni_gene <- unique(go2gene$gene_id[go2gene$go_id == 'GO:0140014'])
> length(uni_gene)
[1] 256
结果和👆的BgRatio
中记录的一致
然后拿到C1的差异基因 =》 1284个
这里的C1指的是第一群细胞中的差异基因(上图中除了这个C1还有C2、C3、C4,表示不同类群的细胞),这个可以不用管,只要知道它是一个分类就可以
# 这一行代码不能运行,只是为了说明上面图中的C1
c1_genes <- list_de_gene_clusters[['C1']]
> length(c1_genes)
[1] 1284
看到这里也是1000多个,不过和上面表格中得到的1236差了几十个基因,这也就说明了存在几十个基因没有GO注释
找Cluster1在GO:0140014中的基因 =》 66个
其实就是找c1_genes
和go2gene
的交集
overlap_genes <- intersect(c1_genes,uni_gene)
> length(overlap_genes)
[1] 66
这个值就是对应上面GO通路的66个基因
点击底部的“阅读原文”,获得更好的阅读体验哦😻
初学生信,很荣幸带你迈出第一步
🤓生信星球 🌎~ 一个不拽术语、通俗易懂的生信知识平台
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!