簡體   English   中英

如何在r中使用heatmap.2讓簇在對角線上排列?

[英]How to get clusters to line up on the diagonal using heatmap.2 in r?

我正在嘗試聚類蛋白質dna相互作用數據集,並使用來自R包gplots的heatmap.2繪制熱圖。 以下是生成這些圖形的完整過程:在我的案例中,使用一些相關性生成距離矩陣。

library(RColorBrewer);
library(gplots);
args <- commandArgs(TRUE);
matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1);
mtscaled <- as.matrix(scale(matrix_a))
pdf("result.pdf", pointsize = 15, width = 18, height = 18)
result <- heatmap.2(mtscaled, Colv=T,Rowv=T, scale='none',symm = T, col = brewer.pal(9,"Reds"))
dev.off() 

通過執行以下操作,我可以使用正常的熱圖功能來完成此操作:

result <- heatmap(mtscaled, Colv=T,Rowv=T, scale='none',symm = T)

但是,當我對Heatmap.2使用相同的設置時,群集在對角線上也不會對齊。 我附加了2張圖像,第一張圖片使用熱圖,第二張圖片使用熱圖。 我使用了RColorBrewer包中的Reds顏色來幫助更好地顯示我正在拍攝的內容。 我通常只使用默認的熱圖功能,但我需要heatmap.2提供的顏色變化。

以下是用於生成熱圖的數據集的列表,在將其轉換為距離矩陣后: DataSet

從熱圖中繪制的熱圖

熱圖來自Heatmap.2

就好像有兩個參數是沖突的。 Colv=T表示按簇排序列, symm=T表示排列列與行相同。 當然,兩個約束都可以滿足,因為數據是對稱的,而是Colv=T wins,你會得到兩個獨立的簇序列,這些序列恰好是不同的。

如果你放棄了樹形圖的冗余副本,下面給出了你想要的熱圖,至少:

result <- heatmap.2(mtscaled, Rowv=T, scale='none', dendrogram="row", symm = T, col = brewer.pal(9,"Reds"))

對稱熱圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM