CIRCOS图绘制,大家可能在基因组和多组学的文章能经常见到,下图也是官方给出的统计信息和示例:

大家可以看出CIRCOS图给读者展示的信息也非常多,官方的程序是用Perl语言编写而成,由于perl语言本身的难度这给学习使用CIRCOS图的初学者带来了很多不便,今天给大家介绍使用R包circlize绘制简单的Circos图。

circlize包官方给出的示例

下面我们利用 circlize 绘制一个简单的 Circos 图:


# install.packages("circlize") 安装circlize
library(circlize)

factors = 1:8
par(mar = c(0.5, 0.5, 0.5, 0.5))
# 定义面板
circos.par(cell.padding = c(0, 0, 0, 0))
# 初始化
circos.initialize(factors, xlim = c(0, 1))
# 第一圈
circos.track(
  ylim = c(0, 1),
  track.height = 0.05,
  bg.col = rand_color(8),
  bg.border = NA
)
# 添加关系
for (i in 1:20) {
  # 随机生成关系
  se = sample(1:8, 2)
  circos.link(
    se[1],
    runif(2),
    se[2],
    runif(2),
    col = rand_color(1, transparency = 0.4),
    border = NA
  )
}
circos.clear()

一个简单的 circos 图就绘制好了,如果需要更多的信息展示可以依次叠加绘制多圈,详细请参考 circlize_book 。

参考资料:

1.http://circos.ca/

2.https://jokergoo.github.io/circlize_book/book/