Bug Bulletin: we have identified a bug that affects indexing when producing gzipped VCFs. This will be fixed in the upcoming 3.2 release; in the meantime you need to reindex gzipped VCFs using Tabix.

ts_filter_level vs. tranche settings

bkellybkelly Posts: 2Member
edited November 2012 in Ask the 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: 118GSA Member 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: 118GSA Member 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: 5,293Administrator, GSA Member 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.