Bug Bulletin: The GenomeLocPArser error in SplitNCigarReads has been fixed; if you encounter it, use the latest nightly build.

ts_filter_level vs. tranche settings

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

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=<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.

Ben

Post edited by bkelly on
Tagged:

Answers

  • rpoplinrpoplin Posts: 122GATK Developer mod

    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?

    Thanks,

  • bkellybkelly Posts: 2Member

    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?

    Thanks.

  • rpoplinrpoplin Posts: 122GATK Developer mod

    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 Posts: 8Member

    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 Posts: 6,418Administrator, GATK Developer 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.