diff --git a/unilabos/devices/liquid_handling/biomek.py b/unilabos/devices/liquid_handling/biomek.py index 3fe3049..ea71c6d 100644 --- a/unilabos/devices/liquid_handling/biomek.py +++ b/unilabos/devices/liquid_handling/biomek.py @@ -10,7 +10,6 @@ from pylabrobot.resources import ( Container, Coordinate, ) -import copy from unilabos_msgs.msg import Resource from unilabos.ros.nodes.resource_tracker import DeviceNodeResourceTracker # type: ignore @@ -62,7 +61,7 @@ class LiquidHandlerBiomek: 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, - 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), + 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, @@ -451,8 +450,8 @@ class LiquidHandlerBiomek: """ items = [] - asp_params = copy.deepcopy(self.aspirate_techniques[aspirate_techniques]) - dis_params = copy.deepcopy(self.dispense_techniques[dispense_techniques]) + asp_params = self.aspirate_techniques.get(aspirate_techniques, {}) + dis_params = self.dispense_techniques.get(dispense_techniques, {}) asp_params['Position'] = source dis_params['Position'] = target @@ -565,7 +564,7 @@ class LiquidHandlerBiomek: if __name__ == "__main__": - + print("=== Biomek完整流程测试 ===") print("包含: 仪器设置 + 完整实验步骤") @@ -969,6 +968,15 @@ if __name__ == "__main__": "liquid_volume": [], "liquid_input_wells": [] }, + { + "id": "working plate on P12", + "parent": "deck", + "slot_on_deck": "P12", + "class_name": "BCDeep96Round", + "liquid_type": [], + "liquid_volume": [], + "liquid_input_wells": [] + }, { "id": "working plate on P13", "parent": "deck", diff --git a/unilabos/devices/liquid_handling/biomek_test.py b/unilabos/devices/liquid_handling/biomek_test.py index af6339a..1e56f18 100644 --- a/unilabos/devices/liquid_handling/biomek_test.py +++ b/unilabos/devices/liquid_handling/biomek_test.py @@ -15,7 +15,6 @@ from typing import List, Sequence, Optional, Union, Literal import json import pathlib from typing import Sequence, Optional, List, Union, Literal -import copy @@ -68,7 +67,7 @@ class LiquidHandlerBiomek: 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, - 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), + 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, @@ -352,9 +351,8 @@ class LiquidHandlerBiomek: """ items = [] - asp_params = copy.deepcopy(self.aspirate_techniques[aspirate_techniques]) - dis_params = copy.deepcopy(self.dispense_techniques[dispense_techniques]) - + asp_params = self.aspirate_techniques.get(aspirate_techniques, {}) + dis_params = self.dispense_techniques.get(dispense_techniques, {}) asp_params['Position'] = source dis_params['Position'] = target @@ -405,9 +403,7 @@ class LiquidHandlerBiomek: transfer_params["Solvent"] = 'Water' transfer_params["TipLocation"] = tip_rack tmp={'transfer': transfer_params} - self.temp_protocol["steps"].append(tmp) - return @@ -876,6 +872,15 @@ if __name__ == "__main__": "liquid_volume": [], "liquid_input_wells": [] }, + { + "id": "working plate on P12", + "parent": "deck", + "slot_on_deck": "P12", + "class_name": "BCDeep96Round", + "liquid_type": [], + "liquid_volume": [], + "liquid_input_wells": [] + }, { "id": "working plate on P13", "parent": "deck", @@ -963,7 +968,6 @@ if __name__ == "__main__": print(f"步骤 {step['step_number']}: {description}") if operation == 'transfer': - handler.transfer_biomek( source=parameters['source'], target=parameters['target'],