这一节的目标是画出下面的图
所谓突出标记,或者说亮显强调,多是通过大的反差明显或者符合色彩心理学的色块来将数据分组强调出来。在使用circos绘制基因组时,可以使用这一办法,将不同区域同一组内的基因亮显出来。
首先需要定义数据结构。这里还需要上一节的关于染色体组型(karyotypes)数据结构的知识。
数据结构
ID START END |
这里的ID对应的是karyotypes数据文件当中的ID,start和end分别定义起始和终止的位置。下面就是具体的例子:
hs1 0259871 hs1 6694582686613 hs1 27279053991852 hs1 56454566816208 hs1 755391514224162 hs11515281516859159 hs1 1697358517838807 hs1 1863008629725898 hs1 3075858434604030 hs13479330735631322 |
数据保存在文本文件当中就可以了,之后由conf文件调用。
当然这一数据文件可以更复杂,用于定义每个highlight的位置,色彩,以及宽度等等。比如
hs1 12989721300443 fill_color=blue hs1 13117381324571 fill_color=red,r0=0.6r,r1=0.6r+50p hs1 13970261421444fill_color=green,r0=1.1r,r1=1.15r hs1 14374171459927 fill_color=green,r0=1.1r,r1=1.15r hs1 15407461555847fill_color=yellow hs1 15609621645635 fill_color=purple hs1 16241791645623 fill_color=grey |
设置文件
与之前一致的,我们需要设置好circos的设置文件,它需要包括前一节介绍的全部:circos.conf, ideogram.conf,和ticks.conf来定义一,数据源,二如何画染色体,三如何画坐标。而highlight的部分,直接定在circos.conf文件当中也好,或者写在highlight.conf当中,由circos.conf来调用也是一样的。我们来看具体circos.conf的示例:
<colors><<include etc/colors.conf>><<include etc/brewer.conf>></colors> <fonts><<include etc/fonts.conf>></fonts> <<include ideogram.conf>><<include ticks.conf>> <image><<include etc/image.conf>></image>karyotype = data/karyotype/karyotype.human.hg19.txt chromosomes_units =1000000 chromosomes_display_default= no chromosomes = hs1;hs2;hs3 |
这一部分,与之前一节别而二致。其下的内容就是如何载入highlight的数据了:
################################################################## define highlights within <highlights> block## note that the radial axis grid is drawn on top of the highlights <highlights> # the default value for z-depth and fill_color for all highlights z =0 fill_color = green # drawn from 60% radius to inner edge of ideogram# radius and will be green (default color)<highlight> file = data/3/genes.large.txt r0 = 0.6r r1 =dims(ideogram,radius_inner)</highlight> # the second set will be drawn on top of the first (higher z-depth)# and will be 100px wide in the radial direction, starting at 0.7x of# the ideogram radius<highlight> file = data/3/genes.large.txt r0 =0.7r r1 = 0.7r + 100p z =5 fill_color = red </highlight> # by drawing black with transparency, you can darken the color# in the track below<highlight> file = data/3/genes.large.txt r0 = 0.7r + 100p r1 = 0.7r + 200p z =10 fill_color =black_a5 </highlight> # the third set will be outside the circle (r0,r1>1) and will be# blue with dark blue border around each highlight <highlight> file = data/3/genes.large.txt r0 = 1.075r r1 = 1.125r fill_color = blue stroke_color = vdblue stroke_thickness =2</highlight> # orange strip in the middle <highlight> file = data/3/genes.large.txt r0 = 1.09r r1 =1.11r fill_color = orange z =5</highlight> </highlights> |
我们注意到,在highlights的定义当中,首先定义了两个默认属性z-depth和fill_color。而每个highlight都可以自定义自己的属性,而在数据文件中,也可以定义得更加具体。
其它可定义的属性有:
r0 - highlight的内径 r1 - highlight的外径 offset - 内外径的偏移值 fill_color - highlight slice的填充色 stroke_color - highlight边框颜色,如果指定的边框大小的话 stroke_thickness - 边框大小 z - z轴,决定着划图的先后次序,后画的可能会盖住先画的 ideogram - toggles the position of the highlight to be within the ideogram extent |
设置好设置文件之后,就可以使用circos出图了。
/path/to/circos/bin/circos -conf path/to/circos.conf |
注意,这里include会从circos所在的目录开始寻找,而不是当前目录。
上面的画出来的图,使用的是最简单的数据结构。如果我们需要对每一节的高显部分都分明定义色彩,位置等属性,那就需要使用上面提到的复杂的数据结构了。其效果如下:
本节所使用的代码下载highlight