ERROR: The estimated pi0 <= 0. Check that you have valid p-values or use a different range of lambda.
重现错误的代码:
ps <- runif(3e5)
library(qvalue)
ps <- ps[ps < 0.75]
qs <- qvalue(ps)
Error in pi0est(p, ...) :
ERROR: The estimated pi0 <= 0. Check that you have valid p-values or use a different range of lambda.
seq(0.05, 0.75, 0.05)
[1] 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75
qs <- qvalue(ps, lambda = seq(0.05, 0.75, 0.05))
==================================
ERROR: length(lambda)=2. If length of lambda greater than 1, you need at least 4 values.Error in pi0est(p, ...)
if(length(lambda)>1 && length(lambda)<4) {
if(gui)
eval(expression(postMsg(paste("ERROR: If length of lambda greater than 1, you need at least 4 values.",
"
"))), parent.frame())
else
print("ERROR: If length of lambda greater than 1, you need at least 4 values.")
return(0)
}
=================================
> seq(0.01, max(fisher_pvalues)-0.01, 0.05)
Error in seq.default(0.01, max(fisher_pvalues) - 0.01, 0.05) :
wrong sign in 'by' argument
> max(fisher_pvalues)
[1] 1.284044e-09
=================================
> seq(min(fisher_pvalues), max(fisher_pvalues)-0.01, 0.05)
Error in seq.default(min(fisher_pvalues), max(fisher_pvalues) - 0.01, :
wrong sign in 'by' argument
> min(fisher_pvalues)
[1] 1.284044e-09
> max(fisher_pvalues)
[1] 1.284044e-09
=================================
From:
https://support.bioconductor.org/p/74637/