引言

本系列 将开展全新的转录组分析专栏,主要针对使用 DESeq2 时可能出现的问题和方法进行展开描述。想要学习更多内容可以添加文末的学习交流群或客服QQ:941844452。

Wald检验的各个步骤

DESeq函数依次运行以下函数:

dds <- estimateSizeFactors(dds)
dds <- estimateDispersions(dds)
dds <- nbinomWaldTest(dds)

用于估计尺寸因子的控制特征

在某些实验中,假设只有少数特征(基因)会受到条件的显著影响可能并不合理。这种情况下,标准的中位数比率法估计尺寸因子时,无法得到正确的推断结果(真正未发生变化的特征的对数倍数变化不会以零为中心)。这是一个对任何方法来说都极具挑战性的问题,但有一个关键的解决办法可以利用:estimateSizeFactors函数的 controlGenes 参数。如果已知某些特征(基因)在条件变化时不应受到影响,将这些特征指定为 controlGenes,就可以确保这些特征的对数倍数变化以零为中心。这样一来,研究的思路就转变为:

dds <- estimateSizeFactors(dds, controlGenes=ctrlGenes)
dds <- DESeq(dds)

对比分析

对比分析是一种基于估计的 log2 倍数变化的线性组合,用于检验组间差异是否为零。最典型的对比分析应用场景是实验设计中包含三个水平(例如 A、B 和 C)的因子。通过对比分析,用户可以生成所有三种可能的差异结果:B 相对于 A 的 log2 倍数变化、C 相对于 A 的 log2 倍数变化以及 C 相对于 B 的 log2 倍数变化。在实际操作中,results 函数的 contrast 参数可用于提取感兴趣的 log2 倍数变化的检验结果,例如:

results(dds, contrast=c("condition","C","B"))

对数2倍数变化可以通过向对比参数提供一个包含两个元素的列表来进行加法或减法运算:第一个元素是要相加的对数2倍数变化的名称,第二个元素是要相减的对数2倍数变化的名称。这些名称应从 resultsNames(dds) 中获取。此外,也可以提供一个与 resultsNames(dds) 长度相同的数值向量,手动指定各项的线性组合。

交互作用

交互项可以添加到设计公式中,以测试例如,给定条件下可归因的对数2倍数变化是否因另一个因子而有所不同,例如条件效应是否在不同基因型之间存在差异。

初步说明:许多用户在设计公式中添加交互项时,实际上一种更简单的方法可以提供所有所需的表格结果。我们将首先介绍这种方法,因为它操作起来更简单。如果感兴趣的比较是例如不同样本组的条件效应,一种比明确在设计公式中添加交互项更简单的方法是执行以下步骤:

  • 将感兴趣的因子合并为一个包含原始因子所有组合的单一因子
  • 将设计更改为仅包含此因子,例如 ~ group

使用这种设计类似于添加交互项,因为它可以模拟多个条件效应,这些效应可以通过 results 函数轻松提取。假设我们有两个因子:基因型(值为 I、II 和 III)和条件(值为 A 和 B),我们希望提取每个基因型的特定条件效应。我们可以使用以下方法来获得例如基因型 I 的条件效应:

dds$group <- factor(paste0(dds$genotype, dds$condition))
design(dds) <- ~ group
dds <- DESeq(dds)
resultsNames(dds)
results(dds, contrast=c("group", "IB", "IA"))

在设计中添加交互作用:以下两个图表展示了基因型特异的条件效应,这些效应可以通过包含交互项的设计公式(如 ~genotype + condition + genotype:condition)进行建模。

在第一个图(基因1)中,可以看到条件效应在所有基因型中是一致的。尽管条件A在基因型I、II和III中具有不同的基线水平,但每个基因型的条件效应约为2的对数2倍数变化。如果使用包含交互项 genotype:condition 的模型,基因型II和基因型III的交互项将接近于0。

在该图中,y轴表示 log2(n+1),每个组包含20个样本(以黑色点表示)。一条红线连接了每个基因型内各组的平均值。

在第二个图(基因2)中,条件效应在不同基因型之间并不一致。主要条件效应(即参考基因型I的效应)依然是2。但这次,基因型II的交互项约为1,而基因型III的交互项约为-4。这是因为基因型II的条件效应比基因型I高出1,而基因型III的条件效应则比基因型I低4。基因型II(或III)的条件效应是通过将主要条件效应与其交互项相结合得出的。这种图表可以通过上面提到的plotCounts函数生成。

接下来,我们将继续探讨如何利用交互作用来测试条件效应的差异。这里仍然以三个基因型(I、II 和 III)的条件效应为例进行说明。

在包含交互项的设计中,有一点非常重要:与仅包含 ~genotype + condition 的设计不同,其中条件效应表示在控制基因型差异后的总体效应,而添加了 genotype:condition 交互项后,主要条件效应仅反映参考基因型(I,或用户指定的参考水平)的条件效应。交互项 genotypeII.conditionB 和 genotypeIII.conditionB 则表示某一特定基因型的条件效应与参考基因型的条件效应之间的差异。

这种基因型与条件的交互作用在 results 函数的帮助页面的示例3中进行了更深入的分析,可以通过输入 ?results 来查看相关内容。特别是,我们展示了如何检验基因型之间条件效应的差异,以及如何获取非参考基因型的条件效应。

本文由mdnice多平台发布


科学冷冻工厂
29 声望3 粉丝