OT-2开源自动移液工作站:校准、协议编写与落地排障

发布时间:2026/10/31 23:49:45
OT-2开源自动移液工作站:校准、协议编写与落地排障

1. 先搞清楚 OT-2 到底是什么,再决定要不要把它搬进实验室

第一次听到 OT-2 这个名字的人,十有八九会以为它是某个软件版本号或者某款硬件的代号。准确地说,OT-2 是一台桌面级的开源自动移液工作站——一台能自己拿着移液器、按程序去吸液、放液、混匀、转移的机械臂系统。它的正式身份是“液体处理自动化平台”,但在我眼里,它更像是一个把重复劳动从人手上抢走的工具:把 96 孔板从一个位置挪到另一个位置、把 200 µL 样品从深孔板分装到 PCR 板、把磁珠法核酸提取里那几十次吸放动作全部接管过去。用过的人都知道,手工移液最折磨人的不是技术难度,而是那几个小时里你必须保持同一个姿势、同一种节奏,手一抖、心一急,整板数据就废了。

我之所以愿意花时间写这份介绍,是因为围绕 OT-2 的讨论往往走两个极端:一部分人把它当成万能神器,买回来才发现开箱之后还有校准、协议编写、耗材适配这一大堆活;另一部分人觉得它就是个玩具机械臂,精度不如手动。这两种看法都不太对。它真正的价值在于“把可重复的动作标准化并规模化”,而不在于让某一个单次移液变得更准。这篇文章面向三类人:正在评估要不要上自动化的小型实验团队、已经买了设备但协议跑不顺的操作者、以及负责把实验流程拆成可编程步骤的协议开发者。我会从它的硬件构成、软件栈、落地流程、参数计算到故障排查,一条线讲下来,尽量把那些说明书上不会写的细节摊开讲。

1.1 一台三轴机械臂加可更换移液器的组合体

拆开来看,OT-2 的机械结构并不复杂:一个固定在框架上的 X/Y/Z 三轴龙门结构,Z 轴上挂着一个快换接口,用来挂载单通道或八通道的电动移液器。台面是一个带槽位编号的平面,槽位用来放置孔板、储液槽、吸头盒、废液槽,以及各类功能模块。整机体积不大,成年人张开双臂基本能环住,重量在四十公斤上下,一般实验台的承重完全够用,但两个人抬更稳妥。

它的设计思路是“用标准化的台面坐标系换取通用性”。所有的孔板、吸头盒、储液槽都被抽象成带有标准外形尺寸和孔位定义的 labware,系统只认这些定义,不认你实际放了什么品牌的东西。这个思路的好处是扩展性强,你可以自己写一个 labware 定义文件来描述一款非标准耗材;代价是你必须保证耗材的实际尺寸和定义一致,偏差超过一毫米,吸头就对不准孔位。我见过最常见的翻车方式,就是操作者随手换了一盒没有经过验证的吸头,结果机械臂每次都插偏半格,吸头带着孔板一起被顶起来。

1.2 它能解决什么、不能解决什么,这个边界必须提前画清

OT-2 真正擅长的是“高频、重复、有固定节奏”的液体操作。以磁珠法核酸提取为例,一个批次里通常包含裂解、结合、洗涤两到三次、洗脱,每一步都要重复吸放几十次,手工做一批下来手腕基本废掉,而机器可以连跑几批不带情绪。再比如 PCR 体系配制,一次要配几十上百个反应,移液体积小、孔位多、错一个孔整批重来,这类任务交给机器,出错率会明显下降。

它不擅长的是需要实时判断的操作。你没法让它看着液面判断有没有堵住、看着颜色判断反应是否正常、看着气泡决定要不要多吹两下。涉及到粘稠液体、易起泡液体、易挥发液体时,机器只会老老实实执行你写的参数,它不会自己“感觉不对”。所以一个健康的预期是:OT-2 把人的手从重复动作里解放出来,但把判断责任更集中地压到了写协议的人身上。你的经验必须提前转化成参数,而不是留在手上。

1.3 哪些场景适合先上手,哪些场景建议再等等

不同实验室的流程差异很大,但判断维度其实就几个:单次批量的孔位数、单次移液体积的分布、流程是否稳定、耗材是否容易获得标准规格。我把常见的几类场景做了个对照,方便快速判断自己属于哪一档。

场景类型典型批量是否建议优先上 OT-2主要理由
PCR / qPCR 体系配制24–384 孔强烈建议体积小、孔位多、重复性要求高,机器优势最大
磁珠法核酸提取8–96 样本强烈建议步骤高度固定,人工疲劳导致的批次差异会明显收敛
常规样品分装、稀释96 孔以上建议动作单一,参数调好后几乎不用改
细胞培养换液6–96 孔谨慎涉及无菌操作、剪切力敏感,需要额外环境和参数验证
粘稠试剂、高挥发溶剂任意需要充分验证挂滴、气泡、挥发损失是常见问题,参数要反复调
单样本、低频次、体积差异大少量不建议编写和验证协议的成本高于手工操作

这张表不是绝对标准,但从经验看,批量越大、步骤越固定、体积越集中在 10–200 µL 区间,机器带来的收益就越明显;反过来,样本少、体积跨度大、液体性质刁钻,往往调参数的时间比手工做还长。评估阶段一定要拿自己实验室真实的一批样本做验证,别拿演示流程的数据下结论。

2. 硬件与软件架构拆解:为什么是这个设计

理解了 OT-2 的定位,再来看它的架构,很多设计取舍就顺理成章了。整套系统可以粗分成四层:机械运动层、液体处理层、台面功能层、软件协议层。这四层之间的耦合度决定了你能改什么、不能改什么。机械运动层基本封闭,你只能调参数不能改结构;液体处理层的核心是移液器,量程和精度决定了它能干什么;台面功能层通过模块扩展,温控、磁力、加热振荡都属于这一层;软件协议层是开放度最高的部分,也是绝大多数人真正要花时间的地方。

一个常见的误解是“买了硬件就完事了”。实际操作中,硬件只占整体投入的一半左右,剩下的时间成本都在软件和验证上。我自己经手过一个项目,硬件到位到第一版协议能稳定跑,中间隔了将近三周,其中两周都在调液体处理参数和验证耗材匹配度。所以下面讲架构的时候,我会把软件部分的权重放大一些。

2.1 机械结构:为什么用三轴龙门而不是关节臂

三轴龙门的好处是定位逻辑简单、刚性好、重复定位精度稳定,而且成本可控。关节臂虽然有更大的活动范围,但需要复杂的运动学解算,用在小体积、高密度的孔位操作上并不划算。OT-2 的台面坐标是固定的,每个槽位有明确的编号,系统内部维护一张从槽位号到物理坐标的映射表。你写协议时只需要说“把吸头盒放在 1 号槽位”“把目标板放在 2 号槽位”,不用关心具体毫米数。

这种设计的隐含要求是:你的耗材必须老老实实躺在槽位里,不能有位移。台面轻微的水平偏差、吸头盒没有完全卡到底、孔板下面垫了一张标签纸,都会造成累积误差。我在踩过一次坑之后养成了一个习惯:每次换新批次的耗材,先用一块透明板或者直接用吸头做一次“手动对位”,目视确认尖端是否落在孔中心。这个动作花不了一分钟,但能省下一整板的样本。

2.2 液体处理的核心:通道数与量程怎么选

移液器是整个系统里最贵的部件,也是最需要提前规划的部分。按通道分,有单通道和八通道两类;按量程分,覆盖了小体积到大体积的几个档位。八通道的价值在于整列同时操作,做 96 孔板时效率提升非常直观,但它对孔板间距的一致性要求也更高,如果孔板有轻微变形,边缘几道的吸头就可能插不进去。单通道则灵活度高,适合做零散的分装、转移、单管操作。

选型时最容易被忽略的是“量程覆盖”而不是“最大量程”。很多团队一看需求是“要能吸 1000 µL”,直接选了最大量程的型号,结果日常大部分操作都在 20 µL 以下,小体积端的准确度和精密度反而不理想。比较稳妥的做法是先把自己实验室过去三个月的移液体积做个分布统计,看 80% 的操作落在哪个区间,再选覆盖该区间且接近量程中段的型号。移液器在量程的 10% 以下和 90% 以上,表现都不如在中间段稳定,这是所有液体处理设备的通性,不是某一家的问题。

2.3 台面功能模块:别把它们当成可选项

台面上可以插的功能模块包括温度控制、磁力吸附、加热振荡、热循环等,另外还有用于维持局部洁净气流的模块。这些模块的价值在于把原本需要人工搬运的步骤串起来——比如磁珠法提取,如果磁力模块在场,机器可以在同一块板上完成结合、磁分离、洗涤、洗脱,中间不需要人工把板子拿到磁力架旁边再拿回来。凡是流程里存在“人要把板子挪来挪去”的环节,几乎都是自动化的收益点,也是人工误差的集中点。

温度控制模块的典型工作区间覆盖低温和中温,能用来做酶切、预冷、恒温孵育这类操作。使用这类模块时有几个细节必须注意:模块本身需要预热或预冷到目标温度之后再放板,否则靠近金属面的孔和远离的孔会出现明显的温度梯度;模块和板之间建议加一层导热贴或者专用的适配板,接触不良会导致温度读数虚高;还有一点很少被提到——模块升降温需要时间,协议里必须加足够长的等待,而不能靠移液动作的耗时去“顺带等待”。我在早期协议里就犯过这个错,等待时间给短了,结果酶切效率明显偏低,排查了一整天才发现是温度没到位。

2.4 软件栈:协议、运行时和校准数据三层各管什么

软件部分可以理解为三层。最上层是协议文件,你在里面描述整个流程;中间是运行时,负责把协议翻译成机器动作、管理模块状态、处理异常;最底层是校准数据,包括台面偏移、吸头坐标、模块位置等,这些数据是运行时动作准不准的基础。

协议文件本身就是一个 Python 脚本,结构大致包含三块:元数据和 API 版本声明、必要的运行参数定义、以及一个包含主流程的函数。下面是一个最小但完整的骨架示例,包名随固件和 SDK 版本会有差异,以你本地环境里的实际模块为准:

# 协议头部:声明元信息与运行时要求 from ot2_api import protocol_api metadata = { "protocolName": "demo_transfer_96", "author": "lab_ops", "description": "96 孔板到 PCR 板的批量转移示例", } requirements = { "robotType": "OT-2", "apiLevel": "2.16", } def run(protocol: protocol_api.ProtocolContext): # 1) 加载台面耗材,槽位号必须和实际摆放一致 tips_1 = protocol.load_labware("opentrons_96_tiprack_300ul", 1) source_plate = protocol.load_labware("nest_96_wellplate_2ml_deep", 2) dest_plate = protocol.load_labware("nest_96_wellplate_100ul_pcr_full_skirt", 3) reservoir = protocol.load_labware("nest_12_reservoir_15ml", 4) # 2) 加载移液器,注意挂载位置与量程 p300 = protocol.load_instrument( "p300_single_gen2", "right", tip_racks=[tips_1] ) # 3) 主体流程:先吸废气隙,再转移,最后吹出 p300.transfer( 50, source_plate.rows()[0], dest_plate.rows()[0], new_tip="always", air_gap=5, blow_out=True, blowout_location="destination well", )

这段代码看起来简单,但每一行背后都有坑:耗材名称写错会直接报错,槽位号写得和实际摆放不一致会导致撞板,new_tip的策略会直接决定吸头消耗量。协议文件只是“描述”,真正决定成败的是参数和验证。

运行时的作用是把这些描述变成动作序列。它会根据你的指令计算路径、检查是否有碰撞风险、管理模块温度状态。遇到可恢复的异常时,运行时通常会暂停并等待人工干预,比如吸头检测不到、移动受阻、模块温度未达标。这个机制很实用,但前提是你不关掉它。我见过有人为了赶进度把所有异常提示都跳过去,结果一次撞板把移液器直接干废,维修周期比省下的时间长了十倍。

校准数据这一层最容易被忽略,但它决定了“动作准不准”。台面校准确定槽位原点的物理位置,耗材校准确定孔位的相对偏移,模块校准确定模块相对于台面的位置。任何一个数据过期,动作都会漂移。校准不是一次性的,换批次耗材、搬动设备、更换模块之后都应该重新做,这一点后面会专门讲。

3. 从开箱到跑通第一条协议:完整落地流程

很多团队卡在“设备装好了但跑不起来”这个阶段,根本原因不是能力问题,而是流程没有拆分清楚。我把落地过程拆成五个阶段:场地与环境准备、机械安装与初始校准、耗材与台面布局设计、协议编写与干跑、湿跑验证与小批量上线。这五个阶段顺序不能乱,尤其不要把协议编写放在耗材布局之前,否则你写完的协议会因为换了一个吸头盒而全部作废。

3.1 场地与环境准备:震动和电源比洁净度更要紧

场地要求里被提得最多的是洁净,被忽略最多的是震动和电源。OT-2 是三轴运动结构,台面轻微的震动会被放大成吸头尖端的位移。如果设备放在离心机、压缩机、通风橱旁边,或者放在一个容易晃的临时桌上,移液精度会莫名其妙地不稳定,而且极难排查。我建议直接放在独立的、靠墙的、承重足够的稳固实验台上,四角垫防震垫,能显著改善。

电源方面,机器虽然有断电恢复机制,但运行中断电会丢掉当前的台面状态,恢复之后需要重新确认所有耗材位置。所以更实际的做法是配一个小容量电源保障设备,只保证主机和控制端不断电,足够撑到当前批次跑完。另外,环境温度和湿度也会影响液体体积和挥发速率,尤其在处理小体积样品时,室温波动几度,挥发损失就能让结果偏差几个百分点。这类细节不会写进操作手册的第一页,但真的会影响数据。

3.2 校准:这一步省不得,省了后面全是账

校准分三块。第一块是设备的初始机械校准,通常在首次安装时做一次,确定台面原点和轴行程;第二块是耗材位置校准,也就是常说的位置检查,需要在每次改变耗材布局后执行;第三块是移液器的精度校准,用称重法验证实际吸排体积是否在允许偏差内。

位置检查的操作逻辑是:让机器把吸头移到每个耗材的指定孔位上方,人工目视确认尖端是否对准孔中心,偏差超出阈值时手动微调偏移量。这个流程听起来原始,但它是目前最可靠的方式,因为不同品牌的孔板外形公差差别很大,纯靠标称尺寸必然有误差。

移液精度校准我会建议至少做一次基线,方法是:设定几个代表体积(比如量程的 20%、50%、80%),用分析天平称量纯水吸排前后的质量差,换算成体积,和设定值比较。这一步的意义在于建立你自己的基线数据——厂家规格是在标准条件下测的,你实验室的温度、水的纯度、吸头批次都不同,实测数据才是后续判断“是不是设备出问题”的依据。我踩过的坑是:某批次数据整体偏低,我以为是移液器坏了,折腾两天拆装检查,最后发现是那批吸头内壁有脱模剂残留,导致挂液。

注意:位置检查不要只做一次就长期不动。更换耗材品牌、更换模块、搬动设备之后,都必须重做。省这一步省下的时间是借来的,后面要用返工还。

3.3 台面布局设计:先画图,再摆东西

布局设计是整个落地过程中投入产出比最高的一步。我的做法是先在纸上(或者任意绘图工具里)画出台面的槽位平面图,标出每个槽位放什么、各占多大、动线怎么走。布局的核心原则有三条:常用耗材靠近移液器的工作区、吸头盒和废液槽放在不容易被跨越的位置、同一块板的所有操作尽量不跨越大半个台面。

第一条原则的道理很直白:机械臂每次移动都消耗时间,跨台面的长距离移动累积起来很可观。批量大的时候,把源板和目标板放在相邻槽位,整体运行时间能缩短一成到两成。第二条原则是为了防止污染——废液槽如果放在吸头盒正上方或者移动路径上,液滴飞溅的风险会明显上升。第三条原则关乎稳定性,长距离移动意味着更多的加速度变化,对位置精度不利。

还有一个容易被忽略的细节是吸头盒的方向。吸头盒有正反之分,装反了吸头会取不下来或者取下来是歪的。这个错误发生频率高到值得在台面上贴一张方向提示贴纸,用颜色或者箭头标清楚。听起来很傻,但真的有用。

3.4 协议编写与干跑:先让机器空手走一遍

协议写完之后不要急着上真实样本,先干跑。干跑的常见做法是把所有液体体积设为 0,或者用空板代替,只让机器走完整路径。干跑能暴露的问题包括:路径碰撞、槽位超界、吸头数量不足、模块高度冲突。这些问题在真实运行时都会变成硬报错,但干跑阶段发现和处理要安全得多。

干跑之后还有一步叫“水跑”,也就是用加了食用色素的水代替真实试剂,跑完整流程,观察每个孔的液面高度、有没有挂壁、有没有交叉污染、目标孔位是否准确。水跑的性价比极高,一管色素几块钱,能提前发现九成以上的问题。我个人的经验是:任何新协议至少干跑一遍、水跑一遍,才允许上真实样本。这个规矩听起来保守,但它救过我不止一次——有一次水跑发现某个洗涤步骤的吸头会蹭到板壁,如果不提前发现,真实样本跑起来就是整板污染。

3.5 湿跑验证与小批量上线:先跑 8 个样本,别跑 96 个

验证阶段最忌讳一步到位跑满板。正确做法是先跑一个最小可用的批次,比如 8 个样本,跑完之后和手工对照样做结果比较,重点看三类指标:孔间一致性、批次间一致性、以及和手工方法的相关性。孔间一致性反映机械和液体参数的稳定性,批次间一致性反映环境和方法的重现性,和手工方法的相关性则决定了你能不能平滑切换。

如果三类指标都过关,再逐步放大批量。放大过程中要特别关注耗时——批量翻倍时,运行时间往往不是线性增长,因为吸头更换、模块等待、移动路径都会叠加。我做过一个粗略统计,从 8 孔放大到 96 孔,实际运行时间大约是 8 孔的八到十倍,但人工干预次数几乎不变,这就是自动化的真正收益所在。

4. 协议编写实操:参数怎么算、坑在哪里

协议编写是整个项目里最耗时的部分,也是最考验经验的部分。同样的流程,参数给得不一样,结果可能差出好几个百分点。这一章我会把液体处理参数、吸头策略、坐标与偏移、模块联动四个方面的实操细节拆开讲,尽量把“为什么这么设”讲清楚,而不是只给一堆数字。

4.1 液体处理参数:吸放速度、延迟、气隙、吹出各管什么

液体处理参数的调节逻辑,本质上是让液体在吸头和孔之间“干净地进出”,不残留、不飞溅、不产生气泡。几个核心参数和作用如下:

  • 吸液速度:速度越快,剪切力越大,越容易起泡和产生气溶胶。对小体积和易起泡液体,建议降速;对水溶液,中速即可。
  • 放液速度:放液太快会在孔内形成冲击,导致飞溅和挂壁;放液太慢会拖长整体运行时间。一般比吸液速度略慢。
  • 吸头贴壁:放液后让吸头尖端轻触孔壁,把残留液滴带下去。对粘稠液体和小体积放液几乎必开,但要控制接触深度和接触时间,接触太深会把已经放下去的液体又吸回来。
  • 气隙:吸液之后在吸头内吸入一小段空气,形成隔离层,防止液体在移动过程中滴落或被污染。转移距离长、液体易挥发时必开。
  • 吹出:放液结束后额外吹一段空气,把吸头内壁残留的液体推出去。对粘稠液体效果明显,但对易起泡液体要慎用。

这几个参数不是孤立的。举个例子,如果你开了气隙,那么放液时要记得把气隙的体积也算进去,否则实际放出的体积会偏少。这个细节特别隐蔽,因为偏差很小,不容易被发现,但批量做下来累积误差就很可观。我的做法是把所有涉及气隙的转移都做一次称重验证,确认实际体积落在允许范围内再放大批量。

还有一个参数容易被忽视:吸头尖端与孔底的距离。距离太近会顶到底部导致吸头堵塞或孔底划伤,距离太远会吸不到液。深孔板和浅孔板的最佳高度完全不同,规则孔径和锥形底的孔也不同。稳妥的做法是在协议里显式指定相对孔底的高度,并且针对不同耗材分别验证,而不是依赖默认值。

4.2 吸头策略与成本核算:这笔账必须提前算

吸头消耗是自动化运行中最大的持续成本,没有之一。策略上有几种典型做法:每个样本换新吸头、同一样本内的多次操作共用吸头、同一种液体共用吸头、按列批量共用。策略不同,吸头消耗量能差出好几倍。

策略吸头消耗(96 样本流程)交叉污染风险适用场景
每步都换新吸头约 300–500 个极低核酸提取、临床样本、无法接受任何残留的流程
同样本内共用约 100–150 个低同一样本的连续转移、稀释梯度
同种液体共用约 40–80 个中试剂分装、缓冲液配制
整列批量共用约 20–40 个较高大批量筛选、非定量实验

这张表里的数字是经验量级,实际消耗取决于流程步骤数。核算成本时不要只算吸头单价,还要算上吸头盒的包装成本、废料处理成本和补货周期。有些团队为了省吸头把策略压得很激进,结果因为残留污染导致整批返工,反而更贵。对无法接受残留的流程,我从来不建议省吸头,这是花钱买确定性。

顺带提一句吸头盒的容量问题。一个标准吸头盒通常是 96 个,跑一个 96 样本的流程如果每步都换吸头,很可能中途就需要补盒。协议里要么预留足够的吸头盒槽位,要么设计成分段运行,让操作者有机会补料。这个细节经常在第一次跑满板的时候才被发现,然后现场手忙脚乱地暂停补盒。

4.3 坐标与偏移:为什么位置总是差一点点

坐标系统的核心是“先定位耗材,再定位孔,最后定位孔内的位置”。在协议里访问某个孔时,通常可以拿到它的顶部、底部和中心位置,然后在相对位置上做偏移。理解这一点很重要,因为绝大多数“位置差一点点”的问题,根源不在机械精度,而在于你把偏移加错了方向或者加错了层。

举几个常见的场景。吸头从孔底吸取液体时,应该在孔底上方留一小段距离,这个距离要相对孔底算,而不是相对孔顶算。放液时希望液体顺着孔壁流下去,就要往孔壁方向偏移一点,这个偏移方向取决于孔是圆孔还是方孔,圆孔可以向任意方向偏,方孔就要避开四个角。混匀时吸头要在液面以下但又不碰底,这个高度需要根据实际液面体积估算,而不是给一个固定值。

提示:凡是涉及“相对位置”的参数,一定要写在协议里作为可配置项,而不是散落在代码各处的硬编码数字。后面换耗材或者调参数时,你会感谢自己当初多写的这几行。

还有一个隐藏的坐标问题是台面水平度。设备放置不平时,整个台面会有轻微倾斜,导致同一块板不同区域的相对高度不同。这种倾斜很难在单个孔上发现,但会在整板操作时表现为“某些列的吸头总是偏高或偏低”。解决办法是用水平仪校准设备四角,必要时在支脚下加垫片。这个步骤在安装阶段就要做,不要等到出问题再回头查。

4.4 模块联动与时序:等待时间给不够,结果全废

模块联动部分最容易出错的是时序。协议里的时间有两种来源:一种是显式的等待指令,另一种是移液动作本身消耗的时间。很多人在写协议时会把这两者混为一谈,认为移液动作跑完了,等待也就够了——这是典型的想当然。

正确的做法是把所有关键的等待都显式写出来,并且留出余量。比如磁珠分离步骤,磁力模块吸附需要固定的时间,这个时间必须显式等待,不能靠后续移液动作的耗时去凑。比如温度控制,模块升到目标温度需要时间,应该等到模块报告温度稳定之后再放板,而不是放出指令后立刻开始操作。再比如洗脱后的孵育,时间不够会导致回收率明显下降,而这个问题在做单批时看不出来,批量做的时候才暴露。

我自己的习惯是给每一个需要等待的步骤都写一个带注释的等待函数,把“为什么等”“等多久”“依据是什么”写清楚。这样做的好处是,半年后回来看协议,你能立刻明白当初的设定逻辑,而不是对着一个孤零零的数字发呆。协议的可维护性,很大程度上就体现在这些注释里。

5. 常见故障排查实录

设备跑起来之后,真正占据时间的是排查。下面这些是我自己以及周边团队实际遇到过的问题,按现象分类整理,附上排查路径。需要说明的是,具体错误码和提示文案会随固件版本变化,但问题机理是相通的,理解机理比记住错误码更有用。

5.1 移液不准、挂滴、气泡:液体相关的三大顽疾

这三类问题几乎占了液体处理故障的一半以上,而且往往互相牵连。移液不准最常见的原因是吸头没有装正或者吸头内壁有残留,前者会导致密封不严、吸液量偏少,后者会导致挂液、实际放出量偏少。排查时先目视检查吸头是否垂直、是否装到底,再换一批吸头复测。如果换批次后恢复正常,问题就在耗材;如果依旧,再查移液器本身。

挂滴的成因更多。液体粘度高、吸头内壁疏水性差、放液速度过快、没有吹出动作,都可能导致液滴残留在尖端。对应的处理手段是降低放液速度、开启吹出、增加贴壁动作。但要注意过度处理也会带来新问题:贴壁接触太深会把放下去的液体重新吸回来,吹出太猛会在孔内产生气泡。

气泡的成因主要是吸液时吸头尖端露出液面、吸液速度过快、或者液体本身含表面活性剂。解决思路是保证吸头始终浸没在液面以下足够深度、降低吸液速度、必要时在吸液后加一个短暂的延迟让气泡上浮。有一个很实用的小技巧:如果液面高度不确定,可以先用低速度吸一小段做“探液”,确认液面位置后再正式吸取。这个功能在部分协议 API 里是内置的,值得翻一翻文档。

5.2 报错与通信类问题:先从最简单的可能性查起

运行时的报错大致分三类:位置类、耗材类、通信类。位置类报错通常是撞板、超界、移动受阻,排查顺序是确认耗材摆放是否正确、槽位号是否和协议一致、有没有异物挡在路径上。耗材类报错通常是吸头检测不到、耗材未定义、模块未连接,排查顺序是确认吸头盒是否装到位、耗材名称拼写是否正确、模块线缆是否插紧。

通信类报错最烦人,因为它往往时好时坏。常见原因包括网络不稳定、控制端休眠、USB 线缆接触不良、固件版本与控制软件不匹配。我的排查顺序是:先重启控制软件,再检查物理连接,然后确认固件版本,最后才怀疑硬件。绝大多数通信问题是前两项引起的,直接跳到硬件检查会浪费大量时间。

现象最可能原因快速验证方法处理方向
吸头装不上或装歪吸头盒方向错误 / 吸头批次公差目视观察吸头是否垂直调整方向,换批次复测
液面高度异常耗材定义与实际不符换标准耗材对比修正耗材定义或重新校准
运行时突然暂停异常提示被忽略 / 模块温度未达标查看暂停原因提示按提示处理,不要强行跳过
整板结果偏移台面水平度或位置校准过期用透明板目视对位重新做位置检查
通信频繁断开线缆松动 / 控制端休眠更换线缆、关闭休眠固定线缆,调整电源策略

5.3 交叉污染与台面管理:看不见的风险最麻烦

交叉污染是自动化流程里最隐蔽的问题,因为它不一定在当批数据里表现出来,可能要好几个批次之后才浮现。来源主要有四个:吸头重复使用、废液飞溅、台面残留、以及模块表面污染。前两个靠策略和布局解决,后两个靠日常管理。

台面管理这块,我的做法是建立一份“台面清洁与检查清单”,每次运行前后各过一遍:擦拭台面、检查废液槽液位、确认吸头盒余量、检查模块表面有无残留。清单看起来很基础,但坚持做下来能避免大部分偶发问题。另外建议给台面加一层可更换的保护膜,脏了直接换,比反复擦拭省事,也能避免清洁剂残留影响后续实验。

注意:如果流程涉及核酸扩增产物,台面管理的要求会高一个量级。产物气溶胶一旦污染台面和设备,后续所有批次都可能出现假阳性,而且极难彻底清除。这类流程建议固定区域、固定设备,不要和其他流程混用同一台机器。

6. 扩展:把它接进更大的流程里

单机跑通只是第一步。真正体现价值的时候,是把它嵌进整条实验流水线里——前面接样本前处理,后面接检测读数,中间的数据能自动流转。这部分工作量的弹性很大,取决于你现有系统的开放程度。我见过的做法从“人工搬运 U 盘”到“全流程自动调度”都有,没有绝对的对错,匹配团队现状就好。

6.1 与上下游设备的对接思路

向上对接通常是样本管理系统或者实验记录系统。最轻量的方式是协议运行前由操作者输入样本编号和板位映射,运行结束后自动生成一份记录文件,包含运行时间、耗材批次、参数版本、异常事件。这份记录的价值在于可追溯——出了问题能快速定位是哪个环节、哪批耗材、哪个参数版本。

向下对接通常是读板机、成像设备或者储存设备。如果设备支持文件监听或者接口调用,可以让协议在完成后自动触发读取,把结果文件和运行记录关联起来。如果不支持,退一步的做法是生成一个带时间戳和板位信息的任务文件,由操作者手动导入,虽然多一步操作,但至少保证了数据关联的准确性。

这里有个经验之谈:对接的第一步永远是把数据格式定下来,而不是先写代码。我见过太多项目在接口调通之后才发现两边的样本编号规则不一致、孔位映射方向相反、时间戳格式不同,然后回头大改。先把字段、编码、方向、时区这些定清楚,写代码只是体力活。

6.2 成本与产出的实际核算

上自动化的账不能只算设备采购价。完整成本包括设备、耗材(尤其是吸头)、场地改造、协议开发人力、验证成本、日常维护、以及人员培训。其中协议开发和验证往往被严重低估,一个中等复杂度的流程,从零到稳定运行,投入的人天数是相当可观的。

产出侧的收益也不只是“省了多少人工小时”。更重要的收益通常体现在三块:批次间一致性提升带来的返工减少、人为操作失误导致的样本损失下降、以及通量提升带来的周期缩短。这三块很难精确量化,但可以在上线前后各统计一段时间的返工率和样本重测率,用数据说话。我经手的一个项目,上线三个月后重测率下降了一半多,这部分省下来的试剂和时间远超设备折旧。

6.3 团队协作:协议也是要版本管理的

最后一个容易被忽略的点是协作。协议文件本质上是代码,应该有版本管理。谁改的、改了什么、为什么改、什么时候生效,这些信息必须留痕。否则会出现“上周跑得好好的这周就不对了”的情况,然后所有人对着同一份文件猜。

我的做法是给每个协议配一份变更记录,记录版本号、修改内容、修改原因、验证结果、生效日期。协议文件名里带版本号,运行时在日志里打印版本号。这样任何一批数据的异常,都能快速回溯到具体的协议版本。团队规模稍大一点,还应该约定“主分支只放经过验证的版本”,新改动先在副本上验证通过再合并。

另外建议把耗材批次、校准记录、环境温湿度也一起记进运行日志。这些信息平时看着没用,一旦出现系统性偏差,它们就是排查的第一手线索。自动化系统最大的风险不是它做错了,而是它做错了你还不知道。完善的记录是发现问题的唯一途径。

我个人在实际操作中的体会是,OT-2 这类设备的价值释放曲线很像一条前陡后缓的曲线:前几周投入很大,要校准、要写协议、要反复验证,回报看起来不明显;一旦第一条流程稳定跑起来,后面每新增一条流程的成本会快速下降,因为台面布局、耗材库、参数模板都是复用的。所以别指望第一周就见效,但也别在第一条流程卡住的时候就否定整件事——把第一条流程做扎实,后面都是顺水推舟。