3

次のデータフレームがあります。

library(pheatmap)
library(RColorBrewer)

dat <- structure(c(36.28516213, -9.184523335, 5.716034994, 32.82180488, 
-18.5467127, 22.79930301, -24.79075287, -49.23768715), .Dim = c(2L, 
4L), .Dimnames = list(c("motif_a", "motif_b"), c("cow", "dog", 
"snake", "cat")))

dat
#>               cow       dog     snake       cat
#> motif_a 36.285162  5.716035 -18.54671 -24.79075
#> motif_b -9.184523 32.821805  22.79930 -49.23769

そして、次のヒートマップ コードを使用します。

p <- pheatmap(
  dat,
  color = colorRampPalette(rev(RColorBrewer::brewer.pal(n = 7, name = "RdYlBu")))(1000),
  clustering_method = "ward.D2",
  border_color = "grey60",
  clustering_distance_columns = "correlation",
  clustering_distance_rows = "correlation",
  fontsize_row = 6,
  cluster_rows = TRUE,
  cluster_cols = TRUE,
  scale = "row"
)

このプロットを取得できます。

ここに画像の説明を入力

プロットに示されているように、ヒートマップのすべてのポイントに対応する値を右側のカラー スケールに取得するにはどうすればよいですか。

たとえば、 にcow motif_bは値があります-9.184523が、右側のカラー スケールは 0 ~ -0.5 の値を示します。これらの値を取得するにはどうすればよいですか?

最終結果は、値が変換されたデータ フレームです。どうやってやるの?

4

2 に答える 2

1
scale_rows = function(x){
    m = apply(x, 1, mean, na.rm = T)
    s = apply(x, 1, sd, na.rm = T)
    return((x - m) / s)
}


zscores <- scale_rows(dat)

https://github.com/raivokolde/pheatmap/blob/44a44f7e640c73867f40261691c16dfa4da34fa8/R/pheatmap.r

于 2021-11-01T19:28:48.217 に答える