snp可视化之瀑布图

在进行snp分析过程中,我们会使用一个图形来展示突变的情况,如下图所示
在这里插入图片描述
使用GenVisR包绘制,这个包是专门用来绘制表达变异信息的snp图(数据格式如下)
基因的变异信息
在这里插入图片描述
分组信息
在这里插入图片描述
脚本如下:
library(GenVisR)
rt=read.table(“waterfallInput2.txt”,header=T,sep="\t",check.names=F,quote="")
clinical=read.table(“clinical2.txt”,header=T,sep="\t",check.names=F)

Melt the clinical data into ‘long’ format.

library(reshape2)
clinical <- melt(clinical, id.vars = c(“sample”))

Run waterfall

pdf(file=“waterfall.pdf”,height=10,width=12)
waterfall(rt, clinDat = clinical,clinLegCol=3)
dev.off()
很简单的代码。但是这个包有一个缺点,就是变异类型必须是下面的格式,否则就会出错。
在这里插入图片描述
如果不是这样的变异类型该怎么办?
是不是也有R包可以这样做呢?
当然是有的,ComplexHeatmap包就是其中之一。详细的看下面的代码,可以自己定义变异类型。这里我只是简单的画一下。
library(ComplexHeatmap)
library(RColorBrewer)
data1<-read.csv(“test_1.csv”,header = T,sep=",")
data1 = as.matrix(data1)
rownames(data1) = data1[,1]
data = data1[,-1]
library(ComplexHeatmap)
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 = “#CCCCCC”, col = NA))
},
insertion = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h-unit(0.5, “mm”), gp = gpar(fill = “blue”, col = NA))
},
mutation = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h-unit(0.5, “mm”), gp = gpar(fill = “red”, col = NA))
},
deletion = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h*0.33, gp = gpar(fill = “#008000”, col = NA))
}
)
col = c(“insertion” = “#008000”, “mutation” = “red”, “deletion” = “blue”)

oncoPrint(data, get_type = function(x) strsplit(x,";")[[1]],
alter_fun = alter_fun, col = col,
heatmap_legend_param = list(title = “Alternations”, at = c(“insertion”, “mutation”, “deletion”),
labels = c(“insertion”, “mutation”, “deletion”)))

在这里插入图片描述
这个包只能画到这个程度吗?似乎和GenVisR包画的差别很大,甚至没有分组信息,可以增加分组信息吗?
当然可以了,脚本如下:
library(ComplexHeatmap)
library(RColorBrewer)
data1<-read.csv(“tumor1.csv”,header = T,sep=",")
cli <- read.csv(“1.txt”,header = T,sep="\t")
data1 = as.matrix(data1)
rownames(data1) = data1[,1]
data = data1[,-1]
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 = “#CCCCCC”, col = NA))
},
Nonsense_SNV = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h-unit(0.5, “mm”), gp = gpar(fill = “blue”, col = NA))
},
Fusion = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h-unit(0.5, “mm”), gp = gpar(fill = “red”, col = NA))
},
Missense_SNV = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h0.33, gp = gpar(fill = “#008000”, col = NA))
},
Deletion = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h
0.33, gp = gpar(fill = “#008000”, col = NA))
},
Inframe_Indel = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h0.33, gp = gpar(fill = “#008000”, col = NA))
},
Amplication = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h
0.33, gp = gpar(fill = “#008000”, col = NA))
},
Splice_Site = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h0.33, gp = gpar(fill = “#008000”, col = NA))
},
Frameshift_Indel = function(x, y, w, h) {
grid.rect(x, y, w-unit(0.5, “mm”), h
0.33, gp = gpar(fill = “#008000”, col = NA))
}
)
col = c(“Nonsense_SNV” = “#008000”,
“Missense_SNV” = “red”,
“Fusion” = “blue”,
“Deletion”=“yellow”,
“Frameshift_Indel”=“green” ,
“Splice_Site”=“black”,
“Amplication”=“purple”,
“Inframe_Indel”="#800080")
pointsize=12,bg=“white”,res=NA,restoreConsole=TRUE)

ht_list = oncoPrint(data, alter_fun = alter_fun, col = col,
top_annotation = HeatmapAnnotation(cbar = anno_oncoprint_barplot(),
bar1 = anno_points(cli[,2]),
gender=cli[,3]))+
Heatmap(matrix(rnorm(nrow(data)*10), ncol = 10), name = “expr”, width = unit(4, “cm”))
draw(ht_list)
在这里插入图片描述
生活就是喜欢这两个字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值