Metadata-Version: 2.1
Name: bitepi
Version: 0.1.9
Summary: Python wrapper for the BitEpi program, for finding epistasisinteractions
Home-page: https://github.com/bhosking/bitepi-python
Author: Brendan Hosking
Author-email: brendan.hosking@csiro.au
License: UNKNOWN
Download-URL: https://github.com/bhosking/bitepi-python/archive/v0.1.9.tar.gz
Description: ### bitepi
        
        bitepi is a python wrapper around the BitEpi project found at [https://github.com/aehrc/BitEpi](https://github.com/aehrc/BitEpi). It provides a pandas
        interface for identification of epistasis interactions.
        It exposes a single **Epistasis** class, through which the analysis can be
        performed by calling **compute_epistasis**.
        
        Input is two arrays, which can be lists, numpy arrays or pandas dataframes.
        
        sample_array contains mappings of sample names to case (1) or control (0).
        Note that the header is ignored for numpy arrays and pandas dataframes, and
        should not be present in python lists.
        
        sample | case/control
        --- | ---
        S1 | 0
        S2 | 1
        S3 | 1
        S4 | 0
        S5 | 0
        
        genotype_array contains the genotypes of each sample at each SNP, with a 0, 1
        and 2 representing 0|0, 0|1 and 1|1 respectively. Headers are used to match
        samples to the sample_array, but the first column's header is ignored.
        
        SNP | S1 | S2 | S3 | S4 | S5
        ---|---|---|---|---|---
        snpA | 0 | 0 | 2 | 1 | 0
        snpB | 2 | 1 | 2 | 1 | 2
        snpC | 0 | 1 | 1 | 2 | 1
        snpD | 0 | 2 | 2 | 2 | 1
        snpE | 1 | 1 | 1 | 0 | 1
        
        The sets of samples do not need to match exactly, unless **Epistasis** is
        called with *strict_intersect=True*. If the sample sets do not match, analysis is done on the intersect.
        
        The output will be a dictionary, with metric codes e.g. "IG.1" as the keys and
        pandas dataframes as the values.
        
        ```python
        import bitepi
        sample_array = [
            ['S1', 0],
            ['S2', 1],
            ['S3', 1],
            ['S4', 0],
            ['S5', 0],
        ]
        genotype_array = [
            ['SNP', 'S1', 'S2', 'S3', 'S4', 'S5'],
            ['snpA', 0, 0, 2, 1, 2],
            ['snpB', 2, 1, 2, 1, 2],
            ['snpC', 0, 0, 1, 1, 1],
            ['snpD', 2, 2, 1, 2, 1],
            ['snpE', 0, 1, 1, 1, 2],
        ]
        epistasis = bitepi.Epistasis(
            genotype_array=genotype_array,
            sample_array=sample_array,
        )
        interactions = epistasis.compute_epistasis(
            sort=True,
            best_ig=True,
        )['best_ig']
        
        print(interactions)
        ```
        
        This should return:
        
        ```
            SNP     SNP_P    PAIR_P  TRIPLET_P  QUADLET_P    SNP_IG   PAIR_IG  TRIPLET_IG  QUADLET_IG  PAIR TRIPLET_1 TRIPLET_2 QUADLET_1 QUADLET_2 QUADLET_3
        0  snpA  1.707692  2.000000   2.109091        0.0  1.187692  0.266667    0.109091         0.0  snpE      snpB      snpE      snpA      snpA      snpA
        1  snpB  1.642424  1.909091   2.109091        0.0  1.122424  0.266667    0.200000         0.0  snpC      snpC      snpE      snpA      snpA      snpA
        2  snpC  1.641026  1.909091   2.109091        0.0  1.121026  0.266667    0.200000         0.0  snpB      snpD      snpE      snpA      snpA      snpA
        3  snpD  1.642424  1.909091   2.109091        0.0  1.122424  0.175758    0.200000         0.0  snpE      snpC      snpE      snpA      snpA      snpA
        4  snpE  1.733333  2.000000   2.109091        0.0  1.213333  0.266667    0.200000         0.0  snpA      snpC      snpD      snpA      snpA      snpA
        
        ```
        
        For higher order interactions (p3, ig3, p4 and ig4) Epistasis may take several
        minutes to run, depending on the number of SNPs. If more information is
        required when running, the logging level can be increased to `logging.INFO`
        or `logging.DEBUG`. `logging.DEBUG` will provide the greatest detail, including
        logging from within the binary.
        
        ```python
        import logging
        logging.root.setLevel(logging.DEBUG)
        ```
        
Keywords: BIONINFORMATICS,EPISTASIS
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3
Description-Content-Type: text/markdown
