circos 作图简介

Circos官网   http://circos.ca

在线绘图工具    http://mkweb.bcgsc.ca/tableviewer/visualize/

Circos图的诞生

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

Circos图的用途

Circos图其实是一个用途非常广泛的图形,可以用于表征基本上任何类型的数据,包括把我们常见的散点图、折线图等都可以整合到Circos图中。特别的,Circos图尤其适合用来描述生物信息学和基因组学的数据。

Circos图的做法

绘制Circos图有以下几种做法,由难到易依次为:

方法一:Perl 语言

官方提供的绘制Circos图的软件叫做Circos,是一个由Perl语言编写的一个非常庞大的软件,安装起来非常麻烦:

1. 下载安装Perl语言

2. 从Circos官方网站下载Circos:http://circos.ca/software/download/

下载好之后就是安装Circos需要的Perl模块,粗略统计了一下,Windows中的Active Perl如果要运行Circos,需要安装十几个模块,所以这个很麻烦,难度也很大。

方法二:R语言

推荐几个可以做Circos图的R包

-- circlize

-- RCircos

方法三:Circos Table Viewer

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

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

这个网站很慢,可能还需要翻墙

这是目前为止最为简洁的绘制Circos图的方法,只要上传一个文本文件就可以绘图了。具体绘图步骤如下:

1. 进入在线绘图网站 

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

 

2. 准备数据

数据需要放到文本文件中,用空格或者制表符分隔

由于Circos Table Viewer不接受小数,将相关系数都乘以1000

 

 3. 上传文件

点击 “浏览” 上传文件,然后点击 “Visualize Table” 即可生成Circos图

 

 4. 下载Circos图

### 使用 MATLAB 中的 Circos 进行数据可视化 尽管 Circos 是一种强大的工具,用于展示复杂的数据关系和多层注释[^1],它本身并不是原生支持 MATLAB 的软件。然而,可以通过一些间接方法,在 MATLAB 中实现类似的 Circos 形。 #### 方法一:调用外部 Python 或 Perl 脚本 Circos 主要通过配置文件驱动,并依赖于 Perl 脚本来生成形。MATLAB 可以通过 `system` 命令运行外部脚本。以下是具体操作: 1. **准备数据** 将需要可视化的数据导出到 CSV 文件或其他适合 Circos 配置的格式中。 2. **编写 Circos 配置文件** 创建必要的 `.conf` 和其他辅助文件来描述数据结构以及绘参数。 3. **在 MATLAB 中执行命令** 利用 MATLAB 的 `system` 函数运行 Circos 工具链中的 Perl 脚本。 ```matlab system('perl /path/to/circos/bin/circos -conf /path/to/config.conf'); ``` 此过程允许 MATLAB 用户利用 Circos 的强大功能完成复杂的环状表绘制。 #### 方法二:使用第三方 MATLAB 工具箱 虽然官方 Circos 不直接支持 MATLAB,但社区开发了一些替代方案或仿制库。例如: - **Circle Plotter**: 提供简单的圆圈布局能力,适用于基本需求。 - **Custom Scripts**: 开发者可以基于 MATLAB 自己构建类似于 Circos形组件。 下面是一个简单示例代码片段,演示如何手动创建一个基础圆形布局: ```matlab theta = linspace(0, 2*pi, 10); % 定义角度范围 r = ones(size(theta)); % 半径固定为单位长度 x = r .* cos(theta); y = r .* sin(theta); figure; plot(x, y, 'b-', 'LineWidth', 2); hold on; % 绘制外框 for i = 1:length(theta)-1 plot([x(i), x(i+1)], [y(i), y(i+1)], 'k--'); % 添加连接线 end axis equal; axis off; % 设置坐标轴比例并隐藏 title('Simple Circular Layout Example'); ``` 这种方法更适合轻量级应用场合,但对于高度定制化的需求可能仍需借助完整的 Circos 解决方案。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值