14.GO富集分析R語(yǔ)言代碼及5種圖的繪制

一、舉例回顧

本節(jié)使用GSE1009數(shù)據(jù)集,已經(jīng)用limma包對(duì)數(shù)據(jù)集中的樣本進(jìn)行差異分析,現(xiàn)對(duì)差異基因(DEGs)做GO富集分析。

GSE1009數(shù)據(jù)集介紹:??

樣本量:共6個(gè)樣本,其中后3個(gè)為糖尿病腎病(DN)腎小球樣本,前3個(gè)為正常腎小球樣本。

使用芯片:Affymetrix Human Genome U95 Version 2 Array。

平臺(tái):GPL8300。

DEGs:共有66個(gè)DEGs(diffsig),22個(gè)上調(diào)(diffup),44個(gè)下調(diào)(diffDown)(詳見上兩章).

二、需要準(zhǔn)備的文件:

包含差異基因名字+logFC值的文本文件,命名為symbol(下面有介紹詳細(xì)做法。)

三、具體做法:

1. 整理symbol文件

在上一節(jié)中diffSig變量,用write.table函數(shù)保存為包含差異基因名字+logFC值等的文件,命名為diff。


將diffSig變量保存哦


保存的方法如上,如果上次已經(jīng)保存了的,直接調(diào)用





保存好diff文件,是下面這樣的:


保存好的diff文件



手動(dòng)給基因名加上列名,為gene,如下:


加上第一列名gene



重點(diǎn):新建一個(gè)文本文件,取名為symbol,將第一列g(shù)ene和第二列l(wèi)ogFC復(fù)制symbol.

symbol


2.ID轉(zhuǎn)換(將基因名轉(zhuǎn)換為entrezID

setwd("D:\\Rfile")

rm(list = ls())

options(stringsAsFactors=F)

#老規(guī)矩,先設(shè)置工作目錄。



library("clusterProfiler")

library("org.Hs.eg.db")

library("enrichplot")

library("ggplot2")

#加載這些包,加載之前記得先安裝,已經(jīng)安裝過的復(fù)制代碼直接調(diào)用。



rt=read.table("symbol.txt",sep="\t",check.names=F,header=T) ???

#讀取symbol文件,并賦值給rt


genes=as.vector(rt[,1])

#取rt的第一列,即基因名字,將其轉(zhuǎn)換為向量,并賦值給genes變量


entrezIDs <- mget(genes, org.Hs.egSYMBOL2EG, ifnotfound=NA) ???

#找出基因?qū)?yīng)的id,未找到的賦值為NA



entrezIDs <- as.character(entrezIDs)

out=cbind(rt,entrezID=entrezIDs)

#將基因ID轉(zhuǎn)換為entrezIDs



write.table(out,file="id.txt",sep="\t",quote=F,row.names=F) ???#輸出結(jié)果,結(jié)果為id文本文檔


3.GO分析及繪圖

##讀取ID轉(zhuǎn)換后文件

rt=read.table("id.txt",sep="\t",header=T,check.names=F) ??????????#讀取id.txt文件

rt=rt[is.na(rt[,"entrezID"])==F,] ??????????????????????????????#去除基因id為NA的基因

gene=rt$entrezID?? #取entrezID賦值給gene變量




##GO分析

#GO富集分析

kk <- enrichGO(gene = gene,

???????????????OrgDb = org.Hs.eg.db,

???????????????pvalueCutoff =0.05,

???????????????qvalueCutoff = 0.05,

???????????????ont="all",

???????????????readable =T)

#p值和q值可以自己設(shè)置,我們這里都設(shè)置成0.05。這一步需要一點(diǎn)時(shí)間,耐心等待。


write.table(kk,file="GO.txt",sep="\t",quote=F,row.names = F) ??????????????

#保存GO富集結(jié)果



#1.GO柱狀圖

pdf(file="GO柱狀圖.pdf",width = 10,height = 8)

barplot(kk, drop = TRUE, showCategory =10,split="ONTOLOGY") + facet_grid(ONTOLOGY~., scale='free')

dev.off()

#pdf格式


png(file="GO柱狀圖.png",width = 800,height = 1000)

barplot(kk, drop = TRUE, showCategory =10,split="ONTOLOGY") + facet_grid(ONTOLOGY~., scale='free')

dev.off()

#保存為png格式,圖片保存格式只舉例這次,后面一樣的道理,也可以保存為tiff格式等




#2.GO點(diǎn)圖

pdf(file="GO點(diǎn)圖.pdf",width = 10,height = 8)

dotplot(kk,showCategory = 10,split="ONTOLOGY") + facet_grid(ONTOLOGY~., scale='free')

dev.off()



##3.GO浮動(dòng)氣泡圖

library(GOplot)

ego=read.table("GO.txt", header = T,sep="\t",check.names=F) ??????????

#讀取GO富集結(jié)果文件



go=data.frame(Category = ego$ONTOLOGY,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$logFC)

row.names(genelist)=genelist[,1]

circ <- circle_dat(go, genelist)


#繪制GO浮動(dòng)氣泡圖

pdf(file="GO氣泡圖.pdf",width = 10,height = 8)

GOBubble(circ, labels = 3,table.legend =F)

dev.off()



#4.繪制GO圓圈圖

pdf(file="GO圈圖.pdf",width = 14,height = 6)

GOCircle(circ,rad1=2.5,rad2=3.5,label.size=4,nsub=10) ??????????

#rad1外圈的注釋;nsub=10中10代表顯示GO的數(shù)據(jù),可修改

dev.off()



#5.繪制GO熱圖

termNum = 20 ????????????????????????????????????#限定term數(shù)目

geneNum = nrow(genelist) ????????????????????????#限定基因數(shù)目

chord <- chord_dat(circ, genelist[1:geneNum,], go$Term[1:termNum])

pdf(file="GO熱圖.pdf",width = 11,height = 5)

GOHeat(chord, nlfc =1, fill.col = c('red', 'white', 'blue'))

dev.off()



GO分析和GO的幾種圖就完了,大家可根據(jù)自身情況選擇一種圖,下一章是KEGG分析和繪圖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評(píng)論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,948評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,185評(píng)論 0 287
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容