Merge branch '19785-add-cwl' into main
[lightning.git] / cwl / annotation / getfiles.cwl
1 # Copyright (C) The Lightning Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 cwlVersion: v1.1
6 class: ExpressionTool
7 requirements:
8   InlineJavascriptRequirement: {}
9 hints:
10   LoadListingRequirement:
11     loadListing: shallow_listing
12 inputs:
13   sample: string
14   chrs: string[]
15   vcfdir: Directory
16   gnomaddir: Directory
17 outputs:
18   samples: string[]
19   vcfs: File[]
20   gnomads:
21     type: File[]
22     secondaryFiles: [.csi]
23 expression: |
24   ${
25     var samples = [];
26     var vcfs = [];
27     var gnomads = [];
28
29     for (var i = 0; i < inputs.chrs.length; i++) {
30       var chr = inputs.chrs[i];
31       var sample = inputs.sample+"."+chr;
32       for (var j = 0; j < inputs.vcfdir.listing.length; j++) {
33         var file = inputs.vcfdir.listing[j];
34         if (file.basename.includes("."+chr+".")) {
35           var vcf = file;
36           break;
37         }
38       }
39       for (var j = 0; j < inputs.gnomaddir.listing.length; j++) {
40         var file = inputs.gnomaddir.listing[j];
41         if (file.basename.includes("."+chr+".")) {
42           var gnomad = file;
43           break;
44         }
45       }
46       for (var j = 0; j < inputs.gnomaddir.listing.length; j++) {
47         var file = inputs.gnomaddir.listing[j];
48         if (file.basename == gnomad.basename+".csi") {
49           gnomad.secondaryFiles = [file];
50           break;
51         }
52       }
53       samples.push(sample);
54       vcfs.push(vcf);
55       gnomads.push(gnomad);
56     }
57
58     return {"samples": samples, "vcfs": vcfs, "gnomads": gnomads};
59   }