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")
最佳实践
- 抓取器操作前始终打开门锁 - 防止抓取器错误
- 停止加热前先停止摇动 - 更安全的关机序列
- 使用非阻塞温度进行并行操作 - 节省协议时间
- 摇动前关闭门锁 - 操作必需
- 允许温度稳定 - 达到目标后添加简短延迟
- 监控摇动速度选择 - 更高速度风险飞溅/污染
- 考虑环境温度 - 影响最低可达到温度
- 计划甲板布局(OT-2) - 考虑相邻插槽限制
- 添加协议注释 - 记录温度/摇动条件以可重复性
- 协议结束时停用 - 防止设备无限运行
常见错误
❌ 打开门锁时摇动:
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"
附加资源
- 模块文档: https://docs.opentrons.com/v2/modules/heater_shaker.html
- Opentrons支持: https://support.opentrons.com/
- 协议示例: https://protocols.opentrons.com/
相关技能
opentrons- 主要Opentrons Python API技能opentrons-temperature-module- 仅温度控制(4-95°C)opentrons-thermocycler- PCR热循环opentrons-magnetic-block- 磁珠分离(Flex)opentrons-gripper- 自动化实验室器皿移动(Flex)