# What are values of FILTER column of vcf files produced by Mutect2

I have called SNVs with Mutect2, now in filter column of a file called filtered vcf I have a lot of things like

> length(unique(filtered.vcf$FILTER)) [1] 409 > > unique(filtered.vcf$FILTER)
[1] "germline"
[2] "PASS"
[3] "clustered_events"
[4] "clustered_events;panel_of_normals"
[5] "weak_evidence"
[6] "haplotype"
[7] "base_qual;haplotype"
[8] "clustered_events;germline;haplotype"
[9] "base_qual;clustered_events;germline;haplotype"
[10] "clustered_events;haplotype"
[11] "clustered_events;haplotype;weak_evidence"
[12] "base_qual;clustered_events;haplotype"
[13] "haplotype;map_qual"
[14] "germline;panel_of_normals"
[15] "base_qual"
[16] "germline;haplotype"
[17] "germline;panel_of_normals;position"
[18] "clustered_events;orientation"
[19] "clustered_events;orientation;strand_bias"
[20] "base_qual;haplotype;map_qual"
[21] "clustered_events;fragment;haplotype"
[22] "base_qual;clustered_events"
[23] "germline;haplotype;panel_of_normals"
[24] "clustered_events;germline;haplotype;panel_of_normals"
[25] "fragment"
[26] "clustered_events;haplotype;map_qual"
[27] "clustered_events;germline"
[28] "clustered_events;germline;panel_of_normals"
[29] "germline;weak_evidence"
[30] "orientation"


I tought that the filtered.vcf Mutect2 output file contain only the filtered events, but the values I see suggest otherwise. How should I understand the output?

You haven't told us what commands you ran, so I am assuming you first ran Mutect2 and then FilterMutectCalls. If so, the FilterMutectCalls does not remove any variants from its input, it will simply flag any that fail its builtin filters. Any variants that did not fail a filter are marked as PASS and the rest have a filter added.

Now, whether you want to filter these out or not is up to you. You need to look at the VCF header where each of the filters is defined (admittedly, not very clearly) and make a judgment call on whether you consider this filter to be a deal breaker or not.

For instance, the germline flag means:

##FILTER=<ID=germline,Description="Evidence indicates this site is germline, not somatic">


So that indicates that gatk believes this is more likely to be a germline variant than a somatic one, that it is more likely to be a constituent variant present in the sample's germline cells than a variant that is only found in the sample's tumor cells.

Another clear case is the base_qual filter which means:

##FILTER=<ID=base_qual,Description="alt median base quality">


When a variant is flagged with this filter, it means that the median fastq base quality of the reads supporting the variant was significantly lower than the median fastq base quality of the reads supporting the reference alele at the same position, making it likely that the variant is a false positive.

You need to read the VCF headers and any gatk documentation you can find (warning: these filters are not very well documented at all, in my experience), understand what the filters are and then decide what variants you consider real based on what you know about your sample, your experimental design and the question you are trying to answer.