> 文章列表 > R语言生成基因突变图教程

R语言生成基因突变图教程

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)]<-""

注释: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