def make_default_setup(date, plan, project=None): if not project: project = get_validation_project() plan_name = plan.get('name', None) or plate_layouts[plan['plate_layout']][1] plate_setup = PlateSetup(project_id=project.id, name=plan_name) plate_setup.locked = False plate_setup.completed = False if type(plan['execution_order']) == type([]): execution_order = plan['execution_order'] else: execution_order = execution_orders[plan['execution_order']] # TODO add status steps setup = dict(consumable=consumable_layouts[plan['consumable']], execution_order=execution_order, plate_layout=plate_layouts[plan['plate_layout']], progress=progress(num_readers=len(execution_order))) plate_setup.time_updated = datetime.now() plate_setup.author_id = plan['operator'].id plate_setup.setup = json.dumps(setup) plate_setup.dr_oil = 22 plate_setup.dg_oil = 14 plate_setup.master_mix = 12 plate_setup.droplet_generation_method = 201 plate_setup.thermal_cycler_id = plan.get('thermal_cycler', None) plate_setup.prefix = make_setup_name(plate_setup) return plate_setup
def generate_production_setups(dr, operator, weekdays_ahead=0, day_of_week_override=None): date_str = weekdays_ahead_date(weekdays_ahead).strftime('%m-%d') project = get_validation_project() carryover_plate_setup = PlateSetup(project_id=project.id, name="%s_Carryover%s" % (date_str, dr.code[1:]), locked=False, completed=False, time_updated=datetime.now(), author_id=operator.id, dr_oil=22, dg_oil=14, master_mix=12, droplet_generation_method=201) carryover_plate_setup.setup = json.dumps( dict(consumable=consumable_layouts['standard'], plate_layout=plate_layouts['prod'], execution_order=[dr.name], progress=progress(num_readers=1)) ) carryover_plate_setup.prefix = make_setup_name(carryover_plate_setup) colorcomp_plate_setup = PlateSetup(project_id=project.id, name="%s_ColorComp%s" % (date_str, dr.code[1:]), locked=False, completed=False, time_updated=datetime.now(), author_id=operator.id, dr_oil=22, dg_oil=14, master_mix=12, droplet_generation_method=201) colorcomp_plate_setup.setup = json.dumps( dict(consumable=consumable_layouts['half'], plate_layout=plate_layouts['colorcomp'], execution_order=[dr.name, dr.name, dr.name, dr.name, dr.name, dr.name, dr.name, dr.name], progress=progress(num_readers=8)) ) colorcomp_plate_setup.prefix = make_setup_name(colorcomp_plate_setup) return carryover_plate_setup, colorcomp_plate_setup