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