本系列[1]将开展全新的转录组分析专栏,主要针对使用DESeq2时可能出现的问题和方法进行展开。
您可以通过执行 mcols 函数来获取结果对象中涉及的变量和测试的详细信息。
mcols(res)$description
对于一个特定的基因,如果处理组与未处理组的对数变化倍数(log2 fold change)为-1,这意味着处理使得基因表达水平相对于未处理组下降了一半(即乘法变化为0.5)。如果关注的变量是连续变量,那么报告的对数变化倍数表示该变量每变化一个单位时的倍数变化。
关于 p 值设为 NA 的说明:结果表中的某些值可能因为以下原因被设为 NA:
可以使用 R 基础函数 write.csv 或 write.delim 将结果导出为纯文本文件。建议使用描述性的文件名,以指示被测试的变量和水平。
write.csv(as.data.frame(resOrdered), file="condition_treated_results.csv")
仅导出通过调整后的 p 值阈值的结果可以使用 subset 函数,然后使用 write.csv 函数来完成。
resSig <- subset(resOrdered, padj < 0.1)
resSig
当实验受到多个因素的影响时,可以使用包含额外变量的设计公式来分析这些实验。实际上,DESeq2能够处理任何可以用固定效应项来描述的实验设计,包括多因素设计、包含交互作用的设计、涉及连续变量的设计、样条函数等。
通过在设计公式中加入额外的变量,可以控制计数数据中的额外变异。例如,如果实验条件样本在不同实验批次中分布均匀,将批次作为一个因素纳入设计中,可以提高发现由条件引起的差异的敏感性。当这些额外变量本身也是研究的重点,而不仅仅是控制变量时,有多种分析方法可供选择。
大规模样本实验:在样本数量众多的实验中(例如50个或100个样本),技术变异很可能会影响观察到的计数数据。如果忽视这种技术变异,可能会导致错误的结果。有许多方法可以用来模拟这种技术变异,并且这些方法可以轻松地整合到DESeq2的设计中,以便在估计感兴趣的效应的同时控制技术变异。
pasilla包中的数据包含了感兴趣的条件(“条件”列),以及关于进行的测序类型的信息(“类型”列),如下所示:
colData(dds)
创建 DESeqDataSet 的副本,以便可以使用多因素设计重新运行分析
ddsMF <- dds
将 type 的水平调整为仅包含字母(设计因子水平中也可以包括数字、下划线和句点)。更改水平名称时,请务必保持与当前顺序一致,以避免出错。
levels(ddsMF$type)
## [1] "paired-end" "single-read"
levels(ddsMF$type) <- sub("-.*", "", levels(ddsMF$type))
levels(ddsMF$type)
## [1] "paired" "single"
能够考虑不同测序技术的差别,并更清楚地揭示由处理引起的差异。条件作为关注的主要变量,被放在了公式的最后部分。因此,默认情况下,结果函数会提取与条件相关的结果,除非用户特别指定了对比或命名参数。
接下来,可以再次执行 DESeq 分析:
design(ddsMF) <- formula(~ type + condition)
ddsMF <- DESeq(ddsMF)
再次,使用 results 函数访问结果。
resMF <- results(ddsMF)
head(resMF)
还可以获取设计中最后一个变量以外的其他变量的 log2 倍数变化、p 值以及调整后的 p 值。以 type 为例,尽管它仅仅表示测序协议之间的差异,缺乏生物学意义,但在某些假设设计中,例如 ~genotype + condition + genotype:condition,可能对不同 genotype 之间的基线表达差异感兴趣,而 genotype 并非设计中的最后一个变量。
通常情况下,函数 results 的 contrast 参数要求一个包含三个元素的字符向量:变量名称、作为 log2 比率分子的因子水平名称,以及作为分母的因子水平名称。
resMFType <- results(ddsMF,
contrast=c("type", "single", "paired"))
head(resMFType)
对于连续变量或交互项(详见交互项部分),可以通过设置 results 函数的 name 参数来提取结果,其中 name 应对应于 resultsNames(dds) 返回的某个元素。