rGREAT
rGREAT copied to clipboard
Adjust pbinom arguments
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.