大数跨境
0
0

如何优雅的通过circlize绘制基因组图

如何优雅的通过circlize绘制基因组图 R语言数据分析指南
2021-07-19
2
导读:本节来介绍如何通过circlize绘制高级基因组图,后台回复20210719获取本文代码;喜欢的小伙伴欢迎扫

本节来介绍如何通过circlize绘制高级基因组图,后台回复20210719获取本文代码;喜欢的小伙伴欢迎扫描文末二维码加入我的交流群,更多精彩内容为您而准备

加载R包

library(tidyverse)
library(circlize)
library(ComplexHeatmap)

构建数据

set.seed(123)

bed <- generateRandomBed(nr=20,fun = function(k) sample(letters,k,replace = TRUE)) %>% 
  rename(gene=value1)

bed1 <- generateRandomBed(nr=50,nc =3) %>%
  filter(value1 > 0 | value2 > 0.2& value3 < -0.1) %>%
  head(20)

绘制染色体轨道

circos.genomicLabels自定义添加标签

circos.initializeWithIdeogram(plotType = NULL)
circos.genomicLabels(bed, labels.column = 4, side = "outside",
                     col = as.numeric(factor(bed[[1]])),
                     line_col = as.numeric(factor(bed[[1]])))
circos.genomicIdeogram()

自定义颜色

col_fun1 = colorRamp2(c(-1,0,0.5,1),
                      c("#3B9AB2","#78B7C5","#EBCC2A","#E1AF00"))
col_fun2 = colorRamp2(c(-1,0,1),
                      c("#FF0000","#00A08A","#F2AD00"))
col_fun3 = colorRamp2(c(-1,0,0.5,1),
                      c("#FF0000","#00A08A","#F2AD00","#F21A00"))

circos.genomicHeatmap绘制内圈

此处我们分批绘制三层内圈

circos.genomicHeatmap(bed1 %>% select(1,2,3,4),col = col_fun1,side = "inside"# 热图方向
                      heatmap_height = 0.2,  # 热图轨道高度
                      connection_height =mm_h(10),  #连接线的高度
                      border = "white")

circos.genomicHeatmap(bed1 %>% select(1,2,3,5),col = col_fun2, 
                      side = "inside",
                      connection_height=NULL, # NULL不显示连接线
                      heatmap_height = 0.15,
                      border = "white")

circos.genomicHeatmap(bed1 %>% select(1,2,3,6),col = col_fun3, 
                      side = "inside",
                      connection_height=NULL,
                      heatmap_height = 0.15,
                      border = "white")

ComplexHeatmap绘制图例

此处通过ComplexHeatmap包提供的Legend函数自定义绘制图例

lgd1 = Legend(col_fun = col_fun1,title="group1",at =c(-1,0,0.5,1))
draw(lgd1,x = unit(0.9,"npc"), y = unit(0.8,"npc"),just = c("right","top"))

lgd2 = Legend(col_fun = col_fun2,title="group2",at =c(-1,0,1))
draw(lgd2,x = unit(0.9,"npc"), y = unit(0.6,"npc"),just = c("right","top"))

lgd3 = Legend(col_fun = col_fun3,title="group3",at =c(-1,0,0.5,1))
draw(lgd3,x = unit(0.9,"npc"), y = unit(0.4,"npc"),just = c("right","top"))

往期精彩:

配置R与Rstudio
ggplot2中的一些关键概念
tidyverse的基础使用
ggplot2绘制终极版热图
ggtree绘制进化树
初探相关性热图
再探相关性热图
ggplot2绘制相关性热图
初探柱状图
绘制具有显著性的条形图
ggplo2绘制经典条形图
ggplo2绘制双误差线条行图
揭开ggplot2中stat图层的神秘面纱
R中的图片注释神包aplot
ggplot2使用patchwork高质量拼图
ggplot2绘制基础散点图
ggplot2绘制经典散点图-1
ggplot2绘制经典散点图-2
ggplot2绘制云雨图
ggplot2绘制经典云雨图
ggplot2绘制哑铃图
ggplot2绘制经典哑铃图
ggplot2添加gif

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k