epistasis
A Python API for estimating statistical high-order epistasis in genotype-phenotype maps.
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
Keywords from Contributors
Repository
A Python API for estimating statistical high-order epistasis in genotype-phenotype maps.
Basic Info
- Host: GitHub
- Owner: harmslab
- License: unlicense
- Language: Python
- Default Branch: master
- Homepage: http://epistasis.readthedocs.io/
- Size: 4.62 MB
Statistics
- Stars: 35
- Watchers: 5
- Forks: 11
- Open Issues: 7
- Releases: 12
Topics
Metadata Files
README.md
Epistasis
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
- matplotlib: Python plotting API.
- ipython: interactive python kernel.
- jupyter notebook: interactive notebook application for running python kernels interactively.
- ipywidgets: interactive widgets in python.
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
- Website: http://harmslab.uoregon.edu
- Repositories: 57
- Profile: https://github.com/harmslab
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
Top Committers
| Name | 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
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.
- Homepage: https://github.com/harmslab/epistasis
- Documentation: https://epistasis.readthedocs.io/
- License: UNLICENSE
-
Latest release: 0.7.5
published over 4 years ago
Rankings
Dependencies
- gpmap *
- numpy *
- numpydoc *
- scikit-learn *
- scipy *
- sphinx *
- sphinx-gallery *
- 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
- actions/checkout master composite
- actions/setup-python v1 composite
- ad-m/github-push-action master composite
- actions/checkout v1 composite
- actions/setup-python v1 composite