Skip to content

sustainable-processes/summit

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8ef8a35 · Jul 25, 2024
Jun 12, 2023
Sep 8, 2020
Oct 19, 2022
Jul 25, 2024
Feb 10, 2023
Sep 13, 2022
Jul 25, 2024
Jul 26, 2020
Feb 19, 2021
Feb 17, 2022
Feb 21, 2023
Feb 17, 2022
Aug 3, 2020
Sep 12, 2020
Dec 2, 2022
Feb 13, 2023
Feb 14, 2023

Repository files navigation

Summit

summit_banner

Documentation Status PyPI

Summit is a set of tools for optimising chemical processes. We’ve started by targeting reactions. Go through a tutorial here!

What is Summit?

Currently, reaction optimisation in the fine chemicals industry is done by intuition or design of experiments. Both scale poorly with the complexity of the problem.

Summit uses recent advances in machine learning to make the process of reaction optimisation faster. Essentially, it applies algorithms that learn which conditions (e.g., temperature, stoichiometry, etc.) are important to maximising one or more objectives (e.g., yield, enantiomeric excess). This is achieved through an iterative cycle.

Summit has two key features:

  • Strategies: Optimisation algorithms designed to find the best conditions with the least number of iterations. Summit has eight strategies implemented.
  • Benchmarks: Simulations of chemical reactions that can be used to test strategies. We have both mechanistic and data-driven benchmarks.

To get started, see the Quick Start below or follow our tutorial.

Installation

To install summit, use the following command:

pip install summit

News

  • Denali (0.8) is out! Read more about the release here.
  • Kobi (@marcosfelt) gave a tutorial on Summit at the online Autonomous Discovery Symposium on Wednesday 21 April 2021. The tutorial can be found here.

Quick Start

Below, we show how to use the Nelder-Mead strategy to optimise a benchmark representing a nucleophlic aromatic substitution (SnAr) reaction.

# Import summit
from summit.benchmarks import SnarBenchmark
from summit.strategies import SOBO, MultitoSingleObjective
from summit.run import Runner

# Instantiate the benchmark
exp = SnarBenchmark()

# Since the Snar benchmark has two objectives and Nelder-Mead is single objective, we need a multi-to-single objective transform
transform = MultitoSingleObjective(
    exp.domain, expression="-sty/1e4+e_factor/100", maximize=False
)

# Set up the strategy, passing in the optimisation domain and transform
nm = SOBO(exp.domain, transform=transform)

# Use the runner to run closed loop experiments
r = Runner(
    strategy=nm, experiment=exp,max_iterations=50
)
r.run()

# Make a pareto plot comparing both objectives
r.experiment.pareto_plot()

Documentation Status

Documentation

The documentation for summit can be found here.

Issues?

Submit an issue or send an email to [email protected].

Citing

If you find this project useful, we encourage you to

  • Star this repository ⭐
  • Cite our paper.
@article{Felton2021,
author = "Kobi Felton and Jan Rittig and Alexei Lapkin",
title = "{Summit: Benchmarking Machine Learning Methods for Reaction Optimisation}",
year = "2021",
month = "2",
url = "https://chemistry-europe.onlinelibrary.wiley.com/doi/full/10.1002/cmtd.202000051",
journal = "Chemistry Methods"
}