DockerRequirement:
dockerPull: broadinstitute/gatk:4.1.7.0
ShellCommandRequirement: {}
- InitialWorkDirRequirement:
- listing:
- - $(inputs.gvcf1)
- - $(inputs.gvcf2)
+ InlineJavascriptRequirement: {}
hints:
ResourceRequirement:
outputDirType: keep_output_dir
inputs:
- gvcf1:
- type: File
- gvcf2:
- type: File
+ gvcfdir:
+ type: Directory
+ label: Input directory of gvcfs
+ loadListing: 'shallow_listing'
sample: string
reference:
type: File
outputs:
gatheredgvcf:
type: File
+ secondaryFiles:
+ - .tbi
outputBinding:
glob: "*.g.vcf.gz"
arguments:
- "--java-options"
- "-Xmx8G"
- - GatherVcfs
- - "-I"
- - $(inputs.gvcf1.basename)
- - "-I"
- - $(inputs.gvcf2.basename)
+ - 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 samples = [];
+ for (var i = 0; i < inputs.gvcfdir.listing.length; i++) {
+ var name = inputs.gvcfdir.listing[i];
+ if (name.nameext ==='.gz' ) {
+ samples.push(name.path);
+ }
+ }
+ samples = samples.sort(compare);
+ 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