十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
富集分析是生信中最常見和常用的一種手段,不管是pathway還是GO。展示形式正塌也是五花八門,比如我們自己最常用的就是氣泡圖。
創(chuàng)新互聯(lián)主營古塔網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),古塔h5微信平臺小程序開發(fā)搭建,古塔網(wǎng)站營銷推廣歡迎古塔等地區(qū)企業(yè)咨詢
最近看到一些其它的展示方式,用GOplot包畫的,如下:
看上去,好像還挺好看,所以順手測試學習了一下。
官網(wǎng)地址:
=====安裝包=====
官方推薦的安裝方式:
install.packages('GOplot')
install_github('wencke/wencke.github.io')
library(GOplot)? ?//加載包
data(EC)? ? ? //示例數(shù)據(jù)
======功能測試=====
head(EC$david)? ? ? ? ? ?//富集分析結(jié)果
head(EC$genelist)? ? //差異基因
circ - circle_dat(EC$david,EC$genelist)? ? //生成畫圖的基本數(shù)據(jù)
可以看出circ有GO的category, GO ID/term, genes,pvalu以及zscore等組成。
但是zscore和我們的標準化數(shù)據(jù)不太一樣,從官方給出的計算公式是上調(diào)和下調(diào)基因的個數(shù)與總個數(shù)的比值。有點能看出是上調(diào)還是下調(diào)響應(yīng)的。
//下面可以畫出一個簡單的bar圖
GOBar(subset(circ, category == 'BP'))
GOBar(circ, display = 'multiple')? ?//這個可以三類GO都畫,上面的只畫了BP
GOBar(circ, display = 'multiple', zsc.col = c('yellow', 'black', 'cyan'))? //換個zscore的色系
GOBubble(circ, labels = 3)? ? ? //氣泡圖? labels表示對于Y軸大于3的顯示標簽
GOBubble(circ,title = 'Bubble plot', colour = c('orange', 'darkred', 'gold'), display ='multiple', labels = 3)? //可以把三類分開展示
GOBubble(circ, title = 'Bubble plot withbackground colour', display = 'multiple', bg.col = T, labels = 3)? ?//改變背景色
另外,為了不顯示一族清神些冗余的term,GOplot里面有個reduce_overlap函數(shù)可以用來減少冗余terms數(shù)目。該功能刪除所有基因重疊大于或等于設(shè)定閾值的terms。保留每個組的一個terms作為代表,而不考慮GO層次結(jié)構(gòu)。
reduced_circ - reduce_overlap(circ,overlap = 0.75)? // ? 刪除所有基因重疊大于等于 0.75的 terms
GOBubble(reduced_circ, labels = 2.8)
注:看著是比前面清晰很多
GOCircle(circ)? ? ? ?//可以畫GO的圈圖
當然也可以指定自己感興趣的terms
IDs - c('GO:0007507', 'GO:0001568','GO:0001944', 'GO:0048729', 'GO:0048514', '兆虧GO:0005886', 'GO:0008092','GO:0008047')
GOCircle(circ, nsub = IDs)
GOplot還可以做GO和gene的關(guān)聯(lián)圖
chord - chord_dat(circ, EC$genes,EC$process)? ? //準備基礎(chǔ)數(shù)據(jù)
chord - chord_dat(data = circ, genes =EC$genes, process = EC$process)
GOChord(chord, space = 0.02, gene.order ='logFC', gene.space = 0.25, gene.size = 5)
前面我給大家詳細介紹過
?GO簡介及GO富集結(jié)果解讀
?四種GO富集柱形圖、氣泡圖解讀
?GO富集分析四種風格展示結(jié)果—柱形圖,氣泡圖
?KEGG富集分析—柱形圖,氣泡圖,通路圖
? DAVID GO和KEGG富集分析及結(jié)果可視化
也用視頻給大家介紹過
? GO和KEGG富集分析視頻講解
最近有粉絲反映說,利用clusterProfiler這個包繪制GO富集分析氣泡圖和柱形圖的時候,發(fā)現(xiàn)GO條目的名字都重疊在一起了。
氣泡圖
柱形圖
這個圖別說美觀了,簡直不忍直視。經(jīng)過我的認真研究,發(fā)現(xiàn)跟R版本有關(guān)。前面我給大家展示的基本都是R 3.6.3做出來的圖。很多粉絲可能用的都是最新版本的R 4.1.2。
我們知道R的版本在不停的更新,相應(yīng)的R包也在不停的更新。我把繪制氣泡圖和柱形圖相關(guān)的函數(shù)拿出來認真的研究了一下,終于發(fā)現(xiàn)的癥結(jié)碰侍所在。
dotplot這個函數(shù),多了個 label_format 參數(shù)
我們來看看這個參數(shù)究竟是干什么用的,看看參數(shù)說明
label_format :
a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters
原來這個參數(shù)默認值是30,當標簽的長度大于30個字符就會被折疊,用多行來展示。既然問題找到了,我們就來調(diào)節(jié)一下笑咐吵這個參數(shù),把他設(shè)置成100,讓我們的標簽可以一行展示。
是不是還是原來的配方,還是熟悉的味道
同樣的柱形圖,我們也能讓他恢復原來的容貌。
關(guān)于如何使用R做GO和簡閉KEGG富集分析,可參考下文
GO和KEGG富集分析視頻講解
氣泡圖(Bubble Plot)就是由一個個像氣泡元素組成的圖,和普通的散點圖不同,該圖可以展示三維信禪枯甚至四維信息,如下圖: 點的位置即其橫縱坐標分別代表了Weight和Height,氣泡的大小代表了Age,顏色代表了不同個體。
再舉幾個例子:
上面用了不同形式展示了GO或其他富集的結(jié)果。上圖和右下圖中,我們用顏色代表GO的類別,用橫縱坐標代表p-value和z-score,用大小代表富集的基因Count。左下圖我們用顏色代表p-value,用大小代表GeneCount,橫坐標代表GeneRatio,縱坐標代表具體的類別。
從上述例子中可以發(fā)現(xiàn)用氣泡圖我們能展示更多的數(shù)據(jù)信息。 隨著多組學研究的涌現(xiàn),我們急需在同一張圖表理展現(xiàn)多維的數(shù)據(jù),氣泡圖就是一個不錯的選擇。
1)需要什么格式的數(shù)據(jù)
根據(jù)最終想要在氣泡圖上展示數(shù)據(jù)的維度以確定數(shù)據(jù)的格式。
本次用一個來自于GOplo包的數(shù)據(jù)EC,該數(shù)據(jù)為RNA-seq的下游分析數(shù)據(jù)。
該數(shù)據(jù)標準化處理后進行統(tǒng)計分析以確定了差異表達基因。 使用DAVID功能注釋工具對差異表達基因(調(diào)整后的p值0.05)進行基因注釋富集分析。
由于本次將使用兩個包一個是GOplot專門用于轉(zhuǎn)錄組數(shù)據(jù)的下游展示,還有一個是我們常用的畫圖包ggplot2, 需要注意的是用于ggplot2的作圖數(shù)據(jù)還要基于circ略作修改,具體見下文。
2)如何作圖
GOplot 包提供了直接做氣泡圖的方法:
略襲世調(diào)整參數(shù)之后可以對圖的布局、顏色等進行調(diào)整:滑洞
然后,我們來看一看用常見的包ggplot2應(yīng)該如何做該圖。
首先我們要對數(shù)據(jù)處理一下,剔除一些不必要的信息:
稍作改變,去除圖例添加facet。
往期 R數(shù)據(jù)可視化 分享
R數(shù)據(jù)可視化6: 面積圖 Area Chart
R數(shù)據(jù)可視化5: 熱圖 Heatmap
R數(shù)據(jù)可視化4: PCA和PCoA圖
R數(shù)據(jù)可視化3: 直方/條形圖
R數(shù)據(jù)可視化2: 箱形圖 Boxplot
R數(shù)據(jù)可視化1: 火山圖