11cwlVersion: v1.2
22class: Workflow
3+
4+ $namespaces:
5+ cwltool: "http://commonwl. org/cwltool#"
6+
37requirements :
48 StepInputExpressionRequirement: {}
59 ToolTimeLimit:
@@ -14,13 +18,15 @@ inputs:
1418 type : array
1519 items : [File, Directory]
1620 points: File
17- processes:
18- type : int
19- default : 3
21+ processes: int ?
22+ threshold: float ?
2023outputs :
21- annealing :
24+ output :
2225 type : File
23- outputSource : annealing/output
26+ outputSource : loop/output
27+ score:
28+ type : float
29+ outputSource : loop/score
2430steps :
2531 build-clustering:
2632 run : clt/build.cwl
@@ -29,23 +35,81 @@ steps:
2935 output_path:
3036 valueFrom : build/bin/clustering
3137 out : [output]
32- clustering:
33- run : clt/clustering.cwl
34- in :
35- clustering: build-clustering/output
36- points: points
37- processes: processes
38- out : [indices, output]
3938 build-annealing:
4039 run : clt/build.cwl
4140 in :
4241 src: annealing_src
4342 output_path:
4443 valueFrom : build/bin/simAnnSingle.out
4544 out : [output]
46- annealing :
47- run : clt/annealing .cwl
45+ build-silhouette :
46+ run : clt/build .cwl
4847 in :
49- annealing: build-annealing/output
50- qubo: clustering/output
48+ src: clustering_src
49+ output_path:
50+ valueFrom : build/bin/silhouette
5151 out : [output]
52+ loop:
53+ requirements :
54+ InlineJavascriptRequirement: {}
55+ cwltool:Loop:
56+ loopWhen: $(inputs.score < inputs.threshold)
57+ loop:
58+ score: score
59+ seed:
60+ valueFrom : $(inputs.seed + 1)
61+ outputMethod: last
62+ run :
63+ class: Workflow
64+ inputs :
65+ annealing_script: File
66+ clustering_script: File
67+ points: File
68+ processes:
69+ type : int
70+ default : 3
71+ seed: int
72+ silhouette_script: File
73+ outputs :
74+ output:
75+ type : File
76+ outputSource : annealing/output
77+ score:
78+ type : float
79+ outputSource : silhouette/output
80+ steps :
81+ clustering:
82+ run : clt/clustering.cwl
83+ in :
84+ clustering: clustering_script
85+ points: points
86+ processes: processes
87+ seed: seed
88+ out : [indices, output]
89+ annealing:
90+ run : clt/annealing.cwl
91+ in :
92+ annealing: annealing_script
93+ qubo: clustering/output
94+ out : [output]
95+ silhouette:
96+ run : clt/silhouette.cwl
97+ in :
98+ silhouette: silhouette_script
99+ points: points
100+ indices: clustering/indices
101+ annealing: annealing/output
102+ out : [output]
103+ in :
104+ annealing_script: build-annealing/output
105+ clustering_script: build-clustering/output
106+ points: points
107+ processes: processes
108+ seed:
109+ default : 0
110+ score:
111+ default : 0.0
112+ silhouette_script: build-silhouette/output
113+ threshold:
114+ default : 0.5
115+ out : [output, score]
0 commit comments