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))
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)
```