Developing package wrappers

classic Classic list List threaded Threaded
6 messages Options
| Threaded
Open this post in threaded view
|

Developing package wrappers

Tiago Antao
Hi,

I am afraid that I might be overlooking something obvious but...

I am trying to add a few tools to the RAD-Seq portfolio of Galaxy. For
that effect I am designing a few package wrappers. My problem is to
understand the best practice to develop wrappers for dependencies of
external tools.

For normal tools, that is quite easy: one uses the galaxy/tool/XXX
to do all development and testing.

But for dependency wrappers, the only solution that I have found is to
upload the wrapper to a toolshed and installing it via the admin
interface... This is cumbersome. Is there any way to test/develop a
package wrapper so that I can test tool_dependencies.xml without
uploading it to a toolshed and installing it from there?

Thanks,
Tiago
___________________________________________________________
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:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
| Threaded
Open this post in threaded view
|

Re: Developing package wrappers

Björn Grüning-3
Hi Tiago,

for simple tool_dependencies you can use the new planemo depbash command
from Peter:
https://github.com/galaxyproject/planemo/pull/310

For more complicated once I recommend to use the TTS for the time being.
You can create the initial repository install from it and change your
tool_dependency file on your harddrive (after installation)
and simply reinstall the tool after every change.

What kind of dependencies do you have? Python/Perl?
Consider contributing to tools-iuc
(https://github.com/galaxyproject/tools-iuc). We can probably help you
and guide you your way.

Thanks for working on RAD-seq!
Bjoern


On 20.10.2015 11:01, Tiago Rodrigues Antao wrote:

> Hi,
>
> I am afraid that I might be overlooking something obvious but...
>
> I am trying to add a few tools to the RAD-Seq portfolio of Galaxy. For
> that effect I am designing a few package wrappers. My problem is to
> understand the best practice to develop wrappers for dependencies of
> external tools.
>
> For normal tools, that is quite easy: one uses the galaxy/tool/XXX
> to do all development and testing.
>
> But for dependency wrappers, the only solution that I have found is to
> upload the wrapper to a toolshed and installing it via the admin
> interface... This is cumbersome. Is there any way to test/develop a
> package wrapper so that I can test tool_dependencies.xml without
> uploading it to a toolshed and installing it from there?
>
> Thanks,
> Tiago
> ___________________________________________________________
> 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:
>    https://lists.galaxyproject.org/
>
> To search Galaxy mailing lists use the unified search at:
>    http://galaxyproject.org/search/mailinglists/

___________________________________________________________
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:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
| Threaded
Open this post in threaded view
|

Re: Developing package wrappers

Peter Cock
In reply to this post by Tiago Antao
On Tue, Oct 20, 2015 at 10:01 AM, Tiago Rodrigues Antao <[hidden email]> wrote:

> Hi,
>
> I am afraid that I might be overlooking something obvious but...
>
> I am trying to add a few tools to the RAD-Seq portfolio of Galaxy. For
> that effect I am designing a few package wrappers. My problem is to
> understand the best practice to develop wrappers for dependencies of
> external tools.
>
> For normal tools, that is quite easy: one uses the galaxy/tool/XXX
> to do all development and testing.
>
> But for dependency wrappers, the only solution that I have found is to
> upload the wrapper to a toolshed and installing it via the admin
> interface... This is cumbersome. Is there any way to test/develop a
> package wrapper so that I can test tool_dependencies.xml without
> uploading it to a toolshed and installing it from there?
>
> Thanks,
> Tiago

Hi Tiago,

If you've not seen planemo, I suggest you have a look at
https://github.com/galaxyproject/planemo and
https://github.com/galaxyproject/planemo or the slides John
gave at GCC 2015:

http://gcc2015.tsl.ac.uk/abstracts/#Planemo_8211_A_Galaxy_Tool_SDK

For tool testing during development this ought to work:

planemo test path/to/your/tool

For tool dependency testing, I used to rely on the nightly tests
run on the main and Test Tool Shed, currently unavailable. One
option here is to run your own local tool shed just for development,
but the Test Tool Shed is a reasonable substitute. See also:

planemo shed_test --help

I recently started work on the new "planemo dependency_script"
which attempts to parse tool_dependencies.xml into a bash
script - that is still a work in progress but might help here too:

https://github.com/galaxyproject/planemo/issues/303
https://github.com/galaxyproject/planemo/commit/f798c7e29b2276ce68b828e72fc6a6460c73792b

See also https://github.com/galaxyproject/planemo/issues/19
for the wider issue of testing tool_dependencies.xml with
planemo without a tool shed.

Regards,

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:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
| Threaded
Open this post in threaded view
|

Re: Developing package wrappers

Tiago Antao
In reply to this post by Björn Grüning-3
On Tue, 20 Oct 2015 14:48:08 +0200
Bjoern Gruening <[hidden email]> wrote:

> Hi Tiago,
>
> for simple tool_dependencies you can use the new planemo depbash
> command from Peter:
> https://github.com/galaxyproject/planemo/pull/310

Gosh, this is exactly what the doctor ordered. Thanks (to Peter also).

 
> What kind of dependencies do you have? Python/Perl?
> Consider contributing to tools-iuc
> (https://github.com/galaxyproject/tools-iuc). We can probably help
> you and guide you your way.
>
> Thanks for working on RAD-seq!


I am actually updating the raxml tool for now.
But in my new position I am heavily involved with RAD-seq data and I
am working on some new galaxy tools to help with more recent analytical
methods (e.g. integrating cap3 with stacks). If there is any reported
need on the RAD-seq front, email me and I might be able to help...

Tiago
___________________________________________________________
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:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
| Threaded
Open this post in threaded view
|

Re: Developing package wrappers

Tiago Antao
In reply to this post by Björn Grüning-3
Hi,


On Tue, 20 Oct 2015 14:48:08 +0200
Bjoern Gruening <[hidden email]> wrote:

> What kind of dependencies do you have? Python/Perl?
> Consider contributing to tools-iuc
> (https://github.com/galaxyproject/tools-iuc). We can probably help
> you and guide you your way.


Before I start working on RAD-Seq, I had a "warm-up exercise" with
RAxML.
I have upgraded Alex's version of the RAxML tool (with his knowledge -
I am also Ccing him) to a more recent version. I also added one meager
test to start with.

You can find this on
https://testtoolshed.g2.bx.psu.edu/repository/manage_repository?sort=name&operation=view_or_manage_repository&id=fd4191b7bdcd01d2

Or, if you prefer github:
https://github.com/tiagoantao/galaxy_tools/tree/master/tools/raxml

I am willing to maintain this tool (and associated package). This can
be transferred to tools-iuc as soon as people are happy with the result.

After this is finalized, I will have a look at the RAD-Seq work.

Tiago
___________________________________________________________
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:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/
| Threaded
Open this post in threaded view
|

Re: Developing package wrappers

Björn Grüning-3
Hi Tiago,

in the following my few comments. If you like to submit this to
IUC-tools a WIP would be nicer to comment on.


* Booleans can be treated like this.

 <param name="search_complete_random_tree" type="boolean"
checked="False" truevalue="--search_complete_random_tree" falsevalue=""
display="checkboxes" label="Start ML optimization from a complete random
starting tree (-d)" />

Note the changed truevalue and falsevalue. This will reduce this:

#if str ($selExtraOpts.search_complete_random_tree) == "true":
--search_complete_random_tree
#end if

to

$selExtraOpts.search_complete_random_tree

because $selExtraOpts.search_complete_random_tree evaluates now to
--search_complete_random_tree if it is checked, otherwise its empty.

* sys.stderr.write() ... can be removed.

* <param type="data" format="fasta" name="infile" label="Source file"/>
Can be changed to
<param type="data" format="fasta,phylip" name="infile" label="Source
file"/> to allow both filetypes and to make the UI simpler.

*  <param name="base_model" type="select" label="Substitution Model
(-m)"> -> put the (-m) please in help="" not in the label

Thanks!
Bjoern




Am 02.11.2015 um 22:29 schrieb Tiago Antao:

> Hi,
>
>
> On Tue, 20 Oct 2015 14:48:08 +0200
> Bjoern Gruening <[hidden email]> wrote:
>
>> What kind of dependencies do you have? Python/Perl?
>> Consider contributing to tools-iuc
>> (https://github.com/galaxyproject/tools-iuc). We can probably help
>> you and guide you your way.
>
>
> Before I start working on RAD-Seq, I had a "warm-up exercise" with
> RAxML.
> I have upgraded Alex's version of the RAxML tool (with his knowledge -
> I am also Ccing him) to a more recent version. I also added one meager
> test to start with.
>
> You can find this on
> https://testtoolshed.g2.bx.psu.edu/repository/manage_repository?sort=name&operation=view_or_manage_repository&id=fd4191b7bdcd01d2
>
> Or, if you prefer github:
> https://github.com/tiagoantao/galaxy_tools/tree/master/tools/raxml
>
> I am willing to maintain this tool (and associated package). This can
> be transferred to tools-iuc as soon as people are happy with the result.
>
> After this is finalized, I will have a look at the RAD-Seq work.
>
> Tiago
>
___________________________________________________________
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:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/