--- /dev/null
+#!/usr/bin/env cwl-runner
+cwlVersion: draft-3
+class: CommandLineTool
+
+hints:
+ - class: DockerRequirement
+ dockerPull: biodckr/bwa
+requirements:
+ - class: InlineJavascriptRequirement
+
+baseCommand: [bwa, mem]
+
+arguments:
+ - {prefix: "-t", valueFrom: $(runtime.cores)}
+ - {prefix: "-R", valueFrom: "@RG\tID:$(inputs.group_id)\tPL:$(inputs.PL)\tSM:$(inputs.sample_id)"}
+
+inputs:
+ - id: reference
+ type: File
+ inputBinding:
+ position: 1
+ valueFrom: $(self.path.match(/(.*)\.[^.]+$/)[1])
+ secondaryFiles:
+ - ^.ann
+ - ^.amb
+ - ^.pac
+ - ^.sa
+ description: The index files produced by `bwa index`
+ - id: read_p1
+ type: File
+ inputBinding:
+ position: 2
+ description: The reads, in fastq format.
+ - id: read_p2
+ type: ["null", File]
+ inputBinding:
+ position: 3
+ description: For mate paired reads, the second file (optional).
+ - id: group_id
+ type: string
+ - id: sample_id
+ type: string
+ - id: PL
+ type: string
+
+stdout: $(inputs.read_p1.path.match(/\/([^/]+)\.[^/.]+$/)[1] + ".sam")
+
+outputs:
+ - id: aligned_sam
+ type: File
+ outputBinding:
+ glob: $(inputs.read_p1.path.match(/\/([^/]+)\.[^/.]+$/)[1] + ".sam")