2017-12-18 34 views
1

UPGMAと1ピアソン相関を距離メトリックとして使用して、ヒートマップを「pheatmap」関数で作成する必要があります。私の教授は、これがデフォルトの距離メトリックだと主張していますが、私の場合はユークリッド距離を距離メトリックとして使用しています。真核生物と1 - ピアソンの相関は同じか、それとも間違っているのか?彼が間違っている場合、ヒートマップに正しい距離メトリックを使用するにはどうすればいいですか?pheatmapデフォルトの距離メトリックR

マイ入力

ph=pheatmap(avgreltlog10, color = colorRampPalette(rev(brewer.pal(n = 7, 
name = "RdYlBu")))(100), 
kmeans_k = NA, breaks = NA, border_color = "grey60", 
cellwidth = 10, cellheight=10, scale = "none", cluster_rows=TRUE, 
clustering_method = "average", cutree_rows = 4, cutree_cols= 2,) 

あなたのターミナルで()せずに関数名を入力して、デフォルトの設定を簡単に確認することができます

$tree_row 

Call: 
hclust(d = d, method = method) 

Cluster method : average 
Distance   : euclidean 
Number of objects: 65 


$tree_col 

Call: 
hclust(d = d, method = method) 

Cluster method : average 
Distance   : euclidean 
Number of objects: 10 
+0

このメソッドは、pheatmap ::: cluster_mat'関数に渡され、ソースコードを調べて、 "correlation"を指定すると 'd = as.dist(1 - cor(t(mat))) ' – rawr

+0

あなたはもっと精巧になりますか?今私は 'clustering_distance_rows =" correlation "、ph()関数の引数として clustering_distance_cols =" correlation "を引数として含めました。しかし、 'd = as.dist(1 - cor(t(mat)))'をどこに置くのかは分かりません。 'pheatmap ::: cluster_mat'をどうすればいいですか? –

+0

'pheatmap ::: cluster_mat'は単なる内部関数です。コンソールに入力してください。 'd = ...'で何もする必要はありません。 'pheatmap ::: cluster_mat'関数はそれを行います – rawr

答えて

1

R出力

>pheatmap 

そうした場合、ユークリッドがデフォルトとして使用されていることがわかります:

... clustering_distance_rows = "euclidean", clustering_distance_cols = "euclidean", clustering_method = "complete", ... 

は1-ピアソン相関を使用するには、単にそのように指定します。それは、ので、再び働く

cluster_rows = TRUE, 
clustering_distance_rows = "correlation" 

、あなたがコードに掘る場合はそれがないている、cluster_matを求めていることがわかりますこの:official document

cluster_mat = function(mat, distance, method){ 
... 
    if(distance[1] == "correlation"){ 
     d = as.dist(1 - cor(t(mat))) 
    } 
... 

詳細情報。