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-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 new file mode 100644 index 0000000..333551d --- /dev/null +++ b/wholet-nested.wdl @@ -0,0 +1,46 @@ +# 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 + } + + output { + Dog out = who + } +} + +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 diff --git a/wholet.json b/wholet.json new file mode 100644 index 0000000..5328414 --- /dev/null +++ b/wholet.json @@ -0,0 +1,3 @@ +{ + "wholet.files": ["data/permit.md", "data/permit.md"], +} diff --git a/wholet.wdl b/wholet.wdl new file mode 100644 index 0000000..06e613c --- /dev/null +++ b/wholet.wdl @@ -0,0 +1,44 @@ +version 1.0 + +struct Dog { + String breed + Float age_years + File permit +} + +task out { + input { + Dog who + } + command <<< + echo "I can see a ~{who.breed} that is ~{who.age_years} years old" + cat ~{who.permit} + >>> + + runtime { + docker: "ubuntu:latest" + preemptible: 1 + } + + output { + Dog out = who + } +} + +workflow wholet { + input { + 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