summit

Optimising chemical reactions using machine learning

https://github.com/sustainable-processes/summit

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: wiley.com
  • Committers with academic emails
    3 of 11 committers (27.3%) from academic institutions
  • Institutional organization owner
    Organization sustainable-processes has institutional domain (www.ceb.cam.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

bayesian-optimization chemistry drug-discovery machine-learning nelder-mead neural-networks optimization self-optimization snobfit tsemo

Keywords from Contributors

interactive serializer packaging network-simulation shellcodes hacking autograding observability embedded optim
Last synced: 6 months ago · JSON representation

Repository

Optimising chemical reactions using machine learning

Basic Info
Statistics
  • Stars: 133
  • Watchers: 6
  • Forks: 29
  • Open Issues: 12
  • Releases: 17
Topics
bayesian-optimization chemistry drug-discovery machine-learning nelder-mead neural-networks optimization self-optimization snobfit tsemo
Created over 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License

README.md

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.

```python

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 kcmf2@cam.ac.uk.

Citing

If you find this project useful, we encourage you to

  • Star this repository :star:
  • 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" }

Owner

  • Name: Sustainable Reaction Engineering Group
  • Login: sustainable-processes
  • Kind: organization
  • Email: aal35@cam.ac.uk
  • Location: Cambridge, UK

Software developed by the Sustainable Reaction Engineering group at the University of Cambridge

GitHub Events

Total
  • Issues event: 2
  • Watch event: 10
  • Issue comment event: 15
  • Pull request event: 1
  • Fork event: 5
Last Year
  • Issues event: 2
  • Watch event: 10
  • Issue comment event: 15
  • Pull request event: 1
  • Fork event: 5

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 297
  • Total Committers: 11
  • Avg Commits per committer: 27.0
  • Development Distribution Score (DDS): 0.626
Past Year
  • Commits: 29
  • Committers: 4
  • Avg Commits per committer: 7.25
  • Development Distribution Score (DDS): 0.138
Top Committers
Name Email Commits
marcosfelt k****n@n****u 111
Kobi Felton k****f@g****m 87
Kobi Felton k****2@c****k 69
dependabot[bot] 4****] 12
Jan Rittig 6****t 9
Ilario Gelmetti i****e@g****m 2
simonsung06 6****6 2
Jeremy Sadler 5****r 2
Daniel Wigh 5****h 1
sweep-ai[bot] 1****] 1
Kobi Felton k****2@c****k 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 40
  • Total pull requests: 85
  • Average time to close issues: 5 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 18
  • Total pull request authors: 6
  • Average comments per issue: 1.63
  • Average comments per pull request: 0.54
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 27
Past Year
  • Issues: 2
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.5
  • Average comments per pull request: 5.67
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • marcosfelt (14)
  • ilario (7)
  • konkouz (3)
  • Mishal-Benz (2)
  • zjyz17 (1)
  • RoryGeeson (1)
  • gilbertblanson (1)
  • dswigh (1)
  • TedOiler (1)
  • jb2197 (1)
  • Yujikaiya (1)
  • jcgsville (1)
  • TSAndrews (1)
  • zhangkaihua88 (1)
  • njoseGIT (1)
Pull Request Authors
  • marcosfelt (53)
  • dependabot[bot] (24)
  • ilario (5)
  • sweep-ai[bot] (4)
  • lolosssss (2)
  • simonsung06 (1)
Top Labels
Issue Labels
sweep (3) bug (3) enhancement (2)
Pull Request Labels
dependencies (24) github_actions (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 205 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 14
  • Total maintainers: 2
pypi.org: summit

Tools for optimizing chemical processes

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 205 Last month
Rankings
Stargazers count: 7.3%
Forks count: 8.1%
Dependent repos count: 8.9%
Dependent packages count: 10.1%
Average: 10.6%
Downloads: 18.4%
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • 198 dependencies
pyproject.toml pypi
  • black ^20.8b1 develop
  • ipdb 0.13.4 develop
  • rope ^0.17.0 develop
  • GPy ^1.9
  • SQSnobFit ^0.4.3
  • botorch ^0.5.0
  • cython ^0.29.21
  • entmoot ^0.1.4
  • fastprogress ^0.2.3
  • gpyopt ^1.2.6
  • gpytorch ^1.5.0
  • hiplot ^0.1.12
  • jinja2 <3.1.0
  • llvmlite ^0.38.0
  • matplotlib ^3.2.2
  • nbsphinx ^0.8.5
  • neptune-client ^0.4.115
  • numba ^0.55.0
  • numpy ^1.21.0
  • pandas ^1.1.0
  • paramiko ^2.7.1
  • pymoo ^0.4.1
  • pyrecorder ^0.1.8
  • pyrff ^2.0.1
  • pytest ^6.2.5
  • python ^3.8, <3.10
  • scikit-learn ^1.0
  • scipy >=1.8.0
  • skorch ^0.9.0
  • sphinx ^3.2.1
  • sphinx-reredirects ^0.0.0
  • sphinx-rtd-theme ^0.5.0
  • streamlit ^0.67.1
  • torch ^1.4.0
  • xlrd ^1.2.0
.github/workflows/ci.yml actions
  • Gr1N/setup-poetry v7 composite
  • actions/checkout v2 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v3 composite
Dockerfile docker
  • python 3.7 build