New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problems with Collection output created via structured_like from a data input with multiple=True #7392
Comments
I'm probably missing something here, but If you want collection in / collection out while needing access to all input elements you need to make the input a collection, I think. |
I agree that what you are saying is what is happening, that in my second case there is no 'real' collection. But it is not correct behavior. Abstractly, a list is a list. Additionally, IIRC, by best practice standards, tool inputs taking a list should use a standard data input with multiple=True, and not a collection=list input; this standard is predicated on treating each kind of 'list' equally. |
I think for reductions you should use data input and multiple="True", I disagree for the case when you need to keep the structure. There it should be a normal |
I am not convinced that the stated documentation is incorrect in the ideal behavior. I think if you select a list of datasets under multiple=True then it should behave the same as if you gave it collection=list containing datasets. In fact, this is exactly what happens, with the (imho incorrect) exception of the output creation.
I am not sure I see these differences here. When I put the interface into 'Data collection' mode (with multiple=True), it displays as Otherwise, the UX greatly suffers. I can already create a collection=list with a single dataset using the 'build list' tool, but that doesn't mean it is a good idea. But if it explicitly required a collection=list, we would force a user to manually create a collection=list in order to use a tool that just consumes a list of things and creates an equivalent output. I am not sure if I am missing something important here, as the behavior I expect seems really non-ambiguous. A list is a list when multiple=True. |
I have a tool with an input of type data and multiple=True:
I want to create an output collection in a 1:1 fashion against this input dataset list:
If I use the ui-tab to switch the input to 'Dataset collections' it almost works as expected. However, the metadata is not properly propagated before command line generation. The values for every item in the new collection are inherited from the first element of the input dataset 'list', where they should be copied from each parallel element. In the below tool example case
metadata.anvio_basename
is incorrect in the generated command-line. I could work-around this metadata issue by instead directly using the metadata of the actual input, but that is bad hack.When selecting 1+ datasets in the standard 'Multiple datasets' mode, it doesn't work at all, and instead complains that there is no input collection (there isn't, its just a 'list' of datasets). But this should work.
here is an example tool xml:
The text was updated successfully, but these errors were encountered: