bioLegato
Menu specifications
One of the intrinsic elements of bioLegato is that menus for setting
parameters and running programs are not hard-coded, but rather, are
read when the application launches. GDE read these specifications from
the .GDEmenus file, which had a crude syntax for setting parameters and
generating a Unix command from a template.
We need to redesign this capability from scratch, using contemporary
programming approaches that are flexible enough to accommodate as many
different ways of running external programs as possible, and are
consistent with modern concepts such as XML, ontologies, controlled
vocabularies, etc. There may be examples to be found in other software
systems, particularly in web services and the semantic web.
What does it take to run a program?
Input
- files
- responses to interactive dialogs
- parameters
- command-line arguments
- environment variables
- ancillary data files (eg. scoring matricies)
Output
- terminal output
- log files
- output files - output files need to be read into readers,
editors, viewers. This could potentially be accomplished using a
standard like MIME or a hierarchical rendering model such as used in
bioMOBY.
Job control
- time
- memory
- disk resources
- priority
- threads or CPUs
- notification upon completion of job
- remote computing hosts
- local hosts
- HPC hosts eg. WestGrid
Sanity checking -
before a program is run, there need to be checks to make sure that the
input given is reasonable and sufficient for running the job that has
been requested. Where these criteria are not met, bioLegato should have
defaults to fall back upon, and/or should abort the job, giving the
user messages that describe in a meaningful way the reasons for
aborting.