GSEA軟件的二次作圖

我們知道凰慈,用GSEA的java軟件分析的結(jié)果之后,默認的圖是png驼鹅,而且只有72 dpi微谓,比如下面這樣的

image.png

其實顏值也還好,但是很模糊输钩,這是很不方便用于發(fā)文章的豺型,那么有沒有一些二次作圖的方法呢?
答案是肯定的买乃,不僅有姻氨,而且還有很多方法,不知道你們有沒有發(fā)現(xiàn)本地文件夾里其實還有一個edb文件夾剪验,而這個文件夾只有三個文件肴焊,一個rnk,一個gmt功戚,另外就是results.edb娶眷,實際上所有的圖片信息都在results.edb里,在這里展示一些我收集的二次繪圖辦法疫铜。

Rtoolbox二次繪圖

Rtoolbox這個包目前只能在Github上安裝茂浮,里面也只有兩個函數(shù)replotGSEA()OverviewPlot(),由于Github經(jīng)常訪問不了壳咕,所以可以導(dǎo)入到Gitee上了席揽,安裝起來也很簡單。

remotes::install_git('https://gitee.com/swcyo/Rtoolbox')

而關(guān)于這個包的replotGSEA()的函數(shù)使用也很簡單

replotGSEA(path, gene.set, class.name, metric.range, enrichment.score.range)

比如我的本地結(jié)果都在~/my_analysis.GseaPreranked.1664378586466 這個文件夾里谓厘,里面有很多結(jié)果幌羞,我們只需要提取相應(yīng)的通路名稱,設(shè)置一些簡單的函數(shù)就可以出一個pdf的圖了竟稳,比如我要提取PPAR通路的結(jié)果属桦,只需要一個函數(shù)即可

library(Rtoolbox) ##加載R包
replotGSEA(path = '~/my_analysis.GseaPreranked.1664378586466', ##設(shè)置本地文件夾路徑
           gene.set = "KEGG_PPAR_SIGNALING_PATHWAY%HSA03320", ## 提取PPAR通路
           class.name = "PPAR_SIGNALING_PATHWAY", ##定義圖中間的名稱
           ## enrichment.score.range= c(-1, 1) ###設(shè)置富集分數(shù)范圍熊痴,一般默認即可
           )

這時候會再彈出一個R的窗口(Mac系統(tǒng)可能提示要安裝Quartz),這時候會顯示一個圖聂宾,顯示了一個比自帶更好看的圖果善,還能顯示p、FDR和NES的值系谐,我們適當(dāng)?shù)睦靾D片的長寬巾陕,然后點Save可以保存為pdf,之后再自己編輯結(jié)果纪他,見下圖所示鄙煤。與原始圖比較簡直就是天壤之別吧。

replotGSEA

然而茶袒,這個方案有兩個缺陷

  1. 不能在一張圖片上設(shè)置多條通路
  1. 不能使用代碼自由保存圖片格式和大小

gseaplot_modified函數(shù)二次繪圖

使用這個函數(shù)其實純屬于不講武德的方法梯刚,完完全全就是調(diào)用Rtoolbox這個包的replotGSEA()繪圖,唯一的區(qū)別就是這個函數(shù)不需要安裝Rtoolbox這個包薪寓,而是直接定義函數(shù)亡资,要說區(qū)別吧,我仔細對比了一些源代碼R/ReplotGSEA.R预愤,也就是在圖片的設(shè)置上有非常非常非常細微的差距而已沟于。。植康。

因為兩個函數(shù)沒有本質(zhì)差異,所以我也就不放結(jié)果了展懈,需要的還不如直接復(fù)制R/ReplotGSEA.R這個鏈接里的函數(shù)销睁,這沒有什么好說的了。存崖。冻记。

基于ggplot2的繪圖

這個教程來自于GSEA自定義做圖 - 簡書 (jianshu.com),當(dāng)然最好看的肯定是使用clusterProfiler計算好的結(jié)果来惧,然后使用enrichplot包的gseaplot2()函數(shù)來繪圖冗栗,當(dāng)然我們也是可以借鑒Y叔的畫圖思路要成圖,但這個要求太高供搀。這個教程其實還是在Rtoolbox的基礎(chǔ)上進行二次修改隅居,將replotGSEA()函數(shù)的作圖取消,改成單獨提取rank和ES的值葛虐,然后使用ggplot2拼圖胎源。原理無非就是在結(jié)果文件夾中有個edb文件夾,里面又有一個.edb 和 .rank文件屿脐,這個文件就是做圖的原始文件涕蚤,如果你動手能力強宪卿,可以封裝成一個函數(shù),也可以自己開發(fā)一個包万栅。

使用修改的函數(shù)直接提取數(shù)據(jù)作圖佑钾。然而對于單個GSEA而已,GSEA的文件夾里還有png圖和tsv的表格(很久以前是xls)烦粒,網(wǎng)上當(dāng)然也有一些教程休溶,我們可以先看看tsv的結(jié)果,比如我們繼續(xù)使用PPAR通路的表格撒遣,可以看到表格里有SYMBOL邮偎,RANK.IN.GENE.LISTRANK.METRIC.SCORE义黎,RUNNING.ES等信息禾进。
我們先把表格讀進來

data<-read.delim("~/my_analysis.GseaPreranked.1664378586466/KEGG_PPAR_SIGNALING_PATHWAY%HSA03320.tsv")
## 看看數(shù)據(jù)分布
head(data)
##    NAME SYMBOL RANK.IN.GENE.LIST RANK.METRIC.SCORE RUNNING.ES CORE.ENRICHMENT
## 1 row_0   MMP1               265         0.4223908 0.03071519              No
## 2 row_1    ME1               368         0.3963699 0.06376065              No
## 3 row_2   OLR1               567         0.3652790 0.09122010              No
## 4 row_3   SCD5              1024         0.3145396 0.10664627              No
## 5 row_4    UBC              1589         0.2741413 0.11529607              No
## 6 row_5  FABP5              2359         0.2328998 0.11430056              No
##    X
## 1 NA
## 2 NA
## 3 NA
## 4 NA
## 5 NA
## 6 NA

GSEA二次繪圖,主要是三部分拼圖廉涕,第一部分是曲線泻云,第二部分是網(wǎng)格線,第三部分是底下的曲線狐蜕,可以使用的辦法很多宠纯,重點是知道圖的x軸和y軸是什么,推薦使用ggplot2畫圖层释,當(dāng)然如果你想省事婆瓜,用ggpubr更簡單

我們先畫最上面的圖,可以使用geom_line畫出贡羔,見下面所示廉白。

library(ggplot2)
p1<-ggplot(data) +
  aes(x = RANK.IN.GENE.LIST, y = RUNNING.ES) + #x軸是rank值,y軸是ES值
  geom_line(size = 1, colour = "#f87669") +
  labs( y = "Enrichment score (ES)",  title = "PPAR SIGNALING PATHWAY",x=NULL) +
  theme_bw(base_size = 12)+ #設(shè)置主題和字體大小
  theme(axis.title.x=element_blank(),axis.text.x=element_blank(), axis.ticks.x=element_blank(),## 將x軸文字清空
        plot.title=element_text(hjust=0.5))+ #設(shè)置標題居中
  scale_x_continuous(expand = c(0, 0)) + #取消x軸左右的空白
  geom_hline(yintercept = 0, linetype = "dashed") #添加ES為0的基準線
p1

GSEA上部分的曲線圖

接著我們畫中間的部分乖寒,見下圖所示猴蹂。

p2<-ggplot(data, aes(x = RANK.IN.GENE.LIST)) +
    geom_linerange(aes(ymin=-min(RANK.IN.GENE.LIST), ymax=max(RANK.IN.GENE.LIST))) +
    xlab(NULL) + ylab(NULL) + theme_bw()+
    theme(legend.position = "none",
          plot.margin = margin(t=-.1, b=0,unit="cm"),
          axis.ticks = element_blank(),
          axis.text = element_blank(),
          axis.line.x = element_blank()) +
    scale_x_continuous(expand=c(0,0)) +
    scale_y_continuous(expand=c(0,0))
p2
GSEA中間部分

最后下面的rank部分,見下圖所示楣嘁。

p3<-ggplot(data) +
  aes(x = RANK.IN.GENE.LIST, y = RANK.METRIC.SCORE) +
  geom_area(size = 1.5,fill='gray30') +
  theme_bw(base_size = 12)+ ylab("Ranked List Metric")+xlab("Rank in Ordered Dataset") +
  scale_x_continuous(expand=c(0,0))

GSEA下面部分

最后磅轻,將三張圖拼成一張圖即可,見最終所示逐虚。

library(patchwork)

p1/p2/p3+plot_layout(heights = c(0.5,0.2,0.3))
ggplot2-GSEA

最后聋溜,三張圖其實都是一樣的


最后的全家福
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市痊班,隨后出現(xiàn)的幾起案子勤婚,更是在濱河造成了極大的恐慌,老刑警劉巖涤伐,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馒胆,死亡現(xiàn)場離奇詭異缨称,居然都是意外死亡,警方通過查閱死者的電腦和手機祝迂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門睦尽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人型雳,你說我怎么就攤上這事当凡。” “怎么了纠俭?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵沿量,是天一觀的道長。 經(jīng)常有香客問我冤荆,道長朴则,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任钓简,我火速辦了婚禮乌妒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘外邓。我一直安慰自己撤蚊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布损话。 她就那樣靜靜地躺著侦啸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丧枪。 梳的紋絲不亂的頭發(fā)上匹中,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音豪诲,去河邊找鬼。 笑死挂绰,一個胖子當(dāng)著我的面吹牛屎篱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葵蒂,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼交播,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了践付?” 一聲冷哼從身側(cè)響起秦士,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎永高,沒想到半個月后隧土,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體提针,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年曹傀,在試婚紗的時候發(fā)現(xiàn)自己被綠了辐脖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡皆愉,死狀恐怖嗜价,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幕庐,我是刑警寧澤久锥,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站异剥,受9級特大地震影響瑟由,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜届吁,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一错妖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疚沐,春花似錦暂氯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至究流,卻和暖如春辣吃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芬探。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工神得, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人偷仿。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓哩簿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酝静。 傳聞我的和親對象是個殘疾皇子节榜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

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