转载至:https://wenlongshen.github.io/2017/03/19/Circos-1/

由Martin Krzywinski等人开发的Circos,一出现便引起轰动,它打破了常规基因组学数据可视化的思路,通过对差异化交互数据的多维度展示,可以从不同层次全方位描述组学信息,让组学数据展示变成了艺术品。由于其实用性、美观性,Circos如今也广泛应用于社交网络、交通运输等领域。 下面,我们就一步一步做出这张图(Circos包自带的demo)。

配置安装

最详尽的介绍和资料都在官网,可以在这里下载到最新的Circos软件包。我使用的版本号为0.69,操作系统为Ubuntu16.04(xenial,64bit),Windows下配置略有不同,可参考官方说明。

Circos本身是基于Perl的,所以不需要编译安装。解压下载的软件包到你想要存放的位置,并将circos/bin加入环境变量即可。通过circos -modules命令可以查看相关Perl模块的安装情况。Linux下CPAN可以通过$ sudo perl -MCPAN -e shell进入,然后执行install命令安装相应模块。容易出问题的主要是GD,在CPAN中直接安装GD可能出现错误:No success on command[/usr/bin/perl Build.PL –installdirs site],可以手动下载编译GD包,不过个人建议直接安装Ubuntu的libgd-perl包。

运行demo

我们需要认识到,Circos只是一个数据可视化工具,并不对数据本身进行分析处理。从其运行命令circos -conf circos.conf就可看出,所有的图形配置信息、数据文件信息等都可以保存在*.conf文件中。

如果直接运行circos命令,程序会在默认的路径下自动搜寻名为circos.conf的配置文件,可通过命令circos -debug_group io来查看程序默认的搜索路径,为避免错误,还是推荐主动指定配置文件。Circos包里有自己的demo,可通过circos -conf yourpath/circos/example/etc/circos.conf来运行,会在命令行当前目录下生成png和svg两个图形文件。

最简配置

配置文件中最少需要以下五个部分:

# Karyotypes
karyotype   = data/karyotype.human.txt,data/karyotype.mouse.txt,data/karyotype.rat.txt# Ideograms
<ideogram><spacing>
default     = 0.002r
</spacing>thickness   = 25p
fill        = yes
radius      = 0.80r</ideogram># Image
<image>
<<include etc/image.conf>>
</image># RGB/HSV color definitions, color lists, location of fonts, fill patterns.
<<include etc/colors_fonts_patterns.conf>># Debugging, I/O and other system parameters
<<include etc/housekeeping.conf>>

其中karyotype文件描述了染色体的名字、大小等基本信息,内容可以自主更改,不过这里我们先使用Circos默认提供的数据。后续我们还可以把karyotype、ideogram等分别放入各自的.conf文件中,通过<<include karyotype.conf>>等来引用,便于分类管理。现在,我们得到了下图,作为circos环图的最基本状态: 除了上述,Circos中进行图层设置的还包含<ticks>模块来描述染色体上的刻度及区块,<zooms>模块来描述扩大或压缩的区域等;进行数据设置的还包含<highlights>标识高亮显示、<plots>描述数据图、<links>添加网络连线等;另外还有子模块<rules>描述注释规则、<backgrounds>描述背景图层、<axes>描述坐标轴等。

数据文件格式

Circos主要有四个模块需要输入数据文件,包括karyotype以及<highlight><plot><link>,格式要求都很简单,通过文本进行编辑即可。Circos默认使用空格作为分隔符,也可以在配置文件中通过命令file_delim = \t进行设置。

Karyotype可被视为circos环图的数据基础,描述了染色体的相关信息,其基本数据格式如下:

chr - hs1 1 0 249250621 chr1
chr - hs2 2 0 243199373 chr2
chr - hs3 3 0 198022430 chr3
...

需要注意的是,Circos使用前缀hs代表人类,而这里的chr1实际代表颜色(使用chr表示非物种特异)。同时还可以添加别的信息,如染色体条带等:

band hs1 p36.33 p36.33 0 2300000 gneg
band hs1 p36.32 p36.32 2300000 5400000 gpos25
band hs1 p36.31 p36.31 5400000 7200000 gneg
...

其它数据的格式主要有:

#chr start end [options]
hs5 50 75
#chr start end value [options]
hs5 50 75 0.75
hs5 50 75 ABC

[options]里的信息一般是<highlight> <plot> <link>里用到的变量或是颜色之类,如:

chr start end var1=value1,var2=value2,...
chr start end color=(R,G,B)
# 由于circos环图中元素众多,可能出现层次叠加问题,故可使用z值来界定,z值大的会覆盖在小的上面显示
chr start end z=1

对于链接数据links,格式有两种,一种是两个端点在同一行,即:

# chr1 start1 end1 chr2 start2 end2 [options]
hs1 200 300 hs10 1100 1300
hs7 50 150 hs 5000 6000 color=blue

另一种是通过唯一的id来标识两个端点:

# id chr start end [options]
link01 hs1 200 300
link01 hs2 1200 1300
link02 hs11 2200 2300
link02 hs21 4200 4300

{转载}Circos绘图(1)相关推荐

  1. {转载}circos绘图(3)

    https://wenlongshen.github.io/2017/03/26/Circos-3/ 基本配置做好,接下来就是将各种各样的数据整合进circos环图里了,本章主要介绍links.hig ...

  2. {转载}circos绘图(2)

    https://wenlongshen.github.io/2017/03/22/Circos-2/ 本章主要对circos环图中最基本的元素进行设置,包括karyotype.ideogram.tic ...

  3. [转载]Matlab绘图-很详细,很全面(包含各种标示符的输入方法)

    原文地址:Matlab绘图-很详细,很全面(包含各种标示符的输入方法)作者:deman Matlab绘图-很详细,很全面 Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一 ...

  4. matlab画图高级,[转载]Matlab绘图系列之高级绘图

    1.彗星图 二维彗星图 三维彗星图 2.帧动画 3.程序动画 4.色图变换 5.Voronoi图和三角剖分 Voronoi图 三角剖分 6.四面体 7.彩带图 彩带图 三维流彩带图 8.伪彩图 9.切 ...

  5. matlab 控制命令,[转载]Matlab绘图基本控制命令

    图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令: axis: 人工选择坐标轴尺寸. clf:清图形窗口. ginp ...

  6. matlab绘制曲线y=x3 x 1程序,[转载]Matlab绘图操作(1)

    1 二维数据曲线图 1.1 绘制单根二维曲线 plot函数的基本调用格式为:plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据. 例1 在0≤x≤2p区间内,绘制曲线 y= ...

  7. python画circos图_手把手教你画Circos图

    导读 Circos是一个由加拿大科学家Martin Krzywinski利用perl语言开发的用于描述关系型数据和可视化多维度数据的软件.Circos凭借输入简单,不需要太多的数据处理技巧就能调整到要 ...

  8. iMeta | 华南农大陈程杰/夏瑞等发布TBtools构造Circos图的简单方法

    点击蓝字 关注我们 定制Circos图:使用TBtools,从数据准备到可视化 https://onlinelibrary.wiley.com/doi/full/10.1002/imt2.35 ●20 ...

  9. matlab打开dat形式文件_matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭...

    MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据:将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据.至于选择哪种机制,则根据下面两个因素决定: ● 用 ...

最新文章

  1. 小米手机无法连接eclipse调试案例
  2. 解决Android 编译出错 找不到android.databinding.ViewDataBinding的类文件
  3. 从源码出发:JAVA中对象的比较
  4. FTP测试手机软件画画教程图片,手机绘画SketchBook原创教程
  5. NYOJ-苹果(dp)
  6. OpenGL: 渲染管线理论
  7. apache ftpserver java开发_apache FTPserver安装
  8. java集合框架介绍_Java集合框架全面介绍(一)
  9. 共享锁 排他锁 是什么区别
  10. 用JS实现图片模糊到清晰预加载效果
  11. 介绍一个很好的英语学习软件——单词风暴
  12. 计算机蓝屏代码0x0000007b,电脑开机出现蓝屏代码0x0000007b怎么办?
  13. 生鲜配送系统源码开发流程教程
  14. 产品经理之需求管理(非原创)
  15. 如何展现两极化数据,Excel柱状断层图不二之选
  16. 分享积分兑换小程序开发制作功能介绍
  17. Pytorch加载torchvision从本地下载好的预训练模型的简单解决方案
  18. 广东工业大学数据结构AnyView参考答案
  19. 丛林木马(数学 思维
  20. 基准测试神器 - JMH [ Java Microbenchmark Harness ]

热门文章

  1. 下载keep运动软件_Keep健身软件官方最新版下载-Keep健身软件下载v6.40.0安卓版-西西软件下载...
  2. GCN的Python实现与源码分析
  3. flink 1.14编译:flink-fs-hadoop-shaded找不到
  4. 微信小程序制作——获取用户信息
  5. 商标45类分类表明细表_45类商标分类明细_45类商标经营范围包括哪些商品-商标查询-知夫子...
  6. python are you ready_如果要检查recv_ready(),是否必须检查exit_status_ready?
  7. 蓝桥杯 算法提高 矩阵乘方
  8. 佳沛奇异果猕猴桃扫盲
  9. 互联网无处不在的“推荐算法”解析
  10. Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量