pheatmap, gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot
生活随笔
收集整理的這篇文章主要介紹了
pheatmap, gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要步驟
pheatmap
- 數據處理成矩陣形式,給行名列名
- 用pheatmap畫熱圖(pheatmap函數內部用hclustfun 進行聚類)
ggplot2
- 數據處理成矩陣形式,給行名列名
- hclust聚類,改變矩陣行列順序為聚類后的順序
- melt數據,處理成ggplot2能夠直接處理的數據結構,并加上列名
- ggplot_tile進行畫圖
gplots
- 數據處理成矩陣形式,給行名列名
- 調制顏色并用heatmap.2畫熱圖(heatmap.2函數內部用hclustfun 進行聚類)
R語言代碼
library(pheatmap) library(data.table) CN_DT <- fread("/home/ywliao/project/Gengyan/ONCOCNV_result/ONCOCNV_all_result.txt",sep="\t") dt <- CN_DT[cfDNATime=="cfDNA1"] wdt <- dcast(dt,Gene~Sample,value.var = "CN",fun.aggregate = mean) data <- as.matrix(wdt[,2:length(wdt),with=F]) #數據矩陣 rownames(data) <- unlist(wdt[,1]) pheatmap(data) library(ggplot2) library(data.table) CN_DT <- fread("/home/ywliao/project/Gengyan/ONCOCNV_result/ONCOCNV_all_result.txt",sep="\t") dt <- CN_DT[cfDNATime=="cfDNA1"] wdt <- dcast(dt,Gene~Sample,value.var = "CN",fun.aggregate = mean) data <- as.matrix(wdt[,2:length(wdt),with=F]) #數據矩陣 rownames(data) <- unlist(wdt[,1]) hc<-hclust(dist(data),method = "average") #對行進行聚類 rowInd<-hc$order #將聚類后行的順序存為rowInd hc<-hclust(dist(t(data)),method = "average") #對矩陣進行轉置,對原本的列進行聚類 colInd<-hc$order #將聚類后列的順序存為colInd data<-data[rowInd,colInd] #將數據按照聚類結果重排行和列 dp=melt(data) #對數據進行融合,適應ggplot的數據結構,以進行熱圖的繪制 colnames(dp) <- c("Gene","Sample","Value") p <- ggplot(dp, aes(Sample,Gene)) + geom_tile(aes(fill = as.factor(Value)))+theme(axis.text.x=element_text(angle = 90))+ guides(fill = guide_legend(title = "Copy Number")) + scale_fill_brewer(palette = 3) p轉載于:https://www.cnblogs.com/ywliao/p/7061418.html
總結
以上是生活随笔為你收集整理的pheatmap, gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CYQ.Data 轻量数据层之路 应用示
- 下一篇: 【大数据新手上路】“零基础”系列课程--