mcpField
P
pylabrobot

pylabrobot

github.com/leonchaox其他99070 次安装15 周前更新
代码仓库

关于 pylabrobot

PyLabRobot 是面向自动化实验室的纯 Python SDK,通过统一接口控制多类实验设备。它适用于编写可复现的实验流程,并可在连接硬件前模拟协议。

主要功能

  1. 01控制液体处理机器人
  2. 02管理实验室资源与状态
  3. 03切换不同硬件后端
  4. 04集成酶标仪和分析设备
  5. 05控制温控与物料处理设备
  6. 06可视化并模拟实验流程

适用场景

  1. 01编写移液和液体转移协议
  2. 02规划实验台布局并追踪耗材
  3. 03在模拟模式下验证协议
  4. 04组合液体处理与读板流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leonchaox/qinyan-academic-skills --skill pylabrobot

安装后在 Claude Code 中输入/pylabrobot确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
analytical-equipment.md
hardware-backends.md
liquid-handling.md
material-handling.md
resources.md
visualization.md

详细介绍

PyLabRobot

概述

PyLabRobot 是一款与硬件无关、纯 Python 编写的软件开发套件,适用于自动化和自主实验室。通过统一的 Python 接口控制液体处理机器人、酶标仪、泵、加热振荡器、培养箱、离心机及其他实验室自动化设备,并可在 Windows、macOS、Linux 等平台上运行。

何时使用此技能

在以下情况下使用此技能:

  • 为液体处理机器人编程(Hamilton STAR/STARlet、Opentrons OT-2、Tecan EVO)
  • 自动化涉及移液、样品制备或分析测量的实验室工作流
  • 管理平台布局和实验室资源(板、吸头、容器、试剂槽)
  • 集成多种实验室设备(液体处理器、酶标仪、加热振荡器、泵)
  • 创建具有状态管理功能、可复现的实验室协议
  • 在实体硬件上运行协议前进行模拟
  • 使用 BMG CLARIOstar 或其他受支持的酶标仪读取微孔板
  • 控制温度、振荡、离心或其他物料处理操作
  • 使用 Python 进行实验室自动化

核心功能

PyLabRobot 通过六大主要功能领域提供全面的实验室自动化,每个领域均在 references/ 目录中详细介绍:

1. 液体处理(references/liquid-handling.md)

控制液体处理机器人,以吸液、分液和转移液体。主要操作包括:

  • 基本操作:在孔之间吸液、分液和转移液体
  • 吸头管理:自动装载、丢弃和追踪移液器吸头
  • 高级技术:多通道移液、连续稀释、微孔板复制
  • 体积追踪:自动追踪孔中的液体体积
  • 硬件支持:Hamilton STAR/STARlet、Opentrons OT-2、Tecan EVO 等
2. 资源管理(references/resources.md)

通过分层系统管理实验室资源:

  • 资源类型:微孔板、吸头架、试剂槽、试管、载架和自定义实验室器具
  • 平台布局:使用坐标系统将资源分配到平台位置
  • 状态管理:追踪吸头是否存在、液体体积和资源状态
  • 序列化:从 JSON 文件保存和加载平台布局及状态
  • 资源发现:通过直观的 API 访问孔、吸头和容器
3. 硬件后端(references/hardware-backends.md)

通过后端抽象连接各类实验室设备:

  • 液体处理器:Hamilton STAR(全面支持)、Opentrons OT-2、Tecan EVO
  • 模拟:使用 ChatterboxBackend 在无硬件的情况下测试协议
  • 平台支持:适用于 Windows、macOS、Linux 和 Raspberry Pi
  • 切换后端:只需替换后端即可更换机器人,无需重写协议
4. 分析设备(references/analytical-equipment.md)

集成酶标仪和分析仪器:

  • 酶标仪:BMG CLARIOstar,可进行吸光度、发光和荧光测量
  • 天平:集成 Mettler Toledo 设备进行质量测量
  • 集成模式:将液体处理器与分析设备结合使用
  • 自动化工作流:自动在设备之间移动微孔板
5. 物料处理(references/material-handling.md)

控制环境和物料处理设备:

  • 加热振荡器:Hamilton HeaterShaker、Inheco ThermoShake
  • 培养箱:Inheco 和 Thermo Fisher 培养箱,支持温度控制
  • 离心机:Agilent VSpin,支持转子位置控制和离心控制
  • 泵:Cole Parmer Masterflex,用于流体泵送操作
  • 温度控制:在协议运行期间设置和监控温度
6. 可视化与仿真(references/visualization.md)

可视化和仿真实验室协议:

  • 浏览器可视化工具:实时 3D 可视化平台状态
  • 仿真模式:无需实体硬件即可测试协议
  • 状态跟踪:以可视化方式监控吸头是否存在及液体体积
  • 平台编辑器:用于设计平台布局的图形化工具
  • 协议验证:在硬件上运行前验证协议

快速开始

要开始使用 PyLabRobot,请安装该软件包并初始化液体处理器:

# Install PyLabRobot
# uv pip install pylabrobot

# Basic liquid handling setup
from pylabrobot.liquid_handling import LiquidHandler
from pylabrobot.liquid_handling.backends import STAR
from pylabrobot.resources import STARLetDeck

# Initialize liquid handler
lh = LiquidHandler(backend=STAR(), deck=STARLetDeck())
await lh.setup()

# Basic operations
await lh.pick_up_tips(tip_rack["A1:H1"])
await lh.aspirate(plate["A1"], vols=100)
await lh.dispense(plate["A2"], vols=100)
await lh.drop_tips()

使用参考资料

此技能将详细信息整理在多个参考文件中。以下情况请加载相关参考文件:

  • 液体处理:编写移液协议、管理吸头、转移液体
  • 资源:定义平台布局、管理孔板和吸头、自定义实验室器具
  • 硬件后端:连接特定机器人、切换平台
  • 分析设备:集成孔板读数仪、秤或分析设备
  • 物料处理:使用加热振荡器、培养箱、离心机、泵
  • 可视化:仿真协议、可视化平台状态

所有参考文件均位于 references/ 目录中,其中包含全面的示例、API 用法模式和最佳实践。

最佳实践

使用 PyLabRobot 创建实验室自动化协议时:

  1. 从仿真开始:使用 ChatterboxBackend 和可视化工具,在硬件上运行前测试协议
  2. 启用跟踪:开启吸头跟踪和体积跟踪,以准确管理状态
  3. 资源命名:为所有资源(孔板、吸头架、容器)使用清晰且描述性强的名称
  4. 状态序列化:将平台布局和状态保存为 JSON,以便复现
  5. 错误处理:为硬件操作实现妥善的异步错误处理
  6. 温度控制:尽早设置温度,因为加热和冷却需要时间
  7. 模块化协议:将复杂工作流拆分为可复用函数
  8. 文档:查阅 https://docs.pylabrobot.org 获取最新功能

常见工作流

液体转移协议
# Setup
lh = LiquidHandler(backend=STAR(), deck=STARLetDeck())
await lh.setup()

# Define resources
tip_rack = TIP_CAR_480_A00(name="tip_rack")
source_plate = Cos_96_DW_1mL(name="source")
dest_plate = Cos_96_DW_1mL(name="dest")

lh.deck.assign_child_resource(tip_rack, rails=1)
lh.deck.assign_child_resource(source_plate, rails=10)
lh.deck.assign_child_resource(dest_plate, rails=15)

# Transfer protocol
await lh.pick_up_tips(tip_rack["A1:H1"])
await lh.transfer(source_plate["A1:H12"], dest_plate["A1:H12"], vols=100)
await lh.drop_tips()
孔板读数工作流
# Setup plate reader
from pylabrobot.plate_reading import PlateReader
from pylabrobot.plate_reading.clario_star_backend import CLARIOstarBackend

pr = PlateReader(name="CLARIOstar", backend=CLARIOstarBackend())
await pr.setup()

# Set temperature and read
await pr.set_temperature(37)
await pr.open()
# (manually or robotically load plate)
await pr.close()
data = await pr.read_absorbance(wavelength=450)

更多资源

有关特定功能的详细用法,请参阅 references/ 目录中对应的参考文件。

评论

支持 Markdown