To partially answer my own question an good example is:
bam merge
https://testtoolshed.g2.bx.psu.edu/repository?repository_id=aa54716b697c872f&changeset_revision=b874baf48b95

The key parts are:
    <command>
....
           #for $input in $inputs
....
   <inputs>
        <param name="inputs" type="data" format="bam,sam" multiple="True" label="Files to merge" />
...

One issue I still have is if there is information hidden in the input's name.
Is there some way of passing this to the tool?

Christian

From: galaxy-dev [galaxy-dev-bounces@lists.galaxyproject.org] on behalf of Christian Brenninkmeijer [christian.brenninkmeijer@manchester.ac.uk]
Sent: Monday, January 11, 2016 2:05 PM
To: galaxy-dev@lists.bx.psu.edu
Subject: [galaxy-dev] tools to reduce list of datasets.

Hi All,

Can someone point me to documentations/ examples of how to write a tool to reduce a a list of datasets back into a single dataset.

==

What I want to do is process multiple pairs of reads.

1. load all the fastq files.

2. create a list of pairs

3. Run tools of each pair in the list (As a seperate job for each pair)

4. Run a single tool over all the results of 3 at the same time! (One job which takes all the files/ whole collection) as input.

thanks in advance
Christian