Hi list,
I am currently writing a Galaxy wrapper (for SortMeRNA [1])
and I would have several questions.
== Pre-processing an input ==
SortMeRNA filters rRNA reads against an indexed rRNA database. This database can either be one bundled together with SortMeRNA and defined in a relevant .loc file, or one from the history. Either way, it must have been processed beforehand with another binary (just like makeblastdb/blastp).
I am not sure of the best design here.
*Providing another wrapper
for this other binary, with users explicitly using it beforehand in their workflow?
*Assuming the databases have been processed outside of Galaxy beforehand ? (As the tool relies on the file name, this would work for databases in the .loc file but not ones from the history)
*Providing an extra-smart wrapper which would check if the database has been indexed, and if not invisibly indexing before running SortMeRNA ?
== Error handling ==
I have been trying to use <stdio><regex> to catch an error (the one defined in above section actually) and inform the user with a meaningful message. From the console debug, it seems the error is correctly detected, since it displays the custom <regex description=""> :
galaxy.jobs INFO 2013-01-22 19:02:04,198 Job 202: Fatal error: The database ${databases} has not been preprocessed using buildtrie before using SortMeRNA.
But Galaxy only displays in the failed history a generic message
« tool error
An error occurred running this job:
Unable to finish job »
Am I missing something, or the <stdio><regex> is not meant to be used this way?
== Using a previously set choice to set a default value later ==
Main option Alpha (a binary choice A/B) influence the default value of advanced option Beta (a float). Beta is buried into the "advanced options" section − I’d rather not have it just next to Alpha.
Mirroring constructs seen in the <action>tag, I was hoping to do something like :
<conditional name="Alpha">
<param name="Alpha_selector" type="select" format="text">
<option value="A">Option A</option>
<option value="B">Option B</option>
</param>
</conditional>
[…]
<conditional name="Alpha.Alpha_selector">
<when value="A">
<param name="Beta" type="float" value="0.15"/>
</when>
<when value="B">
<param name="Beta" type="float" value="0.25"/>
</when>
</conditional>
But that does not seem to work. Am I missing something, or is it just not possible ?
Alternatively, I looked into setting some hidden variable $default_value in the Alpha select, which would be used as <param name="Beta" value=$default_value/>, but that does not seem to work either
Thanks for your help!
[1] <http://bioinfo.lifl.fr/RNA/sortmerna/>
--
Jean-Frédéric
Bonsai Bioinformatics group