TheRoddyWMS / Roddy

The Roddy workflow development and management system.
http://roddy-documentation.readthedocs.io
MIT License
8 stars 3 forks source link

Investigate: Connecting jobs in DSL #241

Open vinjana opened 6 years ago

vinjana commented 6 years ago

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 """

"""
}
vinjana commented 5 years ago

Related to #228