前面几篇教程我们简单介绍circos绘图的基本方法:
本文简单介绍rule在<ideogram>
块中的使用。
语法格式如下:
<rule>
# condition定义条件,可以设置多个条件,另起一行condition即可
condition = var(intrachr)
# 满足时要执行的命令
show = no
</rule>
首先看看rule的基本变量和函数使用方法,rule共包含9个变量和8个函数:
如果我们定义的条件为一个很广泛的条件时( 如:condition = 1
)当满足 rule 定义的条件后,不在测试其他条件,此时我们如果需要继续测试后需要的条件判断,则需要定义flow的规则(默认是continues if false)
# 满足/不满足条件,继续执行判断
flow = continue { if true|false }
# 重新开始条件判断
flow = restart { if true|false }
# 停止条件判断
flow = stop { if true|false }
# 判断条件后跳转到 tag=TAG
flow = goto TAG { if true|false }
数据文件:
配置文件config.conf
:
# circos.conf
# karyotype定义染色体的名字、ID、起始位置信息
# 格式:chr - ID LABEL START END COLOR
# 解释:空格分割,前两列格式固定以chr开始
karyotype = data.txt
# 定义别名
chromosomes = hs1[a]:0-);hs2[b]
# 定义位置,如1.1r即是1.1倍的半径距离
chromosomes_radius = a:1.1r;b:0.8r
# links块以曲线连接显示基因组内部之间的联系
<links>
<link>
# 定义关联信息文件
file = link.txt
show = yes
ribbon = yes
flat = yes
radius = 0.95r
bezier_radius = 0r
color = black_a5
# 判断规则
<rules>
<rule>
# 条件
condition = between(hs2,hs4)
color = blue
thickness = 2
z = 15
</rule>
</rules>
</link>
</links>
# 将染色体在圈图上展示出来,代表每个染色体的图形
<ideogram>
# 是否显示每个染色体带宽
show_bands = yes
fill_bands = yes
# 是否显示每个染色体标签、字体等信息
show_label = Yes
label_font = default
label_radius = 1r + 80p
label_size = 50
label_parallel = yes
<spacing>
# 定义染色体之间的间距,为图形半径的5%
default = 0.01r
</spacing>
# 染色体区域的绘制位置,设置图形半径的0.9倍的位置
radius* = 0.8r
# 染色体区域的宽度,可以是相对图形半径(r),也可以说绝对像素值(p)
thickness = 80p
# 染色体区域填充颜色
fill = yes
<rules>
# 定义规则
<rule>
condition = var(chr) eq "hs10"
show = no
</rule>
</rules>
</ideogram>
# 显示标尺
show_ticks = yes
show_tick_labels = yes
<ticks>
radius = 1r
# 标签颜色
color = black
# 标签的宽度
thickness = 5p
# 刻度
# sprintf(format,position*multiplier)
multiplier = 1
# %d - integer
# %f - float
# %.1f - float with one decimal
# %.2f - float with two decimals
#
# 更多格式请查看 http://perldoc.perl.org/functions/sprintf.html
format = %d
<tick>
# 间隔1个单位显示刻度
spacing = 1u
size = 10p
</tick>
<tick>
# 间隔5个单位显示刻度和值
spacing = 5u
size = 25p
show_label = yes
label_size = 20p
label_offset = 10p
format = %d
</tick>
</ticks>
# 默认引用的文件
<image>
<<include etc/image.conf>>
angle_offset* = -180
</image>
<<include etc/colors_fonts_patterns.conf>>
<<include etc/housekeeping.conf>>
data_out_of_range* = trim
参考资料:
1.http://circos.ca/documentation/tutorials/links/rules1/
2.http://circos.ca/documentation/tutorials/links/rules2/