I have a tool which consumes a CSV input where each line is an ID and a label, eg.
My tool then uses the ID to pull some data from somewhere else, analyse it and label the output with the corresponding string. I want the user to be able to specify a variable number of rows where I would expect the maximum to be around 10. Basically I'm looking for advice about how to specify this in CWL.
I was planning to use dependent record types for each row:
so I would need a record that has an int and a string, something like this:
dependent_parameters: type: type: record name: sample_label_pairs fields: id: type: int label: type: string
except I need this to be an array of these records, so the user can specify N of them.
And then I thought I would turn it into a file as suggested here:
My tool also expects this file to be consumed at the command line with an @ prefix, in the same way that curl consumes data files.
So I guess I have a few questions:
- Does this sound like a sensible approach?
- How do I specify an array of records as an input? Is it as simple as record?
- How do I add an @ prefix to a command line argument? I guess if I use inputBinding: prefix: I'll get a space between the @ and the file?