使用UpSetR軟件包繪制Upset圖的方法

?本人最近在做比較基因組學(xué)分析的時(shí)候,發(fā)現(xiàn)用韋恩圖來(lái)表示共有、特有的基因家族雖然直觀,但一旦物種數(shù)目增多,就會(huì)變得不好看。于是,我?guī)熜痔嶙h可以用Upset圖來(lái)代替,我仿佛打開(kāi)了新世界的大門(mén),因?yàn)檫@種upset圖確實(shí)在物種數(shù)多的情況下比韋恩圖好看太多了。


這個(gè)圖主要由三部分組成,讓我們通過(guò)一個(gè)簡(jiǎn)化的日常生活場(chǎng)景來(lái)解釋這個(gè)圖。

假設(shè)你有多個(gè)不同的水果籃,每個(gè)籃子都有不同的水果。

左邊的條形圖(集合大小柱狀圖)

這就像每個(gè)籃子旁邊都有一個(gè)標(biāo)簽,告訴你這個(gè)籃子里有多少個(gè)水果。所以,如果一個(gè)籃子里有10個(gè)蘋(píng)果,那么它的標(biāo)簽上就寫(xiě)著10。

上面的條形圖(交集大小柱狀圖)

這個(gè)部分告訴你,如果你從不同的籃子里同時(shí)拿出水果,你會(huì)得到多少個(gè)水果。比如,你可能同時(shí)從籃子A和籃子B中拿出3個(gè)蘋(píng)果和2個(gè)香蕉。那么這個(gè)上面的條形圖就會(huì)顯示5,表示你總共拿了5個(gè)水果。

下面的點(diǎn)(矩陣視圖)

這就像一個(gè)清單,告訴你哪些籃子被同時(shí)考慮了。如果你看到一個(gè)點(diǎn)在籃子A和籃子B下面,那就意味著你同時(shí)從這兩個(gè)籃子里拿出了水果。

所以,總的來(lái)說(shuō),這個(gè)圖就是一個(gè)高級(jí)的“水果拿取記錄”。左邊告訴你每個(gè)籃子里有多少水果,上面告訴你你一次從多個(gè)籃子里拿了多少水果,而下面的點(diǎn)則告訴你每次你是從哪些籃子里拿的。


那么,了解完Upset圖后,現(xiàn)在我們就來(lái)看看如何基于這個(gè)R包繪制Upset圖。

? 首先,我之前繪制韋恩圖用的是venn包以及VennDiagram包,其實(shí)UpSetR包的輸入文件處理成和Venn包所需的輸入文件一致就可以了。

? 很簡(jiǎn)單,最基礎(chǔ)的代碼基本上就是:

library(UpSetR)

upset(fromList(sets),nsets = 10)?


很多細(xì)節(jié)都是可以調(diào)整的,大家可以通過(guò)?upset查看所有支持的參數(shù),下面介紹一些常用的。

upset(fromList(sets),

? ? ? order.by = "freq", # 排序方式

? ? ? nsets = 5, # 展示幾個(gè)集合,按照數(shù)量從大到小排列,或者使用sets參數(shù)指定集合名字

? ? ? mb.ratio = c(0.55,0.45), # 條形圖和矩陣的相對(duì)比例

? ? ? number.angles = 30, # 條形圖上面數(shù)字角度

? ? ? point.size = 3, # 點(diǎn)的大小

? ? ? line.size = 1.2, # 線條粗細(xì)

? ? ? mainbar.y.label = "size of intersection", # 上面條形圖的標(biāo)題

? ? ? sets.x.label = "the number of each sets", # 坐標(biāo)條形圖的標(biāo)題

? ? ? text.scale = c(1.3, 1.3, 1, 1, 2, 1.2) # 元素大小

? ? ? )


排序方式: 使用order.by = "freq"可以確保交集的大小從大到小進(jìn)行排序。

展示集合數(shù)量:nsets = 5將只顯示前五個(gè)最大的集合。

條形圖與矩陣比例:mb.ratio = c(0.55,0.45)決定了主條形圖和矩陣的比例。

角度與大小調(diào)整: 通過(guò)number.angles = 30和point.size = 3及l(fā)ine.size = 1.2來(lái)調(diào)整條形圖數(shù)字的角度、點(diǎn)的大小和線條的粗細(xì)。

標(biāo)題和標(biāo)簽: 為上面的條形圖和坐標(biāo)條形圖增加描述性標(biāo)題。

元素大小: 使用text.scale來(lái)調(diào)整文本和標(biāo)簽的大小。

顏色調(diào)整: 選擇一種和諧的顏色方案,比如深藍(lán)色、火磚紅和灰色。

特定列的個(gè)性化: 使用queries參數(shù)來(lái)突出顯示指定的交集,并給它們賦予獨(dú)特的顏色。


text.scale參數(shù)在 UpSet 圖中控制不同文本元素的大小。以下是每一個(gè)元素的詳細(xì)解釋?zhuān)?/p>

intersection size title:

這是上方條形圖的標(biāo)題。它描述了交集的大小,即兩個(gè)或多個(gè)集合共有的元素?cái)?shù)量。

intersection size tick labels:

這是上方條形圖y軸的刻度標(biāo)簽。它們通常是數(shù)字,表示交集中元素的數(shù)量。

set size title:

這是左邊(或右邊)條形圖的標(biāo)題。它描述了每個(gè)單獨(dú)集合中的元素?cái)?shù)量。

set size tick labels:

這是左邊(或右邊)條形圖y軸的刻度標(biāo)簽。這些標(biāo)簽表示每個(gè)單獨(dú)集合中的元素?cái)?shù)量。

set names:

這些是集合的名稱(chēng)。在矩陣視圖中,這些名稱(chēng)與每行相對(duì)應(yīng),表示不同的集合。

numbers above bars:

這是上方條形圖上的數(shù)字。它們表示每個(gè)交集中元素的實(shí)際數(shù)量,直接放置在每個(gè)柱子上方。


基于以上參數(shù),我們就可以自由地調(diào)整Upset圖了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容