pheatmap 默认距离度量 R
pheatmap default distance metric R
我需要使用函数 'pheatmap' 制作热图,使用 UPGMA 和 1-pearson 相关作为距离度量。我的教授声称这是默认的距离度量,尽管在我的例子中它使用 'Euclidian' 作为距离度量。欧几里得和 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
您可以通过在终端中输入不带 () 的函数名称轻松检查默认设置
>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 中的更多信息。周围有太多的包,把东西搞混的情况并不少见:)
我需要使用函数 'pheatmap' 制作热图,使用 UPGMA 和 1-pearson 相关作为距离度量。我的教授声称这是默认的距离度量,尽管在我的例子中它使用 'Euclidian' 作为距离度量。欧几里得和 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
您可以通过在终端中输入不带 () 的函数名称轻松检查默认设置
>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 中的更多信息。周围有太多的包,把东西搞混的情况并不少见:)