3

我正在分析一个 RNA-seq 数据集,其中人类细胞系已暴露于多剂量的多种化合物中。在运行 QC 时,我注意到由于处理细胞的板不同而存在批次效应(不是很强,但想解释它)。我已经使用了 limma 包中的 ComBat 和 removeBatchEffect 来查看这两种方法中的任何一种在删除批次方面是否更好,但正如您从每个标准化步骤的控制样本上获得的 PCA 中看到的那样(原始数据、vst、 ComBat 和 Limma)似乎使用这两种方法中的任何一种都会增加批次分离。

不同标准化步骤中对照样本的 PCA 以突出批次效应: 在此处输入图像描述

我的感觉是,我在指定函数的参数时可能犯了一个错误,但是在查看 StackOverflow 上的类似请求时,我得到了这段代码。我用于生成运行 PCA 的不同规范化数据集的代码是:

raw data: raw<-counts(dds, normalized = TRUE)

vst: vst_counts<-vst(dds, blind=TRUE)

ComBat: com<-ComBat(assay(vst_counts),hash$Plate, mod = model.matrix(~1, data = hash))

Limma: lim<-removeBatchEffect(assay(vst_counts),hash$Plate,design=model.matrix(~hash$group))

原始数据和 vst 数据来自 DESeq。哈希对象是我的元数据文件,其中包含有关板块(批次)和处理条件(组)的信息。

运行 PCA(针对单个数据集)的代码是:

ggplot(df_lim) + geom_point(aes(x=PC1, y=PC2, color = Plate),size=3) +
xlab(paste("PC1 (",summary(pca_lim)$importance[2,1]*100,"%)")) +
ylab(paste("PC2 (",summary(pca_lim)$importance[2,2]*100,"%)")) +theme_bw() + 
coord_fixed()

非常感谢您在此处解决此问题的任何帮助。

4

0 回答 0