Dear, I need to add a number of tools to my local Galaxy installation, but the size of the wrappers I've seen keep me from writing one. Are there wrapper generators to make this task easier? If not, I might want to make one. A possible implementation I'm considering is to first make a (WSDL) description of any command line tool (using soaplab2 for example) and by making a general wrapper builder that takes WSDL as input. Does something similar already exist and if not, does this idea sound okay? With kind regards, Jeroen. -- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
Hi Jeroen, You can use web services thanks to the work from Sumedha Ganjoo et al. from the University of Georgia. You can find that on the community site: Tools Shed -> Data Source -> Suite of Web service addition tools. http://community.g2.bx.psu.edu/common/view_tool?sort=suite&cntrller=tool&webapp=community&operation=view_tool&id=1766c85c07803d78 Cheers, Pi On May 13, 2011, at 1:41 PM, J. F. J. Laros wrote:
Dear,
I need to add a number of tools to my local Galaxy installation, but the size of the wrappers I've seen keep me from writing one.
Are there wrapper generators to make this task easier? If not, I might want to make one. A possible implementation I'm considering is to first make a (WSDL) description of any command line tool (using soaplab2 for example) and by making a general wrapper builder that takes WSDL as input.
Does something similar already exist and if not, does this idea sound okay?
With kind regards, Jeroen.
-- Jeroen F. J. Laros - J.F.J.Laros@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:
------------------------------------------------------------- mobile: +31 6 143 66 783 e-mail: pieter.neerincx@gmail.com skype: pieter.online -------------------------------------------------------------
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. On Fri, May 13, 2011 at 02:16:37PM +0200, Pieter Neerincx wrote:
Hi Jeroen,
You can use web services thanks to the work from Sumedha Ganjoo et al. from the University of Georgia. You can find that on the community site:
Tools Shed -> Data Source -> Suite of Web service addition tools.
Cheers,
Pi
On May 13, 2011, at 1:41 PM, J. F. J. Laros wrote:
Dear,
I need to add a number of tools to my local Galaxy installation, but the size of the wrappers I've seen keep me from writing one.
Are there wrapper generators to make this task easier? If not, I might want to make one. A possible implementation I'm considering is to first make a (WSDL) description of any command line tool (using soaplab2 for example) and by making a general wrapper builder that takes WSDL as input.
Does something similar already exist and if not, does this idea sound okay?
With kind regards, Jeroen.
-- Jeroen F. J. Laros - J.F.J.Laros@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:
------------------------------------------------------------- mobile: +31 6 143 66 783 e-mail: pieter.neerincx@gmail.com skype: pieter.online -------------------------------------------------------------
___________________________________________________________ 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:
-- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros <J.F.J.Laros@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
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.cock@googlemail.com> wrote:
On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros <J.F.J.Laros@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:
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.cock@googlemail.com> wrote:
On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros <J.F.J.Laros@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:
-- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
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. 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.cock@googlemail.com> wrote:
On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros<J.F.J.Laros@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:
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.cock@googlemail.com> wrote:
On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros<J.F.J.Laros@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:
___________________________________________________________ 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:
-- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
Dear Peter, On Fri, May 13, 2011 at 02:41:26PM +0100, Peter Cock wrote:
On Fri, May 13, 2011 at 2:12 PM, J. F. J. Laros <J.F.J.Laros@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?
Well, none to be honest. But if I'm going to add a substantial amount of tools I'd rather define the interface than write wrappers. An additional advantage is that I can reuse the interface description for other purposes.
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.
Okay, thank you for your feedback. With kind regards, Jeroen.
Peter
-- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
Dear, A few months ago we proposed a wrapper generator, we are now at a point where we can present our idea as a working prototype. The wrapper generator is not specific for Galaxy, in principle any target can be used, but since Galaxy is our most prominent use case at the moment, we already implemented templates to generate the Galaxy wrappers. By using this approach, we are also able to quickly respond to changes in the Galaxy wrapper system.
From the about page:
LUMC Interface Generator was developed at the Department of Human Genetics, Leiden University Medical Center (LUMC). Its aim is to facilitate developers in creating user-friendly interfaces for a command line tool. In the agile development environment of bioinformatics, many command line tools are created quickly to fill in gaps between complex information processes. A command line interface (CLI) is sometimes sufficient for the task, but it limits adoption by a broader audience. As such, it's often necessary for the developer to create a CLI wrapper that provides a more user friendly interface. LUMC Interface Generator was developed to systematize and expedite this very time consuming process. --- You can try the prototype at: http://ngs.fixedpoint.nl/interfaceGen/ Please note that this service is in beta release and for testing purposes ONLY. It will be moved to a different location in the future. We would appreciate any feedback, negative or positive. With kind regards, Zuotian Tatum, Jeroen F. J. Laros. On Fri, May 13, 2011 at 01:41:47PM +0200, J. F. J. Laros wrote:
Dear,
I need to add a number of tools to my local Galaxy installation, but the size of the wrappers I've seen keep me from writing one.
Are there wrapper generators to make this task easier? If not, I might want to make one. A possible implementation I'm considering is to first make a (WSDL) description of any command line tool (using soaplab2 for example) and by making a general wrapper builder that takes WSDL as input.
Does something similar already exist and if not, does this idea sound okay?
With kind regards, Jeroen.
-- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
-- Jeroen F. J. Laros - J.F.J.Laros@lumc.nl
participants (5)
-
Dave Walton
-
Florent Angly
-
J. F. J. Laros
-
Peter Cock
-
Pieter Neerincx