Opentrons磁性块Skill opentrons-magnetic-block

Opentrons 磁性块技能用于自动化实验室中的磁珠分离工作流,支持DNA/RNA纯化、PCR清理、免疫沉淀等分子生物学实验。通过Opentrons Flex机器人的夹爪移动实验室器皿,结合高强度钕磁铁实现全自动化,适用于生物医药和科研领域。关键词:磁珠分离、DNA纯化、RNA提取、实验室自动化、Opentrons Flex、生物技术。

分子诊断 1 次安装 2 次浏览 更新于 3/12/2026

name: opentrons-magnetic-block description: Opentrons 磁性块 for Flex - 无电源磁珠分离,使用基于夹爪的实验室器皿移动,带有高强度钕磁铁,用于DNA/RNA纯化、免疫沉淀和基于珠子的工作流 allowed-tools: [“*”]

Opentrons 磁性块

概述

Opentrons 磁性块 是一种无电源的96孔磁性分离器,专用于Opentrons Flex。它使用高强度钕磁铁将磁珠拉到孔壁,实现上清液移除,用于DNA/RNA纯化、蛋白质清理、免疫沉淀和其他基于珠子的分离协议。

核心价值: 自动化基于磁珠的纯化工作流,无需手动平板转移。结合夹爪式的平板移动和磁性分离,实现全自动DNA提取、PCR清理和基于珠子的检测。

平台: 仅限Opentrons Flex(与OT-2不兼容)

何时使用

使用磁性块技能时:

  • 使用磁珠进行DNA/RNA提取
  • PCR产品清理(AMPure、SPRIselect珠子)
  • 基于磁珠的文库制备(NGS)
  • 蛋白质纯化或免疫沉淀与磁珠
  • 使用磁性颗粒进行细胞分选或富集
  • 任何需要磁性珠子分离的协议

不要使用时:

  • 与OT-2机器人工作(磁性块仅限Flex)
  • 需要垂直珠子移动在溶液中(块仅拉向侧边)
  • 需要加热磁性分离
  • 没有Opentrons Flex夹爪工作

快速参考

操作 方法 关键参数
加载模块 protocol.load_module() "magneticBlockV1", 位置
移动平板到块 protocol.move_labware() 实验室器皿, mag_block, use_gripper=True
等待分离 protocol.delay() 分钟(通常2-5)
吸取上清液 pipette.transfer() 来源, 目标
移动平板离开块 protocol.move_labware() 实验室器皿, new_location, use_gripper=True

平台要求

仅限Opentrons Flex

  • API版本: 2.15或更高(磁性块引入)
  • 夹爪要求: 所有平板移动使用夹爪
  • 机器人类型: 必须指定 "robotType": "Flex"

关键特性

无电源设计

重要: 磁性块完全无电源:

  • 无电子控制
  • 无开关切换
  • 当平板存在时始终磁性
  • 机器人和Opentrons App不感知磁性状态

含义: 所有控制通过以下方式手动:

  • 物理平板定位(夹爪移动)
  • 定时延迟用于珠子分离
  • 吸取操作

加载模块

from opentrons import protocol_api

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

def run(protocol: protocol_api.ProtocolContext):
    # 加载磁性块
    mag_block = protocol.load_module(
        module_name="magneticBlockV1",
        location="D1"
    )

    # 加载兼容实验室器皿
    mag_plate = mag_block.load_labware(
        name="biorad_96_wellplate_200ul_pcr"
    )

兼容的甲板槽: 任何Flex槽(A1-D3) 推荐: D1、D2或D3(底行用于工作流效率)

兼容实验室器皿

磁性块适用于适合磁性足迹的96孔平板:

常见兼容实验室器皿:

  • biorad_96_wellplate_200ul_pcr
  • nest_96_wellplate_100ul_pcr_full_skirt
  • opentrons_96_wellplate_200ul_pcr_full_skirt
  • 其他具有标准足迹的96孔PCR平板

重要:

  • 实验室器皿必须可夹爪(兼容Flex夹爪)
  • 孔必须与磁铁位置对齐
  • 需要标准96孔足迹

基本磁性分离工作流

步骤1:加载样品平板

# 开始时样品平板在甲板上(尚未在磁性块上)
sample_plate = protocol.load_labware("biorad_96_wellplate_200ul_pcr", "C1")

# 添加磁珠和结合缓冲液
pipette.transfer(10, bead_stock, sample_plate.wells())
pipette.transfer(100, binding_buffer, sample_plate.wells(), mix_after=(5, 80))

步骤2:孵育用于结合

# 孵育以允许珠子结合目标(DNA/RNA/蛋白质)
protocol.delay(minutes=5)

# 可选:孵育期间混合(使用加热-振荡器)

步骤3:移动到磁性块

# 使用夹爪移动平板到磁性块
protocol.move_labware(
    labware=sample_plate,
    new_location=mag_block,
    use_gripper=True
)

步骤4:等待珠子分离

# 允许珠子在孔边收集
protocol.delay(minutes=3)

# 珠子现在被磁铁保持在孔边

步骤5:移除上清液

# 当珠子被磁铁保持时,吸取上清液
pipette.transfer(
    volume=110,
    source=sample_plate.wells(),
    dest=waste.wells(),
    new_tip="always"
)

# 珠子保留在孔中,被磁场保持

步骤6:移动离开磁性块

# 移动平板离开磁铁用于珠子重悬
protocol.move_labware(
    labware=sample_plate,
    new_location="C2",
    use_gripper=True
)

# 珠子现在自由重悬

步骤7:洗涤并重复

# 添加洗涤缓冲液
pipette.transfer(150, wash_buffer, sample_plate.wells())

# 混合以重悬珠子
pipette.mix(repetitions=5, volume=100, location=sample_plate.wells())

# 返回到磁性块
protocol.move_labware(sample_plate, mag_block, use_gripper=True)

# 等待分离
protocol.delay(minutes=2)

# 移除上清液
pipette.transfer(150, sample_plate.wells(), waste.wells(), new_tip="always")

步骤8:洗脱

# 移动离开磁铁
protocol.move_labware(sample_plate, "C2", use_gripper=True)

# 添加洗脱缓冲液
pipette.transfer(50, elution_buffer, sample_plate.wells(), mix_after=(5, 30))

# 孵育
protocol.delay(minutes=2)

# 最终磁性分离
protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=2)

# 转移洗脱液(纯化产品)
pipette.transfer(45, sample_plate.wells(), elution_plate.wells(), new_tip="always")

完整DNA提取协议

# 完整自动化DNA提取工作流
def run(protocol: protocol_api.ProtocolContext):
    # 模块和实验室器皿
    mag_block = protocol.load_module("magneticBlockV1", "D1")
    sample_plate = mag_block.load_labware("biorad_96_wellplate_200ul_pcr")

    # 额外实验室器皿
    tips = protocol.load_labware("opentrons_flex_96_tiprack_1000ul", "A1")
    waste = protocol.load_trash_bin("A3")
    reagents = protocol.load_labware("nest_12_reservoir_15ml", "C2")

    # 吸管
    pipette = protocol.load_instrument("flex_8channel_1000", "left", tip_racks=[tips])

    # 试剂位置
    lysis_beads = reagents["A1"]
    wash_buffer = reagents["A2"]
    elution_buffer = reagents["A3"]

    # 样品已在平板中(手动加载或通过早期步骤)

    # 1. 添加裂解珠并绑定DNA
    pipette.transfer(100, lysis_beads, sample_plate.columns()[0], mix_after=(5, 80))
    protocol.delay(minutes=5)

    # 2. 磁性分离 - 移除裂解液
    protocol.move_labware(sample_plate, mag_block, use_gripper=True)
    protocol.delay(minutes=3)
    pipette.transfer(200, sample_plate.columns()[0], waste, new_tip="always")

    # 3. 第一次洗涤
    protocol.move_labware(sample_plate, "C1", use_gripper=True)
    pipette.transfer(150, wash_buffer, sample_plate.columns()[0], mix_after=(5, 100))
    protocol.move_labware(sample_plate, mag_block, use_gripper=True)
    protocol.delay(minutes=2)
    pipette.transfer(150, sample_plate.columns()[0], waste, new_tip="always")

    # 4. 第二次洗涤
    protocol.move_labware(sample_plate, "C1", use_gripper=True)
    pipette.transfer(150, wash_buffer, sample_plate.columns()[0], mix_after=(5, 100))
    protocol.move_labware(sample_plate, mag_block, use_gripper=True)
    protocol.delay(minutes=2)
    pipette.transfer(150, sample_plate.columns()[0], waste, new_tip="always")

    # 5. 干燥珠子
    protocol.delay(minutes=5)

    # 6. 洗脱DNA
    protocol.move_labware(sample_plate, "C1", use_gripper=True)
    pipette.transfer(50, elution_buffer, sample_plate.columns()[0], mix_after=(5, 30))
    protocol.delay(minutes=2)

    # 7. 最终磁性分离
    protocol.move_labware(sample_plate, mag_block, use_gripper=True)
    protocol.delay(minutes=2)

    # 8. 收集纯化DNA
    elution_plate = protocol.load_labware("biorad_96_wellplate_200ul_pcr", "C3")
    pipette.transfer(45, sample_plate.columns()[0], elution_plate.columns()[0], new_tip="always")

常见模式

PCR清理(AMPure珠子)

# 使用AMPure珠子清理PCR产品
mag_block = protocol.load_module("magneticBlockV1", "D1")
pcr_plate = protocol.load_labware("biorad_96_wellplate_200ul_pcr", "C1")

# 1. 添加珠子(0.8倍比率用于>300bp片段)
pipette.transfer(40, ampure_beads, pcr_plate.wells(), mix_after=(5, 35))
protocol.delay(minutes=5)

# 2. 磁性分离
protocol.move_labware(pcr_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)
pipette.transfer(90, pcr_plate.wells(), waste.wells())

# 3. 乙醇洗涤(2次)
for _ in range(2):
    pipette.transfer(150, ethanol_70, pcr_plate.wells())
    protocol.delay(seconds=30)
    pipette.transfer(150, pcr_plate.wells(), waste.wells())

# 4. 干燥
protocol.delay(minutes=5)

# 5. 洗脱
protocol.move_labware(pcr_plate, "C2", use_gripper=True)
pipette.transfer(30, water, pcr_plate.wells(), mix_after=(5, 20))
protocol.delay(minutes=2)

# 6. 最终分离和收集
protocol.move_labware(pcr_plate, mag_block, use_gripper=True)
protocol.delay(minutes=2)
pipette.transfer(25, pcr_plate.wells(), clean_plate.wells())

NGS文库制备

# 基于磁珠的文库制备
mag_block = protocol.load_module("magneticBlockV1", "D2")
lib_plate = mag_block.load_labware("biorad_96_wellplate_200ul_pcr")

# 连接适配器后...

# 1. 添加SPRI珠子用于大小选择(0.6倍用于>400bp)
pipette.transfer(30, spri_beads, lib_plate.wells(), mix_after=(5, 25))
protocol.delay(minutes=5)

# 2. 绑定大片段
protocol.move_labware(lib_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)

# 3. 保存上清液(包含要移除的片段)
protocol.move_labware(lib_plate, "C1", use_gripper=True)

# 4. 添更多珠子上清液(带到总1.0倍)
pipette.transfer(20, spri_beads, lib_plate.wells(), mix_after=(5, 30))
protocol.delay(minutes=5)

# 5. 绑定目标片段
protocol.move_labware(lib_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)

# 6. 丢弃上清液
pipette.transfer(100, lib_plate.wells(), waste.wells())

# 7. 洗涤和洗脱(标准协议)

蛋白质免疫沉淀

# 磁性珠子IP
mag_block = protocol.load_module("magneticBlockV1", "D1")
ip_plate = mag_block.load_labware("biorad_96_wellplate_200ul_pcr")

# 1. 预偶联抗体-珠子复合物在孔中

# 2. 添加裂解液
pipette.transfer(100, lysate_plate.wells(), ip_plate.wells(), mix_after=(3, 80))

# 3. 孵育(绑定)
protocol.delay(minutes=30)

# 4. 洗涤未绑定蛋白质
for wash_num in range(3):
    protocol.move_labware(ip_plate, mag_block, use_gripper=True)
    protocol.delay(minutes=2)
    pipette.transfer(150, ip_plate.wells(), waste.wells())

    protocol.move_labware(ip_plate, "C1", use_gripper=True)
    pipette.transfer(150, wash_buffer, ip_plate.wells(), mix_after=(3, 100))

# 5. 洗脱绑定蛋白质
protocol.move_labware(ip_plate, "C1", use_gripper=True)
pipette.transfer(50, elution_buffer, ip_plate.wells(), mix_after=(5, 30))
protocol.delay(minutes=5)

# 6. 收集洗脱液
protocol.move_labware(ip_plate, mag_block, use_gripper=True)
protocol.delay(minutes=2)
pipette.transfer(45, ip_plate.wells(), analysis_plate.wells())

与其他模块集成

与加热-振荡器(加热裂解)

# 结合加热与磁性纯化
hs_mod = protocol.load_module("heaterShakerModuleV1", "D1")
mag_block = protocol.load_module("magneticBlockV1", "D2")
sample_plate = protocol.load_labware("biorad_96_wellplate_200ul_pcr", "C1")

# 1. 在加热-振荡器上加热裂解
hs_mod.open_labware_latch()
protocol.move_labware(sample_plate, hs_mod, use_gripper=True)
hs_mod.close_labware_latch()
hs_mod.set_and_wait_for_temperature(56)
hs_mod.set_and_wait_for_shake_speed(1000)
protocol.delay(minutes=15)
hs_mod.deactivate_shaker()
hs_mod.deactivate_heater()
hs_mod.open_labware_latch()

# 2. 磁性珠子绑定
protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)

# ... 继续洗涤和洗脱 ...

与温度模块(冷洗脱)

# 冷洗脱用于稳定性
temp_mod = protocol.load_module("temperature module gen2", "D3")
mag_block = protocol.load_module("magneticBlockV1", "D2")

# 预冷洗脱缓冲液
temp_mod.set_temperature(4)

# 磁性洗涤后...
protocol.move_labware(sample_plate, "C1", use_gripper=True)

# 添加冷洗脱缓冲液
pipette.transfer(50, cold_elution, sample_plate.wells(), mix_after=(5, 30))

# 移动到冷模块用于洗脱
protocol.move_labware(sample_plate, temp_mod, use_gripper=True)
protocol.delay(minutes=5)

# 最终分离
protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=2)
pipette.transfer(45, sample_plate.wells(), storage_plate.wells())

temp_mod.deactivate()

与热循环器(PCR后清理)

# PCR → 清理工作流
tc_mod = protocol.load_module("thermocyclerModuleV2")
mag_block = protocol.load_module("magneticBlockV1", "D2")

# 运行PCR
tc_mod.close_lid()
# ... PCR循环 ...
tc_mod.set_block_temperature(4)
tc_mod.open_lid()

# 移动到甲板用于添加珠子
pcr_plate = tc_mod.labware
protocol.move_labware(pcr_plate, "C1", use_gripper=True)

# 添加AMPure珠子
pipette.transfer(40, ampure_beads, pcr_plate.wells(), mix_after=(5, 35))
protocol.delay(minutes=5)

# 在磁性块上清理
protocol.move_labware(pcr_plate, mag_block, use_gripper=True)
# ... 清理步骤 ...

最佳实践

  1. 允许足够分离时间 - 通常2-5分钟取决于珠子类型
  2. 使用夹爪用于所有平板移动 - 手动移动破坏自动化目的
  3. 吸取时避免干扰珠子 - 从孔对侧吸取
  4. 移动离开磁铁后彻底混合 - 确保完全珠子重悬
  5. 计算中追踪珠子体积 - 计算总体积时考虑珠子
  6. 使用一致珠子类型 - 不同珠子有不同分离时间
  7. 规划甲板布局 - 定位磁性块靠近其他模块以提高效率
  8. 测试分离时间 - 针对特定珠子和样品类型优化延迟
  9. 不要过度干燥珠子 - 可能降低洗脱效率
  10. 验证洗脱体积 - 留一些顶端空间以避免转移珠子

分离时间指南

典型分离时间按珠子类型:

  • AMPure/SPRIselect (DNA): 2-3分钟
  • RNAClean (RNA): 3-4分钟
  • Protein G/A珠子: 2-3分钟
  • 高密度珠子: 1-2分钟
  • 大体积样品: 4-5分钟

影响分离因素:

  • 珠子浓度
  • 样品体积
  • 粘度
  • 磁性珠子强度
  • 孔几何形状

推荐: 从3分钟开始,基于视觉检查或协议优化调整。

常见错误

❌ 移动平板无夹爪:

# 手动移动在自动化协议中不实用
protocol.move_labware(sample_plate, mag_block, use_gripper=False)
# 用户必须手动移动平板 - 破坏自动化

✅ 正确:

protocol.move_labware(sample_plate, mag_block, use_gripper=True)

❌ 分离时间不足:

protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(seconds=30)  # 太短 - 珠子仍在溶液中
pipette.transfer(100, sample_plate.wells(), waste.wells())  # 转移珠子!

✅ 正确:

protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)  # 足够时间用于分离
pipette.transfer(100, sample_plate.wells(), waste.wells())

❌ 吸取通过珠子颗粒:

# 从中心吸取可能干扰侧边珠子
pipette.aspirate(100, sample_plate.wells()[0])

✅ 正确:

# 从珠子对侧吸取
pipette.aspirate(100, sample_plate.wells()[0].bottom(z=2))
# 或使用touch_tip以确保不转移珠子

❌ 不完全珠子重悬:

protocol.move_labware(sample_plate, "C1", use_gripper=True)
pipette.transfer(150, wash_buffer, sample_plate.wells())  # 珠子可能不重悬

✅ 正确:

protocol.move_labware(sample_plate, "C1", use_gripper=True)
pipette.transfer(150, wash_buffer, sample_plate.wells(), mix_after=(5, 100))  # 混合以重悬

❌ 使用不兼容实验室器皿:

# 深孔平板可能不与磁铁对齐
mag_plate = mag_block.load_labware("nest_96_wellplate_2ml_deep")

✅ 正确:

# 使用标准96孔PCR平板
mag_plate = mag_block.load_labware("biorad_96_wellplate_200ul_pcr")

故障排除

珠子不分离:

  • 增加分离时间(尝试4-5分钟)
  • 检查珠子类型和浓度
  • 验证平板正确放置在磁性块上
  • 确保实验室器皿与磁铁位置兼容

珠子随上清液转移:

  • 延长分离时间
  • 更小心吸取(避免珠子颗粒)
  • 减少吸取流速
  • 留更多残留体积

不完全洗脱:

  • 确保洗脱孵育前珠子完全重悬
  • 更剧烈混合
  • 延长洗脱孵育时间
  • 验证珠子没有过度干燥
  • 使用适当洗脱缓冲液体积

珠子团聚:

  • 重悬时更彻底混合
  • 确保添加到样品前珠子充分混合
  • 避免干燥珠子太久
  • 检查珠子存储条件

孔间回收变化:

  • 确保一致珠子添加体积
  • 均匀混合所有孔
  • 使用一致分离时间
  • 检查平板在磁性块上定位问题

高级技术

双大小选择

# 选择特定大小范围内的DNA片段
# 第一次选择:移除大片段
pipette.transfer(30, spri_beads, lib_plate.wells(), mix_after=(5, 25))  # 0.6倍
protocol.delay(minutes=5)
protocol.move_labware(lib_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)

# 收集上清液(包含小+目标片段)
protocol.move_labware(lib_plate, "C1", use_gripper=True)
pipette.transfer(80, lib_plate.wells(), temp_plate.wells())

# 第二次选择:绑定目标片段
pipette.transfer(20, spri_beads, temp_plate.wells(), mix_after=(5, 30))  # 带到1.0倍
protocol.delay(minutes=5)
protocol.move_labware(temp_plate, mag_block, use_gripper=True)
protocol.delay(minutes=3)

# 丢弃上清液(小片段移除)
pipette.transfer(100, temp_plate.wells(), waste.wells())

# 洗涤和洗脱目标大小范围

差异洗脱

# 顺序洗脱不同目标
# 绑定多个目标到珠子后...

# 第一次洗脱(低严格度)
pipette.transfer(50, elution_buffer_1, sample_plate.wells(), mix_after=(5, 30))
protocol.delay(minutes=2)
protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=2)
pipette.transfer(45, sample_plate.wells(), fraction_1_plate.wells())

# 第二次洗脱(高严格度)
protocol.move_labware(sample_plate, "C1", use_gripper=True)
pipette.transfer(50, elution_buffer_2, sample_plate.wells(), mix_after=(5, 30))
protocol.delay(minutes=2)
protocol.move_labware(sample_plate, mag_block, use_gripper=True)
protocol.delay(minutes=2)
pipette.transfer(45, sample_plate.wells(), fraction_2_plate.wells())

无电子控制

记住: 磁性块无电子接口。

这意味着:

  • ❌ 无法程序化开关磁铁
  • ❌ 无状态报告到机器人
  • ❌ 无自动定时
  • ✅ 通过平板定位完全控制
  • ✅ 可预测、被动磁场
  • ✅ 无需校准或初始化

控制策略: 移动平板到块 = 磁铁启用,移动平板离开块 = 磁铁禁用

API版本要求

  • 最低API版本: 2.15(磁性块引入)
  • 推荐: 2.19+ 用于全Flex功能支持
  • 机器人类型: 必须是Opentrons Flex

额外资源

相关技能

  • opentrons - 主要Opentrons Python API技能
  • opentrons-gripper - 自动化实验室器皿移动(要求)
  • opentrons-heater-shaker - 加热孵育与混合
  • opentrons-temperature-module - 温度控制
  • opentrons-thermocycler - PCR用于分子工作流