Hi,
I notice that the rlog and vst values for my assay differ depending if I run the DESeq function before or after running the transformation.
I thought that did this not matter as the manual states under section Data transformations and visualization -- "However, the running times are shorter and more similar with blind=FALSE and if the function DESeq has already been run, because then it is not necessary to re-estimate the dispersion values," so I assume the only difference was running time, and the transforms are performing the estimation of dispersion values if DESeq was not run prior?
Should DESeq be run before transforms?
# Case 1
dds1 <- DESeqDataSetFromMatrix(countData = countdata, colData = coldata, design = ~ condition) rld1 <- rlog(dds1, blind=FALSE) vsd1 <- varianceStabilizingTransformation(dds1, blind=FALSE)
# Case 2
dds2 <- DESeqDataSetFromMatrix(countData = countdata, colData = coldata, design = ~ condition) dds2 <- DESeq(dds2) rld2 <- rlog(dds2, blind=FALSE) vsd2 <- varianceStabilizingTransformation(dds2, blind=FALSE) length(which((assay(dds1) == assay(dd2)) == FALSE)) # [1] 0 length(which((assay(rld1) == assay(rld2)) == FALSE)) # [1] 583555 # the entire set length(which((assay(vsd1) == assay(vsd2)) == FALSE)) # [1] 583555 # the entire set
I am running DESeq2_1.14.1
R version 3.3.2 (2016-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS Sierra 10.12.3
Hi Michael I am still trying to figure out where the discrepancy occurs. I had also been filtering using fpm and thought that was causing the error but I cannot reproduce the error when using the example DESeqDataSet.