poli-core


Namepoli-core JSON
Version 1.1.1 PyPI version JSON
download
home_pageNone
Summarypoli, a library of discrete objective functions
upload_time2024-11-28 15:51:11
maintainerNone
docs_urlNone
authorMiguel González-Duque
requires_python>=3.9
licenseMIT LICENSE Copyright 2023 MLLS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords optimization molecular discrete proteins
VCS
bugtrack_url
requirements numpy rdkit selfies
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `poli` 🧪, a library for discrete objective functions

[![poli base (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml)
[![Link to documentation](https://img.shields.io/badge/documentation-poli_docs-blue)](https://machinelearninglifescience.github.io/poli-docs/)

`poli` is a library of discrete objective functions for benchmarking optimization algorithms.

## Black boxes

| Black box | References | Tests
|----------|----------|----------|
|   [Toy continuous functions (e.g. Ackley, Hartmann...)](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/toy_continuous_problems.html) |  [(Al-Roomi 2015)](https://www.al-roomi.org/benchmarks/unconstrained), [(Surjanovic & Bingham 2013)](https://www.sfu.ca/~ssurjano/optimization.html)  |   [![poli base (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml)  |
|   [Ehrlich functions](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/ehrlich_functions.html)  |    [(Stanton et al. 2024)](https://arxiv.org/abs/2407.00236)  | [![poli base (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml)
|   [PMO/GuacaMol benchmark](https://machinelearninglifescience.github.io/poli-docs/#small-molecules)  |   [(Brown et al. 2019)](https://arxiv.org/abs/1811.09621), [(Gao et al. 2022)](https://openreview.net/forum?id=yCZRdI0Y7G), [(Huang et al. 2021)](https://openreview.net/pdf?id=8nvgnORnoWr)  | [![poli tdc (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-tdc-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-tdc-env.yml)
|   [Dockstring](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/dockstring.html) |  [(García-Ortegón et al. 2022)](https://pubs.acs.org/doi/full/10.1021/acs.jcim.1c01334)  | [![poli dockstring (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-dockstring-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-dockstring-env.yml)
|   [Rosetta Energy](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/Rosetta_energy.html)  |   [(Chaudhury et al. 2010)](https://academic.oup.com/bioinformatics/article/26/5/689/212442)  | [![poli rosetta (conda, py3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rosetta-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rosetta-env.yml)
|   [RaSP](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/RaSP.html)  |   [(Blaabjerg et al. 2023)](https://elifesciences.org/articles/82593)  | [![poli rasp (conda, py3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rasp-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rasp-env.yml)
|   [FoldX stability and SASA](https://machinelearninglifescience.github.io/poli-docs/#proteins)  |   [(Schymkowitz et al. 2005)](https://academic.oup.com/nar/article/33/suppl_2/W382/2505499?login=true) |  -  |

## Features
- 🔲 **isolation** of black box function calls inside conda environments. Don't worry about clashes w. black box requirements, poli will create the relevant conda environments for you.
- 🗒️ **logging** each black box call using observers.
-  A numpy interface. Inputs are `np.array`s of strings, outputs are `np.array`s of floats.
- `SMILES` and `SELFIES` support for small molecule manipulation.

## Getting started

To install `poli`, we recommend creating a fresh conda environment

```bash
conda create -n poli-base python=3.9
conda activate poli-base
pip install git+https://github.com/MachineLearningLifeScience/poli.git@dev
```

To check if everything went well, you can run

```bash
$ python -c "from poli import create"
```

### An example: dockstring

[![Open the minimal example in Colab](https://colab.research.google.com/assets/colab-badge.svg/)](https://colab.research.google.com/drive/1-IISCebWYfu0QhuCJ11wOag8aKOiPtls?usp=sharing)

In this next example, we estimate the docking score of the example provided in `dockstring`:
```python
import numpy as np
from poli import objective_factory

problem = objective_factory.create(
    name="dockstring",
    target_name="drd2"
)
f, x0 = problem.black_box, problem.x0
y0 = f(x0)

# x0: [['C' 'C' '1' '=' 'C' '(' 'C', ...]] (i.e. Risperidone's SMILES)
# y0: 11.9
print(x0, y0)
```

## Cite us and other relevant work

If you use certain black boxes, we expect you to cite the relevant work. [Check inside the documentation of each black box for the relevant references](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/all_objectives.html).


## Where can I find the documentation?

The main documentation site is hosted as a GitHub page here: https://machinelearninglifescience.github.io/poli-docs/

### Building the documentation locally

If you install the `requirements-dev.txt` via

```bash
pip install -r requirements-dev.txt
```

then you will have access to `sphinx`. You should be able to build the documentation by going to the docs folder and building it:

```bash
cd docs/
make html
```

Afterwards, you can enter the `build` folder and open `index.html`.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "poli-core",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "optimization, molecular, discrete, proteins",
    "author": "Miguel Gonz\u00e1lez-Duque",
    "author_email": "Miguel Gonz\u00e1lez-Duque <miguelgondu@gmail.com>, Simon Bartels <bartels@di.ku.dk>",
    "download_url": "https://files.pythonhosted.org/packages/6c/57/eca3399106704ec51c71605e1a626559dabaa16ae4e34417fbdeb1bf05f1/poli-core-1.1.1.tar.gz",
    "platform": null,
    "description": "# `poli` \ud83e\uddea, a library for discrete objective functions\n\n[![poli base (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml)\n[![Link to documentation](https://img.shields.io/badge/documentation-poli_docs-blue)](https://machinelearninglifescience.github.io/poli-docs/)\n\n`poli` is a library of discrete objective functions for benchmarking optimization algorithms.\n\n## Black boxes\n\n| Black box | References | Tests\n|----------|----------|----------|\n|   [Toy continuous functions (e.g. Ackley, Hartmann...)](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/toy_continuous_problems.html) |  [(Al-Roomi 2015)](https://www.al-roomi.org/benchmarks/unconstrained), [(Surjanovic & Bingham 2013)](https://www.sfu.ca/~ssurjano/optimization.html)  |   [![poli base (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml)  |\n|   [Ehrlich functions](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/ehrlich_functions.html)  |    [(Stanton et al. 2024)](https://arxiv.org/abs/2407.00236)  | [![poli base (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-base.yml)\n|   [PMO/GuacaMol benchmark](https://machinelearninglifescience.github.io/poli-docs/#small-molecules)  |   [(Brown et al. 2019)](https://arxiv.org/abs/1811.09621), [(Gao et al. 2022)](https://openreview.net/forum?id=yCZRdI0Y7G), [(Huang et al. 2021)](https://openreview.net/pdf?id=8nvgnORnoWr)  | [![poli tdc (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-tdc-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-tdc-env.yml)\n|   [Dockstring](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/dockstring.html) |  [(Garc\u00eda-Orteg\u00f3n et al. 2022)](https://pubs.acs.org/doi/full/10.1021/acs.jcim.1c01334)  | [![poli dockstring (dev, conda, python 3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-dockstring-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-dockstring-env.yml)\n|   [Rosetta Energy](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/Rosetta_energy.html)  |   [(Chaudhury et al. 2010)](https://academic.oup.com/bioinformatics/article/26/5/689/212442)  | [![poli rosetta (conda, py3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rosetta-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rosetta-env.yml)\n|   [RaSP](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/RaSP.html)  |   [(Blaabjerg et al. 2023)](https://elifesciences.org/articles/82593)  | [![poli rasp (conda, py3.9)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rasp-env.yml/badge.svg)](https://github.com/MachineLearningLifeScience/poli/actions/workflows/python-tox-testing-rasp-env.yml)\n|   [FoldX stability and SASA](https://machinelearninglifescience.github.io/poli-docs/#proteins)  |   [(Schymkowitz et al. 2005)](https://academic.oup.com/nar/article/33/suppl_2/W382/2505499?login=true) |  -  |\n\n## Features\n- \ud83d\udd32 **isolation** of black box function calls inside conda environments. Don't worry about clashes w. black box requirements, poli will create the relevant conda environments for you.\n- \ud83d\uddd2\ufe0f **logging** each black box call using observers.\n-  A numpy interface. Inputs are `np.array`s of strings, outputs are `np.array`s of floats.\n- `SMILES` and `SELFIES` support for small molecule manipulation.\n\n## Getting started\n\nTo install `poli`, we recommend creating a fresh conda environment\n\n```bash\nconda create -n poli-base python=3.9\nconda activate poli-base\npip install git+https://github.com/MachineLearningLifeScience/poli.git@dev\n```\n\nTo check if everything went well, you can run\n\n```bash\n$ python -c \"from poli import create\"\n```\n\n### An example: dockstring\n\n[![Open the minimal example in Colab](https://colab.research.google.com/assets/colab-badge.svg/)](https://colab.research.google.com/drive/1-IISCebWYfu0QhuCJ11wOag8aKOiPtls?usp=sharing)\n\nIn this next example, we estimate the docking score of the example provided in `dockstring`:\n```python\nimport numpy as np\nfrom poli import objective_factory\n\nproblem = objective_factory.create(\n    name=\"dockstring\",\n    target_name=\"drd2\"\n)\nf, x0 = problem.black_box, problem.x0\ny0 = f(x0)\n\n# x0: [['C' 'C' '1' '=' 'C' '(' 'C', ...]] (i.e. Risperidone's SMILES)\n# y0: 11.9\nprint(x0, y0)\n```\n\n## Cite us and other relevant work\n\nIf you use certain black boxes, we expect you to cite the relevant work. [Check inside the documentation of each black box for the relevant references](https://machinelearninglifescience.github.io/poli-docs/using_poli/objective_repository/all_objectives.html).\n\n\n## Where can I find the documentation?\n\nThe main documentation site is hosted as a GitHub page here: https://machinelearninglifescience.github.io/poli-docs/\n\n### Building the documentation locally\n\nIf you install the `requirements-dev.txt` via\n\n```bash\npip install -r requirements-dev.txt\n```\n\nthen you will have access to `sphinx`. You should be able to build the documentation by going to the docs folder and building it:\n\n```bash\ncd docs/\nmake html\n```\n\nAfterwards, you can enter the `build` folder and open `index.html`.\n\n",
    "bugtrack_url": null,
    "license": "MIT LICENSE  Copyright 2023 MLLS  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "poli, a library of discrete objective functions",
    "version": "1.1.1",
    "project_urls": {
        "Homepage": "https://github.com/MachineLearningLifeScience/poli"
    },
    "split_keywords": [
        "optimization",
        " molecular",
        " discrete",
        " proteins"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35db8111a772cfe2cc9765f50ac02a1392634ae39337aee7f9ed0a55b22c11ed",
                "md5": "c50164b078673d114608bfd8f0a1f73a",
                "sha256": "af0a0be484d107b633c58bc096a9dd6d90eb07094c96d183af5bf3046f9cfee0"
            },
            "downloads": -1,
            "filename": "poli_core-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c50164b078673d114608bfd8f0a1f73a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 4810846,
            "upload_time": "2024-11-28T15:51:10",
            "upload_time_iso_8601": "2024-11-28T15:51:10.100417Z",
            "url": "https://files.pythonhosted.org/packages/35/db/8111a772cfe2cc9765f50ac02a1392634ae39337aee7f9ed0a55b22c11ed/poli_core-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6c57eca3399106704ec51c71605e1a626559dabaa16ae4e34417fbdeb1bf05f1",
                "md5": "9df8e4e2dcc3b63532be21713b845d94",
                "sha256": "49ea4a08cdc8ffe8495855d1f8c487a7eabcbf35c76c588434f4c8e341d53ae6"
            },
            "downloads": -1,
            "filename": "poli-core-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "9df8e4e2dcc3b63532be21713b845d94",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 4668278,
            "upload_time": "2024-11-28T15:51:11",
            "upload_time_iso_8601": "2024-11-28T15:51:11.914332Z",
            "url": "https://files.pythonhosted.org/packages/6c/57/eca3399106704ec51c71605e1a626559dabaa16ae4e34417fbdeb1bf05f1/poli-core-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-28 15:51:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MachineLearningLifeScience",
    "github_project": "poli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    "<",
                    "2"
                ]
            ]
        },
        {
            "name": "rdkit",
            "specs": []
        },
        {
            "name": "selfies",
            "specs": []
        }
    ],
    "tox": true,
    "lcname": "poli-core"
}
        
Elapsed time: 0.36128s