JEXL stands for Java EXpression Language. It's not a part of the
GATK as such; it's a software library that can be used by Java-
based programs like the GATK. It can be used for many things,
but in the context of the GATK, it has one very specific use:
making it possible to operate on subsets of variants from VCF
files based on one or more annotations, using a single command.
This is typically done with walkers such as VariantFiltration
and SelectVariants. In this context, a JEXL expression is a
string (in the computing sense, i.e. a series of characters)
that tells the GATK which annotations to look at and what
selection rules to apply. JEXL expressions contain three basic
components: keys and values, connected by operators. For
example, in this simple JEXL expression which selects variants
whose quality score is greater than 30: "QUAL > 30.0" QUALis a
key: the name of the annotation we want to look at 30.0is a
value: the threshold that we want to use to evaluate variant
quality against >is an operator: it de