Пример #1
0
 def _create_planned_rack_sample_transfer(self, **kw):
     if not 'volume' in kw:
         kw['volume'] = 0.000020
     if not 'source_sector_index' in kw:
         kw['source_sector_index'] = 0
     if not 'target_sector_index' in kw:
         kw['target_sector_index'] = 1
     if not 'number_sectors' in kw:
         kw['number_sectors'] = 4
     return PlannedRackSampleTransfer.get_entity(**kw)
Пример #2
0
 def _create_planned_rack_sample_transfer(self, **kw):
     if not 'volume' in kw:
         kw['volume'] = 0.000020
     if not 'source_sector_index' in kw:
         kw['source_sector_index'] = 0
     if not 'target_sector_index' in kw:
         kw['target_sector_index'] = 1
     if not 'number_sectors' in kw:
         kw['number_sectors'] = 4
     return PlannedRackSampleTransfer.get_entity(**kw)
Пример #3
0
 def __create_stock_to_prep_worklists(self):
     # This rack transfer worklist (transfer from pool stock rack to
     # preparation plate) is executed once for each quadrant.
     self.add_debug('Add worklist for transfer to preparation plate ...')
     label = self.STOCK_TO_PREP_TRANSFER_WORKLIST_LABEL \
             % (self.library_name)
     volume = self.__stock_to_prep_vol / VOLUME_CONVERSION_FACTOR
     rack_transfer = PlannedRackSampleTransfer.get_entity(volume, 1, 0, 0)
     worklist = PlannedWorklist(label=label,
                                planned_transfers=[rack_transfer])
     self.__last_worklist_index += 1
     self.__worklist_series.add_worklist(self.__last_worklist_index,
                                         worklist)
Пример #4
0
 def __create_prep_to_aliquot_worklist(self):
     # There is one rack transfer for each sector (many-to-one transfer).
     # Each transfer is executed once per aliquot plate.
     self.add_debug('Add worklist for transfer into aliquot plates ...')
     volume = ALIQUOT_PLATE_VOLUME / VOLUME_CONVERSION_FACTOR
     rack_transfers = []
     for sector_index in self.__quadrant_layouts.keys():
         rack_transfer = PlannedRackSampleTransfer.get_entity(
             volume, NUMBER_SECTORS, 0, sector_index)
         rack_transfers.append(rack_transfer)
     label = self.PREP_TO_ALIQUOT_TRANSFER_WORKLIST_LABEL % (
         self.library_name)
     worklist = PlannedWorklist(label=label,
                                planned_transfers=rack_transfers)
     self.__last_worklist_index += 1
     self.__worklist_series.add_worklist(self.__last_worklist_index,
                                         worklist)
Пример #5
0
 def __create_prep_to_aliquot_worklist(self):
     # There is one rack transfer for each sector (many-to-one transfer).
     # Each transfer is executed once per aliquot plate.
     self.add_debug("Add worklist for transfer into aliquot plates ...")
     volume = DEFAULT_ALIQUOT_PLATE_VOLUME / VOLUME_CONVERSION_FACTOR
     rack_transfers = []
     for sector_index in self.__sector_layouts.keys():
         rack_transfer = PlannedRackSampleTransfer.get_entity(volume, NUMBER_SECTORS, 0, sector_index)
         rack_transfers.append(rack_transfer)
     label = self.PREP_TO_ALIQUOT_TRANSFER_WORKLIST_LABEL % (self.library_name)
     worklist = PlannedWorklist(
         label,
         TRANSFER_TYPES.RACK_SAMPLE_TRANSFER,
         get_pipetting_specs_cybio(),
         planned_liquid_transfers=rack_transfers,
     )
     self.__worklist_series.add_worklist(self.__last_worklist_index, worklist)
     self.__last_worklist_index += 1
Пример #6
0
 def _create_planned_liquid_transfers(self):
     """
     Generates the planned rack transfer for the worklist.
     """
     volume = TransfectionParameters.TRANSFER_VOLUME \
              / VOLUME_CONVERSION_FACTOR
     try:
         prst = PlannedRackSampleTransfer.get_entity(
             volume, self.SECTOR_NUMBER, self.SOURCE_SECTOR_INDEX,
             self.TARGET_SECTOR_INDEX)
     except ValueError as err:
         msg = 'Invalid planned rack sample transfer (%d->%d, total %d).' \
               'Details: %s.' \
               % (self.SOURCE_SECTOR_INDEX, self.TARGET_SECTOR_INDEX,
                  self.SECTOR_NUMBER, err)
         self.add_error(msg)
     else:
         self._add_planned_transfer(prst)
Пример #7
0
 def _create_planned_liquid_transfers(self):
     """
     Generates the planned rack transfer for the worklist.
     """
     volume = TransfectionParameters.TRANSFER_VOLUME \
              / VOLUME_CONVERSION_FACTOR
     try:
         prst = PlannedRackSampleTransfer.get_entity(
                                                 volume,
                                                 self.SECTOR_NUMBER,
                                                 self.SOURCE_SECTOR_INDEX,
                                                 self.TARGET_SECTOR_INDEX)
     except ValueError as err:
         msg = 'Invalid planned rack sample transfer (%d->%d, total %d).' \
               'Details: %s.' \
               % (self.SOURCE_SECTOR_INDEX, self.TARGET_SECTOR_INDEX,
                  self.SECTOR_NUMBER, err)
         self.add_error(msg)
     else:
         self._add_planned_transfer(prst)
Пример #8
0
 def __make_stock_rack_worklist_series(self, label, volume, layout):
     # Builds a sector 0 -> sector 0 rack transfer worklist series.
     pip_specs_cy = get_pipetting_specs_cybio()
     wl_series = WorklistSeries()
     psts = []
     if layout is None:
         # Rack transfer (only for pool stock rack -> prep plate transfer).
         pst = PlannedRackSampleTransfer.get_entity(volume, 1, 0, 0)
         psts.append(pst)
         pwl_type = TRANSFER_TYPES.RACK_SAMPLE_TRANSFER
     else:
         # Sample transfers (for single stock transfer).
         for rack_pos in layout.get_positions():
             pst = PlannedSampleTransfer.get_entity(volume, rack_pos,
                                                    rack_pos)
             psts.append(pst)
         pwl_type = TRANSFER_TYPES.SAMPLE_TRANSFER
     wl = PlannedWorklist(label, pwl_type,
                          pip_specs_cy, planned_liquid_transfers=psts)
     wl_series.add_worklist(0, wl)
     return wl_series
Пример #9
0
 def __make_stock_rack_worklist_series(self, label, volume, layout):
     # Builds a sector 0 -> sector 0 rack transfer worklist series.
     pip_specs_cy = get_pipetting_specs_cybio()
     wl_series = WorklistSeries()
     psts = []
     if layout is None:
         # Rack transfer (only for pool stock rack -> prep plate transfer).
         pst = PlannedRackSampleTransfer.get_entity(volume, 1, 0, 0)
         psts.append(pst)
         pwl_type = TRANSFER_TYPES.RACK_SAMPLE_TRANSFER
     else:
         # Sample transfers (for single stock transfer).
         for rack_pos in layout.get_positions():
             pst = PlannedSampleTransfer.get_entity(volume, rack_pos,
                                                    rack_pos)
             psts.append(pst)
         pwl_type = TRANSFER_TYPES.SAMPLE_TRANSFER
     wl = PlannedWorklist(label,
                          pwl_type,
                          pip_specs_cy,
                          planned_liquid_transfers=psts)
     wl_series.add_worklist(0, wl)
     return wl_series