r语言 - DESeq2中计算的对比度:手动系数与DESeq2自动对比度之间的差异



我在DESeq2上有以下模型,我正在阻塞复制。

dds <- DESeqDataSetFromMatrix(countData = CPEB4_featureCounts_3utr_matrix,
colData = CPEB4_sample_list,
design = ~   replicate  + sample_name)
dds <- DESeq(dds)`

这是元数据:

sample_name replicate
0195_2022       INPUT         4
0196_2022         IgG         4
0197_2022       CPEB4         4
0198_2022       INPUT         5
0199_2022         IgG         5
0200_2022       CPEB4         5
2125_2021       INPUT         1
2126_2021         IgG         1
2127_2021       CPEB4         1
2235_2021       INPUT         2
2237_2021       CPEB4         2
2238_2021       INPUT         3
2239_2021         IgG         3
2240_2021       CPEB4         3

我想提取对比"CPEB4 - IgG">

我可以通过使用results函数这样做:

CPEB4vsIgG <- results(dds, contrast=c("sample_name","CPEB4","IgG"))

我得到了以下结果:

summary(CPEB4vsIgG)
out of 17300 with nonzero total read count
adjusted p-value < 0.1
LFC > 0 (up)       : 598, 3.5%
LFC < 0 (down)     : 30, 0.17%
outliers [1]       : 0, 0%
low counts [2]     : 7637, 44%
(mean count < 41)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results

然而,我也可以手动计算系数(当我有更复杂的对比时,我通常这样做),像这样:

mod_mat <- model.matrix(design(dds), colData(dds))
CPEB4 <- colMeans(mod_mat[dds$sample_name == "CPEB4", ])
IgG <- colMeans(mod_mat[dds$sample_name == "IgG", ])
CPEB4vsIgG_2 <- results(dds,  contrast = (CPEB4 - IgG))

然而,使用这段代码,我得到了一个稍微不同的deg列表:

summary(CPEB4vsIgG_2)
out of 17300 with nonzero total read count
adjusted p-value < 0.1
LFC > 0 (up)       : 672, 3.9%
LFC < 0 (down)     : 81, 0.47%
outliers [1]       : 0, 0%
low counts [2]     : 7637, 44%
(mean count < 41)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results

如果我检查两组的系数,我要减去它看起来一切都很好:

CPEB4
(Intercept)       replicate2       replicate3       replicate4       replicate5   sample_nameIgG 
1.0              0.2              0.2              0.2              0.2              0.0 
sample_nameINPUT 
0.0 
IgG

(Intercept)       replicate2       replicate3       replicate4       replicate5   sample_nameIgG 
1.00             0.00             0.25             0.25             0.25             1.00 
sample_nameINPUT 
0.00 

为什么会有这样的区别?

如果我创建一个没有考虑复制的模型,我用两种方法得到相同的结果。

你可以在这里找到答案:https://support.bioconductor.org/p/9148941/

相关内容

  • 没有找到相关文章

最新更新