运维开发网

Circos:我其实真的没那么难画!

运维开发网 https://www.qedev.com 2021-04-10 14:28 出处:51CTO 作者:mob604756f4ef89
引言大家好,我叫circos。相信做生信的同学没有几个不认识我的吧,但我相信并不是每一个同学都画过我,对吧?我思考了一下,觉得原因无非有三:1) 完全没听过(好伤心); 2) 听过但不知道是干吗的(略感欣慰); 3) 听过也知道能干吗,但是不知道该怎么画(重点帮扶对象);针对这三个突出的问题,我将逐个击破,让你们彻彻底底地了(chong)解(bai)我。好了,话不多说我们开始吧。第一个问题和第

引言

大家好,我叫circos。相信做生信的同学没有几个不认识我的吧,但我相信并不是每一个同学都画过我,对吧?我思考了一下,觉得原因无非有三:1) 完全没听过(好伤心); 2) 听过但不知道是干吗的(略感欣慰); 3) 听过也知道能干吗,但是不知道该怎么画(重点帮扶对象);针对这三个突出的问题,我将逐个击破,让你们彻彻底底地了(chong)解(bai)我。

好了,话不多说我们开始吧。第一个问题和第二个问题的同学都认真听讲了哈, 我出生于2009年6月18号,当时是以一个资源工具类文章出现在Genome Research杂志上,而我已经多次出现在国际知名杂上,比如Nature, Science,Cell等。截止到2017年9月,我的引用已经达到了2856次。我的爸爸(第一作者)叫Martin Krzywinski, 你们可以叫他马丁或老马或更炫酷一点叫”Circos之父”,

Circos:我其实真的没那么难画!

他是一个加拿大人,涉足生物信息学,数学,物理学最牛的是他还是一个专业摄影师,也正是因为他这些艺术细胞,才赋予了我这样绚丽多彩的表现形式。下面请看看我的两个个人秀。

Circos:我其实真的没那么难画!

Circos:我其实真的没那么难画!

那么我到底能干什么呢?我主要用于基因组序列相关数据的可视化,比如甲基化,组蛋白修饰,snp,indel,sv,基因表达等。不过目前已应用于多个领域,如影视作品中的人物关系分析,物流公司的订单来源和流向分析等等。所以不是生信专业的同学也可以过来看看的。

铺垫了这么多,开始今天的重点---该如何画circos图?首先你得安装一个circos,不论你是windows系统还是linux系统,还没有安装的同学请自行度娘。Circos图一圈一圈的看着很复杂,其实circos并没有想象中那么难画,知其然才知其所以然,搞懂了原理,其实真的很简单!大家都见过直角坐标系吧,坐标(x,y)就能在坐标系中找到唯一的一个点与之对应。想象一下,把x轴两端向中间弯曲成一个圆,这不就是circos吗?是不是有点感觉了。因此画circos之前,你必须提供一个参考坐标系,也就是你的染色体信息,这个在circos叫做ideogram, 因此所有需要展示的数据都必须处理成与染色体位置对应的格式,即circos坐标,然后你把这些处理好的数据文件路径都填写到配置文件中(配置文件也是circos的核心,所有可视化细节都由配置文件进行控制),配置文件都填好后,运行一行命令circos图绘制也就成功了。

简而言之circos画图步骤, 给坐标系;数据处理;填写配置文件;画图;美化。比如,我们画一个circos图展示两个人全基因组snp, indel, SV的信息进行说明。

1 数据文件

1、基因组数据文件

Circos:我其实真的没那么难画!

第一列: 染色体, 表明这是一条染色体

第二列: 占位符, 定义所属关系

第三列:  ID, 跟身份证号码一样, 唯一不能重复的标识

第四列:  图中显示的文本

第五列: 起始。以0开始

第六列: 终止。第五列和第六列定义了染色体的实际大小

第七列: 颜色

2、snp数据文件

Circos:我其实真的没那么难画!

第一列: 染色体ID, 必须与基因组数据文件第三列相同

第二列: 目标区域的起始位置

第三列: 目标区域的终止位置

第四列:value值。这里表示1号染色体1~50kb范围内snp个数为180

3、indel数据文件

Circos:我其实真的没那么难画!

第一列: 染色体ID, 必须与基因组数据文件第三列相同

第二列: 目标区域的起始位置

第三列: 目标区域的终止位置

第四列:value值。这里表示1号染色体1~50kb范围内snp个数为180

4、sv数据文件

Circos:我其实真的没那么难画!

第一列: 染色体ID, 必须与基因组数据文件第三列相同

第二列: 目标区域的起始位置

第三列: 目标区域的终止位置

第四列:  value值。这里表示1号染色体1~50kb范围内sv的总长度为1624

1 文件配置

一般画circos图需要以下几个配置文件

Circos:我其实真的没那么难画!

circos.conf                    主要配置文件, 包含其它配置文件,用于最终的画图

ideogram.conf                 显示染色体

ticks.conf                     以刻度形式显示染色体大小

Image.conf                        成像配置文件,默认生成png 和 svg 格式文件

Colors_fonts_patterns.conf       颜色字体模式等默认配置文件

主要配置文件circos.conf如下,其它配置文件通过include引入主配置文件:

Circos:我其实真的没那么难画!

最后运行如下命令:

./bin/circos-conf circos.conf

结果如下:

Circos:我其实真的没那么难画!

1 小结

1) Circos产生静态图片。这些图片的产生过程是通过一个主要配置文件的实现的。这个文件通常会导入其它的配置文件,例如全局的颜色和字体设置。

2) Circos没有图形界面。典型的流程如下:

觉得数据该如何被显示(这是最难的部分,运筹帷幄的部分)

将数据解析成Circos 格式

构建一个配置文件,自己写或者用教程中的模版

运行circos来产生PNG和SVG格式文件

按发布文章的要求去适当编辑图片文件(像添加图例、文字等)

Circos画图典型特点: 命令使用非常简单(一行命令), 配置文件填写很复杂。

参考文献:

KrzywinskiM, Schein J, İnanç Birol, et al. Circos: An information aesthetic forcomparative genomics[J]. Genome Research, 2009, 19(9):1639-1645.

0

精彩评论

暂无评论...
验证码 换一张
取 消