+cwlVersion: v1.1
+class: CommandLineTool
+label: Gathering vcf using Picard
+$namespaces:
+ arv: "http://arvados.org/cwl#"
+ cwltool: "http://commonwl.org/cwltool#"
+
+requirements:
+ DockerRequirement:
+ dockerPull: broadinstitute/gatk:4.1.7.0
+ ShellCommandRequirement: {}
+ InlineJavascriptRequirement: {}
+
+hints:
+ ResourceRequirement:
+ ramMin: 20000
+ coresMin: 4
+ arv:RuntimeConstraints:
+ outputDirType: keep_output_dir
+
+inputs:
+ gvcfarray:
+ type: File[]
+ sample: string
+ reference:
+ type: File
+ secondaryFiles:
+ - .amb
+ - .ann
+ - .bwt
+ - .pac
+ - .sa
+ - .fai
+ - ^.dict
+outputs:
+ gatheredgvcf:
+ type: File
+ secondaryFiles:
+ - .tbi
+ outputBinding:
+ glob: "*.g.vcf.gz"
+
+baseCommand: /gatk/gatk
+
+arguments:
+ - "--java-options"
+ - "-Xmx8G"
+ - MergeVcfs
+ - shellQuote: false
+ valueFrom: |
+ ${function compare(a, b) {
+ var baseA = a.basename;
+ var baseB = b.basename;
+
+ var comparison = 0;
+ if (baseA > baseB) {
+ comparison = 1;
+ } else if (baseA < baseB) {
+ comparison = -1;
+ }
+ return comparison;
+ }
+
+ var sortedarray = [];
+ sortedarray = inputs.gvcfarray.sort(compare)
+
+ var samples = [];
+ for (var i = 0; i < sortedarray.length; i++) {
+ var name = sortedarray[i];
+ if (name.nameext ==='.gz' ) {
+ samples.push(name.path);
+ }
+ }
+
+ var sampleinput = "";
+
+ for (var i = 0; i < samples.length; i++) {
+ var s1 = samples[i];
+ sampleinput = sampleinput + "-I " + s1 + " "
+ }
+
+ return sampleinput;
+ }
+ - prefix: "-O"
+ valueFrom: $(inputs.sample).g.vcf.gz