circos 可视化手册-tile 篇
tile
用来展示基因组上区域的分布,和之前介绍过的highlight
不同,这些区域在图中并不是位于同一层的。为了避免不同区域之间的重叠,tile
会将有重叠的区域分布在不同的层,结合图片来理解一下这个概念。示例图片如下
染色体之外的部分,就是tile
了。图上共有5圈tile
。可以看到,每个tile
位于一个圆环区域内,其中的基本单位是一个个的矩形方块,我们也称为tile
; 不同的矩形方块不会有重叠,而是堆积成好几层。这里的每一层,我们称为layer
。
配置文件的写法如下:
首先看下file
定义的文件格式,和之前介绍过的scatter
, line
, histograms
有所区别,每一行是一个区间,并没有value
值
对于配置文件中的其他属性,可以分成两部分
1. 位置相关属性
决定位置的有以下几个属性:
-
r0
-
r1
-
orientation
-
margin
-
padding
-
layer
-
layer_overflow
-
layer_overflow_color
r0
和r1
定义圆环的内径和外径,这两个参数在之前的文章中就介绍过了,就不详细展开了。
margin
定义了外边距,用于判断两个tile
之间是否有重叠
file
文件中定义了每个区间的start
和end
,在判断两个区间是否重叠时,首先在原来区间的基础上,添加上margin
, 变成了[start + margin, end + margin]
, 如果转换后的区间存在重叠,就认为两个原始区间有重叠,需要位于不同的layer
。
padding
定义了内边距,用于指定不同layer
之间的间隔,示意图如下
orientation
在tile
中有了一个新的取值,叫做center
, 代表的是r0
和r1
之间的中间位置。这个参数的作用就是表明不同层的layer如何摆放,示意图如下
layer
参数指定layer的个数,layer = 5
表示最多可以有5个layer;
layer_overflow
参数控制超出个数的layer
如何显示;layer_overflow_color
指定超出个数的layer
的填充色
layer_overflow = hide
表示超出的部分不显示
layer_overflow = grow
表示超出的部分继续显示,此时layer
的个数会增加,示意图如下
layer_overflow = collapse
表示超出的部分不用新的layer
来显示,而是堆积在已有的layer上,此时layer
的个数不会增加,示意图如下
2. 外观相关属性
包括以下4个属性:
-
thickness
-
color
-
stroke_thickness
-
stroke_color
外观的属性都很好理解,stroke_thickness
和stroke_color
分别控制边框的粗细和颜色,thickness
控制tile
的高度,color
控制tile
的填充色。
需要掌握的一点是rules
的写法,示例如下
在scatter
等图表类型中,通过var(value)
定义不同的条件,但是tile
中并没有value
的概念,只有size
的概念,size
指的是每个区间的宽度。在tile
中,通过var(size)
来定义不同的条件。
上面示例中的color 属性的学法也是值得学习的,remap_round
函数实现了一个线性变换,将[10000, 150000]
映射为[0, 4]
, 将size
的值映射为0到4之间的一个整数;qw(lgrey grey dgrey vdgrey black)
定义了一个数组,数组中共有4个元素,对应4种不同的颜色根据size
的大小,转换为不同的下标,从数组中根据下标得到不同的颜色。