Linux与生物信息基因家族等基因组组装

生信 | Circos实战

2021-06-23  本文已影响0人  生信卷王

写在前面

由于circos官网的教程太全面了,虽然好但反而感觉比较复杂,难易上手,因此我将他们精简了一下。由于官网的教程中包含的数据太杂了,所以我精简了数据与代码放到了扣扣群559758504中,有需要的自取吧。

更新日志

2021年11月3日追加更新:增加数据获取说明

每一个板块的数据,新增如何获取对应的数据,不过多多少少需要点Linux基础,看不懂也没关系,会用就行。只不过熟悉Linux的同学可以在此基础上玩出更多的花样。
链接:【生信 | circos文件准备大全(以拟南芥为例)】【生信 | Circos的安装

2021年10月26日追加更新:中文版Circos教程

https://irenexzwen.gitbooks.io/hello-gitbook/content/

一、画出轮廓

chr - hs1 1 0 249250621 chr1
chr - hs2 2 0 243199373 chr2
chr - ··· · · ········· ····
chr - hsY y 0 59373566 chry
vi circos.conf
#指定染色体文件(绝对/相对路径+文件名)
karyotype = data/karyotype/karyotype.human.txt  
#-----------------------------------------------------------------------------------
<ideogram>                #这是定义染色体相关参数的标签,以</ideogram>结尾,其中包括要设置的参数
<spacing>                 #定义染色体间隙宽度的标签,以</spacing>,其中包括要设置的参数
default = 0.005r          #r指的是圆的周长,设置0.5%圆的周长为间隙
#<pairwise hsY;hs1>       #可以用<pairwise>标签特别指定某些染色体的间隙(用的是ID),因为在大多数文章中,都会留一个大间隙,来放label
#spacing = 20r            #这里20r表示是相对default = 0.005r的20倍,也就是10%的圆的周长
#</pairwise>              #标签都要以</>结尾,
</spacing>                #间隙定义结束,下面是对染色体样式的调整
radius           = 0.90r  #轮廓的位置,这里的r指的是半径,由圆心到圆周上范围依次是0-1r,,超出部分将不再显示。
thickness        = 20p    #染色体整体的宽度,这里p指的是像素大小,也可以用r表示,1r=1500p
fill             = yes    #是否为染色体填充颜色,如果为yes,自动用第七列定义的颜色着色
stroke_color     = dgrey  #染色体边框的颜色,支持多种格式的输入,如:red或255,182,106
stroke_thickness = 2p     #染色体边框的粗细
</ideogram>               #定义染色体属性的标签结束
#-----------------------------------------------------------------------------------
#下面是每次都要复制粘贴上去的,他们属于circos自带的配置文件,用于调用颜色,距离,报错等信息
<image>                    #注意路径
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>> 
#官方没有提到下面的文件,但是没有这个文件会报错,所以还是加上去
<<include etc/housekeeping.conf>>
circos -conf circos.conf
染色体轮廓

二、增加刻度线与Label

#指定染色体文件(绝对/相对路径+文件名)
karyotype = data/karyotype/karyotype.human.txt  
#↓↓↓###########################################################
chromosomes_units = 1000000  #定义最小单位,即100万bp为一个units,即1u = 100w,后面刻度线都是基于此的操作,如果染色体长度都在5kw以上,推荐用100w,否则推荐用10w
#↑↑↑###########################################################
#-----------------------------------------------------------------------------------
<ideogram>                #这是定义染色体相关参数的标签,以</ideogram>结尾,其中包括要设置的参数
<spacing>                 #定义染色体间隙宽度的标签,以</spacing>,其中包括要设置的参数
default = 0.005r          #r指的是圆的周长,设置0.5%圆的周长为间隙
#<pairwise hsY;hs1>       #可以用<pairwise>标签特别指定某些染色体的间隙(用的是ID),因为在大多数文章中,都会留一个大间隙,来放label
#spacing = 20r            #这里20r表示是相对default = 0.005r的20倍,也就是10%的圆的周长
#</pairwise>              #标签都要以</>结尾,
</spacing>                #间隙定义结束,下面是对染色体样式的调整
radius           = 0.90r  #轮廓的位置,这里的r指的是半径,由圆心到圆周上范围依次是0-1r,,超出部分将不再显示。
thickness        = 20p    #染色体整体的宽度,这里p指的是像素大小,也可以用r表示,1r=1500p
fill             = yes    #是否为染色体填充颜色,如果为yes,自动用第七列定义的颜色着色
stroke_color     = dgrey  #染色体边框的颜色,支持多种格式的输入,如:red或255,182,106
stroke_thickness = 2p     #染色体边框的粗细
#↓↓↓##########################染色体标签###############################
show_label       = yes        #选择yes表示要显示label
label_font       = default    # 字体可以再 etc/fonts.conf 查看所有,默认为CMUBright-Roman
label_radius     = dims(image,radius)-60p  #使用dims()获取图像半径的大小,从而定位染色体标签的位置,也可以直接定义1.075r
label_size       = 30         #字体的大小
label_parallel   = yes        #将Label的方向设置为与染色体平行
#↑↑↑###########################################################
</ideogram>               #定义染色体属性的标签结束

#↓↓↓#########################刻度线###############################
show_ticks          = yes  #选择yes表示要显示刻度线
show_tick_labels    = yes  #选择yes表示要显示刻度线的数值
#定义刻度线的整体位置与形状
<ticks>                    #刻度线的转用标签,但凡是复数出现的,其下面的参数都表示全局参数,像下面的<tick>单数形式,都表示局部参数
radius           = 1r      #刻度线的位置,1r为最远距离,超过1r不再显示
color            = black
thickness        = 2p
multiplier       = 1e-6    #把刻度线标签(bp)缩小10万倍显示
format           = %d      #然后以整数的形式标记在刻度线上
#定义小的刻度线,且不显示数值
<tick>
spacing        = 5u        #最开始我们定义1u = 1000000,表示每500w bp显示一个小刻度线
size           = 10p
show_label     = no        #由于小的刻度线展示出来太密集,因此我们no不展示,默认不展示
</tick>
#定义大的刻度线,显示数值
<tick>
spacing        = 25u
size           = 15p
show_label     = yes
label_size     = 20p
label_offset   = 10p      #设置数值和刻度线之间的间隔
format         = %d
</tick>
</ticks>
#↑↑↑###########################################################

#-----------------------------------------------------------------------------------
#下面是每次都要复制粘贴上去的,他们属于circos自带的配置文件,用于调用颜色,距离,报错等信息
<image>                    #注意路径
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>> 
#官方没有提到下面的文件,但是没有这个文件会报错,所以还是加上去
<<include etc/housekeeping.conf>>
circos -conf circos.conf
增加刻度线与Label

三、增加内部连线(内含rule的使用方法,但使用到的不会太复杂)

hs1 465 30596 hs2 114046768 114076456
hs1 486 76975 hs15 100263879 100338121
hs1 486 30596 hs9 844 30515
hs1 486 9707 hsY 57762276 57771573
hs1 486 9707 hsX 154903076 154912373
#指定染色体文件(绝对/相对路径+文件名)
karyotype = data/karyotype/karyotype.human.txt  
chromosomes_units = 1000000  #定义最小单位,即100万bp为一个units,即1u = 100w,后面刻度线都是基于此的操作,如果染色体长度都在5kw以上,推荐用100w,否则推荐用10w
#-----------------------------------------------------------------------------------
#↓↓↓###########################################################
<links>
<link>
file          = data/5/segdup.txt   #指定存放内部连线数据的文件
radius        = 0.7r                #radius定义内部连线区域的大小,表示从0-0.7r均为连线区域,预留出位置为了给其他图形留出空间
bezier_radius = 0r            #控制连线的弯曲程度,数值越大越弯曲,范围为0r-1.5r
crest = 1  #简单理解为弯曲点的位置,越大弯曲点越向中中靠拢。由外到内数值依次减小,范围为0-1.25
thickness     = 2  #连线的粗细
#以下为开启丝带模式,其宽度与坐标差值相同,当然为了绘制出明显的丝带效果,你要人为的去夸大坐标差值才能明显显示出来
#ribbon = yes
#flat = yes
#stroke_thickness = 2
<rules>  #用来做条件判断的标签,圈图各式各样就在于rule的不同使用
<rule>
condition     = var(intrachr)        #condition表示条件,=后面为具体的动作。此为获取在同一条染色体间的连线
show          = no                   #规定在同一条染色体间的连线不展示
</rule>
<rule>
condition     = 1                  #condition = 1表示永远成立
color         = eval(var(chr2))    #连线的颜色与对应的染色体的颜色相同
flow          = continue           #当上面的rule执行完之后继续执行下面的rule,可以改为stop
</rule>
<rule>
condition  = max(var(size1),var(size2)) < 50kb  # 如果连线端点的值小于50kb则不显示,这个我不是特别确定。
show       = no
</rule>
</rules>
</link>
</links>
#↑↑↑###########################################################
<ideogram>                #这是定义染色体相关参数的标签,以</ideogram>结尾,其中包括要设置的参数
<spacing>                 #定义染色体间隙宽度的标签,以</spacing>,其中包括要设置的参数
default = 0.005r          #r指的是圆的周长,设置0.5%圆的周长为间隙
#<pairwise hsY;hs1>       #可以用<pairwise>标签特别指定某些染色体的间隙(用的是ID),因为在大多数文章中,都会留一个大间隙,来放label
#spacing = 20r            #这里20r表示是相对default = 0.005r的20倍,也就是10%的圆的周长
#</pairwise>              #标签都要以</>结尾,
</spacing>                #间隙定义结束,下面是对染色体样式的调整
radius           = 0.90r  #轮廓的位置,这里的r指的是半径,由圆心到圆周上范围依次是0-1r,,超出部分将不再显示。
thickness        = 20p    #染色体整体的宽度,这里p指的是像素大小,也可以用r表示,1r=1500p
fill             = yes    #是否为染色体填充颜色,如果为yes,自动用第七列定义的颜色着色
stroke_color     = dgrey  #染色体边框的颜色,支持多种格式的输入,如:red或255,182,106
stroke_thickness = 2p     #染色体边框的粗细
show_label       = yes        #选择yes表示要显示label
label_font       = default    # 字体可以再 etc/fonts.conf 查看所有,默认为CMUBright-Roman
label_radius     = dims(image,radius)-60p  #使用dims()获取图像半径的大小,从而定位染色体标签的位置,也可以直接定义1.075r
label_size       = 30         #字体的大小
label_parallel   = yes        #将Label的方向设置为与染色体平行
</ideogram>               #定义染色体属性的标签结束
show_ticks          = yes  #选择yes表示要显示刻度线
show_tick_labels    = yes  #选择yes表示要显示刻度线的数值
#定义刻度线的整体位置与形状
<ticks>                    #刻度线的转用标签,但凡是复数出现的,其下面的参数都表示全局参数,像下面的<tick>单数形式,都表示局部参数
radius           = 1r      #刻度线的位置,1r为最远距离,超过1r不再显示
color            = black
thickness        = 2p
multiplier       = 1e-6    #把刻度线标签(bp)缩小10万倍显示
format           = %d      #然后以整数的形式标记在刻度线上
#定义小的刻度线,且不显示数值
<tick>
spacing        = 5u        #最开始我们定义1u = 1000000,表示每500w bp显示一个小刻度线
size           = 10p
show_label     = no        #由于小的刻度线展示出来太密集,因此我们no不展示,默认不展示
</tick>
#定义大的刻度线,显示数值
<tick>
spacing        = 25u
size           = 15p
show_label     = yes
label_size     = 20p
label_offset   = 10p      #设置数值和刻度线之间的间隔
format         = %d
</tick>
</ticks>
#-----------------------------------------------------------------------------------
#下面是每次都要复制粘贴上去的,他们属于circos自带的配置文件,用于调用颜色,距离,报错等信息
<image>                    #注意路径
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>> 
#官方没有提到下面的文件,但是没有这个文件会报错,所以还是加上去
<<include etc/housekeeping.conf>>
sed -i 's/hsX/hsx/g' data/karyotype/karyotype.human.txt
sed -i 's/hsY/hsy/g' data/karyotype/karyotype.human.txt
sed -i 's/hsX/hsx/g' data/5/segdup.txt
sed -i 's/hsY/hsy/g' data/5/segdup.txt
circos -conf circos.conf
增加内部连线结果

四、选取特定的染色体画图

#在上面代码的chromosomes_units = 1000000后面加上下面的命令就可以了
chromosomes_display_default = no  #先展示所有染色体
chromosomes                 = /hs[1234]$/  #然后使用正则表达式,选择1234条染色体
<colors>  #原来的颜色太丑了,重新定义颜色,注意重新定义颜色都需要加上*号
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
circos -conf circos.conf

五、增加柱形图

hs1 0 1999999 180.0000         |#hs1 0 1999999 113.0000,20.0000,7.0000,40.0000
hs1 2000000 3999999 34.0000    |#hs1 2000000 3999999 34.0000,0.0000,0.0000,0.0000
hs1 4000000 5999999 2.0000     |#hs1 4000000 5999999 2.0000,0.0000,0.0000,0.0000
hs1 6000000 7999999 5.0000     |#hs1 6000000 7999999 1.0000,4.0000,0.0000,0.0000
#指定染色体文件(绝对/相对路径+文件名)
karyotype = data/karyotype/karyotype.human.txt  
chromosomes_units = 1000000  #定义最小单位,即100万bp为一个units,即1u = 100w,后面刻度线都是基于此的操作,如果染 色体长度都在5kw以上,推荐用100w,否则推荐用10w
chromosomes_display_default = no  #先展示所有染色体
chromosomes                 = /hs[1234]$/  #然后使用正则表达式,选择1234条染色体
<colors>  #原来的颜色太丑了,重新定义颜色,注意重新定义颜色都需要加上*号
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
#-----------------------------------------------------------------------------------
#↓↓↓###########################################################
#单一柱形图
<plots>
<plot>
type = histogram    #首先指明画图类型
file = data/5/segdup.hs1234.hist.txt
r1   = 0.88r    #限制直方图显示的区域
r0   = 0.81r    #限制直方图显示的区域
fill_color = vdgrey  #给直方图填充颜色
extend_bin = no  #一般情况下,柱形图也会有完整的一圈,但设置了extend_bin = no则不会显示没有value的区域
<rules>
</rules>
</plot>
#堆叠柱形图
<plot>
type = histogram
file = data/5/segdup.hs1234.stacked.txt    #有四列value时,展示的时候对将四个value堆叠展示
r1   = 0.99r
r0   = 0.92r
fill_color  = hs1,hs2,hs3,hs5    #数据中有四列value,因此定义填充色的时候,不像fill_color = vdgrey只定义一个,要同时定义四种颜色,hsN是不同的颜色
orientation = in    #定义柱形图向内还是向外
extend_bin  = no
</plot>
</plots>
#↑↑↑###########################################################
<links>
<link>
file          = data/5/segdup.txt   #指定存放内部连线数据的文件
radius        = 0.7r                #radius定义内部连线区域的大小,表示从0-0.7r均为连线区域
bezier_radius = 0r            #控制连线的弯曲程度,数值越大越弯曲,范围为0r-1.5r
crest = 1
#bezier_radius_purity = 0.5 
#color         = black_a4  #连线的颜色
thickness     = 2  #连线的粗细
#ribbon = yes
#flat = yes
#stroke_thickness = 2
<rules>  #用来做条件判断的标签,圈图各式各样就在于rule的不同使用
<rule>
condition     = var(intrachr)        #condition表示条件,=后面为具体的动作。此为获取在同一条染色体间的连线
show          = no                   #规定在同一条染色体间的连线不展示
</rule>
<rule>
condition     = 1  #condition     = 1表示永远成立
color         = eval(var(chr2))    #连线的颜色与对应的染色体的颜色相同
flow          = continue      #当上面的rule执行完之后继续执行下面的rule,可以改为stop
</rule>
<rule>
condition  = max(var(size1),var(size2)) < 2kb
show       = no
</rule>
</rules>
</link>
</links>
<ideogram>                #这是定义染色体相关参数的标签,以</ideogram>结尾,其中包括要设置的参数
<spacing>                 #定义染色体间隙宽度的标签,以</spacing>,其中包括要设置的参数
default = 0.005r          #r指的是圆的周长,设置0.5%圆的周长为间隙
#<pairwise hsY;hs1>       #可以用<pairwise>标签特别指定某些染色体的间隙(用的是ID),因为在大多数文章中,都会留一 个大间隙,来放label
#spacing = 20r            #这里20r表示是相对default = 0.005r的20倍,也就是10%的圆的周长
#</pairwise>              #标签都要以</>结尾,
</spacing>                #间隙定义结束,下面是对染色体样式的调整
radius           = 0.90r  #轮廓的位置,这里的r指的是半径,由圆心到圆周上范围依次是0-1r,,超出部分将不再显示。
thickness        = 20p    #染色体整体的宽度,这里p指的是像素大小,也可以用r表示,1r=1500p
fill             = yes    #是否为染色体填充颜色,如果为yes,自动用第七列定义的颜色着色
stroke_color     = dgrey  #染色体边框的颜色,支持多种格式的输入,如:red或255,182,106
stroke_thickness = 2p     #染色体边框的粗细
show_label       = yes        #选择yes表示要显示label
label_font       = default    # 字体可以再 etc/fonts.conf 查看所有,默认为CMUBright-Roman
label_radius     = dims(image,radius)-60p  #使用dims()获取图像半径的大小,从而定位染色体标签的位置,也可以直接定义1.075r
label_size       = 30         #字体的大小
label_parallel   = yes        #将Label的方向设置为与染色体平行
</ideogram>               #定义染色体属性的标签结束
show_ticks          = yes  #选择yes表示要显示刻度线
show_tick_labels    = yes  #选择yes表示要显示刻度线的数值
#定义刻度线的整体位置与形状
<ticks>                    #刻度线的转用标签,但凡是复数出现的,其下面的参数都表示全局参数,像下面的<tick>单数形式,都表示局部参数
radius           = 1r      #刻度线的位置,1r为最远距离,超过1r不再显示
color            = black
thickness        = 2p
multiplier       = 1e-6    #把刻度线标签(bp)缩小10万倍显示
format           = %d      #然后以整数的形式标记在刻度线上
#定义小的刻度线,且不显示数值
<tick>
spacing        = 5u        #最开始我们定义1u = 1000000,表示每500w bp显示一个小刻度线
size           = 10p
show_label     = no        #由于小的刻度线展示出来太密集,因此我们no不展示,默认不展示
</tick>
#定义大的刻度线,显示数值
<tick>
spacing        = 25u
size           = 15p
show_label     = yes
label_size     = 20p
label_offset   = 10p      #设置数值和刻度线之间的间隔
format         = %d
</tick>
</ticks>
#-----------------------------------------------------------------------------------
#下面是每次都要复制粘贴上去的,他们属于circos自带的配置文件,用于调用颜色,距离,报错等信息
<image>                    #注意路径
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>> 
#官方没有提到下面的文件,但是没有这个文件会报错,所以还是加上去
<<include etc/housekeeping.conf>>
circos -conf circos.conf
柱形图结果

六、增加热图

hs1 0 1999999 113.0000 id=hs1
hs1 0 1999999 40.0000 id=hs4
hs1 0 1999999 20.0000 id=hs2
hs1 0 1999999 7.0000 id=hs3
hs1 2000000 3999999 34.0000 id=hs1
hs1 2000000 3999999 0.0000 id=hs2
hs1 2000000 3999999 0.0000 id=hs3
hs1 2000000 3999999 0.0000 id=hs4
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.89r
r0    = 0.88r
color = hs1_a5,hs1_a4,hs1_a3,hs1_a2,hs1_a1,hs1    #热图的不同配色方案
scale_log_base = 0.25    #均一化数据
</plot>
<plot>    #以下都是重复的代码,只不过组别不同
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.90r
r0    = 0.89r
color = hs2_a5,hs2_a4,hs2_a3,hs2_a2,hs2_a1,hs2
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs2"    #用第五列id等于hs2的数据画热图
show      = no
</rule>
</rules>
</plot>
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.91r
r0    = 0.90r
color = hs3_a5,hs3_a4,hs3_a3,hs3_a2,hs3_a1,hs3
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs3"
show      = no
</rule>
</rules>
</plot>
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.92r
r0    = 0.91r
color = hs4_a5,hs4_a4,hs4_a3,hs4_a2,hs4_a1,hs4
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs4"
show      = no
</rule>
</rules>
</plot>
circos.png

七、增加背景与线条

<axes> # 注意这里是axes是总block,下面的axis是子block
show = data    #只在有数据的地方加线条
thickness = 1
color     = lgrey
<axis>
spacing   = 0.1r #此处不是说线与线的间隙是0.1r,而是百分数的意思,比如plot中你设置的r1=0.90r,r0=0.95r,相差0.05r,那么spacing=0.1r就表示线与线之间的间隔是0.1*0.05=0.005r,那么画出来就应该有11条线,10个间隔。
</axis>
<axis>
spacing   = 0.2r
color     = grey
</axis> #其实到这里再加上</axes>就可以,不过还可以指定一些线段,改变颜色
<axis> #这个axis可以不要,单纯为了改变颜色
position  = 0.5r #注意,这里的0.5依旧是百分数!,比如我想在0.925r显示,就可以用0.5r,如果没有线,则会再增加一条
color     = red
</axis>
<axis> #这个axis可以不要
position  = 0.85r
color     = green
thickness = 2
</axis>
</axes>
<backgrounds>
show  = data
<background>
color = vvlgrey
</background>
<background>
color = vlgrey
y0    = 0.2r
y1    = 0.5r
</background>
<background>
color = lgrey
y0    = 0.5r
y1    = 0.8r
</background>
<background>
color = grey
y0    = 0.8r
</background>
</backgrounds>
增加线条与背景

八、增加文字

hs1 100425066 100487997 DBT
hs1 10381671 10402787 PGD
hs1 10432557 10434544 CORT
hs1 10443191 10455200 DFFA
hs1 10995265 11008135 TARDBP
hs1 110745401 110752069 HBXIP
hs1 111635006 111664707 CHIA
hs1 115113627 115124831 SIKE
hs1 11718728 11733414 AGTRAP
hs1 11840108 11841579 NPPB
<plot>
type  = text
file  = data/6/genes.labels2.txt
r1    = 0.8r
r0    = 0.7r
padding = 0p
rpadding   = 0p
show_links     =  yes
link_dims      = 0p,10p,40p,10p,10p    #这个解释起来比较复杂,它是控制连线各段的长度的
link_thickness = 1p
link_color     = black
label_snuggle = yes
max_snuggle_distance = 5r  #如果一个位点基因过密,可以调大数值,让其分散
<rules>
<rule>
condition  = var(value) =~ /a/i  #正则表达式,表示含有a或A的labels被选中,赋予额外的参数
label_font = bold
flow       = continue
</rule>
<rule>
condition  = var(value) =~ /b/i
color      = blue
</rule>
</rules>
</plot>
增加文字结果

完整版代码

#指定染色体文件(绝对/相对路径+文件名)
karyotype = data/karyotype/karyotype.human.txt  
chromosomes_units = 1000000  #定义最小单位,即100万bp为一个units,即1u = 100w,后面刻度线都是基于此的操作,如果染 色体长度都在5kw以上,推荐用100w,否则推荐用10w
chromosomes_display_default = no  #先展示所有染色体
chromosomes                 = /hs[1234]$/  #然后使用正则表达式,选择1234条染色体
<colors>  #原来的颜色太丑了,重新定义颜色,注意重新定义颜色都需要加上*号
chr1* = red
chr2* = orange
chr3* = green
chr4* = blue
</colors>
#-----------------------------------------------------------------------------------
#单一柱形图
<plots>
<plot>
type = histogram    #首先指明画图类型
file = data/5/segdup.hs1234.hist.txt
r1   = 0.88r    #限制直方图显示的区域
r0   = 0.81r    #限制直方图显示的区域
fill_color = vdgrey  #给直方图填充颜色
extend_bin = no  #一般情况下,柱形图也会有完整的一圈,但设置了extend_bin = no则不会显示没有value的区域
<backgrounds>
# Show the backgrounds only for ideograms that have data
show  = data
<background>
color = vvlgrey
</background>
<background>
color = vlgrey
y0    = 0.2r
y1    = 0.5r
</background>
<background>
color = lgrey
y0    = 0.5r
y1    = 0.8r
</background>
<background>
color = grey
y0    = 0.8r
</background>
</backgrounds>
</plot>
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.89r
r0    = 0.88r
color = hs1_a5,hs1_a4,hs1_a3,hs1_a2,hs1_a1,hs1
scale_log_base = 0.25
</plot>
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.90r
r0    = 0.89r
color = hs2_a5,hs2_a4,hs2_a3,hs2_a2,hs2_a1,hs2
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs2"
show      = no
</rule>
</rules>
</plot>
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.91r
r0    = 0.90r
color = hs3_a5,hs3_a4,hs3_a3,hs3_a2,hs3_a1,hs3
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs3"
show      = no
</rule>
</rules>
</plot>
<plot>
type  = heatmap
file  = data/5/segdup.hs1234.heatmap.txt
r1    = 0.92r
r0    = 0.91r
color = hs4_a5,hs4_a4,hs4_a3,hs4_a2,hs4_a1,hs4
scale_log_base = 0.25
<rules>
<rule>
condition = var(id) ne "hs4"
show      = no
</rule>
</rules>
</plot>
#堆叠柱形图
<plot>
type = histogram
file = data/5/segdup.hs1234.stacked.txt    #有四列value时,展示的时候对将四个value堆叠展示
r1   = 0.99r
r0   = 0.92r
fill_color  = hs1,hs2,hs3,hs5    #数据中有四列value,因此定义填充色的时候,不像fill_color = vdgrey只定义一个,要同时定义四种颜色,hsN是不同的颜色
orientation = in    #定义柱形图向内还是向外
extend_bin  = no
<axes>
# Show axes only on ideograms that have data for this track
show = data
thickness = 1
color     = lgrey
<axis>
spacing   = 0.1r
</axis>
<axis>
spacing   = 0.2r
color     = grey
</axis>
<axis>
position  = 0.5r
color     = red
</axis>
<axis>
position  = 0.85r
color     = green
thickness = 2
</axis>
</axes>
</plot>
<plot>
type  = text
file  = data/6/genes.labels2.txt
r1    = 0.8r
r0    = 0.7r
padding = 0p
rpadding   = 0p
show_links     =  yes
link_dims      = 0p,10p,40p,10p,10p
link_thickness = 1p
link_color     = black
label_snuggle = yes
max_snuggle_distance = 5r
<rules>
<rule>
condition = on(hs1)
show      = no
</rule>
# Text can be tested with var(value).
<rule>
condition  = var(value) =~ /a/i  #正则表达式,表示含有a或A的labels被选中,赋予额外的参数
label_font = bold
flow       = continue
</rule>
<rule>
condition  = var(value) =~ /b/i
color      = blue
</rule>
</rules>
</plot>
</plots>
<links>
<link>
file          = data/5/segdup.txt   #指定存放内部连线数据的文件
radius        = 0.7r                #radius定义内部连线区域的大小,表示从0-0.7r均为连线区域
bezier_radius = 0r            #控制连线的弯曲程度,数值越大越弯曲,范围为0r-1.5r
crest = 1
#bezier_radius_purity = 0.5 
#color         = black_a4  #连线的颜色
thickness     = 2  #连线的粗细
#ribbon = yes
#flat = yes
#stroke_thickness = 2
<rules>  #用来做条件判断的标签,圈图各式各样就在于rule的不同使用
<rule>
condition     = var(intrachr)        #condition表示条件,=后面为具体的动作。此为获取在同一条染色体间的连线
show          = no                   #规定在同一条染色体间的连线不展示
</rule>
<rule>
condition     = 1  #condition     = 1表示永远成立
color         = eval(var(chr2))    #连线的颜色与对应的染色体的颜色相同
flow          = continue      #当上面的rule执行完之后继续执行下面的rule,可以改为stop
</rule>
<rule>
condition  = max(var(size1),var(size2)) < 2kb
show       = no
</rule>
</rules>
</link>
</links>
<ideogram>                #这是定义染色体相关参数的标签,以</ideogram>结尾,其中包括要设置的参数
<spacing>                 #定义染色体间隙宽度的标签,以</spacing>,其中包括要设置的参数
default = 0.005r          #r指的是圆的周长,设置0.5%圆的周长为间隙
#<pairwise hsY;hs1>       #可以用<pairwise>标签特别指定某些染色体的间隙(用的是ID),因为在大多数文章中,都会留一 个大间隙,来放label
#spacing = 20r            #这里20r表示是相对default = 0.005r的20倍,也就是10%的圆的周长
#</pairwise>              #标签都要以</>结尾,
</spacing>                #间隙定义结束,下面是对染色体样式的调整
radius           = 0.90r  #轮廓的位置,这里的r指的是半径,由圆心到圆周上范围依次是0-1r,,超出部分将不再显示。
thickness        = 20p    #染色体整体的宽度,这里p指的是像素大小,也可以用r表示,1r=1500p
fill             = yes    #是否为染色体填充颜色,如果为yes,自动用第七列定义的颜色着色
stroke_color     = dgrey  #染色体边框的颜色,支持多种格式的输入,如:red或255,182,106
stroke_thickness = 2p     #染色体边框的粗细
show_label       = yes        #选择yes表示要显示label
label_font       = default    # 字体可以再 etc/fonts.conf 查看所有,默认为CMUBright-Roman
label_radius     = dims(image,radius)-60p  #使用dims()获取图像半径的大小,从而定位染色体标签的位置,也可以直接定义1.075r
label_size       = 30         #字体的大小
label_parallel   = yes        #将Label的方向设置为与染色体平行
</ideogram>               #定义染色体属性的标签结束
show_ticks          = yes  #选择yes表示要显示刻度线
show_tick_labels    = yes  #选择yes表示要显示刻度线的数值
#定义刻度线的整体位置与形状
<ticks>                    #刻度线的转用标签,但凡是复数出现的,其下面的参数都表示全局参数,像下面的<tick>单数形式,都表示局部参数
radius           = 1r      #刻度线的位置,1r为最远距离,超过1r不再显示
color            = black
thickness        = 2p
multiplier       = 1e-6    #把刻度线标签(bp)缩小10万倍显示
format           = %d      #然后以整数的形式标记在刻度线上
#定义小的刻度线,且不显示数值
<tick>
spacing        = 5u        #最开始我们定义1u = 1000000,表示每500w bp显示一个小刻度线
size           = 10p
show_label     = no        #由于小的刻度线展示出来太密集,因此我们no不展示,默认不展示
</tick>
#定义大的刻度线,显示数值
<tick>
spacing        = 25u
size           = 15p
show_label     = yes
label_size     = 20p
label_offset   = 10p      #设置数值和刻度线之间的间隔
format         = %d
</tick>
</ticks>
#-----------------------------------------------------------------------------------
#下面是每次都要复制粘贴上去的,他们属于circos自带的配置文件,用于调用颜色,距离,报错等信息
<image>                    #注意路径
<<include etc/image.conf>> #注意引用外部配置文件需要使用<<#>>
</image>
<<include etc/colors_fonts_patterns.conf>> 
#官方没有提到下面的文件,但是没有这个文件会报错,所以还是加上去
<<include etc/housekeeping.conf>>
上一篇下一篇

猜你喜欢

热点阅读