The element allows you to join two data flows into a single data flow, i.e. to join messages from two input ports into concatenated messages and send them to the output. The concatenation approach is determined by the Multiplexing rule parameter.
There are the following multiplexing rules:
- 1 to 1
- 1 to many
- Many to 1
Rule: 1 to 1
This rule means that the multiplexer gets one message from the first input port and one message from the second input port, joins them into a single message, and transfers it to the output. This procedure is repeated while there are available messages in both input slots.
See an example workflow below:
As you can see:
- There are elements A, B, C, and the Multiplexer.
- A and B are data readers.
- A gets three data objects as input. These objects are denoted as I, II, and III. A has two slots, so the input data objects may also have various data. For example, this may be "Sequence" and "Set of annotations" slots, and the data are read from three GenBank files.
- B gets two data objects as input. These objects are denoted as IV and V. B also has two slots in this example.
- C gets messages in the workflow from B. It has one output slot. For example, this may be a "Set of annotations" slot, i.e. additional annotations were calculated for input objects IV and V.
- Now in the Multiplexer element we have three messages from A, that correspond to the three input objects I, II, and III. And we have two messages from B and C elements, that correspond to the two input objects IV and V with additional information, calculated in C.
- The multiplexing rule is "1 to 1". This means that we only take into account messages that have a pair. Thus, "Message 3" is ignored in this case. However, the multiplexer concatenates the other messages. "Message 1" is concatenated with "Message 6", and "Message 8" is produced. "Message 2" is concatenated with "Message 7", and "Message 9" is produced.
Rule: 1 to many
This rule means that the multiplexer gets one message from the first input port, joins it with each message from the second input port, and transfers the joined messages to the output. This procedure is repeated for each message from the first input port.
See an example workflow below:
Also see the Find Substrings at Sequences, Search for TFBS examples with Multiplexer element.
Parameters in GUI
Parameter | Description | Default value |
---|---|---|
Multiplexing rule | How to multiplex the input data flows. Available values are:
| 1 to 1 |
If empty input | Specifies how to multiplex the data if one of input ports produces no data. It can be used for 1 to 1 multiplexing rule. Available values are:
| Fill by empty values |
Parameters in Workflow File
Type: multiplexer
Parameter | Parameter in the GUI | Type |
---|---|---|
multiplexing-rule | Multiplexing rule | string |
empty-input-action | If empty input | string |
Input/Output Ports
The Multiplexer has ports but has not slots, because its use the whole data flow.
The element has 2 input port:
Name in GUI: First input data flow
Name in Workflow File: input-data-1
Name in GUI:Second input data flow
Name in Workflow File: input-data-2
The element has 1 output port:
Name in GUI: Multiplexed output data flow
Name in Workflow File: output-data