Class JavascriptVariantFilter

java.lang.Object
htsjdk.samtools.filter.AbstractJavascriptFilter<VCFHeader, VariantContext>
htsjdk.variant.variantcontext.filter.JavascriptVariantFilter
All Implemented Interfaces:
VariantContextFilter, Predicate<VariantContext>

public class JavascriptVariantFilter extends AbstractJavascriptFilter<VCFHeader, VariantContext> implements VariantContextFilter
JavaScript-based VariantContextFilter.

The user-supplied script is evaluated against each VariantContext with the following variables in scope:

Example: keep only variants on chromosome 1:

    new JavascriptVariantFilter("variant.getContig() == '1';", header)

Runtime requirement: as of htsjdk 5.0.0, htsjdk does not ship a JavaScript engine as a runtime dependency. To use this class, add a JSR-223-compatible JavaScript engine (e.g. org.openjdk.nashorn:nashorn-core) to your runtime classpath. If no engine is available, the constructor throws a RuntimeScriptException whose message lists the dependency coordinates.

  • Constructor Details

    • JavascriptVariantFilter

      public JavascriptVariantFilter(File scriptFile, VCFHeader header) throws IOException
      constructor using a javascript File
      Parameters:
      scriptFile - the javascript file to be compiled
      header - the SAMHeader
      Throws:
      IOException
    • JavascriptVariantFilter

      public JavascriptVariantFilter(Reader scriptReader, VCFHeader header) throws IOException
      constructor using a Reader
      Parameters:
      scriptReader - the reader for the script to be compiled. Will be closed
      header - the SAMHeader
      Throws:
      IOException
    • JavascriptVariantFilter

      public JavascriptVariantFilter(String scriptExpression, VCFHeader header)
      constructor using a javascript expression
      Parameters:
      scriptExpression - the javascript expression to be compiled
      header - the SAMHeader
  • Method Details