Hello Peter,

Thanks for your answer.

I tried your come but I am still not able to make it work the way I want.
I mean that in the workflow design page, when I switch the parameter, it doesn't change the graphical list of outputs of the tool. How can I fix it? I want something like the Input, where it shows different outputs according to the selected parameter from the select.

Here is the XML code:


    <inputs>
        <param name="input_dataset" label="Input dataset (ShoweLab or FBK Format) to split" type="data" format="showelab-dataset,fbk-svm-dataset"/>
        <conditional name="format_condition">

            <param name="format_options" label="Choose the type of dataset you want to split" type="select">
                <option value="fbk">FBK Format</option>
                <option value="showelab" selected="True">ShoweLab Format</option>
            </param>
            <when value="fbk">
                <param name="input_fbk_dataset_labels" label="Input dataset labels (FBK Format) to split" type="data" format="fbk-labels"/>
            </when>
            <when value="showelab" />
        </conditional>
        <param name="split_perc" label="Percentage of Training Set among complete dataset" type="float" min="0.05" max="0.95" value="0.75"/>
    </inputs>
    <outputs>
        <data format="showelab-dataset" name="trainingDataset" label="Training Dataset extracted from ${input_dataset.name}">
            <filter>format_condition["format_options"] == "showelab"</filter>
        </data>
        <data format="showelab-dataset" name="validationDataset" label="Validation Dataset extracted from ${input_dataset.name}">
            <filter>format_condition["format_options"] == "showelab"</filter>
        </data>
        <data format="fbk-svm-dataset" name="trainingDataset" label="Training Dataset extracted from ${input_dataset.name}">
            <filter>format_condition["format_options"]  == "fbk"</filter>
        </data>
        <data format="fbk-labels" name="trainingLabels" label="Training Dataset Labels extracted from ${input_fbk_dataset_labels.name}">
            <filter>format_condition["format_options"]  == "fbk"</filter>
        </data>
        <data format="fbk-svm-dataset" name="validationDataset" label="Validation Dataset extracted from ${input_dataset.name}">
            <filter>format_condition["format_options"]  == "fbk"</filter>
        </data>
        <data format="fbk-labels" name="validationLabels" label="Validation Dataset Labels extracted from ${input_fbk_dataset_labels.name}">
            <filter>format_condition["format_options"]  == "fbk"</filter>
        </data>
    </outputs>





On Wed, Jul 16, 2014 at 6:54 PM, Peter Cock <p.j.a.cock@googlemail.com> wrote:
On Wed, Jul 16, 2014 at 5:28 PM, Calogero Zarbo <zarbo@fbk.eu> wrote:
> Hello to everybody
>
> I'm developing my own tool that need to switch the numbers of output files
> according to a parameter selected by the user from a list in the <inputs>
> tag.
> How can I do such thing?
>
> Here is the XML code:
>     <inputs>
>         <param name="input_dataset" label="Input dataset" type="data"
> format="showelab-dataset,fbk-svm-dataset"/>
>         <conditional name="format_condition">
>
>             <param name="format_options" label="Choose the type of dataset
> you want to split" type="select">
>                 <option value="fbk">".fbk-svm-dataset" Format</option>
>                 <option value="showelab" selected="True">".showelab-dataset"
> Format</option>
>             </param>
>             <when value="fbk">
>                 <param name="input_fbk_dataset_labels" label="Input dataset
> labels" type="data" format="fbk-labels"/>
>             </when>
>         </conditional>
>
>     </inputs>
>     <outputs>
>         <data format="showelab-dataset" name="trainingDataset"
> label="Training Dataset extracted from ${input_dataset.name}">
>             <filter>format_options == "showelab"</filter>
>         </data>
>         <data format="showelab-dataset" name="validationDataset"
> label="Validation Dataset extracted from ${input_dataset.name}">
>             <filter>format_options == "showelab"</filter>
>         </data>
>         <data format="fbk-svm-dataset" name="trainingDataset"
> label="Training Dataset extracted from ${input_dataset.name}">
>             <filter>format_options == "fbk"</filter>
>         </data>
>         <data format="fbk-labels" name="trainingLabels" label="Training
> Dataset Labels extracted from ${input_fbk_dataset_labels.name}">
>             <filter>format_options == "fbk"</filter>
>         </data>
>         <data format="fbk-svm-dataset" name="validationDataset"
> label="Validation Dataset extracted from ${input_dataset.name}">
>             <filter>format_options == "fbk"</filter>
>         </data>
>         <data format="fbk-labels" name="validationLabels" label="Validation
> Dataset Labels extracted from ${input_fbk_dataset_labels.name}">
>             <filter>format_options == "fbk"</filter>
>         </data>
>
>     </outputs>
>
>
> Basically I would like to have in the Workflow Canvas that the outputs
> displayed in the interface will change according to the format_options
> select parameter.
>
> Thanks in advance.

Hi Calogero,

I think this tool of mine would serve as a working example:
https://github.com/peterjc/pico_galaxy/tree/master/tools/seq_filter_by_id

Peter



--
Calogero Zarbo


FBK - Fondazione Bruno Kessler
Center for Information Technology

Mpba - Predictive Models for Biomedicine & Environment 
Via Sommarive, 18- 38123 Povo (Trento) IT

e-mail:
zarbo@fbk.eu
phone: +39 0461 314 674