Example #1
0
 def _create_iso_candidates(self, tube_rack_fac, tube_rack_specs_matrix,
                            tube_fac, item_status_managed,
                            organization_cenix, stock_sample_fac):
     ss_agg = get_root_aggregate(IStockSample)
     rack_agg = get_root_aggregate(IRack)
     tube_bc = 9000000000
     vol = 1e-4
     row_idx = 0
     col_idx = 0
     tube_rack = tube_rack_fac(label='test_iso_candidates',
                               specs=tube_rack_specs_matrix,
                               status=get_item_status_managed())
     rack_agg.add(tube_rack)
     mdp_agg = get_root_aggregate(IMoleculeDesignPool)
     for mdp_id in [288282, 3349397, 3430173, 1139866, 199937]:
         tube = tube_fac(barcode=str(tube_bc),
                         status=item_status_managed)
         col_idx += 1
         tube_bc += 1
         tube_rack.add_tube(
                     tube,
                     get_rack_position_from_indices(row_idx, col_idx))
         mdp = mdp_agg.get_by_id(mdp_id)
         ss = stock_sample_fac(
                         volume=vol,
                         container=tube,
                         molecule_design_pool=mdp,
                         supplier=organization_cenix,
                         molecule_type=mdp.molecule_type,
                         concentration=mdp.default_stock_concentration)
         ss_agg.add(ss)
Example #2
0
 def _create_iso_candidates(self, tube_rack_fac, tube_rack_specs_matrix,
                            tube_fac, item_status_managed,
                            organization_cenix, stock_sample_fac):
     ss_agg = get_root_aggregate(IStockSample)
     rack_agg = get_root_aggregate(IRack)
     tube_bc = 9000000000
     vol = 1e-4
     row_idx = 0
     col_idx = 0
     tube_rack = tube_rack_fac(label='test_iso_candidates',
                               specs=tube_rack_specs_matrix,
                               status=get_item_status_managed())
     rack_agg.add(tube_rack)
     mdp_agg = get_root_aggregate(IMoleculeDesignPool)
     for mdp_id in [288282, 3349397, 3430173, 1139866, 199937]:
         tube = tube_fac(barcode=str(tube_bc), status=item_status_managed)
         col_idx += 1
         tube_bc += 1
         tube_rack.add_tube(
             tube, get_rack_position_from_indices(row_idx, col_idx))
         mdp = mdp_agg.get_by_id(mdp_id)
         ss = stock_sample_fac(
             volume=vol,
             container=tube,
             molecule_design_pool=mdp,
             supplier=organization_cenix,
             molecule_type=mdp.molecule_type,
             concentration=mdp.default_stock_concentration)
         ss_agg.add(ss)
Example #3
0
 def __get_empty_racks(self, count):
     rack_specs_agg = get_root_aggregate(ITubeRackSpecs)
     rs_matrix = rack_specs_agg.get_by_slug('matrix0500')
     is_managed = get_item_status_managed()
     rack_agg = get_root_aggregate(ITubeRack)
     rack_agg.filter = eq(total_containers=0,
                          specs=rs_matrix,
                          status=is_managed)
     rack_agg.slice = slice(0, count)
     return list(iter(rack_agg))
Example #4
0
 def __prepare_pool_stock_rack(self, empty_rack, sector_idx):
     tube_specs_agg = get_root_aggregate(ITubeSpecs)
     ts_matrix = tube_specs_agg.get_by_slug('matrix0500')
     is_managed = get_item_status_managed()
     pos_idxs_96 = zip([1, 1, 0, 0], [1, 1, 1, 1])
     (row_idx, col_idx) = pos_idxs_96[sector_idx]
     tube = Tube.create_from_data(
         dict(barcode=str(9999999990 + tube_counter.next()),
              status=is_managed,
              specs=ts_matrix))
     pos = get_rack_position_from_indices(row_idx, col_idx)
     empty_rack.add_tube(tube, pos)
Example #5
0
File: job.py Project: papagr/TheLMA
 def __get_status(self):
     try:
         status = self.__status
     except AttributeError:
         pp = self.preparation_plates
         # Detect if this ISO job is done (it is sufficient to check the
         # status of the first preparation plate).
         item_status_managed = get_item_status_managed()
         if len(pp) > 0 and pp[0].status == item_status_managed:
             status = ISO_STATUS.DONE
         else:
             status = ISO_STATUS.QUEUED
     return status
Example #6
0
 def __get_status(self):
     try:
         status = self.__status
     except AttributeError:
         pp = self.preparation_plates
         # Detect if this ISO job is done (it is sufficient to check the
         # status of the first preparation plate).
         item_status_managed = get_item_status_managed()
         if len(pp) > 0 and pp[0].status == item_status_managed:
             status = ISO_STATUS.DONE
         else:
             status = ISO_STATUS.QUEUED
     return status
Example #7
0
 def run(self):
     src_rack = self.__get_rack(self.__source_barcode)
     for tgt_bc in self.__target_barcodes:
         tgt_rack = self.__get_rack(tgt_bc)
         for pos, src_cnt_loc in iteritems_(src_rack.container_positions):
             if not src_cnt_loc.container is None:
                 src_cnt = src_cnt_loc.container
                 if not src_cnt.sample is None:
                     src_smpl = src_cnt.sample
                     tgt_cnt = tgt_rack.container_positions[pos]
                     tgt_smpl = tgt_cnt.make_sample(self.__transfer_volume)
                     for sm in src_smpl.sample_molecules:
                         tgt_smpl.make_sample_molecule(sm.molecule, sm.concentration)
         tgt_rack.status = get_item_status_managed()
Example #8
0
 def run(self):
     src_rack = self.__get_rack(self.__source_barcode)
     for tgt_bc in self.__target_barcodes:
         tgt_rack = self.__get_rack(tgt_bc)
         for pos, src_cnt_loc in iteritems_(src_rack.container_positions):
             if not src_cnt_loc.container is None:
                 src_cnt = src_cnt_loc.container
                 if not src_cnt.sample is None:
                     src_smpl = src_cnt.sample
                     tgt_cnt = tgt_rack.container_positions[pos]
                     tgt_smpl = tgt_cnt.make_sample(self.__transfer_volume)
                     for sm in src_smpl.sample_molecules:
                         tgt_smpl.make_sample_molecule(
                             sm.molecule, sm.concentration)
         tgt_rack.status = get_item_status_managed()
Example #9
0
 def __create_rack_samples(self, layout, design_rack):
     """
     Generates the sample for each experiment plate belonging to a particular
     experiment design rack. The volume is fixed
     (:attr:`FINAL_SAMPLE_VOLUME`), the molecule are stored in the
     :attr:`_pool_molecule_map` and positions and concentrations are
     derived from the layout.
     """
     without_pool_data = isinstance(layout, RackLayout)
     design_rack_label = design_rack.label
     for exp_rack in self._experiment_racks[design_rack_label]:
         plate = exp_rack.rack
         if without_pool_data:
             positions = layout.get_positions()
             self.__add_samples_without_pools(positions, plate)
         else:
             self.__add_samples_with_pools(layout, plate, design_rack_label)
         if self.has_errors(): break
         plate.status = get_item_status_managed()
Example #10
0
 def __create_rack_samples(self, layout, design_rack):
     """
     Generates the sample for each experiment plate belonging to a particular
     experiment design rack. The volume is fixed
     (:attr:`FINAL_SAMPLE_VOLUME`), the molecule are stored in the
     :attr:`_pool_molecule_map` and positions and concentrations are
     derived from the layout.
     """
     without_pool_data = isinstance(layout, RackLayout)
     design_rack_label = design_rack.label
     for exp_rack in self._experiment_racks[design_rack_label]:
         plate = exp_rack.rack
         if without_pool_data:
             positions = layout.get_positions()
             self.__add_samples_without_pools(positions, plate)
         else:
             self.__add_samples_with_pools(layout, plate, design_rack_label)
         if self.has_errors(): break
         plate.status = get_item_status_managed()
Example #11
0
 def run(self):
     layout_map = {}
     for sector, lfn in enumerate((self.__layout_filename_q1,
                                   self.__layout_filename_q2,
                                   self.__layout_filename_q3,
                                   self.__layout_filename_q4)):
         layout_map.update(self.__parse_layout_file(sector, lfn))
     pool_map = self.__get_md_pool_map(set(layout_map.values()))
     stock_conc_map = self.__find_stock_concentrations(pool_map)
     pool_tube_barcode_map = self.__get_tube_barcode_map(pool_map,
                                                         stock_conc_map)
     tube_map = self.__get_tube_map(pool_tube_barcode_map.values())
     tgt_rack = self.__get_target_rack(self.__target_barcode)
     for pos_label, pool_id in layout_map.iteritems():
         pos = get_rack_position_from_label(pos_label)
         cnt = tgt_rack.container_positions[pos]
         smpl = cnt.make_sample(self.__iso_volume)
         tube = tube_map[pool_tube_barcode_map[pool_id]]
         sm_conc = \
             self.__iso_concentration / len(tube.sample.sample_molecules)
         for sm in tube.sample.sample_molecules:
             smpl.make_sample_molecule(sm.molecule, sm_conc)
     tgt_rack.status = get_item_status_managed()