https://github.com/aspuru-guzik-group/gryffin

https://github.com/aspuru-guzik-group/gryffin

Science Score: 33.0%

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

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: wiley.com, nature.com, science.org, acs.org
  • Committers with academic emails
    3 of 9 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords from Contributors

chemistry experimental-design materials-science
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: aspuru-guzik-group
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Size: 14.6 MB
Statistics
  • Stars: 58
  • Watchers: 12
  • Forks: 27
  • Open Issues: 19
  • Releases: 2
Created over 6 years ago · Last pushed over 3 years ago
Metadata Files
Readme License

README.md

build Documentation Status License

Gryffin: Bayesian Optimization of Continuous and Categorical Variables

Welcome to Gryffin!

Designing functional molecules and advanced materials requires complex design choices: tuning continuous process parameters such as temperatures or flow rates, while simultaneously selecting catalysts or solvents.

To date, the development of data-driven experiment planning strategies for autonomous experimentation has largely focused on continuous process parameters despite the urge to devise efficient strategies for the selection of categorical variables. Here, we introduce Gryffin, a general purpose optimization framework for the autonomous selection of categorical variables driven by expert knowledge.

Features

  • Gryffin extends the ideas of the Phoenics optimizer to categorical variables. Phoenics is a linear-scaling Bayesian optimizer for continuous spaces which uses a kernel regression surrogate. Gryffin extends this approach to categorical and mixed continuous-categorical spaces.
  • Gryffin is linear-scaling appraoch to Bayesian optimization, whose acquisition function natively supports batched optimization. Gryffin's acquisition function uses an intuitive sampling parameter to bias its behaviour between exploitation and exploration.
  • Gryffin is capable of leveraging expert knowledge in the form of physicochemical descriptors to enhance its optimization performance (static formulation). Also, Gryffin can refine the provided descriptors to further accelerate the optimization (dynamic formulation) and foster scientific understanding.

Use cases of Gryffin/Phoenics

Requirements

  • Python version >= 3.7

Installation

To install gryffin from PyPI:

console $ pip install gryffin

To install gryffin from source:

console $ git clone git@github.com:aspuru-guzik-group/gryffin.git $ cd gryffin $ pip install .

Example Usage

This is a minimalist example of Gryffin in action.

```python

from gryffin import Gryffin
import experiment

# load config
config = {
    "parameters": [
        {"name": "param_0", "type": "continuous", "low": 0.0, "high": 1.0},
    ],
    objectives: [
        {"name": "obj", "goal": "min"},
    ]
}

# initialize gryffin
gryffin = Gryffin(
    config_dict=config
)

observations = [] 
for iter in range(ITER_BUDGET):

    # query gryffin for new params
    params  = gryffin.recommend(observations=observations)

    # evaluate the proposed parameters
    merit = experiment.run(params)
    params['obj'] = merit

    observations.append(params)

```

Documentation

Please refer to the documentation website for:

Citation

If you found Gryffin useful, please include the relevant citation in your work.

License

Apache License 2.0

Owner

  • Name: Aspuru-Guzik group repo
  • Login: aspuru-guzik-group
  • Kind: organization

GitHub Events

Total
  • Watch event: 7
  • Fork event: 6
Last Year
  • Watch event: 7
  • Fork event: 6

Committers

Last synced: over 3 years ago

All Time
  • Total Commits: 308
  • Total Committers: 9
  • Avg Commits per committer: 34.222
  • Development Distribution Score (DDS): 0.523
Top Committers
Name Email Commits
Matteo Aldeghi m****h@m****e 147
jwilles j****s@g****m 100
rileyhickman r****3@g****m 22
Jan Rittig 6****t@u****m 13
Florian Häse h****n@g****m 12
matteoaldeghi m****i@v****i 7
Kobi Felton k****f@g****m 5
jwilles j****s@v****l 1
tgaudin t****n@a****h 1
Committer Domains (Top 20 + Academic)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 20 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 4
  • Total maintainers: 2
pypi.org: gryffin

Bayesian optimization for continuous and categorical variables

  • Versions: 4
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 20 Last month
Rankings
Dependent packages count: 4.8%
Forks count: 8.1%
Stargazers count: 10.2%
Average: 14.2%
Dependent repos count: 21.6%
Downloads: 26.3%
Last synced: 11 months ago

Dependencies

docs/requirements.txt pypi
  • ipython *
  • nbsphinx *
  • sphinx-autodoc-typehints *
  • sphinx-rtd-theme *
setup.py pypi
  • deap *
  • matter-chimera *
  • numpy *
  • pandas *
  • rich *
  • sqlalchemy *
  • torch *
  • torchbnn *
.github/workflows/continuous-integration.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
pyproject.toml pypi