文章目录
学习目标
- 讨论为两两比较(Wald检验)生成结果表所需的步骤
- 总结不同水平的基因过滤
- 解释log倍数变化收缩(log fold change shrinkage)
探索结果(Wald test)
默认情况下,DESeq2使用Wald检验来识别两个样本类之间差异表达的基因。考虑到设计公式中使用的因子,以及存在的因子水平的数量,我们可以提取一些不同比较的结果。在这里,我们将介绍如何从dds
对象获取结果,并就如何解释这些结果提供一些解释。
注意:Wald检验也可以用于连续变量。如果在设计公式中提供的感兴趣的变量是连续值,那么报告的
log2FoldChange
是该变量的每单位变化。
指定的对比(Specifying contrasts)
在我们的数据集中有三个样本类,所以我们可以进行三种可能的两两比较:
- Control vs. Mov10 overexpression
- Control vs. Mov10 knockdown
- Mov10 knockdown vs. Mov10 overexpression
我们只对上面的第一条和第二条感兴趣。当我们创建dds
对象时,我们提供了~ sampletype
作为设计公式,表明sampletype
是我们感兴趣的主要因素。
为了指出我们想要比较的两个样本类别,我们需要指定对比(contrasts)。对比用作DESeq2 results()
函数的输入,以提取所需的结果。
对比可以用两种不同的方式来表示(第一种更常用):
- 对比可以作为一个字符向量,包含三个元素:设计公式中(感兴趣的)因素的名称,两个要比较的因素层次的名称。最后给出的因素水平是进行比较的基础水平。语法如下:
# DO NOT RUN!
contrast <- c("condition", "level_to_compare", "base_level")
results(dds, contrast = contrast)
- 对比可以以2个字符串向量的列表:感兴趣基因倍数变化水平的名称,基线水平倍数变化名称。这些名称应该与
resultsNames(object)
的元素相同。该方法可用于组合交互项和主效应。
# DO NOT RUN!
resultsNames(dds) # to see what names to use
contrast <- list(resultsNames(dds)[1], resultsNames(dds)[2])
results(dds, contrast = contrast)
或者,如果你只有两个因素水平,你可以什么也不做,而不用担心指定对比(即results(dds))
。在本例中,DESeq2将根据level的字母顺序选择你的基础因子水平。
首先,我们要计算MOV10过表达样本和对照样本之间的表达变化。因此,我们将使用第一种方法来进行对比,并创建一个字符向量:
## Define contrasts for MOV10 overexpression
contrast_oe <- c("sampletype", "MOV10_overexpression", "control")
我选择什么作为base level有关系吗?
是的,这很重要。决定哪个level是base level将决定如何解释所报告的fold change。例如,如果我们观察到-2的log2倍的变化这意味着基因表达在相关因素水平上比基础水平更低。因此,如果把它留给DESeq2来决定对比,一定要检查字母顺序是否与你预期的fold change方向一致。
结果表
现在已经创建了对比(contrast),可以使用它作为results()
函数的输入。让我们快速看一下这个功能的帮助手册:
?results
你将看到,我们可以选择提供大量的参数,并根据需要调整默认值。在我们学习这节课的过程中,我们会不断回到帮助文档来讨论一些值得了解的参数。
## Extract results for MOV10 overexpression vs control
res_tableOE <- results(dds, contrast=contrast_oe, alpha = 0.05)
注意:对于我们的分析,除了
contrast
参数外,我们还将为alpha
参数提供一个0.05的值。当我们谈到基因水平过滤(gene-level filtering)时,将更详细地描述这一点。
返回给我们的结果表是一个DESeqResults
对象,它是DataFrame的一个简单子类。在许多方面,它可以被视为一个数据框(即在访问/提取子集数据时),但是重要的是要认识到在可视化等下游步骤中存在差异。
# Check what type of object is returned
class(res_tableOE)
[1] "DESeqResults"
attr(