Skip to content

Commit

Permalink
Release 3.0.0 (#49)
Browse files Browse the repository at this point in the history
* Version bump 3.0.0rc2

* Fix master / main branch naming in GH action

* Fix typos in README file

* Add pypi GH action

* Fix PyPI linting errors

* Reduce version to 3.0.0rc1

* Add a changelog

* Install changelog with package

* Change PyPI CD trigger to published release

* Add rank metric #15 (#42)

* Push all changes made on fork

* Set Setuptools version also for external yml

* Fixed erroneous variable names in matrix files

* deleted A_2601_9 matrix for now. Caused troubles

* Add A2601_9 syf matrix for debugging

* Fixed bug in test caused by addition of A*26:01 matrix

* Change solver from cbc to glpk to investigate if macOS dependant env problems in github actions can be solved

* Corrected after review

* Adjust tutorials to new structure

* Change filter_result as discussed

* Adjusted filter method and tutorials according to #12

* Fixed a bug occuring for netMHCfamily tools when peptide input has multiple lengths

* remove logging

* Alter filter_result method as discussed

* Fixed issues #38, #44 and #45 (#46)

* Fixed issues #44 and #45

* Fix #48, include review suggestions

* Improve/update documentation (#50)

* Update CHANGELOG

* Extend README

* Change framework name in code comment

* Remove logging warning

* Change file ending in tutorial

* Add docstrings, minor formatting

* Update CHANGELOG version and setup.py

* Update date

Co-authored-by: Leon Kuchenbecker <[email protected]>
Co-authored-by: Jonas Scheid <[email protected]>
  • Loading branch information
3 people authored Jan 26, 2022
1 parent 4bc846b commit 8ac9fe5
Show file tree
Hide file tree
Showing 173 changed files with 6,739 additions and 4,401 deletions.
47 changes: 47 additions & 0 deletions .github/workflows/pypi-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: PyPI

on:
release:
types: [published]

jobs:
pypi-publish:
name: Publish tagged release on PyPI
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Install utilities
run: sudo apt-get install -y mmv
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install pypa/build
run: >-
python -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: >-
python -m
build
--sdist
--wheel
--outdir dist/
.
- name: Create timestamp
run: echo timestamp=$(date +%s) >> $GITHUB_ENV
- name: Rename built files to include timestamp
run: |
mmv -v dist/'*.*.*-*' dist/'#1.#2.#3-'$timestamp'-#4'
mmv -v dist/'*.tar.gz' dist/'#1-'$timestamp.tar.gz
- name: Publish distribution package to PyPI (test)
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
- name: Publish distribution package to PyPI (production)
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.PYPI_API_TOKEN }}
6 changes: 3 additions & 3 deletions .github/workflows/python-test-conda-external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Unit tests external tools

on:
push:
branches: [ master, develop ]
branches: [ main, develop ]
pull_request:
branches: [ master, develop ]
branches: [ main, develop ]

jobs:
tests-external:
Expand Down Expand Up @@ -40,7 +40,7 @@ jobs:
echo "PATH=$PATH"
- name: Set up Python ${{ matrix.python-version }}
run: |
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*'
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*' setuptools"==52.0"
- name: Activate conda environment
run: |
echo "/tmp/condaenv/bin" >> $GITHUB_PATH
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/python-test-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Unit tests without external tools

on:
push:
branches: [ master, develop ]
branches: [ main, develop ]
pull_request:
branches: [ master, develop ]
branches: [ main, develop ]

jobs:
tests:
Expand All @@ -22,7 +22,7 @@ jobs:
echo "CONDA_PKGS_DIRS=/tmp/condapkgs" >> $GITHUB_ENV
- name: Set up Python ${{ matrix.python-version }}
run: |
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*'
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*' setuptools"==52.0"
- name: Activate conda environment
run: |
echo "/tmp/condaenv/bin" >> $GITHUB_PATH
Expand All @@ -31,6 +31,6 @@ jobs:
run: |
pip install .
- name: Install Test dependencies
run: conda install -p /tmp/condaenv -c conda-forge -c bioconda nose nose-exclude coincbc
run: conda install -p /tmp/condaenv -c conda-forge -c bioconda nose nose-exclude glpk
- name: Run Tests
run: nosetests --exclude-dir=epytope/test/external epytope
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# epytope: Changelog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## v3.0.0 - 2022-01-26

Initial release of `epytope`. `epytope` is the successor project of [`FRED2`](https://github.com/FRED-2/Fred2), which was renamed to a more versioning friendly base name.

### `Added`

- [#6](https://github.com/KohlbacherLab/epytope/pull/6) - Add CI for external tools
- [#24](https://github.com/KohlbacherLab/epytope/pull/24) - Add `keras` dependency
- [#26](https://github.com/KohlbacherLab/epytope/pull/26) - Add a license file
- [#31](https://github.com/KohlbacherLab/epytope/pull/31) - Add deployment to `PyPI`
- [#42](https://github.com/KohlbacherLab/epytope/pull/42) - Add new `Syfpeithi` matrices
- [#46](https://github.com/KohlbacherLab/epytope/pull/46) - Add support for `NetMHCII 2.3` and `NetMHCIIpan 4.0`

### `Changed`

- [#1](https://github.com/KohlbacherLab/epytope/pull/1) - Switch CI/CD from Travis to GitHub Actions
- [#9](https://github.com/KohlbacherLab/epytope/pull/9) - Initial `Python 2` to `Python 3` conversion based on 2to3conv
- [#20](https://github.com/KohlbacherLab/epytope/pull/20) - Use logging module rather than print calls across the library
- [#23](https://github.com/KohlbacherLab/epytope/pull/23) - Rename the package from `FRED-2` to `epytope`
- [#25](https://github.com/KohlbacherLab/epytope/pull/25) - Refactor CI to use more `pip` and less `conda`
- [#42](https://github.com/KohlbacherLab/epytope/pull/42) - Extend `EpitopePredictionResult` structure to store `rank`-based scores

### `Fixed`

- [#11](https://github.com/KohlbacherLab/epytope/pull/11) - Fix `Python` version matrix in CI, remove versions that fail
- [#16](https://github.com/KohlbacherLab/epytope/pull/16) - Fix epitope prediction 2to3 bugs and tests
- [#17](https://github.com/KohlbacherLab/epytope/pull/17) - Fix Invalid subprocess handling and `mhcflurry` polluting stdout
- [#18](https://github.com/KohlbacherLab/epytope/pull/18) - Fix external (`NetMHC` tool family) epitope prediction error and temp file handling
- [#46](https://github.com/KohlbacherLab/epytope/pull/46) - Fix issues with MHC class-II `CombinedAlleles` [#45](https://github.com/KohlbacherLab/epytope/issues/45)
- [#46](https://github.com/KohlbacherLab/epytope/pull/46) - Do not override `Allele` objects [#38](https://github.com/KohlbacherLab/epytope/issues/38)
86 changes: 58 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,81 @@
# epytope - An Immunoinformatics Framework for Python

![PyPi](https://github.com/KohlbacherLab/epytope/actions/workflows/pypi-publish.yml/badge.svg)
![Tests](https://github.com/KohlbacherLab/epytope/actions/workflows/python-test-conda.yml/badge.svg)
![Tests external](https://github.com/KohlbacherLab/epytope/actions/workflows/python-test-conda-external.yml/badge.svg)
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![Anaconda-Server Badge](https://anaconda.org/bioconda/fred2/badges/installer/conda.svg)](https://conda.anaconda.org/bioconda)

epytope - An Immunoinformatics Framework for Python
-------------------------------------------------
Copyright 2014 by Benjamin Schuber, Mathias Walzer, Philipp Brachvogel, Andras Szolek, Christopher Mohr, and Oliver Kohlbacher

**epytope** is a framework for T-cell epitope detection, and vaccine design. It offers consistent, easy, and simultaneous access to well established prediction methods of computational immunology. **epytope** can handle polymorphic proteins and offers analysis tools to select, assemble, and design linker sequences for string-of-beads epitope-based vaccines. It is implemented in Python in a modular way and can easily be extended by user defined methods.

Epytope is a framework for T-cell epitope detection, and vaccine design. It offers consistent, easy, and simultaneous access to well established prediction methods of computational immunology. Epytope can handle polymorphic proteins and offers analysis tools to select, assemble, and design linker sequences for string-of-beads epitope-based vaccines. It is implemented in Python in a modular way and can easily be extended by user defined methods.

## Copyright

Copyright
----------
epytope is released under the three clause BSD licence.

Installation
------------
## Installation

use the following commands:

$ pip install git+https://github.com/KohlbacherLab/epytope
pip install git+https://github.com/KohlbacherLab/epytope

Dependencies
------------
## Dependencies

### Python Packages

**Python Packages**
- pandas
- pyomo>=4.0
- svmlight
- MySQL-python>=1.2.4
- Biopython
- pyVCF

**Third-Party Software (not installed through pip)**
- NetMHC predictor family (NetMHC(pan)-(I/II), NetChop, NetCTL) (http://www.cbs.dtu.dk/services/software.php)
- PickPocket (http://www.cbs.dtu.dk/services/software.php)
- Integer Linear Programming Solver (recommended CBC: https://projects.coin-or.org/Cbc)

Please pay attanention to the different licensings of the third party tools.

Getting Started
---------------

Users and developers should start by reading our [wiki](https://github.com/KohlbacherLab/epytope/wiki) and [IPython tutorials](https://github.com/KohlbacherLab/epytope/tree/master/epytope/tutorials).
A reference documentation is also available [online](http://fred2.readthedocs.org/en/latest/).

How to Cite
-----------
Please cite:
### Third-Party Software (not installed through pip)

- NetMHC predictor family (NetMHC(pan)-(I/II), NetChop, NetCTL) (<http://www.cbs.dtu.dk/services/software.php>)
- PickPocket (<http://www.cbs.dtu.dk/services/software.php>)
- Integer Linear Programming Solver (recommended CBC: <https://projects.coin-or.org/Cbc>)

Please pay attention to the different licensing of third party tools.

## Framework summary

Currently **epytope** provides implementations of several prediction methods or interfaces to external prediction tools.

- Cleavage Prediction
- Proteasomal cleavage matrix-based prediction by [Dönnes et al.](https://pubmed.ncbi.nlm.nih.gov/15987883/)
- ProteaSMM by [Tenzer et al.](https://pubmed.ncbi.nlm.nih.gov/15868101/)
- [NetChop](https://pubmed.ncbi.nlm.nih.gov/15744535/) 3.1
- Epitope Assembly
- Approach by [Toussaint et al.](https://pubmed.ncbi.nlm.nih.gov/21875632/)
- Bi-objective extension of approach by [Toussaint et al.](https://pubmed.ncbi.nlm.nih.gov/21875632/)
- Assembly with spacers by [Schubert et al.](https://pubmed.ncbi.nlm.nih.gov/26813686/)
- Epitope Prediction
- [SYFPEITHI](https://link.springer.com/article/10.1007/s002510050595)
- [MHCNuggets](https://pubmed.ncbi.nlm.nih.gov/31871119/) 2.0, 2.3.2
- [MHCflurry](https://pubmed.ncbi.nlm.nih.gov/29960884/) 1.2.2, 1.4.3
- [NetMHC](https://pubmed.ncbi.nlm.nih.gov/26515819/) 3.0, 3.4, 4.0
- [NetMHCII](https://pubmed.ncbi.nlm.nih.gov/29315598/) 2.2, 2.3
- [NetMHCpan](https://pubmed.ncbi.nlm.nih.gov/28978689/) 2.4, 2.8, 3.0, 4.0
- [NetMHCIIpan](https://pubmed.ncbi.nlm.nih.gov/32406916/) 3.0, 3.1, 4.0
- [PickPocket](https://pubmed.ncbi.nlm.nih.gov/19297351/) 1.1
- [NetCTLpan](https://pubmed.ncbi.nlm.nih.gov/20379710/) 1.1
- Epitope Selection
- [OptiTope](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2703925/)
- Stability Prediction
- [NetMHCstabpan](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4976001/) 1.0
- TAPP Prediction
- TAP prediction model by [Doytchinova et al.](https://pubmed.ncbi.nlm.nih.gov/15557175/)
- [SMMTAP](https://pubmed.ncbi.nlm.nih.gov/12902473/)

## Getting Started

Users and developers should start by reading our [wiki](https://github.com/KohlbacherLab/epytope/wiki) and [IPython tutorials](https://github.com/KohlbacherLab/epytope/tree/master/epytope/tutorials). A reference documentation is also available [online](http://fred2.readthedocs.org/en/latest/).

## How to Cite

Please cite

[Schubert, B., Walzer, M., Brachvogel, H-P., Sozolek, A., Mohr, C., and Kohlbacher, O. (2016). FRED 2 - An Immunoinformatics Framework for Python. Bioinformatics 2016; doi: 10.1093/bioinformatics/btw113](http://bioinformatics.oxfordjournals.org/content/early/2016/02/26/bioinformatics.btw113.short?rss=1)

Expand Down
23 changes: 0 additions & 23 deletions README.rst

This file was deleted.

Loading

0 comments on commit 8ac9fe5

Please sign in to comment.