写在前面热图,或称热力图,是外文 Heatmap 的直译。在几乎所有数值分析相关工作中都可以看到。生物信息学数据,自然躲不过。无论是形态数据,还是基因拷贝数数据,或是基因表达量,都可以使用热图来进行可视化分析。
热图的基本认知常常,我们手上会有这样的矩阵。 这样的的基因表达量,我们需要花很多的精力可能才能看出基因在不同样品中的表达量变化。
事实上,多数情况下,我们绘制热图会类似上图。在一些情况下,矩阵中没有极端值,那么效果会很不错。但是常常是无法避免的,所以一般我们会对数据一定的转换。 数据的预处理,标准化,归一化对数转换上述热图可视化存在明显的可改进空间,其中一个明显的红色方格使得整个其他数据之间的差异无法被直观的观测。返回到原始的数值矩阵,我们可以看到,只有那个数值是超过30的,其他数值都不高。 于是会得到
进行对数转换的时候,我们常常不会直接取 log(x) ,而是会取 log(x+1),这样做的主要原因是,很多时候,我们会得到不少基因在某些样品没有表达,对于 0 ,无法取对数。于是,我们的参数一般定为 于是我们得到
正态标准化基因表达是动态变化的,结构基因往往表达量高,而转录因子往往表达量低。所以,有一定生物学数据分析经验的,更多的关心基因的表达趋势而不是表达量高低。这个时候,常见的策略是,对数据进行基因内标准化,对应上述数据,就是行内的标准化。简单的来说,就是逐个基因提取不同样本的表达量,得到一个数组,对这个数组进行标准化。具体逻辑如下: 直接应用公式 [ 一般而言,说标准化,那么就是正态标准化,亦即认为数据是正态分布的 ],
于是得到
这种时候,我们可能会有疑问 表达量 1.38 小于 1.42,而前者反而是红色,后者反而是淡黄色。事实上,这就是行标准化的的一个问题。一旦进行行标准化,不同行之间,绝对数值是不可比较的,只有趋势是可以比较的。这并不是软件的问题,而是一个对具体逻辑理解的问题,我们可以直接查看标准化后数值矩阵。
0-1标准化或称min-max标准化。很多时候,我们可能会认为数据就是平均分布的,而不是正态分布[ 虽然,无论数据是什么分布,你取对数,可以使数据更倾向于正态分布 ]。或者,我们会看到,存在部分值确实过于极端,使得整体数据的可视化效果不明显。此时 ,我们常常会使用0-1标准化。这类标准化与正态标准化类似,不过使用的是另外一个公式 , 在TBtools中,使用
事实上,我更多的使用 0-1标准化。这并不是因为这一标准化方式更好,而是因为这一方式更符合多数人的直观认知。使用这一标准化方式,可以使基因在不同样品里面的表达量最高值为1,最低值为0,所以我们可以直观地看到每一行都有一个相同的最红的方块,和一个相同的最蓝的方块。 写在后面时间有限,也可能是我快一个月没有动笔。确实写起来比较慢。那么就分成几次推送吧。今次先到这里。下一个帖子的主题是热图中聚类与分析。预祝各位元旦快乐。
|
|