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.

https://github.com/colinbousige/optimeo

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

bayesian-optimization design-of-experiments experimental-analysis
Last synced: 4 months ago · JSON representation ·

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
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 2
  • Open Issues: 2
  • Releases: 1
Topics
bayesian-optimization design-of-experiments experimental-analysis
Created over 1 year ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

OPTIMEO – Optimization Platform for Tuning, Inference, Modeling, Exploration, and Orchestration

DOI

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 OPTIMEO folder in OPTIMEO/bin/optimeo. Then, doing the following will add the optimeo command to your PATH:

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

License: MIT

This project is licensed under the MIT License - see the LICENSE file for details

Owner

  • Login: colinbousige
  • Kind: user

JOSS Publication

OPTIMEO: Bayesian Optimization Web App for Process Tuning, Modeling, and Orchestration
Published
November 21, 2025
Volume 10, Issue 115, Page 8510
Authors
Colin Bousige ORCID
Universite Claude Bernard Lyon 1, CNRS, LMI UMR 5615, Villeurbanne, F-69100, France
Editor
Mehmet Hakan Satman ORCID
Tags
Bayesian Optimization Design of Experiment Machine Learning Active Learning

Citation (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

requirements.txt pypi
  • 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
setup.py pypi
  • 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
.github/workflows/draft-pdf.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • openjournals/openjournals-draft-action master composite