# 安装包
if (!requireNamespace("circlize", quietly = TRUE)) {
install.packages("circlize")
}if (!requireNamespace("ggplotify", quietly = TRUE)) {
install.packages("ggplotify")
}
# 加载包
library(circlize)
library(ggplotify)
弦图
复杂的数据关系交互作用以和弦图的形式表现出来。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
circlize
;ggplotify
数据准备
基因与通路或基因本体相互作用的数据框架或矩阵。
# 加载数据
<- read.table("files/Hiplot/020-chord-data.txt", header = T)
data
# 整理数据格式
row.names(data) <- data[, 1]
<- data[, -1]
data <- as.matrix(data)
data
# 查看数据
head(data)
E1 E2 E3 E4 E5
S1 4 16 12 18 11
S2 7 11 2 15 10
S3 9 2 17 16 11
S4 14 9 12 3 17
S5 1 1 7 1 12
S6 10 18 9 13 9
可视化
# 弦图
<- c("#E64B35FF","#4DBBD5FF","#00A087FF","#3C5488FF","#F39B7FFF",
Palette "#8491B4FF","#91D1C2FF","#DC0000FF","#7E6148FF","#B09C85FF")
<- c(Palette, Palette, Palette[1:5])
grid.col <- as.ggplot(function() {
p chordDiagram(
grid.col = grid.col, grid.border = NULL, transparency = 0.5,
data, row.col = NULL, column.col = NULL, order = NULL,
directional = 0, # 1, -1, 0, 2
direction.type = "diffHeight", # diffHeight and arrows
diffHeight = convert_height(2, "mm"), reduce = 1e-5, xmax = NULL,
self.link = 2, symmetric = FALSE, keep.diagonal = FALSE,
preAllocateTracks = NULL,
annotationTrack = c("name", "grid", "axis"),
annotationTrackHeight = convert_height(c(3, 3), "mm"),
link.border = NA, link.lwd = par("lwd"), link.lty = par("lty"),
link.sort = FALSE, link.decreasing = TRUE, link.largest.ontop = FALSE,
link.visible = T, link.rank = NULL, link.overlap = FALSE,
scale = F, group = NULL, big.gap = 10, small.gap = 1
)
})
p
