【科研猫·绘图】团团“圆圆”,来个不一样的月饼

2019-09-24 17:21:25 浏览数 (1)

月圆圆月团圆夜,团圆夜里望月圆,

月圆夜圆月圆圆,夜圆月圆夜团圆~

值此中秋佳节到来之际,“科研猫”祝大家节日快乐,还精心给大家备了一份送来圆圆的月饼。

前面三个相信都是大家想要的,最后一个是什么鬼?明显不是月饼啊喂。虽然表示不懂是个啥,但是看上去有点妖娆到摄人心魄啊。

今天,在吃月饼的同时,我们就来聊聊这个圆圆的图。这个图,有人叫它“圈图”(果然很直白),其实它有个很高级的名字,叫做(记好了)-“Circos图”。相信大家之前也在很多高级杂志中看到过这样的图片,但是会画的人并不多。下面,我们就来讲讲Circos图的前生今世,教大家如何画一个简单的Circos图。

Circos-诞生

Circos图诞生于2009年,当时是作为一个绘图工具类的文章发表在Genome Research(最新IF:9.944)上,其作者是Martin Krzywinski,可为“Circos之父”,我们姑且尊称他为“马老师”。从那时出现开始便多次出现在国际知名杂志,比如Nature、Science、Cell上。截止到2019年9月该文章已被引用将近3,500次。

马老师是涉足生物信息学、数学、物理学,虽然是个不折不扣的工科男,但是他在日常生活中是一个很有艺术细胞的人,他还是一名专业的摄影师,这也就决定了我们的马老师对于“图”这个东西是有自己非常独到的看法的。自他手中创造出来的Circos图也是一样绚丽多姿。可以看一下诸多杂志社的封面文章,很多Circos图的身影。

Circos-用途

CIrcos图其实是一个用途非常广泛的图形,可以用于表征基本上任何类型的数据,包括把我们常见的散点图、折线图等都可以整合到Circos当中。特别是,CIrcos尤其适合用来描述生物信息学和基因组学的数据(别忘了马老师本来就是做生物信息的),我们可以看一下Circos官网(http://circos.ca/)对于Circos用途的描述词频汇总:

既然,Circos图这么好用,那么我们该使用什么方法来做图呢?

Circos-做法

Circos图的绘图软件就叫Circos,直奔主题,它的做法有几种,我们从难到易给大家逐一介绍:

方法一:Perl语言

Circos是由Perl语言编写的一个非常庞大的软件,安装起来可以说相当麻烦,首先我们需要安装Perl语言,其次需要下载Circos(如需获取,也可直接联系文末客服),网址如下:

http://circos.ca/software/download/

下载好之后就是安装Circos需要的Perl模块,粗粗统计一下,Windows中的Active Perl如果要运行Circos,需要安装十几个模块。我写过大量的Perl代码,所以对Perl是及其熟悉的,但是就我这样,去安装Circos也要花费一两个小时的时间才能完全调试好。当你装好了以后要运行的话,你会发现,不好意思,没有图形界面,我们需要自己到命令行运行,而且手动修改配置文件。

所以,虽然这是运行Circos最原汁原味、而且功能最为强大的方法,画出来的图都是下面这样的,美但是不方便,但是科研猫温馨提示大家:如果Perl语言没到大神水平,千万不要尝试这种做法。

方法二:R语言

在前面我们的很多文章中都讲过R语言绘图,大家也都见识了R语言的厉害之处,而且我也曾经说过:没有R画不了的图。那么,既然大话都说下了,不能自己打了自己的脸面。

在这里给大家推荐几个R包,可以用来做Circos图。

  • circlize
  • RCircos

具体的代码就不贴出来了,做图来的图是这样色儿的:

在R语言当中画图还算是方便的,不过也要写代码,貌似图不是很美,所以不美也不方便。

方法三:Circos Table Viewer

这个是Circos官方的在线画图工具,网址如下:

http://mkweb.bcgsc.ca/tableviewer/visualize/

这个是目前为止最为简洁的方法,最要上传一个表格就能画图啦,非常简单哦,下面我们就来跟大家一起操作一下,我们举一个最简单的例子。

  • 例题
  • 我们计算了8个基因之间的相关系数,推测他们之间的功能是否有相互作用,有了下面一个表格(由于Circos Tableviewer不接受小数,所以用相关系数*1000表示),现在需要进行可视化做图:

如果是给你这个表格,你该用什么图来描述这些相关性数值呢?箱线图?折线图?散点图?饼图?抑或是热图?貌似都不是很合适啊。这个时候我们来看看Circos图该怎么画。

Step1

进入网站:

http://mkweb.bcgsc.ca/tableviewer/visualize/

打开来是这样的。

Step2

准备数据(如需测试数据,文末联系胖雨小姐姐)。我们的数据非常简单,只需要放到文本文件中,用空格或者制表符(Tab键)隔开就行,如下图所示。

Step3

点击上传文件,然后点击“Visualiza Table”即可。做图来的图片如下,还可以支持矢量图下载哦。

是不是很简单,很方便呢?好的,关于Circos图我们就先讲到这里,大家应该都可以做出来的。再次祝福大家中秋快乐,团团圆圆!

中秋福利!

本期干货

Circos软件及绘图资料

原文详情:“科研猫”公众号

科研猫原创系列,未经许可严禁转载,版权事宜由上海辰明律师事务所提供法务支持。

0 人点赞