tile用来展示基因组上区域的分布,和之前介绍过的highlight不同,这些区域在图中并不是位于同一层的。为了避免不同区域之间的重叠,tile会将有重叠的区域分布在不同的层,结合图片来理解一下这个概念。示例图片如下
染色体之外的部分,就是tile了。图上共有5圈tile。可以看到,每个tile位于一个圆环区域内,其中的基本单位是一个个的矩形方块,我们也称为tile; 不同的矩形方块不会有重叠,而是堆积成好几层。这里的每一层,我们称为layer。
配置文件的写法如下:
首先看下file定义的文件格式,和之前介绍过的scatter, line, histograms有所区别,每一行是一个区间,并没有value值
对于配置文件中的其他属性,可以分成两部分
决定位置的有以下几个属性:
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的个数不会增加,示意图如下
包括以下4个属性:
外观的属性都很好理解,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的大小,转换为不同的下标,从数组中根据下标得到不同的颜色。