3. 多组学数据预处理与质量控制

多组学整合分析的第一道工程关口不是建模,而是预处理与质量控制。不同组学平台产出的原始数据在格式、量纲、噪声结构和缺失机制上差异极大:转录组是整数计数,蛋白质组是连续强度,代谢组是峰面积,甲基化是0~1之间的β值。如果直接把这些数据拼接进同一个矩阵,后续任何降维、聚类或关联分析都会被批次效应和尺度差异主导。本节围绕“格式解析—质控指标—过滤与归一化—缺失值处理—QC可视化”这条工程链路展开,重点说明每一步的实际操作对象与判断依据。

原始数据格式解析:先看清数据长什么样

拿到数据后第一步不是立刻跑流程,而是确认文件类型与矩阵方向。转录组常见原始格式为FASTQ(测序读段)和count矩阵(基因×样本);蛋白质组常见MaxQuant输出的proteinGroups.txt或DIA-NN的report.tsv;代谢组常见mzML原始谱图和峰面积表;甲基化常见IDAT芯片文件或β值矩阵。以count矩阵为例,典型结构是首列为gene_id,后续每列为一个样本,单元格为整数计数。解析时要检查三件事:行名是否唯一、列名是否与样本元数据表一致、是否存在注释行或空列。一个常见的坑是Excel打开CSV后把基因名如“MARCH1”自动转成日期,导致行名错乱,因此建议用read.csv(..., check.names=FALSE)或pandas的dtype=str读取。

# R示例:读取count矩阵并检查结构
expr <- read.csv("counts.csv", row.names=1, check.names=FALSE)
dim(expr)                    # 基因数 × 样本数
sum(duplicated(rownames(expr)))  # 应为0
all(colnames(expr) %in% meta$sample_id)  # 应为TRUE

质控指标:用数字判断样本是否可用

质控指标因组学而异,但核心逻辑一致:判断每个样本的测序深度/检测深度、信号分布和异常程度。转录组常用指标包括总count数、检测到的基因数(count>0)、线粒体基因比例、核糖体基因比例和管家基因表达稳定性。蛋白质组关注鉴定蛋白数、缺失率、强度中位数和CV(变异系数)。代谢组关注峰数、总离子流和QC样本的RSD。甲基化关注探针检测率(detection p-value<0.05的比例)。

判断阈值需要结合平台经验设定。例如RNA-seq中,线粒体基因比例超过20%通常提示样本降解或细胞状态异常;总count低于500万可能测序深度不足。蛋白质组中,单个样本缺失率超过50%时,该样本的定量结果可靠性显著下降。这些阈值不是绝对的,但应作为标记异常样本的起点。

过滤与归一化:让不同样本可比

过滤的目的是去除低信息量特征,减少多重检验负担。转录组常用过滤规则是“至少在N个样本中count≥10”,N通常取最小分组样本数。蛋白质组常用“至少在一半样本中检出”或“缺失率<30%”。代谢组常用“QC样本中RSD<30%”保留稳定峰。

归一化解决的是样本间系统性差异。转录组常用TMM、DESeq2的median-of-ratios或TPM/FPKM;蛋白质组常用中位数归一化或VSN;代谢组常用总峰面积归一化或PQN(概率商归一化)。选择依据是:如果样本间整体分布差异主要来自上样量或测序深度,用中位数或TMM;如果存在组成性差异(如某些通路整体上调),PQN更稳健。归一化后应检查样本间分布是否对齐,但不能过度归一化到抹平真实生物学差异。

缺失值处理:区分“真零”与“未检出”

缺失值在多组学中普遍存在,但机制不同。转录组count矩阵中的0通常是“未表达”或“表达极低”,属于真零,不应填补。蛋白质组和代谢组中的缺失更多是“低于检测限”(MNAR,非随机缺失),此时填补为0或最小值可能引入偏差。常见策略:

  • 删除:缺失率过高的特征或样本直接剔除,适用于缺失机制不明且比例较高的情况。
  • 最小值填补:用该特征最小检测值的1/2或1/5填补,适用于MNAR且假设缺失来自低丰度。
  • KNN填补:基于样本间相似性填补,适用于缺失比例较低(<10%)且近似随机缺失。
  • 多重插补:如mice包,适用于后续需要统计推断的场景,但计算成本高。

实际操作中,建议先统计每个样本和每个特征的缺失率,再决定策略。例如蛋白质组中,若某蛋白在80%样本中缺失,直接删除比填补更合理;若某样本缺失率超过60%,考虑剔除该样本。

常见QC可视化:用图快速定位问题

QC可视化不是装饰,而是判断依据。常用图形包括:

  • 箱线图:展示样本间表达/强度分布,判断是否需要归一化。
  • 密度图:观察分布形状,发现双峰或异常样本。
  • PCA图:查看样本聚类和批次效应,若QC样本聚集而实验样本分散,提示批次影响。
  • 热图:展示样本间相关性或Top变异特征,发现离群样本。
  • 缺失值热图:按样本和特征展示缺失模式,判断缺失是否随机。

下面这张图把本节的核心处理链路和判断节点整合在一起,便于在实际项目中对照执行。

多组学预处理与QC核心链路 ① 格式解析 FASTQ / count矩阵 proteinGroups.txt mzML / β值矩阵 检查行名唯一、列名对齐 ② 质控指标 总count / 检测基因数 线粒体比例 / 缺失率 鉴定蛋白数 / CV 标记异常样本 ③ 过滤与归一化 count≥10 in N samples TMM / 中位数 / PQN VSN / 总峰面积 对齐样本分布 ④ 缺失值 真零 vs MNAR 删除 / 最小值 KNN / 多重插补 按缺失率决策 ⑤ QC可视化:判断依据 箱线图 分布对齐 异常样本 密度图 双峰/偏移 分布形状 PCA图 批次效应 样本聚类 热图 相关性 离群样本 缺失热图 缺失模式 随机性判断 异常样本/特征反馈至过滤与缺失值处理 关键判断:是否达到下游分析要求? 样本分布对齐 · 缺失率可控 · 无显著批次效应 · 异常样本已标记 若否,返回对应步骤调整阈值或策略

实操建议:把QC做成可复现的检查点

在实际项目中,建议把上述步骤固化为一个可重复执行的QC脚本,输出一份包含关键指标和图形的报告。例如用R的scater或Python的scanpy计算指标,用ggplot2或matplotlib出图。每次拿到新数据,先跑QC报告,再决定过滤和归一化参数。这样既能保证分析可复现,也能在整合多组学数据时快速定位问题来源。

提示:多组学整合前,建议对每个组学分别完成QC,再进入联合分析。不要试图用一套参数处理所有组学,因为不同平台的噪声结构和缺失机制差异很大。
注意:缺失值填补会引入人为信号,尤其在缺失比例较高时。如果后续要做差异分析或关联分析,建议在结果中标注哪些特征经过填补,并评估填补对结论的影响。