mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-18 13:31:20 +00:00
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-Lab-OS into 37-biomek-i5i7
This commit is contained in:
@@ -290,20 +290,29 @@ class LiquidHandlerBiomek(LiquidHandlerAbstract):
|
||||
处理Biomek的液体转移操作。
|
||||
|
||||
"""
|
||||
|
||||
items = []
|
||||
|
||||
asp_params = self.aspirate_techniques.get(aspirate_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 = {
|
||||
"Span8": False,
|
||||
"Pod": "Pod1",
|
||||
"items": {},
|
||||
"items": [],
|
||||
"Wash": False,
|
||||
"Dynamic?": True,
|
||||
"AutoSelectActiveWashTechnique": False,
|
||||
"ActiveWashTechnique": "",
|
||||
"ChangeTipsBetweenDests": False,
|
||||
"ChangeTipsBetweenSources": True,
|
||||
"ChangeTipsBetweenDests": True,
|
||||
"ChangeTipsBetweenSources": False,
|
||||
"DefaultCaption": "",
|
||||
"UseExpression": False,
|
||||
"LeaveTipsOn": False,
|
||||
@@ -320,29 +329,22 @@ class LiquidHandlerBiomek(LiquidHandlerAbstract):
|
||||
"SplitVolume": False,
|
||||
"SplitVolumeCleaning": False,
|
||||
"Stop": "Destinations",
|
||||
"TipLocation": "BC1025F",
|
||||
"TipLocation": "BC230",
|
||||
"UseCurrentTips": False,
|
||||
"UseDisposableTips": True,
|
||||
"UseDisposableTips": False,
|
||||
"UseFixedTips": False,
|
||||
"UseJIT": True,
|
||||
"UseMandrelSelection": True,
|
||||
"UseProbes": [True, True, True, True, True, True, True, True],
|
||||
"WashCycles": "1",
|
||||
"WashCycles": "4",
|
||||
"WashVolume": "110%",
|
||||
"Wizard": False
|
||||
}
|
||||
|
||||
items: dict = {}
|
||||
items["Source"] = source
|
||||
items["Destination"] = target
|
||||
items["Volume"] = volume
|
||||
transfer_params["items"] = items
|
||||
transfer_params["Solvent"] = asp_params['Solvent']
|
||||
transfer_params["Solvent"] = 'Water'
|
||||
transfer_params["TipLocation"] = tip_rack
|
||||
transfer_params.update(asp_params)
|
||||
transfer_params.update(dis_params)
|
||||
self.temp_protocol["steps"].append(transfer_params)
|
||||
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -612,20 +614,31 @@ if __name__ == "__main__":
|
||||
'''
|
||||
|
||||
|
||||
labware_with_liquid = '''
|
||||
[ {
|
||||
"id": "stock plate on P1",
|
||||
"parent": "deck",
|
||||
"slot_on_deck": "P1",
|
||||
"class_name": "nest_12_reservoir_15ml",
|
||||
"liquid_type": [
|
||||
"master_mix"
|
||||
],
|
||||
"liquid_volume": [10000],
|
||||
"liquid_input_wells": [
|
||||
"A1"
|
||||
]
|
||||
},
|
||||
|
||||
labware_with_liquid = '''
|
||||
[ {
|
||||
"id": "stock plate on P1",
|
||||
"parent": "deck",
|
||||
"slot_on_deck": "P1",
|
||||
"class_name": "nest_12_reservoir_15ml",
|
||||
"liquid_type": [
|
||||
"master_mix"
|
||||
],
|
||||
"liquid_volume": [10000],
|
||||
"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",
|
||||
"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']:
|
||||
if step['operation'] != 'transfer':
|
||||
continue
|
||||
parameters = step['parameters']
|
||||
tip_rack=parameters['tip_rack']
|
||||
# 找到labwares中与tip_rack匹配的项的id
|
||||
tip_rack_id = [lw['id'] for lw in labwares if lw['class_name'] == tip_rack][0]
|
||||
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']:
|
||||
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))
|
||||
|
||||
|
||||
642
unilabos/devices/liquid_handling/biomek.txt
Normal file
642
unilabos/devices/liquid_handling/biomek.txt
Normal file
File diff suppressed because one or more lines are too long
2697
unilabos/devices/liquid_handling/biomek_temporary_protocol.json
Normal file
2697
unilabos/devices/liquid_handling/biomek_temporary_protocol.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user