通过指定一个染色体文件,就可以在​​circos​​中创建一个基本的圈图了。除了这种基本用法之外,还有很多的技巧。本章介绍染色体相关的进阶技巧,涉及到以下几个参数

  1. chromosomes_display_default
  2. chromosomes
  3. chromosomes_reverse
  4. chromosomes_order
  5. chromosomes_breaks
  6. chromosomes_colors
  7. chromosomes_radius

​chromosomes_display_default​​​用于控制显示的染色体的个数,默认情况下,这个参数的值为​​yes​​​, 会展示染色体文件中所有的染色体。当我们想要对染色体进行过滤时,比如只展示其中的一部分染色体,就需要将这个参数和​​chromosomes​​这个参数结合使用。示例如下:

chromosomes_display_default = no
chromosomes = hs1;hs2;hs3;hs4;hs5

​chromosomes​​​参数指定需要显示的染色体的​​name​​, 多条染色体之间用分号分隔, 上面的示例中,在圈图上只会显示1-5共5条染色体。

​chromosomes_reverse​​​参数将指定染色体倒置,默认情况下,所有染色体会沿着同一个方向(顺时针或者逆时针,这个取决于​​angle_orientation​​参数的值)排列,当想要将指定的染色体反向时,可以使用这个参数,示例如下

chromosomes_reverse = hs2;hs3

看下面的示意图,图中所有染色体沿着逆时针方向排列,从chr1到chr5, 对应的刻度也是沿逆时针方向从小到大,设置了​​chromosomes_reverse​​​参数之后,2号和3号染色体的进行了倒置,变成了相反方向,对应的刻度在逆时针方向上,变成了由大到小。
circos染色体进阶技巧_赋值
​​​chromosomes_order​​ 指定染色体排列的顺序,有两种使用方式:

1. 绝对定位法

示例如下

chromosomes  = hs1;hs2;hs3;hs4;hs5
chromosomes_order = hs2,hs3,hs1,hs5,hs4

在绝对定位法中,需要将所有的染色体都指定出来,​​chromosomes_order​​中染色体的顺序就是图中染色体的顺序。

2. 相对定位法

示例如下

chromosomes_order = hs3,hs5,hs4

在相对定位法中,只需要指定部分染色体的顺序就可以了,示例用法中,将3-5号染色体的顺序指定为hs3,hs5,hs4, 只调整了这三条染色体的顺序,1号染色体和2号染色体的顺序不变,所以最终的顺序为hs1, hs2, hs3, hs5, hs4。

​chromosomes_breaks​​​字面意思是将染色体打断,其值是一个区域,这部分染色体区域在图中不会显示,而且会用​​|​​符号代表隔断,示意图如下:

circos染色体进阶技巧_绝对定位_02

上图中对应的​​break​​部分的写法如下:

chromosomes_display_default = no
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:0-10,75-);-hs7:75-);-hs8:75-)

​chromosomes​​​中,​​hs1:0-100​​​表示只画1号染色体上0-100这段区域;​​chromosomes_breaks​​​中,​​-hs1:25-75​​​表示1号染色体上25-75这段区域作为一个​​breaks​​​不显示,​​-hs8:75-)​​​表示8号染色体上75之后的整段区域作为一个​​break​​。

这里负号表示不想要显示的区域,假设有1到5号染色体,如果只想要显示1到3号染色体,有以下两种写法:


chromosomes_display_default = yes
chromosomes = -hs4;-hs5;

chromosomes_display_default = no
chromosomes  = hs1;hs2;hs3


​chromosomes_colors​​代表染色体的颜色,默认情况下染色体文件中最后一列代表每条染色体的颜色,当想要改变文件中指定的颜色时,就可以使用这个参数,示例如下

chromosomes_color  = hs1:red;hs2:green

为指定的染色体设定颜色,染色体和颜色之间用冒号分隔,多条染色体之间用分号分隔。除了指定染色体​​name​​, 还可以使用正则表达式的写法,示例如下

chromosomes_color  = /hs/:red;/mm/:green

​/hs/​​​表示染色体名字中包含​​hs​​​字符的所有染色体,上述写法将名字包含​​hs​​​的所有染色体指定为红色,包含​​mm​​​的所有染色体指定为绿色。
​​​chromosomes_radius​​指定染色体的半径, 示例如下

chromosomes_radius  = hs1:0.40r;hs2:0.43r

为每条染色体指定的​​radius​​,可以形成如下的效果:

circos染色体进阶技巧_绝对定位_03
这个参数在我们想要突出某几条染色体时特别有用,比如下图

circos染色体进阶技巧_赋值_04

将4号染色体对应的​​radius​​​调整的比其他染色体小一点,就造成了一个凹进去的效果。这部分凹进去的区域相比其他区域,就比较突出了。做法也很简单,只需要调整​​chromosomes_radius​​​参数的值,后续的​​plots​​​中的设置所有染色体都相同,因为​​plots​​​中的​​r0​​​和​​r1​​​是相对每条染色体的​​radius​​​而言的。其实为了突出某条染色体,可以将其​​radius​​设置的更大一点,制造一个凸出来的效果,会更加的博人眼球。

最后介绍一种特别的写法,示例如下

chromosomes_display_default = no
chromosomes = hs1[a]:1-50;hs1[b]:150-)
chromosomes_radius = a:0.9r;b:0.8

​hs1[a]:1-50​​​和​​hsa[b]:150-)​​​将1号染色体分成了两个部分,1-50区域用字母​​a​​​表示,150之后的区域用字母b表示,这样的后续设置染色体相关参数时,就可以了采用a和b来表征对应的区域了;​​a​​​和​​b​​​相当于为染色体上的部分区域设置了​​name​​,方便了参数的赋值。