3.8 years ago by
I don't think it's an underflow issue. Instead, the p-values appear to be computed as
# permutations more extreme than observed/# permutations
And if you don't have any permuted statistics that are as or more extreme than your observed statistic, this ends up being
There are arguments for doing something like
# permutations more extreme + 1 / # permutations
Which is what the limma package does, where you always count the observed result as one of the permuted observations. With 1000 permutations, it's a difference between 0 and 0.001, which is probably the basis of the argument - neither one is likely to be correct (the observed statistic is only expected to be part of the null distribution if there truly are no differences), but 0.001 is probably a bit more interpretable than a p == 0, so there you go.