用circlize包绘制circos-plot



作者简介Introduction

taoyan:伪码农,R语言爱好者,爱开源。

个人博客: https://ytlogos.github.io/

公众号:生信大讲堂


往期回顾

R语言可视化学习笔记之相关矩阵可视化包ggcorrplot

R语言可视化学习笔记之ggrepel包

R语言学习笔记之相关性矩阵分析及其可视化

ggplot2学习笔记系列之利用ggplot2绘制误差棒及显著性标记

ggplot2学习笔记系列之主题(theme)设置


circlize包

circlize包在德国癌症中心的华人博士Zuguang Gu开发的,有兴趣的可以去看看他的Github主页(https://github.com/jokergoo)。这个包有两个文档,一个是介绍基本原理的绘制简单圈圈图的,也是本次要介绍的。另外一份文档专门介绍基因组数据绘制圈圈图Genomic Circos Plot,我自己还没看完,下次再介绍。

根据我的学习发现这个包与ggplot2很相似,也是先创建一个图层,然后不断的添加图形元素(point、line、bar等),这些简单的图形元素都有circos.这个前缀进行绘制,比如要绘制点,则用circos.points()。具体的下面一一介绍。

用circlize绘制圈圈图

照例,没有安装这个包的先安装:install.packages("circlize")或者devtools::install_github("jokergoo/circlize")

绘图第一步是先初始化(circos.initialize),接下来绘制track,再添加基本元素。需要提一下的是,由于circlize绘制图是不断叠加的,因此如果我们一大段代码下来我们只能看到最终的图形,这里为了演示每端代码的结果,所以每次我都得初始化以及circlize.clear

library(circlize)

# 简单创建一个数据集

set.seed(999)

n <- 1000

a <- data.frame(factors = sample(letters[1:8], n, replace = TRUE), x = rnorm(n), y = runif(n))   

绘制第一个track

par(mar = c(1, 1, 1, 1), lwd = 0.1, cex = 0.6)

circos.par(track.height = 0.1)

circos.initialize(factors = a$factors, x = a$x)

#初始化,factors来控制track数目,初始化里只有x, 没有y。这一步相当于ggplot()

circos.trackPlotRegion(factors = a$factors, y = a$y,

panel.fun = function(x, y) {

circos.axis()})

col <- rep(c("#FF0000", "#00FF00"), 4) #自定义一下颜色

# 这里先解释一下,一个track有好几个cell,具体数目由factors决定的,向本数据集中factors有八个,因此绘制一个track,其包含八个cell。含有前缀circos.track的函数会在所有的cel里添加基本元素,而只有前缀circos.的函数可以在特定的track、cell里添加基本元素。具体看下演示。

circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5) #所有的cell里都绘制点图

circos.text(-1, 0.5, "left", sector.index = "a", track.index = 1) #在track 1中的标记为a的cell里添加

textcircos.text(1, 0.5, "right", sector.index = "a")

circos.clear()

接下来绘制第二个track

circos.trackHist添加柱状图,由于柱状图相对高级一点,因此circos.trackHist会自动创建一个track,无需我们circos.trackPlotRegion进行创建。

par(mar = c(1, 1, 1, 1), lwd = 0.1, cex = 0.6)

circos.par(track.height = 0.1)

circos.initialize(factors = a$factors, x = a$x)

circos.trackPlotRegion(factors = a$factors, y = a$y,

panel.fun = function(x, y) {

circos.axis()})

col <- rep(c("#FF0000", "#00FF00"), 4)

circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5)

circos.text(-1, 0.5, "left", sector.index = "a", track.index = 1)

circos.text(1, 0.5, "right", sector.index = "a")

bg.col <- rep(c("#EFEFEF", "#CCCCCC"), 4)

circos.trackHist(a$factors, a$x, bg.col = bg.col, col = NA)

circos.clear()

创建第三个track

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
绘制基因组变异圆圈图通常使用的工具是Circos。Circos是一个用于可视化科学数据的软件,特别适用于绘制基因组相关的图形。 以下是使用Circos绘制基因组变异圆圈图的一般步骤: 1. 准备数据:将基因组变异数据整理为适合Circos使用的格式,通常为文本文件或者表格。确保数据含变异的位置、类型和其他相关信息。 2. 安装Circos:首先需要下载和安装Circos软件。你可以从Circos官方网站(http://circos.ca/software/download)下载并按照指南进行安装。 3. 配置Circos:在安装完成后,你需要配置Circos的参数文件。这个文件定义了绘图的样式、数据文件的路径和其他设置。你可以根据自己的需求进行配置。 4. 数据解析:在配置完成后,你需要编写一个脚本或程序来解析基因组变异数据文件,并将其转换为Circos所需的格式。这个格式通常为一个特定的文本格式,描述了每个变异的位置、类型和其他相关信息。 5. 绘制图形:使用解析后的数据,运行Circos程序来生成基因组变异圆圈图。Circos会根据你的配置文件和数据文件生成相应的图形。 6. 自定义样式:如果需要,你可以根据自己的需求对图形进行自定义。Circos提供了丰富的配置选项和样式设置,你可以根据自己的需求进行调整。 请注意,绘制基因组变异圆圈图是一个复杂的过程,需要一定的编程和数据处理能力。如果你不熟悉Circos或者编程,建议寻求相关领域专家的帮助或者使用一些基因组可视化工具来简化这个过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值