rGREAT icon indicating copy to clipboard operation
rGREAT copied to clipboard

Adjust pbinom arguments

Open andvon opened this issue 6 months ago • 0 comments

closes #49

P values reported by getEnrichmentTable drop to 0 above a P-value of ~ 1e-14. These changes adjust the calculation to use the log.p argument in pbinom / phyper and report the exponentiated form.

The following code can be used to compare the P-values between the old form of the calculations and the new form:

library(rGREAT)
library(purrr)
set.seed(123)
# Import example GREAT object
obj <- readRDS(system.file("extdata", "GreatObject.rds", package = "rGREAT"))

# Recalculate the enrichment table using updated p-value calculations
res = great(obj@gr, "MSigDB:H", "TxDb.Hsapiens.UCSC.hg19.knownGene")
tb = getEnrichmentTable(res)

# Report the original enrichment table
original_tb = getEnrichmentTable(obj)

data.frame(
	new_binom_pvalue  = tb$p_value,
	old_binom_pvalue  = original_tb$p_value,
	binom_pvalue_is_approx_equal = purrr::map2_lgl(tb$p_value, original_tb$p_value, ~all.equal(.x,.y)),
	new_phyper_pvalue = tb$p_value_hyper,
	old_phyper_pvalue = original_tb$p_value_hyper,
	hyper_pvalue_is_approx_equal = purrr::map2_lgl(tb$p_value_hyper, original_tb$p_value_hyper, ~all.equal(.x,.y))
)

This returns the following:

new_binom_pvalue old_binom_pvalue binom_pvalue_is_approx_equal
1      2.225815e-32     0.000000e+00                         TRUE
2      2.776160e-18     0.000000e+00                         TRUE
3      6.913420e-18     0.000000e+00                         TRUE
4      2.805488e-13     2.805534e-13                         TRUE
5      4.112724e-12     4.112710e-12                         TRUE
6      1.875064e-10     1.875065e-10                         TRUE
7      9.682692e-10     9.682692e-10                         TRUE
8      1.717376e-09     1.717376e-09                         TRUE
9      1.566151e-08     1.566151e-08                         TRUE
10     3.516391e-08     3.516391e-08                         TRUE
11     4.605719e-08     4.605719e-08                         TRUE
12     2.334794e-07     2.334794e-07                         TRUE
13     3.937057e-07     3.937057e-07                         TRUE
14     2.702549e-06     2.702549e-06                         TRUE
15     2.367115e-05     2.367115e-05                         TRUE
16     3.751312e-05     3.751312e-05                         TRUE
17     4.754000e-05     4.754000e-05                         TRUE
18     1.182907e-04     1.182907e-04                         TRUE
19     5.712321e-04     5.712321e-04                         TRUE
20     7.862261e-04     7.862261e-04                         TRUE
21     1.226371e-03     1.226371e-03                         TRUE
22     3.535443e-03     3.535443e-03                         TRUE
23     3.819475e-03     3.819475e-03                         TRUE
24     1.807399e-02     1.807399e-02                         TRUE
25     2.088977e-02     2.088977e-02                         TRUE
26     2.577342e-02     2.577342e-02                         TRUE
27     2.718872e-02     2.718872e-02                         TRUE
28     3.144824e-02     3.144824e-02                         TRUE
29     3.602869e-02     3.602869e-02                         TRUE
30     3.681093e-02     3.681093e-02                         TRUE
31     4.021162e-02     4.021162e-02                         TRUE
32     4.449403e-02     4.449403e-02                         TRUE
33     7.449392e-02     7.449392e-02                         TRUE
34     7.912587e-02     7.912587e-02                         TRUE
35     2.297476e-01     2.297476e-01                         TRUE
36     2.318957e-01     2.318957e-01                         TRUE
37     2.804896e-01     2.804896e-01                         TRUE
38     2.822974e-01     2.822974e-01                         TRUE
39     3.733741e-01     3.733741e-01                         TRUE
40     4.979006e-01     4.979006e-01                         TRUE
41     5.763953e-01     5.763953e-01                         TRUE
42     7.608707e-01     7.608707e-01                         TRUE
43     8.282246e-01     8.282246e-01                         TRUE
44     8.880386e-01     8.880386e-01                         TRUE
45     9.122784e-01     9.122784e-01                         TRUE
46     9.422727e-01     9.422727e-01                         TRUE
47     9.766420e-01     9.766420e-01                         TRUE
48     9.997948e-01     9.997948e-01                         TRUE
49     1.000000e+00     1.000000e+00                         TRUE
50     1.000000e+00     1.000000e+00                         TRUE
   new_phyper_pvalue old_phyper_pvalue hyper_pvalue_is_approx_equal
1       6.446196e-19      0.000000e+00                         TRUE
2       5.532986e-07      5.532986e-07                         TRUE
3       2.319365e-08      2.319365e-08                         TRUE
4       2.164514e-02      2.164514e-02                         TRUE
5       1.359518e-05      1.359518e-05                         TRUE
6       4.178830e-03      4.178830e-03                         TRUE
7       1.858699e-05      1.858699e-05                         TRUE
8       4.331584e-03      4.331584e-03                         TRUE
9       1.690956e-03      1.690956e-03                         TRUE
10      4.342800e-04      4.342800e-04                         TRUE
11      4.227029e-05      4.227029e-05                         TRUE
12      1.130186e-04      1.130186e-04                         TRUE
13      1.749116e-03      1.749116e-03                         TRUE
14      1.281090e-07      1.281090e-07                         TRUE
15      3.913441e-02      3.913441e-02                         TRUE
16      8.304502e-02      8.304502e-02                         TRUE
17      1.986565e-02      1.986565e-02                         TRUE
18      4.192685e-02      4.192685e-02                         TRUE
19      8.441453e-05      8.441453e-05                         TRUE
20      5.489573e-04      5.489573e-04                         TRUE
21      1.032754e-02      1.032754e-02                         TRUE
22      4.154699e-01      4.154699e-01                         TRUE
23      6.948869e-02      6.948869e-02                         TRUE
24      7.603210e-03      7.603210e-03                         TRUE
25      5.959418e-04      5.959418e-04                         TRUE
26      2.123926e-01      2.123926e-01                         TRUE
27      6.204395e-02      6.204395e-02                         TRUE
28      6.684081e-02      6.684081e-02                         TRUE
29      3.904179e-01      3.904179e-01                         TRUE
30      6.642766e-01      6.642766e-01                         TRUE
31      2.386293e-02      2.386293e-02                         TRUE
32      4.807732e-02      4.807732e-02                         TRUE
33      1.121858e-01      1.121858e-01                         TRUE
34      1.195536e-01      1.195536e-01                         TRUE
35      3.419974e-01      3.419974e-01                         TRUE
36      1.552103e-02      1.552103e-02                         TRUE
37      4.610945e-02      4.610945e-02                         TRUE
38      7.842976e-01      7.842976e-01                         TRUE
39      1.920403e-01      1.920403e-01                         TRUE
40      4.408976e-01      4.408976e-01                         TRUE
41      5.565732e-02      5.565732e-02                         TRUE
42      4.150620e-01      4.150620e-01                         TRUE
43      9.810608e-01      9.810608e-01                         TRUE
44      1.291134e-03      1.291134e-03                         TRUE
45      1.814494e-01      1.814494e-01                         TRUE
46      8.876329e-01      8.876329e-01                         TRUE
47      1.021387e-01      1.021387e-01                         TRUE
48      8.441815e-01      8.441815e-01                         TRUE
49      7.159596e-01      7.159596e-01                         TRUE
50      9.999893e-01      9.999893e-01                         TRUE

There are minor differences that occur as the P-value gets closer and closer to 0, but functionally these results are the same.

andvon avatar Aug 09 '24 17:08 andvon