Overview
Gryffin supports experiment planning when a search involves discrete choices, such as catalysts or solvents, alongside continuous settings such as temperature or flow rate. The README describes it as a general-purpose Bayesian optimization framework that extends the kernel-regression approach of Phoenics to categorical and mixed continuous–categorical spaces. Its role is to propose experimental settings rather than carry out the experiments itself.
The illustrated workflow supplies a configuration defining parameters and an optimization objective, initializes Gryffin, and passes accumulated observations to its recommendation interface. Recommended parameter settings are then evaluated by an external experiment function; the resulting objective value is attached to the settings and added to the observation history. This places Gryffin within an iterative planning–measurement loop, with experimental execution and measurement supplied by the surrounding workflow.
The documented acquisition function supports batch optimization and includes a sampling parameter for adjusting the balance between exploration and exploitation. Gryffin can also use physicochemical descriptors as expert-provided information: the static formulation uses the supplied descriptors, while the dynamic formulation refines them during optimization. These are source-described capabilities, not independently established performance results.
The README specifies Python 3.7 or later and links configuration, tutorial, API, and CLI documentation. Its minimal example demonstrates a continuous parameter rather than a complete categorical experiment. The source excerpts do not establish instrument integrations or quantitative performance for a particular chemistry task, and the listed research applications are attributed jointly to Gryffin/Phoenics.
Key Features
- Bayesian optimization over categorical and mixed continuous–categorical parameter spaces, extending the Phoenics approach.
- Native batch optimization support in the acquisition function.
- A sampling parameter that adjusts acquisition behavior between exploration and exploitation.
- Static use of expert-supplied physicochemical descriptors to inform optimization.
- Dynamic refinement of supplied descriptors during optimization.
- An observation-driven recommendation interface illustrated through an iterative external experiment loop.
Use Cases
- Intended evaluation: plan catalyst or solvent choices together with continuous process settings in a chemistry optimization study.
- Intended evaluation: compare descriptor-informed static and dynamic formulations for categorical molecular or materials candidates with available physicochemical descriptors.
- Intended evaluation: assess batch recommendations for a laboratory workflow that can evaluate multiple proposed settings before updating its observation history.
How to Use
- Start with the repository README and Getting Started guide. The README specifies Python 3.7 or later and provides PyPI and source installation routes; treat this as a stated requirement, not tested compatibility.
- Consult the configuration documentation to define your parameters and objective. For intended evaluation, choose a small representative search space with clearly recorded experimental outcomes.
- Use the tutorials to investigate categorical or mixed-space setup and descriptor handling. Do not assume the README’s continuous-only example supplies a complete categorical configuration.
- Follow the API reference when connecting recommendations to your own experiment evaluator. Record each proposed setting and measured objective, then return those observations to the next recommendation cycle.
- Evaluate exploration settings, batching, and descriptor formulations against your chosen baseline before laboratory deployment. For published work, consult the project’s citation guidance.