<p>You haven't told us what commands you ran, so I am assuming you first ran <code>Mutect2</code> and then <code>FilterMutectCalls</code>. If so, the <code>FilterMutectCalls</code> 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.</p>
<p>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.</p>
<p>For instance, the <code>germline</code> flag means:</p>
<pre><code>##FILTER=&lt;ID=germline,Description=&quot;Evidence indicates this site is germline, not somatic&quot;&gt;
</code></pre>
<p>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.</p>
<p>Another clear case is the <code>base_qual</code> filter which means:</p>
<pre><code>##FILTER=&lt;ID=base_qual,Description=&quot;alt median base quality&quot;&gt;
</code></pre>
<p>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.</p>
<p>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 <em>you</em> consider real based on what you know about your sample, your experimental design and the question you are trying to answer.</p>

CC BY-SA 4.0
2022-09-21T16:16:44.783Z
How did you get to the explanation of `base_qual` from just the "alt median base quality"? I'd like to explain each filter in simple English like you've done for `base_qual` above and there seems to be very little proper documentation.
Ram RS
CC BY-SA 4.0
2022-09-21T16:21:12.153Z
@RamRS yes, extremely little. I got this one from parsing  "alt median base quality" as "median base quality in the reads supporting the alternative allele" and it has also been borne out by manual testing. Unfortunately, there is almost no documentation available at all for these things.
terdon
CC BY-SA 4.0
2022-02-05T13:17:35.727Z
2022-02-05T13:33:33.677Z
2022-02-05T13:33:33.677Z
terdon
<p>I have called SNVs with Mutect2, now in filter column of a file called filtered vcf I have a lot of things like</p>
<pre><code>&gt; length(unique(filtered.vcf$FILTER)) [1] 409 &gt; 

&gt; unique(filtered.vcf $FILTER)
  [1] &quot;germline&quot;                                                                             
  [2] &quot;PASS&quot;                                                                                 
  [3] &quot;clustered_events&quot;                                                                     
  [4] &quot;clustered_events;panel_of_normals&quot;                                                    
  [5] &quot;weak_evidence&quot;                                                                        
  [6] &quot;haplotype&quot;                                                                            
  [7] &quot;base_qual;haplotype&quot;                                                                  
  [8] &quot;clustered_events;germline;haplotype&quot;                                                  
  [9] &quot;base_qual;clustered_events;germline;haplotype&quot;                                        
 [10] &quot;clustered_events;haplotype&quot;                                                           
 [11] &quot;clustered_events;haplotype;weak_evidence&quot;                                             
 [12] &quot;base_qual;clustered_events;haplotype&quot;                                                 
 [13] &quot;haplotype;map_qual&quot;                                                                   
 [14] &quot;germline;panel_of_normals&quot;                                                            
 [15] &quot;base_qual&quot;                                                                            
 [16] &quot;germline;haplotype&quot;                                                                   
 [17] &quot;germline;panel_of_normals;position&quot;                                                   
 [18] &quot;clustered_events;orientation&quot;                                                         
 [19] &quot;clustered_events;orientation;strand_bias&quot;                                             
 [20] &quot;base_qual;haplotype;map_qual&quot;                                                         
 [21] &quot;clustered_events;fragment;haplotype&quot;                                                  
 [22] &quot;base_qual;clustered_events&quot;                                                           
 [23] &quot;germline;haplotype;panel_of_normals&quot;                                                  
 [24] &quot;clustered_events;germline;haplotype;panel_of_normals&quot;                                 
 [25] &quot;fragment&quot;                                                                             
 [26] &quot;clustered_events;haplotype;map_qual&quot;                                                  
 [27] &quot;clustered_events;germline&quot;                                                            
 [28] &quot;clustered_events;germline;panel_of_normals&quot;                                           
 [29] &quot;germline;weak_evidence&quot;                                                               
 [30] &quot;orientation&quot;       
</code></pre>
<p>    
I tought that the <code>filtered.vcf</code> Mutect2 output file contain only the filtered events, but the values I see suggest otherwise. How should I understand the output?</p>

<vcf><filtering><snv><wes><point-mutation>
What are values of FILTER column of vcf files produced by Mutect2
# What are values of FILTER column of vcf files produced by Mutect2

(Asked by: username_0 on 2022-02-03)

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?

**Tags:** vcf, filtering, snv, wes, point-mutation

---

## 1 answers

### Answer by username_1 on 2022-02-05. Score: 5 | Accepted answer

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=

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=

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.

> **Comments:**
> **username_2**: How did you get to the explanation of `base_qual` from just the "alt median base quality"? I'd like to explain each filter in simple English like you've done for `base_qual` above and there seems to be very little proper documentation.  
> **username_1**: @RamRS yes, extremely little. I got this one from parsing  "alt median base quality" as "median base quality in the reads supporting the alternative allele" and it has also been borne out by manual testing. Unfortunately, there is almost no documentation available at all for these things.  

---

