circos 可视化手册-histograms篇

2020-05-10 10:31:18 浏览数 (1)

histograms可以看做是line plot的一个变种,首先来看一个示例

图中最内圈的就是historgams了,可以看到由许多个柱子组成,每个柱子都是file中定义的一个区域,柱子的高度由这个区域的value决定。所有的柱子共有两个方向,一部分朝内,另外一部分朝外。

这个图片对应的数据如下:

可以看到value的值有正有负,当同时包括了正负数时,所有正数的柱子是一个方向,负数的柱子是另外一个方向。以上这些都是默认行为。

下面看一个最基本的配置文件的例子

r0, r1, maxmin这些属性在之前的文章中已经详细解释过,今天主要看下histogram独有的几个参数

1. extend_bin

每个bin的区间是在file文件中事先定义好的, extend_bin控制是否把相邻的bin连接起来, 比如对于下面这个数据

可以看到这3个区间是有一定间隔的,默认情况下,在图上对应的bin肯定是不连续的;当设置了extend_bin = yes之后,会将这3个bin连在一起。

具体的做法就是延伸file中定义好的区间,比如前2个bin之间有间隔,取这个间隔的中间点的位置,作为第一个bin的终止位置,第2个bin的起始位置,这样两个bin就连接起来了。

看一个案例

图中的两个histogram基于相同的数据,当extend_bin = no时,按照file中定义的区间来画,可以看到区间并不是连续的;当extend_bin = yes时,所有的bin都变成连续的了。

改变了file文件中定义的区间,通常情况下, 不太推荐使用extend_bin = yes

2. 颜色相关的属性

histogram中,和颜色相关的共有以下4个属性

  1. color 线条的颜色
  2. fill_color bin的填充色
  3. background_color bin的背景色
  4. fill_under 当fill_under = yes 时,background_color作为bin的填充色,fill_color作为线条的颜色,会覆盖color定义的值

另外一个需要掌握的就是定义多种颜色的技巧,以最常用的fille_color为例,主要有两种方式:

1. 设置多个条件

根据某个阈值将value划分成不同的部分,每个部分通过rule定义不同的填充色

2. 设置一个条件

condition = 1表示这个rule一直发挥作用,类似编程中的while(1), 永远为真。这里的fill_color的值通过一个表达式来定义。

remap_int函数根据value在区间[-1, 1]的位置, 映射到[1,9]区间中,生成一个1到0之间的整数,然后通过sprintf函数定义颜色为spectral-9-div调色板中的一个颜色。

spectral-9-div这个调色板是在/etc/brewer.all.conf文件中定义的

在该文件中,还定义了其他颜色的调色板,中间的数字代表了调色板中的颜色总数,可以根据需要选择合适的调色板。

0 人点赞