This is a test version of Biostars. For the public version, visit https://www.biostars.org.
CWL multidimensional arrays or arrays of tuples

Does CWL support multidimensional arrays? Is there a way to specify a list of paired fastq files? I am specifying them as two arrays of files, one for read1 and another for reaad2. This is awkward and I haven't figured out how to do crossproducts using them.

I have an input that is a list of tuples, and another input and ideally I want to do a crossproduct scatter

A: [(a1_1, a1_2), (a2_1, a2_2),]
B: [b1, b2]

should result in steps with these inputs:

 (a1_1, a1_2), b1
 (a1_1, a1_2), b2
 (a2_1, a2_2), b1
 (a2_1, a2_2), b2

Thank you,

Manisha

cwl

1 answer

Yes, you can do that. Please check http://www.commonwl.org/v1.0/Workflow.html#ScatterMethod

In your case, you define the tool to have input A as array of files and B as file. This step should receive array of arrays on input A and array of files on B. If you simply define scatter as

scatter:
  - A
  - B
scatterMethod: nested_crossproduct

you will get the steps like you defined above.

Log in to answer this question.