R语言生成基因突变图教程
R语言制作基因突变图教程
#软件环境搭建。请参考网址:
https://blog.csdn.net/xhmico/article/details/122443660
# 安装依赖
if(!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ComplexHeatmap")
install.packages("openxlsx")
install.packages("circlize")
install.packages("grid")
# 加载依赖库
library(openxlsx)
library(ComplexHeatmap)
library(circlize)
library(grid)
#读入数据(代码导入方式)
mut <-read.xlsx("data.xlsx",sheet = "data", rowNames = TRUE)
# 处理空数据
mut[is.na(mut)]<-""
#指定数据列为纵轴
rownames(mut) <- mut$sample
注释:sample 为数据集中要指定的列名
mat <- mut[,-1]
注释:mat新定义的临时变量
#如果执行后没出现指定列,重复执行如下代码
rownames(mat) <- 样本数据$...1
# 定义值颜色根据实际数据自定义
col <- c( "无法获得" = "#808080" , "高危" = "#FF0000" , "中危" = "#ED7D31", "in" = "#548235","out" = "#C6E0B4", "2in" = "#375623","2out" = "#C6E0B4", "3out" = "#C6E0B4","in&out" = "#548235", "0" ="#FFFFFF", "1" = "#305496")
# 定义绘制函数
alter_fun <- list(
background = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"),h-unit(0.5, "mm"),
gp = gpar(fill ="#FFFFFF", col = NA))
},
"无法获得" = function(x,y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill = col["无法获得"], col = NA))
},
"高危" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill = col["高危"], col = NA))
},
"中危" = function(x,y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill = col["中危"], col = NA))
},
"in" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["in"], col = NA))
},
"out" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["out"], col = NA))
},
"2in" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["2in"], col = NA))
},
"2out" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["2out"], col = NA))
},
"3out" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"),h-unit(0.5,"mm"),
gp = gpar(fill =col["3out"], col = NA))
},
"in&out" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["in&out"], col = NA))
},
"0" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["0"], col = NA))
},
"1" = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, "mm"), h-unit(0.5,"mm"),
gp = gpar(fill =col["1"], col = NA))
}
)
# 定义图例
heatmap_legend_param <- list(
title = "图例",
grid_width = unit(4, "mm"),
labels_gp = gpar(col = "#333333", fontsize = 12),
at = c("无法获得","高危", "中危", "in", "out", "2in","in&out", "2out", "3out", "0","1"),
labels = c("无法获得","高危", "中危", "in", "out", "2in","in&out", "2out", "3out", "无突变", "突变")
)
# 绘制
oncoPrint(
mat,
alter_fun = alter_fun,
col = col,
column_title = "",
row_order = c("染色体","CEBPAdm", "CEBPAsm", "CEBPAtm","TET2", "WT1", "IDH2", "NRAS","NPM1", "FLT3-ITD", "DNMT3A", "SRSF2","STAG2", "GATA2", "ASXL1", "CSF3R","U2AF1", "FLT3其它突变","RUNX1", "EZH2", "SMC1A", "MPL","JAK2", "SF3B1", "SETBP1", "KRAS","BCOR", "SH2B3", "SMC3", "PTPN11"),
show_pct = FALSE,
row_names_side = "left",
pct_side= "right",
right_annotation = NULL,
top_annotation = NULL,
heatmap_legend_param = heatmap_legend_param
)
#注释:mat为样本名称。R语言中的样本临时变量
参考:https://zhuanlan.zhihu.com/p/148945347