Skip to main content

Fishe's Exact test for mxn contingency table

Project description

[![PyPI version](https://badge.fury.io/py/FisherExact.svg)](https://badge.fury.io/py/FisherExact)

# FisherExact

Fisher exact test for mxn contingency table

## Installation

FisherExact should be python2/3 compatible. You can install it with pip : `pip install FisherExact`

If you get an error about builtins module, install "future" with `pip install future`

This package use fortran sources, so you need to have a fortran compiler (`gfortran`) installed. See here ==> https://gcc.gnu.org/wiki/GFortranBinaries.

The source code was tested on Linux and Mac (thanks to [@fomightez](https://github.com/fomightez))

## Binary Usage

A binary is provided to use FisherExact from the terminal

usage: fexact [-h] [--simulate [SIMULATE]] [--hybrid] [--midP]
[--retry ATTEMPT] [--workspace WORKSPACE] [--version]
table

Fisher's Exact test for mxn contingency table

positional arguments:
table Contingency table in a file, without header

optional arguments:
-h, --help show this help message and exit
--simulate [SIMULATE]
Simulate p-values with n replicates
--hybrid Use hybrid mode
--midP Use midP correction
--retry ATTEMPT Number of attempt to made if execution fail
--workspace WORKSPACE
Workspace size to use, Increase this if the program
crash
--version show program's version number and exit


## Contingency table format if fexact is used as binary

The accepted format is space/tab or comma (or both) separated values with an optionnal first line starting with a "#" that specified the number of rows and column:

For example, the following format are accepted

```
# 2 3
8 2 12
1 5 2
```

```
8 2 12
1 5 2
```

```
#2, 3
8 2 12
1 5 2
```

```
8,2,12
1,5,2
```


## Use as a module

fisher_exact(table, alternative='two-sided', hybrid=False, midP=False, simulate_pval=False, replicate=2000, workspace=300, attempt=2, seed=None)
Performs a Fisher exact test on a mxn contingency table.

Parameters
----------
table : array_like of ints
A 2x2 contingency table. Elements should be non-negative integers.
alternative : {'two-sided', 'less', 'greater'}, optional
Which alternative hypothesis to the null hypothesis the test uses.
Default is 'two-sided'. Only used in the 2 x 2 case (with the scipy function).
In every other case, the two-sided pval is returned.
mult : int
Specify the size of the workspace used in the network algorithm.
Only used for non-simulated p-values larger than 2 x 2 table.
You might want to increase this if the p-value failed
hybrid : bool
Only used for larger than 2 x 2 tables, in which cases it indicates
whether the exact probabilities (default) or a hybrid approximation
thereof should be computed.
midP : bool
Use this to enable mid-P correction. Could lead to slow computation.
This is not applicable for simulation p-values. `alternative` cannot
be used if you enable midpoint correction.
simulate_pval : bool
Indicate whether to compute p-values by Monte Carlo simulation,
in larger than 2 x 2 tables.
replicate : int
An integer specifying the number of replicates used in the Monte Carlo test.
workspace : int
An integer specifying the workspace size. Default value is 300.
attempt : int
Number of attempts to try, if the workspace size is not enough.
On each attempt, the workspace size is doubled.
seed : int
Random number to use as seed. If a seed isn't provided. 4 bytes will be read
from os.urandom. If this fail, getrandbits of the random module
(with 32 random bits) will be used. In the particular case where both failed,
the current time will be used

Returns
-------
p_value : float
The probability of a more extreme table, where 'extreme' is in a
probabilistic sense.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

FisherExact-1.4.2.tar.gz (39.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page