基因组分析·Circos作图基础(一)
大家好,上一周我们预告了基因组圈图的绘制方法,所以今天我想从基础的部分慢慢说起。如果您的英文水平还不错,所有的circos使用教程都可以在http://circos.ca/documentation/tutorials进行学习。当然,如果您跟我一样不喜欢去啃英文,那就由我带着大家一起来开始circos的学习吧。
(1)Circos的安装
Circos是一个基于Perl写的一个软件,它依赖较多的Perl模块,所需要的模块如下:
Config::General
File::Basename
File::Spec::Functions
GD
GD::Polyline
Getopt::Long
IO::File
List::Util
Math::Bezier
Math::BigFloat
Math::Round
Math::VecStat
Memoize
Params::Validate
Pod::Usage
Readonly
Set::IntSpan
Regexp::Common
Perl模块的安装,大家可以自己动手网上搜索一下实现方法。而安装过程会涉及基本的linux命令操作,在后续的《小白生信学习记》中会提及。这里均暂不赘述。
将所需的模块安装完之后,下载circos软件,下载地址为:http://circos.ca/software/download/ 目前最新版本是0.69-3。把它安装Linux/Unix系统上。安装过程很容易,只需要把压缩文件解压缩即可。
然后,我们把circos软件加入到环境变量:exportPATH=/path/way/to/circos:$PATH。
为了验证我们的模块有没有安装完整,可以运行circos -module来观察。如果都是完整的话,应该会看到以下的结果:
如果有Missing的模块就把它装上即可,当所有的模块检测都通过之后,就可以用了。接下来从基础的图形开始讲解。
(2)基础文件配置
Circos主要的功能是画圈图,所以我们要定义这个圈的一些基本信息,我们用VIM编辑器创建一个配置文件circos.conf,输入以下信息:
<<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>
<<includeetc/housekeeping.conf>>
这些代码看了是不是有点懵?那我就进行详解吧!首先,这里面所有的“<<>>”里的内容都是一些默认配置的文件,一般不需要修改,这些文件都在在circos/etc目录下面,当然高手们可以按照自己的需求去修改,对于我们这些小白玩家,还是暂时不去修改。
接下来就是一个最重要的文件,核型文件karyotype的配置,这个文件是圈图的基础,它定义了每个染色体的大小。我们再次打开VIM编辑器,新建karyotype.txt文件,填写下列信息:
chr - scaffold1 1 0 1102171 deepskyblue
chr - scaffold2 2 0 2826618red
首先用chr开头,然后空一格加一个“-”,scaffold名称,序号(从1开始),然后是染色体的起始和终止,最后一列是填充的颜色。
chromosomes_units是用来设置每个刻度代表的长度。若其单位为 u,我们把它设置为1000000=1u,那么1u就代表1Mb的长度。
chromosomes_display_default用来展示所有染色体,一般设置为yes,如果你想只展示几个染色体,可以设置为no,然后单独把需要展示的染色体列出来。
<ideogram>到</ideogram>是用来配置将染色体在圈图上展示出来的一个关键参数,在这里进行详细讲读。
spacing是用来设置圈图中染色体之间的空隙大小,我们设置为0.005r的意思是每个染色体之间的空隙占周长0.5%
radius是用来设置染色体的圈距离圆心的距离,设置为0.8r的意思是染色体的圈距离圆心80%的意思。
thickness是用来设置染色体圈的厚度,可以用r表示,也可用像素p表示,我们设置为6个像素。
fill 是用来设置是否为染色体圈填充颜色,颜色取决于核型文件karyotype最后一列颜色的数据。
fill_color是用来自定义填充颜色。
stroke_color是用来定义染色体圈的轮廓颜色。
stroke_thickness用来定义染色体轮廓的厚度。
show_label用来定义是否展示染色体的标签,这个标签对应核型文件的第四列。
label_font是设置label的字体。
label_radius是用来设置标签的位置。
label_size用来设置字体大小。
label_parallel用来设置字体方向,yes是易于阅读的方向。
(3)运行和结果
好了我们把核型文件karyotype.txt和配置文件circos.conf放在同一目录下,运行以下命令:
circos -conf circos.conf
好了经过几秒钟的运行以后,我们得到了以下图形:
咦?这个圈图怎么光秃秃的啥都没有呀?没关系,这是我们绘制圈图的基础,那么下一期我们将在这个图形里面加入更多的信息,敬请期待!
写在最后。
如果看完大家有什么问题,可以后台给我们发送消息,我们尽力予以解答。