BioLegato - PCD - Language Requirements
From Bioinformatics.Org Wiki
Back to BioLegato
Contents |
Look and feel
- Be able to include icons in pop up messages, menus, and JMenuItems (if possible).
- Mouse-over tool tips
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.
Sanity checking can be done internally when the "Run" button is clicked.
Sanity Checking Language
This can be accomplished by a conditions section; however, we will need the following language elements to perform the sanity checking properly:
- basic arithmetic: + - * /
- precedence: ( and ) or.... we could do polish notation
- comparisons: <, >, and =
- boolean operations: & and |
API errors
- file and directory permissions
- file not found
- directory not readable
- permissions
- blank strings - forced separated (parameter: nonblank)
Conditional/Dependent variables
Changing one menu item variable can affect the display of other menu items.
Examples of implementation:
- greying out
- hiding
- changing the parameters based on other variables
Example of the usefulness for conditional/dependent variables: This can be useful in programs like numseq. If translation is yes, then we need:
- reading frames
- aa code
- genetic code
otherwise those three items can be greyed out
Possible ideas
- adding a prefix parameter to command line variables. This would be especially useful with numerical variables - e.g. START. How this would work would be if the prefix was '--start=', then every instance of %START% would be replaced with '--start=%STARTVALUE%'
Interoperability
Seahawk
bioLegato can be a front end to the Seahawk API
Canvas
Everything is a text document. Display the Seahawk text area in the bioLegato canvas.
Menus
Seahawk API goes to MOBY central and gets meta data about thousands of web services. That could be translated into PCD, and then directly made into menus. One thing we might do is to cache metadata, rather than getting it on the fly each time the user right-clicks.