From 50c7777cea30263e26b842c1b55c039ea2f0fa02 Mon Sep 17 00:00:00 2001 From: Junhan Chang Date: Mon, 15 Sep 2025 12:42:05 +0800 Subject: [PATCH] Fix: run-column with correct vessel id (#86) * fix run_column * Update run_column_protocol.py (cherry picked from commit e5aa4d940ac492d5595bb48593ade5d75a2a3203) --- unilabos/compile/run_column_protocol.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/unilabos/compile/run_column_protocol.py b/unilabos/compile/run_column_protocol.py index b792097d..9da84150 100644 --- a/unilabos/compile/run_column_protocol.py +++ b/unilabos/compile/run_column_protocol.py @@ -2,6 +2,7 @@ from typing import List, Dict, Any, Union import networkx as nx import logging import re +from .utils.vessel_parser import get_vessel from .pump_protocol import generate_pump_protocol_with_rinsing logger = logging.getLogger(__name__) @@ -403,9 +404,9 @@ def generate_run_column_protocol( """ # 🔧 核心修改:从字典中提取容器ID - from_vessel_id = from_vessel["id"] - to_vessel_id = to_vessel["id"] - + from_vessel_id, _ = get_vessel(from_vessel) + to_vessel_id, _ = get_vessel(to_vessel) + debug_print("🏛️" * 20) debug_print("🚀 开始生成柱层析协议(支持vessel字典和体积运算)✨") debug_print(f"📝 输入参数:") @@ -772,8 +773,8 @@ def generate_gradient_column_protocol(G: nx.DiGraph, from_vessel: dict, to_vesse column: str, start_ratio: str = "10:90", end_ratio: str = "50:50") -> List[Dict[str, Any]]: """梯度洗脱柱层析(中等比例)""" - from_vessel_id = from_vessel["id"] - to_vessel_id = to_vessel["id"] + from_vessel_id, _ = get_vessel(from_vessel) + to_vessel_id, _ = get_vessel(to_vessel) debug_print(f"📈 梯度柱层析: {from_vessel_id} → {to_vessel_id} ({start_ratio} → {end_ratio})") # 使用中间比例作为近似 return generate_run_column_protocol(G, from_vessel, to_vessel, column, ratio="30:70") @@ -781,8 +782,8 @@ def generate_gradient_column_protocol(G: nx.DiGraph, from_vessel: dict, to_vesse def generate_polar_column_protocol(G: nx.DiGraph, from_vessel: dict, to_vessel: dict, column: str) -> List[Dict[str, Any]]: """极性化合物柱层析(高极性溶剂比例)""" - from_vessel_id = from_vessel["id"] - to_vessel_id = to_vessel["id"] + from_vessel_id, _ = get_vessel(from_vessel) + to_vessel_id, _ = get_vessel(to_vessel) debug_print(f"⚡ 极性化合物柱层析: {from_vessel_id} → {to_vessel_id}") return generate_run_column_protocol(G, from_vessel, to_vessel, column, solvent1="ethyl_acetate", solvent2="hexane", ratio="70:30") @@ -790,8 +791,8 @@ def generate_polar_column_protocol(G: nx.DiGraph, from_vessel: dict, to_vessel: def generate_nonpolar_column_protocol(G: nx.DiGraph, from_vessel: dict, to_vessel: dict, column: str) -> List[Dict[str, Any]]: """非极性化合物柱层析(低极性溶剂比例)""" - from_vessel_id = from_vessel["id"] - to_vessel_id = to_vessel["id"] + from_vessel_id, _ = get_vessel(from_vessel) + to_vessel_id, _ = get_vessel(to_vessel) debug_print(f"🛢️ 非极性化合物柱层析: {from_vessel_id} → {to_vessel_id}") return generate_run_column_protocol(G, from_vessel, to_vessel, column, solvent1="ethyl_acetate", solvent2="hexane", ratio="5:95") @@ -804,4 +805,3 @@ def test_run_column_protocol(): if __name__ == "__main__": test_run_column_protocol() -