Skip to content
Snippets Groups Projects
  • Tim O'Donnell's avatar
    942601b3
    Big refactor to prepare for release · 942601b3
    Tim O'Donnell authored
    Lazily putting this all in one commit.
    
    * infrastructure for downloading datasets and published trained models (the `mhcflurry-downloads` command)
    * docs and scripts (in `downloads-generation`) to generate the pubilshed datsets and trained models
    * parallelized cross validation and model training implementation, including support for imputation (based on the old mhcflurry-cloud repo, which is now gone)
    * a single front-end script for class1 allele-specific cross validation and model training / testing (`mhcflurry-class1-allele-specific-cv-and-train`)
    * refactor how we deal with hyper-parameters and how we instantiate Class1BindingPredictors
    * make Class1BindingPredictor pickleable and remove old serialization code
    * move code particular to class 1 allele-specific predictors into its own submodule
    * remove unused code including arg parsing, plotting, and ensembles
    * had to bump the binding prediction threshold for the Titin1 epitope from 500 to 700, as this test was sporadically failing for me (see test_known_class1_epitopes.py)
    * Attempt to make tests involving randomness somewhat more reproducible by setting numpy random seed
    * update README
    942601b3
    History
    Big refactor to prepare for release
    Tim O'Donnell authored
    Lazily putting this all in one commit.
    
    * infrastructure for downloading datasets and published trained models (the `mhcflurry-downloads` command)
    * docs and scripts (in `downloads-generation`) to generate the pubilshed datsets and trained models
    * parallelized cross validation and model training implementation, including support for imputation (based on the old mhcflurry-cloud repo, which is now gone)
    * a single front-end script for class1 allele-specific cross validation and model training / testing (`mhcflurry-class1-allele-specific-cv-and-train`)
    * refactor how we deal with hyper-parameters and how we instantiate Class1BindingPredictors
    * make Class1BindingPredictor pickleable and remove old serialization code
    * move code particular to class 1 allele-specific predictors into its own submodule
    * remove unused code including arg parsing, plotting, and ensembles
    * had to bump the binding prediction threshold for the Titin1 epitope from 500 to 700, as this test was sporadically failing for me (see test_known_class1_epitopes.py)
    * Attempt to make tests involving randomness somewhat more reproducible by setting numpy random seed
    * update README

Releasing MHCflurry

We currently don't have a PyPI release but that will change soon (and these instructions will be updated indicating how to push updates). For now the only "releasing" to deal with is changing the downloadable models and data.

Changing the downloadable models or data

We publish our downloadable models and data as files associated with a GitHub release. Since we need to refer to the URLs for these files in downloads.yml, which is checked into the repo, updating the models requires a few steps: we have to make a preliminary GitHub release containing the new models and data as GitHub attached files, update the code to point to these files, wait for travis to run, merge the PR, then modify the release's tag to now point to the new master. Here are these steps in more detail:

  • Make a new release by going here. The tag should be the version of MHCflurry you are releasing. Make sure you check "This is a pre-release." It actually doesn't matter what commit the tag is associated with as we will change it later, but you might as well make it point to HEAD of the branch you are working from. Attach your generated downloads to the release.

  • Modify downloads.yml to point to the URLs of your files above. Commit and push your changes to your branch.

  • When travis has suceeded and code review is complete, merge your PR to master.

  • Now change the GitHub release's tag to point to the current latest master. Based on this stackoverflow answer you can run (from a checkout of the updated master branch):

git tag -f -a 0.0.1
git push -f --tags