Ranked vaccine peptides for personalized cancer immunotherapy
Python TeX HTML CSS Shell
Clone or download
Latest commit 379a442 Jul 31, 2018


Build Status Coverage Status PyPI


Selection of mutated protein fragments for therapeutic personalized cancer vaccines.


vaxrank \
    --vcf test/data/b16.f10/b16.vcf \
    --bam test/data/b16.f10/b16.combined.bam \
    --vaccine-peptide-length 25 \
    --mhc-predictor netmhc \
    --mhc-alleles H2-Kb,H2-Db \
    --padding-around-mutation 5 \
    --output-ascii-report vaccine-peptides.txt \
    --output-pdf-report vaccine-peptides.pdf \
    --output-html-report vaccine-peptides.html


Vaxrank can be installed using pip:

pip install vaxrank

Note: to generate PDF reports, you first need to install wkhtmltopdf, which you can do (on OS X) like so:

brew install Caskroom/cask/wkhtmltopdf

Vaxrank uses PyEnsembl for accessing information about the reference genome. You must install an Ensembl release corresponding to the reference genome associated with the mutations provided to Vaxrank.

The latest release for GRCh38 is Ensembl 87:

pyensembl install --release 87 --species human

The last release for GRCh37 is Ensembl 75:

pyensembl install --release 75 --species human

If your variants were called from alignments against hg19 then you can still use GRCh37 but should ignore mitochondrial variants.


To install Vaxrank for local development, you may do the below:

git clone git@github.com:openvax/vaxrank.git
conda create -q -n vaxrank-dev-env python=3.5.2 numpy scipy nose pandas pylint
source activate vaxrank-dev-env
pip install -r requirements.txt
pip install .
pyensembl install --release 87 --species human
pyensembl install --release 87 --species mouse

You should run the linter and the test suite as you work on Vaxrank (and these will be run automatically by our continuous integration server up on a PR being made).

nosetests test

The first run of the tests may take a while (8 minutes on a 2016 Macbook Pro) to create the FM index of the proteome, but subsequent tests should take only a few seconds.