Source code for laborchestrator.start_up.example_processes.inc_read_process
from pythonlab.resources.services.moving import MoverServiceResource
from pythonlab.resources.services.analysis import PlateReaderServiceResource
from pythonlab.resources.services.labware_storage import LabwareStorageResource as ContainerStorageResource
from pythonlab.resources.services.incubation import IncubatorServiceResource
from pythonlab.resource import LabwareResource as ContainerResource
from pythonlab.process import PLProcess
[docs]
class IncReadProcess(PLProcess):
def __init__(self,
priority=10): # 0 has highest priority
self.num_mw_plates = 2 # different number
super().__init__(priority=priority)
[docs]
def create_resources(self):
self.hotel = ContainerStorageResource(proc=self, name="Carousel", capacity=200)
self.incubator = IncubatorServiceResource(proc=self, name="Incubator1")
self.robot_arm = MoverServiceResource(proc=self, name="Mover")
self.reader = PlateReaderServiceResource(proc=self, name="Plate_Reader")
self.containers = [ContainerResource(proc=self, name=f"expression_cont_{cont}", lidded=True, filled=True)
for cont in range(self.num_mw_plates)]
self.containers[0].priority = 2
[docs]
def init_service_resources(self):
# setting start position of containers
super().init_service_resources()
for cont in self.containers:
cont.set_start_position(
self.hotel, self.hotel.next_free_position+14)
[docs]
def process(self):
incubation_duration = 120
cont1 = self.containers[0]
for cont in self.containers:
self.robot_arm.read_barcode(cont)
# move to incubator
self.robot_arm.move(cont, target_loc=self.incubator)
# incubate
self.incubator.incubate(cont, duration=incubation_duration, temperature=310)
if cont == cont1:
# move to reader
self.robot_arm.move(cont, target_loc=self.reader, lidded=False)
# make absorbance measurement
self.reader.single_read(cont, method='211001_varioskan_single_well_600', duration=60)
# move back to hotel
for cont in self.containers:
if cont == cont1:
self.robot_arm.move(cont, target_loc=self.hotel, lidded=True)
else:
self.robot_arm.move(cont, target_loc=self.hotel, position=30, lidded=True)
print("FIN")