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