CurryBO: Bayesian optimization over curried function spaces
CurryBO is a pure python package that allows to conduct Bayesian Optimization in the search for general (i.e. transferable) parameters that work well across multiple related tasks.
Installation
To install the package, simply:
pip install currybo
Installation takes approximately 30 seconds on a consumer-grade laptop.
Usage
If you are interested in using CurryBO to predict your experiments based on your own measurements, you can simply call
currybo \
--measurements [your-data-file.csv] --options [your-options-file.csv] \
--substrates "name=[Your-substrate-class-name],type=smiles" \
--conditions "name=[Your-condition-class-name],type=smiles" \
--targets "name=[Your-target-name],type=scalar" \
--objectives "name=[Your-target-name],abs_threshold=[Your-target-threshold],maximize=True" \
The output will be printed to the terminal in json format and contains information on the currently estimated general optimum (which conditions and the generality outcome), as well as the points recommended for next measurement and their expected outcome. For a test system with 6 substrates and 20 condition combinations, runtime is approximately 2 seconds on consumer-grade hardware.
If you do not want to code, please visit the CurryBO Website, where we built a web-based application so that everyone can optimize for general reaction conditions.
If you are interested in reproducing work from the paper, please refer to the currybo-benchmarks repository, which contains datasets to reproduce the experiments in this work.
Citation
If you use CurryBO in your research, please cite the corresponding paper:
@misc{schmid_2026_bayesian_optimization_general_reaction,
title={Bayesian Optimization for General Reaction Conditions},
author={Stefan P. Schmid and Ella Miray Rajaonson and Cher Tian Ser and Mohammad Haddadnia and Shi Xuan Leong and Alán Aspuru-Guzik and Agustinus Kristiadi and Kjell Jorner and Felix Strieth-Kalthoff},
year={2026},
eprint={2502.18966},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2502.18966},
}
System requirements
The software dependencies are given in pyproject.toml, with the version numbers on which it has been tested on.
CurryBO has been executed on Mac OS (Version 15 and later), as well as Linux Ubuntu (Version 22.04). No non-standard hardware is required to run CurryBO.
Metadata
Release files for currybo 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| currybo-0.1.1.tar.gz | 40.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| currybo-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 94.4 kB
Release files / currybo-0.1.1.tar.gz
| Download URL | currybo-0.1.1.tar.gz |
|---|---|
| Size | 40.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee6a82a0f5f0372c2efc29b0224e11c8b6e3608e310eb0085cd842e039d60618
|
|
BLAKE2b-256 checksum How to use checksums |
87e9f1d074f5e00295b94edff274af268c633229841770d63b246051fe7285cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / currybo-0.1.1-py3-none-any.whl
| Download URL | currybo-0.1.1-py3-none-any.whl |
|---|---|
| Size | 53.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a7d939d2c7fe376062c13053bcef1583c94a2e0b90927329de833bab531be900
|
|
BLAKE2b-256 checksum How to use checksums |
05e017f675e8b872940e5a4a4e9e39064e44cc3597faf36ced033f22d43d71e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|