Hi all,

I am trying to figure out the meaning of the XML within the <outputs>...</outputs> portion of the bowtie_wrapper.xml file.  The tool config syntax page doesn't really explain the details that well.  Can someone point me to somewhere, or just explain, what is going on?  For example, here is the outputs part of that file:

  <outputs>
    <data format="sam" name="output" label="${tool.name} on ${on_string}: mapped reads">
      <actions>
        <conditional name="refGenomeSource.genomeSource">
          <when value="indexed">
            <action type="metadata" name="dbkey">
              <option type="from_data_table" name="bowtie_indexes" column="1" offset="0">
                <filter type="param_value" column="0" value="#" compare="startswith" keep="False"/>
                <filter type="param_value" ref="refGenomeSource.index" column="0"/>
              </option>
            </action>
          </when>
          <when value="history">
            <action type="metadata" name="dbkey">
              <option type="from_param" name="refGenomeSource.ownFile" param_attribute="dbkey" />
            </action>
          </when>
        </conditional>
      </actions>
    </data>
    <data format="fastq" name="output_suppressed_reads_l" label="${tool.name} on ${on_string}: suppressed reads (L)">
      <filter>((
          singlePaired['sPaired'] == "single" and
          singlePaired['sParams']['sSettingsType'] == "full" and
          singlePaired['sParams']['sMaxFile'] is True
        ) or (
          singlePaired['sPaired'] == "paired" and
          singlePaired['pParams']['pSettingsType'] == "full" and
          singlePaired['pParams']['pMaxFile'] is True
        ))
      </filter>
      <actions>
        <conditional name="singlePaired.sPaired">
          <when value="single">
            <action type="format">
              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
            </action>
          </when>
          <when value="paired">
            <action type="format">
              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
            </action>
          </when>
        </conditional>
      </actions>
    </data>
    <data format="fastq" name="output_suppressed_reads_r" label="${tool.name} on ${on_string}: suppressed reads (R)">
      <filter>singlePaired['sPaired'] == "paired"</filter>
      <filter>singlePaired['pParams']['pSettingsType'] == "full"</filter>
      <filter>singlePaired['pParams']['pMaxFile'] is True</filter>
      <actions>
        <conditional name="singlePaired.sPaired">
          <when value="single">
            <action type="format">
              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
            </action>
          </when>
          <when value="paired">
            <action type="format">
              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
            </action>
          </when>
        </conditional>
      </actions>
    </data>
   <data format="fastq" name="output_unmapped_reads_l" label="${tool.name} on ${on_string}: unmapped reads (L)">
      <filter>
        ((
          singlePaired['sPaired'] == "single" and
          singlePaired['sParams']['sSettingsType'] == "full" and
          singlePaired['sParams']['sUnmappedFile'] is True
        ) or (
          singlePaired['sPaired'] == "paired" and
          singlePaired['pParams']['pSettingsType'] == "full" and
          singlePaired['pParams']['pUnmappedFile'] is True
        ))
      </filter>
      <actions>
        <conditional name="singlePaired.sPaired">
          <when value="single">
            <action type="format">
              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
            </action>
          </when>
          <when value="paired">
            <action type="format">
              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
            </action>
          </when>
        </conditional>
      </actions>
    </data>
   <data format="fastq" name="output_unmapped_reads_r" label="${tool.name} on ${on_string}: unmapped reads (R)">
      <filter>singlePaired['sPaired'] == "paired"</filter>
      <filter>singlePaired['pParams']['pSettingsType'] == "full"</filter>
      <filter>singlePaired['pParams']['pUnmappedFile'] is True</filter>
      <actions>
        <conditional name="singlePaired.sPaired">
          <when value="single">
            <action type="format">
              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
            </action>
          </when>
          <when value="paired">
            <action type="format">
              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
            </action>
          </when>
        </conditional>
      </actions>
    </data>
  </outputs>



It seems like each output has conditionals, some of which are setting DB keys, but with others I can't tell what is going on.  For example, I can't find anything about a "type" or "name" or "param_attribute" value that you can set within the <option> tag, for example.  Anybody know what those mean?  Also, still can't really figure out what values are possible to set for the <action> tag.  Any help would highly appreciated.  Thanks!

- Nik.