Skip to main content

Labware

Labware represents the containers that move through your system: plates, tip racks, troughs, etc.

Templates vs Instances

Orca distinguishes between:

  • Templates - Define a labware type at design time
  • Instances - Represent actual physical labware during execution

You work with templates when building workflows. Orca creates instances automatically at runtime.

Available Templates

PlateTemplate

Multi-well plates (96-well, 384-well, etc.):

from orca.sdk.labware import PlateTemplate
from pylabrobot.resources.thermo_fisher.plates import Thermo_Nunc_96_well_plate_1300uL_Rb

sample_plate = PlateTemplate(
"sample_plate", # Name
Thermo_Nunc_96_well_plate_1300uL_Rb, # PyLabRobot plate definition
None # Optional lid type
)

The second argument is a PyLabRobot plate factory function. See PyLabRobot's plate catalog.

TipRackTemplate

Pipette tip racks:

from orca.sdk.labware import TipRackTemplate

tips = TipRackTemplate(
"tips_96", # Name
tip_rack_factory, # PyLabRobot tip rack definition
has_tips=True # Whether rack starts with tips
)

AnyLabwareTemplate

Use AnyLabwareTemplate for generic steps that work with any labware type. For example, a delidding method might accept sample plates, tip boxes, or reagent plates - the same method works regardless of labware type:

from orca.sdk.labware import AnyLabwareTemplate

# This labware placeholder adapts to whatever is passed at runtime
generic_labware = AnyLabwareTemplate("generic_plate")

# Useful for methods that work with any labware
delid_method = MethodTemplate(
"delid",
actions=[Delid(resource=delidder, inputs=[generic_labware], outputs=[generic_labware])]
)

Using Labware in Actions

Actions reference labware templates in their inputs and outputs:

seal_action = Seal(
resource=sealer,
temperature=165,
duration=5,
inputs=[sample_plate], # Labware that must arrive
outputs=[sample_plate] # Labware present after action (defaults to same as inputs)
)

For most operations, outputs are the same as inputs. For operations that consume or create labware, inputs and outputs can differ.

Using Labware in Threads

Threads are associated with a single labware template:

plate_thread = ThreadTemplate(
labware_template=sample_plate, # Which labware this thread processes
start=start_location,
end=end_location,
methods=[method1, method2]
)

PyLabRobot Integration

Orca uses PyLabRobot labware definitions. Common sources:

# Corning plates
from pylabrobot.resources.corning.falcon.plates import Cor_Falcon_96_wellplate_340ul_Fb_Black

# Thermo Fisher plates
from pylabrobot.resources.thermo_fisher.plates import Thermo_Nunc_96_well_plate_1300uL_Rb

# Generic plates
from pylabrobot.resources import Cos_96_DW_1mL

Browse the PyLabRobot resources for available definitions.

Next Steps