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

2.3 数据文件

  数据文件同样分为外圈染色体数据和内圈图形数据。外圈染色体数据基本格式如图7所示。其中第三列、第四列、第七列为染色体名称,第五列和第六列为该染色体长度,该长度在展示的时候会根据设置的单位长度进行刻度标注。

图7

  内圈图形数据会根据不同的图形类型有不同的格式,在此以柱状图和标注文字,即type= histogram和type=text为例。柱状图的数据文件如图8所示。第一列为染色体名称;第二列和第三列为柱子展示区间;第四列为柱子高度;第五列为柱子颜色。该数据展示的是在每个染色体对应三个柱子,每个柱子区间分别为0-300000,300001-600000,600001-100000。

图8

  标注文字的数据文件格式如图9所示。第一列为染色体名称,第二列和第四列为文字位置,第四列为文字内容。

图9

2.4 软件配色

  软件有一套自己的颜色系统,颜色及对应的名称在解压后的文件夹内,文件名字为gddiag.png,内容如图10所示。该文件给出了可以使用的颜色,没以后有一个名字,对应一个系列,每行又有多个子系列。可以用指定行名和子系列的方式使用颜色,例如rdylbu-3-div-3,指rdylbu- div所对应的行的第三个子系列的第三个颜色。知道了颜色及使用方式就可以在配置文件或数据文件中对图形设置不同的颜色了。

图10

3.结果

  在本次学习中使用一个SNP相关的数据进行展示,分别对不同的文件进行配置,并进行绘图,绘图结果如图11所示。

图11

Circos软件学习的更多相关文章

  1. lotus domino 软件学习网站(自己收藏的)

    lotus domino 软件学习网站(自己收藏的) 我学习lotus domino时间也不是很长,相比较学习lotus,学习java的时间还是比较长的,刚开始看网上的说法都是不看好lotus的, 但 ...

  2. 【平差软件学习---科傻】四、科傻二等水准平差(参数设置和in1文件讲解)

    [平差软件学习---科傻]四.科傻二等水准平差(参数设置和in1文件讲解) 这个算是最后一集了,也可能不是如果我想到不足的地方我会在补上一集视频,或者是文章页.总感觉自己操作的很熟练,到自己真正讲的时 ...

  3. 【软件学习】怎么在Word里面设置MathType分隔符,使公式按照章节自动编号

    前提 确保已安装好了MathType,且在设置为Word加载项 若没有安装或设置为加载项,请转至博客另一篇文章: [软件学习]如何下载安装Mathtype,并将其加载至Word 第一步 点击MathT ...

  4. 【分享】LateX排版软件学习教程合集

    来源于:http://www.hejizhan.com/html/xueke/416/x416_13.html  LATEX2e科技排版指南.pdf 8.3 MB  An Example LaTeX ...

  5. 优秀开源软件学习系列(一)——从零学习Spring4以及学习方法分享

    一.目的1.掌握Spring4怎样使用,以便将这个框架作为自己的一项技能.2.掌握Spring官网是怎样介绍其产品的,在心中对Spring有最官方的.最直观的了解.在Spring的相关领域,能够知道怎 ...

  6. beyond compare 软件学习

    beyond compare 软件可以实现基本的文件对比,这点和 NotePad++ 的功能一样.但是在实现文件夹与文件夹之间的对比的话,就要使用 beyond compare 进行对比,效率是成倍提 ...

  7. 烂泥:gpg加解密软件学习

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 为什么要学习gpg呢?因为要在Linux下把一个邮箱的密码加密,不让其他人看到该邮箱真 ...

  8. [XMPP]iOS聊天软件学习笔记[一]

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  9. 安装软件 学习linux命令

    nm -D /usr/lib64/libstdc++.so.6 | grep GLIBCnm dumps named symbols, -D for dynamic libs, and grep fo ...

  10. UI_UE在线就业班(2)(Adobe Illustrator软件学习)

    Adobe Illustrator软件的使用     认识AIUI_UE在线就业班(2) .   ▼ AI是Adobe Illustrator的英文缩写,是Adobe公司旗下推出的一款基于矢量图形制作 ...

随机推荐

  1. A星、Floyod、Bellman-Ford

    A 星算法 A 星和 Dijkstra 算法唯一区别在于堆中排序的依据.distance 数组仍然保存实际代价,预估代价只影响堆的弹出顺序. Dijkstra 根据源点到当前点的实际代价进行排序. A ...

  2. Syncfusion宣布开源其为.NET MAUI开发的14个控件

    .NET MAUI是Xamarin.Forms的进化版,增加了对构建桌面应用的支持..NET MAUI的特点包括统一的框架.对桌面应用的支持.性能改进.使用现代技术以及开源特性.开源 .NET MAU ...

  3. [Windows] 屏幕截图工具Snipaste 开发过程更轻松

    前言 老大:你去把用户登录代码写完. 老大:你把这周的周报发一下 老大:你把生产的数据清理一下. 结果.... 今天刚把登录代码写完,下班,明天就处理别的事情去了!!! 之后我就... 直接F1 截屏 ...

  4. redis哨兵模式下主从切换后,php实现自动切换

    redis的哨兵模式,在主服务器挂掉后,会通过选举将对应的从服务器切换为主服务器,以此来达到服务的高可用性. 在业务层面如果主从做了切换可能相对应的服务器IP地址会发生改变,这样会带来程序的的正常运行 ...

  5. openresty操作mongodb

    最近项目中使用openresty,需要通过openresty连接mongo,经过几番折腾终于有了一个结果,现将其记录下来,也感谢模块提供者 使用openresty操作mongo 1.引入第三方的模块 ...

  6. Paypal绑定招商银行 —— Paypal绑定收款银行账户的注意事项

    地址: https://code.newban.cn/446.html

  7. 解决Delphi应用程序向桌面资源管理拖放问题 win10,winxp,win2003测试成功

    解决Delphi应用程序向桌面资源管理拖放问题 win10,winxp,win2003测试成功 如果是实体拖动,是比较好解决的. 如果是虚拟应用程序数据,拖动到本机桌面或资源管理器目录下,获取目录路径 ...

  8. vagrant 中 php 7.2 升级到 php 7.3

    在本地用 vagrant 给 php 7.2 升级到 7.3 的时候,直接修改了 box/config.yml里面 php 版本 然后就 vagrant reload --provision 进行重新 ...

  9. 运维工具之saltstack

    参考:https://www.cnblogs.com/xintiao-/p/10380656.html saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现 ...

  10. MySQL之数据排序

    在MySQL中,我们经常需要从数据库中检索数据,并根据特定的要求对数据进行排序.通常情况下,我们会根据数据中某一列的值进行排序,例如按照价格从低到高或从高到低对商品进行排序.但有时候,我们需要在数据中 ...