We could implement different ways how tasks/jobs can be connected:
// Reference file names that can be reused in different infile/outfile declarations:
refA = file("/a/b/c")
fileX = file("S3:/a/b/c")
explicit { // Can this block be omitted? Can we just write this at the top-level?
// specification via
(outfile1, outfile2) = toolB(infiles(refA, fileX))
// or, if the outfiles are not defined in a toolB block?
(outfile1, outfile2) = toolB(infiles(refA, fileX), outfiles(outfile1, outfile2))
}
toolA1 {
infile: refA
output: "nameA", file("/a/b") // static file
output: "nameB", group("/a/b*/") // globs
output: "nameC", regex("/a/(id:\w+).fastq") // regular expressions
shell """
"""
}
toolB1 {
input: explicit // take the input from the explicit block
output: explicit // this probably won't work with a
}
toolC {
params
shell """
"""
}
We could implement different ways how tasks/jobs can be connected: