Files
galaxy/test/functional/tools
John Chilton 46e83e178d Implement a cross product collection operation tools.
These are available in a list(n) x list (m) -> list(nxm) version (a cross product that produces two flat lists) and a list(n) x list(m) -> list(n):list(m) version (a cross product that produces two nested lists).

After two lists have been run through one of these two tools - the result is two new lists that can be passed into another tool to perform all-against-all operations using Galaxy's normal collection mapping semantics.

The choice of which to use will depend on how you want to continue to process the all-against-all results after the next step in an analysis. My sense is the flat version is "easier" to think about and pick through manually and the nested version perserves more structure if additional collection operation tools will be used to filter or aggregate the results.

Some considerations:

Apply Rules?

I do not believe the Apply Rules tool semanatics would allow these operations but certainly the Apply Rules tool could be used to convert the result of the flat version to the nested version or vice versa - so no metadata is really lost per se between the two versions. I think it is still worth including both versions though - they both have utility (both for instance are baked into CWL's workflow semantics - https://docs.sevenbridges.com/docs/about-parallelizing-tool-executions#nested-cross-product) and avoiding requiring complex Apply Rules programs for simple workflows is probably ideal.

One Tool vs Two?

Marius and I agree that few simpler tools for these kinds of operations are better. The tool help can be more focused and avoiding the conditional and conditional outputs make the static analysis done for instance by the workflow editor simpler.
2024-04-15 12:00:30 -04:00
..
2021-01-05 12:39:53 +00:00
2023-02-05 20:06:08 +01:00
2022-02-03 07:42:20 -05:00
2023-08-24 10:44:41 +02:00
2019-04-30 09:47:06 +02:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-12 13:45:45 +01:00
2021-01-05 12:39:53 +00:00
2022-03-22 18:56:49 +01:00
2022-04-21 11:15:07 +02:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-04-07 19:38:25 +02:00
2021-01-05 12:39:53 +00:00
2023-06-06 10:02:30 +02:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2022-07-15 10:49:12 +02:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2024-03-01 22:45:38 -05:00
2023-09-08 13:16:52 +02:00
2023-09-09 13:19:47 +02:00
2021-01-05 12:39:53 +00:00
2023-10-21 15:31:30 +02:00
2022-08-18 14:28:55 +02:00
2021-12-16 09:55:12 +01:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2024-02-08 21:14:07 +01:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00
2021-01-05 12:39:53 +00:00

This directory contains tools only useful for testing and
demonstrating aspects of the tool syntax. Run the test driver script
'run_tests.sh' with the '-framework' as first argument to run through
these tests. Pass in an '-id' along with one of these tool ids to test
a single tool.

Some API tests use these tools to test various features of the API,
tool, and workflow subsystems. Pass the argument
'-with_framework_test_tools' to 'run_tests.sh' in addition to '-api'
to ensure these tools get loaded during the testing process.

Finally, to play around with these tools interactively - simply
replace the 'galaxy.ini' option 'tool_config_file' with:

tool_config_file = test/functional/tools/sample_tool_conf.xml