I was new to Galaxy a few months back. I learned through the galaxy wiki's.
But here is a brief to-do on how to make a tool!
CHECK IF TOOL ALREADY EXISTS:
Just to make sure we don't jump the gun, you should always check if the tool already exists in the galaxy toolshed or testtoolshed. This will save you alot of time and effort:
If the tool exists, ask your admin to add the tool to the galaxy instance you are working from. Otherwise follow the steps to creating your tool.
Wrapping an executable:
First you need to install your tool and keep track of any dependencies you needed when installing. In other words, install from the command line WITHOUT:
sudo apt-get install X
wget 'tool.link' (and then following the installation instructions)
Keep track of these links, they become useful when automating the installation of the tool into galaxy
Perl or Python tool:
Keep track of all the libraries required to run the tool
CREATE TOOL INTERFACE FILE:
Next you need to create the configuration for you python wrapper. This is the xml which will provide users with a graphical interface for running the tool on galaxy.
Galaxy tutorials on how to do this:
Here is all the possible tags for the xml code:
USE GITHUB BY RESPECTED USERS TO CREATE GOOD TOOLS:
I recommend searching the code base by the user bgruening on github, helps me out all the time.
CREATE TOOL INSTALLATION FILE:
This is the files which tells galaxy how to install the tool. So remember that list of dependencies you needed, you are going to incorporate them into this file.
Again, refer to github if you are having issues finding examples.
TEST TEST TEST:
Finally you need to test if the tool works. I recommend installing a personal instance if you will not be granted administrator rights to your galaxy instance.
You can upload your tool to the testtoolshed, you can add the testtoolshed to the list of toolsheds you galaxy instance will install tools from. Follow the following tutorial:
Once you have tested the tool (you should test this tool not only on your personal instance but also the instance you lack admin access to), you can attempt to add the tool to the public galaxy toolshed.
The reason you should test on both is because you want to minimize the amount of hidden dependencies that weren't identified which you installed locally. In other words, if you have already have some of the requirements for a tool because they have been previously installed and are included in your PATH, galaxy will not be able to distinguish between these tools and those you are adding as requirements. So, best to just try on multiple galaxy instances if you lack a computer which has minimal binaries already installed.
You should be able to find all you need to create a tool online, I wish you luck!
Welcome to the galaxy community!