Aggressivesnail 2020-05-10
circos 是一款perl 语言开发的画图软件,提供了染色体相关数据的一种可视化方式。其制作的图表精美,被科研工作者广泛使用。Circos可以对染色体相关数据进行可视化,以每条染色体为一个扇区,组成一个圆形,如图1所示。也可以对其他表格形式的数据进行可视化,以每个样本作为扇区,以其上的特征作为图形层次。如图2所示,可以以物种作为扇区,展示物种间的关系。Circos图最初以Perl语言开发,后来又有一些R包被开发用来绘制Circos图。今天的学习主要学习Perl开发的Circos软件。没错,下边这两个美图都是Circos的结果了。
图1
图2
1.Circos软件安装
Circos软件由Perl语言开发,所以使用circos之前需要安装Perl语言才能执行circos。在Windows环境下推荐使用草莓Perl即Strawberry Perl,它的优势是本身自带了CPAN,方便后续安装Perl的模块。
从Strawberry Perl网站http://strawberryperl.com/下载64位msi执行文件,并安装。安装完毕,添加环境标量。在DOS窗口下,使用CPAN –i module 命令就可以进行模块安装。
从Circos网站http://circos.ca/下载软件的压缩文件,Circos在Windows下不需要安装,直接解压即可。把bin路径添加环境变量,使用circos –module命令可以查看Circos所需要的Perl模块,然后使用上述方法进行安装即可。
测试:circos提供了example,在example/etc路径下有circos.conf文件,运行命令为circos –conf circus.conf,运行此命令则会在该文件夹下生产circos.png和circos.svg,图片如图3所示。如果正确出图,则说明软件安装正确。
图3
2.软件说明
Circos采用circos –conf circos.conf的方式运行,其中circos.conf为配置文件。Circos.conf文件中可以分为染色体配置和内圈图形配置两部分。染色体部分为图形中最外圈的部分,为图形的基本部分,该部分指定所需要绘制的染色体,扇区比例,每个扇区半径大小等。内圈图形部分指除了染色体外的其他图形区域,在这部分需要使用<plots> </plots>进行限定。<plots> </plots>限定了所有的内圈图形,每一层图形需要再使用<plot></plot>进行限定。
2.1circos.conf
染色体配置部分如图4所示。Karyotype指定染色体数据文件;chromosomes_units指定染色体长度单位,需要注意的是,染色体长度需要大于chromosomes_units,否则染色体扇区之间会产生空缺;chromosomes_display_default指定是否显示默认,默认状态下展示文件内所有染色体,颜色为黑色,每个扇区面积相等,且下边对染色体的具体配置信息不起作用;chromosomes指定要显示的染色体;chromosomes_scale指每个扇区占圆周的比例,例如chr1=0.5r,指染色体1占圆周的一半。chromosomes_radius指每个扇区的半径,指定不同的半径,可以使图形展示出发射或内陷的状态,起到内容强调的作用;文件中使用<<>>来指定需要调用的其他配置文件,如<<include ideogram.conf>>指定染色体条带的配置信息。在circos.conf文件中,默认会出现<<include ideogram.conf>>、<<include ticks.conf>>、<image><<include etc/image.conf>></image>、<<include etc/colors_fonts_patterns.conf>> 、<<include etc/housekeeping.conf>>等,可以通过修改ideogram.conf和ticks.conf获得想要的效果,其余几个文件基本不用修改。
图4
内圈图形配置内容使用<plots></plots>限定,每个<plot></plot>限定每一层的图形,如图5所示。其中type指定该层图形所展示的图形类型,如histogram展示了柱状图;file指定要画图的数据文件,r1和r0分别指定图形在圆圈内所占的半径范围,如r1=0.97r,r0=0.88r,即该层柱状图会出现在0.88半径到0.97半径之间的位置;thickness指定柱状图边框的宽度,0p指定不显示边框;orientation指定柱状图方向向内/向外;
图5
2.2 ideogram.conf
该配置文件对最外圈染色体进行配置,内容如图6所示。设置内容由<ideogram></ideogram>进行限定。<spacing></spacing>设置了每个染色体条带之间的间隔,设置的值为圆周的比例;radius设置染色体半径占整个图形的比例,可以通过设置不同的radius对图形进行缩放;thickness指定染色体图形边框的宽度;fill指定是否填充颜色;stroke_color设置刻度颜色;stroke_thickness设置刻度宽度;show_ticks设置是否显示刻度;show_label是否显示标签,即每个染色体的名字;label_font、label_radius、label_size分布显示染色体名称的字体,位置,大小等;label_parallel指定染色体名称是否与染色体条带平行。
图6
数据文件同样分为外圈染色体数据和内圈图形数据。外圈染色体数据基本格式如图7所示。其中第三列、第四列、第七列为染色体名称,第五列和第六列为该染色体长度,该长度在展示的时候会根据设置的单位长度进行刻度标注。
图7
内圈图形数据会根据不同的图形类型有不同的格式,在此以柱状图和标注文字,即type= histogram和type=text为例。柱状图的数据文件如图8所示。第一列为染色体名称;第二列和第三列为柱子展示区间;第四列为柱子高度;第五列为柱子颜色。该数据展示的是在每个染色体对应三个柱子,每个柱子区间分别为0-300000,300001-600000,600001-100000。
图8
标注文字的数据文件格式如图9所示。第一列为染色体名称,第二列和第四列为文字位置,第四列为文字内容。
图9
软件有一套自己的颜色系统,颜色及对应的名称在解压后的文件夹内,文件名字为gddiag.png,内容如图10所示。该文件给出了可以使用的颜色,没以后有一个名字,对应一个系列,每行又有多个子系列。可以用指定行名和子系列的方式使用颜色,例如rdylbu-3-div-3,指rdylbu- div所对应的行的第三个子系列的第三个颜色。知道了颜色及使用方式就可以在配置文件或数据文件中对图形设置不同的颜色了。
图10
在本次学习中使用一个SNP相关的数据进行展示,分别对不同的文件进行配置,并进行绘图,绘图结果如图11所示。
图11