On Nov 18, 2011, at 10:37 AM, Aaron Quinlan wrote:
Hi Greg,
I am in the process of trying to develop a set of Galaxy wrappers for the tools in my bedtools suite. I have read the Toolshed wiki, but I am still struggling with some very basic questions that I hope you can help me with.
Thanks for your plans to contribute your Galaxy tools to the tool shed - the Galaxy community will appreciate this!
1. How should a tarball repository be structured for the toolshed? For example, bedtools currently includes a Makefile plus a src/ directory and sub-directories for each tool. The compiled objects go to obj/ and the binaries to bin/.
The subdirectory hierarchy is completely up to you as the developer - the tools shed really doesn't care what this looks like (although I've included some thoughts on this in the following list). The intent of the Galaxy tool shed to be a place for sharing tools that have been tested to be functionally correct when loaded into a Galaxy instance. This means that you have developed the tools (with Galaxy wrappers) in your own local Galaxy development environment (and proved that they work within Galaxy) before uploading them to a Galaxy tool shed.
Keep in mind that your tools will ultimately be installed for use in other's local Galaxy instances, so here are some "rules of thumb" with regard to your tool shed repository that you create to contain your tools.
1. Keep your repository clean - do not upload items like .git or .svn subdirectories if you use these tools for development. Upload only those files that make the tools functionally correct within a Galaxy instance.
3. For tools that require an index files (.loc.sample), you can add subdirectories if you want (again, not required - it's up to you). Here's an example:
4. For tools (like those you've described) that have 3rd party dependencies, you should place them in some directory within the hierarchy - what you've described is fine.
By reading the wiki I gather that I also need to add a new directory that contains an XML wrapper for each tool. Is that correct? Is there a specific name for said directory that is expected by the Toolshed?
Yes, you should do this and make sure the tools are functional within your local galaxy instance before uploading them to the tool shed.
2. Do you have an example repository that has a similar structure to what is described in #1? This would be very helpful as a means to follow the lead of something that already works.
You can browse the directory hierarchy of any of the repositories in the tool shed using the "Browse repository tip files" pop-up menu option. Here's a good example that may be similar to yours: