def post(self): plate_id = self.get_argument('plate-id') concentrations = json_decode(self.get_argument('concentrations')) concentrations = np.asarray(concentrations) plate = Plate(plate_id) q_process = QuantificationProcess.create(self.current_user, plate, concentrations) pool_name = 'Pool - %s' % plate.external_id input_compositions = [] concentrations = q_process.concentrations total_vol = 0 for conc in concentrations: in_vol = conc[1] total_vol += in_vol input_compositions.append({ 'composition': conc[0], 'input_volume': in_vol, 'percentage_of_output': in_vol }) for ic in input_compositions: ic['percentage_of_output'] = ic['percentage_of_output'] / total_vol process = PoolingProcess.create(self.current_user, q_process, pool_name, total_vol, input_compositions) self.write({'process': process.id})
def post(self): plates_info = json_decode(self.get_argument('plates-info')) processes = [] for pinfo in plates_info: plate = Plate(pinfo['plate_id']) concentrations = np.asarray(pinfo['concentrations']) processes.append(QuantificationProcess.create( self.current_user, plate, concentrations).id) self.write({'processes': processes})
def create_quantification_process(user, plate): plate_config = plate.plate_configuration concentrations = np.around( np.random.rand(plate_config.num_rows, plate_config.num_columns), 6) quant_process = QuantificationProcess.create(user, plate, concentrations) return quant_process