StoreyLab / qvalue

R package to estimate q-values and false discovery rate quantities.
110 stars 36 forks source link

Minimal number of p-values required for q-value method #32

Closed mdmanurung closed 1 year ago

mdmanurung commented 2 years ago

Dear authors,

Is it possible to use q-value to correct p-values in the range of ~100-200s? My p-value histogram looked quite okay. There is no error while running the package. However, some colleagues pointed out that q-value was developed for genome-wide hypothesis testing and the pi0 calculation requires a lot of p-values to ensure good estimation. Any inputs?

Regards, Mikhael

ajbass commented 1 year ago

That's at the lower range of reliable estimation so it's hard to say for sure. The package estimates the proportion of null hypotheses (called pi0 parameter in package) to calculate q-values, and this requires at least a few hundred p-values usually. You can try running simulations (where you know pi0) to reflect your setting and see how well the package estimates pi0. Otherwise you can do qvalue(p, pi0=1) and, in this case, it will be equivalent to BH procedure.

jdstorey commented 1 year ago

I think this is okay, but I would recommend doing some testing on the stability of your estimates. I'd also make sure that the maximum lambda value you use has about 40 or more p-values in [lambda, 1]. If you are still unsure, I'd set lambda=0, which enforces pi0.est=1.