Skip to content

Commit 77e4c0b

Browse files
Render course
1 parent a3d7c5a commit 77e4c0b

36 files changed

Lines changed: 581 additions & 446 deletions

File tree

docs/01-intro.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# Introduction
55

6-
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).
6+
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).
77

88
## Motivation
99

@@ -21,7 +21,7 @@ of the aforementioned steps are executed via a modular workflow consisting of to
2121
prioritization, and selection using a graphical Web-based interface (pVACview), and design of DNA vector–based vaccines (pVACvector) and synthetic long peptide
2222
vaccines. pVACtools is available at [http://www.pvactools.org](http://www.pvactools.org).
2323

24-
<img src="01-intro_files/figure-html//1uz39zaObDGKhEVCGzO0JO35CTbC0oRAM0mxgLcMAA9Y_g3a37485c18b_1_0.png" alt="pVACtools is a cancer immunotherapy tools suite" width="100%" style="display: block; margin: auto;" />
24+
<img src="01-intro_files/figure-html//1uz39zaObDGKhEVCGzO0JO35CTbC0oRAM0mxgLcMAA9Y_g3e342b543ab_0_0.png" alt="pVACtools is a cancer immunotherapy tools suite" width="100%" style="display: block; margin: auto;" />
2525

2626
## Background
2727

@@ -39,7 +39,9 @@ stability and recognition by cytotoxic T cells [@Richters2019].
3939
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
4040
(Ensembl VEP [@McLaren2016]), identifying neoantigens from specific sources (e.g. fusions via star-fusion [@Haas2019], AGFusion [@Murphy2016], and Arriba [@Uhrig2021]),
4141
HLA typing (OptiType [@Szolek2014], PHLAT [@Bai2018]), peptide-MHC binding prediction (IEDB [@Vita2018], NetMHCpan [@Jurtz2017], MHCflurry [@ODonnell2018],
42-
MHCnuggets [@Shao2020]), peptide-MHC stability (NetMHCstabpan [@Rasmussen2016]], peptide processing (NetChop [@Nielsen2005]), manufacturability
42+
MHCnuggets [@Shao2020], MixMHCpred [@Gfeller2023]), presentation (IEDB [@Vita2018], BigMHC [@Albert2023], MHCflurry[@ODonnell2018], MixMHC2pred [@Racle2023]),
43+
immunogenicity (BigMHC [@Albert2023], DeepImmuno [@Li2021], ImmuoScope [@Shen2025], PRIME [@Gfeller2023]), peptide-MHC stability (NetMHCstabpan [@Rasmussen2016]],
44+
peptide processing (NetChop [@Nielsen2005]), manufacturability
4345
metrics (vaxrank [@Rubinsteyn2017]), and reference proteome similarity (BLAST [@Altschul1990]). Each of these tools tackles specific tasks within the broader goal of
4446
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,
4547
and utilize tumor-specific neoantigens in basic research and clinical applications. Combining pVACtools with existing variant calling pipelines provides an end-to-end
Binary file not shown.
950 KB
Loading

docs/02-prerequisites.md

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

7070
## Data
7171

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

7878
The input data consists of the following files:
7979

8080
For pVACseq:
8181

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

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

9595
For pVACfuse:

docs/03-running_pvactools.md

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

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

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

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

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

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

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

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

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

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

0 commit comments

Comments
 (0)