I would appreciate your feedback on this one. I have been using DESeq2(version 1.20.0) for differential expression analysis comparing response in cancer patients.
My question is about the lfcShrink() function. There have been some updates on the function from the previous versions of the package and I have read the documentation and many posts in here, but I have still some doubts on how I do my analysis.
I wanted to be strict strict so I set both thresholds for padj as well as log fold change:
padj.cutoff <- 0.05 lfc.cutoff <- 0.58 dds <- DESeq(dds) res <- results(dds, contrast=c("response","PD","CR+PR"), lfcThreshold = lfc.cutoff, alpha = padj.cutoff, altHypothesis = "greaterAbs") res_setThres <- lfcShrink(dds=dds, contrast=c("response","PD","CR+PR"), res=res, lfcThreshold = lfc.cutoff) res_noThres <- lfcShrink(dds=dds, contrast=c("response","PD","CR+PR"), res=res)
My question is: should I set the threshold for LFC inside the lfcShrink() function too? In the res_setThres the p-values have changed (as mentioned in the documentation) and I eventually get no DEGs based on these thresholds. Even when I increased padj to 0.1 I still got zero significant DEGs. My res_noThres table produces a small set of genes for these thresholds. Is it wrong if I use the lfcSchrink without setting the lfcThreshold and then subset my results table to those genes passing the filters? I know it is important to set these thresholds in the results() function and not filter post-hoc, I was wondering if that applies to lfcshrink too.