EMBOSS: C2 Command Line Syntax

The command line offers great flexibility.


  1. Is it too flexible? The flexibility is useful, but should be hidden from most users.
  2. All applications have a "-help" option which display the full command line syntax.
  3. Any values prompted for are "Required"
  4. A command line switch "-option" makes the "optiional parameters" required.
  5. There are other options which are never prompted. To make the users feel good about discovering them, we call these "advanced".
  6. Error messages need to be carefully designed to indicate problems with the command line syntax. Some more work is stil needed on these.
  7. Each new data type in the ACD file adds new qualifiers. For sequences these start "-s", for output sequences they start "-os".
  8. Some data types (e.g. sequences) generate "associated qualifiers". Like VMS command line syntax, these are positional. If they follow a seuqnece (for example) they apply only to that sequence. At the start of the command line, or anywhere else, they refer to all sequences.
  9. There are switches using variables and command line switches to control the use of standard input and standard output. These are:
    Runs as a Unix filter, reading by default from stdin and writing by default to stdout. As stdin is used for input, there are no prompts to the user.
    Uses stdout as the default for output. stdin is available so the user is prompted, even for the output file.
    Like -default on VMS, no prompts to the user and all unspecified values must have acceptable defaults for the application to run.
  10. There are problems with placeholders for datatypes with associated qualifiers - to allow the user to accept the default for a parameter or qualifiers but still specify position-sensitive values. For example, stdin for sequence input with "-sformat" specified for that sequence only.
  11. Possibly "." can be used as a placeholder. If a directory name is needed, it would have to be "./" if it did not default to the current directory. No solution seems ideal. In VMS the first parameter is required if the second is to be specified.
  12. A recommendation to use qualifiers for all parameters and to number all associated qualifiers would work around this. Any parameter can be specified as a qualifier instead.
  13. "--" may be required to terminate qualifiers and allow parameters starting with "-" or "/" but so far we have not found a need to implement this.