Opentrons加热摇床模块Skill opentrons-heater-shaker

Opentrons加热摇床模块技能用于自动化实验室中的加热和摇床操作,提供精确的温度控制(37-95°C)和轨道混合(200-3000 rpm),适用于细胞培养、酶反应、细菌转化、ELISA洗涤等需要温度控制搅拌的协议。关键词:Opentrons、加热摇床、实验室自动化、细胞培养、酶反应、温度控制、摇床混合。

生物制药 1 次安装 2 次浏览 更新于 3/12/2026

name: opentrons-heater-shaker description: Opentrons加热摇床模块 - 温度控制(37-95°C)与轨道混合(200-3000 rpm),适用于细胞培养、酶反应和需要同时加热和搅拌的样本制备 allowed-tools: [“*”]

Opentrons加热摇床模块

概述

加热摇床模块结合了精确的温度控制(37-95°C)和轨道摇动(200-3000 rpm),用于自动化协议中需要同时加热和混合的操作。理想用于细胞培养孵化、酶反应、细菌转化以及任何需要温度控制搅拌的工作流程。

核心价值: 以可重复的时间和条件自动化温度敏感的混合协议。用甲板上的温度控制取代手动孵化器转移。

何时使用

使用加热摇床技能时:

  • 执行需要温度控制和混合的酶反应
  • 孵化细胞培养或细菌转化
  • 进行带温度控制的ELISA洗涤步骤
  • 运行温度敏感的绑定或杂交反应
  • 协议需要精确的加热+混合周期定时
  • 用控制搅拌重悬珠子或颗粒

不要使用时:

  • 仅需要温度控制(使用温度模块代替)
  • 仅需要混合(考虑手动摇动或替代方法)
  • 温度超出37-95°C范围(或低于环境温度1.5°C以上)

快速参考

操作 方法 关键参数
加载模块 protocol.load_module() "heaterShakerModuleV1", 位置
设置温度(阻塞) set_and_wait_for_temperature() 摄氏度(37-95)
设置温度(非阻塞) set_target_temperature() 摄氏度
等待温度 wait_for_temperature() -
开始摇动(阻塞) set_and_wait_for_shake_speed() 转速(200-3000)
停止摇动 deactivate_shaker() -
停止加热 deactivate_heater() -
打开门锁 open_labware_latch() -
关闭门锁 close_labware_latch() -
检查状态 .current_temperature, .current_speed -

平台兼容性

Opentrons Flex

  • 允许插槽: 列1或列3(A1, B1, C1, D1, A3, B3, C3, D3)
  • 无相邻限制 - 完整的甲板灵活性

OT-2

  • 允许插槽: 1, 3, 4, 6, 7, 或 10
  • 相邻插槽限制:
    • 保持相邻插槽清空或仅使用低轮廓实验室器皿(<53mm高度)
    • 8通道移液器不能在相邻插槽中移液(如果前后朝向,吸头架可以)

加载模块

基本加载

from opentrons import protocol_api

metadata = {'apiLevel': '2.19'}

def run(protocol: protocol_api.ProtocolContext):
    # 在甲板插槽加载加热摇床
    hs_mod = protocol.load_module("heaterShakerModuleV1", location="D1")  # Flex
    # hs_mod = protocol.load_module("heaterShakerModuleV1", location="1")  # OT-2

加载带适配器的实验室器皿

两步方法(推荐):

# 先加载适配器,然后实验室器皿
hs_adapter = hs_mod.load_adapter("opentrons_96_flat_bottom_adapter")
hs_plate = hs_adapter.load_labware("nest_96_wellplate_200ul_flat")

可用适配器:

  • opentrons_96_flat_bottom_adapter - 通用平底板
  • opentrons_96_pcr_adapter - PCR板和条带
  • opentrons_96_deep_well_adapter - 深孔板
  • opentrons_universal_flat_adapter - 自定义平底实验室器皿

预配置组合(旧版):

# 直接加载实验室器皿(适配器隐含)
hs_plate = hs_mod.load_labware("nest_96_wellplate_200ul_flat")

门锁控制

摇动操作前必须关闭实验室器皿门锁。

# 摇动前关闭门锁
hs_mod.close_labware_latch()

# 打开门锁用于移液或抓取器访问
hs_mod.open_labware_latch()

重要:

  • 门锁打开或关闭时都可以移液
  • 摇动需要门锁关闭(如果打开会报错)
  • 抓取器访问需要门锁打开
  • 抓取器操作前始终打开门锁

温度控制

阻塞温度控制

协议在达到温度前等待:

# 设置温度并等待
hs_mod.set_and_wait_for_temperature(celsius=37)

# 在目标温度下执行操作
protocol.delay(minutes=10)

# 关闭加热器
hs_mod.deactivate_heater()

温度范围:

  • 最小: 37°C或环境温度加1.5°C(取较低者)
  • 最大: 95°C
  • 分辨率: 1°C

非阻塞温度控制

设置目标温度并在加热时继续其他操作:

# 开始加热(非阻塞)
hs_mod.set_target_temperature(celsius=75)

# 加热时进行移液
pipette.transfer(100, source, hs_plate.columns()[0])

# 关键步骤前等待温度
hs_mod.wait_for_temperature()

# 现在在目标温度
protocol.delay(minutes=5)

使用场景: 加热时并行移液以节省时间。

检查温度状态

# 获取当前温度
current_temp = hs_mod.current_temperature

# 记录温度
protocol.comment(f"Heater-Shaker at {current_temp}°C")

摇动控制

基本摇动

# 先关闭门锁(必需)
hs_mod.close_labware_latch()

# 开始摇动并等待达到速度
hs_mod.set_and_wait_for_shake_speed(rpm=500)

# 摇动特定时长
protocol.delay(minutes=5)

# 停止摇动
hs_mod.deactivate_shaker()

# 打开门锁用于移液访问
hs_mod.open_labware_latch()

速度范围:

  • 最小: 200 rpm
  • 最大: 3000 rpm

检查摇动速度

# 获取当前速度
current_speed = hs_mod.current_speed

if current_speed > 0:
    protocol.comment(f"Shaking at {current_speed} rpm")

摇动速度指南

按应用推荐速度:

  • 轻柔混合: 200-500 rpm
  • 细胞培养: 300-600 rpm
  • 酶反应: 400-800 rpm
  • 剧烈混合: 800-1500 rpm
  • 强力搅拌: 1500-3000 rpm

注意: 更高速度增加飞溅和交叉污染风险。

组合加热和摇动

顺序方法

# 先设置温度
hs_mod.set_and_wait_for_temperature(celsius=37)

# 然后开始摇动
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=400)

# 带加热和摇动的孵化
protocol.delay(minutes=30)

# 停止摇动,然后加热
hs_mod.deactivate_shaker()
hs_mod.open_labware_latch()
hs_mod.deactivate_heater()

并行方法(时间优化)

# 开始加热(非阻塞)
hs_mod.set_target_temperature(celsius=42)

# 加热时准备样本
pipette.transfer(100, samples, hs_plate.wells())

# 等待温度
hs_mod.wait_for_temperature()

# 开始摇动
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=600)

# 孵化
protocol.delay(minutes=20)

# 清理
hs_mod.deactivate_shaker()
hs_mod.open_labware_latch()
hs_mod.deactivate_heater()

常见模式

细菌转化

# 热休克协议
hs_mod.set_and_wait_for_temperature(celsius=4)
protocol.delay(minutes=20)  # 冰上孵化

# 热休克
hs_mod.set_and_wait_for_temperature(celsius=42)
protocol.delay(seconds=45)

# 恢复
hs_mod.set_and_wait_for_temperature(celsius=37)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=300)
protocol.delay(minutes=60)

hs_mod.deactivate_shaker()
hs_mod.deactivate_heater()
hs_mod.open_labware_latch()

酶反应

# 预热到反应温度
hs_mod.set_and_wait_for_temperature(celsius=37)

# 在温度下添加酶
hs_mod.open_labware_latch()
pipette.transfer(10, enzyme, hs_plate.wells(), mix_after=(3, 50))

# 带轻柔混合的孵化
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=300)
protocol.delay(minutes=30)

# 通过冷却停止反应
hs_mod.deactivate_shaker()
hs_mod.open_labware_latch()
hs_mod.set_and_wait_for_temperature(celsius=4)

hs_mod.deactivate_heater()

ELISA洗涤带孵化

# 带抗体的孵化
hs_mod.set_and_wait_for_temperature(celsius=37)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=400)
protocol.delay(minutes=60)

# 停止用于洗涤
hs_mod.deactivate_shaker()
hs_mod.open_labware_latch()

# 洗涤步骤
for _ in range(3):
    # 移除液体
    pipette.transfer(200, hs_plate.wells(), waste, new_tip="always")
    # 添加洗涤缓冲液
    pipette.transfer(200, wash_buffer, hs_plate.wells())
    # 混合
    hs_mod.close_labware_latch()
    hs_mod.set_and_wait_for_shake_speed(rpm=500)
    protocol.delay(seconds=30)
    hs_mod.deactivate_shaker()
    hs_mod.open_labware_latch()

hs_mod.deactivate_heater()

珠子重悬

# 重悬磁珠
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=1200)
protocol.delay(minutes=2)
hs_mod.deactivate_shaker()
hs_mod.open_labware_latch()

# 转移到磁模块用于分离
protocol.move_labware(hs_plate, mag_block, use_gripper=True)

高级技术

温度斜坡

# 逐渐温度增加
for temp in [25, 35, 45, 55, 65]:
    hs_mod.set_and_wait_for_temperature(temp)
    protocol.delay(minutes=5)

hs_mod.deactivate_heater()

带手动跟踪的精确定时

对于需要准确经过时间的保持:

import time

# 设置条件
hs_mod.set_and_wait_for_temperature(celsius=37)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=500)

# 跟踪经过时间
start_time = time.monotonic()

# 执行操作
# ... 您的协议步骤 ...

# 计算剩余时间
elapsed = time.monotonic() - start_time
remaining = max(0, (10 * 60) - elapsed)  # 总计10分钟

# 完成保持
protocol.delay(seconds=remaining)

hs_mod.deactivate_shaker()
hs_mod.deactivate_heater()
hs_mod.open_labware_latch()

与抓取器集成(Flex)

# 在加热摇床上加热/摇动
hs_mod.set_and_wait_for_temperature(celsius=37)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(rpm=400)
protocol.delay(minutes=30)
hs_mod.deactivate_shaker()
hs_mod.deactivate_heater()

# 抓取器操作前打开门锁
hs_mod.open_labware_latch()

# 移动板到下一个模块
protocol.move_labware(hs_plate, magnetic_block, use_gripper=True)

OT-2特定考虑

甲板布局限制

高度限制:

  • 相邻插槽必须空或包含<53mm高的实验室器皿
  • 相邻插槽中高实验室器皿(>53mm)会干扰模块

8通道移液器限制:

  • 不能在加热摇床相邻的插槽中移液
  • 例外:如果前后朝向,吸头架允许

示例有效OT-2布局:

# 加热摇床在插槽4
hs_mod = protocol.load_module("heaterShakerModuleV1", "4")

# 相邻插槽1, 5, 7 - 保持空或使用吸头架
tips_1 = protocol.load_labware("opentrons_96_tiprack_300ul", "1")  # 可以
tips_5 = protocol.load_labware("opentrons_96_tiprack_300ul", "5")  # 可以

# 使用非相邻插槽用于板
plate_2 = protocol.load_labware("corning_96_wellplate_360ul_flat", "2")
plate_3 = protocol.load_labware("corning_96_wellplate_360ul_flat", "3")

最佳实践

  1. 抓取器操作前始终打开门锁 - 防止抓取器错误
  2. 停止加热前先停止摇动 - 更安全的关机序列
  3. 使用非阻塞温度进行并行操作 - 节省协议时间
  4. 摇动前关闭门锁 - 操作必需
  5. 允许温度稳定 - 达到目标后添加简短延迟
  6. 监控摇动速度选择 - 更高速度风险飞溅/污染
  7. 考虑环境温度 - 影响最低可达到温度
  8. 计划甲板布局(OT-2) - 考虑相邻插槽限制
  9. 添加协议注释 - 记录温度/摇动条件以可重复性
  10. 协议结束时停用 - 防止设备无限运行

常见错误

❌ 打开门锁时摇动:

hs_mod.open_labware_latch()
hs_mod.set_and_wait_for_shake_speed(500)  # 错误:门锁必须关闭

✅ 正确:

hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(500)

❌ 没有打开门锁的抓取器移动:

protocol.move_labware(hs_plate, "C1", use_gripper=True)  # 错误:门锁关闭

✅ 正确:

hs_mod.open_labware_latch()
protocol.move_labware(hs_plate, "C1", use_gripper=True)

❌ 不停用模块:

hs_mod.set_and_wait_for_temperature(37)
# 协议结束 - 加热器保持打开!

✅ 正确:

hs_mod.set_and_wait_for_temperature(37)
# ... 操作 ...
hs_mod.deactivate_heater()

❌ 温度超出范围:

hs_mod.set_and_wait_for_temperature(celsius=25)  # 如果环境>23.5°C可能错误

✅ 正确:

# 使用温度模块用于温度<37°C
temp_mod.set_temperature(celsius=25)

故障排除

模块无法加热到37°C以下:

  • 检查环境温度 - 最低是环境温度加1.5°C
  • 考虑使用温度模块用于更低温度

摇动命令错误:

  • 验证门锁关闭
  • 检查摇动速度在200-3000 rpm范围内

移液器碰撞(OT-2):

  • 检查相邻插槽中高实验室器皿
  • 将高实验室器皿移动到非相邻插槽
  • 对于8通道移液,仅在相邻插槽中使用吸头架

温度不稳定:

  • 允许额外时间用于平衡
  • 验证模块不在高气流环境中
  • 检查实验室器皿正确坐落在适配器上

抓取器无法访问:

  • 确保门锁打开
  • 验证模块在允许的甲板插槽中(Flex的列1或3)

与其他模块集成

与磁模块(Flex)

# 在加热摇床上带珠子的孵化
hs_mod.set_and_wait_for_temperature(37)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(400)
protocol.delay(minutes=10)
hs_mod.deactivate_shaker()
hs_mod.deactivate_heater()
hs_mod.open_labware_latch()

# 移动到磁模块用于分离
protocol.move_labware(hs_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)  # 珠子分离

# 移液上清液
pipette.transfer(150, hs_plate.wells(), waste.wells())

# 返回加热摇床用于重悬
protocol.move_labware(hs_plate, hs_mod, use_gripper=True)

与温度模块

# 在温度模块上冷却样本
temp_mod.set_temperature(4)
protocol.move_labware(cold_plate, temp_mod, use_gripper=True)

# 在加热摇床上加热和摇动
hs_mod.set_and_wait_for_temperature(65)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(600)
protocol.delay(minutes=15)

API版本要求

  • 最低API版本: 2.13
  • 推荐: 2.19或更高以完全功能支持
  • Flex兼容性: API 2.15+带robotType: "Flex"

附加资源

相关技能

  • opentrons - 主要Opentrons Python API技能
  • opentrons-temperature-module - 仅温度控制(4-95°C)
  • opentrons-thermocycler - PCR热循环
  • opentrons-magnetic-block - 磁珠分离(Flex)
  • opentrons-gripper - 自动化实验室器皿移动(Flex)