Refering to genotype-level variables in VariantEval

yfarjounyfarjoun Broad InstituteDev Posts: 35
edited December 2012 in Ask the GATK team

While running VariantEval, I'm trying to stratify by a JexlExpression by setting using

-ST Sample -ST JexlExpression -select "GQ>20"

This fails with a "variable does not exist" error despite the GQ existing in all genotypes in the vcf. Looking at the code it seems that the pathway that loads the JexlExpression in the VariantEval class specifically does not provide the genotype as context (only the VariantContext) and thus, the context for the Jexl does not include GT and the error is produced.

My question is: Is this a feature or a bug? It seems possible to add the genotype (when the VC only has one, or loop over the genotypes and either OR or AND the results (perhaps another input similar to -isr?), but perhaps I'm missing something subtle?

Would you like this behavior or are you happy with the current operation of jexlExpression?


Post edited by yfarjoun on


  • mmterpstrammterpstra NetherlandsMember Posts: 41
    edited December 2013

    maybe you can specify for each "sample":
    -ST Sample -ST JexlExpression -select "vc.getGenotype('sample').hasAttribute('GQ') && vc.getGenotype('sample').getAttribute('GQ')"
    Although I did not test this myselfs and the vc.getGenotype('sample').hasAttribute('GQ') && " part is optional. this is a test for undefined values.

    Good luck!

    Post edited by mmterpstra on
Sign In or Register to comment.