Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-Lab-OS into 37-biomek-i5i7

This commit is contained in:
qxw138
2025-06-06 13:18:42 +08:00
4 changed files with 3921 additions and 538 deletions

View File

@@ -290,20 +290,29 @@ class LiquidHandlerBiomek(LiquidHandlerAbstract):
处理Biomek的液体转移操作。 处理Biomek的液体转移操作。
""" """
items = []
asp_params = self.aspirate_techniques.get(aspirate_techniques, {}) asp_params = self.aspirate_techniques.get(aspirate_techniques, {})
dis_params = self.dispense_techniques.get(dispense_techniques, {}) dis_params = self.dispense_techniques.get(dispense_techniques, {})
asp_params['Position'] = source
dis_params['Position'] = target
asp_params['Volume'] = str(volume)
dis_params['Volume'] = str(volume)
items.append(asp_params)
items.append(dis_params)
transfer_params = { transfer_params = {
"Span8": False, "Span8": False,
"Pod": "Pod1", "Pod": "Pod1",
"items": {}, "items": [],
"Wash": False, "Wash": False,
"Dynamic?": True, "Dynamic?": True,
"AutoSelectActiveWashTechnique": False, "AutoSelectActiveWashTechnique": False,
"ActiveWashTechnique": "", "ActiveWashTechnique": "",
"ChangeTipsBetweenDests": False, "ChangeTipsBetweenDests": True,
"ChangeTipsBetweenSources": True, "ChangeTipsBetweenSources": False,
"DefaultCaption": "", "DefaultCaption": "",
"UseExpression": False, "UseExpression": False,
"LeaveTipsOn": False, "LeaveTipsOn": False,
@@ -320,29 +329,22 @@ class LiquidHandlerBiomek(LiquidHandlerAbstract):
"SplitVolume": False, "SplitVolume": False,
"SplitVolumeCleaning": False, "SplitVolumeCleaning": False,
"Stop": "Destinations", "Stop": "Destinations",
"TipLocation": "BC1025F", "TipLocation": "BC230",
"UseCurrentTips": False, "UseCurrentTips": False,
"UseDisposableTips": True, "UseDisposableTips": False,
"UseFixedTips": False, "UseFixedTips": False,
"UseJIT": True, "UseJIT": True,
"UseMandrelSelection": True, "UseMandrelSelection": True,
"UseProbes": [True, True, True, True, True, True, True, True], "UseProbes": [True, True, True, True, True, True, True, True],
"WashCycles": "1", "WashCycles": "4",
"WashVolume": "110%", "WashVolume": "110%",
"Wizard": False "Wizard": False
} }
items: dict = {}
items["Source"] = source
items["Destination"] = target
items["Volume"] = volume
transfer_params["items"] = items transfer_params["items"] = items
transfer_params["Solvent"] = asp_params['Solvent'] transfer_params["Solvent"] = 'Water'
transfer_params["TipLocation"] = tip_rack transfer_params["TipLocation"] = tip_rack
transfer_params.update(asp_params)
transfer_params.update(dis_params)
self.temp_protocol["steps"].append(transfer_params) self.temp_protocol["steps"].append(transfer_params)
return return
@@ -612,20 +614,31 @@ if __name__ == "__main__":
''' '''
labware_with_liquid = '''
[ { labware_with_liquid = '''
"id": "stock plate on P1", [ {
"parent": "deck", "id": "stock plate on P1",
"slot_on_deck": "P1", "parent": "deck",
"class_name": "nest_12_reservoir_15ml", "slot_on_deck": "P1",
"liquid_type": [ "class_name": "nest_12_reservoir_15ml",
"master_mix" "liquid_type": [
], "master_mix"
"liquid_volume": [10000], ],
"liquid_input_wells": [ "liquid_volume": [10000],
"A1" "liquid_input_wells": [
] "A1"
}, ]
},
{
"id": "Tip Rack BC230 TL2",
"parent": "deck",
"slot_on_deck": "TL2",
"class_name": "BC230",
"liquid_type": [],
"liquid_volume": [],
"liquid_input_wells": [
]
},
{ {
"id": "Tip Rack BC230 TL2", "id": "Tip Rack BC230 TL2",
"parent": "deck", "parent": "deck",
@@ -813,30 +826,30 @@ if __name__ == "__main__":
''' '''
handler = LiquidHandlerBiomek()
handler.temp_protocol = {
"meta": {},
"labwares": [],
"steps": []
}
input_steps = json.loads(steps_info)
labwares = json.loads(labware_with_liquid)
for step in input_steps['steps']: handler = LiquidHandlerBiomek()
if step['operation'] != 'transfer':
continue handler.temp_protocol = {
parameters = step['parameters'] "meta": {},
tip_rack=parameters['tip_rack'] "labwares": [],
# 找到labwares中与tip_rack匹配的项的id "steps": []
tip_rack_id = [lw['id'] for lw in labwares if lw['class_name'] == tip_rack][0] }
input_steps = json.loads(steps_info)
labwares = json.loads(labware_with_liquid)
for step in input_steps['steps']:
if step['operation'] != 'transfer':
continue
parameters = step['parameters']
handler.transfer_biomek(source=parameters['source'],
target=parameters['target'],
volume=parameters['volume'],
tip_rack=parameters['tip_rack'],
aspirate_techniques='MC P300 high',
dispense_techniques='MC P300 high'
)
handler.transfer_biomek(source=parameters['source'],
target=parameters['target'],
volume=parameters['volume'],
tip_rack=tip_rack_id,
aspirate_techniques='MC P300 high',
dispense_techniques='MC P300 high'
)
print(json.dumps(handler.temp_protocol['steps'],indent=4, ensure_ascii=False))

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff