bioLegato - How it works


bioLegato calls programs that run as external jobs. In essence, any program can be run from bioLegato. Programs can run on a local server, or as a remote web service. Output is returned to the user's desktop in the appropriate viewer.




The GUI layer - bioLegato is the GUI layer. bioLegato is nothing more than a program that creates menus and calls other programs. Data selected in the bioLegato window is written to a temporary file. A Unix command generated by bioLegato that calls a program, using the temporary file as input, and supplying parameters as set in the menu. Output from the program is imported back into bioLegato, or sent to other programs for viewing by the user.

The Menu specification layer - When bioLegato starts, it reads a file called .GDEmenus. The .GDEmenus file contains specifications for each menu, and commands for running one or more programs. For example, in bioLegato, the menu for DNARNA --> blrevcomp - reverse and complement menu looks like this:



The corresponding entry in the .GDEmenus file creates this menu:
# ----------------  Reverse/Complement - blrevcomp (May 23, 2009) ---------------------
item:blrevcomp - reverse and complement
itemmethod: blrevcomp $STRAND in1 in1.blrevcomp; $GDEOUTPUT
itemhelp:doc/bioLegato/blrevcomp.html
itemopen:gde_help_viewer.csh

in:in1
informat:flat

arg:STRAND
arglabel:Strand
argtype:chooser
argchoice:reverse complement:-r
argchoice:complement only:-c
argchoice:flip (reverse only):-f
argvalue:0


arg:GDEOUTPUT
arglabel:Output to new GDE window?
argtype:chooser
# Problem with Linux-Intel version of GDE (doesn't affect Solaris):
# If we declare an 'out' file, then it must always exist,
# even if we don't use it. Otherwise, gde will look for the file
# after it is done, and crash.
argchoice:Yes:(echo '' > out1; gde in1.blrevcomp; $RM_CMD -f in1.blrevcomp)&
argchoice:No:mv in1.blrevcomp out1
argvalue:1

out:out1
outformat:flat

This menu exports the sequence to a temporary file, and uses that file as input for the blrevcomp program. The Unix command to accomplish this task is on the itemmethod: line. The command is build by substituting values from the other fields (eg. in1, STRAND, GDEOUTPUT) into the itemmethod line. After removing some temporary files, the commands specified in GDEOUTPUT send the output from blrevcomp either to a new biolegato window, or to the current biolegato window..

This aspect of bioLegato is what sets it apart from any other program of its kind. Because any program on the system can be called, there are few limits to what bioLegato can be asked to do. As well, the simplicity of the .GDEmenus file means that it is easy to add new programs to bioLegato, and that the cycle of testing and modification is far more rapid than would be required if it was necessary to re-compile bioLegato every time a program was added.

A complete description of syntax for .GDEmenus files is found in
GDE 2.2 Manual (PDF) .

The Command layer - The command built by bioLegato is executed by the Unix shell. If the command is run in the background (not shown in the example above) then it will run independently of bioLegato, which is especially important for long-running jobs. In fact, once the job has been started, the bioLegato window that launched it can be Quit, with no effect on the job. bioLegato can call anything that can be executed, either a binary, a Unix command, a script, anything that is executable. In a certain sense, bioLegato can do anything that a person can do at the command line.

The Computation layer -  Because the command(s) executed by bioLegato can include scripts, it is possible to launch scripts that orchestrate long computational pipelines involving many programs. There is not even any requirement that processing occur on the same machine that bioLegato is running on. In another example, the BLAST menus in the default BIRCH distribution call the NCBI blastcl3 client, which sends BLAST searches to NCBI.  At some BIRCH sites, BLAST searches are sent to GeneMatcher or Paracel servers. Except for the time required to get the results back, it is transparent to the user where the searches are run.



Next