Composing program flow


  1. Piecing together a program.

    1. WILDFIRE consists on several types of components to enable the user to piece together lonely and disparate programs, and have them work together to perform a workflow.
    2. This beta version comes with the whole suite of EMBOSS modules for users to piece together their EMBOSS workflow. Each program is represented as an object similar to the one shown here.
    3. To piece together several of these objects, you can do this:
      • A simple pipeline.

        Note: a program object can only be link to one other object.
      • A split.

      • A join.

    4. To allow for greater expression of workflow, WILDFIRE has several other modules to aid in composing more complex workflow.
      • pfor

        Its function is as a multi-split where program objects within its bound is duplicated. pfor takes in parameters similar to the for loop we see in C/C++ and java. The difference is that it takes in only integer values and it increment in unit 1 from the starting value to the ending value.
      • pforeach

        pforeach takes in two parameters, one is the variable name and the other is a regular expression. It is also a multi-split object but the difference between pforeach and pfor is that pforeach searches for files with patterns matching the regular expression in the working directory during execution and it expands parallelly the workflow within its body by the number of matches that it finds.
      • if-else

        This module execute a test job (object), and then executes either one of its branches depending on whether the test job prints to the standard output. A true state is recognise if nothing is printed to the standard out and false if standard out is not empty.
      • while

        This module has two branches: a true state path and state path. Like the if-else, it requires a test job to determine the state. If the test job evaluates to true, it continues the loop; it breaks out if the test job evaluates to false.
  2. What is illegal and how you will be warned.

    1. Objects' ports cannot be link with more than one edge. This is handled automatically by the editor.
    2. A link cannot go across object bodies, this is rather complicated to discuss here but pictures might be easier.
      However, if a mistake is made, an error will occur if the user attempts to build the project. Every affected object will be highlighted with this symbol .
    3. Arbitrary loops and additionally cycles are not allowed,so the while module does not have a closing edge. A build error, symbol , will also appear on each affected object if a user attempts to build the project with such cycles.

The icons you see here are licensed with GPL LicenseLGPL License.
Copyright © 2004 CHUA Ching Lian, Bioinformatics Institute, A*Star, Singapore.