Skip to content

Commit

Permalink
Merge pull request #255 from debbiemarkslab/develop
Browse files Browse the repository at this point in the history
Finalize for new release (v0.1.0)
  • Loading branch information
thomashopf authored Nov 6, 2020
2 parents 3759247 + f14fc1c commit 379e9ae
Show file tree
Hide file tree
Showing 9 changed files with 121 additions and 57 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: build_and_test

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
python-version: [3.6]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install and configure conda
run: |
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"
hash -r
conda config --set always_yes yes --set changeps1 no
conda update -q conda
conda info -a
conda create -q -n test-environment python=${{ matrix.python-version }} numpy scipy numba pandas matplotlib
source activate test-environment
- name: Run setup.py
run: |
python setup.py sdist --formats=zip -k
find ./dist -iname "*.zip" -print0 | xargs -0 pip install
pip install codecov
- name: Download test files
run: |
wget https://marks.hms.harvard.edu/evcouplings_test_cases/data/evcouplings_test_cases.tar.gz
tar -xf evcouplings_test_cases.tar.gz -C $HOME/
- name: Run tests in headless xvfb environment
uses: GabrielBB/xvfb-action@v1
with:
run: coverage run -m unittest discover -s test -p "Test*.py"
54 changes: 54 additions & 0 deletions .github/workflows/build_test_and_push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: build_test_and_push

on:
release:
types: [released]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install and configure conda
run: |
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"
hash -r
conda config --set always_yes yes --set changeps1 no
conda update -q conda
conda info -a
conda create -q -n test-environment python=${{ matrix.python-version }} numpy scipy numba pandas matplotlib
source activate test-environment
- name: Run setup.py
run: |
python setup.py sdist --formats=zip -k
find ./dist -iname "*.zip" -print0 | xargs -0 pip install
pip install codecov
- name: Download test files
run: |
wget https://marks.hms.harvard.edu/evcouplings_test_cases/data/evcouplings_test_cases.tar.gz
tar -xf evcouplings_test_cases.tar.gz -C $HOME/
- name: Run tests in headless xvfb environment
uses: GabrielBB/xvfb-action@v1
with:
run: coverage run -m unittest discover -s test -p "Test*.py"
- name: Publish evcouplings to test PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.PYPI_ACCESS_TOKEN_TEST }}
repository_url: https://test.pypi.org/legacy/
- name: Publish evcouplings to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.PYPI_ACCESS_TOKEN }}
41 changes: 0 additions & 41 deletions .travis.yml

This file was deleted.

28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.org/debbiemarkslab/EVcouplings.svg?branch=master)](https://travis-ci.org/debbiemarkslab/EVcouplings)
[![build_and_test Actions Status](https://github.com/debbiemarkslab/EVcouplings/workflows/build_and_test/badge.svg?branch=master)](https://github.com/debbiemarkslab/EVcouplings/actions) [![PyPI version](https://badge.fury.io/py/evcouplings.svg)](https://badge.fury.io/py/evcouplings)
# EVcouplings

Predict protein structure, function and mutations using evolutionary sequence covariation.
Expand All @@ -15,18 +15,19 @@ EVcouplings requires a Python >= 3.5 installation. Since it depends on some pack

#### Installation

To install the latest version of EVcouplings, *currently please do not use the outdated PyPI release (i.e. do not pip install evcouplings)*. Instead, run
To install the latest version of EVcouplings on PyPI,

pip install https://github.com/debbiemarkslab/EVcouplings/archive/develop.zip
pip install evcouplings

To obtain the latest version of EVcouplings from the github repository, run
To obtain the latest development version of EVcouplings from the github repository, run

pip install git+https://github.com/debbiemarkslab/EVcouplings.git
pip install https://github.com/debbiemarkslab/EVcouplings/archive/develop.zip

and to update to the latest version after previously installing EVcouplings from the repository, run

pip install -U --no-deps git+https://github.com/debbiemarkslab/EVcouplings.git
pip install -U --no-deps https://github.com/debbiemarkslab/EVcouplings/archive/develop.zip

Installation will take seconds.

### External software tools

Expand Down Expand Up @@ -69,7 +70,7 @@ Download and install [PSIPRED](http://bioinfadmin.cs.ucl.ac.uk/downloads/psipred

evcouplings uses maxcluster to compare predicted 3D structure models to experimental protein structures, if there are any for the target protein or one
of its homologs. Installation is only required if you want to run the *fold* stage of the computational pipeline.

Download [maxcluster](http://www.sbg.bio.ic.ac.uk/~maxcluster/) and place it in a directory of your choice.

### Databases
Expand All @@ -86,17 +87,17 @@ Please see

evcouplings_dbupdate --help

for how to download the respective databases. Note that this may take a while, especially the generation of post-processed SIFTS mapping files.
for how to download the respective databases. Note that this may take a while, especially the generation of post-processed SIFTS mapping files.

#### Sequence databases for EVcomplex
Running the EVcouplings pipeline for protein complexes (aka EVcomplex) requires two pre-computed databases. You can download these databases here:

ena_genome_location_table: https://marks.hms.harvard.edu/evcomplex_databases/cds_pro_2017_02.txt
uniprot_to_embl_table: https://marks.hms.harvard.edu/evcomplex_databases/idmapping_uniprot_embl_2017_02.txt

Save these databases in your local environment, and then add the paths to the local copies of these databases to your config file for the complex pipeline.
Save these databases in your local environment, and then add the paths to the local copies of these databases to your config file for the complex pipeline.

In future releases these databases will be generated automatically.
In future releases these databases will be generated automatically.

#### Other sequence databases

Expand All @@ -107,7 +108,7 @@ You can however use any sequence database of your choice in FASTA format if you
Relevant PDB structures for comparison of ECs and 3D structure predictions will be automatically fetched from the web in the new compressed MMTF format on a per-job basis. You can however also pre-download the entire PDB and place the structures in a directory if you want to (and set pdb_mmtf_dir in your job configuration).

Uniprot to PDB index mapping files will be automatically generated by EVcouplings based on the SIFTS database.
You can either generate the files by running *evcouplings_dbupdate* (see above, preferred), or by pointing the sifts_mapping_table and sifts_sequence_db configuration parameters to file paths inside an already existing directory. If these files do not yet exist, they will be created by fetching and integrating data from the web (this may take a while) when the pipeline is first run and saved under the given file paths.
You can either generate the files by running *evcouplings_dbupdate* (see above, preferred), or by pointing the sifts_mapping_table and sifts_sequence_db configuration parameters to file paths inside an already existing directory. If these files do not yet exist, they will be created by fetching and integrating data from the web (this may take a while) when the pipeline is first run and saved under the given file paths.

## Documentation and tutorials

Expand Down Expand Up @@ -140,16 +141,19 @@ Hopf, T. A., Schärfe, C. P. I., Rodrigues, J. P. G. L. M., Green, A. G., Kohlba

Hopf, T. A., Ingraham, J. B., Poelwijk, F.J., Schärfe, C.P.I., Springer, M., Sander, C., & Marks, D. S. (2017). Mutation effects predicted from sequence co-variation. *Nature Biotechnology* **35**, 128–135 doi:10.1038/nbt.3769

Green, A. G. and Elhabashy, H., Brock, K. P., Maddamsetti, R., Kohlbacher, O., Marks, D. S. (2019) Proteom-scale discovery of protein interactions with residue-level resolution using sequence coevolution. BioRxiv (in review). https://doi.org/10.1101/791293

## Contributors

EVcouplings is developed in the labs of [Debora Marks](http://marks.hms.harvard.edu) and [Chris Sander](http://sanderlab.org/) at Harvard Medical School.

* [Thomas Hopf](mailto:thomas.hopf@gmail.com) (development lead)
* Anna Green
* Anna G. Green
* Benjamin Schubert
* Sophia Mersmann
* Charlotta Schärfe
* Agnes Toth-Petroczy
* John Ingraham
* Rob Sheridan
* Christian Dallago
* Joe Min
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

description='A Framework for evolutionary couplings analysis',
long_description=readme,
long_description_content_type='text/markdown',

# The project's main homepage.
url='https://github.com/debbiemarkslab/EVcouplings',
Expand Down
3 changes: 2 additions & 1 deletion test/TestComplex.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
from evcouplings.complex.protocol import *
from evcouplings.align import Alignment

TRAVIS_PATH = "/home/travis/evcouplings_test_cases/complex_test"
TRAVIS_PATH = os.getenv('HOME') + "/evcouplings_test_cases/complex_test"
# TRAVIS_PATH = "/home/travis/evcouplings_test_cases/complex_test"
# TRAVIS_PATH = "/Users/AG/Dropbox/evcouplings_dev/test_cases/for_B/complex_test"

class TestComplex(TestCase):
Expand Down
3 changes: 2 additions & 1 deletion test/TestFold.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
from evcouplings.fold import haddock_dist_restraint
from evcouplings.fold.protocol import complex_dock

TRAVIS_PATH = "/home/travis/evcouplings_test_cases"
TRAVIS_PATH = os.getenv('HOME') + "/evcouplings_test_cases"
# TRAVIS_PATH = "/home/travis/evcouplings_test_cases"
#TRAVIS_PATH = "/Users/AG/Dropbox/evcouplings_dev/test_cases/for_B"
COMPLEX_PATH = "{}/complex_test".format(TRAVIS_PATH)

Expand Down
3 changes: 2 additions & 1 deletion test/TestMutation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
from evcouplings.mutate.protocol import *
from evcouplings.couplings.model import CouplingsModel

TRAVIS_PATH = "/home/travis/evcouplings_test_cases"
TRAVIS_PATH = os.getenv('HOME') + "/evcouplings_test_cases"
# TRAVIS_PATH = "/home/travis/evcouplings_test_cases"
#TRAVIS_PATH = "/Users/AG/Dropbox/evcouplings_dev/test_cases/for_B"
MONOMER_PATH = "{}/monomer_test".format(TRAVIS_PATH)
COMPLEX_PATH = "{}/complex_test".format(TRAVIS_PATH)
Expand Down
3 changes: 2 additions & 1 deletion test/TestUtilsCalculate.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from evcouplings.couplings import CouplingsModel
import numpy as np

MONO_MODEL = "/home/travis/evcouplings_test_cases/monomer_test/couplings/RASH_HUMAN_b03.model"
MONO_MODEL = os.getenv('HOME') + "/evcouplings_test_cases/monomer_test/couplings/RASH_HUMAN_b03.model"
# MONO_MODEL = "/home/travis/evcouplings_test_cases/monomer_test/couplings/RASH_HUMAN_b03.model"


class TestUtilsHelpers(TestCase):
Expand Down

0 comments on commit 379e9ae

Please sign in to comment.