跳转至

摘要: 单细胞基因组学数据的深度归一化研究提出了一种新型归一化方法。单细胞基因组分析需要对特征计数进行归一化处理,以稳定方差、校正细胞测序深度的差异,并保持细胞内特征丰度的单调性。研究者从理论层面证明,满足上述三项核心要求且同时具备特征重标签等变性的归一化方法,唯有"比例拟合—对数变换—比例拟合"(PFlogPF)这一特定组合,即先对原始计数进行加法比例拟合,再取对数,最后进行乘法比例拟合。该方法在数学上等价于平移的中心对数比变换(shifted centered-log ratio transform)。研究者在数百个单细胞RNA测序数据集的多项基准测试中系统评估了PFlogPF与其他归一化方法的性能,结果表明该方法在综合表现上显著优于现有方法。这一工作为单细胞基因组数据预处理提供了理论严谨且实践优越的归一化标准方案。


单细胞基因组学计数数据的深度归一化方法:PFlogPF

概述

单细胞基因组学(single-cell genomics)分析中,每个细胞的测序深度(sequencing depth)存在显著差异——即不同细胞捕获并测序的 RNA 分子总量不同。这种差异并非生物学信号,而是技术噪声,若不加以处理,会严重干扰下游分析(如聚类、差异表达分析等)。

归一化(normalization)是消除这种技术差异的关键预处理步骤。一个理想的归一化方法需要同时满足三个目标:

  1. 稳定方差(stabilizes variance):使不同丰度的特征具有可比的方差,避免高表达基因主导分析。
  2. 校正细胞测序深度差异(accounts for variable cell sequencing depth):消除因测序深度不同引入的系统性偏差。
  3. 保持细胞内特征丰度的单调性(preserves monotonicity of within-cell feature abundances):归一化后,同一细胞内特征之间的相对高低顺序不应被颠倒。

本文提出的 PFlogPF 方法(比例拟合-对数-比例拟合,Proportional Fitting → log → Proportional Fitting)是目前唯一被证明在满足上述三个约束条件的同时,还具备特征重标签等变性(feature-relabeling-equivariance)的归一化方法。研究者在数百个单细胞 RNA 测序(scRNA-seq)数据集的大量基准测试中验证了该方法的优越性能。


核心原理与功能

三个核心设计约束

PFlogPF 的设计出发点是对归一化方法提出严格的数学约束,而非启发式地选择变换形式。三个约束缺一不可:

1. 方差稳定(Variance Stabilization)

原始计数数据(raw counts)通常呈现出"均值-方差相关"的特性:高表达基因的绝对方差也更大。这使得高丰度特征在距离度量和线性模型中占据主导地位。方差稳定变换旨在使方差与均值解耦,使不同表达水平的特征在分析中处于更平等的地位。

2. 校正可变的细胞测序深度(Accounting for Variable Cell Sequencing Depth)

在单细胞 RNA 测序实验中,每个细胞的文库大小(library size,即所有基因计数的总和)可能因技术原因相差数倍甚至数十倍。若不归一化,文库大小本身就会成为细胞间差异的主要来源,掩盖真实的生物学信号。

3. 保持细胞内特征丰度的单调性(Preserving Monotonicity of Within-Cell Feature Abundances)

对于同一个细胞,若原始数据中基因 A 的计数高于基因 B,则归一化后这一顺序应当保持不变。某些归一化方法(如某些形式的批次校正)可能违反这一性质,导致对细胞内基因表达关系的误判。


特征重标签等变性(Feature-Relabeling-Equivariance)

等变性(equivariance)是一个关键的数学性质,指归一化方法的输出不依赖于特征(基因)的命名或排列顺序。换言之:

若对输入数据中的特征进行重新标记(permutation/relabeling),归一化结果应当以完全相同的方式重新排列,而不产生任何额外变化。

这一性质保证了归一化方法不会因为数据框中基因列的顺序不同而产生不同结果,是方法可复现性和一致性的数学基础。

论文的核心理论贡献在于:PFlogPF 是唯一同时满足上述三个约束条件且具备特征重标签等变性的方法。


PFlogPF 的构造步骤

PFlogPF 由三个依次作用的变换组成:

步骤一:第一次比例拟合(PF,Proportional Fitting,加法形式作用于原始计数)

对每个细胞的原始计数向量进行归一化,使其总和为某一常数(通常为 1 或 10000,即"每万计数,CPM/CP10K")。这一步等价于将原始计数除以该细胞的文库大小,消除测序深度差异。

$$x'{ij} = \frac{x$$}}{\sum_j x_{ij}

注:此处"加法形式作用于原始计数(additive in the raw counts)"指该比例拟合在原始计数空间中通过加法结构实现(除以总和等价于比例缩放)。

步骤二:对数变换(log)

对比例拟合后的数据取对数(通常为自然对数或以 2 为底的对数,加伪计数 pseudo-count 防止对零取对数):

$$x''{ij} = \log(x' + \epsilon)$$

对数变换实现方差稳定,并将乘法意义上的倍数关系转化为加法意义上的差值,便于线性方法分析。

步骤三:第二次比例拟合(PF,乘法形式作用于原始计数)

在对数域中再次进行比例拟合(即对每个细胞的对数变换后向量进行中心化或缩放)。论文指出这一步在原始计数空间中具有"乘法(multiplicative)"结构。

注:两次比例拟合的具体实现形式(加法 vs. 乘法)体现了方法在不同数据空间中的操作语义,是 PFlogPF 区别于简单 log-normalization 的关键所在。


与 Shifted Centered-Log Ratio(SCLR)变换的等价性

论文证明,PFlogPF 在数学上等价于偏移中心化对数比变换(shifted centered-log ratio transform,shifted CLR)

CLR 变换是成分数据分析(compositional data analysis)中的经典工具,定义为:

$$\text{CLR}(x)_j = \log\left(\frac{x_j}{g(\mathbf{x})}\right)$$

其中 $g(\mathbf{x})$ 是所有特征计数的几何均值。"偏移(shifted)"版本在此基础上加入了常数偏移以处理零值和改善数值性质。

这一等价性将 PFlogPF 与成分数据分析的理论框架联系起来,为其数学合理性提供了额外支撑。


基准测试表现

研究者在以下范围内验证了 PFlogPF 的性能:

  • 数据规模:数百个单细胞 RNA 测序(scRNA-seq)数据集
  • 评估维度:多项基准测试任务(具体任务类型 [待验证],原文未列举细节)
  • 对比对象:其他主流归一化方法(如 log1p-CPM、scran normalization、analytic Pearson residuals 等 [待验证])

结果表明,PFlogPF 在所有对比场景中均展现出优越的性能(superior performance)


关键方法与步骤

由于原文为论文摘要形式,未提供具体代码实现,以下整理其方法论步骤供参考。如需代码实现,应参考论文附带的官方代码库 [待验证]。

方法流程总结

输入: 原始细胞 × 基因计数矩阵 X (shape: n_cells × n_genes)
      X[i, j] = 细胞 i 中基因 j 的 UMI/read 计数(非负整数)

步骤1 - 第一次比例拟合 (PF)
      # 计算每个细胞的文库大小(行和)
      library_size[i] = sum(X[i, :])

      # 将每个细胞的计数除以其文库大小,得到比例
      X_pf[i, j] = X[i, j] / library_size[i]
      # 可选:乘以缩放因子(如 10000)以避免数值过小

步骤2 - 对数变换 (log)
      # 加伪计数(pseudo-count)后取对数,避免 log(0)
      X_log[i, j] = log(X_pf[i, j] + pseudo_count)
      # pseudo_count 通常取 1 或与缩放因子相关的小值

步骤3 - 第二次比例拟合 (PF,乘法形式)
      # 在对数域中对每个细胞进行中心化/缩放
      # 等价于 shifted CLR 变换
      X_pflogpf[i, j] = X_log[i, j] - mean(X_log[i, :])
      # 或根据具体实现进行其他形式的比例调整

输出: 归一化后的矩阵 X_pflogpf (shape: n_cells × n_genes)
      可直接用于下游分析(PCA、聚类、差异表达等)

注意:上述伪代码依据论文描述的原理整理,具体参数(如伪计数取值、缩放因子)应以论文原文及官方实现为准。


实战示例

应用场景:scRNA-seq 数据预处理流程

PFlogPF 旨在替代或改进以下常见单细胞分析流程中的归一化步骤:

传统流程(以 Scanpy 为例,[待验证]):

import scanpy as sc

# 读取原始计数数据
adata = sc.read_h5ad("raw_counts.h5ad")  # 加载原始 AnnData 对象

# 传统方法:log1p-CPM 归一化
sc.pp.normalize_total(adata, target_sum=1e4)  # 第一次比例拟合(CPM 归一化)
sc.pp.log1p(adata)                            # 对数变换(log(x+1))
# 注意:传统方法止步于此,缺少第二次比例拟合

PFlogPF 流程(概念示意,[待验证] 需参考官方实现):

import numpy as np

def pflogpf(X, scale_factor=1e4, pseudo_count=1):
    """
    PFlogPF 归一化实现(概念示意)

    参数:
        X: 原始计数矩阵,shape (n_cells, n_genes),非负整数
        scale_factor: 第一次比例拟合的缩放因子,默认 10000(CPM)
        pseudo_count: 对数变换前添加的伪计数,防止 log(0)

    返回:
        归一化后的矩阵,shape (n_cells, n_genes)
    """
    # 步骤1:第一次比例拟合(PF)
    library_sizes = X.sum(axis=1, keepdims=True)   # 计算每个细胞的文库大小
    X_pf = X / library_sizes * scale_factor         # 归一化到统一文库大小

    # 步骤2:对数变换(log)
    X_log = np.log(X_pf + pseudo_count)             # 加伪计数后取自然对数

    # 步骤3:第二次比例拟合(PF,乘法形式 / shifted CLR)
    row_means = X_log.mean(axis=1, keepdims=True)   # 计算每个细胞的对数均值
    X_pflogpf = X_log - row_means                   # 减去行均值(中心化)

    return X_pflogpf

# 使用示例
# raw_counts: numpy array,shape (n_cells, n_genes)
normalized = pflogpf(raw_counts)  # 得到 PFlogPF 归一化结果

适用数据类型

数据类型适用性说明
scRNA-seq(UMI 计数)强烈推荐论文主要验证场景
scRNA-seq(read 计数)适用 [待验证]原理相同,效果待评估
scATAC-seq可能适用 [待验证]论文标题提及"单细胞基因组学",未明确排除
Bulk RNA-seq不建议该方法针对单细胞场景设计

常见问题

Q1:PFlogPF 与常用的 log1p-CPM 归一化有什么本质区别?

A:log1p-CPM(即先 CPM 归一化再取 log(x+1))只包含 PFlogPF 的前两步(PF + log),缺少关键的第二次比例拟合。正是这第三步使得 PFlogPF 满足特征重标签等变性,并与 shifted CLR 变换等价。从数学上看,log1p-CPM 无法保证同时满足方差稳定、深度校正和单调性保持三个约束。


Q2:为什么需要"特征重标签等变性"这个性质?它在实践中意味着什么?

A:特征重标签等变性保证了归一化结果不依赖于输入矩阵中基因列的排列顺序。在实践中,不同工具或流程可能以不同顺序加载基因,若归一化方法不具备等变性,同一数据经不同加载顺序处理后将得到不同结果,严重影响可复现性。等变性是方法数学严格性的重要体现。


Q3:第二次比例拟合为什么被称为"乘法形式作用于原始计数"?

A:第一次 PF 在原始计数空间中通过除以文库大小实现,属于"加法结构"(比例缩放);第二次 PF 在对数空间中执行中心化操作,对应于原始计数空间中的乘以公因子(因为 log 空间的加减对应原始空间的乘除),因此被称为"乘法形式"。这两种形式的组合是 PFlogPF 在数学上独特性的来源之一。


Q4:PFlogPF 如何处理零计数(dropout)问题?

A:单细胞数据中大量基因计数为零(稀疏性),直接取对数会遇到 $\log(0)$ 的问题。PFlogPF 通过在对数变换前添加伪计数(pseudo-count)来处理,这与 log1p 变换的思路一致。伪计数的具体取值及其对结果的影响 [待验证],应参考论文正文的详细讨论。


Q5:在数百个数据集上的基准测试具体评估了哪些指标?

A:原文摘要未列举具体基准测试指标,仅说明 PFlogPF 在"numerous benchmarks across hundreds of single-cell RNA-seq datasets"中表现优越。具体评估指标(如聚类准确性 ARI、批次效应校正 LISI、细胞类型分类准确率等)[待验证],需参考论文正文及补充材料。


总结

PFlogPF 是一种为单细胞基因组学计数数据设计的归一化方法,其核心由三步构成:比例拟合(PF)→ 对数变换(log)→ 比例拟合(PF)。论文从数学上证明,PFlogPF 是唯一同时满足方差稳定、测序深度校正、细胞内特征单调性保持三个约束,且具备特征重标签等变性的归一化方法。该方法在数学形式上等价于 shifted centered-log ratio(CLR)变换,与成分数据分析的理论框架一脉相承。

在数百个 scRNA-seq 数据集的大量基准测试中,PFlogPF 相较于现有主流归一化方法展现出更优越的性能。对于从事单细胞转录组分析的研究者,PFlogPF 提供了一种有理论保证的归一化选择,尤其适合对结果可复现性和数学严格性有较高要求的分析场景。