On 01/23/2013 12:22 PM, Jean-Frédéric Berthelot wrote:
Hi Hans-Rudolf,
Thank you for your answer.
I am not sure of the best design here. *Providing another wrapperfor 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 ?
or providing an extra-flexible wrapper (and its corresponding UI defined in the XML file): You first ask the question whether the database is in the history (indexed or to be indexed) or in the local files system. Then depending on the choice, the UI changes according the three options. There are several ways to offer a dynamic UI, eg: <conditional>/<when> tag sets, <page> tag set or possibilities with the "refresh_on_change" option.
I see. Actually, I already implemented the UI change to ask whether the database is selected from local file system or history tab, using <conditional> (just like in the fimo.xml wrapper). I am a bit confused about the refresh_on_change, is there any documentation on it? The only working example I see in the tools is the rgManQQ.xml wrapper, where it is used jointly with dynamic_options (same question about doc?). This seems to be handy ; but unless I am mistaken it seems it can only work with a <code>, right? But the <code> tag is deprecated, and the doc is unclear about the replacement to use. <actions> seems to only work for <output> data, right?
Also, I am directly calling the binary in the <command>. If I understand you correctly, it would be easier to hae an additional Python wrapper, which would pre-index the database is needed or asked. Is that correct?
Unfortunately, I can't help much with refresh_on_change either, we just use the <conditional>/<when> tag set. I have been under the impression the the documentation has been written for 'refresh_on_change' in the meantime. I am sorry, I should have checked first, before suggesting it. Regarding the command line: you can have different commandlines, eg <command> #if ($summary.mode=="a")#commandline1 #elif ($summary.mode=="b")#commandline2 #elif ($summary.mode=="c")#commandline3 #end if </command> and one of those 'commandlines' could be two commands (ie indexing first, followed by the next binary) Regards, Hans-Rudolf