Helop aI've been testing (using planemo) some tools scheduled for toolshed publication. My first test works, but Galaxy reports that the second one fails with:
"Parameter %s requires a value, but has no legal values defined" % self.name
AssertionError: Parameter filter_column requires a value, but has no legal values defined
requests.packages.urllib3.connectionpool: DEBUG: "POST /api/tools HTTP/1.1" 500 None
I presume its because of extra stuff needed to name variables have to be referred-to when they are inside a repeat section? Or is it just something pecular to do with data_table_sources?
<test><!-- Equivalent to output of old bccdc BLASTn XML to Tabular -->
<param name="blastxml_file" value="blast_reporting_1.blastxml"/>
<output name="tabular_file" file="blast_reporting_1a.tabular"/>
<param name="out_format" value="std"/>
<param name="column_labels" value="" />
<param name="drop_redundant_hits" value="true"/>
</test>
<test>
<param name="blastxml_file" value="blast_reporting_1.blastxml"/>
<output name="tabular_file" file="blast_reporting_1b.tabular"/>
<param name="out_format" value="std"/>
<param name="column_labels" value="" />
<param name="drop_redundant_hits" value="true"/>
<param name="filter_column" value="pident"/>
<param name="filter_comparison" value="gte"/>
<param name="filter_value" value="97"/>
</test>
The form repeat area:
<repeat name="filter_num" title="Numeric Filter" min="0" max="4">
<param name="filter_column" type="select" label="Col">
<options from_data_table="blast_reporting_fields">
<filter type="static_value" value="numeric" column="type" />
<filter type="sort_by" column="name"/>
</options>
</param>
<repeat name="constraint" title="Constraint" min="1" max="3">
<param name="filter_comparison" type="select" label="Comparison">
<option value="gte">>= </option>
<option value="gt">></option>
<option value="lt">< </option>
<option value="lte"><= </option>
<option value="==">equal to </option>
<option value="!=">not equal to </option>
</param>
<param name="filter_value" type="text" value="" label="Value">
<validator type="regex" message="Please input a number">([0-9]+|[0-9]*\.[0-9]+)</validator>
</param>
</repeat>
</repeat>
The working command section that sends the filter field info is:
#for $i, $my_repeat in enumerate( $filter_num )
$my_repeat.filter_column:
#for $i, $my_repeat2 in enumerate( $my_repeat.constraint )
$my_repeat2.filter_comparison $my_repeat2.filter_value,
#end for
;
#end for
Hsiao lab, BC Public Health Microbiology & Reference Laboratory, BC Centre for Disease Control
655 West 12th Avenue, Vancouver, British Columbia, V5Z 4R4 Canada