R語言進行GSEA分析

先加載R包

> library(GSEABase)
> library(limma) 
> library(clusterProfiler)
> library(enrichplot)

第一步:差異分析

首先是用limma包做差異分析的過程

#差異分析:
dat <- exprSet
group_list <- c(rep("Control",3),
                rep("Combine",3))
group_list <- factor(group_list,ordered = F)
design <- model.matrix(~factor( group_list ))
fit=lmFit(dat,design)
fit=eBayes(fit)
options(digits = 4)
topTable(fit,coef=2,adjust='BH')
deg=topTable(fit,coef=2,adjust='BH',number = Inf)
head(deg)

這里由于做的時候是FPKM數(shù)據(jù),所以參考了生信技能樹的教程:

https://mp.weixin.qq.com/s/BEvFqu-BNA9lWFNaE9Jkdw

第二步:獲取基因集

MSigDB可以方便地獲取GMT文件,讀進來

> geneset <- read.gmt("./h.all.v7.5.1.symbols.gmt")

第三步:進行GSEA

> geneList <- deg$logFC
> names(geneList) <- toupper(rownames(deg))
> geneList <- sort(geneList,decreasing = T)

GSEA輸入的geneList是排序后的gene名提茁,因此這里需要對geneList進行一個排序饺窿。實際上得到差異分析的結(jié)果后鸿捧,只需要logFC和gene名就可以構(gòu)建geneList進行GSEA富集分析了嗤军。

> gsea_results <- GSEA(
+   geneList = geneList,
+   TERM2GENE = geneset,
+   verbose = F,
+   eps=1e-10
+ )
Warning messages:
1: In serialize(data, node$con) :
  'package:stats' may not be available when loading
2: In serialize(data, node$con) :
  'package:stats' may not be available when loading
3: In fgseaMultilevel(...) :
  For some pathways, in reality P-values are less than 1e-10. You can set the `eps` argument to zero for better estimation.

P值太小時可能會報warning靶瘸,不過不影響寝优√跆颍可以把eps這個參數(shù)設置成0。得到的結(jié)果是一個gseaResult對象

> class(gsea_results)
[1] "gseaResult"
attr(,"package")
[1] "DOSE"

可視化

接下來可以對這個gseaResult對象進行可視化乏矾。

> for (i in 1:length(list)) {
+   p <- gseaplot2(x=gsea_results,geneSetID=paste("HALLMARK_",list[i],sep="")) 
+   d <- paste("./",list[i],".pdf",sep="")
+   pdf(file=d,
+       family = "Times",width=10,height = 6)
+   print(p)
+   dev.off()
+ }

這里循環(huán)讀取感興趣的每一個基因集進行作圖孟抗,并輸出為PDF。


GSEA

當然也可以多個圖放在一起

> p <- gseaplot2(gsea_results,
+           gsea_results@result[["ID"]][1:3],
+           pvalue_table = TRUE)

比如這個樣子


gseaplot2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钻心,一起剝皮案震驚了整個濱河市凄硼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捷沸,老刑警劉巖摊沉,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痒给,居然都是意外死亡说墨,警方通過查閱死者的電腦和手機骏全,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尼斧,“玉大人姜贡,你說我怎么就攤上這事」卓茫” “怎么了鲁豪?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長律秃。 經(jīng)常有香客問我爬橡,道長,這世上最難降的妖魔是什么棒动? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任糙申,我火速辦了婚禮,結(jié)果婚禮上船惨,老公的妹妹穿的比我還像新娘柜裸。我一直安慰自己,他們只是感情好粱锐,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布疙挺。 她就那樣靜靜地躺著,像睡著了一般怜浅。 火紅的嫁衣襯著肌膚如雪铐然。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天恶座,我揣著相機與錄音搀暑,去河邊找鬼。 笑死跨琳,一個胖子當著我的面吹牛自点,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播脉让,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼桂敛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了溅潜?” 一聲冷哼從身側(cè)響起术唬,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伟恶,沒想到半個月后碴开,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毅该,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡博秫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年潦牛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挡育。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡巴碗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出即寒,到底是詐尸還是另有隱情橡淆,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布母赵,位于F島的核電站逸爵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凹嘲。R本人自食惡果不足惜师倔,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望周蹭。 院中可真熱鬧趋艘,春花似錦、人聲如沸凶朗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棚愤。三九已至搓萧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宛畦,已是汗流浹背矛绘。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刃永,地道東北人货矮。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像斯够,于是被迫代替她去往敵國和親囚玫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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