基因组分析:Circos作图基础(二)
大家好,我是三土,非常高兴又和大家见面了!上一周我简单的说了一下如何画出一个简单的基因组圈图,但是目前这个图形看起来实在太单调了,我们需要添加一些额外的信息。
那我们打开上一期的circos.conf文件,在后面加入以下信息:
show_ticks = yes
show_tick_labels = yes
<ticks>
skip_first_label = no
skip_last_label = no
radius = dims(ideogram,radius_outer)
color = black
thickness = 2p
size = 30p
multiplier = 1e-6
format = %.2f
<tick>
spacing = 20000b
size = 10p
show_label = no
thickness = 3p
</tick>
<tick>
spacing = 100000b
size = 20p
show_label = yes
label_size = 25p
label_offset = 10p
format = %.2f
</tick>
</ticks>
这些信息的意思是将染色体的大小以刻度的形式在圈图上展示出来。具体每一行的意思跟上一期的描述是类似的,具体可以回看Circos作图基础(一),这里不再赘述。
这里主要讲一讲这个format的意思:%d 表示结果为整数;%f 结果为浮点数; %.1f 结果为小数点后保留1位; %.2f 结果为小数点后保留2位。
OK,我们再一次运行circos程序,即可看到一下结果:
我们可以看到在圈图的周围标注上了刻度,这个刻度代表了染色体的位置。
但是我们还是希望加入一些信息,比如基因组的注释信息等。如果我们想在圈图上画上基因的信息(例如正链上的基因或者负链上的基因),我们可以先提取基因组的基因组注释GFF文件信息,比如下面这样:
scaffold150251 50535
scaffold169374 69886
scaffold169961 71241
scaffold171337 71960
scaffold171957 72610
scaffold173051 74196
scaffold180568 81518
scaffold196098 96289
scaffold196641 96991
scaffold197152 97901
scaffold197898 98539
我们把这个信息单独放在一个文件里面,例如sensegene.gff(正义链),然后再建立一个文件,存放antisensegene.gff(反义链),接着在配置文件circos.conf写下列代码:
<highlights>
z = 0
<highlight>
file = sensegene.gff
r0 = 0.90r
r1 = 0.99r
fill_color = 169,169,169
</highlight>
<highlight>
file = antigene.gff
r0 = 0.81r
r1 = 0.90r
fill_color = 169,169,169
</highlight>
</highlights>
r0和r1代表这个图形的起始和终止分别距离圆心的距离。所以这次我们得到的图像是这样的(当然如果大家想换其他的颜色也是可以的,可以参照RGB表来选取自己喜欢的颜色:http://jsxzjh.bokee.com/3744988.html):
看起来是不是有点感觉了?我们还想在中间加一些其他的注释信息,比如rRNA,tRNA的注释,其实原理是一样的,我们选取ncRNA的GFF文件进行处理,我们把不同的ncRNA填充不同的颜色:
scaffold1 159172 159247fill_color=(255,0,0)
scaffold1 159256 159327fill_color=(255,0,0)
scaffold1 159412 159488fill_color=(255,0,0)
scaffold1 159525 159597fill_color=(255,0,0)
scaffold1 725393 725468fill_color=(255,0,0)
scaffold1 1085115 1085187fill_color=(255,0,0)
scaffold1 1098272 1099826fill_color=(0,0,255)
scaffold1 1100055 1102171fill_color=(0,191,255)
我们把正链和负链的信息分别存储在sense_strand_ncRNA.txt和antisense_strand_ncRNA.txt上,接着在circos.conf配置文件下填写以下代码:
<highlight>
file = sense_strand_ncRNA.txt
r0 = 0.69r
r1 = 0.78r
</highlight>
<highlight>
file = temp.txt
r0 = 0.69r
r1 = 0.691r
fill_color = black
</highlight>
<highlight>
file = antisense_strand_ncRNA.txt
r0 = 0.60r
r1 = 0.69r
</highlight>
为了不让正负链之间的图形展示看起来很突兀,我又加了一个temp.txt的文件,其格式为:
scaffold1 0 1102171
scaffold2 0 2826618
好了,再次运行看看,我们得到了什么结果:
看起来感觉好多了,但是我们还是缺了一些东西。我们还需要展示GC含量和GC偏向性,限于篇幅,我准备下一期再讲如何把这两个东西展示在上面。
下面把到目前为止的circos配置文件代码贴在下面,由于微信的问题,可能会有一些空格显示不全的现象,需要大家自己动手改正(吐槽一下伸手党,贴代码的目的是为了让大家亲手写一遍代码,纯粹的复制粘贴不可取哦):
<<includeetc/colors_fonts_patterns.conf>>
<image>
<<includeetc/image.conf>>
</image>
karyotype = karyotype.txt
chromosomes_units = 100000
chromosomes_display_default = yes
<ideogram>
<spacing>
default = 0.005r
</spacing>
radius = 0.80r
thickness = 6p
fill = yes
fill_color = deepskyblue
stroke_color = black
stroke_thickness = 1p
show_label = yes
label_font = light
label_radius = 1r + 110p
label_size = 30
label_parallel = yes
</ideogram>
show_ticks = yes
show_tick_labels = yes
<ticks>
skip_first_label = no
skip_last_label = no
radius = dims(ideogram,radius_outer)
color = black
thickness = 2p
size = 30p
multiplier = 1e-6
format = %.2f
<tick>
spacing = 20000b
size = 10p
show_label = no
thickness = 3p
</tick>
<tick>
spacing = 100000b
size = 20p
show_label = yes
label_size = 25p
label_offset = 10p
format = %.2f
</tick>
</ticks>
<highlights>
z = 0
<highlight>
file = sensegene.gff
r0 = 0.90r
r1 = 0.99r
fill_color = 169,169,169
</highlight>
<highlight>
file = antigene.gff
r0 = 0.81r
r1 = 0.90r
fill_color = 169,169,169
</highlight>
<highlight>
file = sense_strand_ncRNA.txt
r0 = 0.69r
r1 = 0.78r
</highlight>
<highlight>
file = temp.txt
r0 = 0.69r
r1 = 0.691r
fill_color = black
</highlight>
<highlight>
file = antisense_strand_ncRNA.txt
r0 = 0.60r
r1 = 0.69r
</highlight>
</highlights>
<<includeetc/housekeeping.conf>>
好了,如果大家对绘制圈图有什么意见或者建议,请及时跟我保持沟通哦,谢谢大家!
欢迎关注,欢迎转发~