Ok, Great.  I think I have part of this figured out.  I have a conditional input as specified:

    <conditional name="input_type">
      <param name="input_type_selector" type="select" label="Select input type" help="Select between single and paired fastq data">
        <option value="single">Single-End</option>
        <option value="paired">Paired-End</option>
        <option value="paired_collection">Paired Collection</option>
      </param>
      <when value="single">
        <param name="fastq_input1" type="data" format="fastq" label="Select fastq dataset" multiple="true" help="Specify dataset with single end reads" />
      </when>
      <when value="paired">
        <param name="fastq_input1" type="data" format="fastq" label="Select fastq dataset" help="Specify dataset with paired-end reads" />
        <param name="fastq_input2" type="data" format="fastq" label="Select fastq dataset" help="Specify dataset with paired-end reads" />
      </when>
      <when value="paired_collection">
        <param name="fastq_collection" type="data_collection" collection_type="list:paired" label="Select a paired collection" help="See help section for an explanation of dataset collections"/>
      </when>
    </conditional>


In my <command> section, I want to test how this is passed to the tool, so I have:

  <command>

    #if str( $input_type.input_type_selector ) == "single":

      echo "Input Type: Single"
      echo "Input File: $input_type.fastq_input1"

    #elif str( $input_type.input_type_selector ) == "paired":

      echo "Input Type: Paired"
      echo "FastQ1: $input_type.fastq_input1\nFastQ2: $input_type.fastq_input2"

    #elif str( $input_type.input_type_selector ) == "paired_collection":

      print "Input Type: Collection\n"
      #for $element in $input_type.$fastq_collection:

        echo "FastQ1: $element.fastq_input1"

      #end for

    #end if

  </command>

The "single" and "paired" works as expected, however I can select multiple input for "paired" which I don't want to allow.  A user should only be able to select a single pair of fastq files.  To select multiple pairs, I have "paired_collection".

The second problem is in the command section, I'm trying to iterated through the pair of inputs, however my echo statement is causing a Cheetah error.  I tried different incarnations of it as well.  My latest (and what I thought correct) is shown above.  It generates the error:
Traceback (most recent call last):
  File "/apps/sys/galaxy/galaxy-v15.05-staging/lib/galaxy/jobs/runners/__init__.py", line 163, in prepare_job
    job_wrapper.prepare()
  File "/apps/sys/galaxy/galaxy-v15.05-staging/lib/galaxy/jobs/__init__.py", line 858, in prepare
    self.command_line, self.extra_filenames = tool_evaluator.build()
  File "/apps/sys/galaxy/galaxy-v15.05-staging/lib/galaxy/tools/evaluation.py", line 411, in build
    self.__build_command_line( )
  File "/apps/sys/galaxy/galaxy-v15.05-staging/lib/galaxy/tools/evaluation.py", line 427, in __build_command_line
    command_line = fill_template( command, context=param_dict )
  File "/apps/sys/galaxy/galaxy-v15.05-staging/lib/galaxy/util/template.py", line 9, in fill_template
    return str( Template( source=template_text, searchList=[context] ) )
  File "/apps/sys/galaxy/galaxy-v15.05-staging/eggs/Cheetah-2.2.2-py2.7-linux-x86_64-ucs2.egg/Cheetah/Template.py", line 1004, in __str__
    return getattr(self, mainMethName)()
  File "cheetah_DynamicallyCompiledCheetahTemplate_1434732603_97_56713.py", line 107, in respond
AttributeError: 'dict' object has no attribute 'VFFSL'


How do I iterate through the fastq inputs when they are passed as a list:paired?


On Fri, Jun 19, 2015 at 11:31 AM, John Chilton <jmchilton@gmail.com> wrote:
The option in the GUI for selecting multiple datasets for a single
data parameter - causes multiple jobs to be created as you noted. If
you just place multiple="true" on your data input parameter  - that
button will go away and all the datasets will be used for a single
job.

If your tool consumes pairs of datasets - you will want to expose an
option where you are using a parameter like:

<input name="input_pairs" type="data_collection"
collection_type="list:paired" format="fastq" />

and then your users will have to use the data collection creator to
pair off the datasets into a big list before using your tool - but the
creator is actually really nice - I think it makes it very easy to
build large lists of pairs.

Hope this helps - happy to provide more details,
-John

On Fri, Jun 19, 2015 at 11:24 AM, Ryan G <ngsbioinformatics@gmail.com> wrote:
> Hi all - I have a tool which is essentially an entire NGS pipeline bundled
> into a perl script and associated modules.  I'd like to offer this tool to
> users via Galaxy.
>
> I'm trying to pass a bunch of fastq files to the tool, but noticed that
> operating on multiple datasets creates a separate job for each dataset.  I
> want to pass all the datasets to the tool so only one galaxy job is actually
> created.  Is this possible, and if so, how do I go about doing this?
>
> Ryan
>
>
> ___________________________________________________________
> Please keep all replies on the list by using "reply all"
> in your mail client.  To manage your subscriptions to this
> and other Galaxy lists, please use the interface at:
>   https://lists.galaxyproject.org/
>
> To search Galaxy mailing lists use the unified search at:
>   http://galaxyproject.org/search/mailinglists/