optimeo
OPTIMEO is a package doubled by a web application that helps you optimize your experimental process by generating a Design of Experiment, generating new experiments using Bayesian Optimization (BO), and analyzing the results of your experiments using Machine Learning models.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.3%) to scientific vocabulary
Keywords
Repository
OPTIMEO is a package doubled by a web application that helps you optimize your experimental process by generating a Design of Experiment, generating new experiments using Bayesian Optimization (BO), and analyzing the results of your experiments using Machine Learning models.
Basic Info
- Host: GitHub
- Owner: colinbousige
- License: mit
- Language: HTML
- Default Branch: main
- Homepage: https://optimeo.streamlit.app/
- Size: 26.9 MB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 2
- Releases: 1
Topics
Metadata Files
README.md
OPTIMEO – Optimization Platform for Tuning, Inference, Modeling, Exploration, and Orchestration 
About this package
OPTIMEO is a package doubled by a web application that helps you optimize your experimental process by generating a Design of Experiment, generating new experiments using Bayesian Optimization (BO), and analyzing the results of your experiments using Machine Learning models. The OPTIMEO package is aimed at helping scientists of any field to reach the optimum parameters of their process using the minimum amount of resources and effort. Therefore, it is based on BO for its data efficiency: when each experiment might take one or more day to run and characterize, it is much preferable to use BO to determine which parameters to use to minimize the number of experiments to run.
This package was developed within the frame of an academic research project, MOFSONG, funded by the French National Research Agency (N° ANR-24-CE08-7639). See the related paper reference in How to cite.
Documentation
The package documentation is available on the GitHub page of the app
Installation
Installing the package
Installing the package and its dependencies should take up about 1.3 GB on your hard disk, the main "heavy" dependencies being botorch, scikit_learn, plotly, scipy, pandas and streamlit.
It should be easy enough with pip:
```bash git clone https://github.com/colinbousige/OPTIMEO.git cd OPTIMEO
Otional: create a virtual environment
python -m venv venv source venv/bin/activate # on Linux or MacOS
Then, install OPTIMEO as a package:
pip install . ```
If you did pip install ., you can upgrade to new a version or uninstall with:
```bash
upgrade the optimeo package
cd OPTIMEO pip install --upgrade .
uninstall the optimeo package
pip uninstall optimeo ```
Using the web app
You can use the app directly on its Streamlit.io web page, but it might be a bit slow if you have a lot of data to process.
If you'd rather run this app on your local machine (which will most probably make it faster than running it on streamlit.io), you can do so by running the following command in your terminal:
```bash git clone https://github.com/colinbousige/OPTIMEO.git cd OPTIMEO
Otional: create a virtual environment
python -m venv venv source venv/bin/activate # on Linux or MacOS
Then, install the required packages:
pip install -r requirements.txt # to install the required packages ```
Finally, you can run the app by running the following command in your terminal:
bash
streamlit run Home.py
- You can also modify the path to the
OPTIMEOfolder inOPTIMEO/bin/optimeo. Then, doing the following will add theoptimeocommand to yourPATH:
bash
git clone https://github.com/colinbousige/OPTIMEO.git
cd OPTIMEO
pip install . # to install OPTIMEO as a package
chmod +x bin/optimeo
ln -s $(pwd)/bin/optimeo /usr/local/bin/optimeo # or any folder in your PATH
So now, you just have to run optimeo in your terminal to run the app.
Usage
With the web app
You can use the app directly on its Streamlit.io web page, or run it locally (see Installation).
Choose the page you want to use in the sidebar, and follow the instructions. Hover the mouse on the question marks to get more information about the parameters.
1. Design of Experiment:
Generate a Design of Experiment (DoE) for the optimization of your process. Depending on the number of factors and levels, you can choose between different types of DoE, such as Sobol sequence, Full Factorial, Fractional Factorial, or Definitive Screening Design.
2. New experiments using Bayesian Optimization:
From a previous set of experiments and their results, generate a new set of experiments to optimize your process. You can use up to 10 outcomes, of which 2 can be objectives (i.e. outcomes that you want to minimize or maximize) and the outcomes that are not objectives can be constrained.
3. Data analysis and modeling:
Analyze the results of your experiments and model the response of your process.
With the Python package
You can also use the app as a Python package (see Installation). You can import the different modules of the app and use them in your own code. Here is an example of how to use the app as a package:
For Design of Experiment
A more detailed example is given in the notebook.
python
from optimeo.doe import *
parameters = [
{'name': 'Temperature', 'type': 'integer', 'values': [20, 40]},
{'name': 'Pressure', 'type': 'float', 'values': [1, 2, 3]},
{'name': 'Catalyst', 'type': 'categorical', 'values': ['A', 'B', 'C']}
]
doe = DesignOfExperiments(
type='Sobol sequence',
parameters=parameters,
Nexp=8
)
doe
For Bayesian Optimization
A more detailed example is given in the notebook.
```python from optimeo.bo import *
features, outcomes = readexperimentaldata('experimentaldata.csv', outpos=[-1]) bo = BOExperiment( features=features, outcomes=outcomes, N = 2, # number of new points to generate maximize=True, # we want to maximize the response fixedfeatures=None, featureconstraints=None, optim = 'bo' ) bo.suggestnexttrials() ```
For Data Analysis
A more detailed example is given in the notebook.
```python from optimeo.analysis import *
data = pd.readcsv('dataML.csv') factors = data.columns[:-1].tolist() response = data.columns[-1] analysis = DataAnalysis(data, factors, response) analysis.modeltype = "ElasticNetCV" MLmodel = analysis.computeMLmodel() figs = analysis.plotMLmodel() for fig in figs: fig.show() ```
Support
This app was made by Colin Bousige. Contact me for support or to signal a bug, or leave a message on the GitHub page of the app.
How to cite
The source can be found on Github, please consider citing it as:
bibtex
@software{Bousige_optimeo,
author = {Bousige, Colin},
title = {{OPTIMEO}},
url = {https://github.com/colinbousige/optimeo},
doi={10.5281/zenodo.15308437}
}
Acknowledgements
This work was supported by the French National Research Agency (N° ANR-24-CE08-7639).
Also, this work was made possible thanks to the following open-source projects:
Contributing
All contributions are welcome!
Ideally, please open an issue first to discuss the feature or bugfix you plan to work on. Create a dedicated branch from main for your changes and open a pull request.
For any further questions, feel free to use the issue tracker to start a discussion.
License
This project is licensed under the MIT License - see the LICENSE file for details
Owner
- Login: colinbousige
- Kind: user
- Repositories: 2
- Profile: https://github.com/colinbousige
JOSS Publication
OPTIMEO: Bayesian Optimization Web App for Process Tuning, Modeling, and Orchestration
Authors
Tags
Bayesian Optimization Design of Experiment Machine Learning Active LearningCitation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: OPTIMEO
message: >-
Optimization Platform for Tuning, Inference, Modeling,
Exploration, and Orchestration
type: software
authors:
- given-names: Colin
family-names: Bousige
email: colin.bousige@cnrs.fr
orcid: 'https://orcid.org/0000-0002-0490-2277'
affiliation: >-
Universite Claude Bernard Lyon 1, CNRS, LMI UMR 5615,
Villeurbanne, F-69100, France
repository-code: 'https://github.com/colinbousige/OPTIMEO'
url: 'https://colinbousige.github.io/OPTIMEO/optimeo.html'
doi: '10.5281/zenodo.15308437'
abstract: >-
OPTIMEO is a package doubled by a web application that
helps you optimize your experimental process by generating
a Design of Experiment (DoE), generating new experiments
using Bayesian Optimization, and analyzing the results of
your experiments using Machine Learning models.
keywords:
- bayesian optimization
- design of experiment
- active learning
license: CC-BY-NC-4.0
version: '1.0'
date-released: '2025-04-30'
GitHub Events
Total
- Create event: 1
- Issues event: 1
- Release event: 2
- Watch event: 2
- Issue comment event: 1
- Push event: 68
- Pull request event: 1
- Pull request review event: 1
- Fork event: 1
Last Year
- Create event: 1
- Issues event: 1
- Release event: 2
- Watch event: 2
- Issue comment event: 1
- Push event: 68
- Pull request event: 1
- Pull request review event: 1
- Fork event: 1
Dependencies
- ax-platform ==0.5.0
- definitive_screening_design ==0.5.0
- dexpy ==0.12
- doepy ==0.0.1
- matplotlib ==3.10.1
- numpy ==2.2.4
- optuna ==3.6.1
- pandas ==2.2.3
- plotly ==5.24.0
- pyDOE3 ==1.0.4
- pyjanitor ==0.29.0
- scikit_learn ==1.6.1
- statsmodels ==0.14.2
- streamlit ==1.36.0
- xlsxwriter ==3.2.2
- ax-platform ==0.5.0
- definitive_screening_design ==0.5.0
- dexpy ==0.12
- doepy ==0.0.1
- matplotlib ==3.10.1
- numpy *
- pandas *
- plotly *
- pyDOE3 ==1.0.4
- pyjanitor ==0.31.0
- scikit_learn ==1.6.1
- seaborn *
- statsmodels *
- streamlit ==1.44.1
- xlsxwriter ==3.2.2
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- openjournals/openjournals-draft-action master composite
