def _populate_iso(self, iso, layout): StockSampleCreationIsoPopulator._populate_iso(self, iso, layout) # Create sector preparation plates. library_name = self.iso_request.label ir_specs_96 = get_reservoir_specs_standard_96() plate_specs_96 = get_rack_specs_from_reservoir_specs(ir_specs_96) ir_specs_384 = get_reservoir_specs_standard_384() plate_specs_384 = get_rack_specs_from_reservoir_specs(ir_specs_384) future_status = get_item_status_future() sec_layout_map = get_sector_layouts_for_384_layout(layout) # Create preparation plates. for sec_idx in range(NUMBER_SECTORS): if not sec_idx in sec_layout_map: continue # TODO: Move label creation to LABELS class. prep_label = self.PREP_PLATE_LABEL_PATTERN \ % (library_name, iso.layout_number, DEFAULT_PREPARATION_PLATE_CONCENTRATION, sec_idx + 1) prep_plate = plate_specs_96.create_rack(prep_label, future_status) sec_layout = sec_layout_map[sec_idx] iso.add_sector_preparation_plate(prep_plate, sec_idx, sec_layout.create_rack_layout()) # Create aliquot plates. for i in range(self.iso_request.number_aliquots): # TODO: Move label creation to LABELS class. aliquot_label = self.ALIQUOT_PLATE_LABEL_PATTERN \ % (library_name, iso.layout_number, DEFAULT_ALIQUOT_PLATE_CONCENTRATION, i + 1) aliquot_plate = plate_specs_384.create_rack(aliquot_label, future_status) iso.add_aliquot_plate(aliquot_plate)
def __populate_isos(self): """ Adds molecule design set, library layout and plates to the picked ISOs. """ self.add_debug('Create ISOs ...') ir_specs_96 = get_reservoir_specs_standard_96() plate_specs_96 = get_rack_specs_from_reservoir_specs(ir_specs_96) ir_specs_384 = get_reservoir_specs_standard_384() plate_specs_384 = get_rack_specs_from_reservoir_specs(ir_specs_384) future_status = get_item_status_future() library_name = self._iso_request.plate_set_label md_type = \ self.molecule_design_library.molecule_design_pool_set.molecule_type while len(self.__picked_isos) > 0: lci = self.__picked_isos.pop(0) library_layout = self._library_layouts.pop(0) lci.rack_layout = library_layout.create_rack_layout() lci.molecule_design_pool_set = \ library_layout.get_pool_set(md_type) layout_number = lci.layout_number # create source plates for sector_index in self._quadrant_positions.keys(): prep_label = self.PREP_PLATE_LABEL_PATTERN % ( library_name, layout_number, PREPARATION_PLATE_CONCENTRATION, (sector_index + 1)) prep_plate = plate_specs_96.create_rack(label=prep_label, status=future_status) LibrarySourcePlate(iso=lci, plate=prep_plate, sector_index=sector_index) # create aliquot plates for i in range(STARTING_NUMBER_ALIQUOTS): aliquot_label = self.ALIQUOT_PLATE_LABEL_PATTERN % ( library_name, layout_number, ALIQUOT_PLATE_CONCENTRATION, (i + 1)) aliquot_plate = plate_specs_384.create_rack( label=aliquot_label, status=future_status) IsoAliquotPlate(iso=lci, plate=aliquot_plate) self.__new_isos.append(lci)
def __populate_isos(self): """ Adds molecule design set, library layout and plates to the picked ISOs. """ self.add_debug('Create ISOs ...') ir_specs_96 = get_reservoir_specs_standard_96() plate_specs_96 = get_rack_specs_from_reservoir_specs(ir_specs_96) ir_specs_384 = get_reservoir_specs_standard_384() plate_specs_384 = get_rack_specs_from_reservoir_specs(ir_specs_384) future_status = get_item_status_future() library_name = self._iso_request.plate_set_label md_type = \ self.molecule_design_library.molecule_design_pool_set.molecule_type while len(self.__picked_isos) > 0: lci = self.__picked_isos.pop(0) library_layout = self._library_layouts.pop(0) lci.rack_layout = library_layout.create_rack_layout() lci.molecule_design_pool_set = \ library_layout.get_pool_set(md_type) layout_number = lci.layout_number # create source plates for sector_index in self._quadrant_positions.keys(): prep_label = self.PREP_PLATE_LABEL_PATTERN % (library_name, layout_number, PREPARATION_PLATE_CONCENTRATION, (sector_index + 1)) prep_plate = plate_specs_96.create_rack(label=prep_label, status=future_status) LibrarySourcePlate(iso=lci, plate=prep_plate, sector_index=sector_index) # create aliquot plates for i in range(STARTING_NUMBER_ALIQUOTS): aliquot_label = self.ALIQUOT_PLATE_LABEL_PATTERN % ( library_name, layout_number, ALIQUOT_PLATE_CONCENTRATION, (i + 1)) aliquot_plate = plate_specs_384.create_rack(label=aliquot_label, status=future_status) IsoAliquotPlate(iso=lci, plate=aliquot_plate) self.__new_isos.append(lci)
def get_critical_iso_concentration(cls, stock_concentration): """ Returns the critical ISO concentration in ul. ISO concentrations that are larger than this value might cause slight inaccuracies in the concentration when using the Biomek (due to the transfer volume step width of 0.1 ul). :param stock_concentration: The stock concentration for molecule design pool in nM. :type stock_concentration: positive number :return: critical ISO concentration in ul. """ rs = get_reservoir_specs_standard_96() std_96_min_dead_vol = rs.min_dead_volume * VOLUME_CONVERSION_FACTOR min_biomek_transfer_vol = get_min_transfer_volume( PIPETTING_SPECS_NAMES.BIOMEK) crit_iso_conc = stock_concentration \ / ((std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME) \ / (std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME \ - min_biomek_transfer_vol)) return crit_iso_conc
def get_critical_iso_concentration(cls, stock_concentration): """ Returns the critical ISO concentration in ul. ISO concentrations that are larger than this value might cause slight inaccuracies in the concentration when using the Biomek (due to the transfer volume step width of 0.1 ul). :param stock_concentration: The stock concentration for molecule design pool in nM. :type stock_concentration: positive number :return: critical ISO concentration in ul. """ rs = get_reservoir_specs_standard_96() std_96_min_dead_vol = rs.min_dead_volume * VOLUME_CONVERSION_FACTOR min_biomek_transfer_vol = get_min_transfer_volume( PIPETTING_SPECS_NAMES.BIOMEK) crit_iso_conc = stock_concentration \ / ((std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME) \ / (std_96_min_dead_vol + cls.MINIMUM_ISO_VOLUME \ - min_biomek_transfer_vol)) return crit_iso_conc