Entering edit mode
peibo_xu
▴
10
@peibo_xu-15153
Last seen 5.6 years ago
Hi, I am using results by results()
function from DESeq2 package to do volcano plot.
I found after I did lfcShrink
function, I got many zero pvalues, but not before lfcShrink
, even though I set independentFiltering=FALSE,cooksCutoff=FALSE
.
How should I solve this? Any suggestion which one I should represent for a publication-ready plot?
Hi Michael, the user had posted a similar question as an issue to my EnhancedVolcano Bioconductor package: https://github.com/kevinblighe/EnhancedVolcano/issues/14
I forwarded them here in relation to their query about lfcshrink.
Also see this other question wrt zero pvalues
https://support.bioconductor.org/p/119574/#119575
Hi Michael, Thanks for helping. First, I should re-edit the issue, I before
lfcShrink
, I can see volcano plot is more flat(some pvalues are large), but afterlfcShrink
, many gene points are on the middle part of plot(very small pvaluse but about zero fold changes).After checking with https://support.bioconductor.org/p/119574/#119575 this question, and the answer posted by Kevin, I guess zero pvalues may be due to
lfcShrink
andmachine-specific lowest value
set byEnhancedVolcano
Here is the code I run
So for me, shrunken LFC looks better, but I do not how to deal with gene points very small pvaluse but about zero fold changes, is this a 'volcano plot' related issue?
Sorry for the confusion at the first time.
Hey peibo_xu, just to confirm the steps:
if EnhancedVolcano detects a p-value equal to 0, it will automatically convert these to the value of
.Machine$double.xmin
. On my computer, this value is:Obviously, this is necessary because one cannot plot the negative log10 of 0:
You have the option of converting these p-values of 0 to something else, prior to using EnhancedVolcano. For example, you may simply convert them (just for plotting) to a magnitude of 10 lower than the lowest non-zero p-value, as this quick example shows:
Now convert (impute) the p-values of 0:
The LFC shrinkage tends to be more “strict” about evidence on the LFC than the null hypothesis test. You can use svalues instead of adjusted pvalues which will give a consistent picture, by setting svalue=TRUE. See the apeglm paper for motivation and details.