藥物結晶製程多目標最佳化
用途
把一個結晶工藝優化需求,從「有一組參數 / 一個待優化工段」推進到「拿到一套滿足多約束、可再現、有定量對比的最優工藝方案(完整帕累託前沿)」。
核心是一台可解釋的確定性動力學模型(數位孿生),把 6 個工藝變量映射到 4 個品質指標(收率 / 純度 / 粒徑 D50 / 溶出相似因子 f2)。本 SKILL 負責編排:識別需求 → 調用計算核心 → 解讀帕累託前沿 → 輸出最佳化前後對照結論。
核心方法(可解釋動力學內核)
| 模組 | 實現 | 文獻錨定 |
|---|---|---|
| 溶解度曲線 | van't Hoff:C*(T)=4.48·exp[8.3/R·(1/293−1/T)] | A 級:Biowaiver Monograph 2017(20℃ 4.48 mg/mL) |
| 成核速率 | B = kb·max(σ−0.3,0)⁴ + kb2·G·μ2·f_mixing(攪拌) | 初級經典理論 + 二次生長耦合;分界 S=4.5(田賓賓 2015) |
| 生長速率 | G = kg·σ^m,m=1.9955(BCF 螺旋錯位生長) | A 級:田賓賓等,化學工程 2015 實測 |
| 種群平衡方程(PBE) | 矩量法 μ0…μ4 遞迴,濃度-矩量全耦合物料衡算守恆 | B 級:Randolph & Larson 矩量法 |
最佳化方法(多目標 + 多智能體)
- 主輸出:NSGA-II 4 目標完整帕累託前沿(80 個非支配解 + 膝點 + max-f₂/max-yield 極值),目標 = 收率↑ / 純度↑ / f2↑ / 粒徑貼合 30μm↑。
- 輔助:高斯過程(GP,RBF 核 + 白雜訊,超參經對數邊際似然 LML 學習)+ 貝葉斯最佳化(EGO 式 EI),作標量化參考點交叉驗證。
- 五智能體流水線:Literature(文獻錨定守門)→ Kinetics Modeler(PBE 求解 + 物料衡算自檢)→ Optimizer(帕累託前沿)→ Risk/Regulatory(監管判據 + CQA)→ Reviewer(獨立複核,PASS/FAIL 裁決)。
- 敏感性分析:溫度 ±1℃ / pH ±0.1 / 降溫速率 ±10% 擾動下的魯棒性判定。
觸發條件(何時加載本 SKILL)
滿足以下任一場景即可觸發:
- 使用者給出結晶工藝參數,要求評估品質指標或是否達標
- 使用者要求「最佳化 / 搜尋 / 尋優」某結晶工段的工藝參數
- 使用者提到收率 / 純度 / 粒徑 D50 / 溶出 f2 等品質目標並涉及結晶
- 使用者要求學名藥與原廠藥溶出相似性(f2)評估
- 使用者提供對照溶出曲線或文獻基線,要求對比
觸發詞:結晶工藝最佳化、結晶參數尋優、工藝多目標最佳化、學名藥結晶、粒徑窗口、溶出 f2、降溫曲線、晶種策略、過飽和控制、阿莫西林結晶、帕累託前沿、種群平衡。
輸入輸出格式
輸入
SKILL 由 AI 在會話中加載後,透過運行 scripts/crystallization.py(標準輸入傳 JSON)來驅動計算核心。CLI 輸入協議:
{
"mode": "evaluate | optimize | sensitivity | agents | dissolution_plot | explain",
"params": { // evaluate 模式必填,6 個工藝變量
"T_cryst_C": 15, // 結晶溫度 ℃,[5, 25]
"r_cool_C_per_min": 0.2, // 降溫速率 ℃/min,[0.05, 1.0]
"S0": 1.8, // 初始過飽和度(無量綱),[1.2, 2.5]
"seed_wt_pct": 2, // 晶種量 質量%,[0, 5.0]
"stir_rpm": 300, // 攪拌轉速 rpm,[100, 600]
"hold_t_min": 120 // 養晶時間 min,[30, 240]
},
"seed": 42 // optimize/agents 模式可選,隨機種子(預設 42,確定可再現)
}
輸出
計算核心 stdout 輸出單行 JSON。以 mode=optimize 為例,核心欄位:
{
"params": {"T_cryst_C": 5.9, "r_cool_C_per_min": 0.11, "S0": 1.9, "seed_wt_pct": 4.58, "stir_rpm": 586, "hold_t_min": 238},
"metrics": {"yield_pct": 67.75, "purity_pct": 99.44, "D50_um": 44.26, "D90_um": 116.0, "f2": 79.13},
"score": 174.88,
"pareto": {"n_pareto": 80, "knee_point": {...}, "extremes": {"max_f2": {...}, "max_yield": {...}}, "pareto_front": [...]},
"agents": {"literature": {...}, "kinetics": {...}, "optimizer": {...}, "risk_regulatory": {...}, "reviewer": {"verdict": "PASS", ...}},
"sensitivity": {"robustness": {"conclusion": "魯棒:三因素 ± 擾動下 f2 保持 ≥50", ...}},
"surrogate_cv": {"r2_mean": 0.74, ...},
"bo_trace": [...],
"cqa_coverage": {...}
}
AI 將 JSON 結果解讀為人類可讀的對照結論,格式參考本文件「結果解讀」小節。
執行步驟(標準工作流)
按順序執行,前一步結果決定後一步動作:
- 識別需求:確認目標 API 與工段;判斷使用者是要「評估單組參數」還是「搜尋最優參數」。
- 確定基準:讀取文獻經典工藝基線(或使用者提供);預設阿莫西林基線見
references/tuning-guide.md。 - 多目標尋優(optimize):調用
mode=optimize,主輸出為完整帕累託前沿(NSGA-II 80 非支配解)。 - 結果評估(evaluate):對候選方案調用
mode=evaluate,核對checks.all_satisfied與 PBE 過程量。 - 獨立複核:Reviewer 智能體獨立複核前沿非支配性與可行性,出具 PASS/FAIL。
- 輸出結論:給出帕累託前沿 + 膝點/極值 + 四指標前後對比 + 敏感性分析結論 + 邊界聲明。
依賴
| 類型 | 依賴項 | 說明 |
|---|---|---|
| 執行時 | Python 3(python3 / python / py 任一可用) | 運行計算核心 |
| 數值庫 | NumPy 2.5.4 | GP 高斯過程與 NSGA-II 向量化運算(pip install numpy==2.5.4) |
| 核心檔案 | scripts/crystallization.py | 可解釋動力學核心(PBE)+ 多目標最佳化 + 五智能體,本 SKILL 的唯一可執行邏輯 |
| 參考文件 | references/install-and-usage.md | 安裝、註冊、使用範例 |
| 參考文件 | references/tuning-guide.md | 全部可調參數的物理含義、取值範圍與影響 |
| 外部資源 | 無 | 自包含,不連網、不調外部 API |
計算核心調用方式(CLI)
# evaluate:評估單組參數
echo '{"mode":"evaluate","params":{...}}' | python scripts/crystallization.py
# optimize:輸出完整帕累託前沿(主)+ GP-BO 參考點
echo '{"mode":"optimize","seed":42}' | python scripts/crystallization.py
# sensitivity:敏感性分析(T±1℃/pH±0.1/降溫±10%)
echo '{"mode":"sensitivity","params":{...}}' | python scripts/crystallization.py
# explain:完整說明 optimize 跑了什麼(模型卡/搜尋空間/權重/約束全透明)
echo '{"mode":"explain"}' | python scripts/crystallization.py
結果解讀
pareto.n_pareto→ 帕累託前沿非支配解數量;knee_point為到理想點距離最小的權衡解。metrics.f2 >= 50→ 溶出曲線與原廠對照「相似」(FDA/CDE 生物等效橋樑判據);f2 < 50視為不相似。agents.reviewer.verdict = PASS→ 前沿非支配性 + 可行性 + 基線對比全部通過獨立複核。sensitivity.robustness.f2_stays_above_50→ 擾動下 f2 是否仍 ≥50(操作魯棒性)。bo_trace→ 64 次評估逐條留痕(參數/分數/來源/GP超參/EI),最佳化過程完全可查。
邊界聲明
本 SKILL 輸出為工藝搜尋與預篩工具,基於可解釋動力學內核(非 GMP 實驗替代)。最終生物等效性結論須由真實實驗與申報數據支撐。收率口徑:本模型收率為物料衡算口徑(析出固體/配液固體),與文獻「總收率」口徑不同,詳見 references/tuning-guide.md。