Circos作图

Circos图因其美观和能展示复杂数据而被广泛使用。本文介绍了Circos的安装,包括conda安装和源码安装,并详细阐述了如何准备配置文件以运行软件,绘制包括染色体信息在内的各种图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Circos作图

写在前面

当矩形图无法满足要求的时候,我们就要掰弯它。

circos图是出现在各大期刊上的概率大大提高了,这不仅仅因为它好看,其次Circos还能同时展示出不能类型的数据。

一、Circos的安装

  • 1、conda安装

通过conda search circos,我们可以看到有很多个circos版本,因此我们无论安装哪个版本都是可以的。conda软件的安装在前面的文章中已经具体讲解。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iGohKlon-1615365386044)(https://imgkr2.cn-bj.ufileos.com/13041b23-4872-46bb-b8f7-bc28e7dc4ae1.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=b%252FXbhaBf2coOueKmrxMalh%252BvNJw%253D&Expires=1606802061)]

conda create -n circos

conda activate circos

conda install -y circos

  • 2、源码安装

wget http://circos.ca/distribution/circos-0.69-8.tgz

tar -zxvf circos-0.69-8.tgz

安装完成后添加到环境变量中就可以了。

由于源码安装需要自己去安装Circos软件所需要的perl模块,因此在使用软件前需要检查所需的模块的是否安装成功。

circos -modules

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uKxThtBS-1615365386046)(https://imgkr2.cn-bj.ufileos.com/6435dacf-4720-485d-b35e-2831cb0b1c9d.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=UvMtGKbVim4xTsn7BjrEAtllCc4%253D&Expires=1606803824)]

二、Circos画图

  • 1、准备配置文件

(1)最外圈染色体文件

#chr  -  染色体名字  circos染色体名字  染色体开始位置  染色体终止位置  颜色
chr	-	Supercontig_1	1	0	9798892	chr1
chr	-	Supercontig_2	2	0	4478682	chr2
chr	-	Supercontig_3	3	0	5274801	chr3
chr	-	Supercontig_4	4	0	6000760	chr4
chr	-	Supercontig_5	5	0	6436245	chr5

(2)内圈配置文件

绘制直方图

<plot>
# 设定为直方图
type = histogram
# 用于画直方图的数据文件路径。该文件需要编写程序生成。
# 数据文件为4列:
# chromosome       start          end     data
# Supercontig_1   0       9999    0.489
file = gc.histogram.txt
# 设置直方图的位置,r1 要比 r0 大。直方图的方向默认为向外。
r1   = 0.95r
r0   = 0.80r
# 直方图的填充颜色
#fill_color = vlgrey
color = red
# 默认下直方图轮廓厚度为 1px,若不需要轮廓,则设置其厚度为0,或在 etc/tracks/histogram.conf 中修改。
thickness = 6p
# 直方图是由 bins (条行框)所构成的。若 bins 在坐标上不相连,最好设置不要将其bins连接到一起。例如:
# hs1 10 20 0.5
# hs1 30 40 0.25
# 上述数据设置值为 yes 和 no 时,图形是不一样的。
extend_bin = no
# 设置坐标轴的最大值和最小值
max   = 1
min   = 0

# 设定直方图的背景颜色
<backgrounds>
show  = data

<background>
color = vvlgrey
</background>

</backgrounds>
</plot>

绘制 热图

<plot>
# 绘制 heat map
type  = heatmap
# 指定热图的数据文件路径。该文件需要编写程序生成。
# 数据文件为5列:
# chrID           start     end     data    class
# Supercontig_1   1151    2878    32.62   id=Nc000
# Supercontig_1   1151    2878    63.02   id=Nc015
# Supercontig_1   1151    2878    165.36  id=Nc060
# Supercontig_1   1151    2878    125.84  id=Nc120
# Supercontig_1   1151    2878    34.58   id=Nc240
file  = gene_expression.heatmap.txt
# 设定图形所处位置
r1    = 0.75r
r0    = 0.69r

# 设定数据显示的规则。以下规则表示,FPKM值在 0, 10, 100等区间使用4种不同的颜色表示。
<rules>
# 以下可以设置多个 rules
<rule>
# 条件判断,每个 rule 都有一个condition参数;如果该condition为真,则不对数据进行展示。
condition = var(id) ne "Nc000"
show      = no
# 若flow参数值为continue,则继续往下执行。
flow      = continue
</rule>
<rule>
condition     = var(value) <= 0
color         = black
### 使用 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 解决方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值