PyLabRobot
Aperçu
PyLabRobot est un SDK Python pur, indépendant du matériel, pour les laboratoires automatisés et autonomes. Utilisez cette skill pour contrôler les robots de manipulation de liquides, les lecteurs de plaques, les pompes, les agitateurs chauffants, les incubateurs, les centrifugeuses et autres équipements d'automatisation de laboratoire via une interface Python unifiée compatible sur plusieurs plateformes (Windows, macOS, Linux).
Quand utiliser cette skill
Utilisez cette skill quand :
- Programmer des robots de manipulation de liquides (Hamilton STAR/STARlet, Opentrons OT-2, Tecan EVO)
- Automatiser des workflows de laboratoire impliquant la pipetage, la préparation d'échantillons ou des mesures analytiques
- Gérer les dispositions du pupitre et les ressources de laboratoire (plaques, embouts, conteneurs, bacs)
- Intégrer plusieurs appareils de laboratoire (manipulateurs de liquides, lecteurs de plaques, agitateurs chauffants, pompes)
- Créer des protocoles de laboratoire reproductibles avec gestion d'état
- Simuler des protocoles avant exécution sur du matériel physique
- Lire des plaques avec BMG CLARIOstar ou d'autres lecteurs de plaques supportés
- Contrôler la température, l'agitation, la centrifugation ou d'autres opérations de manutention
- Travailler avec l'automatisation de laboratoire en Python
Capacités principales
PyLabRobot fournit une automatisation de laboratoire complète via six domaines de capacité principaux, détaillés dans le répertoire references/ :
1. Manipulation de liquides (references/liquid-handling.md)
Contrôlez les robots de manipulation de liquides pour aspirer, distribuer et transférer des liquides. Les opérations clés incluent :
- Opérations de base : Aspirer, distribuer, transférer des liquides entre puits
- Gestion des embouts : Prendre, déposer et suivre automatiquement les embouts de pipette
- Techniques avancées : Pipetage multi-canal, dilutions en série, réplication de plaques
- Suivi du volume : Suivi automatique des volumes de liquide dans les puits
- Support matériel : Hamilton STAR/STARlet, Opentrons OT-2, Tecan EVO et autres
2. Gestion des ressources (references/resources.md)
Gérez les ressources de laboratoire dans un système hiérarchique :
- Types de ressources : Plaques, racks d'embouts, bacs, tubes, porteurs et labware personnalisée
- Disposition du pupitre : Assignez des ressources à des positions du pupitre avec systèmes de coordonnées
- Gestion d'état : Suivi de la présence d'embouts, des volumes de liquide et des états des ressources
- Sérialisation : Sauvegardez et chargez les dispositions du pupitre et les états depuis des fichiers JSON
- Découverte des ressources : Accédez aux puits, embouts et conteneurs via des APIs intuitives
3. Backends matériel (references/hardware-backends.md)
Connectez-vous à des équipements de laboratoire diversifiés via abstraction de backend :
- Manipulateurs de liquides : Hamilton STAR (support complet), Opentrons OT-2, Tecan EVO
- Simulation : ChatterboxBackend pour tester les protocoles sans matériel
- Support des plateformes : Fonctionne sur Windows, macOS, Linux et Raspberry Pi
- Commutation de backend : Changez de robots en échangeant le backend sans réécrire les protocoles
4. Équipement analytique (references/analytical-equipment.md)
Intégrez les lecteurs de plaques et les instruments analytiques :
- Lecteurs de plaques : BMG CLARIOstar pour l'absorbance, la luminescence, la fluorescence
- Balances : Intégration Mettler Toledo pour les mesures de masse
- Modèles d'intégration : Combinez les manipulateurs de liquides avec l'équipement analytique
- Workflows automatisés : Déplacez les plaques entre les appareils automatiquement
5. Manutention des matériaux (references/material-handling.md)
Contrôlez l'équipement de manutention des matériaux et de l'environnement :
- Agitateurs chauffants : Hamilton HeaterShaker, Inheco ThermoShake
- Incubateurs : Incubateurs Inheco et Thermo Fisher avec contrôle de température
- Centrifugeuses : Agilent VSpin avec positionnement du panier et contrôle de rotation
- Pompes : Cole Parmer Masterflex pour les opérations de pompage de fluide
- Contrôle de température : Définissez et surveillez les températures pendant les protocoles
6. Visualisation et simulation (references/visualization.md)
Visualisez et simulez les protocoles de laboratoire :
- Visualiseur navigateur : Visualisation 3D en temps réel de l'état du pupitre
- Mode simulation : Testez les protocoles sans matériel physique
- Suivi d'état : Surveillez visuellement la présence d'embouts et les volumes de liquide
- Éditeur de pupitre : Outil graphique pour concevoir les dispositions du pupitre
- Validation des protocoles : Vérifiez les protocoles avant exécution sur matériel
Démarrage rapide
Pour démarrer avec PyLabRobot, installez le paquet et initialisez un manipulateur de liquides :
# 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()
Travailler avec les références
Cette skill organise les informations détaillées sur plusieurs fichiers de référence. Chargez la référence pertinente quand :
- Manipulation de liquides : Écrire des protocoles de pipetage, gestion d'embouts, transferts
- Ressources : Définir les dispositions du pupitre, gérer les plaques/embouts, labware personnalisée
- Backends matériel : Connexion à des robots spécifiques, changement de plateformes
- Équipement analytique : Intégration de lecteurs de plaques, balances ou appareils analytiques
- Manutention des matériaux : Utilisation d'agitateurs chauffants, d'incubateurs, de centrifugeuses, de pompes
- Visualisation : Simulation de protocoles, visualisation des états du pupitre
Tous les fichiers de référence se trouvent dans le répertoire references/ et contiennent des exemples complets, des modèles d'utilisation d'API et les meilleures pratiques.
Meilleures pratiques
Lors de la création de protocoles d'automatisation de laboratoire avec PyLabRobot :
- Commencez par la simulation : Utilisez ChatterboxBackend et le visualiseur pour tester les protocoles avant exécution sur matériel
- Activez le suivi : Activez le suivi d'embouts et le suivi de volume pour une gestion d'état précise
- Nommage des ressources : Utilisez des noms clairs et descriptifs pour toutes les ressources (plaques, racks d'embouts, conteneurs)
- Sérialisation d'état : Sauvegardez les dispositions du pupitre et les états en JSON pour la reproductibilité
- Gestion des erreurs : Implémentez une gestion appropriée des erreurs async pour les opérations matériel
- Contrôle de température : Définissez les températures tôt car le chauffage/refroidissement prend du temps
- Protocoles modulaires : Divisez les workflows complexes en fonctions réutilisables
- Documentation : Consultez les documents officiels à https://docs.pylabrobot.org pour les dernières fonctionnalités
Workflows courants
Protocole de transfert de liquide
# 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()
Workflow de lecture de plaque
# 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)
Ressources supplémentaires
- Documentation officielle : https://docs.pylabrobot.org
- Dépôt GitHub : https://github.com/PyLabRobot/pylabrobot
- Forum communautaire : https://discuss.pylabrobot.org
- Paquet PyPI : https://pypi.org/project/PyLabRobot/
Pour une utilisation détaillée des capacités spécifiques, consultez le fichier de référence correspondant dans le répertoire references/.