Circos软件学习
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软件学习的更多相关文章
- lotus domino 软件学习网站(自己收藏的)
lotus domino 软件学习网站(自己收藏的) 我学习lotus domino时间也不是很长,相比较学习lotus,学习java的时间还是比较长的,刚开始看网上的说法都是不看好lotus的, 但 ...
- 【平差软件学习---科傻】四、科傻二等水准平差(参数设置和in1文件讲解)
[平差软件学习---科傻]四.科傻二等水准平差(参数设置和in1文件讲解) 这个算是最后一集了,也可能不是如果我想到不足的地方我会在补上一集视频,或者是文章页.总感觉自己操作的很熟练,到自己真正讲的时 ...
- 【软件学习】怎么在Word里面设置MathType分隔符,使公式按照章节自动编号
前提 确保已安装好了MathType,且在设置为Word加载项 若没有安装或设置为加载项,请转至博客另一篇文章: [软件学习]如何下载安装Mathtype,并将其加载至Word 第一步 点击MathT ...
- 【分享】LateX排版软件学习教程合集
来源于:http://www.hejizhan.com/html/xueke/416/x416_13.html LATEX2e科技排版指南.pdf 8.3 MB An Example LaTeX ...
- 优秀开源软件学习系列(一)——从零学习Spring4以及学习方法分享
一.目的1.掌握Spring4怎样使用,以便将这个框架作为自己的一项技能.2.掌握Spring官网是怎样介绍其产品的,在心中对Spring有最官方的.最直观的了解.在Spring的相关领域,能够知道怎 ...
- beyond compare 软件学习
beyond compare 软件可以实现基本的文件对比,这点和 NotePad++ 的功能一样.但是在实现文件夹与文件夹之间的对比的话,就要使用 beyond compare 进行对比,效率是成倍提 ...
- 烂泥:gpg加解密软件学习
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 为什么要学习gpg呢?因为要在Linux下把一个邮箱的密码加密,不让其他人看到该邮箱真 ...
- [XMPP]iOS聊天软件学习笔记[一]
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 安装软件 学习linux命令
nm -D /usr/lib64/libstdc++.so.6 | grep GLIBCnm dumps named symbols, -D for dynamic libs, and grep fo ...
- UI_UE在线就业班(2)(Adobe Illustrator软件学习)
Adobe Illustrator软件的使用 认识AIUI_UE在线就业班(2) . ▼ AI是Adobe Illustrator的英文缩写,是Adobe公司旗下推出的一款基于矢量图形制作 ...
随机推荐
- 搞清楚这个老六的真面目!逐层‘剥开’人工智能中的卷积神经网络(CNN)
第三章:超越基础--图像中的特征检测 上一篇<揭开计算机视觉的神秘面纱,原来机器是这样"看图"的!> 本篇序言:上一篇我们实现并训练了一个神经网络,成功让计算机&quo ...
- Python实现摇号系统
1.引言 摇号系统在现代社会中有广泛的应用,特别是在车牌摇号.房屋摇号等公共资源分配领域.摇号系统的主要目的是通过随机分配的方式,确保资源的公平.公正分配.本文将详细介绍如何使用Python实现一个简 ...
- 题解:CF888G Xor-MST
题解:CF888G Xor-MST 题目大意:给定 \(n\) 个点的点权, 任意两点间边权是点权的异或和.求这张完全图的 MST 的权值. 思路: Boruvka + Trie树 + 按位贪心. 关 ...
- 2024 xp_CAPTCHA(瞎跑-白嫖版) 4.3最新版安装使用教程
前言 xp_CAPTCHA(瞎跑-白嫖版)是一个免费的burpsuite插件,具有自动化图形验证码识别的功能.在安装的过程中,我发现网上的教程基本都为其较早的版本,已经不具备参考价值.因而我写下本篇博 ...
- 9-4 vector对象是如何增长的
.size():容器中有多少元素 .capacity():不重新分配内存时,可容纳多少元素 .reserve(n):分配至少能容纳n个元素的内存 n>capacity时会分配使得capacity ...
- 鸿蒙NEXT开发案例:指尖轮盘
[1]引言 "指尖轮盘"是一个简单而有趣的互动游戏(类似抓阄),这个应用通过触摸屏幕的方式,让玩家参与一个激动人心的游戏,最终选出幸运的赢家.未来可以进一步扩展功能,如增加游戏模式 ...
- clone:克隆数据,可深度克隆
这里列出了原始类型,时间.正则.错误.数组.对象的克隆规则,其他的可自行补充 function clone(value, deep){ if(isPrimitive(value)){ return v ...
- P10681 COTS/CETS 2024 奇偶矩阵 Tablica
P10681 COTS/CETS 2024 奇偶矩阵 Tablica 来自 qnqfff 大佬的梦幻 dp. 约定 二元组 \((n,m)\) 表示一个 \(n\) 行 \(m\) 列的矩形. 不添加 ...
- NOIP2023模拟2联测23 T2 害怕
NOIP2023模拟2联测23 T2 害怕 好像写了一种出题人意料之外的算法. 思路 在生成树上加入白边,白边和若干条蓝色边形成环,环上的蓝色边必须要分配比该白色边更小的边权(最小生成树). 给每一条 ...
- The 2024 ICPC Asia East Continent Online Contest (II) K.Match
题面 K.Match 给定长度为 \(n\) 的两个序列 \(a\) 和 \(b\),当且仅当 \(a_i ⊕ b_j ≥ k\) 时,\(a_i\) 与 \(b_j\) 连一条双向边,其中 \(⊕\ ...