normalize_total + log1p处理
这通常被称为“CPM-like”归一化加对数转换,是目前单细胞分析(尤其是Scanpy和Seurat流程)中最主流的方法。
normalize_total (学校标准化)
原理: 此步骤主要为了 校正测序深度 (Sequencing Depth) 的差异。不同细胞捕获到的转录本总数(文库大小)可能差异很大。该函数将每个细胞中每个基因的计数(UMI counts)除以该细胞的总计数,然后乘以一个比例因子(默认为10,000)。这样处理后的值,可以理解为“每10k个转录本中的基因计数值”,类似于CPM(Counts Per Million)。
目的: 消除细胞间因技术原因(捕获效率、测序深度)导致的总分子数差异,使得细胞间的基因表达水平具有可比性。
log1p (对数转换)
原理: 计算 log(X + 1),其中 X 是归一化后的计数值。
目的:
稳定方差: 原始计数值的方差与均值高度相关(表达越高的基因,细胞间差异越大)。对数转换可以减弱这种依赖关系,使得高表达和低表达基因的方差更接近。
数据正态化: 单细胞数据通常呈高度偏态分布,少数基因表达量极高。对数转换可以使数据分布更接近对称的正态分布,这对于很多下游统计模型(如PCA、t-SNE)是必要的假设。
TPM 处理(Transcripts Per Million)
TPM 旨在同时校正 测序深度 和 基因长度 两种偏好。
原理:
校正基因长度: 将每个基因的原始读数(或UMI计数)除以其有效长度(通常是外显子总长度,单位为kb)。这得到了 RPK (Reads Per Kilobase)。
校正测序深度: 将单个细胞内所有基因的 RPK 值相加,得到一个“总RPK”。然后用这个“总RPK”去除该细胞中的每个基因的RPK值,并乘以 1,000,000。
对比
两种处理方式一般选择其一即可,同时处理会破环前一个处理的值
评论区