code: def calc_pvalue(self, study_count, study_n, pop_count, pop_n):
          
          # http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.stats.fisher_exact.html
          #
          #         Atlantic  Indian                              YES       NO
          # whales     8        2    | 10 whales    study_genes    8 scnt   2    | 10 = study_n
          # sharks     1        5    |  6 sharks    not s_genes    1        5    |  6
          #         --------  ------                            --------   -----
          #            9        7      16 = pop_n     pop_genes    9 pcnt   7      16 = pop_n
          #
          # We use the preceeding table to find the p-value for whales/sharks:
          #
          # >>> import scipy.stats as stats
          # >>> oddsratio, pvalue = stats.fisher_exact([[8, 2], [1, 5]])
          #                                              a  b    c  d
          avar = study_count
          bvar = study_n - study_count
          cvar = pop_count - study_count
          dvar = pop_n - pop_count - bvar
          assert cvar >= 0, self.fmterr.format(
              A=avar, B=bvar, C=cvar, D=dvar, scnt=study_count, stot=study_n, pcnt=pop_count, ptot=pop_n)
          # stats.fisher_exact returns oddsratio, pval_uncorrected
          _, p_uncorrected = self.pval_fnc([[avar, bvar], [cvar, dvar]])
          return p_uncorrected
docs: Calculate uncorrected p-values.