epistasis

A Python API for estimating statistical high-order epistasis in genotype-phenotype maps.

https://github.com/harmslab/epistasis

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 10 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 6 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.7%) to scientific vocabulary

Keywords

epistasis evolution genetics genotype-phenotype-maps high-order modeling nonlinear python

Keywords from Contributors

networkx
Last synced: 6 months ago · JSON representation

Repository

A Python API for estimating statistical high-order epistasis in genotype-phenotype maps.

Basic Info
Statistics
  • Stars: 35
  • Watchers: 5
  • Forks: 11
  • Open Issues: 7
  • Releases: 12
Topics
epistasis evolution genetics genotype-phenotype-maps high-order modeling nonlinear python
Created almost 11 years ago · Last pushed over 2 years ago
Metadata Files
Readme

README.md

Epistasis

Join the chat at https://gitter.im/harmslab/epistasis Binder Documentation Status Tests DOI

Python API for estimating statistical, high-order epistasis in genotype-phenotype maps.

All models follow a Scikit-learn interface and thus seamlessly plug in to the PyData ecosystem. For more information about the type of models included in this package, read our docs. You can also read more about the theory behind these models in our paper.

Finally, if you'd like to test out this package without any installing, try these Jupyter notebooks here (thank you Binder!).

Examples

The Epistasis package works best in combinations with GPMap, an API for managing genotype-phenotype map data. Construct a GenotypePhenotypeMap object and pass it directly to an epistasis model.

```python

Import a model and the plotting module

from gpmap import GenotypePhenotypeMap from epistasis.models import EpistasisLinearRegression from epistasis.pyplot import plot_coefs

Genotype-phenotype map data.

wildtype = "AAA" genotypes = ["ATT", "AAT", "ATA", "TAA", "ATT", "TAT", "TTA", "TTT"] phenotypes = [0.1, 0.2, 0.4, 0.3, 0.3, 0.6, 0.8, 1.0]

Create genotype-phenotype map object.

gpm = GenotypePhenotypeMap(wildtype=wildtype, genotypes=genotypes, phenotypes=phenotypes)

Initialize an epistasis model.

model = EpistasisLinearRegression(order=3)

Add the genotype phenotype map.

model.add_gpm(gpm)

Fit model to given genotype-phenotype map.

model.fit()

Plot coefficients (powered by matplotlib).

plot_coefs(model, figsize=(3,5)) ```

More examples can be found in these binder notebooks.

Installation

Epistasis works in Python 3+ (we do not guarantee it will work in Python 2.)

To install the most recent release on PyPi: pip install epistasis

To install from source, clone this repo and run: pip install -e .

Documentation

Documentation and API reference can be viewed here.

Dependencies

  • gpmap: Module for constructing powerful genotype-phenotype map python data-structures.
  • Scikit-learn: Simple to use machine-learning algorithms
  • Numpy: Python's array manipulation packaged
  • Scipy: Efficient scientific array manipulations and fitting.
  • lmfit: Non-linear least-squares minimization and curve fitting in Python.

Optional dependencies

Development

We welcome pull requests! If you find a bug, we'd love to have you fix it. If there is a feature you'd like to add, feel free to submit a pull request with a description of the addition. We also ask that you write the appropriate unit-tests for the new feature and add documentation to our Sphinx docs.

To run the tests on this package, make sure you have pytest installed and run from the base directory:

pytest

Citing

If you use this API for research, please cite this paper.

You can also cite the software directly:

@misc{zachary_sailer_2017_252927, author = {Zachary Sailer and Mike Harms}, title = {harmslab/epistasis: Genetics paper release}, month = jan, year = 2017, doi = {10.5281/zenodo.1215853}, url = {https://doi.org/10.5281/zenodo.1215853} }

Owner

  • Name: Harms Lab @ University of Oregon
  • Login: harmslab
  • Kind: organization
  • Location: Eugene, OR

Software projects created by members of the the Harms lab at the University of Oregon

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 645
  • Total Committers: 6
  • Avg Commits per committer: 107.5
  • Development Distribution Score (DDS): 0.026
Past Year
  • Commits: 2
  • Committers: 1
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Zachary Sailer z****r@g****m 628
Mike Harms h****m@g****m 8
Caelan Radford c****d@g****m 6
Luis l****o@u****u 1
Luis Perez Morales 6****o 1
The Gitter Badger b****r@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 45
  • Average time to close issues: 5 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 7
  • Total pull request authors: 4
  • Average comments per issue: 0.82
  • Average comments per pull request: 0.44
  • Merged pull requests: 41
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Zsailer (4)
  • jbloom (2)
  • Shinezhuxin (1)
  • adalisan (1)
  • juychen (1)
  • Admire7494 (1)
  • mgalardini (1)
Pull Request Authors
  • Zsailer (39)
  • harmsm (4)
  • gitter-badger (1)
  • caelanradford (1)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 37 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 17
  • Total maintainers: 3
pypi.org: epistasis

A Python API for estimating statistical high-order epistasis in genotype-phenotype maps.

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 37 Last month
Rankings
Dependent repos count: 9.0%
Dependent packages count: 10.1%
Forks count: 10.5%
Stargazers count: 11.4%
Average: 12.3%
Downloads: 20.6%
Maintainers (3)
Last synced: 6 months ago

Dependencies

docs/requirements.txt pypi
  • gpmap *
  • numpy *
  • numpydoc *
  • scikit-learn *
  • scipy *
  • sphinx *
  • sphinx-gallery *
requirements.txt pypi
  • asteval >=0.9.13
  • atomicwrites >=1.2.1
  • attrs >=18.2.0
  • cycler >=0.10.0
  • emcee >=2.2.1
  • gpmap >=0.6.0
  • kiwisolver >=1.0.1
  • lmfit >=0.9.11
  • matplotlib >=3.0.0
  • more-itertools >=4.3.0
  • numpy >=1.15.2
  • pandas >=0.24.2
  • pluggy >=0.7.1
  • py >=1.6.0
  • pyparsing >=2.2.2
  • pytest >=3.8.1
  • python-dateutil >=2.7.3
  • pytz >=2018.5
  • scikit-learn >=0.20.0
  • scipy >=1.1.0
  • six >=1.11.0
  • uncertainties >=3.0.2
.github/workflows/publishing.yml actions
  • actions/checkout master composite
  • actions/setup-python v1 composite
  • ad-m/github-push-action master composite
.github/workflows/tests.yml actions
  • actions/checkout v1 composite
  • actions/setup-python v1 composite
setup.py pypi