1. 多组学整合工程导论

多组学整合分析工程,是把基因组、转录组、蛋白质组、代谢组等不同层次的高通量数据,组织成一条可重复、可追溯、可交付的分析流水线。它既不是单纯的数据分析,也不是单纯的软件开发,而是两者的交叉:一端是生物学问题与实验设计,另一端是数据工程、统计建模与结果解释。理解这一交叉属性,是后续所有章节的基础。

一、多组学数据类型:同一批样本的不同"观测层"

多组学数据最本质的特征是"同源异层"——同一批生物样本,被不同技术平台从不同层面观测。常见类型包括:

  • 基因组(DNA):关注变异,如SNP、InDel、CNV、结构变异,输出VCF/BAM,回答"遗传基础是什么"。
  • 转录组(RNA):关注表达,如基因/转录本丰度、可变剪接,输出表达矩阵与counts,回答"哪些基因被转录"。
  • 蛋白质组:关注蛋白丰度与修饰,输出蛋白定量表,回答"实际有多少蛋白"。
  • 代谢组:关注小分子代谢物,输出峰表与代谢物丰度,回答"代谢状态如何"。
  • 表观组:如DNA甲基化、染色质可及性(ATAC-seq),回答"表达调控的开关状态"。

这些数据在维度、尺度、噪声结构上差异极大:基因组是离散变异,转录组是计数型,蛋白质组和代谢组常为连续强度且缺失值多。整合的第一道门槛,就是让不同"语言"的数据能够对齐到同一坐标系——通常是样本 × 特征的矩阵,并以样本ID作为主键。

二、整合分析的目标与挑战

整合分析的目标可以概括为三层:描述(刻画样本在多组学上的整体结构)、关联(找出跨组学的协同变化,如mRNA与蛋白的相关性、变异与表达的cis/trans关联)、因果与预测(推断调控关系、构建分型模型或生物标志物)。

挑战同样明确。第一是样本对齐:不同平台可能来自不同批次,样本命名、缺失、重复必须严格核对,否则后续全部失效。第二是批次效应:技术批次常与生物学分组混杂,需要用ComBat、limma removeBatchEffect等方法校正,但校正过度会抹掉真实信号。第三是维度灾难:特征数常达数万,样本数却只有几十到几百,必须做特征筛选、正则化或降维。第四是缺失与噪声:蛋白质组缺失值可能高达30%以上,需区分随机缺失与低丰度缺失。第五是可重复性:同一分析在不同人、不同时间执行,结果应一致,这要求工程化约束。

判断整合是否"对齐成功"的实用检查:样本ID集合完全一致、分组标签无冲突、批次信息可追溯、缺失模式有记录。任何一项不满足,都应先停下修复,而不是继续建模。

三、工程化视角:技术栈与项目生命周期

把多组学分析当作工程项目,意味着要有明确的技术栈分层与生命周期管理。典型技术栈自下而上为:

  • 数据层:原始FASTQ/BAM、表达矩阵、临床表型表,统一存放并版本化。
  • 处理层:比对、定量、注释工具链(如STAR、Salmon、MaxQuant),以容器或conda环境固化。
  • 整合层:MOFA、iCluster、相似性网络融合(SNF)、多组学关联分析等。
  • 解释层:富集分析、通路映射、可视化与报告。
  • 工程支撑:工作流引擎(Nextflow/Snakemake)、版本控制(Git)、环境锁定、日志与元数据管理。

项目生命周期通常经历:问题定义 → 实验与数据获取 → 数据质控与预处理 → 多组学整合建模 → 结果验证与解释 → 交付与复现。工程化的关键不是工具多,而是每一步都有输入、输出、参数和判断标准,且能被他人重跑。

多组学整合工程:数据层 → 处理层 → 整合层 → 解释层 数据层(同源样本,多平台观测) 基因组 VCF/BAM 转录组 counts 蛋白质组 丰度表 代谢组 峰表 表观组 甲基化/ATAC 样本ID对齐 · 批次记录 · 缺失标记 处理层(质控与预处理,环境固化) 比对/定量 · STAR/Salmon 标准化 · TPM/归一化 批次校正 · ComBat 特征筛选 · 方差/缺失过滤 矩阵对齐 · 样本×特征 整合层(跨组学建模) MOFA 因子分解 潜因子解释方差 SNF 相似性融合 样本分型 iCluster 联合聚类 亚型划分 关联分析 cis/trans · 相关 模型输出 · 因子/簇/关联表 解释层(结果判读与交付) 通路富集 可视化报告 验证实验设计 可复现交付包 工程支撑:Nextflow/Snakemake 工作流 · Git 版本控制 · 容器环境锁定 · 日志与元数据 · 参数与随机种子记录

四、一个可执行的最小示例:从两张表到一次整合

假设有一批20个肿瘤样本,同时测得转录组表达矩阵(20000基因 × 20样本)和蛋白质组丰度表(5000蛋白 × 20样本)。一个最小可跑的整合流程如下:

# 1. 读入并核对样本ID
expr <- read.csv("expr_matrix.csv", row.names=1)   # 基因 × 样本
prot <- read.csv("prot_abundance.csv", row.names=1) # 蛋白 × 样本
stopifnot(identical(sort(colnames(expr)), sort(colnames(prot))))

# 2. 缺失过滤与标准化
prot <- prot[rowSums(is.na(prot)) <= 4, ]          # 缺失≤20%保留
expr_log <- log2(expr + 1)
prot_log <- log2(prot + 1)

# 3. 批次校正(假设batch向量已知)
library(sva)
expr_corr <- ComBat(expr_log, batch = batch)

# 4. 取两组学共同高变特征,做MOFA
library(MOFA2)
mofa_data <- list(RNA = expr_corr, PROT = prot_log)
model <- run_mofa(create_mofa(mofa_data), save_data = TRUE)

# 5. 查看因子解释方差
plot_variance_explained(model)

运行后重点观察三件事:各因子对每个组学的解释方差是否均衡(若某组学几乎无贡献,说明该层信息未被利用);样本在因子空间是否按已知分组分离;因子载荷中是否出现跨组学一致的基因-蛋白对。这些观察结果,就是判断整合是否"有效"的第一手依据。示例中的样本数、特征数和缺失阈值均为教学假设,实际项目需按数据规模调整。

五、工程化落地的几条硬约束

  • 样本主键唯一且不可变:所有表以同一套sample_id连接,禁止中途改名。
  • 参数与随机种子显式记录:降维、聚类、交叉验证的种子必须写入配置,否则结果不可复现。
  • 中间产物落盘:每步输出独立文件,便于断点续跑与排障。
  • 版本可追溯:数据版本、代码版本、环境版本三者绑定,缺一不可。
  • 结果有判断标准:如因子解释方差阈值、聚类稳定性(轮廓系数)、关联显著性(FDR<0.05),而非"看起来还行"。
常见误区:先跑模型再补样本对齐。多组学整合中,样本错位、批次混杂、缺失未标记这三类问题,一旦进入建模阶段,往往表现为"结果无法解释",而排查成本远高于前置检查。建议把样本核对与批次记录作为流水线的第一个强制关卡。