circos 学习手册(十五)

刻度线、网格以及标签(三)

6. 标签格式

在前面的教程中,刻度是由乘子 multiplierformat 参数设置的

乘数用于派生刻度标签的值(value = position * multiplier),format 格式化字符串控制标签的显示方式

例如:

chromosomes_units = 1000000

multiplier = 1/1u = 1e-6

format = %d:

10000000 = 10u => label = 10

format = %.2f
label => 10.00
6.1 multiplier

乘数有助于避免标签中出现大量的 0,例如

<ticks>
multiplier   = 1/1u
...

<tick>
 format = %d
 ...
</tick>

<tick>
 format = %.1f
 ...
</tick>
...
</ticks>

如果乘数为 1/1u,则间隔为 1Mb 的刻度的格式为 %d,如果间隔为 0.1Mb,格式为 %.1f

你可以调整刻度的乘数,例如

<ticks>
multiplier   = 1/1u
...

<tick>
 ...
</tick>

<tick>
 multiplier    = 1000/1u
 thousands_sep = yes
 ...
</tick>
...
</ticks>

第二刻度的级别为 1000/1u,会使得标签为 100000(如果设置 thousands_sep=yes,将显示 100,000) 而不是 100

6.2 模刻度

如果定义了 mod 的值,那么将会根据公式对刻度线执行模运算来调整标签

given

  mod = M

then

  tick_label = mod(tick_value,M) * multiplier

mod 参数在每个 <tick> 块中定义,其目的在于进一步降低刻度标签的复杂性,以获取更精细的刻度

例如,刻度间隔有 1u0.1u,u=1,000,000

multiplier = 1/1u

<tick>
spacing = 0.1u
mod = 1u
</tick>

那么刻度为 10,100000 的标签为

mod(10,100,000 , 1,000,000) * 1e-6 = 100,000 * 1e-6 = 0.1

而不是 10.1,如果将乘数定义为 10/1u,那么你的刻度就是这个样子的

0 1 2 ... 8 9 10 1 2 ... 8 9 20 1 2 ... 8 9 30 1 2 ...
6.3 刻度间距的单位

你应该始终以 u 为单位定义刻度线参数,使其与 ideogram 具有相同的长度比例

例如,哺乳动物基因组可能使用 1u=1000000,而较小的基因组可能使用 1u=1000

6.4 前缀和后缀

通过 prefixsuffix 参数为刻度标签添加前后缀

...
<tick>
suffix = kb
prefix = +
...
</tick>

也可以通过在 format 中添加前缀和后缀

<tick>
format = position %.1f kb
...
</tick>
image.png

7. 相对刻度

在前面的示例中,都是使用绝对距离标记刻度标签及其间隔,下面将介绍如何使用相对距离

有两个独立的相对刻度设置

  • 相对间距
  • 相对标签

相对间距用于将刻度线设置为相对于 ideogram 的长度

相对标签用于将刻度的标签格式化为相对于 ideogram 的长度

7.1 相对间距

使用 rspacingspacing_type 参数 设置相对间距,例如,在染色体上每隔 1% 放置一个刻度

<ticks>
<tick>
spacing_type = relative
rspacing     = 0.01
...
</tick>
...
</ticks>

注意:相对间距和绝对间距之间不会有冲突,你可以通过 spacing_type 参数 切换两种间距的显示

<ticks>
# relatively spaced
<tick>
spacing      = 10u
rspacing     = 0.01
spacing_type = relative
...
</tick>

# absolutely spaced
<tick>
spacing      = 10u
rspacing     = 0.01
spacing_type = absolute
...
</tick>
...
</ticks>

两种方式混合使用

<ticks>
# 假设 chromosome_units=1000000
<tick>
spacing      = 1u
spacing_type = absolute
...
</tick>

# 每 1% 放置一个刻度
<tick>
rspacing     = 0.01
spacing_type = relative
color          = red
...
</tick>
...
</ticks>
image.png
7.2 相对标签

当刻度线使用相对间距值时,其标签也设置为相对的才更有意义

使用 label_relativermultiplier 参数将标签设置为相对的

<tick>
spacing_type   = relative
rspacing       = 0.01
label_relative = yes
format         = %.2f
...
</tick>

你可以为标签定义相对乘子

下面的标签格式为 0.01 0.02 0.03 ...

<tick>
spacing_type   = relative
rspacing       = 0.01
label_relative = yes
format         = %.2f # labels will be 0.01 0.02 0.03 ...
...
</tick>

设置 rmultiplier = 100

<tick>
spacing_type   = relative
rspacing       = 0.01
label_relative = yes
rmultiplier    = 100 # labels will be 1 2 3 4 ... 
format         = %d
</tick>

标签的格式将变成 1 2 3 4 ...

再添加后缀

<tick>
spacing_type   = relative
rspacing       = 0.01
label_relative = yes
rmultiplier    = 100 
format         = %d
suffix         = %  # labels will be 1% 2% 3% ... 
</tick>

<tick>
spacing_type   = relative
rspacing       = 0.1
label_relative = yes
rmultiplier    = 10 
format         = %d
suffix         = "/10" # labels will be 1/10 2/10 3/10 ...
</tick>
7.3 相对刻度 —— 相对于染色体或 ideogram

如果一个 ideogram 就是一整条染色体,那么前面设置的相对刻度,是可以的

但是,如果你只是显示染色体的一部分,或者将其分割成多个 ideogram,那么你可能想要的是相对于 ideogram 而不是染色体来设置间隔

可以设置 rdivisor 参数

<tick>
spacing_type   = relative
rspacing       = 0.1
rdivisor       = ideogram
</tick>
image.png

8. 特定位置的刻度

到目前为止,我们设置的刻度都是由间距定义的

下面我们将介绍如何在特定位置定义刻度线

8.1 特定的绝对位置的刻度

若要在特定位置上设置刻度,需要使用 position 参数,而不是 spacing 参数

<ticks>

<tick>
# 定义位置
position     = 25u
...
</tick>

<tick>
# 多个位置
position     = 30u,32u,34u,40u
...
</tick>

</ticks>

使用 position 参数就不要再用 spacing 参数了

8.2 特定的相对位置的刻度

放置在相对位置,要用 rposition 并设置 spacing_type = relative

<tick>
rposition      = 0.5,0.7,0.9
spacing_type   = relative
color          = blue
label_relative = yes
format         = %.2f
</tick>

注意rspacingrposition 不要同时使用

8.3 ideogram 的起始和终止位置的刻度

定了了两个特殊的位置:startend,表示 ideogram 的起始和终止位置

同时,可以为这两个刻度指定任意字符串作为标签

<tick>
position = start
label    = 3'
...
</tick>

<tick>
position = end
label    = 5'
...
</tick>
image.png

9. 刻度环

如果定义了多个位置,circos 会自动在多个半径位置绘制刻度

<tick>
# drawn at one radius
radius = dims(ideogram,radius_outer)
...
</tick>

<tick>
# drawn at two radii
radius = dims(ideogram,radius_outer)
radius = 0.8r
...
</tick>

<tick>
# drawn at three radii
radius = dims(ideogram,radius_outer)
radius = 0.8r
radius = 0.6r
...
</tick>
image.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

名本无名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值