 Good day. I'd like to show you how to make a new tool in Galaxy using a code generator that's available as a Galaxy tool. This is designed for programmers who are new to Galaxy and haven't yet acquired all the skills that are needed to use the project-supported manual tool-building infrastructure. So our goal is to make a Hello World tool in a few minutes and that's going to be the classic introduction to any new programming environment which is very useful for a programmer. And we're going to create a new Galaxy tool and it's just going to say hello and make it a little more interesting. We'll make a typical tool model in Galaxy which acquires something from the user, namely in this case a text parameter from a typical Galaxy tool form. And that text parameter will be emitted after the word hello into a text file that will appear in the user's history. So we're making a real Galaxy tool. It's kind of trivial but the point is this is how you can make any more or less simple Galaxy tool. So we start off by firing up the tool factory in the appliance which is described in the tutorial material on the Galaxy training network which is probably how you got here in the first place. And our new tool ID will be hello. So we've got a script. We don't need any condit dependencies other than bash which isn't condit dependency but we don't need to make it a dependency. We could if we wanted to. We need to make it say hello so I'm going to use bash hello $1 which will do what we need. I would normally cut and paste the script here after testing it on the command line because if the script doesn't work the tool won't work either. The tool factory is clever but it's not clever enough to fix broken scripts. We can use positional parameter passing which is necessary because we're looking for $1 a year in the bash script. And we've got some input and output files to define here. We don't need any input files from my history but we will want to produce a new output which we'll call hello out and it's going to be a text file because that's the most convenient form for this particular job. And instead of typing a positional position I'm going to do a little trick which the tool factory supports. It will reflect the output from the bash script into standard out and capture it into the user's history. The test criterion is that it has to be the same as the test output for it to pass the test. We don't need any extra outputs. We don't need any extra output collections. We do need one command line parameter which is going to be say hello to and its default value will be tool factory. This is the value that will appear every time the tool starts and it will also be used in the test. The label will be say hello to somebody and we could put some help here. Not that anyone should really need any for this tool and in this case the position is one because we want this to be $1 inside the bash script. We don't need any of these other fancy things. We don't need more command line parameters. We do need a synopsis because that will appear beside the name of the tool and the synopsis will be says hello to type and here we could put lots of text or help. Clearly you can put whatever you want. Right. The click execute and the tool factory being a Galaxy tool is currently being executed and when it finishes, which shouldn't take more than a few seconds, we'll find a nice new wrapper, an XML wrapper for a hello tool and it does all of the things that you would do if you wrote this tool by hand but of course it was constructed and generated from the form that we created. Okay. So far so good. We've made a new tool. Let me show you something really interesting though. I just clicked on analyze data to reflect to refresh the screen and I've got a new section here called tool factory generated tools and it's got a tool and it's a hello tool. In fact, it's exactly the tool we generated. It's the XML that's here but it's been installed into the tool factory appliance Galaxy and it's ready to run. And if I put my name here, I think you can all guess what the tool will produce and drum roll. It did exactly what we thought it would do. So here's the output from running the new tool and it's just an ordinary Galaxy job. You can redo it if you want. Well, the same applies of course to the original job that generated the tool and that's one of the things that makes the tool factory appliance pretty interesting because you've effectively got an integrated development environment. I could, if I wished, make a new tool called hello new and I'll just put the word new here. Hello new dollar one trivial change. I just want to show you that you can make big changes to or small changes just by rerunning the job, editing the tool factory form and generating a new tool. Now it just so happens that because I gave it a new name, if we refresh the screen, we will find that we've now got a second new tool. And this is the variant on this first one, which I just constructed. It looks pretty much the same except the script is now hello new dollar one. Let's just run it to prove that it does actually work. And I apologize for this trivial nature of these tools. This is all part of the introductory tutorial, which I hope you're following along on. But for those of you that are new to Galaxy, this is a pretty efficient way to get your scripts turned into tools that you can then share and with other people if they're non trivial. So there's a lot more detail in the tutorials. There are two beginners and an advanced one in the Galaxy Training Network in the developers section. And I really hope that that you enjoy using the tool factory. And I'd like to thank you for using Galaxy. OK, thanks everybody.