Skip to content

Commit a3d7c5a

Browse files
Merge pull request #42 from griffithlab/pvactools_7.0
Update course for 7.0 release
2 parents 0b7e943 + 66d1771 commit a3d7c5a

7 files changed

Lines changed: 331 additions & 219 deletions

File tree

01-intro.Rmd

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ottrpal::set_knitr_image_path()
55

66
# Introduction
77

8-
This course was developed in Summer 2023 and updated in Fall 2025. We welcome any feedback at help@pvactools.org or by submission of [GitHub issues](https://github.com/griffithlab/pVACtools_Intro_Course/issues).
8+
This course was developed in Summer 2023 and last updated in Summer 2026. We welcome any feedback at help@pvactools.org or by submission of [GitHub issues](https://github.com/griffithlab/pVACtools_Intro_Course/issues).
99

1010
## Motivation
1111

@@ -24,7 +24,7 @@ prioritization, and selection using a graphical Web-based interface (pVACview),
2424
vaccines. pVACtools is available at [http://www.pvactools.org](http://www.pvactools.org).
2525

2626
```{r, fig.align='center', out.width="100%", echo = FALSE, fig.alt= "pVACtools is a cancer immunotherapy tools suite"}
27-
ottrpal::include_slide("https://docs.google.com/presentation/d/1uz39zaObDGKhEVCGzO0JO35CTbC0oRAM0mxgLcMAA9Y/edit#slide=id.g3a37485c18b_1_0")
27+
ottrpal::include_slide("https://docs.google.com/presentation/d/1uz39zaObDGKhEVCGzO0JO35CTbC0oRAM0mxgLcMAA9Y/edit?slide=id.g3e342b543ab_0_0#slide=id.g3e342b543ab_0_0")
2828
```
2929

3030
## Background
@@ -43,7 +43,9 @@ stability and recognition by cytotoxic T cells [@Richters2019].
4343
pVACtools can be used as the final step in a well-established variant calling pipeline. It leverages existing tools with functionality related to variant annotation
4444
(Ensembl VEP [@McLaren2016]), identifying neoantigens from specific sources (e.g. fusions via star-fusion [@Haas2019], AGFusion [@Murphy2016], and Arriba [@Uhrig2021]),
4545
HLA typing (OptiType [@Szolek2014], PHLAT [@Bai2018]), peptide-MHC binding prediction (IEDB [@Vita2018], NetMHCpan [@Jurtz2017], MHCflurry [@ODonnell2018],
46-
MHCnuggets [@Shao2020]), peptide-MHC stability (NetMHCstabpan [@Rasmussen2016]], peptide processing (NetChop [@Nielsen2005]), manufacturability
46+
MHCnuggets [@Shao2020], MixMHCpred [@Gfeller2023]), presentation (IEDB [@Vita2018], BigMHC [@Albert2023], MHCflurry[@ODonnell2018], MixMHC2pred [@Racle2023]),
47+
immunogenicity (BigMHC [@Albert2023], DeepImmuno [@Li2021], ImmuoScope [@Shen2025], PRIME [@Gfeller2023]), peptide-MHC stability (NetMHCstabpan [@Rasmussen2016]],
48+
peptide processing (NetChop [@Nielsen2005]), manufacturability
4749
metrics (vaxrank [@Rubinsteyn2017]), and reference proteome similarity (BLAST [@Altschul1990]). Each of these tools tackles specific tasks within the broader goal of
4850
antigen analysis and is utilized by pVACtools to provide an end-to-end integration of novel algorithms and established tools needed to discover, characterize, prioritize,
4951
and utilize tumor-specific neoantigens in basic research and clinical applications. Combining pVACtools with existing variant calling pipelines provides an end-to-end

02-prerequisites.Rmd

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,27 +70,27 @@ install.packages("colourpicker", dependencies=TRUE)
7070

7171
## Data
7272

73-
For this course, we have put together a set of input data generated from the breast
73+
For this course, we have put together a set of input data generated from the breast
7474
cancer cell line HCC1395 and a matched normal lymphoblastoid cell line HCC1395BL.
75-
Data from this cell line is commonly used as test data in bioinformatics applications.
76-
For more information on these lines and the generation of test data, please refer to
75+
Data from this cell line is commonly used as test data in bioinformatics applications.
76+
For more information on these lines and the generation of test data, please refer to
7777
the [data section of our precision medicine bioinformatics course](https://pmbio.org/module-02-inputs/0002/05/01/Data/).
7878

7979
The input data consists of the following files:
8080

8181
For pVACseq:
8282

8383
- `annotated.expression.vcf.gz`: A somatic (tumor-normal) VCF and its tbi index file. The VCF has been
84-
annotated with VEP and has coverage and expression information added. It has also been annotated with
85-
custom VEP plugins that provide wild type and mutant versions of the full length protein sequences
84+
annotated with VEP and has coverage and expression information added. It has also been annotated with
85+
custom VEP plugins that provide wild type and mutant versions of the full length protein sequences
8686
predicted to arise from each transcript annotated with each variant.
8787
- `phased.vcf.gz`: A phased tumor-germline VCF and its tbi index file to provide information about
8888
in-phase proximal variants that might alter the predicted peptide sequence around a somatic
8989
mutation of interest.
9090
- `optitype_normal_result.tsv`: A OptiType file with HLA allele typing predictions.
9191

9292
For more detailed information on how the variant input file is created, please refer to the
93-
[input file preparation](https://pvactools.readthedocs.io/en/latest/pvacseq/input_file_prep.html)
93+
[input file preparation](https://pvactools.readthedocs.io/en/latest/pvacseq/input_file_prep.html)
9494
section of the pVACtools docs.
9595

9696
For pVACfuse:

03-running_pvactools.Rmd

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@ mkdir pVACtools_outputs
2323
docker run \
2424
-v ${PWD}/HCC1395_inputs:/HCC1395_inputs \
2525
-v ${PWD}/pVACtools_outputs:/pVACtools_outputs \
26-
-it griffithlab/pvactools:6.0.3 \
26+
-it griffithlab/pvactools:7.0.0 \
2727
/bin/bash
2828
```
2929

30-
This will pull the 6.0.3 version of the griffithlab/pvactools Docker image and
30+
This will pull the 7.0.0 version of the griffithlab/pvactools Docker image and
3131
start an interactive session (`-it`) of that Docker image using the bash shell (`/bin/bash`).
3232
The `-v ${PWD}/HCC1395_inputs:/HCC1395_inputs`
3333
part of the command will mount the
3434
`HCC1395_inputs` folder at `/HCC1395_inputs` inside of the Docker container
3535
so that you will have access to the input data from inside the Docker
3636
container. The `-v ${PWD}/pVACtools_outputs:/pVACtools_outputs` part of the command
3737
will mount the `pVACtools_outputs` folder you just created. We will write the
38-
outputs from pVACseq and pVACfuse to that folder so that you will have access
38+
outputs from pVACseq, pVACfuse, and pVACsplice to that folder so that you will have access
3939
to it once you exit the Docker image.
4040

4141
## Running pVACseq
@@ -120,17 +120,14 @@ your run. Here are a list of parameters we generally recommend:
120120
are considered by pVACseq. This flag will lead pVACseq to skip variants that
121121
have a FILTER applied in the VCF to, e.g., exclude variants that were marked
122122
as low quality by the variant caller.
123-
- `--percentile-threshold`: When considering the peptide-MHC binding affinity
124-
for filtering and prioritizing neoantigen candidates, by default only the
125-
IC50 value is being used. Setting this parameter will additionally also filter
126-
on the predicted percentile. We recommend a value of 2 (2%) for this
127-
threshold.
128-
- `--percentile-threshold-strategy`: When running pVACseq with a
129-
`--percentile-threshold` set, this parameter will influence how both the
130-
IC50 cutoff and the percentile cutoff are applied. The default,
131-
`conservative`, will require a candidate to pass both the binding and the
132-
percentile threshold, while the `exploratory` option will require a candidate
133-
to only pass either the binding or the percentile threshold.
123+
- `--use-normalized-percentiles`: Not all prediction algorithms supported by
124+
pVACseq output a percentile rank. This option will calculate normalized percentiles
125+
for class I epitopes of length 8-11 and all class I algorithms and the 1,000
126+
most common human class I MHC alleles based on the same set of 100,000 reference
127+
peptides. These percentiles will be used in place of percentiles natively
128+
calculated by some algorithms. This ensures that all class I algorithms will
129+
return a percentile score since some do not do so natively. It also ensures
130+
that the percentiles are calculated consistently between all algorithms.
134131

135132
Additionally there are a number of parameters that might be useful depending
136133
on your specific analysis needs:
@@ -147,6 +144,12 @@ on your specific analysis needs:
147144
unstable. This parameter allows users to set their own rules as to which
148145
peptides are considered problematic and peptides meeting those rules will be marked in the
149146
pVACseq results and deprioritized.
147+
- `--percentile-threshold-strategy`: By default, pVACseq will
148+
filter and prioritize neoantigen candidates on the binding, presentation,
149+
and immunogenicity percentiles in addition to the raw IC50 binding affinity.
150+
A candidate will need to pass all thresholds. However, setting this parameter
151+
to `exploratory` will relax this behavior and only require a candidate to
152+
pass one of the thresholds.
150153
- `--transcript-prioritization-strategy` and
151154
`--maximum-transcript-support-level`: Generally, multiple transcripts of a
152155
gene may code for a neoantigen candidate. When picking the best transcript
@@ -177,8 +180,8 @@ Given the considerations outlined above, let's run pVACseq on our sample data.
177180

178181
From the `optitype_normal_result.tsv` we know that the patient's class I alleles are
179182
HLA-A\*29:02, HLA-B\*45:01, HLA-B\*82:02, and HLA-C\*06:02 (indicated that two of three class I
180-
alleles are homozygous in this sample). We also have clinical typing information that confirms
181-
these class I alleles as well as identifying DQA1\*03:03, DQB1\*03:02, and DRB1\*04:05 as the
183+
alleles are homozygous in this sample). We also have clinical typing information that confirms
184+
these class I alleles as well as identifying DQA1\*03:03, DQB1\*03:02, and DRB1\*04:05 as the
182185
patient's class II alleles.
183186

184187
Note that where needed pVACseq will automatically create HLA class II dimer combinations using
@@ -274,17 +277,14 @@ usually apply. Here are a list of parameters we generally recommend:
274277
neoantigen candidate in the reference proteome and report any hits found.
275278
By default this is done using BLASTp but we recommend using a proteome FASTA
276279
file via the `--peptide-fasta` parameter to speed up this step.
277-
- `--percentile-threshold`: When considering the peptide-MHC binding affinity
278-
for filtering and prioritizing neoantigen candidates, by default only the
279-
IC50 value is being used. Setting this parameter will additionally also filter
280-
on the predicted percentile. We recommend a value of 2 (2%) for this
281-
threshold.
282-
- `--percentile-threshold-strategy`: When running pVACfuse with a
283-
`--percentile-threshold` set, this parameter will influence how both the
284-
IC50 cutoff and the percentile cutoff are applied. The default,
285-
`conservative`, will require a candidate to pass both the binding and the
286-
percentile threshold, while the `exploratory` option will require a candidate
287-
to only pass either the binding or the percentile threshold.
280+
- `--use-normalized-percentiles`: Not all prediction algorithms supported by
281+
pVACfuse output a percentile rank. This option will calculate normalized percentiles
282+
for class I epitopes of length 8-11 and all class I algorithms and the 1,000
283+
most common human class I MHC alleles based on the same set of 100,000 reference
284+
peptides. These percentiles will be used in place of percentiles natively
285+
calculated by some algorithms. This ensures that all class I algorithms will
286+
return a percentile score since some do not do so natively. It also ensures
287+
that the percentiles are calculated consistently between all algorithms.
288288

289289
Additionally there are a number of parameters that might be useful depending
290290
on your specific analysis needs:
@@ -298,6 +298,12 @@ on your specific analysis needs:
298298
unstable. This parameter allows users to set their own rules as to which
299299
peptides are considered problematic and peptides meeting those rules will be marked in the
300300
pVACfuse results and deprioritized.
301+
- `--percentile-threshold-strategy`: By default, pVACfuse will
302+
filter and prioritize neoantigen candidates on the binding, presentation,
303+
and immunogenicity percentiles in addition to the raw IC50 binding affinity.
304+
A candidate will need to pass all thresholds. However, setting this parameter
305+
to `exploratory` will relax this behavior and only require a candidate to
306+
pass one of the thresholds.
301307
- `--threads`: This argument will allow pVACfuse to run in multi-processing
302308
mode.
303309
- `--keep-tmp-files`: Setting this flag will save intermediate files created by pVACfuse.
@@ -312,7 +318,7 @@ Given the considerations outlined above, let's run pVACfuse on our sample data.
312318

313319
As with pVACseq, we can use the `optitype_normal_result.tsv` file to identify the patient's
314320
class I HLA alleles. These are HLA-A\*29:02, HLA-B\*45:01, HLA-B\*82:02, and HLA-C\*06:02.
315-
We also have clinical typing information that confirms these class I alleles as well as
321+
We also have clinical typing information that confirms these class I alleles as well as
316322
identified DQA1\*03:03, DQB1\*03:02, and DRB1\*04:05 as the patient's class II alleles.
317323

318324
For pVACfuse the sample name is not used for any parsing so it doesn't need to
@@ -398,17 +404,14 @@ usually apply. Here is a list of parameters we generally recommend:
398404
neoantigen candidate in the reference proteome and report any hits found.
399405
By default this is done using BLASTp, but we recommend using a proteome FASTA
400406
file via the `--peptide-fasta` parameter to speed up this step.
401-
- `--percentile-threshold`: When considering the peptide-MHC binding affinity
402-
for filtering and prioritizing neoantigen candidates, by default only the
403-
IC50 value is being used. Setting this parameter will additionally filter
404-
on the predicted percentile. We recommend a value of 2 (2%) for this
405-
threshold.
406-
- `--percentile-threshold-strategy`: When running pVACsplice with a
407-
`--percentile-threshold` set, this parameter will influence how both the
408-
IC50 cutoff and the percentile cutoff are applied. The default,
409-
`conservative`, will require a candidate to pass both the binding and the
410-
percentile threshold, while the `exploratory` option will require a candidate
411-
to only pass either the binding or the percentile threshold.
407+
- `--use-normalized-percentiles`: Not all prediction algorithms supported by
408+
pVACsplice output a percentile rank. This option will calculate normalized percentiles
409+
for class I epitopes of length 8-11 and all class I algorithms and the 1,000
410+
most common human class I MHC alleles based on the same set of 100,000 reference
411+
peptides. These percentiles will be used in place of percentiles natively
412+
calculated by some algorithms. This ensures that all class I algorithms will
413+
return a percentile score since some do not do so natively. It also ensures
414+
that the percentiles are calculated consistently between all algorithms.
412415

413416
Additionally there are a number of parameters that might be useful depending
414417
on your specific analysis needs:
@@ -422,6 +425,12 @@ on your specific analysis needs:
422425
unstable. This parameter allows users to set their own rules as to which
423426
peptides are considered problematic and peptides meeting those rules will be marked in the
424427
pVACsplice results and deprioritized.
428+
- `--percentile-threshold-strategy`: By default, pVACsplice will
429+
filter and prioritize neoantigen candidates on the binding, presentation,
430+
and immunogenicity percentiles in addition to the raw IC50 binding affinity.
431+
A candidate will need to pass all thresholds. However, setting this parameter
432+
to `exploratory` will relax this behavior and only require a candidate to
433+
pass one of the thresholds.
425434
- `--transcript-prioritization-strategy` and
426435
`--maximum-transcript-support-level`: Generally, multiple transcripts of a
427436
gene may code for a neoantigen candidate. When picking the best transcript

0 commit comments

Comments
 (0)