刻度线、网格以及标签(一)
1. 刻度线 —— 基础
刻度、刻度标签以及网格是在 <ticks>
块中定义,一个 <ticks>
块可以包含任意数量的 <tick>
,每个 <tick>
块之间有不同的间距
<ticks>
块中包含全局刻度参数,如 color
、multiplier
、format
等
其所有参数都会被每个 <tick>
块继承,因此可以在每个 <tick>
块中重新定义这些参数
建议将 tick
配置保存在一个单独的配置文件中,通常是 ticks.conf
,然后在主配置文件中导入
# circos.conf
<<include ticks.conf>>
...
1.1 切换刻度的显示
可以使用 show_ticks
和 show_tick_labels
控制是否绘制刻度线及其标签
show_ticks = yes
show_tick_labels = yes
仅在绘制刻度线时才绘制刻度标签,在这里,刻度线是指的是径向线,表示随着 ideogram 距离前进。
刻度线标签是用于标记刻度线的位置的随附文本元素
如果需要绘制大量的标签(1000
个),可能需要等待较久的时间才能画出来,你可以在命令行中使用 -noshow_ticks
标志跳过刻度线
> bin/circos -noshow_ticks ...
同样的,你可以指定 -noshow_tick_labels
禁止标签绘制
1.2 全局和局部刻度参数
<ticks>
块包含全局刻度参数以及多个 <tick>
块,来指定如何格式化给定间隔或指定位置上的刻度
全局参数会影响每个 <tick>
,但在每个 <tick>
块内部可以用不同的值覆盖它们
<ticks>
... global tick parameters ...
<tick>
... tick level parameters ...
</tick>
<tick>
... tick level parameters ...
</tick>
...
</ticks>
其中最基本的三个参数是 radius, label_multiplier
和 orientation
1.3 tick radius,multiplier and orientation
radius
指定刻度线的径向位置,通常会将其设置在 ideogram
的外半径上
label_multiplier
用于获取刻度标签,例如,当其值为 1e-6
,那么在 10000000
位置的刻度线的标签就是 10
该乘数应用于原始的刻度值,与 chromosomes_unit
值无关
orientation
控制刻度及其标签的朝向
- 朝外
orientation=out
, - 朝内
orientation=in
在 ideogram
上绘制标签时,如果是在外径处绘制,应该设置为 out
,如果在内径绘制,应该设置为 in
,防止刻度及标签与 ideogram
重叠
radius = dims(ideogram,radius_outer)
label_multiplier = 1e-6
orientation = out
注意:对于 radius
,你可以使用 dims()
关键字指定半径,这个关键字带有两个参数,第一个是 feature
,第二个是想要获取的 feature
的参数的值
如果你不想绘制在 ideogram 上面,想向外移出一点,可以设置
radius = dims(ideogram,radius_outer) + 25p
有时,你会想在图像半径内绘制刻度线,很简单,把相对位置换成图像就行了
radius = dims(image,radius) - 25p
你还可以指定多个半径值,这样就会创建多个刻度线
1.4 刻度间距
tick
的位置由间隔(相邻 tick
之间的距离)或特定位置控制,间距可以是绝对值也可以是相对值(相对于 ideogram
的长度)
通常,可以在 tick
内部定义刻度线显示的间距,例如下面的例子中,三条刻度线分别设置了 1Mb,5Mb,10Mb
的间距,其中 u
由 chromosomes_units=10_000_000
定义
<ticks>
radius = dims(ideogram,radius_outer)
multiplier = 1e-6
<tick>
spacing = 10u
... parameters for ticks every 10u (=10Mb)...
</tick>
<tick>
spacing = 5u
... parameters for ticks every 5u (=5Mb)...
</tick>
<tick>
spacing = 1u
... parameters for ticks every 1u (=1Mb)...
</tick>
</ticks>
刻度线以间距降序的方式绘制,因此 10u
的刻度先绘制,然后是 5u
,最后是 1u
一般不能在已经绘制了刻度线的地方绘制更小的刻度线,除非设置了 force_display
参数
注意:最好不要绘制太多的刻度线,会等到天荒地老的。合理设置好 chromosomes_units
和刻度间隔
1.5 刻度线参数
-
spacing
- 刻度线之间的距离,单位u (chromosomes_units)
或b(base)
-
chromosomes
- 可选的染色体列表,表示是否绘制刻度线 -
size
- 刻度线长度,p(pixels)
或r(relative)
相对于ideogram
的厚度 -
thickness
- 刻度线的粗细,p
或r
相对于刻度线的大小 -
color
- 刻度线及其标签的颜色 -
show_label
- 是否显示刻度线标签,只有在show_tick_labels
设置了的情况下发挥作用 -
label_size
- 刻度标签大小,p
或r
,相对于刻度的大小 -
label_offset
- 标签与刻度线末端之间的填充大小,p
或r
,相对于刻度的大小 -
format
- 刻度线标签的格式化字符串格式
1.6 通过 ideogram 切换刻度线显示
你可以在 <ticks>
或 <tick>
块内部设置需要显示刻度的染色体
<ticks>
chromosomes_display_default = yes
chromosomes = -hs1;-hs2:0-50;-hs3:100-)
...
</ticks>
当然,如果你不想显示某一染色体区域的刻度线,可以在块中设置 chromosomes
参数
<ticks>
chromosomes_display_default = yes
chromosomes = -hs1;-hs2:0-100;-hs3:100-)
<tick>
spacing = 10u
chromosomes = -hs2
...
</tick>
...
</ticks>
这样可以删除 hs2
染色体上 10Mb
的刻度线,<ticks>
和 <tick>
两个块内部定义的染色体会合并显示
上面定义了 chromosomes_display_default = yes
,默认会显示全部刻度线
如果 chromosomes_display_default = no
,你需要定义在哪里显示刻度,哪些区域需要被排除在外
<ticks>
chromosomes_display_default = no
chromosomes = hs1;hs2:0-100;hs3:100-)
...
</ticks>
可以在多个 <tick>
块中组合需要绘制或不绘制的区域
<ticks>
chromosomes_display_default = no
chromosomes = hs1;hs2:0-100;hs3:100-)
<tick>
spacing = 5u
chromosomes = hs4
</tick>
<tick>
spacing = 10u
chromosomes = -hs2;hs5
</tick>
</ticks>
最后来个例子
show_ticks = yes
show_tick_labels = yes
<ticks>
chromosomes_display_default = no
chromosomes = hs1;hs2:0-100;hs3:100-)
radius = dims(ideogram,radius_outer)
label_offset = 5p
orientation = out
label_multiplier = 1e-6
color = black
<tick>
spacing = 1u
size = 8p
thickness = 2p
color = dgrey
show_label = no
</tick>
<tick>
chromosomes = hs4
spacing = 5u
size = 12p
color = dred
thickness = 2p
show_label = yes
label_size = 20p
label_color = dred
label_offset = 3p
format = %d
</tick>
<tick>
chromosomes = -hs2;hs5
spacing = 10u
size = 14p
thickness = 2p
show_label = yes
label_size = 24p
label_offset = 5p
format = %d
</tick>
</ticks>
image.png
网友评论