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!

#### ☞ 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!

Surround blocks of code, error messages and BAM/VCF snippets--especially content with hashes (#)--with lines with three backticks (  ) each to make a code block.
GATK 3.7 is here! Be sure to read the Version Highlights and optionally the full Release Notes.

# Filtering on allele balance by sample using jexl

Member Posts: 43

Hello,

I would like to filter my variants using the SelectVariants walker but it throws an error when I try to filter on allele balance by sample. The jexl expression I use is:

vc.getGenotype("sample").getAB()>=0.25

error is:
unknown, ambiguous or inaccessible method getAB

Is there any way of filtering on this parameter?

Best wishes,

Kath

Tagged:

• Member Posts: 43

Hmm, but I can select variants based on other annotations in the genotype field eg. PL, and DP.

• Member, Dev Posts: 544 ✭✭✭✭

The issue here is that you're directly accessing the Genotype object that the data are stored in, and calling Java methods on that object. Several are predefined, like getPL(), getDP(), getAD(), etc. But there is no getAB(). It's possible the getExtendedAttribute() method will do what you want - I think your JEXL will look like: vc.getGenotype("sample").getExtendedAttribute("AB") > 0.25

There may be some issues with type conversion here, and I don't know how to force a type in JEXL. If that doesn't work for you, try vc.getGenotype("sample").getAttributeAsDouble("AB", 0.0) > 0.25` - this method is marked Deprecated, but I think it will force the conversion for you. The extra 0.0 is a default value in case the annotation doesn't exist

Sorry, I responded much too shortly. I meant to say that, for most genotype annotations there are no built-in functions to select on them, apart from the few that are special-cased as @pdexheimer correctly pointed out, but we are looking to add built-ins for all the annotations available through GATK.

The proposed JEXL may work (if yes, please post so here to let other users know) but ultimately we want to make it easier for people to manipulate variants without having to resort to this.

Geraldine Van der Auwera, PhD