From e302c09128e91a39acb19958a69d5a45847bb57d Mon Sep 17 00:00:00 2001 From: aofarrel Date: Fri, 23 Sep 2022 13:26:17 -0700 Subject: [PATCH 1/7] simple example of scattering on a struct --- wholet.wdl | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 wholet.wdl diff --git a/wholet.wdl b/wholet.wdl new file mode 100644 index 0000000..7fde569 --- /dev/null +++ b/wholet.wdl @@ -0,0 +1,30 @@ +version 1.0 + +struct Dog { + String breed + Float age_years +} + +task out { + input { + Dog who + } + command <<< + echo "I can see a ~{who.breed} that is ~{who.age_years} years old" + >>> +} + +workflow wholet { + + Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5} + Dog gremlin = {"breed": "kind of weird terrier", "age_years": 0.3} + + Array[Dog] thedogs = [pompey, gremlin] + + scatter(dog in thedogs) { + call out { + input: + who = dog + } + } +} \ No newline at end of file From c2f4d46a06b11e6cface3ddd62b1534532f18f5b Mon Sep 17 00:00:00 2001 From: aofarrel Date: Fri, 23 Sep 2022 13:41:02 -0700 Subject: [PATCH 2/7] Add a scattered array --- data/permit.md | 3 +++ wholet.json | 4 ++++ wholet.wdl | 15 +++++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 data/permit.md create mode 100644 wholet.json diff --git a/data/permit.md b/data/permit.md new file mode 100644 index 0000000..b267014 --- /dev/null +++ b/data/permit.md @@ -0,0 +1,3 @@ +# Official Permit + +I can do what I want. \ No newline at end of file diff --git a/wholet.json b/wholet.json new file mode 100644 index 0000000..cfda54f --- /dev/null +++ b/wholet.json @@ -0,0 +1,4 @@ +{ + "pompey_permit": "data/permit.md", + "gremlin_permit": "data/permit.md" +} \ No newline at end of file diff --git a/wholet.wdl b/wholet.wdl index 7fde569..4fb8a9f 100644 --- a/wholet.wdl +++ b/wholet.wdl @@ -3,6 +3,7 @@ version 1.0 struct Dog { String breed Float age_years + File permit } task out { @@ -11,13 +12,23 @@ task out { } command <<< echo "I can see a ~{who.breed} that is ~{who.age_years} years old" + cat ~{who.permit} >>> + + runtime { + docker: "ubuntu:latest" + preemptible: 1 + } } workflow wholet { + input { + File pompey_permit + File gremlin_permit + } - Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5} - Dog gremlin = {"breed": "kind of weird terrier", "age_years": 0.3} + Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5, "permit": pompey_permit} + Dog gremlin = {"breed": "kind of weird terrier", "age_years": 0.3, "permit": gremlin_permit} Array[Dog] thedogs = [pompey, gremlin] From 1597ad7aed54f53619443a7c887cf07e61ce8a8f Mon Sep 17 00:00:00 2001 From: aofarrel Date: Fri, 23 Sep 2022 14:07:58 -0700 Subject: [PATCH 3/7] Input as array (passes on terra) --- wholet.json | 3 +-- wholet.wdl | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/wholet.json b/wholet.json index cfda54f..e7dbf3a 100644 --- a/wholet.json +++ b/wholet.json @@ -1,4 +1,3 @@ { - "pompey_permit": "data/permit.md", - "gremlin_permit": "data/permit.md" + "files": ["data/permit.md", "data/permit.md"] } \ No newline at end of file diff --git a/wholet.wdl b/wholet.wdl index 4fb8a9f..957756b 100644 --- a/wholet.wdl +++ b/wholet.wdl @@ -23,12 +23,11 @@ task out { workflow wholet { input { - File pompey_permit - File gremlin_permit + Array[File] files } - Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5, "permit": pompey_permit} - Dog gremlin = {"breed": "kind of weird terrier", "age_years": 0.3, "permit": gremlin_permit} + Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5, "permit": files[0]} + Dog gremlin = {"breed": "kind of weird terrier", "age_years": 0.3, "permit": files[1]} Array[Dog] thedogs = [pompey, gremlin] From 0d65c80ce3b1100ebe417eb85ddd058b9a255c32 Mon Sep 17 00:00:00 2001 From: aofarrel Date: Fri, 23 Sep 2022 14:13:22 -0700 Subject: [PATCH 4/7] nested array test (fails) --- wholet.json | 2 +- wholet.wdl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wholet.json b/wholet.json index e7dbf3a..24301e3 100644 --- a/wholet.json +++ b/wholet.json @@ -1,3 +1,3 @@ { - "files": ["data/permit.md", "data/permit.md"] + "wholet.files": [["data/permit.md", "data/permit.md"],["data/permit.md", "data/permit.md"]] } \ No newline at end of file diff --git a/wholet.wdl b/wholet.wdl index 957756b..24d8754 100644 --- a/wholet.wdl +++ b/wholet.wdl @@ -3,7 +3,7 @@ version 1.0 struct Dog { String breed Float age_years - File permit + Array[File] permit } task out { @@ -12,7 +12,7 @@ task out { } command <<< echo "I can see a ~{who.breed} that is ~{who.age_years} years old" - cat ~{who.permit} + cat ~{sep='' who.permit} >>> runtime { @@ -23,7 +23,7 @@ task out { workflow wholet { input { - Array[File] files + Array[Array[File]] files } Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5, "permit": files[0]} From 0d8f9b920d48f38c309c7350100aa9cf199b4a65 Mon Sep 17 00:00:00 2001 From: aofarrel Date: Mon, 26 Sep 2022 12:05:37 -0700 Subject: [PATCH 5/7] Create wholet-nested.wdl --- wholet-nested.wdl | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 wholet-nested.wdl diff --git a/wholet-nested.wdl b/wholet-nested.wdl new file mode 100644 index 0000000..f63aa5d --- /dev/null +++ b/wholet-nested.wdl @@ -0,0 +1,42 @@ +# This is not a valid WDL. I'm not quite sure why. Compare to the functional wholet.wdl + +version 1.0 + +struct Dog { + String breed + Float age_years + Array[File] permit +} + +task out { + input { + Dog who + } + command <<< + echo "I can see a ~{who.breed} that is ~{who.age_years} years old" + cat ~{sep='' who.permit} + >>> + + runtime { + docker: "ubuntu:latest" + preemptible: 1 + } +} + +workflow wholet { + input { + Array[Array[File]] files + } + + Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5, "permit": files[0]} + Dog gremlin = {"breed": "kind of weird terrier", "age_years": 0.3, "permit": files[1]} + + Array[Dog] thedogs = [pompey, gremlin] + + scatter(dog in thedogs) { + call out { + input: + who = dog + } + } +} \ No newline at end of file From 06f84a2e00d5a83d49ecea69b89057910f4d7f0d Mon Sep 17 00:00:00 2001 From: aofarrel Date: Mon, 26 Sep 2022 12:05:42 -0700 Subject: [PATCH 6/7] Revert "nested array test (fails)" This reverts commit 0d65c80ce3b1100ebe417eb85ddd058b9a255c32. --- wholet.json | 2 +- wholet.wdl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wholet.json b/wholet.json index 24301e3..e7dbf3a 100644 --- a/wholet.json +++ b/wholet.json @@ -1,3 +1,3 @@ { - "wholet.files": [["data/permit.md", "data/permit.md"],["data/permit.md", "data/permit.md"]] + "files": ["data/permit.md", "data/permit.md"] } \ No newline at end of file diff --git a/wholet.wdl b/wholet.wdl index 24d8754..957756b 100644 --- a/wholet.wdl +++ b/wholet.wdl @@ -3,7 +3,7 @@ version 1.0 struct Dog { String breed Float age_years - Array[File] permit + File permit } task out { @@ -12,7 +12,7 @@ task out { } command <<< echo "I can see a ~{who.breed} that is ~{who.age_years} years old" - cat ~{sep='' who.permit} + cat ~{who.permit} >>> runtime { @@ -23,7 +23,7 @@ task out { workflow wholet { input { - Array[Array[File]] files + Array[File] files } Dog pompey = {"breed": "King Charles Cavalier Spaniel", "age_years": 4.5, "permit": files[0]} From 6b46b4063ae8e2d5d0a38c09bf75b4f5a97bac00 Mon Sep 17 00:00:00 2001 From: aofarrel Date: Thu, 27 Oct 2022 10:19:21 -0700 Subject: [PATCH 7/7] Clearer testing --- wholet-nested.json | 3 +++ wholet-nested.wdl | 4 ++++ wholet.json | 4 ++-- wholet.wdl | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 wholet-nested.json diff --git a/wholet-nested.json b/wholet-nested.json new file mode 100644 index 0000000..400005e --- /dev/null +++ b/wholet-nested.json @@ -0,0 +1,3 @@ +{ + "wholet.files": [["data/permit.md"], ["data/permit.md"]], +} diff --git a/wholet-nested.wdl b/wholet-nested.wdl index f63aa5d..333551d 100644 --- a/wholet-nested.wdl +++ b/wholet-nested.wdl @@ -21,6 +21,10 @@ task out { docker: "ubuntu:latest" preemptible: 1 } + + output { + Dog out = who + } } workflow wholet { diff --git a/wholet.json b/wholet.json index e7dbf3a..5328414 100644 --- a/wholet.json +++ b/wholet.json @@ -1,3 +1,3 @@ { - "files": ["data/permit.md", "data/permit.md"] -} \ No newline at end of file + "wholet.files": ["data/permit.md", "data/permit.md"], +} diff --git a/wholet.wdl b/wholet.wdl index 957756b..06e613c 100644 --- a/wholet.wdl +++ b/wholet.wdl @@ -19,6 +19,10 @@ task out { docker: "ubuntu:latest" preemptible: 1 } + + output { + Dog out = who + } } workflow wholet {