Mutect2 --artifact_detection_mode for tumor-only calling : can i use PoN

escaonescaon Limoges, FranceMember

I am aware that "Tumor-only variant calling is possible but it is not supported with Mutect2".

Thing is, i am working on a study with few normals.
I did create my PoN with the 10 available normals.

I am planning on calling the 10 tumor-normal pairs as planned with Mutect2.

For the remaining "tumor-only" samples, the plan is to use --artifact_detection_mode :
java -jar $GATK -T MuTect2 -nct 8 \ -R ucsc.hg19.fasta \ -I:tumor tumor.bam \ --dbsnp dbsnp_138.hg19.vcf \ --cosmic cosmic_coding_and_noncoding_chr_M_sorted.vcf \ -L targets.interval_list \ --artifact_detection_mode \ -o out_artifactmode.vcf
I was wondering if i could use the -PON argument alongside with --artifact_detection_mode ?
I know it feels counter-intuitive, given that the --artifact_detection_mode is primary designed to build the PoN.
java -jar $GATK -T MuTect2 -nct 8 \ ... \ -PON pon.vcf \ --artifact_detection_mode \ ... \
If it's not possible, i guess i will then use the PoN as one of the many filters in the post-processing steps on those "out_artifactmode.vcf"

Best regards, Erwan

Issue · Github
by Sheila

Issue Number
Last Updated
Closed By


  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie

    Hi @escaon, sorry for the late reply! In case it still matters, I don't think the PON is going to work when running in artifact detection mode, but using it as a post-processing filter seems perfectly reasonable to me. Let us know what you end up doing in case it can help someone else in a similar situation.

  • escaonescaon Limoges, FranceMember

    Hi, thanks for the reply.

    The -PON argument has indeed no effect on MuTect2 with --artifact_detection_mode (at least i didn't see any effects in the tests i ran).

    Currently, i am applying a very naive approach to filter the tumor-only variants obtained with --artifact_detection_mode.
    The PoN is taken into account as a post-processing step on those VCF, command line below :
    for f in *artifactmode*.vcf; do java -jar $GATK -T VariantFiltration \ -R ucsc.hg19.fasta \ -L amplicons.bed \ --variant $f \ --mask combined_pon.vcf \ --maskName 'panel_of_normals' \ -o Output/$f; done &>> verbose.txt;

    Bonus question :
    MuTect2 reports in the VCF some variants which are outside of -L boundaries (but always close to those boundaries, ~ 20nts).
    I guess that when the HC graph is built to call variants, it takes into account all reads spanning into a given interval, thus the graph is "a bit larger" than the actual interval. And calling variants on those "ends of the graph" seems possible. But it makes me wonder, will $GATK VariantFiltration (with -L argument) manage to apply its filters on those variants called outside of -L boundaries with MuTect2 ?
    Or shall i run $GATK VariantFiltration without the -L argument ?

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie
    VariantFiltration won't act outside the -L intervals so if you want to use them, either drop -L or add interval padding with -ip.
Sign In or Register to comment.