Dear Florent, On Sun, May 15, 2011 at 09:15:25PM +1000, Florent Angly wrote: > Hi Jeroen, > > The idea of having a tool to automatically generate Galaxy wrappers > is attractive, and in some cases, possible. For example, I know that > the tools in QIIME (http://qiime.sourceforge.net/) use some sort of > argument declaration and a Python module to read it and deal with > the command-line interface. This makes it possible to write a > converter that would generate (or at least kickstart) Galaxy > wrappers. I also have some Perl scripts that use the Getopt::Euclid > module (http://search.cpan.org/dist/Getopt-Euclid/), which declares > all the arguments taken by the program. I have been contemplating > writing code that would convert the Getopt::Euclid specifications > into a Galaxy wrapper.
Yes, I thought of that too. Many languages have a getopt construction of some sort, so that would be a really neat way, especially in strongly typed languages. Parsing the man page is another option I considered, but the syntax is a bit too loose I'm afraid. For now, I've created a widget where people can fill in a command, its description, name, parameters, etc. (something similar to what Dave suggested). This widget creates an XML file which can then be used as a description of the interface (ultimately I don't want to describe the interface either, hence the widget). Currently, I'm creating templates for the wrappers using the jinja2 templating language, the interface generator would only need to parse the XML description and by using one of the templates the desired wrapper can be generated. Even if this is not directly applicable in Galaxy because of bugs, I think this solution can be used in a broader sense to generate other interfaces (CGI for example) by writing a different template. Thanks for your feedback. With kind regards, Jeroen. > > At the moment, though, there are quite a few outstanding irritating > bugs in the Galaxy wrapper system that force you to use workarounds > to get a working wrapper: > https://bitbucket.org/galaxy/galaxy-central/issues?component=tools-config&sort=id > > <https://bitbucket.org/galaxy/galaxy-central/issues?component=tools-config&sort=id>. > Needless to say that it would be easier to automated wrapper > generation if these bugs were fixed. > > Regards, > > Florent > > > > > On 14/05/11 00:03, J. F. J. Laros wrote: > >Dear Dave, > > > >This indeed sounds like an interesting alternative. I'll look into it. > > > > > >With kind regards, > >Jeroen. > > > >On Fri, May 13, 2011 at 01:48:12PM +0000, Dave Walton wrote: > >>An alternative might be to have something like GenePattern has. It's not as > >>seamless for the person who wants the wrapper as what's been suggested here, > >>but it's easier than creating a lengthy XML file. > >> > >>GenePattern has an HTML Form interface for entering all the components of > >>your tool, including the command-line you want to expose and the parameters > >>you want to make available, and then it generates the back-end. > >> > >>There are definite down-sides to this. I've never tested what keeps the > >>tool in GenePattern from letting you do destructive things. > >> > >>Dave > >> > >> > >>On 5/13/11 9:41 AM, "Peter Cock"<p.j.a.c...@googlemail.com> wrote: > >> > >>>On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros<j.f.j.la...@lumc.nl> > >>>wrote: > >>>>Hi Pieter, > >>>> > >>>>Thanks for the reply, but from the looks of it, this is a way to > >>>>incorporate > >>>>webservice clients into galaxy. What I want is slightly different. > >>>> > >>>>I'm talking about adding a normal command line tool (an aligner for > >>>>example) > >>>>but I'm not willing to write a wrapper each time (the wrapper for BWA for > >>>>example is 327 lines). If a computer readable description of the interface > >>>>exists, this description can be used to generate a python wrapper. I > >>>>mentioned > >>>>WSDL because this also gives a description of an interface, but any > >>>>equivalent > >>>>description would of course be fine. > >>>> > >>>>Ideally, such a description is maintained by the developer of the tool in > >>>>question. > >>>> > >>>>With kind regards, > >>>>Jeroen. > >>>How many tools can you name that come with such a machine readable > >>>file describing their command line interface? > >>> > >>>I can think of only one - the EMBOSS tool suite and their ACD files > >>>(used internally by EMBOSS to generate the command line help, > >>>documentation, and do the command line option parsing). > >>> > >>>Unfortunately I don't think there is an easy answer - even if wrapping > >>>a tool where all the input and output formats are already supported in > >>>Galaxy. > >>> > >>>Peter > >>>___________________________________________________________ > >>>Please keep all replies on the list by using "reply all" > >>>in your mail client. To manage your subscriptions to this > >>>and other Galaxy lists, please use the interface at: > >>> > >>> http://lists.bx.psu.edu/ > > ___________________________________________________________ > Please keep all replies on the list by using "reply all" > in your mail client. To manage your subscriptions to this > and other Galaxy lists, please use the interface at: > > http://lists.bx.psu.edu/ -- Jeroen F. J. Laros - j.f.j.la...@lumc.nl ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at: http://lists.bx.psu.edu/