GO的概念及用R做簡單的富集分析
? ?

GO(Gene Ontology)富集分析基因本體數(shù)據(jù)庫是一個結(jié)構(gòu)化的標準生物學模型,旨在建立基因及其產(chǎn)物知識的標準詞匯體系。舉個簡單的例子,隨機在中國挑出10000個人,這些人會有什么特征呢?如果按照男女劃分,可以劃分兩大類,那如果按照省份劃分則又可以劃分34個大類,那如果按照高矮胖瘦劃分呢?你又會劃分到哪一類,會像小云一樣人見人愛么。

? ? 基因的劃分也是如此,根據(jù)其不同的分類我們將他們劃分為三大類,包括了基因的細胞組分(cellular component)、分子功能(molecular function)、生物學過程(biological process)。
? ? Cellular component解釋的是基因存在在哪里,在細胞質(zhì)還是在細胞核?如果存在細胞質(zhì)那在哪個細胞器上?如果是在線粒體中那是存在線粒體膜上還是在線粒體的基質(zhì)當中?這些信息都叫Cellular component。
? ? Biological process是在說明該基因參與了哪些生物學過程,比如,它參與了rRNA的加工或參與了DNA的復制,這些信息都叫Biological process
? ? Molecular function在講該基因在分子層面的功能是什么?它是催化什么反應(yīng)的?

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

