GO的概念及用R做簡單的富集分析
爾云間? 一個(gè)專門做科研的團(tuán)隊(duì)
? ?

富集分析基因本體數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的標(biāo)準(zhǔn)生物學(xué)模型,旨在建立基因及其產(chǎn)物知識的標(biāo)準(zhǔn)詞匯體系。舉個(gè)簡單的例子,隨機(jī)在中國挑出10000個(gè)人,這些人會有什么特征呢?如果按照男女劃分,可以劃分兩大類,那如果按照省份劃分則又可以劃分34個(gè)大類,那如果按照高矮胖瘦劃分呢?你又會劃分到哪一類,會像小果一樣人見人愛么。
基因的劃分也是如此,根據(jù)其不同的分類我們將他們劃分為三大類:
細(xì)胞組分(cellular component)
分子功能(molecular function)
生物學(xué)過程(biological process)

Cellular component解釋的是基因存在在哪里,在細(xì)胞質(zhì)還是在細(xì)胞核?如果存在細(xì)胞質(zhì)那在哪個(gè)細(xì)胞器上?如果是在線粒體中那是存在線粒體膜上還是在線粒體的基質(zhì)當(dāng)中?這些信息都叫Cellular component。
Biological process是在說明該基因參與了哪些生物學(xué)過程,比如,它參與了rRNA的加工或參與了DNA的復(fù)制,這些信息都叫Biological process
Molecular function在講該基因在分子層面的功能是什么?它是催化什么反應(yīng)的?

差異基因GO分析
差異基因GO分析的關(guān)鍵是用統(tǒng)計(jì)學(xué)方法進(jìn)行基因富集,分析這些基因參與了何種生物學(xué)功能、生物進(jìn)程以及亞細(xì)胞定位,目前常用的基因富集分析法是基于超幾何分布,用Fisher精確檢驗(yàn)或卡方檢驗(yàn)完成。
? 蛋白質(zhì)或者基因可以通過ID對應(yīng)或者序列注釋的方法找到與之對應(yīng)的GO號,而GO號可對應(yīng)到Term,即功能類別或者細(xì)胞定位。
? 功能富集分析: 功能富集需要有一個(gè)參考數(shù)據(jù)集,通過該項(xiàng)分析可以找出在統(tǒng)計(jì)上顯著富集的GO Term。
? GO功能分類是在某一功能層次上統(tǒng)計(jì)蛋白或者基因的數(shù)目或組成,往往是在GO的第二層次。此外也有研究都挑選一些Term,而后統(tǒng)計(jì)直接對應(yīng)到該Term的基因或蛋白數(shù)。結(jié)果一般以柱狀圖或者餅圖表示。
? 以差異基因作為前景基因,全部基因作為背景基因(參考基因),找出差異基因相關(guān)的GO分類,計(jì)算這些差異基因同GO 分類中某(幾)個(gè)特定的分支的超幾何分布關(guān)系,GO 分析會對每個(gè)有差異基因存在的GO 返回一個(gè)p-value,小的p 值表示差異基因在該GO 中出現(xiàn)了富集。
一般取n大于3,校正值(corrected p value)<0.05的條目作為顯著性結(jié)果
? GO 分析對實(shí)驗(yàn)結(jié)果有提示的作用,通過差異基因的GO 分析,可以找到富集差異基因的GO分類條目,尋找不同樣品的差異基因可能和哪些基因功能的改變有關(guān)。
下面的代碼是小果請教大佬的,大佬給指了個(gè)方向,然后就做出來了,請大佬喝了奶茶。
也有人經(jīng)常請小果喝奶茶,也管小果叫大佬,哈哈哈哈哈

輸入數(shù)據(jù)
按照條目分類:


代碼部分
###讀取數(shù)據(jù):
r1=read.table("bp.txt",sep="\t",header=F,as.is=T,quote="!")
r2=read.table("cc.txt",sep="\t",header=F,as.is=T,quote="!")
r3=read.table("mf.txt",sep="\t",header=F,as.is=T,quote="!")
##數(shù)據(jù)處理:
x1=nrow(r1); x2=nrow(r2); x3=nrow(r3); x=x1+x2+x3
m=c(r1[,2],r2[,2],r3[,2])
l=c(r1[,1],r2[,1],r3[,1])
y=ceiling(max(m)/10)*15
###畫圖:
pdf(file="goBarplot.pdf",width=15)
par(mar=c(20,4,3,3),mgp=c(0.8,0.3,0),cex.axis=.7)
barplot(m,beside=T,col=c(rep(rgb(153/255,216/255,201/255),x1),rep(rgb(44/255,127/255,184/255),x2),rep(rgb(201/255,148/255,199/255),x3)),space=0,xaxs='i',yaxs='i',yaxt='n',las=2,names.arg=l,ylab="target genes")
abline(h=0)
par(xpd=T)
lx=max(nchar(l))
y1=1/4*y;y2=3/4*y
segments(0,-y1,0,-y2); segments(0,-y2,x,-y2); segments(x1,-y1,x1,-y2); segments(x1+x2,-y1,x1+x2,-y2); segments(x,-y1,x,-y2)
text(x1/2,-(y2-1/10*y2),labels='biological_process',pos=1,cex=0.6,col=rgb(153/255,216/255,201/255))
text(x1+x2/2,-(y2-1/10*y2),labels='cellular_component',pos=1,cex=0.6,col=rgb(44/255,127/255,184/255))
text(x1+x2+x3/2,-(y2-1/10*y2),labels='molecular_function',pos=1,cex=0.6,col=rgb(201/255,148/255,199/255))
axis(2)
dev.off()

最后的結(jié)果圖,是不是讓人眼前一亮,下期將為你帶來更多生信學(xué)習(xí)技巧。
推薦閱讀
shengxinguoer
生信果
生信硬核知識解答
和小果一起學(xué)生信
GO的概念及用R做簡單的富集分析的評論 (共 條)
