pVACtool是一个癌症免疫治疗工具套件,由四个工具组成,分别是pVACseq、pVACfuse、pVACvector和pVACviz。其中pVACseq是一个癌症免疫疗法流程,用于从肿瘤突变中识别并优化候选的肿瘤抗原。这里介绍pVACseq-docker (DNA)的使用。
官网:pVACseq — pVACtools 4.0.5 documentation
下载(不用安装)
docker pull griffithlab/pvactools
使用
输入文件(vcf)处理
官网看起来很麻烦,共5个步骤,每个步骤似乎很多步,但其实还好,主要步骤仅1个。
1. 需要提供GT,(一般vcf都有,不用处理);
2. 采用两个插件进行vep注释;
注意:若未安装vep,先安装vep,再进行以下操作。
1)安装相关插件到指定目录
docker run -v /VEP plugins directory/:/work/ griffithlab/pvactools pvacseq install_vep_plugin /work/
或者:
进入docker,运行pvacseq install_vep_plugin <VEP plugins directory>
2)vep注释 --plugin Frameshift --plugin Wildtype --tsl
docker run --user root -v /data/database/vep_data/:/root/.vep/ -v /data/database/:/database/ -v /data_storage1/new_pipeline_RD/HLA/:/work --rm ensemblorg/ensembl-vep:release_104.1 vep -i /work/test.vcf -o /work/test.vep.vcf --format vcf --vcf --cache --refseq --exclude_predicted --transcript_filter "not stable_id match NR_" --force_overwrite --pick --fork 4 --offline --assembly GRCh38 --fasta /database/GRCh38/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz --plugin Frameshift --plugin Wildtype --tsl
3. 需要AD, DP, and AF(一般vcf都有)
若无AD,DP,AF,但有DP4和VAF,则可命令行处理:
less test.vcf|perl -ne '{chomp; if(/^#/){print $_,"\n";}else{@a=split; $f=$a[8]; @fs=split /:/, $f; @vn=();foreach $v(@a[9..$#a]){@vs=split /:/, $v; for($i=0;$i<@fs;$i++){if($fs[$i] eq "DP4"){@d=split /,/, $vs[$i]; $d=$d[0]+$d[1]+$d[2]+$d[3]; $ad=($d[0]+$d[1]).",".($d[2]+$d[3]);} } push @vn, join(":", $v, $d, $ad); } $f=~s/VAF/AF/; $f.=":DP:AD"; print join("\t", @a[0..7], $f, @vn),"\n";} }'|less >test.addAD.vcf
bgzip test.addAD.vcf
tabix test.addAD.vcf.gz
4. 其他(表达数据和phased vcf)可选,但考虑准确性,官网强烈建议进行phased vcf。
运行
只分析MHC_Class_I:
docker run -v /local_data/:/work/ griffithlab/pvactools pvacseq run --iedb-install-directory /opt/iedb/ -e1 8,9,10,11 /work/test.addAD.vcf.gz TUMOR HLA-A*24:02,HLA-B*48:01,HLA-C*07:02 NNalign NetMHC NetMHCIIpan NetMHCcons NetMHCpan PickPocket SMM SMMPMBEC SMMalign /work/test_outdir
注意:
1. TUMOR是样本名,与对应vcf文件对应。
2. 一定要指定IEDB本地路径:--iedb-install-directory /opt/iedb/, 不然刚开始能跑通,但调用过多后会报错,Error posting request to IEDB. You don't have permission to access /tools_api/mhci/ on this server.
参数测试
测试参数--normal-sample-name NORMAL
结果:与无该参数的结果一模一样,但速度貌似要快一些(24min)。
测试allele:
对比HLA各一个(HLA-A*24:02,HLA-B*48:01,HLA-C*07:02)和杂合2个分型(HLA-A*24:02,HLA-A*02:06,HLA-B*48:01,HLA-B*40:01,HLA-C*07:02,HLA-C*08:01)
运行命令:
docker run -v /local_dir:/work/ griffithlab/pvactools pvacseq run -t 8 -e1 8,9,10 --iedb-install-directory /opt/iedb/ /work/t.vcf.gz TUMOR HLA-A*24:02,HLA-B*48:01,HLA-C*07:02 NetMHCcons /work/test_out -m median -b 1000 -c 1 --fasta-size 100 --downstream-sequence-length 100
docker run -v /local_dir:/work/ griffithlab/pvactools pvacseq run -t 8 -e1 8,9,10 --iedb-install-directory /opt/iedb/ /work/t.vcf.gz TUMOR HLA-A*24:02,HLA-A*02:06,HLA-B*48:01,HLA-B*40:01,HLA-C*07:02,HLA-C*08:01 NetMHCcons /work/test_out_all -m median -b 1000 -c 1 --fasta-size 100 --downstream-sequence-length 100
运行时间:前者8分钟,后者13分钟;
结果:后者多预测很多新抗原,且得分低很多,前40个中仅3个被前者预测出来;前者的很多新抗原结果后者未预测出来。
报错
报错The two methods NetMHCpan and NetMHC produced different outputs, number of peptides not the same:
1 经测试,重新运行又成功,可能是随机错误;同见https://github.com/griffithlab/pVACtools/issues/324
2 为简化运行,参照https://github.com/griffithlab/pVACtools/issues/328修改参数:
docker run -v /local_dir/:/work/ griffithlab/pvactools pvacseq run -t 8 -e 8,9,10 -m median -b 1000 -c 1 --fasta-size 100 --downstream-sequence-length 100 --iedb-install-directory /opt/iedb/ /work/t.vcf.gz TUMOR HLA-A*24:02,HLA-B*48:01,HLA-C*07:02 NetMHCcons /work/test_out -
运行成功,时间节省2/3(8min);该命令大部分样本不再报错,但偶尔个别样本仍报同样的错,经重跑又成功。
结果对比:
1)预测的新抗原序列大部分一样,除了前4个有3个一样外,其他的顺序不一样;
2)打分不一样,简化后(仅NetMHCcons )的打分低一些(最低26分),原始(多算法)打分高一些(最低107分)。