Quick Guide¶
Introduction¶
epistasis
is a Python library that includes models to estimate statistical, high-order epistasis in genotype-phenotype maps. Using this library, you can
Decompose genotype-phenotype maps into high-order epistatic interactions
Find nonlinear scales in the genotype-phenotype map
Calculate the contributions of different epistatic orders and
Estimate the uncertainty in the epistatic coefficients and
For more information about the epistasis models in this library, see our Genetics paper:
Simple Example¶
Follow these five steps for all epistasis models in this library:
Import a model. There many models available in the
epistasis.models
module. See the full list in the next section.
from epistasis.models import EpistasisLinearRegression
Initialize a model. Set the order, choose the type of model (see Anatomy of an epistasis model for more info), and set any other parameters in the model.
model = EpistasisLinearRegression(order=3, model_type='global')
Add some data. There are three basic ways to do this. 1. Pass data directly to the epistasis model using the
add_data
method. 2. Read data from a separate file using one of theread_
methods. 3. (The best option.) load data into a GenotypePhenotypeMap object from the GPMap library and add it to the epistasis model.
from gpmap import GenotypePhenotypeMap
datafile = 'data.csv'
gpm = GenotypePhenotypeMap.read_csv(datafile)
# Add the data.
model.add_gpm(gpm)
# model now has a `gpm` attribute.
Fit the model. Each model has a simple fit method. Call this to estimate epistatic coefficients. The results are stored the
epistasis
attribute.
# Call fit method
model.fit()
# model now has an ``epistasis`` attribute
Plot the results. The epistasis library has a
pyplot
module (powered by matplotlib) with a few builtin plotting functions.
from epistasis.pyplot import plot_coefs
fig, ax = plot_coefs(model.epistasis.sites, model.epistasis.values)

Install and dependencies¶
For users¶
This library is now available on PyPi, so it can be installed using pip.
pip install epistasis
For developers¶
For the latest version of the package, you can also clone from Github and install a development version using pip.
git clone https://github.com/harmslab/epistasis
cd epistasis
pip install -e .
Dependencies¶
The following dependencies are required for the epistasis package.
gpmap: Module for constructing powerful genotype-phenotype map python data-structures.
Scikit-learn: Simple to use machine-learning API.
Numpy: Python’s array manipulation package.
Scipy: Efficient scientific array manipulations and fitting.
Pandas: High-performance, easy-to-use data structures and data analysis tools.
There are also some additional dependencies for extra features included in the package.
matplotlib: Python plotting API.
ipython: interactive python kernel.
jupyter notebook: interactive notebook application for running python kernels interactively.
ipywidgets: interactive widgets in python.
Running tests¶
The epistasis package comes with a suite of tests. Running the tests require pytest, so make sure it is installed.
pip install -U pytest
Once pytest is installed, run the tests from the base directory of the epistasis package using the following command.
pytest