How noel-research-group/robochem_flex works
Robochem-Flex is a modular self-driving laboratory platform: users configure an optimization campaign, define reagents and physical conditions, run experiments on laboratory hardware, and use measured results to guide optimization. The control application, backend optimization code, and OmniPlatypus device/procedure framework form the principal workflow. ChromTroller provides a separate LCMS automation and analysis path; Raman control and Lamas analytics are additional measurement/analysis capabilities. The README describes the product at a high level; where source excerpts do not establish wiring between subsystems, the graph omits those links.
Main entry points: platform_backend.py Platform backend · ml_modules Optimization backends · ChromTroller.py ChromTroller server · robochem_flex.py Streamlit application
Components 20
Campaign control
- Streamlit application
Control Software/robochem_flex.py - Campaign pages
Control Software/pages/07_Run_Platform.py - Configuration helpers
Control Software/backend/frontend_functions.py - Platform backend
Control Software/backend/platform_backend.py - Session management
Control Software/backend/Robochem_ML/robrains/session_management/session_management.py
Optimization backend
- Optimization backends
Control Software/backend/Robochem_ML/robrains/ml_modules - Surrogate models
Control Software/backend/Robochem_ML/robrains/custom_models - Acquisition strategies
Control Software/backend/Robochem_ML/robrains/custom_acquisition - Experiment parameters
Control Software/backend/Robochem_ML/robrains/parameter_backends
Lab automation
- Experiment procedures
Control Software/OmniPlatypus/OmniPlatypus/omniplatypus/procedures/experiments - Hardware tasks
Control Software/OmniPlatypus/OmniPlatypus/omniplatypus/procedures/unit_tasks - Device framework
Control Software/OmniPlatypus/OmniPlatypus/omniplatypus/devices/base/device.py - Instrument drivers
Control Software/OmniPlatypus/OmniPlatypus/omniplatypus/devices
Measurement and analysis
- ChromTroller server
Devices/ChromTroller/software/ChromTroller.py - ChromTroller client
Devices/ChromTroller/software/src/ct_components/ct_client.py - LCMS controller
Devices/ChromTroller/software/src/ct_components/ct_controller.py - Chromatogram analysis
Devices/ChromTroller/software/src/ct_components/analysis_backend - Raman spectrometer
Devices/Raman Spectrometer/Spectrometer Control/AVAlanCHE/AVAlanCHE_class.py - Spectral analysis
Control Software/Lamas/lamas/glama.py
Other components
- Researcher
Connections 17
- Researcher → Streamlit application: configures and runs
- Streamlit application → Campaign pages: renders
- Campaign pages → Configuration helpers: uses configuration
- Configuration helpers → Platform backend: updates campaign
- Platform backend → Session management: manages state
- Platform backend → Optimization backends: runs optimization
- Optimization backends → Surrogate models: fits models
- Optimization backends → Acquisition strategies: selects candidates
- Optimization backends → Experiment parameters: uses parameters
- Platform backend → Experiment procedures: runs experiments
- Experiment procedures → Hardware tasks: dispatches tasks
- Hardware tasks → Instrument drivers: commands devices
- Instrument drivers → Device framework: uses device base
- ChromTroller client → ChromTroller server: sends commands
- ChromTroller server → LCMS controller: controls LCMS
- ChromTroller server → Chromatogram analysis: runs analysis
- Raman spectrometer → Spectral analysis: provides spectra for