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