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

官方代码here

results matching ""

    No results matching ""