The current GATK version is 3.7-0
Examples: Monday, today, last week, Mar 26, 3/26/04

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

You can opt in to receive email notifications, for example when your questions get answered or when there are new announcements, by following the instructions given here.

☞ Did you remember to?

1. Search using the upper-right search box, e.g. using the error message.
3. Include tool and Java versions.
4. Tell us whether you are following GATK Best Practices.
5. Include relevant details, e.g. platform, DNA- or RNA-Seq, WES (+capture kit) or WGS (PCR-free or PCR+), paired- or single-end, read length, expected average coverage, somatic data, etc.
6. For tool errors, include the error stacktrace as well as the exact command.
7. For format issues, include the result of running ValidateSamFile for BAMs or ValidateVariants for VCFs.
8. For weird results, include an illustrative example, e.g. attach IGV screenshots according to Article#5484.
9. For a seeming variant that is uncalled, include results of following Article#1235.

☞ Formatting tip!

Wrap blocks of code, error messages and BAM/VCF snippets--especially content with hashes (#)--with lines with three backticks (  ) each to make a code block as demonstrated here.

GATK 3.7 is here! Be sure to read the Version Highlights and optionally the full Release Notes.

ts_filter_level vs. tranche settings

Member Posts: 8
edited November 2012

Hi,

I'm having a little trouble understanding the relationship between the -ts_filter_level and -tranche settings for VQSR. If I'm not mistaken the defaults are 99 and [100,99.9,99.0,90] respectively. When I run VQSR with these defaults, my tranches are altered because of the 99 ts filter level. I get:

##FILTER=&lt;ID=LowQual,Description="Low quality"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.1838 &lt;= x &lt; 3.1102"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod &lt; -6135.0237"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6135.0237 &lt;= x &lt; -0.1838"&gt;


Is it odd that there are two tranches with the same ts values and different VQSLOD values? If I adjust the ts filter level to 90, I get what I originally expected to see:

##FILTER=&lt;ID=LowQual,Description="Low quality"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche90.00to99.00,Description="Truth sensitivity tranche level at VSQ Lod: 2.5901 &lt;= x &lt; 4.8133"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.692 &lt;= x &lt; 2.5901"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod &lt; -6.11002079587E7"&gt;


Is it just me, or does this seem to be an incompatibility between the defaults values? Which is more important, correct ts filtering or correct tranche intervals? We will at times filter based on these tranches, so I'd like to be setting them correctly. Thanks.

Ben

• Dev Posts: 122 ✭✭✭

Hi there,

This looks like two different runs of VariantRecalibrator to me since the tranche cutoffs from the input tranche file are changing between the two cases. This is the result from changing the ts_filter_level in the ApplyRecalibration command line using the same tranche file as input?

For the second case there should be a filter line in his VCF file that reads:
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6.11002079587E7 &lt;= x &lt; -0.692"&gt;
That line isn't found in your VCF file?

Thanks,

• Member Posts: 8

Thanks for the reply. It does appear that I copied the wrong lines, but I double checked these. The first is from ts_filter_level=90:

##FILTER=&lt;ID=TruthSensitivityTranche90.00to99.00,Description="Truth sensitivity tranche level at VSQ Lod: 2.5901 &lt;= x &lt; 4.8133"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.692 &lt;= x &lt; 2.5901"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod &lt; -6.11002079587E7"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6.11002079587E7 &lt;= x &lt; -0.692"&gt;


The second is from ts_filter_level=99:

##FILTER=&lt;ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -1.0292 &lt;= x &lt; 2.4669"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod &lt; -2.92600195914E7"&gt;
##FILTER=&lt;ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -2.92600195914E7 &lt;= x &lt; -1.0292"&gt;
`

Both used tranches [100, 99.9, 99.0, 90]. These runs did have different tranche files, but I guess that's not what I was as concerned about (they're not that far off, but I can rerun giving the same input files as well). Both tranche files contain 4 tranches. I was more curious why the default value of ts_filter_level cuts off the default number of tranches. Which is more important? Should the one override the other, or should I set ts_filter_value to 90 so that it doesn't cut off any tranches?

Thanks.

• Dev Posts: 122 ✭✭✭

The filter header lines only appear in the VCF file for the filters that are actually applied. When you cut the file at ts_filter_level 99 the variants in the 90 to 99 tranche are marked as PASS (not filtered out) so that filter line doesn't appear in the VCF header.

• Member Posts: 8

Hello rpoplin and bkelly, would you please kindly explain me the what value in ts_filter_level provide best results and why.