归一化和标准化的区别:
二者的界限也没有特别明显,也没有必要把这两个概念分的特别清楚。只要清楚它们大概的使用范围就可以了:
- 常用的归一化是log处理,之前离散程度很大的数据就被集中了
- 常用的标准化是z-score:考虑到了不同样本对表达量的影响,消除到了表达的平均水平和偏离度的影响
使用范围:
- 如果对表达量的范围有要求,用log归一化
- 如果表达量较为稳定,不存在极端最大最小值,使用归一化
- 如果表达量离散程度很大,存在异常值和较多噪音,用标准化可以避免异常值和极端值的影响
- 在分类、聚类、PCA算法中,使用z-score值的结果更好
- 数据不太符合正态分布时,可以使用归一化
- 机器学习的算法(SVM、KNN、神经网络等)要求归一化/标准化
在单细胞分析中,同时会用到Normalize和Scale(可以看: 单细胞Seurat包升级之2,700 PBMCs分析)
-
归一化
Normalize做的就是将数据进行一个转换,可以让同一基因在不同样本中具有可比性(例如RPKM、TPM等);另外降低离散程度。看使用的函数LogNormalize背后的计算方法就是:log1p(value/colSums[cell-idx]
*scale_factor) ,它同时考虑到了这两点
-
标准化
Scale就是基于之前归一化的结果(也就是log后的结果),再添z-score计算
最后,在 对细胞文库差异进行normalization 这一篇中也提到了:
-
Normalization “normalizes” within the cell for the difference in
sequenicng depth / mRNA thruput
-
Scaling “normalizes” across the sample for differences in range of
variation of expression of genes
normalization一般是对文库处理,目的消除一些技术差异;scale一般对基因表达量处理(典型的z-score:表达量减均值再除以标准差),目的是后续分析不受极值影响。在特征提取之前要保证细胞之间是有可比性的,一般用的是归一化的方法,得到高变基因之后,为了使同一个基因在不同细胞之间具有可比性采用标准化。