mcpField
P
pylabrobot

pylabrobot

github.com/crazymsn其他2335 次安装22 周前更新
代码仓库

关于 pylabrobot

PyLabRobot 技能介绍用于实验室自动化的 Python SDK,面向编写和模拟实验流程的人员。它以统一接口管理多类设备与实验室资源,并可切换硬件后端。

主要功能

  1. 01液体处理与移液控制
  2. 02管理实验室资源和状态
  3. 03连接多种硬件后端
  4. 04集成读板仪及分析设备
  5. 05协议模拟与可视化

适用场景

  1. 01编写样本制备和液体转移流程
  2. 02测试协议而不连接实体设备
  3. 03在自动化流程中整合读板仪

安装

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

$npx skills add https://github.com/crazymsn/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