pheatmap默认距离度量R

时间:2017-12-18 18:38:10

标签: r distance metric pheatmap

我需要使用UPGMA和1-pearson相关作为距离度量,使用函数' pheatmap'制作热图。我的教授声称这是默认距离指标,尽管在我的情况下它使用的是欧几里得'作为距离度量。欧几里得和1 - 皮尔森的相关性是相同还是错了?如果他错了我怎样才能为热图使用正确的距离指标?

我的输入

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,)

R输出

$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 

1 个答案:

答案 0 :(得分:3)

您可以通过在终端中键入不带()的功能名称来轻松检查默认设置

>pheatmap

如果你这样做,你可以看到欧几里得被用作默认:

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

要使用1-pearson相关性,只需将其指定为:

cluster_rows = TRUE,
clustering_distance_rows = "correlation"

这很有效,因为如果你深入研究代码,你可以看到它需要cluster_mat,它会这样做:

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

official document中的更多信息。周围有很多套餐,混合起来并不罕见:)