歸一化和标準化的差別:
二者的界限也沒有特别明顯,也沒有必要把這兩個概念分的特别清楚。隻要清楚它們大概的使用範圍就可以了:
- 常用的歸一化是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:表達量減均值再除以标準差),目的是後續分析不受極值影響。在特征提取之前要保證細胞之間是有可比性的,一般用的是歸一化的方法,得到高變基因之後,為了使同一個基因在不同細胞之間具有可比性采用标準化。