2017-07-03 55 views
0

"ComplexHeatmap"パッケージを使用して、マトリックス内の相関ヒートマップを作成しています。 私は、私は以下のコードを実行するヒートマップの系統樹のために私自身のクラスタリングを使用したい:"ComplexHeatmap"パッケージを使用したヒートマップ樹状図

library(ComplexHeatmap); 
mat = matrix(rnorm(800),80,10); 
cor.mat= cor(mat) 
dist.mat = (1-cor.mat)/2; 
rowdist = dist(as.matrix(dist.mat), method = "euclidean") 
rowcluster = hclust(rowdist, method = "ward.D2") 
coldist = dist(t(as.matrix(dist.mat)), method = "euclidean") 
colcluster = hclust(coldist, method = "ward.D2") 
par(mfrow=c(1,2));plot(rowcluster);plot(colcluster); 
Heatmap(cor.mat ,cluster_rows=rowcluster, cluster_columns=colcluster) 

問題は、私は、クラスタという事実にもかかわらず、行と列(非対称)の異なるクラスタリングを取得し、ありますオブジェクトは同じです。 ヒートマップ関数を行と列にまったく同じオブジェクトに渡しても、行と列の順序は変わりません。 もし私が樹木図(plot(rowcluster)またはplot(colcluster))を作成するだけであれば、それは同じです。

対称ヒートマップを取得したいと考えています。 これはなぜ起こりますか? ありがとう

答えて

0

rowclust = colclustを使用してください。

転置する必要はありません。

しかし、すでに距離行列があることに注意してください。「ユークリッド距離」は間違っています。あなたはあなたの距離行列の距離行列を計算しています!

関連する問題