ideogram(三)
4、ideogram 修剪
如果你不想绘制整条染色体,则可以选择创建一个轴断点并从中删除一个区域
可以通过两种方法实现:
- 指定要绘制的内容
- 指定不要绘制的内容
注意:永远不要用核型文件来修剪染色体,也就是说,在核型文件中,染色体的开始和结束位置反映的是实际的染色体大小,而不是你希望绘制的区域。
4.1 指定染色体范围
若要指定绘制的染色体区域,语法为:
chromosomes = ...;ID:START-END;...
来个例子
chromosomes_units = 1000000
chromosomes = hs1:0-100;hs2:50-150;hs3:50-100;hs4;hs5;hs6;hs7;hs8
将会绘制 8
条染色体,但是 hs1
只有0-100Mb
,hs2
仅 50-150Mb
,hs3
为 50-100Mb
,起始和终止之间范围单位为 chromosomes_units
4.2 chromosomes_units
这个参数定义了一个乘数,该乘数可以应用于配置文件中的许多其他变量值,一些值会自动应用此乘数(如染色体范围),另外一些则需要显示指定后缀 u
,例如
spacing = 5u
在这里,刻度间隔为 5u
,如果 chromosomes_units=1000000
,那间隔是 5Mb
可以使用绝对值定义染色体单位,如 1000000 (1Mb)
,也可以使用相对值,如 0.005r
这里相对的意思是所有染色体总大小的相对值
例如,你在图片中显示了整个人类基因组(3Gb
),设置 chromosome_units=0.001r
,就相当于 chromosome_units
的值设置为 3Mb (0.001 * 3Gb)
使用相对值,可以在图像中的染色体数量和大小发生变化是,用 chromosomes_unit
值在元素之间保持相对恒定的间距
4.3 压缩范围
除了指定要绘制的内容外,还可以通过参数 chromosomes_breaks
来限制范围
chromosomes = hs1;hs2;hs3;hs4;hs5;hs6;hs7;hs8
chromosomes_breaks = -hs1:100-200;-hs2:0-50;-hs2:150-);-hs3:0-50
在 chromosomes_breaks
定义的染色体都要加上 -
以及从图像中排除的范围
你可以用为染色体指定多个范围,用 (
表示染色体的起始端,用 )
表示染色体的末端
4.4 组合区域声明
你可以在 chromosomes
和 chromosomes_breaks
字段中进行组合区域声明,如
chromosomes = hs1:0-100;hs2:0-100;hs3:0-100;hs4:0-100;hs5;hs6;hs7;hs8
chromosomes_breaks = -hs1:25-75;-hs2:25-75;-hs3:25-75;-hs4:25-75;-hs5:75-);-hs6:75-);-hs7:75-);-hs8:75-)
5、间距和轴断点
不同染色体之间的间隔通过 <ideogram><spacing>
块中的 default
参数来控制
5.1 ideogram 间距
5.1.1 绝对间距
可以用相对染色体单位来设置该参数,例如,如果 chromosomes_units=1000000
且间距值为 10u
,则图像上实际间隔为 10Mb
<ideogram>
<spacing>
default = 10u
</spacing>
</ideogram>
5.1.2 相对间距
你也可以将参数设置为相对于染色体的总大小.
当你想要进行添加或删除 ideograms
操作时,能够保持 ideogram
之间具有固定的间距
<ideogram>
<spacing>
default = 0.01r
</spacing>
</ideogram>
将间距设置为所有染色体总大小的 1%
,接近圆周图形的 1%
.
当你创建染色体布局并希望调整间距值,使用绝对值格式
当你可能需要从图像中添加或删除 ideograms
,又不想让间距值波动时,使用相对值格式
5.2 更改指定 ideograms 之间的间距
特定 ideograms
之间的间距可以通过 <pairwise>
块进行调整
<ideogram>
<spacing>
default = 10u
<pairwise hs1>
spacing = 5u
</pairwise>
<pairwise hs3 hs4>
spacing = 0.25r
</pairwise>
</spacing>
</ideogram>
当指定某一 ideogram
的名称时,其两侧的间距都会受到影响
第一个 pairwise
块 hs1
周围创建 5u
的间距
当指定两个 ideogram
的名称时,它们之间的间距将会受到影响
如果使用相对间距,则其含义为相对于默认间距的大小。因此, hs3
和 hs4
之间的间距将为 2.5u
,即 0.25 * 10u
为图例留出空间
为了给图例腾出空间,可以使用 <pairwise>
块在图像顶部调整 ideograms
之间的间距,然后使用 angle_offset
参数旋转图像,使间距沿垂直线居中
# ideogram.conf
<ideogram>
<spacing>
# 设置默认间距
default = 0.001r
<pairwise hsy hs1>
# 设置 hsY 和 hs1 之间的间距为图像的 50 x 0.1%
spacing = 50r
</pairwise>
</spacing>
</ideogram>
# circos.conf
<image>
# 覆盖在 etc/image.conf 中定义的 angle_offset
angle_offset* = -82
<<include etc/image.conf>>
</image>
这个例子假定 hsY
和 hs1
是图像中的最后一条和第一条染色体,间隔位于 12
点钟位置
默认 angle_offset=-90
,表示 ideograms
的起始在 12
点钟位置。通过减小此偏移量,图像会稍微顺时针旋转,你需要自己根据数据确定这个偏移量
5.3 轴断点
当只要绘制染色体的一个子区域时,你可以选择在 ideogram
上放置轴断点,以表明染色体范围大于图示范围
有两种轴断点的样式,其属性在 <break_style>
块中定义
轴断点的大小由 break
参数控制,可以使用绝对单位 u
或者相对单位 r
<ideogram>
<spacing>
default = 10u
break = 2u
axis_break = yes
axis_break_style = 2
axis_break_at_edge = yes
<break_style 1>
stroke_color = black
fill_color = blue
thickness = 0.25r
stroke_thickness = 2
</break_style>
<break_style 2>
stroke_color = black
stroke_thickness = 3
thickness = 1.5r
</break_style>
</spacing>
</ideogram>
如果 ideogram
不是从其染色体的开始或结尾位置开始,则可以选择在边缘放置一个轴断点 axis_break_at_edge=yes
thickness
参数定义了断裂的径向范围,可以用相对于 ideogram
的厚度来表示(如,0.25r
),或者用绝对像素大小设置
通常,断裂样式 1
的厚度 thickness
应该 <1r
,样式 2
的厚度 thickness
应该 >1r
样式 1
定义的轴断点使用矩形来连接 ideogram
的断点,样式 2
使用两条径向线表示断点。断点的大小与两个 ideogram
之间的间距无关,因此,如果两个相邻的 ideogram
在相邻末端都有断点,则他们之间的总空间就是断点大小和 ideogram
间距之和。
6、标识(tags)
到目前为止,ideogram
仅由其对应的染色体 ID
定义,
例如,在你的核型文件中定义了 hs1,hs2,hs3
等等,然后在 chromosomes
, chromosomes_order
和 chromosomes_breaks
参数中使用同样的 ID
ideogram
标识允许你使用唯一的标签来标识 ideogram
区域,并允许对来自同意染色体的不同区域进行自定义排序
来看一个例子
chromosomes = hs1;hs2;hs3
chromosomes_breaks = -hs1:50-150;-hs2:50-150
将会以默认顺序绘制 hs1:0-50, hs1:150-), hs2:0-50, hs2:150-)
和 hs3
如果要调整 hs1
和 hs2
的顺序,则必须在 chromosomes
字符串中明确定义这些区域,并为其分配标签
chromosomes = hs1[a]:0-50;hs1[b]:150-);hs2[c]:0-50;hs2[d]:150-);hs3[e]
现在,每个区域都与一个唯一标识(a b c d e
)相关联,标识的名字可以是任意的
标识可用于指定裁剪后的 ideogram
区域的顺序
chromosomes_order = ^,a,c,e,|,b,$
此命令字符串要求图形以 a c e
标记的 ideogram
开头,c
标记的 ideogram
结尾。最后的顺序为:a c e d b
默认情况下,标识(tag
)会被添加到 ideogram
的标签(label
)中,如果不想这样做,可以设置
<ideogram>
label_with_tag = no
</ideogram>
DEBUGGING
如果在使用标识和裁剪时 circos
的行为看起来很奇怪,那么,你可以在命令行中使用 -debug_group chrfilter
来详细地了解发生了什么
$circos -debug_group chrfilter
或者在配置文件中设置 debug_group
参数的值
<<include etc/housekeeping.conf>>
debug_group* = chrfilter
然后再命令行中运行不带参数的标签
$circos -debug_group
(未完待续...)
网友评论