pVACseq, Part 2: What pVACseq Does and When to Use It
pVACseq · neoantigen prediction · NetMHCpan · MHCflurry · cancer vaccine pipeline
What pVACseq Does and When to Use It
pVACseq is the most widely used pipeline for neoantigen prediction from somatic variants. It takes a VCF file and HLA alleles, generates peptide sequences around each mutation, runs binding predictions against multiple algorithms in parallel, and produces a ranked list of candidate neoepitopes.
It is the right tool when you have a VCF from tumor-normal WES and want a systematically generated, reproducible neoantigen list for research or vaccine design. It is not a one-click solution — the output requires biological interpretation and filtering before it is useful.
Figure 1. Left: binding prediction counts by peptide length for HLA-A*02:01. Right: the prioritization funnel from ~2,800 raw predictions to ~20 final vaccine candidates.
Installation and Input Requirements
# Install via pip (Python 3.8+)
pip install pvactools
# Required inputs:
# 1. Annotated VCF (run through VEP first)
vep --input_file tumor_somatic.vcf \
--output_file tumor_somatic.vep.vcf \
--format vcf \
--vcf \
--symbol \
--terms SO \
--tsl \
--hgvs \
--fasta GRCh38.fa \
--offline
# 2. HLA alleles from OptiType or HLA-HD (see Post 17)
# Format: HLA-A*02:01,HLA-A*24:02,HLA-B*07:02,...
Running pVACseq
pvacseq run \
tumor_somatic.vep.vcf \ # VEP-annotated VCF
sample_01 \ # sample name (output prefix)
"HLA-A*02:01,HLA-A*24:02,HLA-B*07:02,HLA-B*35:01,HLA-C*07:01,HLA-C*04:01" \
NetMHCpan MHCflurry \ # prediction algorithms (can combine)
output_dir/ \ # output directory
--iedb-install-directory /opt/iedb/ \
--class-i-epitope-length 8,9,10,11 \ # peptide lengths (pVACtools 2.0+: -e for class I was split into -e1/-e2)
--binding-threshold 500 \ # IC50 cutoff (nM)
--percentile-threshold 2 \ # alternatively: top 2% binders
--minimum-fold-change 1 \ # MT/WT binding ratio filter
--normal-cov 40 \ # minimum normal coverage
--tdna-cov 25 \ # minimum tumor DNA coverage
--trna-cov 10 \ # minimum tumor RNA coverage
--expn-val 1 \ # minimum expression (TPM)
--net-chop-method cterm \ # proteasomal cleavage prediction
--netmhc-stab \ # HLA-peptide stability (add Kd½)
-t 8
Understanding the Output
pVACseq produces several output files. The most important:
sample_01.filtered.condensed.ranked.tsv— Final ranked list, one row per candidate neoepitopesample_01.all_epitopes.tsv— All predictions before filtering
import pandas as pd
results = pd.read_csv("output_dir/MHC_Class_I/sample_01.filtered.condensed.ranked.tsv", sep="\t")
# Key columns to check:
# Mutation - gene + amino acid change
# MT Epitope Seq - mutant peptide sequence
# Best MT IC50 Score - lowest predicted binding affinity (nM)
# Best WT IC50 Score - wild-type peptide binding (for fold-change)
# Fold Change - MT/WT ratio (higher = more tumor-specific)
# Tumor DNA VAF - variant allele frequency (clonality proxy)
# Gene Expression - RNA-seq expression level
# Recommended final filters for vaccine design:
high_priority = results[
(results["Best MT IC50 Score"] < 50) & # strong binder
(results["Fold Change"] > 10) & # tumor-specific (not self)
(results["Tumor DNA VAF"] > 0.2) & # clonal
(results["Gene Expression"] > 2) # expressed
].sort_values("Best MT IC50 Score")
print(f"Final candidates: {len(high_priority)}")}
Common Mistakes
- Not filtering by VAF: Subclonal mutations (VAF <0.1) produce neoantigens in only a fraction of tumor cells. Vaccines targeting subclonal mutations have low probability of impacting disease.
- Ignoring fold change: A mutation in a gene that is also expressed as wild-type can generate peptides that are similar to self. High MT/WT fold change (>10) indicates the mutant peptide is genuinely foreign.
- Using only one prediction algorithm: Ensemble predictions (NetMHCpan + MHCflurry) are more reliable than either alone. pVACseq handles this natively — always specify at least two algorithms.
Working with spatial transcriptomics and want to map immune infiltration patterns? See the companion blog SpatiaBio — Squidpy tutorials and spatial omics workflows.
댓글
댓글 쓰기