{"push_id":631392146,"size":1,"distinct_size":1,"ref":"refs/heads/read_groups","head":"52d0cc78dd7769a4167a3462cb0a8ac795b99526","before":"248ce223a5580456334a243babd09edea9eeb0e3","commits":[{"sha":"52d0cc78dd7769a4167a3462cb0a8ac795b99526","author":{"email":"e361bfc8c8526c02f5efd3e71aa466615402f28f@gmail.com","name":"John Chilton"},"message":"Unify and collectionify read group handling. [WIP]\n\nThe reusable macro file has:\n\n - Defines widgets for common read group parameters.\n - Widgets can be used at top-level (e.g. picard AddOrReplaceReadGroups where handling is required) of inputs or within a conditional (e.g. in the mappers).\n - The conditional (used by mappers) has fours modes:\n    - Set according the specification (only ID required - has all parameters). Current BWA approach.\n    - Set Picard-style (presumably useful for broad pipelines?) (ID, SM, LB, PU, PL all required - no params for ks, pg, or fo). In terms of what is shown and what is required - mirrors AddOrReplaceReadGroups.\n    - Just assign the ID and do so automatically (based either on collection or standalone dataset information). No extra form is shown to users.\n    - Do not set read groups.\n - Utilities for conditionally including parameters and formatting them (eliminates many explicit conditionals in the mappers for instance).\n - An example \"mapper\" test tool which demonstrates optionally including read groups.\n - An example read group assign test tool which demonstrates unconditionally specifying macros.\n\nIn addition to unifying everything, the macro file defines enhanced ID, SM, and LB parameter inputs that are wrapped in a conditional. That conditional allows manual input but also allows the user to just say Galaxy should use collection information or dataset name (if input is not in a collection) to assign these parameters. This should simplify things and make simple workflows more robust, but is absolutely essential for collection-based workflows and newer tool form options that allow running a tool in parallel over many inputs.\n\nThis make look at first glance like it is really complicated - but if you focus just on the mappers for instance and treat the macro file like a library - the client interface is actually a good deal easier than doing this stuff by hand for each tool.\n\nI have tests for the macro file, but I haven't tested the tools I update yet. So this is definitely still a work in progress and shouldn't be merged yet, but I did want to pause and give people a chance to complain if they have problems conceptually with the approach.","distinct":true,"url":"https://api.github.com/repos/jmchilton/tools-devteam/commits/52d0cc78dd7769a4167a3462cb0a8ac795b99526"}]}