我正在使用R的热图3包来生成一些基因表达数据热图。
我的问题是:基因表达的值是如何“映射”到颜色的?
作为相同(可重现)问题的示例,让我们使用mtcars数据集上的插图中的示例代码:
library(heatmap3)
heatmap3(mtcars,scale="col",margins=c(2,10),RowSideColors=RowSideColors, balanceColor = TRUE)
图例显示颜色范围从大约-2到加3.如果我们使用玛莎拉蒂宝来作为例子
mpg cyl disp hp drat wt qsec vs am gear carb
15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
我们可以在热图中看到它具有鲜红色,即碳水化合物的得分为~3,qsec的得分为约-1.5。
查看数据集中的其他汽车,他们有以下碳水化合物:
4 4 1 1 2 1 4 2 2 4 4 3 3 3 4 4 4 1 2 1 1 2 2 4 2 1 2 2 4 6 8 2
所以玛莎拉蒂宝来绝对是碳的异常值,法拉利迪诺(碳水化合物= 6)也是如此,这在热图中也是预期的红色。
同样,看看qseq
16.46 17.02 18.61 19.44 17.02 20.22 15.84 20.00 22.90 18.30 18.90 17.40 17.60 18.00 17.98 17.82 17.42 19.47 18.52 19.90 20.01 16.87 17.30 15.41 17.05 18.90 16.70 16.90 14.50 15.50 14.60 18.60
玛莎拉蒂的14.60接近最低值14.5,在福特Pantera L中也是如此,这也是我们所期望的蓝色。
但我们如何实现从价值到颜色呢?计算这个z分数的公式是什么?是基于每辆车还是每参数(mpg,cyl等)来平均?
答案 0 :(得分:0)
好吧,我想我只是想出来了 - 但是发布在这里以防其他人有同样的问题:
它使用基本的z得分公式,所以
(mtcars$qsec - mean(mtcars$qsec))/sd(mtcars$qsec)
(value - pop_mean(value))/ sd(value)