A p-value of zero should be interpreted as an extremely small positive value.

S-PrediXcan or PrediXcan will provide the zscore as well as the p-value. You can calculate the p-value corresponding to the Zscore using the formula below. For example a Zscore of 30 will give you a (natural) log p-value of -453.6280968

Zscore = 30
pnorm(-abs(Zscore) , log.p = TRUE) + log(2)
## [1] -453.6281

MultiXcan doesn’t output the test statistics used for the p-value calculation. But you can get a sense of how extreme the p-values can be by looking at the largest Z-scores in absolute value in the z_min and z_max columns. The (natural) log of the p-value corresponding to your results is shown below.

suppressMessages(library(tidyverse))
pnorm(- max(abs(c(tempo$z_max,tempo$z_min ) ), na.rm = TRUE), log.p = TRUE) + log(2)

### Suggest changes

If you find any mistakes (including typos) or want to suggest changes, please feel free to edit the source file of this page on Github and create a pull request.

### Citation

For attribution, please cite this work as

Haky Im (2020). How to interpret a p-value of 0. ImLab Notes. /post/2020/12/01/how-to-interpret-a-p-value-of-0/

BibTeX citation

@misc{
title = "How to interpret a p-value of 0",
author = "Haky Im",
year = "2020",
journal = "ImLab Notes",
note = "/post/2020/12/01/how-to-interpret-a-p-value-of-0/"
}