2. 纯化工艺成本建模基础

纯化工艺的经济性优化,第一步不是“省钱”,而是“算清”。如果连一支层析柱跑一批料到底花了多少钱都说不清,后续的替换介质、缩短步骤、提高载量等优化动作就失去了判断基准。本节要建立的,是一个可复用、可参数化的纯化成本模型:把一批次或单位产品的纯化成本拆解为可追溯的成本项,再用统一公式汇总,最后用 Excel 或 Python 搭成能随参数变化自动重算的模型。

一、成本模型的基本结构

纯化成本模型的核心思路是“先分项、后汇总、再分摊”。分项是把成本按来源拆开,汇总是在批次层面加总,分摊是把批次成本除以产出,得到单位产品纯化成本。常见的分项包括七类:物料成本、耗材成本、设备折旧、人工成本、QC/QA 成本、废液处理成本与产能分摊。

物料成本指纯化过程中直接消耗的液体与化学品,如缓冲液盐、酸碱、有机溶剂、注射用水(WFI)等。耗材成本指层析介质、膜包、滤芯、一次性反应袋、管路、手套等,其中层析介质和膜包往往按“使用寿命/循环次数”分摊到每批。设备折旧是把层析系统、超滤系统、配液罐、冻干机等固定资产按年限或批次折算。人工成本按参与纯化操作的人时×工时费率计算。QC/QA 成本包括过程检测、放行检测、环境监测与批记录审核。废液处理成本按废液体积与处理单价估算。产能分摊则是把共用设施(洁净空调、纯水系统、蒸汽、冷库)的固定成本按占用比例摊到本产品。

需要特别强调:成本模型必须与工艺步骤绑定。同一批料,走三步层析和走两步层析,耗材、人工、废液、QC 都不同。因此建模时通常先画一张“步骤—资源”对应表,再逐项填参数。

纯化工艺成本模型:从批次分项到单位成本 纯化步骤(示例) ① 捕获层析 ② 病毒灭活 ③ 精纯层析 ④ 超滤浓缩 ⑤ 除菌过滤 ⑥ 原液分装 每步消耗资源不同 需逐项绑定参数 批次成本分项 物料成本 = Σ(用量 × 单价) 耗材成本 = Σ(单件价 ÷ 寿命 × 批用量) 设备折旧 = 设备原值 ÷ 折旧批次 人工成本 = 人时 × 工时费率 QC/QA = 检测项 × 单次费用 废液处理 = 废液体积 × 处理单价 产能分摊 = 设施固定费 × 占用比例 汇总与分摊 批次总成本 C_batch = Σ 七项 单位产品纯化成本 C_unit = C_batch ÷ 产出量 关键敏感参数 载量 / 收率 / 介质寿命 优化判断 降 C_unit 且不牺牲质量

二、单位产品纯化成本的计算方法

单位产品纯化成本的计算公式并不复杂,难点在于口径统一。建议采用以下定义:

C_unit = C_batch / Q_release

C_batch = C_mat + C_cons + C_dep + C_lab + C_qc + C_waste + C_facility

其中:
C_mat     物料成本
C_cons    耗材成本(含介质/膜包按寿命分摊)
C_dep     设备折旧
C_lab     人工成本
C_qc      QC/QA 成本
C_waste   废液处理成本
C_facility 产能/设施分摊
Q_release 批放行产出量(g 或 L)

这里有一个容易踩的坑:分母必须用“放行产出量”,而不是“理论投料量”。纯化收率通常只有 50%~80%,若用投料量做分母,会系统性低估单位成本。另一个坑是耗材分摊:层析介质若标称 200 个循环,但实际因清洗验证和压差上升只用到 120 个循环,就应按 120 分摊,否则成本被低估。

下面给出一个教学示例(参数为合理假设,非实测数据)。假设某单抗纯化批次:物料 18,000 元,耗材 42,000 元(其中 Protein A 介质按 100 循环分摊后本批 22,000 元),设备折旧 9,000 元,人工 12,000 元,QC/QA 15,000 元,废液处理 6,000 元,设施分摊 8,000 元。批次总成本 = 18,000+42,000+9,000+12,000+15,000+6,000+8,000 = 110,000 元。若批放行产出 250 g,则 C_unit = 110,000 / 250 = 440 元/g。这个数字就是后续优化的基准线。

三、用 Excel 搭建参数化成本模型

Excel 适合快速搭建、便于工艺与财务共同评审。建议分三个工作表:参数表、计算表、结果看板。

参数表集中放所有可调输入:各物料单价与单批用量、介质单价与循环寿命、设备原值与折旧批次、人工工时与费率、QC 检测项与单价、废液体积与处理单价、设施分摊比例、批产出量。每个参数给一个单元格命名(如 MediaPrice、MediaLife、Yield),后续公式全部引用名称,避免硬编码。

计算表按步骤逐行展开。以捕获层析为例,一行写“缓冲液 A 用量 × 单价”,一行写“介质分摊 = MediaPrice / MediaLife”,一行写“人工 = 操作人时 × 费率”。每行都保留“步骤、成本项、公式、金额”四列,便于追溯。最后用 SUMIF 按成本项汇总,得到七类分项与批次总成本。

结果看板用公式引用计算表,展示 C_batch、C_unit,并做一个“单因素敏感度”小表:把载量、收率、介质寿命分别上下浮动 20%,观察 C_unit 的变化。Excel 中可用“模拟运算表”或直接复制多列公式实现。

四、用 Python 搭建可复用模型

当参数组合多、需要批量扫描或接入数据库时,Python 更合适。核心是把成本项写成函数,用字典或 DataFrame 管理参数。示例代码:

import pandas as pd

params = {
    "media_price": 180000,   # 元/升
    "media_life": 100,       # 循环
    "media_volume": 12,      # 升
    "buffer_cost": 18000,
    "labor_hours": 60,
    "labor_rate": 200,
    "qc_cost": 15000,
    "waste_volume": 3000,    # 升
    "waste_price": 2,        # 元/升
    "depreciation": 9000,
    "facility": 8000,
    "yield_g": 250
}

def batch_cost(p):
    c_media = p["media_price"] / p["media_life"] * p["media_volume"]
    c_mat = p["buffer_cost"]
    c_lab = p["labor_hours"] * p["labor_rate"]
    c_waste = p["waste_volume"] * p["waste_price"]
    c_batch = (c_media + c_mat + c_lab + p["qc_cost"]
               + c_waste + p["depreciation"] + p["facility"])
    return c_batch, c_batch / p["yield_g"]

c_batch, c_unit = batch_cost(params)
print(f"批次成本={c_batch:.0f} 元, 单位成本={c_unit:.1f} 元/g")

运行后输出“批次成本=110000 元,单位成本=440.0 元/g”,与手工计算一致,说明模型口径正确。之后只需改 params 中的 media_life 或 yield_g,即可快速比较不同工艺方案。

建模时先固定“批次边界”:从纯化第一步投料开始,到原液放行结束。上游发酵、下游制剂不计入本节模型,避免重复分摊。

五、模型校验与使用要点

模型建好后,至少做三项校验:一是量纲校验,确认所有金额单位统一为元、产出统一为 g 或 L;二是闭合校验,七项分项之和必须等于批次总成本;三是敏感度校验,把介质寿命从 100 降到 60,C_unit 应明显上升,若几乎不变,说明公式引用错了。

实际使用中,建议每季度用真实采购价、实际工时和放行数据回填一次参数,使模型从“估算工具”逐步变成“决策工具”。当 C_unit 的构成中耗材占比超过 40% 时,优先考虑提高载量或延长介质寿命;当人工与 QC 占比高时,优先评估步骤合并或在线检测。这样,成本模型才真正服务于纯化工艺的经济性优化。