8 Boolean? createMd5File = false
13 Int? memoryMb = javaXmxMb + 512
14 # One minute per input gigabyte.
15 Int? timeMinutes = 1 + ceil(size(inputBam, "G") * 1)
16 String? dockerImage = "quay.io/biocontainers/picard:2.23.8--0"
18 Array[String] FilterScriptContents = [
19 'function accept(rec) {'
20 ' if (rec.getReadUnmappedFlag()) return false;'
21 ' var cigar = rec.getCigar();'
22 ' if (cigar == null) return false;'
24 ' for (var i=0;i < cigar.numCigarElements();++i) {'
25 ' var ce = cigar.getCigarElement(i);'
26 ' if (ce.getOperator().name() == "M") readMatch += ce.length;'
28 ' if (readMatch > 200) return true;'
35 mkdir -p "$(dirname ~{outputBamPath})"
36 JAVA_OPTS="-Xmx~{javaXmxMb}M -XX:ParallelGCThreads=1" picard \
38 INPUT=~{sep=' INPUT=' inputBam} \
39 OUTPUT=~{outputBamPath} \
40 ~{"COMPRESSION_LEVEL=" + compressionLevel} \
41 JAVASCRIPT_FILE=${write_lines(FilterScriptContents)} \
42 FILTER=includeJavascript \
44 CREATE_MD5_FILE=~{true="true" false="false" createMd5File}
48 File outputBam = outputBamPath
49 File outputBamIndex = sub(outputBamPath, "\.bam$", ".bai")
50 File? outputBamMd5 = outputBamPath + ".md5"
54 memory: "~{memoryMb}M"
55 time_minutes: timeMinutes