对于links
而言,默认情况下所有的links 都是同一种颜色,通过color
属性指定。当我们想要构建出彩色的links 时,通常情况下有3种做法:
每一个link
都有一个file
指定的数据,我们可以人为的将原来的file
根据条件拆分成多份,每一份对应一个link, 然后为每个link
设置不同的颜色,就可以实现彩色的link
了。
示例如下:
每个link
定义一个文件,对应的color
值不同,生成的图片如下
拆分数据比较繁琐,一种更加简便的方法是定义rules
, 根据不同的规则指定不同的颜色。示例如下
需要理解的就是condition
的写法。第一种就是var
的用法,var
获取指定字段的值,在links
中,有以下几种字段
link
对应的染色体的名字,一个link
连接两个区域,第一个区域对应的染色体为chr1
, 第二个区域对应的染色体为chr2
, condition
中对应的写法为var(chr1)
, var(chr2)
start1
, 第二个区域对应的起始位置为start2
, condition
中对应的写法为var(start1)
, var(start2)
end1
, 第二个区域对应的终止位置为end2
, condition
中对应的写法为var(end1)
, var(end2)
position1
, 第二个区域对应的中心位置为position2
, condition
中对应的写法为var(position1)
, var(position2)
size1
, 第二个区域对应的长度为size2
, condition
中对应的写法为var(size1)
, var(size2)
condition
中对应的写法为var(rev1)
,var(rev2)
condition
中对应的写法为var(inv)
condition
中对应的写法为var(interchr)
condition
中对应的写法为var(intrachr)
var
会返回对应的值,从上面可以看出,返回值可以分成以下3类
对于字符串,采用perl
当中的字符串操作符,示例
condition = var(chr1) eq “hs1”
对于数字,采用数字操作符, 示例
condition = var(size1) > 10mb
对于逻辑值, 可以直接使用,示例
condition = var(intrachr)
除了使用var 之外,还可以使用函数,condition
中支持以下函数
在links
中,支持between
的用法, 示例如下
condition = between(hs1, hs2)
rules
的示例:
生成的图片如下:
file
文件支持内置属性和自定义属性,所有的属性写在最后一列,多个属性用逗号分隔。
示例如下:
上面的文件中,最后一列包含了color
和value
两种属性,color
是内置属性,value
是自定义属性。通过在file
中添加不同取值的color
属性,可以方便的实现彩色的links
。这里主要看下通过value
属性的值映射到不用颜色上。
配置文件写法如下:
通过var(value)
获取每个link的value 值作为数组的下标,数组由qw
定义,数组中的元素为5个不同的颜色,value
的取值范围为0-5,正好对应该数组的下标,通过这种方式,将value
映射到颜色上;而且在原来颜色的基础上,还通过sprintf
函数,为原来的颜色添加_a3
后缀,这个后缀代表一定的透明度。
生成的图片如下
根据自己的数据,灵活运用以上3种方法,就可以随心所欲的构建多彩的 links
了。