Commit Graph
13336 Commits
Author SHA1 Message Date
John Chilton 42a26f4ece Re-update documentation for fixes in a44bea8. 2014-05-07 11:49:59 -05:00
John Chilton 44a0c0deea Merge pull request #383. 2014-05-07 11:43:03 -05:00
John Chilton 6a4c14e6d2 Simpler, more powerful subcollection mapping.
Collections can be mapped over 'data' parameters and sufficiently nested collections can be mapped over 'data_collection' parameters (for instance a list of 5 pairs can be supplied to a tool taking in a pair and 5 jobs will be executed). I (perhaps poorly) term these concepts collection mapping and subcollection mapping.

Prior to this changeset - the API for doing collection 'mapping' and 'subcollection mapping' was somewhat more divergent and the tool execution code explicitly forbid doing both kinds of mappings in the same tool execution even if the effective collections could be matched (e.g. it could not map a 'data' parameter over a list of 5 datasets and a pair parameter a list of 5 pairs in the same execution).

This changeset should remedy this - as long as the effective collection mappings can match up such jobs should be possible. The workflow editor (and I think runner) already thought this was possible, so this changeset reduces the tool-workflow impedance mismatch - an existing problem exacerbated by recent dataset collections introduction.

This all needs much more testing - test workflows execute this way, functional test of a tool execution that combines collection mapping and subcollection mapping, etc....
2014-05-07 11:29:51 -05:00
Dannon Baker 8a2a495781 Merge. 2014-05-07 11:49:14 -04:00
Dannon Baker ef09b7c4ba Merge stable. 2014-05-07 11:48:11 -04:00
Martin Cech e053743ca7 pep8 fixes 2014-05-07 11:47:28 -04:00
Dannon Baker 6fd4dba541 Force an absolute path for the temp directory in the local runner 2014-05-07 09:45:53 -04:00
Dannon Baker 2432115abb Force an absolute path for the temp directory in the local runner 2014-05-07 09:45:53 -04:00
Greg Von Kuster 96f2e27f0b Fix type introduced in renaming the InstallManager to the ToolMigrationManager - thanks Nicola Soranzo. 2014-05-07 06:42:28 -04:00
Nicola Soranzo a25ca10747 Workflow API: Add documentation for dataset_collection_ids param. 2014-05-07 11:39:06 +02:00
Nicola Soranzo 6712289cfe Merged galaxy/galaxy-central into default 2014-05-07 11:32:54 +02:00
John Chilton e70417d02f Expose use_remote_user via configuration API.
Attempting to improve automated testing... marginally.
2014-05-07 01:19:09 -05:00
John Chilton 1359c4a780 Improve API test skipping when required tools are absent.
Replace ad-hoc tools API test method for skipping tests with a more general purpose decorator. Use new decorator to specify required tools for workflow tests.
2014-05-07 00:24:00 -05:00
John Chilton 2df5cfe008 Bugfix: Track collection_type when extracting collection inputs from histories.
Add functional test to verify the correctness of this tracking.

TODO: refactor __skip_unless_tool from tools test so this new workflow test can be skipped if not run with -with_framework_test_tools.
2014-05-06 16:08:30 -05:00
John Chilton 8227e4754c Bugfix: galaxy.workflow.extract expects hids - API was consuming encoded ids.
API now properly expects hids. That was unfortunate - need to figure out why the existing functional test did not break because of this and improve it.
2014-05-06 16:08:30 -05:00
John Chilton e0ee48c7bd Fix bug in test/api/test_tools.py. 2014-05-06 13:52:49 -05:00
John Chilton 3cdf45e847 Move dataset colleciton test populator. 2014-05-06 13:52:49 -05:00
John Chilton deda734e0a Fix location of test_dataset_collections.py.
Didn't rebase properly.
2014-05-06 13:52:49 -05:00
John Chilton 60824d91b3 More refactoring away from mixins and toward 'data populators' in API tests. 2014-05-06 13:52:49 -05:00
Nicola Soranzo 352be91bdf Merged galaxy/galaxy-central into default 2014-05-06 19:15:26 +02:00
Greg Von Kuster 027866458e Import fix in ~/tool_shed/galaxy_install/migrate/common.py - thanks Nicola Soranzo 2014-05-06 12:00:54 -04:00
John Chilton 1d88cb2cee Merged in jmchilton/galaxy-central-fork-1 (pull request #379)
Disable select2 for all multi-select inputs.
2014-05-06 10:08:39 -05:00
Greg Von Kuster d818047609 Change the name of the current InstallManager to the more appropriate ToolMigrationManager since it handles only tool migrations. This allows for the InstallManager to be used for more general Tool Shed install processes. 2014-05-06 10:34:28 -04:00
John Chilton 4c6ad01070 Dataset collections - fix to ensure element ids from API are always encoded. 2014-05-06 08:54:31 -05:00
John Chilton a8d5d60da6 Rework encode_all_ids in BaseController so it can be used outside of controllers.
Moved into SecurityHelper. Also fixed up style, elminated unconditional exception handling, and added unit tests.
2014-05-06 08:54:31 -05:00
John Chilton 704446ea24 Dataset collections - tools API returns implicitly created collections.
Use improvements to write better functional tests, ensure element identifiers preserved.
2014-05-06 08:54:31 -05:00
John Chilton fa7d906333 Dataset collections - update workflow editor for collection inputs, mapping, and reduction.
This commit enables the workflow editor to deal with input collection data parameter types and inputs (easy) and much more complicatedly reason about mappings and reductions over inputs and collection inputs. Not sure I can really describe the new interface in a changeset - essentially it is more complicated to determine if a input can be connected to by an output - and that connection affects what are valid other inputs and what the outputs are.
2014-05-06 08:54:31 -05:00
John Chilton 437967959a Add helper destroyInvalidConnections to Terminal.
Used in current workflow and reused in different context in collection code.
2014-05-06 08:54:31 -05:00
John Chilton cbb5a33f93 Dataset collections - backbone view for history content. 2014-05-06 08:54:31 -05:00
John Chilton beec8d981d More reworking of backbone views to allow multiple content types. 2014-05-06 08:54:31 -05:00
John Chilton e6e10e46d8 Dataset collections - backbone model for history content. 2014-05-06 08:54:31 -05:00
John Chilton 3b8bbd0aae Dataset collections - create lists and pairs via HDA multi-select. 2014-05-06 08:54:31 -05:00
John Chilton 20be257f22 Dataset collections - workflows - allow nested subcollection mapping during execution. 2014-05-06 08:54:31 -05:00
John Chilton b5d9ea3311 Dataset collections - augment workflow extraction for copied/imported dataset collections. 2014-05-06 08:54:31 -05:00
John Chilton 4a6ba32625 Dataset collections - workflows - argument extraction for implicit mapping steps.
Second try at this.... I am not saying this good, but it is better than me previous attempt.
2014-05-06 08:54:31 -05:00
John Chilton 485dc3813c Dataset collections - hide HDAs behind implicitly mapped HDCAs. 2014-05-06 08:54:31 -05:00
John Chilton c836d35fc9 Dataset collections - abstraction for collection types.
Perhaps over-engineering but want to centralize logic for reasoning about what kinds of collections are subcollections of other types, etc....
2014-05-06 08:54:31 -05:00
John Chilton e1ca45a79f Dataset collections - workflows - implicit "reduce" steps. 2014-05-06 08:54:30 -05:00
John Chilton 84994539a1 Dataset collections - workflows - allow implicit mapping steps.
While running a workflow, if a data tool parameter is encountered with a dataset collection as input - run N jobs and create a dataset collection for each of the outputs (similar functionality added for tools in previous changeset). These collections are then used in subsequent steps while connecting steps so the parallelization continues as does the creation of dataset collections.

Much and more remains to be done and tested - chief among these concerns I think is that in order to test this I needed to hand modify a workflow json file. The ability to use this feature should be encorporated into the editor and the interface/controller for extracting a workflow from a history.
2014-05-06 08:54:30 -05:00
John Chilton 11a0ebd452 Dataset collections - workflows - allow data_collection params.
Extend workflow running, extraction, viewing to allow tools with data_collection parameters.

This is brutally ugly because "isinstance( input, DataToolParameter )" which was already not very Pythonic has been updated to be "isinstance( input, DataToolParameter ) or isinstance( input, DataCollectionToolParameter )". This should all be reworked with an "is_data_parameter" on base ToolParameter.
2014-05-06 08:54:30 -05:00
John Chilton 8bc2c74b20 Refactor workflow module to allow multiple kinds of inputs. 2014-05-06 08:54:30 -05:00
John Chilton 7d14e29091 Dataset collections - allow mapping collection params over subcollections. 2014-05-06 08:54:30 -05:00
John Chilton 5410d476e8 Dataset collections - "reduce" with existing tools.
Allow users to select dataset collections in place of individual datasets for data tool parameters with multiple="true" enabled (if all elements of collection would be valid as input to this parameter).

Restrict collection reductions to flat collections. If a user wanted to reduce a nested collection they probably want to map of the subcollections reducing each and building a collection of the reductions. TODO: The sentence is probably unintelligiable, need to provide a concrete example.

A functional test demonstrating these reductions in included.
2014-05-06 08:54:30 -05:00
John Chilton cf206e1692 Dataset collections - implicit "map" creates collections.
When running normal tools with normal data inputs across dataset collections in parallel - a collection will be created for each output with a "structure" matching that of the input (for instance pairs will create pairs, lists will create lists with the same identifiers, etc...). A previous changeset added the ability to run the tool in parallel - this changeset extends that functionality to create analogous collections from these parallel runs.

For example, if one filters a pair of FASTQ files a pair is created out of the result. Likewise, if one filters a list of FASTQ files - a list collection with same cardinality is built from the results.

There is a lot left TODO here - for one a lot of this logic should be moved into the dataset_collection module. The matching needs to be exact right now - not a problem for pairs (every 'element' has name 'left' or 'right') but for lists with element names - these have to match exactly - but a 'list' like samp1_l, samp2_l, samp3_l should be able to match against samp1_r, samp2_r, samp3_r and create a new list samp1, samp2, and samp3. Even if there is no matching prefixes a new 'unlabeled' list should be able to be created.
2014-05-06 08:54:30 -05:00
John Chilton 2ac0dd11e1 Dataset collections - "map" with existing tools (UI).
Add UI components needed for previous commit.
2014-05-06 08:54:30 -05:00
John Chilton 8168334297 Dataset collections - "map" with existing tools (backend).
Allow replacing data parameter inputs with collections - this will cause the tool to produce multiple jobs for the submission - one for each combination of input parameters after being matched up (linked). In addition to various unit tests, functional tests demonstrate the API usage in `test/functional/api/test_tools.py`.
2014-05-06 08:54:30 -05:00
John Chilton 1591266336 Add tool meta parameter exception. 2014-05-06 08:54:30 -05:00
John Chilton 9a6cfbcbc7 Rework dataset collection parameter to use switching field (like data parameter).
Will allow interesting map/reduce junk over nested collections downstream.
2014-05-06 08:54:30 -05:00
John Chilton 74c645ba8c Allow running tools on multiple datasets simulatenously (UI).
Update tool form. This commit needs work to ensure this only affects the tool_form.mako.
2014-05-06 08:54:30 -05:00
John Chilton ace6b8e11f Improvements to test_execution.py 2014-05-06 08:54:30 -05:00