批次效应指样品在不同的批次处理和测量时引入的与生物状态不相关的系统性的技术偏差。很多因素都可能导致批次效应的产生,如不同实验条件、不同操作者、不同公司的试剂、不同批的试剂、实验开展的时间、检测设备、不同的测序批次等。
批次校正方法
(1)根据分析目的确定批次效应处理方法:差异表达分析,在模型中添加批次因素;可视化,先对原数据进行校正,再使用校正后的数据进行分析。
(2)已知的批次,removeBatchEffect或ComBat;未知的批次,sva。
(3)removeBatchEffect和ComBat、sva输入的数据需要进行转换,例如取对数(rlog或logCPM)。
(4)read counts数据可使用ComBat-Seq或svaseq。
1. ComBat-Seq,针对测序数据,以保证经过批次效应矫正后得到的仍是整数counts,便于后续衔接基于整数进行差异分析的工具,如 edgeR 和 DESeq2 等。
2. limma 包中的 removeBatchEffect()只能用于衔接聚类、PCA等可视化展示,不能将去批次后的数据用于差异分析!因为用矫正后的数据进行差异表达分析 (已矫正批次,所以模型只考虑分组因素),有两个缺陷:(1)批次因素和分组因素可能重叠,所以直接对原数据矫正批次可能会抵消一部分真实生物学因素;(2)低估了误差。所以,如果想做差异表达分析,但数据中又有已知的批次问题,则应该在构建模型矩阵时加入批次因素,以DEseq2为例:dds <- DESeqDataSetFromMatrix(exp_filter, colData, design= ~ batchEffect+condition) #batchEffect为批次情况,condition为分组情况。因此,批次效应的处理要依分析目的而定。如果是做差异表达分析,则应该在模型中添加批次因素,而非使用矫正后的数据。如果是做可视化,则考虑先对原数据进行处理矫正,并使用矫正后的数据进行分析。
Reference
https://www.jianshu.com/p/99b3411ad6ad