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.

tempo = read_tsv("~/Downloads/multixcan_output.txt")
pnorm(- max(abs(c(tempo$z_max,tempo$z_min ) ), na.rm = TRUE), log.p = TRUE) + log(2) 


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT.

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.


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

  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/"