Stream and Markers
stream(...) projects a macro sample into a stream of discrete units.
Marker panels can be declared with markers(...) and attached to a stream. This belongs with material-side workflows: it maps material from a container into unit-level iteration rather than describing a separate execution family.
Markers
let panel = markers(["CD3", "CD19"]);markers([...]) declares a controlled set of marker names for later use. Marker names are not hard-coded by the grammar.
Stream
let events = stream(sample = cells, unit = single_cell, panel = panel);Arguments:
| Argument | Required | Meaning |
|---|---|---|
sample | yes | Input macro sample container. |
unit | yes | Unit type, such as single_cell, molecule, or ion. |
panel | no | Marker panel reference. |
stream(...) returns a unit_stream_ref.
Unit Lifetime
Units do not exist independently outside the stream workflow. They are normally introduced by a repeat binding over a stream:
repeat cell in events {
keep_tube << [cell];
}When a unit is collected back into a physical container, use transfer syntax:
keep_tube << [cell];Examples
let molecules = stream(sample = prepared_tube, unit = molecule);
let ions = stream(sample = ion_chamber, unit = ion);Streams are for discrete unit workflows. They are not a general replacement for container transfer.
