name: opentrons-thermocycler description: Opentrons 热循环仪模块 - 自动化PCR热循环,具有独立的块(4-99°C)和盖(37-110°C)温度控制、配置文件执行和自动密封盖支持(GEN2),适用于高通量分子生物学工作流 allowed-tools: [“*”]
Opentrons 热循环仪模块
概述
Opentrons 热循环仪模块通过精确的独立控制块温度(4-99°C)和加热盖(37-110°C)来自动化PCR热循环。执行复杂的温度配置文件并自动循环,与液体处理集成以实现完整的PCR设置自动化,并使用自动密封盖(GEN2)支持无人值守工作流。
核心价值: 完全自动化PCR设置和循环。加载样品、分配试剂、密封板(GEN2)、运行温度配置文件并收集产物——所有这些都无需人工干预。
使用时机
在以下情况使用热循环仪技能:
- 运行PCR扩增协议
- 执行qPCR或RT-PCR反应
- 自动化DNA/RNA热循环工作流
- 执行多步骤温度孵育
- 将热循环与自动化液体处理集成
- 设置高通量PCR筛选
不要使用的情况:
- 需要简单温度控制(使用温度模块,范围4-95°C)
- 需要在孵育期间振荡/混合(使用加热振荡模块)
- 温度超出4-99°C范围(块)或37-110°C(盖)
快速参考
| 操作 | 方法 | 关键参数 |
|---|---|---|
| 加载模块 | protocol.load_module() |
"thermocyclerModuleV2" 或 "thermocyclerModuleV1" |
| 打开盖 | open_lid() |
- |
| 关闭盖 | close_lid() |
- |
| 设置盖温度 | set_lid_temperature() |
摄氏度(37-110) |
| 停用盖 | deactivate_lid() |
- |
| 设置块温度 | set_block_temperature() |
摄氏度(4-99)、hold_time、block_max_volume |
| 执行配置文件 | execute_profile() |
steps、repetitions、block_max_volume |
| 停用块 | deactivate_block() |
- |
平台兼容性
Opentrons Flex 和 OT-2 均支持
模块代际
- GEN1 - 原始热循环仪,兼容两个平台
- GEN2 - 改进的板抬升机制,支持自动密封盖
API 兼容性: 两代支持相同的API方法
甲板位置
OT-2: 跨越多個甲板槽(通常是槽7、8、10、11)
Flex: 专用热循环仪位置
加载:
# 未指定甲板槽 - 热循环仪有固定位置
tc_mod = protocol.load_module("thermocyclerModuleV2")
加载模块
from opentrons import protocol_api
metadata = {'apiLevel': '2.19'}
def run(protocol: protocol_api.ProtocolContext):
# 加载热循环仪模块(无位置 - 固定位置)
tc_mod = protocol.load_module("thermocyclerModuleV2")
# 加载PCR板
pcr_plate = tc_mod.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
模块版本:
"thermocyclerModuleV1"- GEN1"thermocyclerModuleV2"- GEN2(推荐)
盖子控制
基本盖子操作
# 打开盖子以便移液器访问
tc_mod.open_lid()
# 关闭盖子以进行热循环
tc_mod.close_lid()
对夹爪(Flex)很重要:
- 在夹爪操作前始终打开盖子
- 仅在板放置在热循环仪上后关闭盖子
加热盖
加热盖在热循环期间防止冷凝:
# 设置盖温度(阻塞直到达到)
tc_mod.set_lid_temperature(celsius=105)
# 运行温度配置文件
# ... 循环 ...
# 关闭盖加热器
tc_mod.deactivate_lid()
盖温度范围: 37-110°C
典型设置:
- 标准PCR: 105°C
- RT-PCR: 100-105°C
- 自定义协议: 匹配或超过最高块温度 + 5-10°C
注意: 盖温度独立于块温度和配置文件。
块温度控制
基本块温度
# 设置块温度并等待
tc_mod.set_block_temperature(
temperature=95,
hold_time_seconds=180, # 保持3分钟
block_max_volume=50 # 孔内体积(µL)
)
# 块自动在hold_time期间保持温度
块温度范围: 4-99°C
参数:
temperature- 目标温度(°C,必需)hold_time_seconds- 保持温度的持续时间hold_time_minutes- 替代持续时间(分钟)block_max_volume- 样品体积(µL,默认:25µL)
保持时间行为
使用 hold_time: 协议在指定持续时间内等待在温度
# 在95°C等待5分钟
tc_mod.set_block_temperature(
temperature=95,
hold_time_minutes=5,
block_max_volume=50
)
# 5分钟后协议继续
无 hold_time: 设置温度并立即继续
# 设置到4°C并继续(无保持)
tc_mod.set_block_temperature(temperature=4)
# 在保持4°C的同时可执行其他操作
块最大体积
指定样品体积以提高温度准确性:
# 50µL反应
tc_mod.set_block_temperature(
temperature=72,
hold_time_minutes=10,
block_max_volume=50 # 为50µL优化加热/冷却
)
默认: 如果未指定,则为25µL
为什么重要: 算法调整液体热质量以确保准确的样品温度。
温度配置文件
为PCR自动化重复温度循环:
定义配置文件
# PCR配置文件:变性 → 退火 → 延伸
pcr_profile = [
{"temperature": 95, "hold_time_seconds": 30}, # 变性
{"temperature": 57, "hold_time_seconds": 30}, # 退火
{"temperature": 72, "hold_time_seconds": 60} # 延伸
]
配置文件结构: 包含 temperature 和 hold_time_seconds 的字典列表
执行配置文件
# 运行配置文件30个循环
tc_mod.execute_profile(
steps=pcr_profile,
repetitions=30,
block_max_volume=50
)
参数:
steps- 温度步骤列表(必需)repetitions- 重复配置文件的次数(必需)block_max_volume- 样品体积(µL)
完整PCR协议
# 设置
tc_mod = protocol.load_module("thermocyclerModuleV2")
pcr_plate = tc_mod.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
# 打开盖子以便加载
tc_mod.open_lid()
# 移液PCR试剂(未显示)
# ... 添加模板、引物、聚合酶等 ...
# 关闭盖子并设置盖温度
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
# 初始变性
tc_mod.set_block_temperature(
temperature=95,
hold_time_seconds=180, # 3分钟
block_max_volume=50
)
# PCR循环
pcr_profile = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": 57, "hold_time_seconds": 30},
{"temperature": 72, "hold_time_seconds": 60}
]
tc_mod.execute_profile(steps=pcr_profile, repetitions=30, block_max_volume=50)
# 最终延伸
tc_mod.set_block_temperature(
temperature=72,
hold_time_minutes=5,
block_max_volume=50
)
# 保持在4°C
tc_mod.set_block_temperature(temperature=4)
# 清理
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
tc_mod.open_lid()
自动密封盖(GEN2)
Opentrons Flex GEN2 热循环仪 支持自动密封盖用于无人值守协议:
自动密封盖实验器具
# 加载自动密封盖和提升器
auto_seal_lid = protocol.load_labware(
"opentrons_tough_pcr_auto_sealing_lid",
location="lid_stack_location"
)
riser = protocol.load_labware(
"opentrons_flex_deck_riser",
location="deck_location"
)
盖子堆栈管理
# 堆叠最多5个自动密封盖
lid_stack = tc_mod.load_lid_stack(
"opentrons_tough_pcr_auto_sealing_lid",
quantity=5
)
# 用夹爪移动盖子
protocol.move_lid(
lid=lid_stack,
new_location=pcr_plate,
use_gripper=True
)
重要: 使用自动密封盖时,不要将橡胶密封件粘贴到内部热循环仪盖子上。
使用自动密封盖的完整工作流
# 加载模块和实验器具
tc_mod = protocol.load_module("thermocyclerModuleV2")
pcr_plate = tc_mod.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
# 加载自动密封盖
lid_stack = tc_mod.load_lid_stack(
"opentrons_tough_pcr_auto_sealing_lid",
quantity=3
)
# 设置样品
tc_mod.open_lid()
# ... 移液试剂 ...
# 用夹爪应用自动密封盖
protocol.move_lid(lid_stack, pcr_plate, use_gripper=True)
# 关闭热循环仪盖子
tc_mod.close_lid()
# 运行PCR
# ... 热循环 ...
# 打开以检索
tc_mod.open_lid()
常见模式
标准PCR
# 标准 Taq PCR 协议
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
# 初始变性
tc_mod.set_block_temperature(95, hold_time_minutes=3, block_max_volume=50)
# 循环
standard_pcr = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": 55, "hold_time_seconds": 30},
{"temperature": 72, "hold_time_seconds": 60}
]
tc_mod.execute_profile(steps=standard_pcr, repetitions=35, block_max_volume=50)
# 最终延伸
tc_mod.set_block_temperature(72, hold_time_minutes=10, block_max_volume=50)
# 保持在4°C
tc_mod.set_block_temperature(4)
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
tc_mod.open_lid()
梯度PCR(多個退火温度)
# 在列中测试多个退火温度
annealing_temps = [52, 54, 56, 58, 60, 62, 64, 66] # 8个温度
for i, temp in enumerate(annealing_temps):
protocol.comment(f"Column {i+1}: {temp}°C annealing")
# 移液样品到列(示例)
# pipette.transfer(50, master_mix, pcr_plate.columns()[i])
# 为此列运行梯度PCR
gradient_profile = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": temp, "hold_time_seconds": 30}, # 可变退火
{"temperature": 72, "hold_time_seconds": 60}
]
tc_mod.execute_profile(steps=gradient_profile, repetitions=30, block_max_volume=50)
注意: 此示例简化。真正的梯度PCR需要支持跨块同时温度梯度的硬件。
两步PCR(无延伸)
# 两步PCR(变性 + 退火/延伸组合)
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
tc_mod.set_block_temperature(95, hold_time_minutes=3, block_max_volume=25)
two_step = [
{"temperature": 95, "hold_time_seconds": 15},
{"temperature": 60, "hold_time_seconds": 60} # 组合退火/延伸
]
tc_mod.execute_profile(steps=two_step, repetitions=40, block_max_volume=25)
tc_mod.set_block_temperature(4)
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
tc_mod.open_lid()
RT-PCR(反转录 + PCR)
# 反转录 + PCR
tc_mod.close_lid()
tc_mod.set_lid_temperature(100)
# 反转录
tc_mod.set_block_temperature(42, hold_time_minutes=30, block_max_volume=20)
# RT失活
tc_mod.set_block_temperature(85, hold_time_minutes=5, block_max_volume=20)
# 冷却以添加PCR酶(如果需要)
tc_mod.set_block_temperature(4)
tc_mod.open_lid()
# 添加PCR酶
# pipette.transfer(...)
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
# PCR循环
tc_mod.set_block_temperature(95, hold_time_minutes=2, block_max_volume=25)
rt_pcr_profile = [
{"temperature": 95, "hold_time_seconds": 15},
{"temperature": 60, "hold_time_seconds": 30},
{"temperature": 72, "hold_time_seconds": 30}
]
tc_mod.execute_profile(steps=rt_pcr_profile, repetitions=40, block_max_volume=25)
tc_mod.set_block_temperature(4)
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
tc_mod.open_lid()
降落PCR
# 降落PCR - 递减退火温度
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
tc_mod.set_block_temperature(95, hold_time_minutes=3, block_max_volume=50)
# 高严格性循环(65°C → 55°C,每循环-1°C)
for temp in range(65, 54, -1):
touchdown_profile = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": temp, "hold_time_seconds": 30},
{"temperature": 72, "hold_time_seconds": 60}
]
tc_mod.execute_profile(steps=touchdown_profile, repetitions=1, block_max_volume=50)
# 低严格性循环(剩余55°C)
standard_profile = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": 55, "hold_time_seconds": 30},
{"temperature": 72, "hold_time_seconds": 60}
]
tc_mod.execute_profile(steps=standard_profile, repetitions=25, block_max_volume=50)
tc_mod.set_block_temperature(72, hold_time_minutes=10, block_max_volume=50)
tc_mod.set_block_temperature(4)
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
tc_mod.open_lid()
与液体处理集成
自动化PCR设置
# 完整自动化PCR设置
tc_mod = protocol.load_module("thermocyclerModuleV2")
pcr_plate = tc_mod.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt")
pipette = protocol.load_instrument("flex_1channel_1000", "left")
# 试剂
master_mix = protocol.load_labware("opentrons_24_tuberack_nest_1.5ml_snapcap", "C1")
template_plate = protocol.load_labware("biorad_96_wellplate_200ul_pcr", "C2")
# 打开热循环仪
tc_mod.open_lid()
# 分配主混合液
pipette.distribute(
volume=45,
source=master_mix["A1"],
dest=pcr_plate.wells(),
new_tip="once"
)
# 添加模板DNA
pipette.transfer(
volume=5,
source=template_plate.wells(),
dest=pcr_plate.wells(),
mix_after=(3, 25),
new_tip="always"
)
# 运行PCR
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
tc_mod.set_block_temperature(95, hold_time_minutes=3, block_max_volume=50)
pcr_profile = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": 58, "hold_time_seconds": 30},
{"temperature": 72, "hold_time_seconds": 60}
]
tc_mod.execute_profile(steps=pcr_profile, repetitions=30, block_max_volume=50)
tc_mod.set_block_temperature(72, hold_time_minutes=5, block_max_volume=50)
tc_mod.set_block_temperature(4)
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
tc_mod.open_lid()
与夹爪集成(Flex)
# 在甲板外准备样品,移动到热循环仪
sample_plate = protocol.load_labware("opentrons_96_wellplate_200ul_pcr_full_skirt", "C2")
# 设置样品
# ... 移液 ...
# 用夹爪移动到热循环仪
tc_mod.open_lid()
protocol.move_labware(sample_plate, tc_mod, use_gripper=True)
# 运行PCR
tc_mod.close_lid()
# ... 热循环 ...
# 检索板
tc_mod.open_lid()
protocol.move_labware(sample_plate, "C2", use_gripper=True)
GEN2 改进
板抬升机制:
- 盖子打开时按按钮3秒以激活
- 抬升板以便手动或夹爪移除
- 改善板访问并防止损坏
自动密封盖支持:
- 使用 Opentrons Tough PCR 自动密封盖
- 堆叠最多5个盖
- 用夹爪自动放置盖
最佳实践
- 在循环前设置盖温度 - 防止冷凝
- 使用 block_max_volume 参数 - 提高温度准确性
- 在协议结束时停用块和盖 - 防止设备无限运行
- 在夹爪操作前打开盖子 - 板移动所需
- 使用配置文件进行重复循环 - 比单独调用 set_block_temperature 更高效
- 结束时冷却到4°C - 保护样品直到检索
- 计划热平衡 - 为大的温度变化留出额外时间
- 用模拟测试配置文件 - 在硬件上运行前验证时间
- 记录配置文件参数 - 在协议注释中包含理由
- 考虑酶规格 - 匹配聚合酶要求的温度
常见错误
❌ 不设置盖温度:
tc_mod.close_lid()
tc_mod.execute_profile(...) # 冷凝风险 - 无盖加热
✅ 正确:
tc_mod.close_lid()
tc_mod.set_lid_temperature(105)
tc_mod.execute_profile(...)
❌ 盖子关闭时夹爪移动:
protocol.move_labware(plate, tc_mod, use_gripper=True) # 错误:盖子关闭
✅ 正确:
tc_mod.open_lid()
protocol.move_labware(plate, tc_mod, use_gripper=True)
❌ 不停用模块:
tc_mod.execute_profile(...)
# 协议结束 - 热循环仪仍在加热!
✅ 正确:
tc_mod.execute_profile(...)
tc_mod.deactivate_lid()
tc_mod.deactivate_block()
❌ 错误的配置文件结构:
# 缺少 hold_time_seconds
bad_profile = [
{"temperature": 95},
{"temperature": 55}
]
tc_mod.execute_profile(steps=bad_profile, repetitions=30) # 错误
✅ 正确:
good_profile = [
{"temperature": 95, "hold_time_seconds": 30},
{"temperature": 55, "hold_time_seconds": 30}
]
tc_mod.execute_profile(steps=good_profile, repetitions=30)
故障排除
模块未达到温度:
- 验证温度在范围内(块4-99°C,盖37-110°C)
- 检查环境温度以获取低温目标
- 允许足够的热平衡时间
孔内冷凝:
- 确保在循环前设置并达到盖温度
- 设置盖温度 ≥ 最高块温度 + 5-10°C
- 验证盖子正确关闭
配置文件未执行:
- 检查配置文件结构(包含 temperature 和 hold_time_seconds 的字典列表)
- 验证提供了 repetitions 参数
- 确保 block_max_volume 匹配样品体积
板移除困难(GEN1):
- 等待块冷却到60°C以下
- 使用板抬升机制(GEN2)
- 确保盖子完全打开
夹爪错误:
- 验证在移动前盖子打开
- 检查板是兼容的PCR实验器具
- 确保热循环仪位置清晰
与其他模块集成
与温度模块(预冷却)
temp_mod = protocol.load_module("temperature module gen2", "D1")
tc_mod = protocol.load_module("thermocyclerModuleV2")
# 在温度模块上预冷却样品
temp_mod.set_temperature(4)
protocol.move_labware(sample_plate, temp_mod, use_gripper=True)
protocol.delay(minutes=5)
# 转移到热循环仪
tc_mod.open_lid()
protocol.move_labware(sample_plate, tc_mod, use_gripper=True)
# 运行PCR
tc_mod.close_lid()
# ... 热循环 ...
与磁模块(PCR清理)
# PCR后,执行磁珠清理
tc_mod.set_block_temperature(4)
tc_mod.open_lid()
mag_block = protocol.load_module("magneticBlockV1", "D2")
# 移动PCR产物到磁模块
protocol.move_labware(pcr_plate, mag_block, use_gripper=True)
# 清理工作流
# ... 磁珠纯化 ...
API 版本要求
- 最小API版本: 2.0(热循环仪支持)
- GEN2 特性: API 2.13+
- 自动密封盖: API 2.15+
- 推荐: 2.19+ 以支持完整特性
附加资源
- 热循环仪文档: https://docs.opentrons.com/v2/modules/thermocycler.html
- PCR 协议库: https://protocols.opentrons.com/
- Opentrons 支持: https://support.opentrons.com/
相关技能
opentrons- 主要 Opentrons Python API 技能opentrons-temperature-module- 简单温度控制(4-95°C)opentrons-gripper- 自动化实验器具移动(Flex)opentrons-magnetic-block- 用于PCR清理的磁珠分离