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!

Get notifications!

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.
2. Try the latest version of tools.
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.

Did we ask for a bug report?

Then follow instructions in Article#1894.

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.

Jump to another community
Picard 2.9.0 is now available. Download and read release notes 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

bkellybkelly Member Posts: 8
edited November 2012 in Ask the GATK team


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=<ID=LowQual,Description="Low quality">
##FILTER=<ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.1838 <= x < 3.1102">
##FILTER=<ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod < -6135.0237">
##FILTER=<ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6135.0237 <= x < -0.1838">

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=<ID=LowQual,Description="Low quality">
##FILTER=<ID=TruthSensitivityTranche90.00to99.00,Description="Truth sensitivity tranche level at VSQ Lod: 2.5901 <= x < 4.8133">
##FILTER=<ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.692 <= x < 2.5901">
##FILTER=<ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod < -6.11002079587E7">

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.




  • rpoplinrpoplin 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=<ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6.11002079587E7 <= x < -0.692">
    That line isn't found in your VCF file?


  • bkellybkelly 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=<ID=TruthSensitivityTranche90.00to99.00,Description="Truth sensitivity tranche level at VSQ Lod: 2.5901 <= x < 4.8133">
    ##FILTER=<ID=TruthSensitivityTranche99.00to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.692 <= x < 2.5901">
    ##FILTER=<ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod < -6.11002079587E7">
    ##FILTER=<ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6.11002079587E7 <= x < -0.692">

    The second is from ts_filter_level=99:

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

    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?


  • rpoplinrpoplin 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.

  • beezonebeezone 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.

  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie Posts: 11,727 admin

    There is no absolute best, it depends what balance you want to achieve between sensitivity and specificity.

    Geraldine Van der Auwera, PhD

Sign In or Register to comment.