SuperAPI AI 工具集

opentrons-absorbance-reader

数据与分析

查看项目

更新于 10-27 12:33

技能介绍

用途

Opentrons 吸光度读板模块是 Opentrons Flex 专用的板载微孔板分光光度计,用于在自动化流程中直接读取 96 孔板的吸光度,避免手动将微孔板转移到独立读板机。其核心价值在于:可在流程中途读取吸光度以进行实时决策,或通过自动计时与液体处理采集动力学数据。

适用场景包括:ELISA 或其他需要吸光度读数的比色法检测、细菌或细胞培养生长测量(OD600)、带定时读数的动力学检测、多波长吸光度数据采集、需要基于吸光度值实时决策的流程,以及板式生化检测的自动化。

不适用场景:OT-2 机器人(该模块仅支持 Flex)、需要 380–740nm 范围之外的波长、需要荧光或发光测量。

平台要求

  • 仅支持 Opentrons Flex(不兼容 OT-2)
  • API 版本:2.21 或更高
  • 兼容的甲板槽位:A3、B3、C3、D3(仅第 3 列)
  • 暂存区:第 4 列(整列保留用于盖子存放)
  • 重要:存在吸光度读板模块时,不能在第 4 列(A4、B4、C4、D4)加载任何实验器具。

甲板布局:第 3 列为读板模块(检测单元与板支架),第 4 列为盖子暂存区(打开时夹爪将盖子移至此)。

主要能力

  • 波长范围:380–740nm,10nm 步进(如 450nm、562nm、600nm、650nm)
  • 单波长读取:最简单模式,用于 OD600 细菌生长、单色 ELISA
  • 带参考波长的单波长读取:用参考波长归一化读数,减少背景噪声和板伪影
  • 多波长读取:最多同时读取 6 个波长,用于多分析物检测、光谱分析、双波长 ELISA
  • 吸光度值范围:0.0–4.0 OD
  • 数据以嵌套字典返回:{波长: {孔位: 吸光度}}
  • 支持 CSV 导出,包含模块序列号、测量波长、时间戳和带行列标签的板布局

使用方式

加载模块:

from opentrons import protocol_api

metadata = {'apiLevel': '2.21'}
requirements = {"robotType": "Flex", "apiLevel": "2.21"}

def run(protocol: protocol_api.ProtocolContext):
    reader = protocol.load_module("absorbanceReaderV1", "D3")

盖子控制:夹爪自动管理盖子位置。close_lid() 关闭盖子(初始化前必须调用),open_lid() 打开盖子(移至第 4 列暂存区),is_lid_on() 返回盖子状态布尔值。关键:即使盖子已关闭,也应在 initialize() 前始终调用 close_lid()。

初始化:

# 单波长
reader.close_lid()
reader.initialize(mode="single", wavelengths=[450])
reader.open_lid()

# 带参考波长
reader.close_lid()
reader.initialize(mode="single", wavelengths=[450], reference_wavelength=562)
reader.open_lid()

# 多波长(最多 6 个)
reader.close_lid()
reader.initialize(mode="multi", wavelengths=[450, 562, 600, 650])
reader.open_lid()

读取微孔板:

protocol.move_labware(assay_plate, reader, use_gripper=True)
reader.close_lid()
absorbance_data = reader.read()
reader.open_lid()
protocol.move_labware(assay_plate, "C1", use_gripper=True)

带 CSV 导出:

absorbance_data = reader.read(export_filename="experiment_001_plate1")

访问结果:

data = reader.read()
absorbance_a1 = data[450]["A1"]
for well_name, absorbance in data[600].items():
    protocol.comment(f"{well_name}: {absorbance}")

典型工作流

标准读取流程:加载并设置模块与实验器具 → 关闭盖子并初始化读板模块 → 准备样品(移液操作)→ 用夹爪将板移至读板模块 → 关闭盖子并读取(可导出 CSV)→ 处理结果或继续流程 → 将板移出读板模块。

ELISA 流程:初始化读板模块(如 450nm,参考 562nm)→ 包被、孵育、洗涤 → 加样 → 孵育 → 洗涤 → 加底物 → 孵育 → 加终止液 → 读取并分析结果。

细菌生长动力学:初始化 OD600 → 接种培养 → 在加热振荡模块上孵育并振荡 → 定时将板移至读板模块读取 OD600 → 记录生长数据,循环多个时间点。

多波长蛋白检测:初始化多波长(如 562、600nm)→ 制备标准曲线与样品 → 孵育 → 多波长读取 → 用标准曲线计算蛋白浓度。

实时决策:读取筛选板 → 根据吸光度阈值识别阳性孔 → 将阳性孔转移至新板进行后续验证。

与其他模块集成

  • 与加热振荡模块(Heater-Shaker Module)配合:先孵育振荡,再移至读板模块读取吸光度。
  • 与温度模块(Temperature Module)配合:先冷却样品,再读取冷却后的板。

最佳实践

  • 初始化前始终关闭盖子,即使已关闭
  • 导出数据时使用描述性文件名,包含实验 ID、日期、板号
  • 使用参考波长以减少背景和板伪影
  • 读取空白孔以建立背景扣除基线
  • 定量检测应包含标准曲线
  • 仔细规划甲板布局,第 4 列保留用于盖子存放
  • 保护第 4 列,切勿在暂存区加载实验器具
  • 板移至读板模块后允许短暂平衡,防止冷凝问题
  • 检查夹爪兼容性,确保板具有可夹持几何形状
  • 记录波长选择理由

常见错误

  • 盖子打开时初始化:必须先 close_lid() 再 initialize()
  • 在第 4 列加载实验器具:该列保留,应使用其他列
  • 未关闭盖子就读取:read() 前必须关闭盖子
  • 使用不支持的波长:应使用 380–740nm 范围内 10nm 步进的波长
  • 访问未测量的波长数据:只能访问初始化时设置的波长

限制

  • 仅支持 Opentrons Flex,不兼容 OT-2
  • 需要 API 2.21 或更高版本
  • 波长范围限于 380–740nm,10nm 步进
  • 不支持荧光或发光测量
  • 第 4 列整列保留用于盖子暂存,不能加载实验器具
  • 每次读取最多 6 个波长
  • 吸光度值范围 0.0–4.0 OD
  • 仅适用于 96 孔板

故障排除

  • 模块未加载:确认 API 版本 ≥2.21、robotType 为 "Flex"、模块位于第 3 列槽位
  • 盖子错误:初始化前调用 close_lid(),确保第 4 列暂存区清空,检查夹爪功能
  • 读取错误:确认读取前盖子已关闭、板在读板模块上、波长与初始化设置一致
  • 数据访问错误:访问已初始化的波长,使用正确孔位名称("A1" 而非 "a1"),确认数据类型为字典
  • 夹爪无法移动板:确认板具有可夹持几何形状、读板模块盖子已打开、板与读板模块兼容(96 孔板)