The GUI layer -
the GUI layer. BioLegato
nothing more than a program that creates menus and calls other
programs. Data selected in the BioLegato window is written to
file. A Unix command is generated by BioLegato that calls a
temporary file as input and supplying parameters as set in the
Output from the program is imported back into BioLegato, or
programs for viewing by the user.
The Menu specification layer
When BioLegato starts, it reads a set of files which specify
construct the menus that run programs. Menus are written
easy to use language called PCD. For example, in BioLegato,
for DNARNA --> blrevcomp
menu looks like this:
The corresponding entry in the .BLrevcomp.blmenu file creates
name "blrevcomp - reverse and complement"
This menu exports the sequence to a temporary file, and uses
as input for the blrevcomp program. The Unix command to
task is on the shell line. The command is built by
other fields (eg. %in1%, %STRAND%, %GDEOUTPUT%) into the
line. After removing some temporary files, the
commands specified in GDEOUTPUT send the output from blrevcomp
to a new BioLegato window, or to the current BioLegato
tip "create reverse complement strands"
"reverse complement" "-r"
"complement only" "-c"
"flip (reverse only)" "-f"
label "Output to new bldna window?"
"Yes" "(echo '' > %out1%; bldna %in1%.blrevcomp; $RM_CMD -f %in1%.blrevcomp)&"
"No" "mv %in1%.blrevcomp %out1%"
shell "blrevcomp %STRAND% %in1% %in1%.blrevcomp; $RM_CMD %in1%; %GDEOUTPUT%"
shell "$BIRCH/script/gde_help_viewer.csh $BIRCH/doc/bioLegato/blrevcomp.html"
This aspect of BioLegato is what sets it apart from any other
kind. Because any program on the system can be called, there
limits to what BioLegato can be asked to do. As well, the
.blmenu files means that it is easy to add new programs to
that the cycle of testing and modification is far more rapid
be required if it was necessary to re-compile BioLegato every
A complete description of syntax for .blmenu files is found in
The Command layer -
built by BioLegato is executed by the Unix shell. If the
command is run
the background (not shown in the example above) then it will
independently of BioLegato, which is especially important for
jobs. In fact, once the job has been started, the BioLegato
launched it can be exited, with no effect on the job.
anything that can be executed, either a binary, a Unix
script, or anything that is executable. In a certain sense,
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
that processing occur on the same machine that BioLegato is
In another example,
the BLAST menus in the default BIRCH distribution call the
client, which sends BLAST searches to NCBI. Except for
required to get the results back, it is transparent
to the user where the searches are run.