轴范围(一)
1. 全局范围调整
这部分教程的重点是调整 ideogram
的范围,包括全局和局部
scale = size/degree
它定义了图像上每个 ideogram
的放大系数
默认情况下,你可以使用如下方式绘制全部或部分 ideogram
chromosomes_display_default = yes
所有 ideogram
都有相同的放大倍数。
1.1 增加图像大小
使所有内容变大的最简单方式是增加输出图像的大小。最好的方法是重写 <image>
块中的 radius
参数。
<image>
<<include etc/image.conf>>
radius* = 3000p
</image>
默认的值是 radius = 1500p
,这一设置将创建大小为 3000*3000
像素的图像。
1.2 全局范围控制
在图像内,你可以调整单个 ideogram
或一组 ideogram
的放大倍数。
你可以使用 chromosomes_scale
参数调整每个 ideogram
的长度比例。
chromosomes_scale = hs1:0.2;hs2:0.2;hs3:0.2;hs8:5;hs9:5;hs10:5
以 0.2
倍绘制 1
、2
和 3
号染色体,以 5
倍绘制 8
、9
和 10
号染色体。其他所有的 ideogram
都会适当缩放,以使所有元素都适配在圆圈内。
1.3 调整多个 ideogram 的范围
使用正则表达式对多个 ideogram
进行调整
chromosomes_scale = /rn/:0.5
正则表达式与列表组合
chromosomes_scale = /rn/:0.5;rn5:2
rn5
扩大 2
倍,其他都缩小 0.5
1.4 刻度和刻度标签的显示
通过在 <ticks>
中定义 tick_separation
和 label_separation
参数,你可以在刻度及其标签比较密集的区域压缩它们的显示,有助于避免标签的过度拥挤。
另一个参数有助于管理刻度标签,它控制 ideogram
边缘的标签的显示。
<ticks>
tick_separation = 3p
label_separation = 10p
min_label_distance_to_edge = 10p
...
</ticks>
1.5 切换 ideogram 刻度的显示
更改 ideogram
的比例时,可能需要切换特定 ideogram
刻度的显示,以保持图像的干净。
要隐藏特定 ideogram
的刻度线,可以在 <tick>
中设置 chromosomes
参数
<tick>
chromosomes = -hs9
spacing = 0.5u
...
</tick>
在特定 ideogram 上显示刻度
<tick>
chromosomes_display_default = no
chromosomes = hs9
spacing = 0.5u
...
</tick>
2. 全局相对范围调整
在上一节中,我们展示了如何调整 ideogram
的大小。本节,你将学到如何绘制一个比其他 ideogram
大两倍的 ideogram
。
2.1 相对图像缩放
假设我们要更改人类染色体的比例,以使其恰好填满图像的四分之一,可以设置
scale(hs1) * size(hs1) / size(all displayed ideograms) = 0.25
更简单的方法是
chromosomes_scale = hs1:0.25r
r
表示相对于圆的周长
2.2 相对图像缩放多个 ideogram
通过正则表达式,可以调整多个 ideogram
的比例
chromosomes_scale = /mm/:0.1r
可以混合相对比例和绝对范围,但是相对比例总和不能超过 1
,例如
chromosomes_scale = hs1:0.75r;hs2:0.75r
circos
不会检查比例表达式的完整性,有两个 ideogram
分别占据 0.75
,将会产生奇怪的效果。
2.3 多个 ideogram 作为一组进行缩放
假设,所有小鼠染色体作为一个组占据图像的 50%
,你可以通过计算每种尺寸的相对大小来实现。例如 0.5/6=0.0833
chromosomes_scale = /mm/:0.0833r
更好的方法是,使用后缀 n
,表示将图像平均分为正则表达式匹配的数量
chromosomes_scale = /mm/:0.5rn
每个匹配的 ideogram
大小是一样
2.4 多个基因组的应用
考虑显示三个基因组(人、小鼠、大鼠)的图像。将大鼠和小鼠的染色体限制为图像的 1/4
chromosomes_color = /hs/:green;/mm/:red;/rn/:blue
chromosomes_scale = /mm/:0.25rn;/rn/:0.25rn
3. 区间范围调整
同一染色体不同 ideogram
区域的缩放。
我们通过将 1
、2
号染色体分为 3
个区域,绘制 0-60Mb
区域。生成的图像中有 6
个 ideogram
。
chromosomes = hs1[a]:0-20;hs2[b]:0-20;hs1[c]:20-40;hs2[d]:20-40;hs1[e]:40-60;hs2[f]:40-60
chromosomes_scale = a:0.5;b:0.5;e:5;f:5
我们使用 (a,b,c,...
) 标签来表示每个 ideogram
,仅用染色体名是无法唯一指定相应的 ideogram
。
4. 区域缩放
局部比例调整是 circos
最酷的功能之一。在本节之前的示例中,我们展示了如何通过将染色体分成多个 ideogram
并为每个 ideogram
分配不同的比例值来调整局部缩放。
但是,这种方法要求创建多个 ideogram
,有时这种方式是可行的。尤其是在需要裁剪和缩放数据域的情况下。
局部比例调整适用于在不进行裁剪的情况下缩放部分数据域。你可以把 ideogram
当做橡皮筋,应用局部比例调整就相当于局部拉伸或压缩橡皮筋。
你可以使用 <zooms>
块调整长度比例,例如
<zooms>
<zoom>
chr = hs1
start = 100u
end = 120u
scale = 5
</zoom>
<zoom>
chr = hs1
start = 120u
end = 130u
scale = 10
</zoom>
</zoom>
将 hs1
的 100-120Mb
局部拉伸 5
倍,120-130Mb
拉伸 10
倍。
注意,缩放的定义与 chromosomes
和 chromosomes_breaks
无关。缩放设置只有应用在绘制的基因组区域时才会对图像产生影响。
在下面这个例子中,我们在 hs1
和 hs2
上定义了几个缩放区域。在 hs1
中对部分区域进行放大,在 hs2
中对部分区域缩小。
5. 重叠缩放区域
当定义了重叠缩放区域时,ideogram
位置的缩放级别被视为任何重叠区域中最高的
例如,你定义了如下区域
100-200Mb - 2x
150-180Mb - 3x
160-170Mb - 5x
其效果如下
100-150Mb - 2x
150-160Mb - 3x
160-170Mb - 5x
170-180Mb - 3x
180-200Mb - 2x
6. 平滑范围
在这个例子中,我们定义了一系列逐渐增大/减小的区域,以免在短距离内发生较大的比例变化。
为了自动平滑缩放,每个 zoom
块都可以定义 smooth_distance
和 smooth_steps
参数。当使用平滑时,可以为感兴趣的区域定义缩放,然后定义平滑步长和平滑距离
<zoom>
chr = hs1
start = 120u
end = 125u
scale = 10
smooth_distance = 2r
smooth_steps = 10
</zoom>
在这个块中,我们在 1
号染色体上定义了一个 5Mb
的区域,并放大 10
倍。平滑距离为 2r=10Mb
,平滑步长为 10
,所以每个平滑步长为 10Mb/10=1Mb
。并且缩放在平滑区间内线性减小。
7. 组合缩放
我们将本部分中讨论的所有比例调整合并到一个图像中
在这个例子中,我们展示了 1-3
号染色体,2
号染色体被分为 3
个 ideogram
。
chromosomes = hs1;hs2[a]:0-100;hs2[b]:150-);hs3
chromosomes_breaks = -hs2:40-60
chromosomes_scale = a:2;b:0.5
8. 数据范围调整
在这个例子中,我们使用局部比例调整来吸引人们注意 1
号和 2
号染色体上的稀疏数据区域。
使用局部比例调整的好处是数据不会被裁剪,因此绘制了所有的数据点