circos 視覺化手冊- heatmap 篇
歡迎關注微信公眾號《生信修煉手冊》!
heatmap
將一系列的數值對映到一個顏色梯度中,是最常用的圖表之一。在circos
中,通過plot
這個block進行設定。用法如下:
heatmap
的資料和scatter plot
, histogram
是一樣的,最少有4列內容。前3列定義染色體上的區域,第4列指定每個區域的value
值,其他列可以是配置檔案中的屬性,示例如下
heatmap
中的color
屬性比較特殊,在熱圖中,需要的是一個顏色梯度,將不同的value
對映到這個顏色梯度中。所以這裡的color
對應的是一個list
, 有兩種設定方式
1. 採用內建的list
在etc
etc/colors,brewer.conf
blues-3-seq
和blues-3-seq-rev
就是兩個顏色提取的名字,對應有3種顏色
- blues-3-seq-1
- blues-3-seq-2
- blues-3-seq-3
配置檔案的寫法如下
還可以將多個顏色梯度結合起來使用
2. 採用自定義的顏色
寫法如下
在熱圖中,最重要的是理解value
和color
之間的對應關係。在heatmap
中,共有兩種對映關係。
1. 線性對映
預設情況下,value
color
之間就是線性對映關係。color
的值是一個list
, 對於每個value
, 通過計算對應的下標color_index
,就可以得到具體的顏色。下標的計算公式如下:從公式可以看出,二者之間是一個線性對映關係。當我們沒有在配置檔案中指定
max
和min
的值時,circos會自動根據file檔案的第4列計算這兩個值。當然,我們也可以手動在配置檔案中指定。
當我們指定的min和max與資料不符合, 比如資料的範圍是[2, 6], 配置檔案中指定的是[1,5], 通過以上公式計算時,會出現下標越界的情況,此時,對於小於min的值,其顏色定義為list中的第一個顏色值;對於大於max的值,其顏色定義為list中的最後一個顏色值。
具體的是通過color_mapping
引數控制線性對映的屬性,共有3種取值
-
color_mapping = 0
-
color_mapping = 1
-
color_mapping = 2
預設情況下,color_mapping = 0
。color_mapping
的值設定的是一個偏移量,對於color設定的n種顏色,每種顏色均分成兩份,從0開始計數,00..nn
。color_mapping = 1
時,向後偏移一位,變成011..nn
; color_mapping = 2
時,向後偏移兩位,變成112233..nn
, 示意圖如下
反應到顏色上,具體的示意圖如下:
2. 非線性對映
在配置檔案中新增下面的引數,開啟log對映
計算公式如下:
當資料分佈不均勻時,採用log
對映更合適。
掃描關注微訊號,更多精彩內容等著你!