Heatmap 热图
热图是将highligh效用和2D图形相结合。 在该轨道中,基因组的区域被赋予值(例如基因的密度),这些区域不需要具有固定尺寸,较大的区域会比较小区域先绘制(这自动发生)以避免遮挡。
Circos将每个区域的值映射到颜色参数中定义的颜色范围。 与其他track不同,热图会预设一系列颜色。 列表可以在轨道块中显式定义,也可以使用以前在
理解本节的时候建议参考前1.5节
<plot>
type = heatmap
file = data/6/snp.number.1mb.txt
# color list
color = spectral-5-div
r1 = 0.95r
r0 = 0.80r
</plot>
数据格式包括:chr, start, end, value, and a list of optional parameters.
...
hs7 36975000 36999999 33
hs7 37000000 37024999 50
hs7 37025000 37049999 60 color=blue
hs7 37050000 37074999 44
...
颜色映射
a)默认映射:
如果未定义min和max,则数据点颜色将按照如下规则分配:
color_index = num_colors * (value-min)/(max-min)
b)可控制的映射
这节理解起来比较复杂,看了3遍官方文档终于有了点儿眉目。如有错误欢迎指正。官方guide [here]
首先circos为我们设置了两套颜色主题:
上下两组的区别在于一个是七色,一个是九色。好了,那么接下来让我看一下default分别等一0、1、2的时候代表的含义: 上面这张表为我们解释了三种default的区别:
- 0 这种设置表示从最左边的红色(黑色)到最右边的蓝色(灰色)他们之间按照你要绘制的颜色总述(N)进行均分。
- 1 这种设置两端的颜色跨度只占其他颜色的一半(可以看到0和m少了一个)其他颜色都是均匀分配的
- 2 这种设置抛弃了两端的颜色,其他进行均分
那么第三种设置有什么特别的地方呢?因为有两种颜色被我们抹去了,但他们恰恰可以用来显示一些,小于min,大于max的全部数据(比如异常,比如超量,过表达啥的) 定义方式
color = black,spectral-5-div,grey # 黑色和灰色被留出来了 color_mapping = 2
当然你也用其他更精确的方式来设置颜色:
<rules>
<rule>
condition = var(value) < 0.5
color = black
</rule>
<rule>
condition = var(value) > 9.5
color = grey
</rule>
</rules>
c)非线性映射
之前我们提到的方式都是线性映射,非线性映射简单来说可以让浅色(深色)部分占得更多 可以看到0.5时更偏向浅色区域,更偏向于深色区域。具体代码参考1.5节
使用、扩充颜色列表:
热图最好使用预设的颜色列表,想知道如何定义列表参考[here],使用时:
color = spectral-11-div #from brewer palette
你可以通过刘表组合的方式扩充颜色列表
color = black,ylorrd-9-seq-rev,white,ylgnbu-9-seq,grey
其他填充方式
不光用颜色,你还可以用线条:或者其他patterns。 详情patterns.conf
pattern = vline,hline
\##
pattern = vline,solid,hline
pattern_mapping = 2