In simple Workﬂows all documents provided to the Workﬂow are grouped as a single set of documents which are used as input to a single invocation of the ﬁrst Step in the Workﬂow. Each Workﬂow Step will produce one or more output documents, all of which are grouped together and used as input into the next Step in the Workﬂow.
However, it is possible to create Workﬂows where each Step in the Workﬂow may be invoked in parallel on diﬀerent sets of documents. For example, if the ﬁrst Step in the Workﬂow uses the For Each Sequence / Extract Sequences From List Step, then each input sequence is placed into a separate document and the following Step will be invoked independently on each sequence. Each call to the following Step may produce one or more documents. Each of these sets of output documents are used independently as inputs to multiple invocations of the next Workﬂow Step. Alternatively you could group these results together again, using Group sequences or Group Documents to use as input to a single call to the next Workﬂow Step. No matter what document grouping or separation (For Each...) Operations are used, each Step in the Workﬂow is always run to completion on all data sets before starting on the next Step in the Workﬂow.
It is also possible to insert documents into later stages of the workﬂow, either from additional documents the user selects in the options when they ﬁrst start the workﬂow (using the Add document chosen when running workﬂow Step) or to use documents generated from earlier stages in the workﬂow (using the Combine With Earlier Document(s) Step). You can create branches in your workﬂows by using the Save Documents / Branch Step often in conjunction with a Filter Documents Step as the ﬁrst Step in each branch. For an example on branching and ﬁltering, see the sample ’Identify Organism’ Workﬂow.