def getLogPvalue(p, P, n, N): """ Return log of hypergeometric pvalue of #pos >= p p = positive successes P = positives n = negative successes N = negatives """ if (p * N > n * P): # apply Fisher Exact test (hypergeometric p-value) return math.exp(log_getFETprob(N-n, n, P-p, p)[4]); else: return 1.0 # pvalue = 1
def getLogPvalue(p, P, n, N): """ Returns a Fisher's exact pvalue :param p: Number of positive successes :type p: integer :param P: Total number of positive cases :type P: integer :param n: Number of negative successes :type n: integer :param N: Total number of negative cases :type N: integer :returns: P-value :rtype: float """ if (p * N > n * P): # apply Fisher Exact test (hypergeometric p-value) return math.exp(log_getFETprob(N-n, n, P-p, p)[4]); else: return 1.0 # pvalue = 1