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")