pylabrobot について
PyLabRobotは、自動化ラボをプログラムするためのハードウェア非依存のPython SDKです。対応プラットフォームで機器を統一的に操作し、リソースの状態管理やプロトコルのシミュレーションを行う開発者向けです。
主な機能
- 01ラボ機器の統一インターフェース
- 02リキッドハンドリングとチップ追跡
- 03デッキとラボウェアの状態管理
- 04複数のハードウェアバックエンド
- 05プロトコルのシミュレーションと可視化
活用シーン
- 01液体分注プロトコルの作成
- 02デッキレイアウトとラボウェアの管理
- 03実機実行前のプロトコル検証
- 04プレート測定と機器処理の連携
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ovachiever/ droid-tings --skill pylabrobotインストール後、Claude Code で/pylabrobotを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/analytical-equipment.mdhardware-backends.mdliquid-handling.mdmaterial-handling.mdresources.mdvisualization.md詳細
PyLabRobot
概要
PyLabRobot は、自動化・自律型ラボラトリー向けの、ハードウェアに依存しない純粋な Python SDK です。このスキルを使用すると、液体ハンドリングロボット、プレートリーダー、ポンプ、ヒーターシェーカー、インキュベーター、遠心分離機、その他のラボラトリーオートメーション機器を、複数のプラットフォーム(Windows、macOS、Linux)で動作する統一された Python インターフェースから制御できます。
このスキルを使用するタイミング
次の場合にこのスキルを使用します:
- 液体ハンドリングロボット(Hamilton STAR/STARlet、Opentrons OT-2、Tecan EVO)をプログラミングする場合
- ピペッティング、サンプル調製、分析測定を含むラボラトリーワークフローを自動化する場合
- デッキレイアウトとラボラトリーリソース(プレート、チップ、容器、トラフ)を管理する場合
- 複数のラボデバイス(液体ハンドラー、プレートリーダー、ヒーターシェーカー、ポンプ)を統合する場合
- 状態管理を伴う再現可能なラボラトリープロトコルを作成する場合
- 実機で実行する前にプロトコルをシミュレーションする場合
- BMG CLARIOstar などの対応プレートリーダーでプレートを読み取る場合
- 温度制御、振とう、遠心分離、その他の material handling 操作を制御する場合
- Python でラボラトリーオートメーションに取り組む場合
主要機能
PyLabRobot は、references/ ディレクトリ内で詳しく説明されている 6 つの主要機能領域を通じて、包括的なラボラトリーオートメーションを提供します。
1. 液体ハンドリング (references/liquid-handling.md)
液体の吸引、分注、移送を行うために液体ハンドリングロボットを制御します。主な操作は次のとおりです:
- 基本操作: ウェル間での吸引、分注、液体移送
- チップ管理: ピペットチップの取り上げ、廃棄、自動追跡
- 高度な手法: マルチチャネルピペッティング、段階希釈、プレート複製
- 容量追跡: ウェル内の液量の自動追跡
- ハードウェア対応: Hamilton STAR/STARlet、Opentrons OT-2、Tecan EVO など
2. リソース管理 (references/resources.md)
階層型システムでラボラトリーリソースを管理します:
- リソースの種類: プレート、チップラック、トラフ、チューブ、キャリア、カスタムラボware
- デッキレイアウト: 座標系を用いて、リソースをデッキ上の位置に割り当て
- 状態管理: チップの有無、液量、リソースの状態を追跡
- シリアライズ: 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. Material Handling (references/material-handling.md)
環境制御および material handling 機器を制御します:
- ヒーターシェーカー: 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()
リファレンスの活用
このスキルは、詳細な情報を複数のリファレンスファイルに分けて整理しています。次の場合は、該当するリファレンスを読み込んでください:
- 液体ハンドリング: ピペッティングプロトコル、チップ管理、移送の作成
- リソース: デッキレイアウトの定義、プレート/チップの管理、カスタムラボware の作成
- ハードウェアバックエンド: 特定のロボットへの接続、プラットフォームの切り替え
- 分析機器: プレートリーダー、天びん、分析デバイスの統合
- マテリアルハンドリング: ヒーターシェーカー、インキュベーター、遠心分離機、ポンプの使用
- 可視化: プロトコルのシミュレーション、デッキ状態の可視化
すべてのリファレンスファイルは references/ ディレクトリにあり、包括的な例、API の使用パターン、ベストプラクティスを含んでいます。
ベストプラクティス
PyLabRobot で検査自動化プロトコルを作成する際は、次の点に留意してください:
- シミュレーションから始める: ハードウェアで実行する前に、ChatterboxBackend とビジュアライザーを使ってプロトコルをテストしてください
- 追跡を有効にする: 正確な状態管理のために、チップ追跡と液量追跡をオンにしてください
- リソース命名: すべてのリソース(プレート、チップラック、容器)には、明確でわかりやすい名前を付けてください
- 状態のシリアライズ: 再現性のために、デッキレイアウトと状態を JSON で保存してください
- エラー処理: ハードウェア操作には、適切な非同期エラー処理を実装してください
- 温度制御: 加熱・冷却には時間がかかるため、温度は早めに設定してください
- モジュール化されたプロトコル: 複雑なワークフローは、再利用可能な関数に分割してください
- ドキュメント: 最新機能については、公式ドキュメント 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)
追加リソース
- 公式ドキュメント: https://docs.pylabrobot.org
- GitHub リポジトリ: https://github.com/PyLabRobot/pylabrobot
- コミュニティフォーラム: https://discuss.pylabrobot.org
- PyPI パッケージ: https://pypi.org/project/PyLabRobot/
特定の機能の詳細な使い方については、references/ ディレクトリ内の対応するリファレンスファイルを参照してください。