3. 自动化实验流程建模

自动化细胞成像实验并不是把几个仪器串起来就能稳定运行。培养、染色、成像、分析四个阶段之间存在大量时间约束、资源竞争和条件分支:细胞必须在合适汇合度时才能染色,染色完成后必须在限定时间内成像,成像结果又决定是否需要补拍或重扫。把这些约束表达清楚,是自动化流程建模的核心任务。

一、流程拆解:从生物步骤到可执行任务

流程拆解的第一步,是把实验意图翻译成自动化系统能识别的任务单元。以96孔板为例,一次典型流程可拆为:培养阶段(接种、换液、汇合度监测)、染色阶段(弃液、固定、透化、封闭、抗体孵育、核染)、成像阶段(对焦、通道采集、Z 栈、拼图)、分析阶段(分割、计数、强度统计、质控)。

拆解时不能只写“染色”,而要明确每个任务的输入、输出、时长和前置条件。例如“固定”任务的输入是含细胞的孔板与 4% 多聚甲醛,输出是已固定孔板,时长约 15 min,前置条件是培养基已弃净。只有把这类信息写全,后续状态机才有可判断的转移条件。

一个常见的教学示例参数如下:接种密度 5×10³ 细胞/孔,培养 24 h 后预期汇合度 60%–70%;固定 15 min;透化 10 min;一抗孵育 60 min;二抗孵育 45 min;核染 10 min;成像前 PBS 洗涤 3 次。这些数值属于示例,实际需按细胞类型和抗体说明书调整。

二、状态机建模:把“能不能做”变成可判断条件

状态机适合描述单个对象(如一块孔板、一台成像仪)在生命周期中的状态与转移。以孔板为例,可定义状态:IDLE、SEEDED、CULTURING、READY_TO_STAIN、STAINING、READY_TO_IMAGE、IMAGING、ANALYZING、DONE、FAILED。

转移条件必须可观测。例如 CULTURING → READY_TO_STAIN 的触发条件不是“培养好了”,而是“汇合度 ≥ 60% 且培养时长 ≥ 20 h”。READY_TO_IMAGE → IMAGING 的条件是“染色完成且距染色结束 ≤ 4 h”。若超时,则转入 FAILED 或 RE_STAIN。这种写法把模糊判断变成可编程条件,是自动化稳定运行的关键。

状态机还应处理异常分支:成像对焦失败时,不应直接失败,而应进入 REFOCUS 重试,最多 3 次;若仍失败,标记该孔为 QC_FAIL 并继续其他孔。这样单孔异常不会阻塞整板流程。

三、工作流建模:多对象、多资源的协同

状态机描述单对象,工作流则描述多对象与多资源的协同。工作流建模通常包含三层:任务层(做什么)、资源层(谁来做)、调度层(何时做)。

资源层要明确仪器能力与占用时间。例如液体处理站一次处理 1 块板、耗时 8 min;成像仪一次处理 1 块板、耗时 25 min;分析服务器可并行处理 4 块板。调度层则根据这些约束决定任务顺序。若同时有 3 块板等待成像,而成像仪只有 1 台,就必须排队,且要保证每块板在染色后 4 h 内完成成像。

工作流中还要区分串行任务与并行任务。同一块板的固定、透化、封闭必须串行;不同板之间的培养可以并行;分析可与下一块板的成像并行。把并行关系画清楚,才能估算整批实验的总时长。

建模时建议先画“对象—状态—转移”草图,再补“资源—时长—约束”表,最后合并为可执行工作流。不要一开始就写代码,否则容易把生物约束漏掉。

四、从模型到执行:一个可参考的流程片段

下面给出一个简化的状态转移配置示例,用于说明如何把上述条件写成可执行形式。示例采用伪代码,实际可映射到 Python 状态机或工作流引擎。

states = {
  "CULTURING": {
    "next": "READY_TO_STAIN",
    "condition": "confluence >= 0.60 and culture_hours >= 20",
    "timeout_h": 48,
    "on_timeout": "FAILED"
  },
  "READY_TO_IMAGE": {
    "next": "IMAGING",
    "condition": "stain_done and hours_since_stain <= 4",
    "on_violation": "RE_STAIN"
  },
  "IMAGING": {
    "next": "ANALYZING",
    "retry": {"REFOCUS": 3},
    "on_fail": "QC_FAIL"
  }
}

这段配置表达了三个关键约束:汇合度与培养时长共同决定能否染色;染色后 4 h 内必须成像;对焦失败可重试 3 次。实际运行时,调度器会周期性读取每个孔板的状态,检查条件是否满足,再决定是否推进。

五、结果判读与模型校验

模型建好后,需要用实际运行数据校验。重点观察三类指标:状态停留时间(如 CULTURING 实际时长分布)、转移失败率(如 READY_TO_IMAGE 超时比例)、资源利用率(成像仪空闲与排队时长)。若发现大量孔板在 READY_TO_IMAGE 超时,说明染色与成像的节拍不匹配,应调整染色批次大小或增加成像并行度。

此外,分析阶段的结果也应反馈到流程模型。例如若某批板 QC_FAIL 比例超过 20%,可触发对染色步骤的复查,甚至自动暂停后续批次。这种“分析反馈控制”是自动化流程从“能跑”走向“稳定跑”的重要一步。

细胞成像自动化流程:状态机与资源协同 IDLE 待接种 CULTURING 培养中 READY_TO_STAIN 汇合度≥60% STAINING 染色中 READY_TO_IMAGE ≤4h 窗口 IMAGING 对焦/采集/Z栈 ANALYZING 分割/计数 DONE 结果输出 REFOCUS 重试≤3次 QC_FAIL 单孔标记 资源层与调度约束 液体处理站 1板/次 · 8 min 串行:固定→透化→封闭 成像仪 1板/次 · 25 min 排队:染色后≤4h 分析服务器 4板并行 可与成像并行 调度器 周期检查状态 条件满足则推进

把上述状态机与工作流合并后,整批实验的节拍就变得可计算:若每块板培养 24 h、染色 2.5 h、成像 25 min、分析 15 min,且成像仪只有 1 台,则 3 块板的总时长约为 24 h + 2.5 h + 3×25 min + 15 min ≈ 28 h。若把成像仪增加到 2 台,总时长可压缩到约 27 h。这类估算能帮助在实验设计阶段就判断资源是否匹配。

最后需要强调:模型不是一次建成的。建议先用 1–2 块板跑通全流程,记录每个状态的实际停留时间和失败原因,再回头修正转移条件与超时阈值。只有经过数据校验的模型,才能真正支撑自动化实验的稳定运行。