deseq2进行差异分析时的分组问题

这段代码是使用 DESeq2 包进行 RNA-Seq 数据差异表达分析的示例。它展示了如何在不同实验设计下进行差异表达分析,包括两组比较、两条件两基因型的交互作用,以及两条件三基因型的分析。

示例 1:两组比较

# 创建一个示例数据集,包含4个样本
dds <- makeExampleDESeqDataSet(m=4)

# 使用 DESeq 方法进行标准化和差异表达分析
dds <- DESeq(dds)

# 提取条件 B 相对于条件 A 的差异表达结果
res <- results(dds, contrast=c("condition","B","A"))

# 如果有多于两个组,调用方式类似:
# results(dds, contrast=c("condition","C","A"))
# 等等。

解释

  • makeExampleDESeqDataSet(m=4) 创建一个包含4个样本的示例数据集。
  • DESeq(dds) 进行标准化和差异表达分析。
  • results(dds, contrast=c("condition","B","A")) 提取条件 B 相对于条件 A 的差异表达结果。

通过这些示例,可以看到如何使用 DESeq2 包进行不同实验设计下的差异表达分析。
在打印结果表时,会提供关于比较的信息,例如 "log2 fold change (MAP): condition treated vs untreated",这意味着估计值是 log2(treated / untreated),与 contrast=c(“condition”,“treated”,“untreated”) 返回的结果相同。

对于超出简单两组比较的分析,可以返回多个结果,因此 results 函数提供了 contrastname 参数,以帮助用户选择感兴趣的比较进行结果表打印。推荐使用 contrast 参数来精确指定应该比较的水平及其顺序。

如果在没有指定 contrastname 的情况下运行 results,它将返回设计公式中最后一个变量的最后一个水平与第一个水平的比较。例如,对于一个简单的两组比较,这将返回第二组相对于第一组(参考水平)的 log2 倍数变化。请参阅下面的示例和文档中的示例。

contrast 参数可用于生成任何感兴趣的比较的结果表,例如因子的两个水平之间的 log2 倍数变化,其用法如下所述。它还可以适应更复杂的数值比较。请注意,在两个组的所有计数都等于0(而其他组有正计数)的比较中,contrast 会将估计的 LFC 设置为0,而 name 不会自动将这些 LFC 设置为0。用于 contrast 的检验统计量为:

[ \frac{c^t \beta}{\sqrt{c^t \Sigma c }} ]

name 参数可用于生成单个效应的结果表,这些效应必须是 resultsNames(object) 的单个元素。这些单个效应可以表示连续协变量、单个水平的效应或单个交互效应。

用于构建结果表的比较信息以及用于 p 值的统计检验(Wald 检验或似然比检验)信息存储在 results 返回的对象中。此信息位于结果表的元数据列中,可以通过调用 mcols 访问 DESeqResults 对象返回的结果表。

关于 p 值:

默认情况下,进行独立过滤以选择一组基因进行多重检验校正,最大化调整后的 p 值小于给定临界值 alpha(默认0.1)的数量。有关独立过滤的详细信息,请参见此文档中的参考。用于最大化拒绝数的过滤器是数据集中所有样本的标准化计数的平均值。这里提供了 genefilter 包的 filtered_p 函数的几个参数,用于控制独立过滤行为。(注意,filtered_p R 代码现在被复制到 DESeq2 包中,以避免 gfortran 的要求。)在 DESeq2 版本 >= 1.10 中,所选的阈值是过滤器的最低分位数,其中拒绝数接近拟合曲线在过滤器分位数上的峰值。“接近” 定义为在1个残差标准差内。对于未通过过滤阈值的基因,调整后的 p 值设置为 NA。

默认情况下,results 会将含有计数离群值的基因的 p 值设置为 NA,这些离群值是使用 Cook’s 距离识别的。有关此行为的控制,请参见 cooksCutoff 参数。每个样本的 Cook’s 距离可以作为 assays() 列表中存储的 “cooks” 矩阵访问。此度量对于识别观测计数可能不适合负二项分布的行有用。

对于使用似然比检验(使用 nbinomLRT)的分析,p 值仅由完整模型和简化模型公式之间的偏差差异决定。为了与其他结果表输出一致,在结果表中打印一个 log2 倍数变化,然而,检验统计量和 p 值可能涉及一个或多个 log2 倍数变化的检验。可以使用 name 参数控制结果表中打印的 log2 倍数变化,默认情况下这是 resultsNames(object) 的最后一个元素的估计系数。

如果在运行 DESeq 或 nbinomWaldTest 时指定了 useT=TRUE,则 results 生成的 p 值也会使用 t 分布的 Wald 统计量,并使用 mcols(object)$tDegreesFreedom 中的自由度。

对于 results:返回一个 DESeqResults 对象,这是 DataFrame 的一个简单子类。该对象包含结果列:baseMean, log2FoldChange, lfcSE, stat, pvalue 和 padj,并且还包括变量信息的元数据列。lfcSE 提供了 log2FoldChange 的标准误差。对于 Wald 检验,stat 是 Wald 统计量:log2FoldChange 除以 lfcSE,与标准正态分布比较生成双尾 p 值。对于似然比检验(LRT),stat 是简化模型和完整模型之间的偏差差异,与卡方分布比较生成 p 值。

对于 resultsNames:返回可用作结果的列名称,通常是变量名称和水平的组合。

对于 removeResults:返回移除结果元数据列的原始 DESeqDataSet

你可能感兴趣的:(RNA-seq,学习)