Operator Examples

This page contains practical examples for closure-based operators.

groupTupleBy

Channel
  .of([meta: [subject: 'sub-01'], file: 'a.nii.gz'],
      [meta: [subject: 'sub-01'], file: 'b.nii.gz'],
      [meta: [subject: 'sub-02'], file: 'c.nii.gz'])
  .groupTupleBy { it.meta.subject }
  .view()

joinBy

left  = Channel.of([id: 'sub-01', t1: 't1.nii.gz'])
right = Channel.of([id: 'sub-01', bold: 'bold.nii.gz'])

left.joinBy(right) { it.id }
    .view()

combineBy

subjects = Channel.of([id: 'sub-01', age: 25])
sessions = Channel.of([id: 'sub-01', session: 'ses-01'],
                      [id: 'sub-01', session: 'ses-02'])

subjects.combineBy(sessions) { it.id }
        .view()

See Operator usage for signatures and options.

Next Step

If you are migrating from built-in tuple operators, continue with Closure Operators Migration.