用途:处理bulk RNA-seq的批次效应。核心观点是差异表达(DE)分析中不要先做批次校正再检验,而应把已知批次作为协变量放进设计矩阵(~ batch + condition),由DESeq2/edgeR/limma在推断阶段扣除批次并正确计算自由度。
主要能力与用法:
- 设计矩阵纳入:DESeqDataSetFromMatrix(..., design = ~ batch + condition) 后 DESeq 并 results;edgeR用model.matrix(~ batch + condition, coldata)配合estimateDisp/glmQLFit/glmQLFTest。连续混杂因素(RIN、建库日期)可直接作为连续协变量。
- ComBat-seq:ComBat_seq(counts, batch, group, full_mod = TRUE)返回整数计数,用于可视化、聚类或需单一校正矩阵的下游工具,不可用于DE检验。ComBat仅适用于对数转换或芯片数据,不可用于原始计数。
- SVA未知批次:num.sv估计数量,svaseq(计数版)/sva(对数版)估计代理变量,加入设计后重跑DE;须检查每个SV与目标变量的相关性,|r|>0.3时不应纳入。
- RUVSeq:RUVg(阴性对照基因如ERCC/管家基因)、RUVs(重复样本)、RUVr(残差);结果W矩阵加入设计。k值无自动程序,可试k=1,2,3并查看PCA,5-10常见。
- removeBatchEffect(limma):仅用于可视化,design参数保护目标变量,批次只通过batch=传入。
限制与注意:完全混杂(某条件全在某一批次)不可识别,任何方法都无法修复,需重新采样或设计实验。批次校正后再做DE会膨胀假阳性(Nygaard 2016)。Harmony、MNN、Scanorama、BBKNN仅用于单细胞,不适用于bulk;ComBat系列也不用于单细胞。跨研究建议逐队列DE后做meta分析,而非合并校正后再检验。版本参考:sva 3.50+、DESeq2 1.42+、edgeR 4.0+、limma 3.58+、RUVSeq 1.36+。