Class JavascriptSamRecordFilter
java.lang.Object
htsjdk.samtools.filter.AbstractJavascriptFilter<SAMFileHeader, SAMRecord>
htsjdk.samtools.filter.JavascriptSamRecordFilter
- All Implemented Interfaces:
SamRecordFilter
public class JavascriptSamRecordFilter
extends AbstractJavascriptFilter<SAMFileHeader, SAMRecord>
implements SamRecordFilter
JavaScript-based
SamRecordFilter.
The user-supplied script is evaluated against each SAMRecord with the following
variables in scope:
record- theSAMRecordbeing evaluatedheader- theSAMFileHeaderassociated with the reader
Example: keep only records with mapping quality >= 30:
new JavascriptSamRecordFilter("record.getMappingQuality() >= 30;", 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.
-
Field Summary
Fields inherited from class AbstractJavascriptFilter
bindings, DEFAULT_HEADER_KEY -
Constructor Summary
ConstructorsConstructorDescriptionJavascriptSamRecordFilter(File scriptFile, SAMFileHeader header) constructor using a javascript FileJavascriptSamRecordFilter(Reader scriptReader, SAMFileHeader header) constructor using a java.io.ReaderJavascriptSamRecordFilter(String scriptExpression, SAMFileHeader header) constructor using a javascript expression -
Method Summary
Methods inherited from class AbstractJavascriptFilter
accept, getHeaderKey
-
Constructor Details
-
JavascriptSamRecordFilter
constructor using a javascript File- Parameters:
scriptFile- the javascript file to be compiledheader- the SAMHeader- Throws:
IOException
-
JavascriptSamRecordFilter
constructor using a javascript expression- Parameters:
scriptExpression- the javascript expression to be compiledheader- the SAMHeader
-
JavascriptSamRecordFilter
constructor using a java.io.Reader- Parameters:
scriptReader- the javascript reader to be compiled. will be closedheader- the SAMHeader
-
-
Method Details
-
filterOut
return true of both records are filteredOut (AND)- Specified by:
filterOutin interfaceSamRecordFilter- Parameters:
first- the first SAMRecord to evaluatesecond- the second SAMRecord to evaluate- Returns:
- true if the pair of records matches filter, otherwise false
-
filterOut
read is filtered out if the javascript program returns false- Specified by:
filterOutin interfaceSamRecordFilter- Parameters:
record- the SAMRecord to evaluate- Returns:
- true if the SAMRecord matches the filter, otherwise false
-
getRecordKey
Description copied from class:AbstractJavascriptFilterreturns key used for record binding- Specified by:
getRecordKeyin classAbstractJavascriptFilter<SAMFileHeader, SAMRecord>
-