前面几篇教程我们简单介绍circos绘图的基本方法:

circos绘图-从入门到精通(一)

circos绘图-从入门到精通(二)

circos绘图-从入门到精通(三)

circos绘图-从入门到精通(四)

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/