美文网首页作图
十二. Circos基因组作图

十二. Circos基因组作图

作者: 小飞虎 | 来源:发表于2023-12-12 11:50 被阅读0次

    前言

    最近进行基因组数据分析,绘制圈图,想做两个基因组的比较分析,通过查询文献,发现棉花基因组圈图在细节方面做的较好,主要就是染色体排布中间对称,这样共线性连线就不会出现交叉现象,于是尝试从头开始利用circos绘制圈图。通过不断调整,成品如下:


    circos.png

    1. 软件安装:

    conda install -c bioconda circos
    

    可能会出现报错:GD模块没有安装,可以直接下载GD模块,手动安装。

    2. 文件准备

    安装好Circos以后,就可以进行绘图,首先创建一个文件夹,在文件夹中准备相关配置文件:

    1.circos.conf
    2.ideogram.conf
    3.ideogram.label.conf
    4.ideogram.position.conf
    5.bands.conf
    6.ticks.conf
    

    另外,在当前文件夹在创建一个文件夹data,存放自己准备的数据文件,例如我的圈图准备画8层:

    1.karyotype
    2.Genedensity
    3.GC_content
    4.Expression1
    5.Expression2
    6.Expression3
    7.Copia/Gypsy
    8.link
    

    准备好以上文件(文件基本格式:chr start end value,共4列\t隔开),运行以下命令即可输出图片circos.png和circos.svg:
    circos -conf circos.conf
    接下来详细介绍文件的准备

    3. 配置文件:circos.conf

    circos.conf是circos的主要配置文件,画图也是通过命令:circos -conf circos.conf来完成,但circos.conf引用了文件夹中其他配置文件,如:ideogram.conf,bands.conf等,另外还有安装文件etc中的一些配置文件(conda安装的位置:~/.conda/pkgs/circos-0.69.8-hdfd78af_1/etc/),如:housekeeping.conf,image.generic.conf等。
    circos.conf文件格式:

    show_scatter   = yes
    show_line      = yes
    show_histogram = yes
    show_heatmap   = yes
    show_tile      = yes
    show_highlight = yes
    use_rules      = yes
    <<include colors_fonts_patterns.conf>> #<<>>表示引用的其他配置文件,在当前文件和系统的etc文件中查找
    <<include ideogram.conf>>
    <<include ticks.conf>>
    <<include etc/housekeeping.conf>>
    <<include etc/image.conf>>
    karyotype = data/1.karyotype  
    #1.karyotype为染色体信息文件,格式如下:
    #chr    -   a1  a.Chr01 0   23931628    chr1
    #chr    -   a2  a.Chr02 0   56312238    chr2
    #chr    -   a3  a.Chr03 0   61034414    chr3
    
    chromosomes_units = 2000000 #染色体的单位2M,如果是一个染色体可以设置为1M
    #chromosomes_reverse = /b[1-18]/
    chromosomes_reverse = b1,b2,b3... #设置染色体方向
    chromosomes_order = a1,a2,...a18,b18,....b2,b1#设置染色体排列顺序,物种a:1-18,物种b:18-1,同时物种b通过chromosomes_reverse设置为染色体反向,这样保证了中间对称,更美观,
    
    <links> #<links> 和</links>之间的部分是进行link的设置,格式和html相似
    z       = 0
    radius  = 0.39r #绘图半径0.39r
    thickness = 1p #设置连线粗细
    <link>
    z       = 50
    color   = grey #总体设置连线颜色,后面<rule>可以重新设置
    thichness = 4
    file    = data/8.link #读取文件
    #link文件格式:
    #a1     6343321 6346963 b1   7987463 7991529
    #a1     7081344 7082400 b1   8185204 8186260
    #a1     7113128 7114630 b1   8217069 8218575
    <rules>#个性化设置
    <rule>
    condition = var(chr1) eq "a1"  #对染色体a1进行设置
    color = 154,103,2 #对染色体a1颜色进行设置
    </rule>
    
    <rule>#<rule>到</rule>为一个设置单元
    condition = var(chr1) eq "a2" #对染色体a1颜色进行设置
    color = 102,102,0
    </rule>
    ...
    </rules>
    </link>
    </links>
    #以上<links>到</links>是对中心link区域的设置,以下<plots>到</plots>是对其他层画图设置
    <plots>
    <plot>#<plot><plot>是对其中一层的画图设置,其他层类似设置
    type              = histogram #画图类型为柱状图
    color             = 190,166,46 #颜色
    file              = data/3.GC_content #读取文件
    #文件格式,窗口为1M
    #a5     1       1000000 0.0396
    #a5     1000001 2000000 0.0435
    #a5     2000001 3000000 0.0288
    fill_color        = 190,166,46#填充颜色
    r0                = 0.40r #图层位置0.40r到 0.40r+100p之间
    r1                = 0.40r+100p
    orientation       = out #朝向外
    min               = 0#显示最大最小值设置
    max               = 0.1
    <backgrounds>
    <background>#背景色设置
    color = 241,239,239
    </background>
    </backgrounds>
    </plot>
    ...#其他图层参考上面设置
    <\plots>
    

    注:以上是circos.conf文件设置,最重要,也是相对较为复杂的一个文件

    4. 配置文件:ideogram.conf

    以下是染色体配置文件:

    <ideogram>
    <spacing>
    default = 0.005r#染色体之间间隔距离
    <pairwise a1;b1>#设置其中两个染色体之间距离
    spacing = 6r #在图形上面留下空白区域
    </pairwise>
    <pairwise a18;b18>
    spacing = 6r#在图形下面对称留下空白区域
    </pairwise>
    </spacing>
    <<include ideogram.position.conf>>
    <<include ideogram.label.conf>>
    <<include bands.conf>>
    radius*       = 0.825r
    </ideogram>
    

    5. 配置文件:ideogram.label.conf

    染色体标签设置:

    show_label       = yes
    label_font       = bold#设置为黑体
    label_radius     = 1.075r#位置
    label_size       = 28#字体大小
    label_parallel   = yes #与圆相切
    label_format     = eval(sprintf("%s",var(label))) #标签格式为文本格式
    

    6. 配置文件:ideogram.position.conf

    染色体位置文件:

    radius           = 0.90r
    thickness        = 20p
    fill             = yes
    fill_color       = dgrey
    stroke_thickness = 2p
    troke_thickness  = 0
    

    7. 配置文件:bands.conf

    show_bands            = yes
    fill_bands            = yes
    band_stroke_thickness = 2
    band_stroke_color     = white
    band_transparency     = 0
    

    8. 配置文件:ticks.conf

    对染色体刻度和刻度标签进行设置:

    show_ticks          = yes
    show_tick_labels    = yes
    <ticks>
    radius           = dims(ideogram,radius_outer)
    orientation      = out
    label_multiplier = 1e-6
    color            = black
    size             = 20p
    thickness        = 2p
    label_offset     = 4p
    format           = %d
    
    <tick>
    spacing        = 1u
    show_label     = no
    size           = 10p
    </tick>
    <tick>
    spacing        = 5u
    show_label     = no
    label_size     = 20p
    size           = 15p
    </tick>
    <tick>
    spacing        = 10u
    show_label     = yes
    label_size     = 24p
    </tick>
    </ticks>
    

    9. 配置文件:housekeeping.conf和image.generic.conf

    配置文件housekeeping.conf和image.generic.conf,位于安装文件的etc文件中,一般不需要修改,有时候却可以修改,如:
    (1). 在画图的时候如果一个文件的比如基因密度或GC含量,需要画图的位点超过25000个的时候就会报错,但我们可以在housekeeping.conf文件中,找到max_links,max_points_per_track的位置根据自己的情况进行修改:

    max_links            = 25000
    max_points_per_track = 25000
    

    (2). 在默认条件下绘制的第一个染色体的位置是从3点钟的位置开始,如果想调整起始位置,可以调整image.generic.conf文件中的参数,如angle_offset = -90 ,这时第一个染色体的位置是从12点钟的位置开始,如果我们想在上方留出空白区域可以设置:angle_offset = -85.

    相关文章

      网友评论

        本文标题:十二. Circos基因组作图

        本文链接:https://www.haomeiwen.com/subject/qbwrirtx.html