最近在搭建大panel(528基因)Tumor-Normal样本分析的管线,用的是GATK4-Mutect2工具。
1.GATK4用到的数据库(b37)
ref="b37/human_g1k_v37.fasta"
common_biallelic=" b37_common_biallelic.vcf"
2.Mutect2
gatk="/biotools/gatk-4.0.7.0/gatk"
${gatk} --java-options "-Xmx4G " Mutect2 \
-R ${ref} \
-I normal.bam \
-I tumor.bam \
-normal normal_samplename\
-tumor tumor_samplename \
--native-pair-hmm-threads 16 \
-stand-call-conf 30 \
--minimum-mapping-quality 30 \
-O outputname.mutect2.vcf
说明
1)normal.bam和tumor.bam是输入的bam文件;
2)-tumor 和 -normal 后面跟着的是最后输出vcf文件的时候最后两列的名字;
3)下面三个不是必须的,根据自己的需要来设定;(设置线程的参数在官网没有介绍,可能是个隐藏彩蛋,而且在GATK4大多数工具包里已经没有了,HaplotypeCaller似乎也可以用)
3.FilterMutectCalls
如果想要加入cotamination的过滤,就先要用GetPileupSummaries,再用CalculateContamination 生成一个.contamination.table.
${gatk} GetPileupSummaries -I ${Tumor}.recal.bam -V ${common_biallelic} -O ${Tumor}.pileups.table
${gatk} GetPileupSummaries -I ${Normal}.recal.bam -V ${common_biallelic} -O ${Normal}.pileups.table
${gatk} CalculateContamination \
-I ${Tumor}.pileups.table -matched ${Normal}.pileups.table \
-O ${Tumor}.contamination.table
${gatk} --java-options "-Xmx4G" FilterMutectCalls \
-V outputname.mutect2.vcf \
-contamination-table ${Tumor}.contamination.table \
-O filtername.somatic.vcf
1)-V 就是Mutect2的输出文件,Filter一栏全部为".";
2)加上-contamination-table 参数在Filter会加上一个contamination的tag;
- -O 输出文件Filter一栏标注PASS,t_lod,contamination等tags;
4)GetPileupSummaries 用到的参考文件,只要是 only common biallelic variants就行;
4.ANNOVAR
后面要用ANNOVAR,所以先用convert2annovar将vcf转成avinput格式文件
perl convert2annovar.pl -format vcf4 -filter pass filtername.somatic.vcf --allsample --outfile string
1)-filter pass 是为了只保留vcf文件中Filter一栏PASS的variant;
2)--allsample 是因为Mutect2 的输出的vcf包含了两个样本的信息(Tumor和Normal)
3)--outfile 这个要注意的是实际输出的时候文件名是--outfile后面写的字符串加上每个样本的样本名(在这里就是上面Mutect2中normal_samplename和tumor_samplename),再加上"avinput"。比如写了”string“就是"string.normal_samplename.avinput",有几个样本就会输出几个文件。
疑问:我这里做完之后,normal的avinput都是空,只有tumor有内容。