Add cwl and docker files
[lightning.git] / cwl / lightning / fasta2numpy-wf.cwl
1 # Copyright (C) The Lightning Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 $namespaces:
6   arv: "http://arvados.org/cwl#"
7 cwlVersion: v1.2
8 class: Workflow
9 requirements:
10   ScatterFeatureRequirement: {}
11   SubworkflowFeatureRequirement: {}
12   StepInputExpressionRequirement: {}
13   MultipleInputFeatureRequirement: {}
14
15 inputs:
16   tagset:
17     type: File
18   fastadirs:
19     type:
20       type: array
21       items: Directory
22   refdir:
23     type: Directory
24   batchsize:
25     type: int
26   regions:
27     type: File?
28   matchgenome:
29     type: string
30   threads:
31     type: int
32   mergeoutput:
33     type: string
34   expandregions:
35     type: int
36   phenotypesnofamilydir:
37     type: Directory
38   phenotypesdir:
39     type: Directory
40   trainingsetsize:
41     type: float
42   randomseed:
43     type: int
44   pcacomponents:
45     type: int
46   chrs: string[]
47   snpeffdatadir: Directory
48   genomeversion: string
49   dbsnp:
50     type: File
51     secondaryFiles: [.csi]
52   gnomaddir: Directory
53   readmeinfo: string[]
54
55 outputs:
56   stagednpydir:
57     type: Directory
58     outputSource: stage-output/stagednpydir
59   stagedonehotnpydir:
60     type: Directory
61     outputSource: stage-output/stagedonehotnpydir
62   stagedannotationdir:
63     type: Directory
64     outputSource: stage-output/stagedannotationdir
65   readme:
66     type: File
67     outputSource: genreadme/readme
68
69 steps:
70   batch-dirs:
71     run: batch-dirs.cwl
72     in:
73       dirs: fastadirs
74       batchsize: batchsize
75     out: [batches]
76
77   lightning-import_data:
78     run: lightning-import.cwl
79     scatter: fastadirs
80     in:
81       saveincomplete:
82         valueFrom: "false"
83       tagset: tagset
84       fastadirs: batch-dirs/batches
85     out: [lib]
86
87   lightning-import_refs:
88     run: lightning-import.cwl
89     in:
90       saveincomplete:
91         valueFrom: "true"
92       tagset: tagset
93       fastadirs: refdir
94     out: [lib]
95
96   lightning-slice:
97     run: lightning-slice.cwl
98     in:
99       datalibs: lightning-import_data/lib
100       reflib: lightning-import_refs/lib
101     out: [libdir]
102
103   lightning-tiling-stats:
104     run: lightning-tiling-stats.cwl
105     in:
106       libdir: lightning-slice/libdir
107     out: [bed]
108
109   lightning-choose-samples:
110     run: lightning-choose-samples.cwl
111     in:
112       matchgenome: matchgenome
113       libdir: lightning-slice/libdir
114       phenotypesdir: phenotypesnofamilydir
115       trainingsetsize: trainingsetsize
116       randomseed: randomseed
117     out: [samplescsv]
118
119   lightning-slice-numpy:
120     run: lightning-slice-numpy.cwl
121     in:
122       matchgenome: matchgenome
123       libdir: lightning-slice/libdir
124       regions: regions
125       threads: threads
126       mergeoutput: mergeoutput
127       expandregions: expandregions
128       samplescsv: lightning-choose-samples/samplescsv
129     out: [outdir, npys, chunktagoffsetcsv]
130
131   lightning-slice-numpy-onehot:
132     run: lightning-slice-numpy-onehot.cwl
133     in:
134       matchgenome: matchgenome
135       libdir: lightning-slice/libdir
136       regions: regions
137       threads: threads
138       mergeoutput: mergeoutput
139       expandregions: expandregions
140       samplescsv: lightning-choose-samples/samplescsv
141     out: [outdir, npys]
142
143   lightning-slice-numpy-pca:
144     run: lightning-slice-numpy-pca.cwl
145     in:
146       matchgenome: matchgenome
147       libdir: lightning-slice/libdir
148       regions: regions
149       threads: threads
150       mergeoutput: mergeoutput
151       expandregions: expandregions
152       samplescsv: lightning-choose-samples/samplescsv
153       pcacomponents: pcacomponents
154     out: [outdir, pcanpy, pcasamplescsv]
155
156   lightning-plot_1-2:
157     run: lightning-plot.cwl
158     in:
159       pcanpy: lightning-slice-numpy-pca/pcanpy
160       pcasamplescsv: lightning-slice-numpy-pca/pcasamplescsv
161       phenotypesdir: phenotypesdir
162       xcomponent:
163         valueFrom: "1"
164       ycomponent:
165         valueFrom: "2"
166     out: [png]
167
168   lightning-plot_2-3:
169     run: lightning-plot.cwl
170     in:
171       pcanpy: lightning-slice-numpy-pca/pcanpy
172       pcasamplescsv: lightning-slice-numpy-pca/pcasamplescsv
173       phenotypesdir: phenotypesdir
174       xcomponent:
175         valueFrom: "2"
176       ycomponent:
177         valueFrom: "3"
178     out: [png]
179
180   lightning-anno2vcf-onehot:
181     run: lightning-anno2vcf.cwl
182     in:
183       annodir: lightning-slice-numpy-onehot/outdir
184     out: [vcfdir]
185
186   make-libname:
187     run: make-libname.cwl
188     in:
189       matchgenome: matchgenome
190       genomeversion: genomeversion
191     out: [libname]
192
193   annotate-wf:
194     run: ../annotation/annotate-wf.cwl
195     in:
196       sample: make-libname/libname
197       chrs: chrs
198       vcfdir: lightning-anno2vcf-onehot/vcfdir
199       snpeffdatadir: snpeffdatadir
200       genomeversion: genomeversion
201       dbsnp: dbsnp
202       gnomaddir: gnomaddir
203     out: [annotatedvcf, summary]
204
205   stage-output:
206     run: stage-output.cwl
207     in:
208       libname: make-libname/libname
209       npyfiles:
210         source: [lightning-slice-numpy/npys, lightning-slice-numpy/chunktagoffsetcsv]
211         linkMerge: merge_flattened
212       onehotnpyfiles: lightning-slice-numpy-onehot/npys
213       pcapngs:
214         source: [lightning-plot_1-2/png, lightning-plot_2-3/png]
215         linkMerge: merge_flattened
216       bed: lightning-tiling-stats/bed
217       annotatedvcf: annotate-wf/annotatedvcf
218       summary: annotate-wf/summary
219     out: [stagednpydir, stagedonehotnpydir, stagedannotationdir]
220
221   genreadme:
222     run: genreadme.cwl
223     in:
224       samplescsv: lightning-choose-samples/samplescsv
225       readmeinfo: readmeinfo
226     out: [readme]