heatmap將一系列的數(shù)值映射到一個顏色梯度中,是最常用的圖表之一。在circos中,通過plot這個block進行設置。
用法如下:
heatmap的數(shù)據和scatter plot, histogram是一樣的,最少有4列內容。前3列定義染色體上的區(qū)域,第4列指定每個區(qū)域的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與數(shù)據不符合, 比如數(shù)據的范圍是[2, 6], 配置文件中指定的是[1,5], 通過以上公式計算時,會出現(xiàn)下標越界的情況,此時,對于小于min的值,其顏色定義為list中的第一個顏色值;對于大于max的值,其顏色定義為list中的最后一個顏色值。
具體的是通過color_mapping參數(shù)控制線性映射的屬性,共有3種取值
color_mapping = 0color_mapping = 1color_mapping = 2
默認情況下,color_mapping = 0。color_mapping的值設置的是一個偏移量,對于color設置的n種顏色,每種顏色均分成兩份,從0開始計數(shù),00..nn。color_mapping = 1 時,向后偏移一位,變成011..nn; color_mapping = 2時,向后偏移兩位,變成112233
反應到顏色上,具體的示意圖如下:
2. 非線性映射
在配置文件中添加下面的參數(shù),開啟log映射
當數(shù)據分布不均勻時,采用log映射更加合適。