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!

Get notifications!

You can opt in to receive email notifications, for example when your questions get answered or when there are new announcements, by following the instructions given here.

Did you remember to?

1. Search using the upper-right search box, e.g. using the error message.
2. Try the latest version of tools.
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.

Did we ask for a bug report?

Then follow instructions in Article#1894.

Formatting tip!

Wrap blocks of code, error messages and BAM/VCF snippets--especially content with hashes (#)--with lines with three backticks ( ``` ) each to make a code block as demonstrated here.

Jump to another community
Picard 2.9.0 is now available. Download and read release notes here.
GATK 3.7 is here! Be sure to read the Version Highlights and optionally the full Release Notes.

Using Picard FilterSamReads with Java filters

johnmajohnma Member Posts: 47

I'm planning to use Picard FilterSamReads with FILTER=includeJavascript for some of my bamouts with --emitDroppedReads, and, to be frank, I still have no idea as for how that Javascript works. For example, if I use a script like this to identify reads that are not dropped by the caller:

function filterEmittedDroppedReads (record) {
    var ft = record.getAttribute("FT");
    if (ft==null) {
        return true;
    }else {
        return false;

Yet FilterSamReads reports 0 reads passed the filter. I'm quite sure there's something wrong in my Javascript, but what can it be?


Issue · Github
by Sheila

Issue Number
Last Updated
Closed By


  • Geraldine_VdAuweraGeraldine_VdAuwera Cambridge, MAMember, Administrator, Broadie Posts: 11,651 admin

    Hi @johnma, I haven't used the JS expressions myself yet, so I'm not super familiar with the syntax. I think @lindenb is the one who added this functionality, perhaps he can help you. To aid in the process, could you show a test example of reads that you expect to pass the filter?

    Geraldine Van der Auwera, PhD

  • lindenblindenb FranceMember Posts: 54 ✭✭
    edited November 2016

    the javascript filter expects a boolean at the end. Here your code is just a function. You "just" have to call the function:

    function filterEmittedDroppedReads (record) {
        var ft = record.getAttribute("FT");
        if (ft==null) {
            return true;
        }else {
            return false;

    or, shorter:


    of course, if no SAM record has the FT flag, the output will be empty.

Sign In or Register to comment.