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.