Skip to content

Commit b50fa8c

Browse files
authored
Merge pull request #8 from aofarrel/order-enforcement
Order enforcement via whiskertail
2 parents 1d68315 + 458cf30 commit b50fa8c

File tree

3 files changed

+62
-4
lines changed

3 files changed

+62
-4
lines changed

README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,24 @@ Mouse-sized WDL tasks for your workflows. 🐁
33

44
Please add your suggestions to the Issues tab and flag them as enhancement.
55

6-
## arraycheck_simple
6+
## task-level
7+
8+
### arraycheck_simple
79
For performing a check between an array of truth files and an array of test files. It is assumed that the filenames between the truth and test files match. All md5 mismatches are reported, unless `fastfail == true` in which case the pipeline will fail immediately.
810

9-
## arraycheck_rdata
11+
### arraycheck_rdata
1012
Similar to arraycheck_exact, but upon md5 mismatch, an Rscript is run to check for functional equivalence via `all.equal(testfile, truthfile, tolerance)`. It is assumed that both checked files are RData files. The user may set the tolerance value, which defaults to 1.0e-8.
1113

12-
## enumouse
14+
### enumouse
1315
Type `enum` exists in CWL, but not WDL. This task very roughly mimics the `enum` type by checking if a string is within an allowed set of values.
1416

15-
## metamouse
17+
### filechecker
18+
Checks if two files are equivalent, as opposed to arraycheck_* iterating through two arrays. Includes the same Rdata equivalence checker of arraycheck_rdata (disabled by default).
19+
20+
## workflow-level
21+
22+
### metamouse
1623
Checker/Debugger for Stuart tasks. The test files are derived from the [WDL translation](https://github.com/DataBiosphere/analysis_pipeline_WDL) of the [UWGAC TOPMed Pipeline](https://github.com/UW-GAC/analysis_pipeline).
24+
25+
### whiskertail
26+
Template for enforcing order in a WDL workspace. This could be useful if you want a workflow to fail early, rather than waste time/money on other steps.

whiskertail.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"whiskertail.bogus": "Some backends require an input JSON, so we have one that does nothing."
3+
}

whiskertail.wdl

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
version 1.0
2+
3+
task simpletask {
4+
input {
5+
String echome
6+
}
7+
8+
command <<<
9+
echo "${echome}"
10+
>>>
11+
12+
output {
13+
String out = "The next task may now begin!"
14+
}
15+
}
16+
17+
workflow whiskertail {
18+
input {
19+
String bogus = "This doesn't ever get used, but an input is required for some backends."
20+
}
21+
22+
if(back_paws.out != "") {
23+
call simpletask as tail {
24+
input:
25+
echome = "I run last!"
26+
}
27+
}
28+
29+
call simpletask as front_paws {
30+
input:
31+
echome = whisker.out
32+
}
33+
34+
call simpletask as whisker {
35+
input:
36+
echome = "I run first!"
37+
}
38+
39+
if(front_paws.out != "") {
40+
call simpletask as back_paws {
41+
input:
42+
echome = "I am the penultimate task!"
43+
}
44+
}
45+
}

0 commit comments

Comments
 (0)