Composite Blocks
A composite block packages an entire workflow into a single reusable node. Once packaged, it behaves like any other block — drag it from the side panel, wire it up, and run it — but internally it runs the whole sub-pipeline you built. This is how you turn a working analysis into something you (and your lab) can reuse across sessions and projects.
Why use them
- Reuse. Build a pipeline once, then apply it to many datasets without rebuilding the graph each time.
- Abstraction. Hide a complex 15-block pipeline behind a clean node with a few input ports and a few outputs.
- Sharing. A composite block's definition is embedded in any workflow that
uses it, so a saved
.jsonopens on a colleague's machine with no extra install (subject to the code-consent gate).
Creating a composite block
- Build and test a normal workflow on the canvas.
- Click ⊞ Package as block in the canvas tab bar to open the packaging wizard.
- Step 1 — Promote inputs. Choose which internal block parameters (e.g. file paths) become input ports on the composite's surface, and give each an external label. Parameters you don't promote stay fixed inside.
- Step 2 — Expose outputs. Choose which internal output ports become the composite's output ports, and label them.
- Step 3 — Metadata. Give the block a name,
block_type_id, category, and description.
Click Save composite block. It appears in the side panel (typically under a Composite category) and is available in every workflow.
Promote what changes, fix what doesn't
Promote the inputs that differ per run (session paths, a direction flag) and leave stable analysis parameters baked in. That gives a clean, purpose-built node instead of exposing dozens of knobs.
Using a composite block
Drag it from the side panel onto any canvas and connect its ports like any other block. At run time it executes its internal pipeline; its promoted inputs feed the right internal blocks, and its exposed outputs carry the internal results forward.
Composites participate in smart caching just like ordinary blocks, and can be nested — a composite may itself contain other composites.
Inspecting the internals: Drill in
Click ⊞ Drill in at the bottom of a composite node to open its internal workflow in a nested canvas tab. You can read the wiring and even double-click internal blocks to edit their parameters without leaving the view.
Walkthrough
Tutorial 1, Part 4
packages the theta phase-precession pipeline into a PhasePrecession composite
block — promoting three file-path inputs and exposing a correlation output — then
uses two copies of it to analyse two sessions in parallel.