name: opentrons-temperature-module description: Opentrons温度模块 - 精确加热和冷却(4-95°C),适用于样本存储、酶反应和温度敏感协议,配备铝块适配器用于板、管和PCR条带 allowed-tools: [“*”]
Opentrons温度模块
概述
Opentrons温度模块 提供精确的温度控制(4-95°C),用于在自动化协议中维持样本在特定温度。适用于保持试剂冷藏、预热反应组件、温度敏感孵育,以及任何需要稳定温度条件而无混合的流程。
核心价值: 消除冰桶和水浴。在甲板上为试剂、样本和反应组件提供精确、可重现的温度控制,贯穿整个协议。
何时使用
在以下情况使用温度模块技能:
- 在协议中保持试剂冷藏(例如,酶在4°C)
- 预热反应组件(例如,缓冲液在37°C)
- 维持样本在特定温度
- 无混合的温度敏感酶反应
- 热处理后冷却样本
- 任何需要稳定温度控制(4-95°C)的协议
不要使用当:
- 需要温度控制期间的混合/摇晃(使用加热-振荡模块)
- 需要PCR热循环(使用热循环仪模块)
- 温度超出4-95°C范围
- 需要精确的温度斜坡或循环
快速参考
| 操作 | 方法 | 关键参数 |
|---|---|---|
| 加载模块 | protocol.load_module() |
"temperature module gen2", 位置 |
| 设置温度 | set_temperature() |
摄氏度(4-95) |
| 获取当前温度 | .temperature |
只读属性 |
| 检查状态 | .status |
返回 “holding at target” 或 “idle” |
| 停用 | deactivate() |
- |
平台兼容性
Opentrons Flex和OT-2均支持
模块代际
- 第一代 - 原始温度模块
- 第二代 - 改进的冷却性能,更好的隔离(推荐)
第二代关键改进:
- 板周围的塑料绝缘
- 铝块的护罩
- 与运行热循环仪共享甲板时更好的冷却性能
- 与第一代相同的API
加载模块
from opentrons import protocol_api
metadata = {'apiLevel': '2.19'}
def run(protocol: protocol_api.ProtocolContext):
# 加载温度模块第二代
temp_mod = protocol.load_module("temperature module gen2", "D1") # Flex
# temp_mod = protocol.load_module("temperature module gen2", "4") # OT-2
# 在模块上加载实验室器皿
cold_plate = temp_mod.load_labware("opentrons_96_aluminumblock_generic_pcr_strip_200ul")
模块版本:
"temperature module gen2"- 第二代(推荐)"temperatureModuleV1"- 第一代(旧版)
甲板槽位: 任何兼容槽位(Flex: A1-D3, OT-2: 1-11)
加载实验室器皿
独立适配器(API 2.15+)
推荐方法 - 先加载适配器,再加载实验室器皿:
# 96孔铝块
temp_block = temp_mod.load_adapter("opentrons_96_well_aluminum_block")
sample_plate = temp_block.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
可用适配器:
| 适配器名称 | 兼容实验室器皿 |
|---|---|
opentrons_96_well_aluminum_block |
96孔板,PCR板 |
opentrons_aluminum_flat_bottom_plate |
平底板 |
opentrons_96_deep_well_temp_mod_adapter |
深孔板 |
块和管组合
对于带铝块的管架:
# 24孔块,含多种管类型
tubes_nest = temp_mod.load_labware("opentrons_24_aluminumblock_nest_1.5ml_snapcap")
tubes_generic = temp_mod.load_labware("opentrons_24_aluminumblock_generic_2ml_screwcap")
旧版块和板组合
# 预配置组合(旧API版本)
plate_combo = temp_mod.load_labware("opentrons_96_aluminumblock_biorad_wellplate_200ul")
推荐: 使用独立适配器(API 2.15+)以获得更好的灵活性。
温度控制
设置温度
# 设置温度并等待直到达到
temp_mod.set_temperature(celsius=4)
# 协议在此等待,直到达到4°C
# 在目标温度下执行操作
pipette.transfer(100, cold_reagent, dest_plate.wells())
温度范围: 4-95°C(1°C分辨率)
行为: 协议执行阻塞(等待)直到目标温度达到。
温度状态
# 获取当前温度
current_temp = temp_mod.temperature
protocol.comment(f"模块在 {current_temp}°C")
# 检查状态
status = temp_mod.status
# 返回:"holding at target" 或 "idle"
if status == "holding at target":
protocol.comment("温度稳定,继续")
停用
# 关闭温度控制
temp_mod.deactivate()
重要: 模块在协议结束时不会自动停用。如果协议完成或取消,必须通过Opentrons App手动关闭。
常见模式
保持试剂冷藏
# 在整个协议中保持酶和主混合液冷藏
temp_mod = protocol.load_module("temperature module gen2", "D1")
reagent_block = temp_mod.load_adapter("opentrons_24_aluminumblock_nest_1.5ml_snapcap")
# 开始前设置到4°C
temp_mod.set_temperature(4)
# 在整个协议期间试剂保持冷藏
pipette.transfer(10, reagent_block["A1"], dest_plate.wells())
# ... 协议其余部分 ...
# 结束时关闭
temp_mod.deactivate()
预热反应组件
# 预热缓冲液到37°C
temp_mod = protocol.load_module("temperature module gen2", "C2")
warm_block = temp_mod.load_adapter("opentrons_96_well_aluminum_block")
warm_plate = warm_block.load_labware("corning_96_wellplate_360ul_flat")
# 设置到反应温度
temp_mod.set_temperature(37)
# 使用预热组件
pipette.transfer(50, warm_plate["A1"], reaction_plate.wells())
temp_mod.deactivate()
热处理后冷却
# PCR或热失活后冷却样本
temp_mod = protocol.load_module("temperature module gen2", "D3")
cooling_block = temp_mod.load_adapter("opentrons_96_well_aluminum_block")
# 设置到4°C进行冷却
temp_mod.set_temperature(4)
# 用夹爪移动热样本到冷却块(Flex)
protocol.move_labware(hot_plate, temp_mod, use_gripper=True)
# 在4°C保持
protocol.delay(minutes=5)
# 继续处理冷却样本
temp_mod.deactivate()
温度敏感酶反应
# 在最佳温度下进行限制性酶切
temp_mod = protocol.load_module("temperature module gen2", "D1")
rxn_block = temp_mod.load_adapter("opentrons_96_well_aluminum_block")
rxn_plate = rxn_block.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
# 设置反应
pipette.transfer(20, dna_samples, rxn_plate.wells()[:8])
pipette.transfer(5, enzyme_mix, rxn_plate.wells()[:8], mix_after=(3, 15))
# 在最佳温度孵育
temp_mod.set_temperature(37)
protocol.delay(hours=2)
# 热失活
temp_mod.set_temperature(65)
protocol.delay(minutes=20)
# 冷却用于下游处理
temp_mod.set_temperature(4)
temp_mod.deactivate()
多步骤协议期间保持温度
# 除了特定步骤外,保持样本在4°C
cold_storage = protocol.load_module("temperature module gen2", "D1")
cold_block = cold_storage.load_adapter("opentrons_96_well_aluminum_block")
sample_plate = cold_block.load_labware("biorad_96_wellplate_200ul_pcr")
# 开始时设置到4°C
cold_storage.set_temperature(4)
# 样本在模块上保持冷藏
# 移动到室温进行特定操作
protocol.move_labware(sample_plate, "C2", use_gripper=True)
# ... 执行室温操作 ...
# 返回冷藏存储
protocol.move_labware(sample_plate, cold_storage, use_gripper=True)
cold_storage.deactivate()
与其他模块集成
与热循环仪
# PCR前预冷样本
temp_mod = protocol.load_module("temperature module gen2", "D1")
tc_mod = protocol.load_module("thermocyclerModuleV2")
cold_block = temp_mod.load_adapter("opentrons_96_well_aluminum_block")
sample_plate = cold_block.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
# 保持样本冷藏
temp_mod.set_temperature(4)
# 设置PCR混合液(样本保持冷藏)
# ... 移液 ...
# 转移到热循环仪
tc_mod.open_lid()
protocol.move_labware(sample_plate, tc_mod, use_gripper=True)
# 运行PCR
tc_mod.close_lid()
# ... 热循环 ...
# PCR后返回冷藏存储
tc_mod.open_lid()
protocol.move_labware(sample_plate, temp_mod, use_gripper=True)
temp_mod.deactivate()
与加热-振荡器
# 振荡/加热后冷却
hs_mod = protocol.load_module("heaterShakerModuleV1", "D1")
temp_mod = protocol.load_module("temperature module gen2", "D2")
# 预冷温度模块
temp_mod.set_temperature(4)
# 在加热-振荡器上加热/振荡
hs_mod.set_and_wait_for_temperature(65)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_shake_speed(1000)
protocol.delay(minutes=10)
hs_mod.deactivate_shaker()
hs_mod.deactivate_heater()
hs_mod.open_labware_latch()
# 转移到温度模块进行冷却
protocol.move_labware(reaction_plate, temp_mod, use_gripper=True)
protocol.delay(minutes=3)
temp_mod.deactivate()
与磁力块
# 温度控制磁分离
mag_block = protocol.load_module("magneticBlockV1", "D1")
temp_mod = protocol.load_module("temperature module gen2", "D2")
# 冷却洗脱缓冲液
temp_mod.set_temperature(4)
# 磁分离
protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)
pipette.transfer(150, sample_plate.wells(), waste.wells())
# 用冷缓冲液洗脱
protocol.move_labware(sample_plate, temp_mod, use_gripper=True)
pipette.transfer(50, cold_buffer, sample_plate.wells())
temp_mod.deactivate()
最佳实践
- 加载样本前设置温度 - 允许模块稳定
- 协议结束时停用 - 防止设备无限运行
- 使用第二代获得更好性能 - 改进的冷却和隔离
- 计划热平衡时间 - 大温度变化需要时间
- 监控环境温度 - 影响最小可达到温度(4°C目标需要凉爽房间)
- 使用铝块 - 比直接放置板更好的热接触
- 避免在温度变化期间移液 - 等待“holding at target”状态
- 考虑热质量 - 更多液体 = 更慢温度平衡
- 不要依赖自动停用 - 模块在协议结束后保持开启
- 检查兼容性 - 验证实验室器皿适合适配器/块
常见错误
❌ 在温度变化期间移液:
temp_mod.set_temperature(4)
# set_temperature() 阻塞直到达到,但更安全检查状态
pipette.transfer(...) # 如果没有完全稳定,有风险
✅ 正确:
temp_mod.set_temperature(4)
# 等待状态确认
if temp_mod.status == "holding at target":
pipette.transfer(...)
❌ 不停用模块:
temp_mod.set_temperature(4)
# ... 协议结束 ...
# 模块保持在4°C无限期!
✅ 正确:
temp_mod.set_temperature(4)
# ... 操作 ...
temp_mod.deactivate()
❌ 温度超出范围:
temp_mod.set_temperature(100) # 错误:最大95°C
temp_mod.set_temperature(0) # 错误:最小4°C
✅ 正确:
temp_mod.set_temperature(95) # 在范围内
temp_mod.set_temperature(4) # 在范围内
❌ 温度稳定前加载实验室器皿:
temp_mod.set_temperature(4)
# 温度尚未达到 - 样本在冷却过程中变暖
pipette.transfer(100, warm_samples, temp_block.wells())
✅ 正确:
# 加载样本前设置温度
temp_mod.set_temperature(4)
# 现在在4°C,样本保持冷藏
pipette.transfer(100, warm_samples, temp_block.wells())
故障排除
模块达不到4°C:
- 检查环境室温(模块不能冷却到远低于环境)
- 确保模块周围有足够空气流通
- 验证模块放在平坦、水平表面上
- 考虑使用冰袋作为补充,用于非常冷的要求
模块达不到高温:
- 验证温度 ≤95°C
- 检查模块不在寒冷环境中
- 允许足够时间用于大热质量
温度不稳定:
- 等待状态显示“holding at target”
- 避免高气流环境
- 确保实验室器皿与块之间良好热接触
- 使用适合实验室器皿类型的适配器
温度变化慢:
- 大温度差异时正常
- 使用较小实验室器皿/管以获得更快平衡
- 关键步骤前预冷/预热模块
- 考虑样本热质量
协议后模块保持开启:
- 这是预期行为
- 通过Opentrons App手动停用
- 或在协议结束时添加
deactivate()
温度限制
| 参数 | 最小 | 最大 | 分辨率 |
|---|---|---|---|
| 块温度 | 4°C | 95°C | 1°C |
| 冷却能力 | ~比环境低4°C | - | - |
| 加热能力 | - | 95°C | - |
注意: 实际最小温度取决于环境条件。在温暖房间(>25°C),达到4°C可能困难。
高级技术
温度梯度协议
# 优化斜坡温度
temp_mod = protocol.load_module("temperature module gen2", "D1")
for temp in [4, 20, 37, 55, 70]:
temp_mod.set_temperature(temp)
protocol.comment(f"现在在 {temp}°C")
# 在每个温度执行操作
# ... 取样、测量等 ...
protocol.delay(minutes=5)
temp_mod.deactivate()
双温度设置
# 同时维持两个不同温度
cold_mod = protocol.load_module("temperature module gen2", "D1")
warm_mod = protocol.load_module("temperature module gen2", "D2")
cold_mod.set_temperature(4)
warm_mod.set_temperature(37)
# 在协议中使用两个温度区域
pipette.transfer(10, cold_mod.labware["A1"], reaction_plate.wells())
pipette.transfer(50, warm_mod.labware["A1"], reaction_plate.wells())
cold_mod.deactivate()
warm_mod.deactivate()
温度冲击协议
# 细胞工作的快速温度变化
temp_mod = protocol.load_module("temperature module gen2", "D1")
cell_plate = temp_mod.load_labware("corning_96_wellplate_360ul_flat")
# 冰孵育
temp_mod.set_temperature(4)
protocol.delay(minutes=20)
# 热冲击
temp_mod.set_temperature(42)
protocol.delay(seconds=45)
# 恢复
temp_mod.set_temperature(37)
protocol.delay(minutes=5)
temp_mod.deactivate()
第二代 vs 第一代
| 特性 | 第一代 | 第二代 |
|---|---|---|
| 温度范围 | 4-95°C | 4-95°C |
| 冷却 | 基本 | 改进,带绝缘 |
| 热循环仪兼容性 | 冷却性能差 | 冷却性能好 |
| 板绝缘 | 无 | 塑料护罩 |
| 块护罩 | 否 | 是 |
| API | 相同 | 相同 |
| 推荐 | 否 | 是 |
推荐: 所有新协议使用第二代。
API版本要求
- 最小API版本: 2.0(温度模块支持)
- 独立适配器: API 2.15+
- 推荐: 2.19+ 以获得完整功能支持
附加资源
- 温度模块文档: https://docs.opentrons.com/v2/modules/temperature_module.html
- 实验室器皿库: https://labware.opentrons.com/
- Opentrons支持: https://support.opentrons.com/
相关技能
opentrons- 主Opentrons Python API技能opentrons-heater-shaker- 带混合的温度控制(37-95°C)opentrons-thermocycler- PCR热循环(4-99°C块)opentrons-gripper- 自动化实验室器皿移动(Flex)opentrons-magnetic-block- 磁珠分离