From b8c4408b8dca0614dc6a215892d8fddda12798fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Gonz=C3=A1lez=20Duque?= Date: Wed, 7 Feb 2024 16:27:20 -0500 Subject: [PATCH 1/4] Modifies the docs to account for the api change --- docs/poli-docs/contributing/a_new_problem.md | 2 +- .../getting_started/getting_started.md | 2 +- .../using_poli/objective_repository/RaSP.md | 8 ++++---- .../using_poli/objective_repository/aloha.md | 2 +- .../objective_repository/dockstring.md | 2 +- .../objective_repository/drd3_docking.md | 4 ++-- .../objective_repository/foldx_rfp_lambo.md | 13 ++++++++++--- .../objective_repository/foldx_sasa.md | 4 ++-- .../objective_repository/foldx_stability.md | 4 ++-- .../penalized_logp_lambo.md | 9 +-------- .../objective_repository/rdkit_logp.md | 4 ++-- .../objective_repository/rdkit_qed.md | 4 ++-- .../using_poli/objective_repository/sa_tdc.md | 17 +++-------------- .../using_poli/objective_repository/template.md | 2 +- .../toy_continuous_problems.md | 4 ++-- .../objective_repository/white_noise.md | 2 +- .../optimizing_protein_stability.ipynb | 2 +- .../the_basics/defining_an_observer.ipynb | 2 +- .../using_poli/the_basics/intro_to_poli.ipynb | 2 +- .../using_poli/the_basics/isolation.ipynb | 2 +- .../optimizing_an_objective_function.md | 2 +- .../registering_an_objective_function.md | 2 +- .../bayesian_optimization.md | 2 +- .../line_bayesian_optimization.md | 2 +- 24 files changed, 44 insertions(+), 55 deletions(-) diff --git a/docs/poli-docs/contributing/a_new_problem.md b/docs/poli-docs/contributing/a_new_problem.md index 748987e3..3c22e099 100644 --- a/docs/poli-docs/contributing/a_new_problem.md +++ b/docs/poli-docs/contributing/a_new_problem.md @@ -233,7 +233,7 @@ If you can find your problem in this list, then you're set! You should be able t ```python from poli import objective_factory -problem_info, f, x0, y0, _ = objective_factory.create( +f, x0, y0 = objective_factory.create( name="your_problem", ..., your_arg_1=..., # <-- Keywords you (maybe) needed diff --git a/docs/poli-docs/getting_started/getting_started.md b/docs/poli-docs/getting_started/getting_started.md index 2a6ec5c3..a8b83b03 100644 --- a/docs/poli-docs/getting_started/getting_started.md +++ b/docs/poli-docs/getting_started/getting_started.md @@ -128,7 +128,7 @@ Let's write a small script that creates an instance of `white_noise` from the re import numpy as np from poli import objective_factory -problem_info, f, x0, y0, run_info = objective_factory.create(name="white_noise") +f, x0, y0 = objective_factory.create(name="white_noise") x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. for _ in range(5): diff --git a/docs/poli-docs/using_poli/objective_repository/RaSP.md b/docs/poli-docs/using_poli/objective_repository/RaSP.md index 9bd22f1b..5457ca88 100644 --- a/docs/poli-docs/using_poli/objective_repository/RaSP.md +++ b/docs/poli-docs/using_poli/objective_repository/RaSP.md @@ -36,7 +36,7 @@ Follow that with conda activate poli__rasp ``` -Supposing you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: +Assuming you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: ```python from pathlib import Path @@ -53,7 +53,7 @@ if __name__ == "__main__": # You could have more if you want. ] - problem_info, f_rasp, x0, y0, _ = objective_factory.create( + f_rasp, x0, y0 = objective_factory.create( name="rasp", wildtype_pdb_path=wildtype_pdb_paths_for_rasp, ) @@ -79,7 +79,7 @@ if __name__ == "__main__": :::{tab-item} In isolation -Supposing you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: +Assuming you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: ```python from pathlib import Path @@ -96,7 +96,7 @@ if __name__ == "__main__": # You could have more if you want. ] - problem_info, f_rasp, x0, y0, _ = objective_factory.create( + f_rasp, x0, y0 = objective_factory.create( name="rasp", wildtype_pdb_path=wildtype_pdb_paths_for_rasp, ) diff --git a/docs/poli-docs/using_poli/objective_repository/aloha.md b/docs/poli-docs/using_poli/objective_repository/aloha.md index 085865b0..0266d92b 100644 --- a/docs/poli-docs/using_poli/objective_repository/aloha.md +++ b/docs/poli-docs/using_poli/objective_repository/aloha.md @@ -19,7 +19,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="aloha") +f, x0, y0 = objective_factory.create(name="aloha") # Example input: x = np.array([["A", "L", "O", "O", "F"]]) # must be of shape [b, L], in this case [1, 5]. diff --git a/docs/poli-docs/using_poli/objective_repository/dockstring.md b/docs/poli-docs/using_poli/objective_repository/dockstring.md index 90ee2eaf..79071730 100644 --- a/docs/poli-docs/using_poli/objective_repository/dockstring.md +++ b/docs/poli-docs/using_poli/objective_repository/dockstring.md @@ -76,7 +76,7 @@ import numpy as np from poli import objective_factory if __name__ == "__main__": - problem_info, f, x0, y0, _ = objective_factory.create( + f, x0, y0 = objective_factory.create( name="dockstring", target_name="DRD2", string_representation="SMILES", diff --git a/docs/poli-docs/using_poli/objective_repository/drd3_docking.md b/docs/poli-docs/using_poli/objective_repository/drd3_docking.md index b11a21a1..711ac0bc 100644 --- a/docs/poli-docs/using_poli/objective_repository/drd3_docking.md +++ b/docs/poli-docs/using_poli/objective_repository/drd3_docking.md @@ -85,7 +85,7 @@ Running this objective function will create an `./oracle` folder on your working ::::{tab-set} -:::{tab-item} (Isolated) in the `poli__lambo` environment +:::{tab-item} (Isolated) in the `poli__tdc` environment After the setup described above, you can simply run the following code from @@ -93,7 +93,7 @@ After the setup described above, you can simply run the following code from from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="drd3_docking", force_register=True ) diff --git a/docs/poli-docs/using_poli/objective_repository/foldx_rfp_lambo.md b/docs/poli-docs/using_poli/objective_repository/foldx_rfp_lambo.md index 4856ed92..8bbd363c 100644 --- a/docs/poli-docs/using_poli/objective_repository/foldx_rfp_lambo.md +++ b/docs/poli-docs/using_poli/objective_repository/foldx_rfp_lambo.md @@ -16,7 +16,7 @@ We need you to have `foldx` installed, and available in your home directory. We ### Python environment -We expect you to have [cloned and installed the `lambo` repository](https://github.com/samuelstanton/lambo). Since there are some files we can't install automatically using `pip install git+...`, we ask you to create a `conda` environment for the lambo tasks: +We recommend that you have [cloned and installed the `lambo` repository](https://github.com/samuelstanton/lambo). Since there are some files we can't install automatically using `pip install git+...`, we recommend that you create a `conda` environment for the lambo tasks: ``` # From the root of the poli repository @@ -44,6 +44,13 @@ In particular, we need Make sure the data is avaliable. +:::{admonition} We can install `lambo` automatically +:class: dropdown + +These steps can be skipped. If so, we will install LaMBO automatically and download the relevant files using `PyGithub`. That being said, the API of GitHub limits queries if you are doing anonymous queries. If you decide to skip installing lambo, we recommend that you add an environment variable called `GITHUB_TOKEN_FOR_POLI` whose value is a personal token. [See how to create one here.](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + +::: + ## How to run You can only run this objective function either in the `poli__lambo` environment, or as an isolated process (which runs this environment underneath). @@ -62,8 +69,8 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( - name="foldx_rfp", +f, x0, y0 = objective_factory.create( + name="foldx_rfp_lambo", ) # Example input: diff --git a/docs/poli-docs/using_poli/objective_repository/foldx_sasa.md b/docs/poli-docs/using_poli/objective_repository/foldx_sasa.md index 93364dae..14193a97 100644 --- a/docs/poli-docs/using_poli/objective_repository/foldx_sasa.md +++ b/docs/poli-docs/using_poli/objective_repository/foldx_sasa.md @@ -62,7 +62,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_sasa", wildtype_pdb_file=wildtype_pdb_file ) @@ -91,7 +91,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_sasa", wildtype_pdb_file=wildtype_pdb_file, force_register=True, diff --git a/docs/poli-docs/using_poli/objective_repository/foldx_stability.md b/docs/poli-docs/using_poli/objective_repository/foldx_stability.md index ee3c6cc8..005ca855 100644 --- a/docs/poli-docs/using_poli/objective_repository/foldx_stability.md +++ b/docs/poli-docs/using_poli/objective_repository/foldx_stability.md @@ -61,7 +61,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_stability", wildtype_pdb_file=wildtype_pdb_file ) @@ -90,7 +90,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_stability", wildtype_pdb_file=wildtype_pdb_file, force_register=True, diff --git a/docs/poli-docs/using_poli/objective_repository/penalized_logp_lambo.md b/docs/poli-docs/using_poli/objective_repository/penalized_logp_lambo.md index c6c46e52..cfef640e 100644 --- a/docs/poli-docs/using_poli/objective_repository/penalized_logp_lambo.md +++ b/docs/poli-docs/using_poli/objective_repository/penalized_logp_lambo.md @@ -57,7 +57,7 @@ import numpy as np from poli import objective_factory # Using create -problem_info, f, x0, y0, _ = objective_factory.create(name="penalized_logp_lambo") +f, x0, y0 = objective_factory.create(name="penalized_logp_lambo") # An example input print(x0) @@ -77,10 +77,3 @@ f.terminate() - `penalized: bool = True`. Whether we are evaluating penalized logP or not. - `string_representation: str = "SMILES"`. Can be either `"SMILES"` or `"SELFIES"`. - - diff --git a/docs/poli-docs/using_poli/objective_repository/rdkit_logp.md b/docs/poli-docs/using_poli/objective_repository/rdkit_logp.md index 64d1653f..529b497a 100644 --- a/docs/poli-docs/using_poli/objective_repository/rdkit_logp.md +++ b/docs/poli-docs/using_poli/objective_repository/rdkit_logp.md @@ -33,7 +33,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_logp", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, @@ -58,7 +58,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_logp", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, diff --git a/docs/poli-docs/using_poli/objective_repository/rdkit_qed.md b/docs/poli-docs/using_poli/objective_repository/rdkit_qed.md index cb8e5e21..e0ed3622 100644 --- a/docs/poli-docs/using_poli/objective_repository/rdkit_qed.md +++ b/docs/poli-docs/using_poli/objective_repository/rdkit_qed.md @@ -32,7 +32,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_qed", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, @@ -57,7 +57,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_qed", alphabet=alphabet, string_representation="SELFIES", # Can be either SMILES or SELFIES diff --git a/docs/poli-docs/using_poli/objective_repository/sa_tdc.md b/docs/poli-docs/using_poli/objective_repository/sa_tdc.md index 70b3d5fa..409d6dbe 100644 --- a/docs/poli-docs/using_poli/objective_repository/sa_tdc.md +++ b/docs/poli-docs/using_poli/objective_repository/sa_tdc.md @@ -10,20 +10,9 @@ This objective function computes the synthetic accesibility of a small molecule ## Prerequisites -### Create the `poli__lambo` environment - -#### Create the environment from the yml file - -This can easily be done by running - -```bash -# From the base of the poli repo -conda env create --file src/poli/objective_repository/sa_tdc/environment.yml -``` - ## How to run -You can only run this objective function either in the `poli__lambo` environment, or as an isolated process (which runs this environment underneath). +You can only run this objective function either in the `poli__tdc` environment, or as an isolated process (which runs this environment underneath). :::{warning} Running this objective function will create an `./oracle` folder on your working directory, where it will download the relevant files for the oracle to work. @@ -31,7 +20,7 @@ Running this objective function will create an `./oracle` folder on your working ::::{tab-set} -:::{tab-item} (Isolated) in the `poli__lambo` environment +:::{tab-item} (Isolated) in the `poli__tdc` environment After the setup described above, you can simply run the following code from @@ -43,7 +32,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="sa_tdc", force_register=True ) diff --git a/docs/poli-docs/using_poli/objective_repository/template.md b/docs/poli-docs/using_poli/objective_repository/template.md index f792a0c9..9a280570 100644 --- a/docs/poli-docs/using_poli/objective_repository/template.md +++ b/docs/poli-docs/using_poli/objective_repository/template.md @@ -25,7 +25,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="problem_name") +f, x0, y0 = objective_factory.create(name="problem_name") # Example input: x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. diff --git a/docs/poli-docs/using_poli/objective_repository/toy_continuous_problems.md b/docs/poli-docs/using_poli/objective_repository/toy_continuous_problems.md index f2aec6f3..c371ae0e 100644 --- a/docs/poli-docs/using_poli/objective_repository/toy_continuous_problems.md +++ b/docs/poli-docs/using_poli/objective_repository/toy_continuous_problems.md @@ -46,7 +46,7 @@ function_name = "ackley_function_01" n_dimensions = 2 # it's 2 by default. # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="toy_continuous_problem", function_name=function_name, n_dimensions=n_dimensions, # For some, this can be arbitrary. @@ -65,7 +65,7 @@ print(f(x)) # Should be [[0.0]] in this example Some optimization algorithms (like [LineBO](https://arxiv.org/abs/1902.03229) or [SAASBO](https://proceedings.mlr.press/v161/eriksson21a.html)) rely on the assumption that there is a _low intrinsic dimensionality_ to the problem. Roughly speaking, this means that only a subset of the variables are actually relevant to the problem in question. This `poli` objective allows you to create such problems. For example, consider `camelback_2d` (which is usually only defined in two dimensions). You can embed this function into, say, 30 dimensions by creating the objective as follows: ```python -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="toy_continuous_problem", function_name="camelback_2d", embed_in=30, # This will create a function that takes 30d input values diff --git a/docs/poli-docs/using_poli/objective_repository/white_noise.md b/docs/poli-docs/using_poli/objective_repository/white_noise.md index a9198eb8..e8245b6d 100644 --- a/docs/poli-docs/using_poli/objective_repository/white_noise.md +++ b/docs/poli-docs/using_poli/objective_repository/white_noise.md @@ -20,7 +20,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="white_noise") +f, x0, y0 = objective_factory.create(name="white_noise") # Example input: x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. diff --git a/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb b/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb index 3d633361..16982d55 100644 --- a/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb +++ b/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb @@ -249,7 +249,7 @@ "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, run_info = objective_factory.create(\n", + "f, x0, y0 = objective_factory.create(\n", " name=\"foldx_stability\",\n", " caller_info=None,\n", " observer=None,\n", diff --git a/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb b/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb index a0badd16..69b91785 100644 --- a/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb +++ b/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb @@ -318,7 +318,7 @@ "observer = SimpleObserver()\n", "\n", "# We instantiate the objective function\n", - "problem_info, f, x0, y0, _ = objective_factory.create(\n", + "f, x0, y0 = objective_factory.create(\n", " name=\"aloha\",\n", " observer=observer,\n", ")" diff --git a/docs/poli-docs/using_poli/the_basics/intro_to_poli.ipynb b/docs/poli-docs/using_poli/the_basics/intro_to_poli.ipynb index b044d5da..1aff5cb7 100644 --- a/docs/poli-docs/using_poli/the_basics/intro_to_poli.ipynb +++ b/docs/poli-docs/using_poli/the_basics/intro_to_poli.ipynb @@ -128,7 +128,7 @@ "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, _ = objective_factory.create(name=\"white_noise\")" + "f, x0, y0 = objective_factory.create(name=\"white_noise\")" ] }, { diff --git a/docs/poli-docs/using_poli/the_basics/isolation.ipynb b/docs/poli-docs/using_poli/the_basics/isolation.ipynb index b9ad64f2..c7366580 100644 --- a/docs/poli-docs/using_poli/the_basics/isolation.ipynb +++ b/docs/poli-docs/using_poli/the_basics/isolation.ipynb @@ -1 +1 @@ -{"cells":[{"cell_type":"markdown","metadata":{},"source":["# Isolating black box objective functions"]},{"cell_type":"markdown","metadata":{"vscode":{"languageId":"plaintext"}},"source":["Each black-box objective function in `poli` lives inside a `conda` environment. For example:\n","- the `foldx` stability objective lives inside `poli__protein`, which has `biopython`, `pdb-tools` and other libraries that are required to interface well with proteins and their representations.\n","- the `dockstring` objective lives inside `poli__dockstring`, which includes babel as part of its installation.\n","\n","There are two ways of running objective functions: **having the right dependencies**, or **in isolation**."]},{"cell_type":"markdown","metadata":{},"source":["## Running objective functions in isolation"]},{"cell_type":"markdown","metadata":{},"source":["Let's say that your current environment doesn't have the package `dockstring` installed. You can still run the objective function:"]},{"cell_type":"code","execution_count":3,"metadata":{},"outputs":[],"source":["# No output: we don't have it installed.\n","!pip freeze | grep dockstring"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: creating an isolated black box function.\n","poli 🧪: starting the isolated objective process.\n"]},{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]}],"source":["from poli import create\n","\n","problem_info, f, x0, y0, _ = create(\n"," name=\"dockstring\",\n"," target_name=\"drd2\" # The target protein.\n",")"]},{"cell_type":"markdown","metadata":{},"source":["As you can see, `poli` warns us that it is creating the conda environment associated with the black box function, and it is creating an isolated process where the objective can be run.\n","\n","This can be verified by checking the type of `f`:"]},{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=0)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["This black box is an `ExternalBlackBox`, meaning that it is listening to an isolated process running `python` inside the `poli__dockstring` environment."]},{"cell_type":"markdown","metadata":{},"source":["We can still evaluate `f` like normal:"]},{"cell_type":"code","execution_count":10,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]},{"data":{"text/plain":["array([[11.9]])"]},"execution_count":10,"metadata":{},"output_type":"execute_result"}],"source":["f(x0)"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["## When you have the right dependencies..."]},{"cell_type":"markdown","metadata":{},"source":["However, when you have the right dependencies, the `create` method returns the actual objective function. Let's use for example `rdkit_logp`:"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: Creating the objective from the repository.\n"]}],"source":["problem_info, f_logp, x0_logp, y0_logp, _ = create(\n"," name=\"rdkit_logp\"\n",")"]},{"cell_type":"markdown","metadata":{},"source":["Now, if we print `f_logp`, we can see that the create method returned the actual objective black box."]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["LogPBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f_logp)"]},{"cell_type":"markdown","metadata":{},"source":["## Conclusions"]},{"cell_type":"markdown","metadata":{},"source":["- `poli` is able to instantiate objective functions inside isolated environments.\n","- If the dependencies are met, the objective function is created directly instead."]},{"cell_type":"markdown","metadata":{},"source":["## Read more"]},{"cell_type":"markdown","metadata":{},"source":["You can check the individual dependencies of each black box inside their implementation, or in [their documentation](../objective_repository/all_objectives.md)."]}],"metadata":{"kernelspec":{"display_name":"poli-docs","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.18"}},"nbformat":4,"nbformat_minor":2} +{"cells":[{"cell_type":"markdown","metadata":{},"source":["# Isolating black box objective functions"]},{"cell_type":"markdown","metadata":{"vscode":{"languageId":"plaintext"}},"source":["Each black-box objective function in `poli` lives inside a `conda` environment. For example:\n","- the `foldx` stability objective lives inside `poli__protein`, which has `biopython`, `pdb-tools` and other libraries that are required to interface well with proteins and their representations.\n","- the `dockstring` objective lives inside `poli__dockstring`, which includes babel as part of its installation.\n","\n","There are two ways of running objective functions: **having the right dependencies**, or **in isolation**."]},{"cell_type":"markdown","metadata":{},"source":["## Running objective functions in isolation"]},{"cell_type":"markdown","metadata":{},"source":["Let's say that your current environment doesn't have the package `dockstring` installed. You can still run the objective function:"]},{"cell_type":"code","execution_count":3,"metadata":{},"outputs":[],"source":["# No output: we don't have it installed.\n","!pip freeze | grep dockstring"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: creating an isolated black box function.\n","poli 🧪: starting the isolated objective process.\n"]},{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]}],"source":["from poli import create\n","\n","f, x0, y0 = create(\n"," name=\"dockstring\",\n"," target_name=\"drd2\" # The target protein.\n",")"]},{"cell_type":"markdown","metadata":{},"source":["As you can see, `poli` warns us that it is creating the conda environment associated with the black box function, and it is creating an isolated process where the objective can be run.\n","\n","This can be verified by checking the type of `f`:"]},{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=0)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["This black box is an `ExternalBlackBox`, meaning that it is listening to an isolated process running `python` inside the `poli__dockstring` environment."]},{"cell_type":"markdown","metadata":{},"source":["We can still evaluate `f` like normal:"]},{"cell_type":"code","execution_count":10,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]},{"data":{"text/plain":["array([[11.9]])"]},"execution_count":10,"metadata":{},"output_type":"execute_result"}],"source":["f(x0)"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["## When you have the right dependencies..."]},{"cell_type":"markdown","metadata":{},"source":["However, when you have the right dependencies, the `create` method returns the actual objective function. Let's use for example `rdkit_logp`:"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: Creating the objective from the repository.\n"]}],"source":["f_logp, x0_logp, y0_logp = create(\n"," name=\"rdkit_logp\"\n",")"]},{"cell_type":"markdown","metadata":{},"source":["Now, if we print `f_logp`, we can see that the create method returned the actual objective black box."]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["LogPBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f_logp)"]},{"cell_type":"markdown","metadata":{},"source":["## Conclusions"]},{"cell_type":"markdown","metadata":{},"source":["- `poli` is able to instantiate objective functions inside isolated environments.\n","- If the dependencies are met, the objective function is created directly instead."]},{"cell_type":"markdown","metadata":{},"source":["## Read more"]},{"cell_type":"markdown","metadata":{},"source":["You can check the individual dependencies of each black box inside their implementation, or in [their documentation](../objective_repository/all_objectives.md)."]}],"metadata":{"kernelspec":{"display_name":"poli-docs","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.18"}},"nbformat":4,"nbformat_minor":2} diff --git a/docs/poli-docs/using_poli/the_basics/optimizing_an_objective_function.md b/docs/poli-docs/using_poli/the_basics/optimizing_an_objective_function.md index 07c4fa33..f1c71b45 100644 --- a/docs/poli-docs/using_poli/the_basics/optimizing_an_objective_function.md +++ b/docs/poli-docs/using_poli/the_basics/optimizing_an_objective_function.md @@ -49,7 +49,7 @@ if __name__ == "__main__": assert "our_aloha" in get_problems() # Creating an instance of the problem - problem_info, f, x0, y0, run_info = objective_factory.create( + f, x0, y0 = objective_factory.create( name="our_aloha", caller_info=None, observer=None ) diff --git a/docs/poli-docs/using_poli/the_basics/registering_an_objective_function.md b/docs/poli-docs/using_poli/the_basics/registering_an_objective_function.md index 3177730b..bff6c506 100644 --- a/docs/poli-docs/using_poli/the_basics/registering_an_objective_function.md +++ b/docs/poli-docs/using_poli/the_basics/registering_an_objective_function.md @@ -205,7 +205,7 @@ from poli import objective_factory if __name__ == "__main__": # Creating an instance of the problem - problem_info, f, x0, y0, run_info = objective_factory.create( + f, x0, y0 = objective_factory.create( name="our_aloha", caller_info=None, observer=None ) print(x0, y0) diff --git a/docs/poli-docs/using_poli_baselines/bayesian_optimization.md b/docs/poli-docs/using_poli_baselines/bayesian_optimization.md index c6c07c30..530a3686 100644 --- a/docs/poli-docs/using_poli_baselines/bayesian_optimization.md +++ b/docs/poli-docs/using_poli_baselines/bayesian_optimization.md @@ -17,7 +17,7 @@ from poli import objective_factory from poli_baselines.solvers import VanillaBayesianOptimization -problem_info, f_ackley, _, _, _ = objective_factory.create( +f_ackley, _, _ = objective_factory.create( name="toy_continuous_problem", function_name="ackley_function_01", n_dimensions=2, diff --git a/docs/poli-docs/using_poli_baselines/line_bayesian_optimization.md b/docs/poli-docs/using_poli_baselines/line_bayesian_optimization.md index 7f11ba72..cfa886cd 100644 --- a/docs/poli-docs/using_poli_baselines/line_bayesian_optimization.md +++ b/docs/poli-docs/using_poli_baselines/line_bayesian_optimization.md @@ -17,7 +17,7 @@ from poli import objective_factory from poli_baselines.solvers import LineBO -problem_info, f_ackley, _, _, _ = objective_factory.create( +f_ackley, _, _ = objective_factory.create( name="toy_continuous_problem", function_name="ackley_function_01", n_dimensions=2, From 7af671de306ede1321c2dcc8924895b1b51ee5d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Gonz=C3=A1lez=20Duque?= Date: Wed, 7 Feb 2024 17:08:33 -0500 Subject: [PATCH 2/4] Re-builds with the changes --- ...bstract_black_box.AbstractBlackBox.doctree | Bin 57480 -> 59213 bytes ...bstract_black_box.NegativeBlackBox.doctree | Bin 21207 -> 21141 bytes .../poli.core.abstract_black_box.doctree | Bin 7070 -> 6962 bytes ...lem_factory.AbstractProblemFactory.doctree | Bin 12235 -> 12127 bytes ...problem_factory.MetaProblemFactory.doctree | Bin 9610 -> 9502 bytes ...poli.core.abstract_problem_factory.doctree | Bin 6969 -> 6861 bytes .../_autosummary/poli.core.chemistry.doctree | Bin 6192 -> 6084 bytes ...hemistry.tdc_black_box.TDCBlackBox.doctree | Bin 49182 -> 49038 bytes .../poli.core.chemistry.tdc_black_box.doctree | Bin 8737 -> 8629 bytes .../.doctrees/_autosummary/poli.core.doctree | Bin 16256 -> 16148 bytes ...xceptions.BudgetExhaustedException.doctree | Bin 4324 -> 4252 bytes ...poli.core.exceptions.PoliException.doctree | Bin 4214 -> 4142 bytes .../_autosummary/poli.core.exceptions.doctree | Bin 6537 -> 6429 bytes ...e_black_box.MultiObjectiveBlackBox.doctree | Bin 34609 -> 34465 bytes ...oli.core.multi_objective_black_box.doctree | Bin 6305 -> 6197 bytes ...nformation.ProblemSetupInformation.doctree | Bin 29788 -> 29680 bytes ...oli.core.problem_setup_information.doctree | Bin 5760 -> 5652 bytes .../_autosummary/poli.core.proteins.doctree | Bin 6149 -> 6041 bytes ...eins.foldx_black_box.FoldxBlackBox.doctree | Bin 91496 -> 91352 bytes ...poli.core.proteins.foldx_black_box.doctree | Bin 7431 -> 7323 bytes ...egistry.delete_observer_run_script.doctree | Bin 9345 -> 9273 bytes .../poli.core.registry.delete_problem.doctree | Bin 6201 -> 6129 bytes .../_autosummary/poli.core.registry.doctree | Bin 14248 -> 14140 bytes ...ore.registry.get_problem_factories.doctree | Bin 7407 -> 7335 bytes .../poli.core.registry.get_problems.doctree | Bin 9234 -> 9162 bytes ...oli.core.registry.register_problem.doctree | Bin 18454 -> 18382 bytes ...y.register_problem_from_repository.doctree | Bin 9542 -> 9470 bytes .../poli.core.registry.set_observer.doctree | Bin 15991 -> 15919 bytes ...e.registry.set_observer_run_script.doctree | Bin 9887 -> 9815 bytes ...abstract_observer.AbstractObserver.doctree | Bin 18314 -> 18206 bytes .../poli.core.util.abstract_observer.doctree | Bin 5617 -> 5509 bytes .../poli.core.util.alignment.doctree | Bin 5927 -> 5855 bytes ...oli.core.util.alignment.is_aligned.doctree | Bin 5973 -> 5865 bytes ...ore.util.batch.batch_input.batched.doctree | Bin 10210 -> 10138 bytes .../poli.core.util.batch.batch_input.doctree | Bin 5642 -> 5534 bytes .../_autosummary/poli.core.util.batch.doctree | Bin 6061 -> 5953 bytes .../poli.core.util.chemistry.doctree | Bin 6353 -> 6245 bytes ....util.chemistry.string_to_molecule.doctree | Bin 11966 -> 11858 bytes ...g_to_molecule.selfies_to_molecules.doctree | Bin 9485 -> 9413 bytes ...ng_to_molecule.smiles_to_molecules.doctree | Bin 10103 -> 10031 bytes ...g_to_molecule.strings_to_molecules.doctree | Bin 10647 -> 10575 bytes ...lecule.translate_selfies_to_smiles.doctree | Bin 13290 -> 13218 bytes ...lecule.translate_smiles_to_selfies.doctree | Bin 13101 -> 13029 bytes .../_autosummary/poli.core.util.doctree | Bin 18302 -> 18194 bytes ...external_observer.ExternalObserver.doctree | Bin 27091 -> 26947 bytes .../poli.core.util.external_observer.doctree | Bin 5814 -> 5706 bytes .../_autosummary/poli.core.util.files.doctree | Bin 7612 -> 7504 bytes ...l.files.download_files_from_github.doctree | Bin 8747 -> 8639 bytes ...wnload_file_from_github_repository.doctree | Bin 23796 -> 27280 bytes ..._files_from_github.get_sha_for_tag.doctree | Bin 11068 -> 10996 bytes ...ntegrity.compute_md5_from_filepath.doctree | Bin 11654 -> 11582 bytes .../poli.core.util.files.integrity.doctree | Bin 6350 -> 6242 bytes ...e.util.inter_process_communication.doctree | Bin 6808 -> 6700 bytes ...ion.process_wrapper.ProcessWrapper.doctree | Bin 18860 -> 18752 bytes ...cess_communication.process_wrapper.doctree | Bin 8118 -> 8010 bytes ...ion.process_wrapper.get_connection.doctree | Bin 11595 -> 11523 bytes ...oli.core.util.objective_management.doctree | Bin 6661 -> 6553 bytes ...jective_management.make_run_script.doctree | Bin 7625 -> 7517 bytes ...ke_run_script.make_observer_script.doctree | Bin 17745 -> 17673 bytes ...nt.make_run_script.make_run_script.doctree | Bin 18133 -> 18061 bytes .../poli.core.util.observer_wrapper.doctree | Bin 5760 -> 5652 bytes ...ver_wrapper.start_observer_process.doctree | Bin 10114 -> 10042 bytes .../poli.core.util.proteins.defaults.doctree | Bin 6428 -> 6320 bytes .../poli.core.util.proteins.doctree | Bin 10212 -> 10104 bytes ...util.proteins.foldx.FoldxInterface.doctree | Bin 48848 -> 48704 bytes .../poli.core.util.proteins.foldx.doctree | Bin 9833 -> 9725 bytes .../poli.core.util.proteins.mutations.doctree | Bin 11627 -> 11519 bytes ...ns.mutations.edits_between_strings.doctree | Bin 15935 -> 15863 bytes ...losest_wildtype_pdb_file_to_mutant.doctree | Bin 16910 -> 16838 bytes ..._from_wildtype_residues_and_mutant.doctree | Bin 14956 -> 14884 bytes ...oli.core.util.proteins.pdb_parsing.doctree | Bin 8785 -> 8677 bytes ...rsing.parse_pdb_as_residue_strings.doctree | Bin 13113 -> 13041 bytes ....pdb_parsing.parse_pdb_as_residues.doctree | Bin 13374 -> 13302 bytes ...pdb_parsing.parse_pdb_as_structure.doctree | Bin 13060 -> 12988 bytes .../poli.core.util.seeding.doctree | Bin 6095 -> 5987 bytes .../poli.core.util.seeding.seeding.doctree | Bin 9293 -> 9185 bytes ...re.util.seeding.seeding.seed_numpy.doctree | Bin 7787 -> 7715 bytes ...e.util.seeding.seeding.seed_python.doctree | Bin 7810 -> 7738 bytes .../.doctrees/_autosummary/poli.doctree | Bin 11190 -> 11082 bytes .../_autosummary/poli.objective.doctree | Bin 7993 -> 7885 bytes ....objective.dynamically_instantiate.doctree | Bin 7820 -> 7748 bytes ...oli.objective.parse_factory_kwargs.doctree | Bin 7811 -> 7739 bytes .../_autosummary/poli.objective.run.doctree | Bin 10939 -> 10867 bytes ...objective_factory.ExternalBlackBox.doctree | Bin 18137 -> 17993 bytes .../poli.objective_factory.create.doctree | Bin 40807 -> 39366 bytes .../poli.objective_factory.doctree | Bin 10470 -> 10392 bytes ...poli.objective_factory.load_config.doctree | Bin 5387 -> 5315 bytes .../poli.objective_factory.start.doctree | Bin 26264 -> 26192 bytes .../poli.objective_repository.aloha.doctree | Bin 6321 -> 6213 bytes ...itory.aloha.register.AlohaBlackBox.doctree | Bin 41920 -> 41776 bytes ...aloha.register.AlohaProblemFactory.doctree | Bin 13371 -> 13263 bytes ...bjective_repository.aloha.register.doctree | Bin 8036 -> 7928 bytes ...li.objective_repository.dockstring.doctree | Bin 6468 -> 6360 bytes ...string.register.DockstringBlackBox.doctree | Bin 53111 -> 52967 bytes ....register.DockstringProblemFactory.doctree | Bin 15769 -> 15661 bytes ...ive_repository.dockstring.register.doctree | Bin 10005 -> 9897 bytes .../poli.objective_repository.doctree | Bin 29082 -> 28974 bytes ....objective_repository.drd3_docking.doctree | Bin 19432 -> 19324 bytes ...drd3_docking.register.DRD3BlackBox.doctree | Bin 48158 -> 48014 bytes ...ocking.register.DRD3ProblemFactory.doctree | Bin 12544 -> 12436 bytes ...e_repository.drd3_docking.register.doctree | Bin 8859 -> 8751 bytes ...jective_repository.foldx_rfp_lambo.doctree | Bin 7841 -> 7733 bytes ...ry.foldx_rfp_lambo.register.Config.doctree | Bin 4703 -> 4667 bytes ...oldx_rfp_lambo.register.RFPWrapper.doctree | Bin 32347 -> 32317 bytes ...p_lambo.register.RFPWrapperFactory.doctree | Bin 10616 -> 10544 bytes ...epository.foldx_rfp_lambo.register.doctree | Bin 10490 -> 10382 bytes ...oldx_rfp_lambo.register.get_config.doctree | Bin 5060 -> 4988 bytes ...li.objective_repository.foldx_sasa.doctree | Bin 6582 -> 6474 bytes ...dx_sasa.register.FoldXSASABlackBox.doctree | Bin 77108 -> 76964 bytes ...a.register.FoldXSASAProblemFactory.doctree | Bin 12538 -> 12430 bytes ...ive_repository.foldx_sasa.register.doctree | Bin 10390 -> 10282 bytes ...jective_repository.foldx_stability.doctree | Bin 6735 -> 6627 bytes ...ty.register.FoldXStabilityBlackBox.doctree | Bin 83066 -> 82922 bytes ...ister.FoldXStabilityProblemFactory.doctree | Bin 11035 -> 10963 bytes ...epository.foldx_stability.register.doctree | Bin 10180 -> 10072 bytes ...epository.foldx_stability_and_sasa.doctree | Bin 7026 -> 6918 bytes ...ster.FoldXStabilityAndSASABlackBox.doctree | Bin 78142 -> 77998 bytes ...oldXStabilityAndSASAProblemFactory.doctree | Bin 13430 -> 13322 bytes ....foldx_stability_and_sasa.register.doctree | Bin 10896 -> 10788 bytes ...act_vae_wrapper.AbstractVAEWrapper.doctree | Bin 19914 -> 19842 bytes ...tory.gfp_cbas.abstract_vae_wrapper.doctree | Bin 6329 -> 6221 bytes ...rocessing.convert_aas_to_idx_array.doctree | Bin 5321 -> 5249 bytes ...rocessing.convert_idx_array_to_aas.doctree | Bin 5329 -> 5257 bytes ...sing.convert_mutations_to_sequence.doctree | Bin 5481 -> 5409 bytes ...p_cbas.cbas_alphabet_preprocessing.doctree | Bin 26855 -> 26783 bytes ..._alphabet_preprocessing.get_argmax.doctree | Bin 5134 -> 5062 bytes ...eprocessing.get_balaji_predictions.doctree | Bin 5627 -> 5555 bytes ...preprocessing.get_experimental_X_y.doctree | Bin 7075 -> 7003 bytes ...habet_preprocessing.get_gfp_X_y_aa.doctree | Bin 9166 -> 9094 bytes ...bet_preprocessing.get_gfp_base_seq.doctree | Bin 4775 -> 4703 bytes ...alphabet_preprocessing.get_samples.doctree | Bin 5089 -> 5017 bytes ...et_preprocessing.one_hot_encode_aa.doctree | Bin 5492 -> 5420 bytes ...processing.one_hot_encode_aa_array.doctree | Bin 6098 -> 6026 bytes ...t_preprocessing.one_hot_encode_dna.doctree | Bin 5973 -> 5901 bytes ...habet_preprocessing.partition_data.doctree | Bin 6974 -> 6902 bytes ...phabet_preprocessing.read_gfp_data.doctree | Bin 5723 -> 5651 bytes ...p_cbas.cbas_wrapper.CBASVAEWrapper.doctree | Bin 21551 -> 21479 bytes ...s_wrapper.ConvertedTorchVaeDecoder.doctree | Bin 12873 -> 12765 bytes ...s_wrapper.ConvertedTorchVaeEncoder.doctree | Bin 12419 -> 12347 bytes ...e_repository.gfp_cbas.cbas_wrapper.doctree | Bin 8829 -> 8721 bytes ...poli.objective_repository.gfp_cbas.doctree | Bin 12881 -> 12809 bytes ...jective_repository.gfp_cbas.gfp_gp.doctree | Bin 5900 -> 5792 bytes ...pository.gfp_cbas.make_vae.BaseVAE.doctree | Bin 20147 -> 20039 bytes ...sitory.gfp_cbas.make_vae.SimpleVAE.doctree | Bin 24930 -> 24822 bytes ...sitory.gfp_cbas.make_vae.build_vae.doctree | Bin 6385 -> 6313 bytes ...ctive_repository.gfp_cbas.make_vae.doctree | Bin 11844 -> 11772 bytes ...ry.gfp_cbas.make_vae.identity_loss.doctree | Bin 4820 -> 4748 bytes ...ae.summed_categorical_crossentropy.doctree | Bin 5113 -> 5041 bytes ....gfp_cbas.register.GFPCBasBlackBox.doctree | Bin 38024 -> 37994 bytes ...bas.register.GFPCBasProblemFactory.doctree | Bin 13731 -> 13659 bytes ...ctive_repository.gfp_cbas.register.doctree | Bin 6473 -> 6401 bytes ...li.objective_repository.gfp_select.doctree | Bin 5954 -> 5882 bytes ...ry.gfp_select.register.GFPBlackBox.doctree | Bin 34774 -> 34744 bytes ...egister.GFPSelectionProblemFactory.doctree | Bin 11000 -> 10928 bytes ...ive_repository.gfp_select.register.doctree | Bin 6518 -> 6446 bytes ...ve_repository.penalized_logp_lambo.doctree | Bin 8589 -> 8481 bytes ...egister.PenalizedLogPLamboBlackBox.doctree | Bin 31792 -> 31648 bytes ...r.PenalizedLogPLamboProblemFactory.doctree | Bin 11271 -> 11199 bytes ...tory.penalized_logp_lambo.register.doctree | Bin 9460 -> 9352 bytes .../poli.objective_repository.rasp.doctree | Bin 6125 -> 6053 bytes ...objective_repository.rasp.register.doctree | Bin 9094 -> 8986 bytes ...li.objective_repository.rdkit_logp.doctree | Bin 6497 -> 6389 bytes ...y.rdkit_logp.register.LogPBlackBox.doctree | Bin 49142 -> 48998 bytes ...t_logp.register.LogPProblemFactory.doctree | Bin 10422 -> 10350 bytes ...ive_repository.rdkit_logp.register.doctree | Bin 9829 -> 9721 bytes ...oli.objective_repository.rdkit_qed.doctree | Bin 6542 -> 6434 bytes ...ory.rdkit_qed.register.QEDBlackBox.doctree | Bin 54679 -> 54535 bytes ...kit_qed.register.QEDProblemFactory.doctree | Bin 13600 -> 13492 bytes ...tive_repository.rdkit_qed.register.doctree | Bin 10112 -> 10004 bytes ...itory.rfp_foldx_stability_and_sasa.doctree | Bin 7245 -> 7137 bytes ..._foldx_stability_and_sasa.register.doctree | Bin 11011 -> 10903 bytes .../poli.objective_repository.sa_tdc.doctree | Bin 6502 -> 6394 bytes ...ository.sa_tdc.register.SABlackBox.doctree | Bin 42598 -> 42454 bytes ...y.sa_tdc.register.SAProblemFactory.doctree | Bin 13029 -> 12921 bytes ...jective_repository.sa_tdc.register.doctree | Bin 8796 -> 8688 bytes ...ective_repository.super_mario_bros.doctree | Bin 8160 -> 8052 bytes ...s.level_utils.add_padding_to_level.doctree | Bin 7046 -> 6974 bytes ...mario_bros.level_utils.clean_level.doctree | Bin 6602 -> 6530 bytes ...itory.super_mario_bros.level_utils.doctree | Bin 16550 -> 16442 bytes ...io_bros.level_utils.level_to_array.doctree | Bin 5770 -> 5698 bytes ...rio_bros.level_utils.level_to_list.doctree | Bin 6591 -> 6519 bytes ..._bros.level_utils.levels_to_onehot.doctree | Bin 7023 -> 6951 bytes ..._bros.level_utils.onehot_to_levels.doctree | Bin 6750 -> 6678 bytes ...os.level_utils.tensor_to_sim_level.doctree | Bin 7935 -> 7863 bytes ..._mario_bros.level_utils.vectorized.doctree | Bin 4600 -> 4564 bytes ...ry.super_mario_bros.model.VAEMario.doctree | Bin 22636 -> 22528 bytes ..._repository.super_mario_bros.model.doctree | Bin 8087 -> 7979 bytes ...ario_bros.model.load_example_model.doctree | Bin 5939 -> 5867 bytes ...lem.definitions.ackley_function_01.doctree | Bin 5483 -> 5447 bytes ...uous_problem.definitions.alpine_01.doctree | Bin 5372 -> 5336 bytes ...uous_problem.definitions.alpine_02.doctree | Bin 5372 -> 5336 bytes ...ous_problem.definitions.bent_cigar.doctree | Bin 5384 -> 5348 bytes ...ntinuous_problem.definitions.brown.doctree | Bin 5321 -> 5285 bytes ...s_problem.definitions.camelback_2d.doctree | Bin 6355 -> 6283 bytes ...problem.definitions.chung_reynolds.doctree | Bin 5432 -> 5396 bytes ...problem.definitions.cosine_mixture.doctree | Bin 5432 -> 5396 bytes ..._problem.definitions.cross_in_tray.doctree | Bin 6049 -> 5977 bytes ...tinuous_problem.definitions.deb_01.doctree | Bin 5336 -> 5300 bytes ...tinuous_problem.definitions.deb_02.doctree | Bin 5336 -> 5300 bytes ...itions.deflected_corrugated_spring.doctree | Bin 7779 -> 7743 bytes ...toy_continuous_problem.definitions.doctree | Bin 27660 -> 27552 bytes ...ntinuous_problem.definitions.easom.doctree | Bin 5905 -> 5833 bytes ...ous_problem.definitions.egg_holder.doctree | Bin 6009 -> 5937 bytes ...problem.definitions.shifted_sphere.doctree | Bin 5968 -> 5896 bytes ...roblem.definitions.styblinski_tang.doctree | Bin 7453 -> 7381 bytes ..._repository.toy_continuous_problem.doctree | Bin 10111 -> 10003 bytes ...lem.register.ToyContinuousBlackBox.doctree | Bin 62434 -> 62368 bytes ...gister.ToyContinuousProblemFactory.doctree | Bin 11159 -> 11087 bytes ...ry.toy_continuous_problem.register.doctree | Bin 8766 -> 8658 bytes ...nuous_problem.ToyContinuousProblem.doctree | Bin 30190 -> 30079 bytes ...ous_problem.toy_continuous_problem.doctree | Bin 7142 -> 7034 bytes ...i.objective_repository.white_noise.doctree | Bin 6533 -> 6425 bytes ..._noise.register.WhiteNoiseBlackBox.doctree | Bin 39925 -> 39781 bytes ....register.WhiteNoiseProblemFactory.doctree | Bin 10729 -> 10657 bytes ...ve_repository.white_noise.register.doctree | Bin 8046 -> 7938 bytes .../poli.registered_objectives.doctree | Bin 3077 -> 3005 bytes .../poli.tests.docs_examples.doctree | Bin 6289 -> 6217 bytes ..._examples.test_objective_functions.doctree | Bin 9159 -> 9051 bytes ...ctive_functions.test_aloha_example.doctree | Bin 4214 -> 4178 bytes ...ective_functions.test_logp_example.doctree | Bin 4202 -> 4166 bytes ...jective_functions.test_qed_example.doctree | Bin 4190 -> 4154 bytes ...functions.test_white_noise_example.doctree | Bin 4289 -> 4253 bytes .../.doctrees/_autosummary/poli.tests.doctree | Bin 9401 -> 9329 bytes ...li.tests.registry.basic_objectives.doctree | Bin 6055 -> 5983 bytes ...c_objectives.test_basic_objectives.doctree | Bin 6759 -> 6687 bytes ..._objectives.test_registering_aloha.doctree | Bin 4379 -> 4343 bytes ...tives.test_registering_white_noise.doctree | Bin 4454 -> 4418 bytes .../poli.tests.registry.chemistry.doctree | Bin 3819 -> 3747 bytes .../_autosummary/poli.tests.registry.doctree | Bin 11720 -> 11648 bytes .../poli.tests.registry.proteins.doctree | Bin 3808 -> 3736 bytes ...try.test_basic_loop_without_create.doctree | Bin 6223 -> 6115 bytes ...ests.registry.test_force_isolation.doctree | Bin 5817 -> 5709 bytes ...s.registry.toy_continuous_problems.doctree | Bin 6615 -> 6543 bytes ...mbedding_problems_into_higher_dims.doctree | Bin 7508 -> 7400 bytes ...bed_camelback_into_high_dimensions.doctree | Bin 4969 -> 4933 bytes ...tests.test_minimal_working_example.doctree | Bin 5540 -> 5468 bytes ...ample.test_minimal_working_example.doctree | Bin 4635 -> 4563 bytes .../poli.tests.test_seeding.doctree | Bin 5383 -> 5275 bytes ...eeding.test_seeding_in_white_noise.doctree | Bin 3984 -> 3948 bytes .../_autosummary/poli.tests.util.doctree | Bin 3665 -> 3593 bytes .../contributing/a_new_problem.doctree | Bin 34446 -> 34412 bytes .../_build/.doctrees/environment.pickle | Bin 2052465 -> 1404897 bytes .../getting_started/getting_started.doctree | Bin 21391 -> 21343 bytes .../index.doctree | Bin 61869 -> 64891 bytes .../objective_repository/RaSP.doctree | Bin 23576 -> 23504 bytes .../objective_repository/aloha.doctree | Bin 5560 -> 5512 bytes .../objective_repository/dockstring.doctree | Bin 15338 -> 15304 bytes .../objective_repository/drd3_docking.doctree | Bin 19267 -> 19207 bytes .../foldx_rfp_lambo.doctree | Bin 15319 -> 17918 bytes .../objective_repository/foldx_sasa.doctree | Bin 17901 -> 17805 bytes .../foldx_stability.doctree | Bin 17325 -> 17229 bytes .../penalized_logp_lambo.doctree | Bin 14983 -> 14696 bytes .../objective_repository/rdkit_logp.doctree | Bin 9851 -> 9755 bytes .../objective_repository/rdkit_qed.doctree | Bin 10024 -> 9928 bytes .../objective_repository/sa_tdc.doctree | Bin 9979 -> 8531 bytes .../objective_repository/template.doctree | Bin 8314 -> 8260 bytes .../toy_continuous_problems.doctree | Bin 21176 -> 21080 bytes .../objective_repository/white_noise.doctree | Bin 5906 -> 5852 bytes .../optimizing_protein_stability.doctree | Bin 54264 -> 52324 bytes .../the_basics/defining_an_observer.doctree | Bin 41033 -> 39290 bytes .../the_basics/intro_to_poli.doctree | Bin 31423 -> 32030 bytes .../using_poli/the_basics/isolation.doctree | Bin 20721 -> 29604 bytes .../optimizing_an_objective_function.doctree | Bin 19737 -> 19689 bytes .../registering_an_objective_function.doctree | Bin 39932 -> 39884 bytes .../bayesian_optimization.doctree | Bin 11973 -> 11939 bytes .../line_bayesian_optimization.doctree | Bin 7200 -> 7166 bytes .../base.ipynb | 585 ------------------ .../base.ipynb | 20 +- .../base.ipynb | 173 ------ .../base.ipynb | 22 +- .../base.ipynb | 128 ++-- .../base.ipynb | 164 ----- .../poli-docs/_build/.jupyter_cache/global.db | Bin 40960 -> 40960 bytes ...e.abstract_black_box.AbstractBlackBox.html | 13 +- ...e.abstract_black_box.NegativeBlackBox.html | 2 +- ....download_file_from_github_repository.html | 5 +- .../poli.objective_factory.create.html | 6 +- .../_autosummary/poli.objective_factory.html | 2 +- ...y.foldx_rfp_lambo.register.RFPWrapper.html | 2 +- ...ory.gfp_cbas.register.GFPCBasBlackBox.html | 2 +- ...itory.gfp_select.register.GFPBlackBox.html | 2 +- ...roblem.register.ToyContinuousBlackBox.html | 2 +- .../_sources/contributing/a_new_problem.md | 2 +- .../getting_started/getting_started.md | 2 +- .../using_poli/objective_repository/RaSP.md | 8 +- .../using_poli/objective_repository/aloha.md | 2 +- .../objective_repository/dockstring.md | 2 +- .../objective_repository/drd3_docking.md | 4 +- .../objective_repository/foldx_rfp_lambo.md | 13 +- .../objective_repository/foldx_sasa.md | 4 +- .../objective_repository/foldx_stability.md | 4 +- .../penalized_logp_lambo.md | 9 +- .../objective_repository/rdkit_logp.md | 4 +- .../objective_repository/rdkit_qed.md | 4 +- .../using_poli/objective_repository/sa_tdc.md | 17 +- .../objective_repository/template.md | 2 +- .../toy_continuous_problems.md | 4 +- .../objective_repository/white_noise.md | 2 +- .../optimizing_protein_stability.ipynb | 4 +- .../the_basics/defining_an_observer.ipynb | 28 +- .../using_poli/the_basics/intro_to_poli.ipynb | 2 +- .../using_poli/the_basics/isolation.ipynb | 2 +- .../optimizing_an_objective_function.md | 2 +- .../registering_an_objective_function.md | 2 +- .../bayesian_optimization.md | 2 +- .../line_bayesian_optimization.md | 2 +- .../_build/html/_static/logo_protein_opt.png | Bin 31476 -> 0 bytes .../_build/html/_static/sphinx_highlight.js | 154 ----- .../vendor/fontawesome/6.1.2/LICENSE.txt | 165 ----- .../vendor/fontawesome/6.1.2/css/all.min.css | 5 - .../vendor/fontawesome/6.1.2/js/all.min.js | 2 - .../6.1.2/js/all.min.js.LICENSE.txt | 5 - .../6.1.2/webfonts/fa-brands-400.ttf | Bin 181264 -> 0 bytes .../6.1.2/webfonts/fa-brands-400.woff2 | Bin 105112 -> 0 bytes .../6.1.2/webfonts/fa-regular-400.ttf | Bin 60236 -> 0 bytes .../6.1.2/webfonts/fa-regular-400.woff2 | Bin 24028 -> 0 bytes .../6.1.2/webfonts/fa-solid-900.ttf | Bin 389948 -> 0 bytes .../6.1.2/webfonts/fa-solid-900.woff2 | Bin 154840 -> 0 bytes .../6.1.2/webfonts/fa-v4compatibility.ttf | Bin 10084 -> 0 bytes .../6.1.2/webfonts/fa-v4compatibility.woff2 | Bin 4776 -> 0 bytes .../html/contributing/a_new_problem.html | 2 +- docs/poli-docs/_build/html/genindex.html | 4 +- .../html/getting_started/getting_started.html | 2 +- docs/poli-docs/_build/html/objects.inv | Bin 9616 -> 9618 bytes .../optimizing_protein_stability.err.log | 80 ++- .../the_basics/intro_to_poli.err.log | 43 -- .../using_poli/the_basics/isolation.err.log | 90 ++- docs/poli-docs/_build/html/searchindex.js | 2 +- .../01-single-mutation-using-foldx/index.html | 46 +- .../using_poli/objective_repository/RaSP.html | 8 +- .../objective_repository/aloha.html | 2 +- .../objective_repository/dockstring.html | 2 +- .../objective_repository/drd3_docking.html | 4 +- .../objective_repository/foldx_rfp_lambo.html | 10 +- .../objective_repository/foldx_sasa.html | 4 +- .../objective_repository/foldx_stability.html | 4 +- .../penalized_logp_lambo.html | 8 +- .../objective_repository/rdkit_logp.html | 4 +- .../objective_repository/rdkit_qed.html | 4 +- .../objective_repository/sa_tdc.html | 33 +- .../objective_repository/template.html | 2 +- .../toy_continuous_problems.html | 4 +- .../objective_repository/white_noise.html | 2 +- .../optimizing_protein_stability.html | 235 +++---- .../the_basics/defining_an_observer.html | 14 +- .../using_poli/the_basics/intro_to_poli.html | 16 +- .../html/using_poli/the_basics/isolation.html | 71 ++- .../optimizing_an_objective_function.html | 2 +- .../registering_an_objective_function.html | 2 +- .../bayesian_optimization.html | 2 +- .../line_bayesian_optimization.html | 2 +- .../index.ipynb | 188 ++++-- .../optimizing_protein_stability.ipynb | 125 ++-- .../the_basics/defining_an_observer.ipynb | 21 +- .../using_poli/the_basics/intro_to_poli.ipynb | 20 +- .../using_poli/the_basics/isolation.ipynb | 56 +- .../tmp/Average_101m_Repair.fxout | 1 + .../tmp/Dif_101m_Repair.fxout | 1 + .../tmp/PdbList_101m_Repair.fxout | 2 + .../tmp/Raw_101m_Repair.fxout | 2 + .../optimizing_protein_stability.ipynb | 7 +- .../the_basics/defining_an_observer.ipynb | 26 +- .../metadata.json | 1 + .../metadata.json | 1 + .../results.txt | 3 + .../metadata.json | 1 + .../metadata.json | 1 + .../results.txt | 3 + .../metadata.json | 1 + 369 files changed, 894 insertions(+), 1856 deletions(-) delete mode 100644 docs/poli-docs/_build/.jupyter_cache/executed/1d5a85b805354746f26a1e9c3cc2be50/base.ipynb rename docs/poli-docs/_build/.jupyter_cache/executed/{8d4497d872605fedd707c447b2e6c83f => 4158632ea056a4b647992ecd2d975233}/base.ipynb (79%) delete mode 100644 docs/poli-docs/_build/.jupyter_cache/executed/50b666afe771f63e948485e14e8a7941/base.ipynb rename docs/poli-docs/_build/.jupyter_cache/executed/{337c7c885331149f43b36d28321ff9e7 => 77a7224ddb3ccfbecfc8f0fd017624f9}/base.ipynb (89%) delete mode 100644 docs/poli-docs/_build/.jupyter_cache/executed/f2885123d5acde20c7d317555d2324d1/base.ipynb delete mode 100644 docs/poli-docs/_build/html/_static/logo_protein_opt.png delete mode 100644 docs/poli-docs/_build/html/_static/sphinx_highlight.js delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/LICENSE.txt delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/css/all.min.css delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/js/all.min.js delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/js/all.min.js.LICENSE.txt delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.ttf delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2 delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.ttf delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2 delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.ttf delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2 delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-v4compatibility.ttf delete mode 100644 docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-v4compatibility.woff2 delete mode 100644 docs/poli-docs/_build/html/reports/using_poli/the_basics/intro_to_poli.err.log create mode 100644 docs/poli-docs/using_poli/the_basics/results/2f354fa8-4e76-4d19-816b-7e836ef8868b/metadata.json create mode 100644 docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/metadata.json create mode 100644 docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/results.txt create mode 100644 docs/poli-docs/using_poli/the_basics/results/3ecac8e0-bae0-4ff0-acf0-15300557dcd6/metadata.json create mode 100644 docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/metadata.json create mode 100644 docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/results.txt create mode 100644 docs/poli-docs/using_poli/the_basics/results/65f8bdc3-8cd1-48e2-8cd7-effd83c2860c/metadata.json diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.abstract_black_box.AbstractBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.abstract_black_box.AbstractBlackBox.doctree index 6b15bb39a1da3609b884b3da0888291eeeb07652..1b1c1e15fb9e94875979e0c09995dc8e6de6875f 100644 GIT binary patch delta 6397 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 delta 6031 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 MsVFw{uQJ&G07bvMS^xk5 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.abstract_black_box.NegativeBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.abstract_black_box.NegativeBlackBox.doctree index 24baf375b10432d16496e65e9da06bd8dfdccb76..1d493af5c2a356127ceeb167c5a85729fde4d430 100644 GIT binary patch delta 230 zcmcbage=;L$+~(OlOstH}2sIA{ zpR*wGCqEQS-&`!N#K%}Zd75g3TzRTOX>qDTMq*ByLP*KPO5@)Kxpyi yPpaO`j1iOVG%dC9tJIs)I;C++?G%j+)*i5WRYK}BWU}m-Ckv<=Z~m`&LjwRb`%t_9 delta 375 zcmbQbl=1pfMwSNFsb@B_>|}A7ryp9JT2!oGoK<3JZls@>mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrrlOyB> Xpsd;QoRha`2u$u%QQf>(^M(ch>XCde?N|;fpu!gMwV+Vj6IXzGD@@P7Z)XOmSfFkM&eJFV=dTh%gM^YI2Eo2D3&`p MPJny!Kf$xI0I9ARsQ>@~ delta 239 zcmcZ~cRHS>fpzMEjV#w#TsG*37N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H|H=lFdvNlP3RSDcJm#gO$T& MCpFw9CFm*#0MZFps{jB1 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.doctree index 09a1866dbf2ca7aa7ff9c549e204bb16a0876b98..ed12f818e84209dabe3a71310713a0ac16989f21 100644 GIT binary patch delta 70 zcmeD3p6A8Vz&cfUBg+mJ#*WDk8KqhDi;I#sv0h delta 243 zcmbQ|)#c67z&f>lBg+mJmo@sK#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gi{^rcfpw~$^hVahOfEC^LyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3-u|!XHWY> diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.chemistry.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.chemistry.doctree index b1a7e52d355e55377def3b3f595fb830f05ed1f9..bebf634538fdc6141f8a4d209272e894c23df615 100644 GIT binary patch delta 69 zcmdmBa73TAfpzLm@r|thOpFPW6B(sh^oxs+T*b2Q5b0VJ`_{h|w* E04EC;`Tzg` delta 244 zcmX@2zrldDfpw~?#70(sCYKid(BjmhV*TQ*5=(O<{lvV)4$RNaEa!;?G73&w| z=Va=pE~o7=@(R%WaQ@=>sjg-XO^Vu79=KTC#I(sPyQE`uvwZdMumE&eb;)f a@3MvpZrl7XidTs$CINk!vw3>$cSisVS$WC; diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.chemistry.tdc_black_box.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.chemistry.tdc_black_box.doctree index 034285c11ef3c656367a69b7592d48dd03fe80e3..79750b61014b0b1a072f88aec31ba040208de195 100644 GIT binary patch delta 63 zcmZ4JvelWjfpzLC#f_|cnI=1n%CP7c7bQ=g!xA|;p7|$SVDlW7ZfQ6VD4o3doI)@o E0Ke@O!2kdN delta 243 zcmdn$ywHWUfpw~w(ni+3OfJ*)LyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R46myeum&HR&Eh9z&_&Y~er M71K8Vm*2(+00F>RF8}}l diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.doctree index def896b97e360f23da776d5a1e96fdcdc10d1032..b01a0819de4764efd415b1afa3f3816f2f2c4f50 100644 GIT binary patch delta 68 zcmZpupHj!tz&e$4Ba0jpqt9eRK4}*H;-ciq-ONUlXE3ct658C&tYV482P(1ItZy60 F1OT^$6UhJo delta 242 zcmbPI*HF*Wz&f>bBa0l9OM!l9acWVqesNZbrMZ!QVqRi$eqKtVv3_b^S+RaWeom%t zN`7*&k$z5Ql72yDNk)F2v7V)Vab`)XZb4#lc4B&J@#J#1d!&E|UM7Zy}8 KZF9R#FB1Sds#lc& diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.exceptions.BudgetExhaustedException.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.exceptions.BudgetExhaustedException.doctree index b8055c67e2a46252fcf0c4eac2ece2447fe11f82..cd42cd46211b5ab6c3e8ef94d925932af5dfdc06 100644 GIT binary patch delta 93 zcmaE&I7gACfpzM{jVv3O6pHjii&Kk=^^3DgEX|Gd1B&vqQj<%H^$YTIGWCm#k|%Sr S#%vB@E@ULAax*9EZEgVn9w3PT delta 165 zcmbQE_(YMVfpzN5jVv3OT&C%V7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EeCN60_NWxsZ`6rfojRa+@0f DZSFiF diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.exceptions.PoliException.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.exceptions.PoliException.doctree index 0570f89e9e70dc72d6d4f2a036a783a77c6f9b72..5c331246d1c4d44cabf574f3b19440b11645b5e5 100644 GIT binary patch delta 49 wcmeySuug%cfpx0#MwUt@#`MYcjM6On#YM@R4>BEMMB-0A$P~C)f;EmC0FYh}kpKVy delta 165 zcmZ3d@J)fGfpu#3MwUt@mu~&g;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>q$w3n CFFT3= diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.exceptions.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.exceptions.doctree index d03425f9d98e73c36795bb6957660350a7012ec2..4b5f103d758009cd4daa8b029799d03b9024e555 100644 GIT binary patch delta 64 zcmeA)o@>O?z&cfEBTFa~W8~yOZfO?%;-ciqbD6#&bKi=4ZdPFF6h;!;{8oGpBLI6L B6f^(; delta 242 zcmbPh)M?Dpz&f>VBTFcgORauracWVqesNZbrMZ!QVqRi$eqKtVv3_b^S+RaWeom%t zN`7*&k$z5Ql72yDNk)F2v7V)Vab`)XZb4#lc4B&J@#IEv`^h_)wo}V6&&@ZOJB6uY K+U7>_Ig9`kU{^i> diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.doctree index 0ac593306bcd29ca49e0af16e2bb5fd3f861c684..0d715aa3304e404deced236fdca777a5de9ba47b 100644 GIT binary patch delta 92 zcmdnk$F#7QiM4@s>a@0vtaDiz`zGsVNweq|7bQ;)2*}?Y$`&bvE|w^1sLD7USzYz! QK>OVSNMf4<0v?(H0Jni3xc~qF delta 324 zcmZ43%e1kNiM4@ss#^O-*14=MoAg7AQ;UlAi?d2B&5iUE^AeNu^HLIx^;7f8iuDWf zb24>P@{@~=^m8(k^b0CWGV=3`^(^&^GfPr+3lfvF6Vp?RCm-<7-)zVhDMUTfBqa@1 YU3OE)ZPlBf+U*vgifNk<_&+oQ0I)rGjQ{`u diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.multi_objective_black_box.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.multi_objective_black_box.doctree index 9704a72539a3ca27deac3ffb8b34a9299373de8f..4bce6270cf2981b2acf5396de15f2bfb0868d399 100644 GIT binary patch delta 69 zcmZ2zxYdBAfpx0ZMwYWojOCNpF-o)O7Z)W@_GgXVT*N$+5lL*bKWm5}5+A50eY2l< GFe3mBF%_Ty delta 243 zcmdmLu+WgDfpzM%jVx!GTxRQs7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H|H@^o@}!CQbgx6uUWv^}7J| KOuHc#%Lo9WG+E^U diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.doctree index 194b77dad426e086bf9ebe4e9facd018b7678701..65a9ce83940cf00ae10d6aa1563df8f754c3d8df 100644 GIT binary patch delta 72 zcmccfg7L$1M%D(_sZWbHvIem-_D^=qkY>>@E=r!PD_O9ao9&(u;|#diW?e}(0VF<9 LP0i-dnweez##tFX delta 246 zcmezHobk>JM%D(_sevUMS%X+zHtUBLrxq3K7iX1Nnj7gS<|QWQ=cObX>!;?G73&w| z=Va=pE~o7=@(R%WaQ@=>sjg-XO^Vu79=KTC#I(sPv+Jv*!-OJo{-BP>X=ru RIZ?8UpDLzp=GJ`b1pwgTT0Q^( diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.problem_setup_information.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.problem_setup_information.doctree index 14806e29fb313c9f2fed59e3679d60851fb64457..0df06035f7414e9769954a9eb1995b6142960980 100644 GIT binary patch delta 66 zcmZqBoub3iz&e$4Bg-i!#`4MkxTIP1i;I#cvBqxBXZB@8657Pt#E-bBg-i!m)ZKE#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hc$Ttzx8#Nt53(#cmd5RpqCi JY1>6&83C+~SKR;r diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.proteins.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.proteins.doctree index 372b2351ae963e4c60da50d74047f739c1703801..094add0aeb4ced4491b03f14427edb0f102a18af 100644 GIT binary patch delta 65 zcmZoQn5oawz&f>WBa1f^W8CC;MrjuP;-ch9EH0C;Gd)ET*~FqGh{T=5;FpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;?4O?nv7I2X>vZ3%VaxIuFY&L OR|KeL;$}P1XeIz6yjG6@ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.doctree index e5dbe228bf682e8339e531403bd55eac2c9aaf73..e8dcf08f709314b686755132c9641cfb5056be8d 100644 GIT binary patch delta 126 zcmaEHiuJ}xR+a|Vsf-(0wy-faPha55D9xf@T$DW7?|;hX1oi?q48aP&iP?-jC@Kp! q@7?9=f+l!i@+&{ZsTPd6oKp{{Fo3~yK`utc$-Dd&wmxHQN&x`nqAt(? delta 346 zcmca{lJ&(YR+a|VsmvQ$wy?P@*AFdDEh^S8&ML7qH_}hcOH9tsOGz}=Pt7YU)-TA< z$<$5BPcAmn&&f>EFQ_cZ$j>v@v(zunEJ@WZNKDR7OiwMI{BUQ=W*hbbH|m*Y;5RYb uWdjx5w)x@Cy)INS3Fym$$$I|-IHv}tGJwJ4y8nIC8#x&jx0*37N&x`=H-U`+ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.proteins.foldx_black_box.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.proteins.foldx_black_box.doctree index 07a301996f04d46f0436e86d4377733f25e1fa8f..b44f733d9aadd93abab0efa585a92e09962f300a 100644 GIT binary patch delta 68 zcmZp-nr+F_z&drpMwTN?jHQ$NxTRV2i;I#cPhg3joX-3dNoex~mTEC1K2S;O<}K2} Fi~u2n7X<(S delta 239 zcmbPj*>1(sz&iEMMwTN?E;IE*i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#NYua$uy6NggcKVpK6{vIk4* JW)JCLMgXFrRj~j7 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.delete_observer_run_script.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.delete_observer_run_script.doctree index 1b1bc8bbfee0831cd0dc2930a0ea2a2a84cc9dc9..6aaee173681f9bbf88168e4d0f62e9dada48f162 100644 GIT binary patch delta 49 wcmZql-08v6z&cfLBMTQZW5MJzjM6On#YM@JomrzcuVD^mL=xNV%xWhO0DXuK>i_@% delta 165 zcmdn#(dfz2z&f>TBMTR^%M|_4;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>~)@YZ<9x(quj6sLi3QPvii| CemZji diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.delete_problem.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.delete_problem.doctree index 6d82282f3e6ca89649a6a7ae64564effcc1f3797..d964bfec27cfabef514b1c1ed252838f36f8f911 100644 GIT binary patch delta 94 zcmdmK@KK+&fpzLL@r|r6nH5s>LyJ?3iuH@LN-WKd^aG0Wvr>~wiuDWfb29adi;^c_ T;q=&C#UjQ^Q03+;oT+>OX}uyt delta 166 zcmeyUzte!Vfpw~$#75Sa%q|`Jp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hde)v>2&k(&T(5>&f>`xiQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o xDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#haU0Ca_b-BqN?u0RV|XIq(1g diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.get_problems.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.get_problems.doctree index bfbe116c667ab80cf795f51ea5f261df8c470d33..3c5a75bd733fcd694a241947c64f3565dede966c 100644 GIT binary patch delta 50 xcmbQ_amt;wfpzMB<&CWCnHZBM&ta5i(JwAao_vPIXR`~l3nP-)<})mA@&L985PSdt delta 162 zcmX@*KFNc%fpsdo%0|}pOfGHup~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd yx+(d|#YXx$nMwKul_eSZdB%E{`o)f$>~FBWnZe)Whx@S--LK7L! VZ?BR^WII-`&B>~pl>neIBC-Gg delta 168 zcmX@t&p2%YBWnZeRBn%rtY2ANy7WVfQ;UlAi?d2B&5iUE^AeNu^HLIx^;7f8iuDWf zb24>P@{@~=^m8(k^b0CWGV=3`^(^&^GfPr+3lfvF6Vp?RCtp5-$J% delta 166 zcmez8dCZHofpx02>PFTo7MEH2p~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gh$KeKspFe_*7FX`2mL|62e6 Dl{P#8 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.set_observer_run_script.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.registry.set_observer_run_script.doctree index 6c7fabe58d19de2ee8c70d94b24b4f0bbde896db..bd7ef4cc9cc92c0a90641e7ec288cc19ab2b221b 100644 GIT binary patch delta 93 zcmbR5d)Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(tRR S_cIbyHQ9kVeDf?;Rz(0aULgtq delta 165 zcmccaGvAk`fpzMXjVwQyTqf#=7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H^he-p@!ClP1eBhi?vIWmNF delta 249 zcmbQ&$Jo`+$kM<%wSFVZTo#vQ`k}?CMaBBXStXX{M*4|)iOKnSDT&7Vsd;6^`UUwp znYt8Zt=53-~)Q^lmo2U*fKujAm6 Wc3DpacL7aHo~)RBgrbGi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izi4$RNaEaA0^zvGf-(JwAa-ptROz=*`3%+DOVS%B4D08MPN04vvK ICb3{f0HvrFkN^Mx delta 244 zcmaEm!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3-i^gvDU}k2dmTBpmFR|DP MP{p*(`l7oS0ao@_ga7~l diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.batch.batch_input.batched.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.batch.batch_input.batched.doctree index 29bac4aff59c6f1cc0b609204af899139b33f20e..a6ef8c9bd5725cb8f03bbbcd4f1051f0427704d0 100644 GIT binary patch delta 93 zcmaFlKg*w`fpu#CMwVwx3YGey#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(!|< ScQ6uEHCc~2d2=sos1g84oFRh% delta 165 zcmbQ`|Hz-EfpzNjjV#ZYT;}SB7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H{Ta-oZ!}lO}U9CvSFT4OIdF Dw}CrB diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.batch.batch_input.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.batch.batch_input.doctree index e4ec6cdb2a5aee27df0da9900575a3a5480c10fa..d702eed559f580a2e77f54d59cf86eff3ed018a2 100644 GIT binary patch delta 65 zcmeCunWxRtz&dsEMwYEijD?fuGfK1Q7Z)XO{>vo8h|G^=*~*W^pB&4QxOuxsFe3oK Ct`!^r delta 242 zcmbQI-KE3Qz&iE+MwYEiE>rbGi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izmMl4xenme3V*-C2lTb3E`)T LX`5dOZ(#%g{!&=K diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.batch.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.batch.doctree index f0f997c2d873adeeccc7783a96876b084db5aa64..25407bc39352951ecb9b594fbea4209b8a4163ef 100644 GIT binary patch delta 72 zcmZ3he^8I5fpx0cMwU<}#-zzytkNv{#YM@J=Q4dp<$7$EVOb@BCN^1yg==$+Xdn{+ D5R??x delta 242 zcmX@8w^pB}fpzMljVz%|E^Ydu#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gpfWcuYRXw3=Fm1#P~^yg+~| Lrfr@lvX}_~r_oqE diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.doctree index 4460eb24a744e4cf34fef491ab423f1e6f6eb833..00f650f4e2bb148804b546906436338874734684 100644 GIT binary patch delta 63 zcmca;_|$-Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gq3j2TZ=pbdV~BZQjRxN02He N0i6}KSwt+52>@CcSbG2f diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.doctree index a0d482678c4a07d35981f0994e42f94d5ef45faf..b99760c8b21a72ff19e0614ecd9f3cc07cc0cf10 100644 GIT binary patch delta 65 zcmdlNdntycfpx0;MwVYpjO~;E^GUPl7Z)W@W?{|Uyq;N*5lL(_3+oznWd0YOQ;Yxw Ck{3q+ delta 243 zcmcZlbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H^hgu4AN%Nt5N6b2n?U+N)E~ Jw68j`i~upQS9$;d diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.doctree index 645ecbd4cadaf75674fa400e31a7292695ba76ec..c5946cc33fcc8e95d1ca689c668d3321c6a1b783 100644 GIT binary patch delta 90 zcmeD6I_k;Vz&dr8%0^apR)snGp~b01#rnlrC6?w!`T<4xS*gh-#rg&LIhp#!Mai23 OSl@6ER@K1QD+U0pXdr0- delta 166 zcmX@=+3UsHz&e#lbt5Y~tIGlX(BjmhV*TQ*5=(O<{lvV)4$RNaEaM}Zz diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.doctree index 9480f27c7b62eb80d08a2df4dada32874212e772..dc734932961a69bfa5f576be5d35520ad1117fe7 100644 GIT binary patch delta 93 zcmezFx89GXfpx0NMiwzvh1vR{#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(!R? SU3m$rnjFVkzd21Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gpd?)oQb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(y5D SLwE?PnjFpAu(?=BMH~S05FmH} delta 165 zcmX>fG(DK5fpu!nMiyaKmjn8t#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gkVHHf-L`dWD-Rrfps=xI`QP Dhk87; diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.doctree index 37d42b508f1568d4fd8a212c0a13dc4298793f80..eb22c692efdf21f621c5b4dd9b747ae70ebaaa0b 100644 GIT binary patch delta 49 wcmaErz9^lgfpzNijVz(8jEg5LFiErM7Z)XOp38cX4~ai{E^GT{OVN#T0Itgry#N3J delta 164 zcmZ3K{wkfNfpzNrjVz(8F30sli&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izjD^v~Obb;-iXTo3lhLgjSop|^IDMxIRL&m5Rw1@ delta 166 zcmaEwx;Blqfpw~q@kZ8QR+r=Yp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)4uUZQesHosur?SL+(>>AAk032Hu ALjV8( delta 240 zcmbQ#$M~<0k)?rkYVk%Eb0(K6{m|mnqGJ8xtP)FeBmKm@#N_mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrO5uB&w ZvYrZV+stKB%}EuLfWFM%EMljx4FHlQbP@mn diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.external_observer.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.external_observer.doctree index 9011d6f73f11b33673fe5f0dff21902bd419d341..84d79cec5dea7550bac6bb9ba9364fe2f420cd2d 100644 GIT binary patch delta 68 zcmdm{drF6;fpx0=MwYEijD?fuGfK1Q7Z)W@E@TOx9Kw7PNoaE+i?09@AE+d8bFyeK FBLE5%72^N^ delta 239 zcmX@5vrU(!fpzNYjVxQ4T&C)W7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H_`EWWY!rlQda;1*l@uWKEXD J&EG|W839=rRh$3- diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.doctree index a08824a8b54ee3630075cebd93d0dc2831ae5e26..6b9dd012529a40d4eeaee3e9b944fa1bb8f17c76 100644 GIT binary patch delta 68 zcmdmEeZh*Qfpx0uMwU<}#-zy)_@r6%i;I#c|6}%;{FLb`lF;UV%-6+`_&_B=o3o_@ FnE+uu865xs delta 242 zcmca$wa1#JfpzM}jVz%|E^Ydu#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#go@cc}zaYbd_3$1#RYFX%(Z2 LX`9zdEoK4$&OKNF diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.download_files_from_github.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.download_files_from_github.doctree index 3e5d667a74b9a7a989fb1be1f1d52ca12cf0c4f6..687d8b23746be40f799816a8770b13a356fbc602 100644 GIT binary patch delta 74 zcmZ4Ovfr7tfpzK@#f_{Y%#8h$7m7-==oc3yZ;oa5VnpIkj%6<0oWQzO3QcTs0xQ?% I8w$aU0E)#J761SM delta 243 zcmdn*yxN7efpw~a(neMhW|z(Sp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)IOGKM;N1yMA0xu_cCo`t0s` z-uHR#_k7%Y`}t+E^B7^L*vGahhuCW!j#e^j7QDiEA>w$}6BiRwOy4lBPK2d|wn4f# zqUjsdXpkRM)d{|bA5A2)4QwwVhhYt~z!A_Aq3lfUPC|YK#j(Gd<`_< zHG0qB5FYio7SBI}G9%aBnUUwE?Rrob%+J2y_Sej`HN)waG>Gn@?1vtI4Sd?-f#$Yp z*my}jJmk57sIazmA-EgnGf@YSd7WgdabwE3F*CQ5>@cnmwipJfrt8Qa;|AZ?2(IQ4 zX14>5Uf6+)sqITv+tbYgc>`|*^U4pb%I{mRfJK4}dfU1kQ3qmwvds&_?mBp?ZJIDJ zy`%$j=Qo1XzM7ndlf!O^d+Ipl6k5tna{tU|WA>MJKXEQ*=?$d|7YI&2y>O*V`GBW7 z_b?qS^!XkntEmaM%Cuj}0`W%~frXg=B{E^C6jL?M!UesTGAIrOUGSLDOCB)P)28}9 z7JeLdVQlBY(k{Wf4ezGw6VkXAmqL;8NGP*C&BeC_C)IFrLdqzMP!H3KF6PGZkK~wg zKMM`3+sPAj%liD5R0VxYE@Du5@~Uof(CY6%(I2Dif`b8{_eC^U9><^U${zYBb)oFV zpP{7emk%QijD1c|BN>Muu5P0b(zkdDFT`a6XAo*qLUhv>kBE!V{4Nw2+8BzC>CDzl zyUfb9w5}B7({uR<6J_Di%SYhom0esO(g_n1ibFxS<9=KT&kOD3Piy4A+ave=g?9fP z`3W(-jPQXXqgZOKK^jYI&)jvUQFq&Ea)(+ClFvQpy>Wa^;l1 zvPS-eJ#ybS6(i4;Q6fNA77K~03Y2ndy2)IsEEG~hovn~O7uQuPq?|!1XHX(J80p!H zzZOXERu5@#`9@ku2bOovtSmNLf1NRrP?R;>25a1R*yHwz731zli&7QcS+5tG0 z3#69~Nc~kz?$R(%i)T1Iz$1fvDwL2!UE)m>K7ZQbBjda-OI!G`%EwflHx56>S)*N{ zORVHh z>=Lvn);be1_A9)9sm_u{MlbVrx80lfo+`Wrb`8nyq2w4I*OqRU zCFGmnb(KGh1QejLXS2bavJ^Hc7?q`<0`&2!>$+=J4VV)=h_yiLt)9< z(K3#&**W@NugGyfT9mT(Nm$0Lykk{(Gic#MP+BN{9h#uRLTdrtwx!-OtnifI1XBYJ?hYIxc=Wu@IAhhXGp|nu;6;kD?H05Zt}9X9;F{@lOxAdvuBSMJ4obLMf8E>7&cW@it!VXsDwi- zqWS4mn@~5?iN;4_nx068^oSbMc4HF1lH!rrCSi-3ObB8qq^6QFT@YhoAuQ^mph=-*LJCZZF>zDTERG+KYD}D< z_L8OvMsS+P=z3}-3geNOBy38ED8jGXT!YEt*`MKhjstVk>6}kSe3Dmlz~h!+54)mQS@&s(sRf9AE=RZ>MUYC7om1n(@(`z;)iaN@)igC z=5{pIBKl+^l2P8K{UZC7H_g7HSt^XBdF9=;FyCE8^|R)Z4%&Q1VvRlob=bqSvGDuN z9z9&RvLb)D^xM0$u0QRj{5BG+ixd-1C@`-cK`qY delta 2866 zcmb`Je@q)?7{`0pE4}`~Ha0>w0_8``K>CXU1!2&zG3*8e#(*K|h-;zodPCZAFtfxh zkhtg!5#z(=A~NH2Vg88O)|rVY8vinJ%5d2v?vJq;P3BAlF>YC$`n-3&_RhGpCjQgs z?w;q~=lg#8ecyXux<>srL+M6z$8YaFud87g4W-e*oZk#V=51JIiz9yBdTRTkqf-bB z3J!rEs;Vq?_y&Bvp@BYMnIkZ8P;i7p{Xtt_s8=X;^auTp@S!0tG*D)*atOhpfGzCn z-S2xcAiy8?lVH`~qrL&2IU8AJPh`MNQ%fWz*Q$l@j3#I|jR9NK7_pi0!4XRyJX1Id zxzj(JuGV zo9ZFDWG>x0!iDOFE6yA(QNB`LObsfPht$d~LkX34V?~_U3(CQ|VWl#IjslugW=^Wx zn5U9xBLX5b=-P}kD5+|q@do*@Q9gTcOjA;L?pApSp1Nu`bybOHUcxi4!~?YzcKL7p zL9N>IQ$p4AN;tG81xB4#d9-;29Xd^wS_5rctWoc5NJ-=!luf)t)T4JW4A$--LBZy7 z(rhZ+U4+fJyO`c7X^O6?2KdFDNjIe6k}}HPfg{y1INrEs%f5t~8?Ykg8v3BvNnU7D z?%x*L@}6?~ITfjA<6X_ilISXu!buPlHNbmY50e=wKyAbEaOJv~q>OZC+dcwIUtdgr zs)98u!kSgXnsLWqEyQJ8t|yc|tAh2j3YL_67_0{>Soh;y&3`4)RfL6;AhyC#@Ysta zC}@57pJ+Ke9fa0VPX+DLiz^{&EhnsaGHItiX00pDR&dta4bkn?qsRT)BCQ8Yvp&&! zaAHN=TYjlkbSNhr*ePyF#7csglDmWzUChHtbP@5OYT_j)oNEk{DIgtr!?x>_-mty9 zb}&o0mBRy53H`1L&a?<;S`BB`6NB@KLbm1egtDhqa28c?rj>ARtKj^o=wiN;L>Cbb zswUpS@Kt*U2?{!IB~NFnqg|q7F0#{kEU}LKMayQzFFgi%TO!`+X^!D3V-?xrTK+T>IqF@c z4ChcJoJ`=9dk9-Ar zsrcC&(}(>0(4lZ(g8vd<8e{tcLa%&(!Jnz6|70UsfnT+Si-gZL{1L_s1HPvMq)5Os T7Ecl_0+)}+EzCz;K`-?;wIWX1 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.doctree index 31b7ce9370a636bb668e01c9d155b589158c80ae..a674ea2d1d1ea9b4c2ad46c1e66a6848fcfedeed 100644 GIT binary patch delta 50 xcmdlJ_9c|HfpzLjt&Oa8%#8CVb2CY^=oc3yPnKot+#JBt$%rJjS(Z&+6#%v>4_g2L delta 166 zcmewox+jdafpw~(_D0q^W|zbIp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)b%7 delta 165 zcmdlN)fUatz&f>hBg;V+m(}{A#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gnHAWN!{&RpX|LX`81BtdIc! DW;r{@ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.integrity.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.files.integrity.doctree index f1d87c13f1e76232b49432acc8c1de0e15d490e4..fd1dca131207e963501bc8b3402157470e5cb014 100644 GIT binary patch delta 68 zcmX?S_{e~zfpu#5MwWIa#@xw$?9wdy#YM@J6Ip^MD>45@655=|QYnPQ2P%o(TrD2V F2mlHy71#g( delta 247 zcmaE4aL$mWfpzNPjV$dNX3rY6(%r Kw9T>N=a~TM5?8|j diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.doctree index ed8eead539ae1328ae8d39574ca49a81dd60513e..098d4be01c3bceedde0ba73f03e312ca2e6c408b 100644 GIT binary patch delta 71 zcmZ28neo6RMwSNFsiqrQ0$CZiOjcl$X3;M$N}k-qGj+2bn-m-4Ubxui9-eAOBtB5h L(#;?E_E-S`9QGFp delta 244 zcmX>wiE+(jMwSNFsS7u<1hTr^&<`z6Eh^S8&ML7qH_}hcOH9tsOGz}=Pt7YU)-TA< z$<$5BPcAmn&&f>EFQ_cZ$j>v@v(zunEJ@WZNKDR7OiwMIe4lsfW-c}UGO Pmps>~V%X;UyouHTynb3s diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.inter_process_communication.process_wrapper.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.inter_process_communication.process_wrapper.doctree index 612506b9ff50523dfb4f7f46011d63c2eda169d3..689825c377ab22113af7cd49a76cfbede509daa6 100644 GIT binary patch delta 69 zcmdmHf69)ffpx0=MwW19#-)>I3rn-;7Z)XOp3hvuh{T^fpSgSUBi0q-=wgv_v5Wvk C-53l2 delta 242 zcmX?Qx6PiVfpzNYjV$5JE+_Rvi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izoB5c28zwc}W$+HuJL@OHjom NptGiK{w^EL2moidR`CD; diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.doctree index af8a1500026ee6fb31defb8b0caa93e3fbbb8925..6a0b14faa0f5a942dccf9df94534ff043bdc47d6 100644 GIT binary patch delta 94 zcmX>d)f~mzz&iDZ&PLWP%nDodLyJ?3iuH@LN-WKd^aG0Wvr>~wiuDWfb29adi;_40 TWp-pDsA}?G=6RbH*tOLFncpKB delta 166 zcmZpUIvvH@z&h1IcO&Z-W|tfKp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)WBg=6n#)irA+|n%i#YM@R`I%iAk@%DOnbS7^V__0P6Px^xg=_N` H@jxa395oe& delta 242 zcmbPf+-kzoz&iEUMwa7DE=%-7i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izf%Lq)iTFzE2gyHV3d|2vNl( NptA}#dx!@z0RXzYR`&n^ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.objective_management.make_run_script.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.objective_management.make_run_script.doctree index 0cc3ee27a441e4271b1adb5295eeeb0470e7cf50..a8b5233db982bfff062e22c20dad63fab38c828f 100644 GIT binary patch delta 65 zcmX?Ueb045h$Obzo;61dng3q;79#+k C=@fhb delta 245 zcmca>b<&!pfpzM>jV!v%F1z(Zi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#G={w=q)1q{)HIwUcDHHrKH} M6{VVin`B}c0g66Y7XSbN diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.doctree index a80bd65b4a660ac7594c1ad6e37dbf91198fd5ad..f1711517051babc4e66a7313f873da1ac63f9f8b 100644 GIT binary patch delta 96 zcmccE#n{=!$lAa<^`FZ|)~BorYxF~lQ;UlAi?d2B&5iT}it@8klS_*A3-WU^^^1#= VH|w!!N)l8xS&wbPW^DyERRFM-B0m5C delta 168 zcmeC|V!YVJ$lAa<)y;Jy>r+;j3;LnOsYS*5#aShm=0^I7d5OvSc`1p;`l)$k#rg&L zIhndC`N_pb`Z<|N`URCG8Tom}dY1adnI);Z1&PVoiRr1uo4MFDC8=W4WG=P|n;*-o GsR97i@jLwh diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.doctree index f58d471ed2a26555281b69f367a1797d133712ae..8140ec578defc4e73a9d0339544469f7784e79a9 100644 GIT binary patch delta 95 zcmccG%h=n?$kM<%wP_>EYgUEj`k}?CMaBBXStXX{M*0Co`B|ySCB^y$`8k>T#YM@R UjoDU96I3h($ delta 167 zcmeC}WxU$U$kM<%_0&d|*Q_q5^+StOi;DG&vq~(@jr0@q5|i`uQWA~zQ}fD-^$YTI zGIdk(lZ%b?b25|k3o1)8^7D-KEcJ^sOHy?U5|gtN(^HE#^Rum%riw|E`PsTRrz&Zv F001bqJW~Jw diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.observer_wrapper.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.observer_wrapper.doctree index 145737ca3ad011026d7bbc14d07efa8723118fd6..4eb69b57474fa647a5ccca446c95fea3852182f7 100644 GIT binary patch delta 69 zcmZqBoub3iz&e$4Bg=Xw#{9_(xujY2i;I#cpA!k)?8D5>h$bBg=Xwm&y8}#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hWiPB`{LQq+pi!{8TY%axhE$ J=7S=^i~tmTRn-6h diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.observer_wrapper.start_observer_process.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.observer_wrapper.start_observer_process.doctree index 1b8c283c0d52abe141366413a0a379ca416d03ef..42798dd3485e7653fff67ea06401053a3d367206 100644 GIT binary patch delta 93 zcmZqj-{r^Bz&cfbBZ~vGLYsbQacWVqesNZbrMZ!QKv8~HYH~@jenEatrhaiz^5j{p S1)F~`$1xIAxp@}r3q=3}a3SFU delta 165 zcmdnx*W}OAz&f>jBZ~vG%PRfQ;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>{_{=NPGC(&QB8g3X6mD-;1F C**l8> diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.defaults.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.defaults.doctree index 66d91736656f52c55dc0e5bd4a57a46f126a8f5f..4d1702cadb63078d4c2f7b495b1d549d1ba72fc7 100644 GIT binary patch delta 69 zcmbPZw843HuS2Iep=oc3yPmX5^pKQSV8cAq#Jc|+!5+A4}X|uZE GS9SpY1QnV9 delta 243 zcmdmBILC;!fpw~&m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R1@3WQJQVSY_5!;&^vvK-*1 LifNmHPU8Ro-ojQ> diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.doctree index e684a054cf305e34d5378a16b755bcc58b469bf1..1982dcaa1bb5fc3c0cb7d1b937a27fbc77dc444e 100644 GIT binary patch delta 69 zcmaFj|HF@^fpu!`MwS#N#*E1eC8SyOi;I#suVLb5MB-0g!{oQwlVzO(x>%=bG!pQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gosg_)WgXw3k|jMQr9~S)xD{ L(>9-1S;+(dw$NFC diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.foldx.FoldxInterface.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.foldx.FoldxInterface.doctree index 01480006dbbcee7b1797d1d058e9efcc264af9cd..48b5b60e06e933fbf8dc3f4b323e84ebd1cdc6f9 100644 GIT binary patch delta 87 zcmcccm+8PCCYA=)siqrQCb2M9O}?-~nnl03D0yZI&qOgc!_{og T&lBK5;!n=cOW&+jz04T^-k>4? delta 331 zcmX@`hv~v!CYA=)sYf@mOk#1Fryp9JT2!oGoK<3JZls@>mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrBUaFY3SzP!` bl*@AJxGQ?{{v7VjnR%4$RNaEaA0E^{WSO5S3 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.mutations.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.mutations.doctree index 4df37adabd41eb5802dad6991e9cdba5bc3124b9..863bb8d90e2cbde71290106757bcf0e33a545406 100644 GIT binary patch delta 68 zcmaDI^*@refpzK^osFzhnI?ZxkYUj;E=t~fkI8~@va2kFH~Ah@BKSu0FR0p1^@s6 delta 248 zcmew#`8tZVfpuzv?nc(BOfJ*)LyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;Rq6VzOYQib<1qF-309X4$7k QHPa?%vv6%*qaDl$0PFr);{X5v diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.mutations.edits_between_strings.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.mutations.edits_between_strings.doctree index e5a74d62a69ec9a3e6cf806fcf0d4a4c9ba9a82a..da465826eba7e335e280c4c3d5ae182823f5405d 100644 GIT binary patch delta 90 zcmdmA^Szq2fpzK|+l{PF%nF_Qp~b01#rnlrC6?w!`T<4xS*gh-#rg&LIhp#!Mai4H OnR%E9tGdmaVgUg893d?L delta 166 zcmexfy}yRFfpw~h-9}a?W|y`4p~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)TkZssJh0Q<=No+HRESo9-#(WR8 delta 164 zcmX@s%-Gk$$lAauFY(1Nx!GsYS*5#aShm=0^I7d5OvSc`1p;`l)$k#rg&L zIhndC`N_pb`Z<|N`URCG8Tom}dY1adnI);Z1&PVoiRr1un?JB_5TlMs2V~e(0Rxab AS^xk5 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.doctree index 58ff2092d4911547fd62f0ad64120b7f8203bcb5..2c5e5afd7927e5b97919a6bf2806ec41909e85c5 100644 GIT binary patch delta 93 zcmaD;vZREifpx0nMwUse3iI_ti&Kk=^^3DgEX|Gd1B&vqQj<%H^$YTIGWCm#k|%!< SZr&Wr=Fdw|<>n8AXVu2BO3 Dw2M4r diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.pdb_parsing.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.pdb_parsing.doctree index f4ae34a6412849dce6f9a7aaa6f01c65f0e4a0f0..af361956afac055de2c2c03b7856c1ea7e024ced 100644 GIT binary patch delta 66 zcmccU^3<8NfpzLF#f_}Tm>A0^zhjkV(JwAa-ptSJ!-&kE&$2}ti9dNhOZw)23c-v3 D9-0@6 delta 240 zcmaFre9?uqfpw~z(ni)}OfIwaLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;RphX7XXAib<2T71B5FWAT-y MifNm*6?QQK0NIFEdjJ3c diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.doctree index adbd55d9599ddcfc335b9bf94576a04926de03b6..a7d174473c02b11f7f17bc97d9aee445d353672a 100644 GIT binary patch delta 50 xcmdm)_A!;UfpzLLqm8VFtc+78b2CY^=oc3yZ?0m^7DVDtu41j&yik0GGyt@15QP8$ delta 166 zcmeyEx-*Tnfpw~$@kUldR+k<6p~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)tO~vQp~b01#rnlrC6?w!`T<4xS*gh-#rg&LIhp#!Mah#5 T#0xi{W>pjvjOuCf3|8X|B2 delta 165 zcmdm!+LFf7z&iEkMizcnmreSi#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gofLi#9K1-Na87(>9ljy2=6o Dm)$%H diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.doctree index 05f35bbfc7d68bc28eae187b4b01f7acc6849c7f..3dd5dc2f9caca32144f59b27c219375516ee1ef5 100644 GIT binary patch delta 130 zcmX@F|5%Tufpu!cMwWOcg*5%p;?$yI{oQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gjKM`%FI1bdV~BZQj8AMt~|N N0i6}LSx7XH2>>jdSSJ7g diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.seeding.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.seeding.doctree index 7cdecbf6ea33a200831258b8c9dfd7d4116ddebf..d80c23bb23f7af64fc90c0163247a664ed8af49c 100644 GIT binary patch delta 74 zcmX@>@z9;MfpzLN<&CUuOpLjc9eAW!^oxs(DJ!(unvuw0d; MifNk-l{PQ}0Oa*ozW@LL diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.seeding.seed_numpy.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.seeding.seed_numpy.doctree index 521936475e686cd85fd8264099a9dac1e159fc6d..fd0a3f08ce7cf4aca0c4486076bc783a28f78103 100644 GIT binary patch delta 49 wcmaEDv)G2Efpx0HMizG##)`?i7^PYCi;I#s_p>N)A@L{ov&3xn=a=CJ0E$KrB>(^b delta 161 zcmZ2%^V)``fpu!aMizG#mpS^O#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o xDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hbHP6u78k(rUg6egF|yIc5L= diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.seeding.seed_python.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.core.util.seeding.seeding.seed_python.doctree index 250f4bbaae1cd285eaffb3d51407fcf1b59e1436..70f524625b203f2061b92216ed876c9989f1c0a9 100644 GIT binary patch delta 49 wcmZp&-DShlz&cfbBa0skW98(%jM6On#YM@J+4*BPe`dMBi6pj}oxhqN0F4I^r~m)} delta 165 zcmdmG(`3uiz&f>jBa0u4%Uu1?;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>r8@VmF^>xxh&k(>CwttL6s) DN1;3% diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.doctree index 3b98a1f71347de044a9850b829f7be86daeb4d19..9cdc0d793372083da5b6f7fe845cfe1696485b75 100644 GIT binary patch delta 73 zcmdlMekzQmfpx0=Miy2kMyJV*oYE}%#YM@ReVG^;k@%B+nKULxYjSNq!mO=|CcZgZ HGnxqi5Ly(# delta 242 zcmX>Vwk@2cfpzNYjV!E8E@}Fq#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#go05H6{l#-K2_Po4uH0RjFbU N&{;;Ce`*9W0RY9wRt5k7 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective.doctree index 7ab1eab6ebe27bf4cb74573a526d1911a83461ea..5a934fd72d3431965434fcf3b595e65578ae9dcb 100644 GIT binary patch delta 74 zcmdmKch;7*fpzL3xs9x5OpLyhy||=V^oxs4$RNaEa_4w*UYD delta 165 zcmX?N(__ohz&f>YBMTRcOQ(KlacWVqesNZbrMZ!QVqRi$eqKtVv3_b^S+RaWeom%t zN`7*&k$z5Ql72yDNk)F2v7V)Vab`)XZb4#lc4B&J@n$`iEo@XVX|f)R=Vov2pF#l0 Ck2+}p diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective.parse_factory_kwargs.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective.parse_factory_kwargs.doctree index 0eb804cb24d74f4edb5906d91ca1b8b4ba25ad4f..f0076e38ddba44d57271b1313b89990e1accf1a1 100644 GIT binary patch delta 45 qcmZp+-EG6tz&h1nBMT!7W76c+jM6On#YM@RJz37MA@d`-wS)mV2@O^N delta 165 zcmdmO(`?Jqz&f>JBMT#oOPhXZacWVqesNZbrMZ!QVqRi$eqKtVv3_b^S+RaWeom%t zN`7*&k$z5Ql72yDNk)F2v7V)Vab`)XZb4#lc4B&J@nk`6x6RosZERFAZL=V^mM{R0 Cb~!Bo diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective.run.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective.run.doctree index 6e1968462c77fef0a659233c35b246f25082f747..3d9f8f02ac9f2177ca1407858e682022af7d5b39 100644 GIT binary patch delta 49 wcmdlT`Zr)^AC070^oxsbZq1tS*!ELyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3>)xWPQNI7&rMDlZ{Y*QgLcgS!z*yW?p6qkVwm)Y{(+K*@5{w zlR}DqC{VIkzc{PJ(%eWtpeR2pHMyi%zaT#+Q@^+OrZcIn`CNugNO@7_yH#uyg{p5;% zsmbdn%1z$T|8erZNyd|}OeoyEZ)z!{U^G7iLk~wvYH@N&WkKqctmw@y)7LUF_3>~1 uJo6K?S_V)$D-}o-_i*MV=B9!a6;G+1k_D3RE6z}=ouZMIx|w@k3?l$yP{IcQ delta 1107 zcmb_bO-$2Z816pU)|Kc4qYE%(A&On&)?`D>{Fy;LpaLO8R1ys7Mx`rTJJx|AYJwsO z+qxmXH8JtPfeQzSF}*7%F9xG05>JGKCSLrBCr^IuR(>LS^3w0i_df6YJn!?qeWRn# zuaJGp{&aBRrF{e0ZonsW))D8DNj{^qRbSDiS+-x{GYYGS*~qC7%Sl{ZmWH`7%S#gq zo0gM_z_1)wLToY-W7CsaL6*Y72&*Krd?3xmN4XJR(W8!PTlJESAmAGcZI@5m;Qh2+ z|3wB|&XzJMoU98p)|Br<3F)@13C>%Za9FLp>4mzb$bS(9QAel#yz3q5yjP*V)1Ut* zHFJGE)Ns>-+el~RSdvef0y8Ntn~)_R4e|vK>GuT!zH0&xJp&%90t-?UROP0dDN2rE zFDLknndqbCn8?SoJ5xvt0W&$eae!g=U}6{_%@|}ZW@oCi0)@?7nDP82({l6RR$bWW zsE4-vT~u$@M2rS+JA&{fAEju&Z*vN)ZoF1E+Kl!25O2?pbJ-EuJ{ms7S2O&sR6pxBQRU~4ui!oEYFQSDfOZ@H}sX-QN#^n zBPU$>{RAO+#dbHmE_o3?R@JMhs~lU{iVe+m8?pJ~X~!{)4!Pk&@!Zji3}g9eI&L~w zHhq_MNedM;{Sg;Qg78;*6jN?20Pi3z7BHRltk(Wf+wyjwRjs_gTW$#stSqyuE4kbi zK2}vPMPjwaLf{cZJDbpq32mq}DPtMqG5jO=cTJ_qA`9*q3m)9|7P_|)m>*LaCbi=0 zs9_STH$5J=)vn>{Dmlz6@$6)p*Tgk_aef6M;(*?#{itgFh{NJK{wS(T;!?Z;Qt%Fl SMxaL#TJSoE>$>=C(DoY$=!B*K diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_factory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_factory.doctree index 932aaa2a857b770dd51c99b4999addd71219b25f..5d987d980a9cba334f0252a1a57adab4693995ea 100644 GIT binary patch delta 233 zcmaDBI3tjyfpu!{MwUt@#@NY?jM6On#YM@R4>F}NBJn35WOClThGhn$juj&V0~Zh^ z7o{eaq-x|P=BDZ>XhrKN6sM-9=qThT6{i-Jr543!=4F;_&SW!TVoaZ`z-ch~9ET(y zOfm){`2 delta 344 zcmbOc_$-j6fpzNbjVzT+E{*!3#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gi3ToHsvUQe>oxX`2;UZZk3( zPyWj)$CjL!lapGsS%b}li7|e1EQcpdWDAEglYz2EUSe*lj)GRSjzV#2YKo2mM16c_ wURu76f}WmUtmc%~DUDNVr)Xrb_UKR6+?J@32ORXvyy045i9!2kdN diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_factory.load_config.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_factory.load_config.doctree index 58305c8f99380afbb7b5070b9e0f929269cc133d..145381c26887be6cf1b51b613b0195c652e4f578 100644 GIT binary patch delta 94 zcmeCyI;_dsz&dq@$VS#@%nF(Mp~b01#rnlrC6?w!`T<4xS*gh-#rg&LIhp#!Mai4> TSspVHR5e+j#dq^!_6%MCHwPhF delta 166 zcmX@C*{#Lez&e#dbR+9CW|v<5(BjmhV*TQ*5=(O<{lvV)4$RNaEa|1#O D)yp~` diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_factory.start.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_factory.start.doctree index c39830a538ff0ab1de9588dfa3ee075bd87864eb..6d28879111ed6ac85a8c1dcebbe682ddc7b65831 100644 GIT binary patch delta 95 zcmbPnmhr+FMwSNFsjeGYKCvhy>xUMn78UCkXO&o*8|eoWxUMn78UCkXO&o*8|f$JB_`+Rr6d~br{lftb zWa_5mCl?#(=VT`77gUyHlbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EkUGjhk%9yp>vpWo*u4`6oaX L(>C{r?qmW0+=^IX diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.doctree index 1e31c88aea8e3f2973229cd07c45212ea871e08c..ffb92050fa4f196d361c09df828d6d104d7702bf 100644 GIT binary patch delta 99 zcmX?boN2=`CYA=)sj3@UI#?O|CqHDAX3;M$O5S{d^}93@fAR&^;>~qR&RUE!;A((k V1(WkyIXBn&HcDa>-;>T_0{}Y+B{l#6 delta 331 zcmdmRjOoB}CYA=)sarR)bg;T?)(EFQ_cZ$j>v@v(zunEJ@WZNKDR7OiwM|yoU9=G*wKRyoR-Svzd~! dmdhS0xC>}n!Q^`_oSTJw8zrf0qE0%C4FEmadISIf diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.doctree index dd993dc9b09c25fd2706d1c8fc0644c4eb1ab41c..61d78dc80915d121473b60af321bcf15b1a2245c 100644 GIT binary patch delta 70 zcmdm;aXy{3fpzK;m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3}aa3-uXMN8^71K8NaZKTH PIYb?Im2KW3DlP{A_HS8I diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.aloha.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.aloha.register.doctree index 9e1585dbf484d654a6f0f684a4a6d4499b686539..34ee78898bb929691c2262857c3218adbf559deb 100644 GIT binary patch delta 73 zcmaE2_rsR8fpzLzxs9w(m>3%;=Lk!)=oc3yPhKFKK6wiBT2!IJ$z1H*n;BW7C6L57 JFOWUL2msUS82bPK delta 243 zcmexi`^1j5fpu!6{6^L%OfF0HLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3tvZPNgU|vfV!#3NpT$iAV ONkC^6ZeA)I%m@H9OIP>+ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.dockstring.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.dockstring.doctree index 6c5008fab7c50e4d007dea831e21b5b6524681bb..345d9689c98c7b8ae0fb3f69ea4b5775b4693a61 100644 GIT binary patch delta 69 zcmX?Nbi8QTZ{(6@(JwAap4=#wF}ap`JE~C8=2tAif=FVU8^sPY F0RVEZ7|8$t delta 248 zcmca%c*Kacfpw~-m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;Ro$WRhp3ib<0{GG$Dz7312x Qh$UE%Y9?;36^mv90Bu-VxBvhE diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.doctree index 5963e5b32ca5680b750f856c24d1fb93ff921790..46f833721d87c2b76a4b15ab731c403b3ad65603 100644 GIT binary patch delta 100 zcmex9kNNprX4VGQsdvt8WL0HjoHvv<)wx-Qlx-FKB%i(H( WV)c{nrEqWFlisR~O`N|c!x;cjHzhUz delta 332 zcmaDpm-+iVX4VGQsX6C2vZ}JV9MTUhPAw|dFU~5lG&j;u%u7tp&r3-()=$kVE7mW_ z&&kwH$xkje($C3E(l4ki$;i($*0at<8 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.doctree index bc58651d115535d952e40f7392358aae7350100e..6c2ae647cb4e38c0ecce9cd02f5265320803272d 100644 GIT binary patch delta 69 zcmbPPy|#*_fpx0VMiymO#wC*lnWS0ti;I#c>&dll{=llrj4pPMlShPcEnMAZJ-KXo E0PxZj-~a#s delta 247 zcmZ2mHM5$ffpu!%MiymOmlOJ-#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#ghd&J2szZRbr-!X`2N(CyKaS Sq>j5lftb zWa_5mCl?#(=VT`77gUyH4z4l78UCkXO&o*8|eoWmzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrrRpwua4F>i-QHm%`Nm W#cC%jcyn(yjXEcbP5gX?zcTA delta 324 zcmeDC&NS}_6KezORN*}vS&y^29MBIfPAw|dFU~5lG&j;u%u7tp&r3-()=$kVE7mW_ z&&kwH$xkje($C3E(l4ki$;i($*0aaBMS#BW4-aWz~GP^@{f MzaZ!4)k2|i0HIkJ%>V!Z delta 247 zcmbP|*pS51z&iEoMivfMmt*>&#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hZ0l*D+JYq{%w0ZJQf7g*jZ# UQ^8$8)0!vC3v+FD5DJk40P@UNY5)KL diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.drd3_docking.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.drd3_docking.register.doctree index c8a840cbdaf2493977fdcf62754f32c70fbd3aa8..81f7ef3472811ffa6bb1b244ec2fb90c5f5ce954 100644 GIT binary patch delta 68 zcmbR3y55DQfpx0NMiwDv#{S9Y8KqhDi;I#czhNnze4hCxlF;TiEHkB%_&_D~n>`eR F8392e7QDa2A~N}%bj0M<%sX*OCT&(> O%@M;YyZN2;W+njXStI-a delta 242 zcmdmLv(T2MfpzM%jVvFTTsG*37N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EexKDVp5Qypt-1ZBAf$Ax0IG NfX=Gf{6spC2>>l9Sf>C0 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.doctree index 6f578ae7cc67614f319bd8a121b9b6268c0eecb5..147cdfde515184997f67bda73c6efdebfce02f70 100644 GIT binary patch delta 29 lcmcbwvRj3vfpx0EMwTTkjB_S`V3cOjFD^>n{D!5N7XY2w3TOZT delta 97 zcmdn3a$kj|fpu!gMwTTkUI+9;i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE xQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(Auz7XZALBPjp? diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.doctree index 92c4fe2541ec7ed5599c8c8f2728a17df9125be0..9268192161a69c22dcf6a151f1abff63aea2930d 100644 GIT binary patch delta 236 zcmccphjH&8MwSNFsYV-Fwy`oUn5>X4&7xmil)U*L>r*+#m2m##f2@s@7sPXJ-l*Cy zg-x8#QI(IUJg+o2zC6DuJGH2IGGmCuy*YRwNo@QSbMEFQ_cZ$j>v@v(zunEJ@WZNKDR7OiwMId|#z;b2M9uoXc4%n6~-8 zilj7EOai*Ack@yQB|gU3$tV0GCdYcRZ+7(eU}m(N{4U6HvXrL)lojjA$&|z~*&xYq Jb8YYeEdVR1YbpQ$ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.doctree index 965340d23d9a20c978e316a3d3c1f569eb3e2839..d6f1c531c44ca662d7089d99aaad9e557bbcddea 100644 GIT binary patch delta 53 zcmewnv>}M4fpx0tMiwzv#^sX*nWS0ti;I#s$FZ(tVcY=cPmW{ln5@Uiz4;#3EI9ze CTM(K6 delta 185 zcmdlG^dpF+fpu!`MiwzvuhaUW#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z46M01@%W~yyKE$fX;&p|p L=5Chd5|#%52joEB diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.doctree index 3db6ca280bbb3f75abbfaef2520c675f97cbec56..edd954dd99f1fcdb5bd058d6aff59e37f2666bf2 100644 GIT binary patch delta 73 zcmewr*cZssz&f>gBa1pSQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hbmEEf}d{(qwPu>dkVj6^c|d OZL%CI*Jf+=U`7BDNLOnB diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.doctree index 91676025a32741ea872ca3bf3556faf729ed9101..654aa05037f733e38125d011954de54c96508669 100644 GIT binary patch delta 69 zcmX@2{zr|afpu!(MwVP=#s!oAGfH#m7Z)Y#7v$$;>Q8oL64`v7`9C98naSsw3pUST H)8GXFWri3& delta 165 zcmeyPc0`?}fpzN6jV!s$E=Tl3i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#JbXmSm!eNs}iscWn+~)8GXF DcJVt= diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_sasa.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_sasa.doctree index f60723eeba6f9c122902781e3695edd79fa12295..84d8f96b978eadb7faeaa7d0250387d12f50a0f8 100644 GIT binary patch delta 68 zcmdmHe9DNWfpx0=MwSaqj7^i*F-o)O7Z)W@-pi6PxqlbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6noLX_!Ge#j{@xu3;vat!lNDjU1G TpXG)imCXb?HDdEmu|OsOSBPWd diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.doctree index a694e4bac43e89fe46842a06b4c49fa6e65c98e9..e918b2ddf44b3d88d8f37ab0b9b59a9617a9f844 100644 GIT binary patch delta 130 zcmdmTi)G187M2FqsSX=i9d3fQU}}I40~pj!(a2!!@tDl`*K4~eBjbN<0JtSG AlK=n! delta 369 zcmZ2-lV!^-7M2Fqshk^G9EFQ_cZ$j>v@v(zunEJ@WZNKDR7OiwMIoaf%Sxt0B-JylHGoacVZ z-sKc^+*LO@yM=r6!}e@j>YDiVXul=TRB>GfFvzl%p8W8H;^YF0Ax9f$N&HU diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.doctree index d5f3ff8502ae2afd1db27b0ce6f7dad98e2b6e6b..63154ee28ea2a33bba122156593e1550c5fbe6ec 100644 GIT binary patch delta 69 zcmeyB*q6xCz&f>gBa1vMQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z49hpTY7jWioKE;~DOl5O7 Y7jU+)dtIQmTeBwf3vh2Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#giwn6i%Mae3dGOZJxlgMv*Ee N0i9L7`MO##BLJFUSWN%` diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability.doctree index f37a8a36efb2b70ee510093091a33867912357ae..d82a09c670fb5d52827d6d9d9398fa9fb316956c 100644 GIT binary patch delta 104 zcmX?a^4OTQfpzK)$&IXUnHYN}$8k$@=@%Cz>lftbWa>{Am!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R1zvJ_2jVZKWh!!|dvlnPPB OB%rfuHct`{WC8$Aw^(if diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.doctree index 7fbfd1bf003e0dc39f54456eaa2805faae73ce54..fb29d2e3ad96c128179780e40097295b46ea94b5 100644 GIT binary patch delta 135 zcmey>!TPG5m8F4oD$7QeV0Oke(-){QO0(z}7bQ=Y@t?3+n`5mTvfySJe-n4ctthH` zr%zB|2_h~9 delta 397 zcmaFW&ibo^m8F4oD)UB`V0Nzy`k}?CMaBBXStXX{M*4|)iOKnSDT&7Vsd;6^`UUwp znYt8TK9`jZQ%iA;XySGJj*W33yN z&E5RYPs-ivCbivKJWYX-YxDkT87{Ok``+yZ%Is5?ks7uD delta 166 zcmcZ{Iy;QDfpw~Y_D0rtR+nq~p~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)P diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability_and_sasa.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability_and_sasa.doctree index b9eb662308a0d81ac58bc9bb510b3fcb327534fe..f769adbdec6683cc164b8d60e6f29f1108a3d62c 100644 GIT binary patch delta 96 zcmexl)@H`qz&iD})J9fKX2yAw19_ym^oxs<^$YTIGW914$RNaEaq=0Ne5)X&38O<>>1A?RBi6*FtbAz nnB3E`Y4eWbAr_OL-q4=vz?jN8b*2FW7)<_HD!cU%V~qg-(-kMR delta 344 zcmZ4YkY(Q^mJO5GU0&*k7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7Ee~_ShhKWL&kx6rdfF&vvc`G1-ETh q=rE&>NkCt2+N^Or#Da6GrXd3uOzun4p1k~j>SVcO*{w#5H3k5?T7GE& diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.doctree index 692b50b87778ef903c0cc77e13dd7da3b70c60c6..f9f1ff5cca6072e084abd98e790a77c8c0b288ae 100644 GIT binary patch delta 67 zcmeyC(Urm4z&iE6@kZ7&tc<58KTwut(JwAao+P|x^Fg+a%xFSM+)?a|SKz8P3707X E0Gr|&#{d8T delta 244 zcmeCm_?E%iz&bVCWFzYtR+snsp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)Q7!MCNlYeM)71*mXEk3Yd15p OB`RT+-F!gf0wVyYYa-tO delta 277 zcmZ1yG9i?ufpu!@MwSF-uhaUW#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z49}0_Xp2wWRNM$o8&top$ Vyq+~%i3a9QUeC(4`JzTJBLJW#o3Uv&BTED8)bfoicC3t>CO?#xX3;M$N}fE2Yw~7EHhUJv-EgtZbGY=J0ni2! Ab^rhX delta 187 zcmZpg&3I}yBTED8)cqS->{z|7>4z4l78UCkXO&o*8|f$JB_`+Rr6d~br{lftb zWa_5mCl?#(=VT`77gUyHD OCIQ{mzxkI~Fe3n+d|BH7 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.doctree index b4f89836274d7d0cc8b362d8c753dd467c9db8e9..35d3e09d7f97282e2147d8c750e45510fbb05348 100644 GIT binary patch delta 49 wcmX@9*{I3Vz&f>TBa0{tQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z4H!zD#p2s$A^GlX$Mk<@T Jc^=ziUI1YuLzw^o diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.doctree index b4c2656574db108e6633a4a14d44ab197ffb9d0e..4d02ee428b6049ea98d8a4e558111975cd16f28b 100644 GIT binary patch delta 49 wcmcbp*{R9Wz&f>VBa0{tQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z4H!zD#p2s$A^GlX$Mk<@T Jc^=zqUI21CL%9F| diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.doctree index b586cec85137b0983ae1cdfa3085d7f818fe8347..70a7ecfd82a4206c0a7e2bfb9e998d7bdb541052 100644 GIT binary patch delta 91 zcmaE#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$&=W( QZq{Y(XC$a_6MH5f0J};cF#rGn delta 185 zcmZ3e^-_zafpu!!Miv7WulM?)#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z4AF_&U&STMHqOzHj^H^qY J&Sl@i3jhEFQ_cZ$j>v@v(zunEJ@WZNKDR7OiwMIygqI6W=)o~B&wLUd41Xk FMgXf=KKB3s diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.doctree index bfee3193267a3e4b198f7982eb99247518fa8497..8b8e19e112c7004ceb4742b9e444f36b16c4e7d3 100644 GIT binary patch delta 92 zcmeCvIHu0pz&dre@J80{%nCd7LyJ?3iuH@LN-WKd^aG0Wvr>~wiuDWfb29adi;_37 R@G}uqG>K)==C5p$ya4h!An*VH delta 166 zcmX@6-lxIZz&e##WFzZ#W|uqqp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)GD)-O7Z)XO_GZyxLgw#gbKnO6Q6LTU delta 185 zcmdn2{ac%*fpzMKjV#P8UN7`Ri&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(AlbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EfNtwr2AwmhFsGF>Uigwp}6s DCWSrG diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.doctree index b2d8884198923a98f47a0bb044f5bc5738ebcdc9..26953ab878360a09d95638067fa65a061e11546c 100644 GIT binary patch delta 49 wcmX@--saBIz&f>hBg;)@#yyj*nWS0ti;I#sE3z~&A@L_GvMk%&&F(A%0Gm?}uK)l5 delta 161 zcmZp3Kj+TUz&iEtMwXk*E)VoWi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE yQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#PveZeXI0Npsm=$^ZZiSUe8^ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.doctree index 550a36ee6b16ec52b62b5b22cfb7408715877114..8ee2644aa1e1bb5a59c12a55d649a26596cbc89c 100644 GIT binary patch delta 49 wcmZ3kdS8X5fpu!gMwUm+jQb|rF-f!N7Z)XO)?yK7LgG)>Vp*|Sm%WM`0E(>+`v3p{ delta 165 zcmcbwvRsv=fpzMfjVzCtT^{L&7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EiWiTd{c^OFko2OxtYBro;mP D!!|p~ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.doctree index bfffd113155dda147885e5f840044a193754dd09..282814185505885cc3c7da8d9d92296acd273587 100644 GIT binary patch delta 49 wcmaE;K2x2gfpu!%MwWfdj5{Z5GD)-O7Z)W@j%HiDc_m98Ba+zWXtp+90HiSx6aWAK delta 165 zcmbQK{!pEzfpzM&jV$|^UGD0K7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EcytTfDiIC6AFRrfn8xYvTm~ DtP?x1 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.doctree index 730c2d91278035e5235316c152a75f8927aba9ae..93a919cd766bc1c40b688ee94edf1333c1f468c5 100644 GIT binary patch delta 49 wcmeyOwML7jfpx0lMwS=MjQb}$GD)-O7Z)XOHek_YLgG(0U|G4@ja`oq0FAc}>Hq)$ delta 165 zcmZ3Z^+k)Nfpu!;MwS=ME|2v?i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#PMIXfjd7q{%!iD>wgR)8hjG DboM)W diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.doctree index f617e2ad92a5c684812bbaa57ad27ea68b4857f9..3bfd99da17678accdec1e08ef493b0eb1a6209ea 100644 GIT binary patch delta 93 zcmcbl-=)vez&f>lBMU!^!cqOu;?$yI{oQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gpf;t>65JWey`%Oxrw|Uz&e#_Bg;Exg#-Gb#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$&+`o Tt=jy6Whx^Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#ghx!R&CzHGL?}krfn`{nm!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3(u`Sy?i)9NVRZQEQ$JQYN E0No5cwEzGB diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.doctree index 6481f4707da58d48cd93f9dd31314050a420a262..ab595de66232af3f2d5017c1c95c7d89d126c067 100644 GIT binary patch delta 113 zcmcbuGg*hFfpsd!MwYY8YPO Dg+e^P diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.doctree index 3ac2f535a9eb90d560dd285afd9643e987c59ebb..4a3a44f2bf786b07a9acaa001805f363cb7400c9 100644 GIT binary patch delta 52 zcmZ3#g7NusM%D(_sds`mvi@aZoHu!*o-~VoaZ&Q*+5GjJkFrkUWLypx+dP|piVFZG CMHCGH delta 188 zcmaF9oN@gMM%D(_sVX5GS^u(l9nudiPAw|dFU~5lG&j;u%u7tp&r3-()=$kVE7mW_ z&&kwH$xkje($C3E(l4ki$;i($*0ayv%l~! FIRGIM6?Oms delta 248 zcmcbcd@_Z#fpw~#(MHx-R+lsSp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)JBTF2s*BSlL;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nj`h%)`ji83OS0|fIobF*=CdtIff Lxtjw7U&{difpu!pMixQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gpw7N;j`#-pNQU)9N>~u}Ml% L#k9@#3YQoGe^6HW diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.doctree index 0fc701578685351a1c9c9374d3fca75a49a6207c..1a4beefbdf2c9345c2b93a16f2632945a9e8de83 100644 GIT binary patch delta 50 xcmcbZ(wV~Az&iDx;YQZOOpJAt4SA(m^oxsMp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o);hjH^tRGsOT2!oGoK<3JZls@>mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrS^Cz0MfpzLf-Hoh&m>An9PZW^m(l0Jb)-TA<$<&`*$Sblrp82{4R+-81%)y(V I>%=kw0Hebh2LJ#7 delta 166 zcmewpeI$mpfpw~--bU6xOfIYSLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;Rn%GJn*dib<0dnR7SK*NJ5W E0QG`AVgLXD diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.doctree index 35c97e38c4a333d2865a128094aa3b42c179cbb8..d2d3e00a55da3e6be9ca2fe7bd75b7811b38e11d 100644 GIT binary patch delta 93 zcmcbj+M~+Sz&f>YBTFc=!c_gx;?$yI{oQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#glVb>o@;k4q>En%)|1X5s5#Uhh^gC8*GZa0HgsAlbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7Ek`qI&pI)OBy3pOxygQbrUZD D5gI+V diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.doctree index 306cf46d74990c7d915b7379c5b34fbf978fcb38..b567dc52eb5aedd1d838c4eb63157cdb0652f013 100644 GIT binary patch delta 233 zcmeBJ$@FRk6H5c@)cB1ozgZclPu6dh=F%@NO4cvP&&kxET-Yiy`9WCR=G|-+nv4su z%VurIs=VC-aRK02r88eExUMn78UCkXO&o*8|f$JB_`+Rr6d~br{lftb zWa_5mCl?#(=VT`77gUyH2ib`Cg~e+t5L~z;96@( diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.doctree index fd93b0e1f4828a8de9bb27a1a8cd460df7a1771f..44fff453f322d4a49698157fc7332153eecc202e 100644 GIT binary patch delta 49 ycmZ3SeLIV#fpu!YMiyCC#<`QvX-Ko^7Z)W@Zsf1q{FpV0lW`ebY;z;Ok{STN-VsIs delta 169 zcmcbewK$ulfpzMPjV!XPE(i5Pi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#I#6-r#gOMFo>4JF?bI7LeiG Je1LzpDgblYJrMu^ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_cbas.register.doctree index fdd00331c4f1e23145012b68b5c6036e4b4ad725..082f22d7af1a4d11817d9ef34b0d323adfcab674 100644 GIT binary patch delta 50 xcmX?U)M&)oz&iDt#75SiOpNW5=kZFj=oc3yPp%iw-MpT;M;J+LbG`T}MgY>w5%T~5 delta 166 zcmZoPI%&k(z&h1VawF?cCYROvp~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQz6RqCx2iR+04hxDM)2AC-X7; KZJsX@%>)20#6h(H diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.doctree index ef1acad862f625c9eed5962ea9d8acc3f50e73b1..7dd4d96ce25300ae4e98e11c504592d8353fd4c1 100644 GIT binary patch delta 245 zcmccC&$OeTiKT&c>e`Jghgcb>Pb!w?(l0Jb)-TA<$<&|xkWFN=f>zw-CN>9U#s!#? zn-#R~$zziM>dM-D%u9)nv3&B&hzPmzRE5&wRE3PhoHT`!j8uihvc$}s#H5^51?Pa! z;>r8{MK?!9nlUp*Or98Hsf}N?-jvoUjZgkOvhge;9>xUMn78UCkXO&o*8|f$JB_`+Rr6d~br{lftb zWa_5mCl?#(=VT`77gUyHixQm>KOR+s9Z=J|83iW%>KFZ~hyzTMGct C_h^U! diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.doctree index 5e085813e7254b6e433254ad290102d580f527dc..fafec6ceaea90150cc1b39fc5830533e080255ab 100644 GIT binary patch delta 45 scmewnx*?RMfpzNAjVvatjLRl7N=UQl7Z)XOu3_E7!nhuZ&sC!U0AxiDr~m)} delta 185 zcmdlG`XiL3fpzNJjVvatUZ?a!i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(An0EkTw5dZ)H delta 165 zcmZ2y^v#H+fpu#3Miw?^m-YIg#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gh}n3pdYZUMfr#(>5oFpJN07 DD8)OK diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.doctree index 677f914ab8cf0437bdb9f25dffcac8b6996b8d97..222d0d41fca7f7fdce8dd0d3e6110635102884bc 100644 GIT binary patch delta 68 zcmeBmUg*Tqz&cfIBMUz>QBMU#X*Dn3g;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nj`h%)`jf=nWl*Rdo`UeA1#%EoS9 T$5JCnWix?J&DnfGE|3WTkL6&l diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.doctree index c9664b9d448fae00b4cc3190387f86d7de2ad5e8..b97be3f578570e79e581dc224adb95e560f48c95 100644 GIT binary patch delta 96 zcmdn+gK@!kM%D(_sZ*;rvX-+k?wb5AUYbR}xF~t^0k(yzNc_nM*ye3^*4@j*co?n* YC^mcZeS_!;?G73&w| z=Va=pE~o7=@(R%WaQ@=>sjg-XO^Vu79=KTC#I(sPma}@x7muFS(PfLZI0E6 hW_Ec_9e2&1tRKrYnctXgbF;y5Myi^+ncsM#2LNBvd71zK diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.doctree index e8bff0cd1479856aa65d1280ddd5d7429bff8365..376499ca3b4cf95841c8b5deee1651f8f67fdc06 100644 GIT binary patch delta 49 ycmZpV*dNZ)z&dryMwYp(j0YyKla^-DFD^=+?9aV$a~oSL3*$++*k*t39SQ)-3K7Ww delta 169 zcmdlV-X6iyz&iEMMwYp(E>HABi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#H!+RbzE|O9hiAA7ouP`9CN3 J=FQwZ3IO1}K7#-N diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.penalized_logp_lambo.register.doctree index da00eaf70f0c2142b56350bff08503e5af906ba8..ee20afba99705a0bbb06f3a90c3621ce810707a9 100644 GIT binary patch delta 73 zcmez3+2P63z&f>dBa16Di-I0JD)9Gynhq delta 243 zcmeD1{Nl;dz&iEiMiy6Qm&5v@#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#giAXwQhdLJc)@arfpup_Dq^8 OCIQ{mzu8ndm=OTum05BC diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rasp.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rasp.doctree index 782ea106351c3d606a93229d0ce2036259adfa6e..01b4d99373f61fb94ea0f0cfd09613aade1b2ffa 100644 GIT binary patch delta 49 wcmaE>zf_;4fpzMvjVvpf7|SM0aZ0o37Z)XO{>a2Agv6ixktt^LB++Ol0G7EA;Q#;t delta 165 zcmZ3g|5l%+fpzMmjVvpfTxRKq7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EgXB60=#8d8r^(OxyfUWIGc8 Dwj?~` diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rasp.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rasp.register.doctree index d1b5926e04b4476f1304171566ba2c661707bd73..954e1da47baacf822c08c2df396ea4a14902cdaa 100644 GIT binary patch delta 69 zcmZp3pXJ8Vz&e$GBg=gz#`?+s#id#Fi;I#czh+6@+`}x*h$Oc8HOo{PBtB40{$^vP GU`7C2t{9U5 delta 269 zcmbQ`*5=OAz&f>hBg=gzuf_VI#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z49hpTo%QB}iQrpbEEY&hp PHgob`me9?|6@wW8PPAW3 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.doctree index 1b929d511a8dea1a171a2b6cbaddcd65bb22277c..de10de0a26d8c436d11d353f72416f9a489111db 100644 GIT binary patch delta 69 zcmaE8^wp5HfpzLDiH)r1nHZZUuVa*E(JwAao;*)1V{!xYPE?_y&F@*V1(C!y&l5Y$ F1OSi>8F&By delta 273 zcmexr_|S;8fpuz_OkT_MLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQz6RqCx2iRne5NvH#vrRCzXxe U?9XyokjiEPof@%uiC7>L00pUHrvLx| diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.doctree index 5ddd6a903a7b3c345a334ce3a50e0c7c8c60acc2..636e9146c9496f9585326c805ecde9c7232c3b14 100644 GIT binary patch delta 91 zcmezNpXu2@CYA=)snHu*_OUX~nEZiJnnl03D0%YS+RDxKY**#c#RSzim@_U!R@b_@ PEB?GJlGx_CwUJH$#7-p{ delta 331 zcmaF%kLlZgCYA=)sjoM(>|=G=qaRwFT2!oGoK<3JZls@>mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrG(^s)HSic_PQegTMc^` diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.doctree index 9c51a4a262df4ddb95e45b3b47162514b1c19291..86651e9d268e8be8f3b5f0644940aa07384b769b 100644 GIT binary patch delta 65 zcmdlM_%48@fpu!~MwUM;jPoWhkdfxnFD^>fFUZfy)Sq0yA+kA+wTOjrIW`$Rt`0c> D1wIxS delta 165 zcmaDCuq}|KfpzNYjVymyTn_1n7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H?Ky?O|~_O$C!CE3npY_U2NS F0|4fvJEH&q diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_logp.register.doctree index 5bcc7cb7bde6f61da9a4538b47ce5f5b06aea047..4109acbfdf8954aa496b15cdf8482d02f879d181 100644 GIT binary patch delta 74 zcmaFr^V6HPfpzLT)s3vI%#7WW4~R;$=oc3yZ}wxhU_|0i_G2#GY|UCGizYVNnw4vF If$~=-0JK9GivR!s delta 273 zcmezA{nUrGfpuz>+D2AZX0P@7p~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)Px# diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.doctree index 25c97590208162068e47bcff25b05e3a9be8ff0f..a025eeb1d7c09f3dce59bcf2c3b65b37d88adc0b 100644 GIT binary patch delta 68 zcmeA(US!15z&cfYBg-i!#)iqO8KqhDi;I#c_p_u;u3)~5B(%Ao<(D85AE=~Yv#od_ F696477W@DJ delta 242 zcmZ2v)Mw1nz&f>gBg-i!mnHh4#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gh}o(k6#6U#6B}1)I0CbO}<$ Kw9ScP2bln$URU4% diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.doctree index 45846739c4fa31fca922de9913a9e01a0b90253e..4f3e2ef980f670e4884f91d4141a0b09dface85c 100644 GIT binary patch delta 92 zcmbQfnz?-yGiw9u)IV1?vc6A1;-ciq8+yt%uVAZFM;Cjbmub#84_RH) RX8!b8RV1;^8+x95003BIDAE7` delta 324 zcmZo)#XNmAGiw9u)SjywSzofc?9>k}PAw|dFU~5lG&j;u%u7tp&r3-()=$kVE7mW_ z&&kwH$xkje($C3E(l4ki$;i($*0aZ@ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.doctree index 4bb1a457dd87a7006ee985db99f82bceebd23e7c..92c46c1ef016ce2dcc7cbee84d7bb52ee006abc5 100644 GIT binary patch delta 74 zcmZ3GwI!3afpzLilZ~wJSQuwdu9uW%(JwAap8S`ie)Bd~W@aR@&3`#8co~-m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3_iq&lHXJuoio@s`hdw5(< NP{D1RdBv8?0RYu5S0Vra diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rdkit_qed.register.doctree index 929bbbc3fbdd6c80e0a3c67c08a457e389eceb8b..cd1cb13564781c158e76293562f137ef140811e8 100644 GIT binary patch delta 67 zcmZqhpW?^Tz&e$4Aqz8O=j3&g(k%MLMah#Nu;fqP&ioWfX!8S>cXCL4ppweX-6~(1 E03(|i^8f$< delta 275 zcmbQ@*Wl06z&f>bAq%tDTK&-C)S_bj;;a%&b0hu4yu{@Eyp%*^{nWg&V*P^roJ`%6 z{N!RI{hZ7s{esGpjQl)fJxl%K%#u{yg2d$P#Pn2%GX2RDm_#NYP!63unfWR8jg6ly U&C9)6hBZr$%4Tmqpd7*s04fb)LjV8( diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.doctree index 1b06ac7001cbe1d5684df395d821c44fa6a7e400..0988cd448ba8f14cc2f259f7b7d0f890fda60518 100644 GIT binary patch delta 70 zcmX?W@z9*LfpzLN>5Z%|%#6z>C$LMi=oc3yZ|-FlWkTXl?q%-TT*S6P2wm)xWHb{1 DKS39e delta 244 zcmaE8e%6Aufpw~r%tlrhW|vd?p~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)^c Pib+6sP1`&{GLQ)XO+Q$y diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.doctree index bb5bd07288e2022687d57de44aef53b932e9cd33..532e95df53caf06c062b5ba142a3ee8bf88c5da2 100644 GIT binary patch delta 68 zcmZn;n;y#2z&f>OBTF?iJd#YM@J1vRHmj$rwSDl~ty4%Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hd3dw=q)1q{;J{r*6K*x>|{P KrdesmG6Ddz6m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R3tizQ69VSY$0!?HFnXQ>dR MifNne#db3R0O-kAxBvhE diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.doctree index c7e0ea238a7516f40497168a536e9a0ddb16005a..af772eb51779234ccf1d9f0b01ea60776ca956de 100644 GIT binary patch delta 88 zcmaEMhUwaACe{Ylsi&82WSz>&*f)7Wzch<}aZ&Q-d#n`-Nc_q7Sc^9EsCUUTPKT?R U9G6 delta 320 zcmcb1n(5gYCe{YlsnN?evQA}n*`yy@oLW?@Uz}B9X>O#Sn3tHGpO=zote=`!R;*u; zpOdMZlAl~`q@RnEXO*78Hqnxj#<_4cK(W%z Idqp(l0Dx*3Hvj+t delta 243 zcmeyF@-&sDfpzMwjV#w#Tz2S(7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7Eit-T)H`*RhgN3rm1sI<#IVl M1-EU!BRp3Q09R&O82|tP diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.sa_tdc.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.sa_tdc.register.doctree index 350733a2f60e63f31724a96b87b059bb81ea9fc2..efc91c453504c1777346f952874332e22040dc54 100644 GIT binary patch delta 96 zcmccP^1+$4fpzLr#f_|QnHZZVGYU&{=@%Cz>lftbWa>{&6cgDT!0f_^Rc7)Ag~-j` PtnAWQWjAk7Si=Ya?*1NM delta 243 zcmez1e8+{gfpu!2(ni*|OfJjyLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R20V9A_Z&HR-rhHaj}QYB3l OlYq`D-aJlbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7Ei8WDVf~Qe3mMPZLVSAl%R@9 NKxfr$R+bH90szlcSWEx_ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.doctree index a57ecf1d2cc43a353e9e253df7ac0dbfe382a7e8..735d85cc1255c8f2596963a1f2c032f726594ac3 100644 GIT binary patch delta 93 zcmZoO-)F|sz&h1Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$&)9r T&Dp$;Wga6zm76E9eG>ryI+!A{ delta 165 zcmdmI)@IJqz&f>hBg-jfmuvc=#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hc$TTQO0^q{;7?=WKq$79|1z Di|#z` diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.doctree index 0dc623c3c63e48d803644e6a9eef635f5b4e845a..809daf7ff3ffaacd6184b3378f5f584188ffeff3 100644 GIT binary patch delta 49 wcmX?Q++@tsz&f>jBTFAMIL0EXfZ4gdfE delta 185 zcmZoNK4r|(z&dsRMwUKiue180#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z4FK~)%KEuq-L}fE4pJA@t J+{N}o2mojiL%{$5 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.doctree index f608034afbcea25d0075e2fcdebbb60700ad9372..bc22dfc4880e182da54e7f34726477b702a6024d 100644 GIT binary patch delta 70 zcmZ41$hfP4k)?rks{Te6CuYXElNa(yv*;HWB~O-PZJx}_au!Kwvm9%RB@!Q~q<3?$ HeJ~>c6^s@J delta 271 zcmdnhz__fDk)?rk>g diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.doctree index d0cfdeb6c9a5c4b50258206e089a38d55a1159e9..06ad60432b1b1c30456e28c107d7a355b3e0364c 100644 GIT binary patch delta 49 wcmeCuJ*30Zz&h1@BglBgQb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#gl)rPTL&IQp-pc(>DKN^$-96 Dh9f*| diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.doctree index 41e53ac54d6f5e901f3f6595f7b268073d5c4a51..2094952b2857300f7559df49bb30866371043a4f 100644 GIT binary patch delta 49 wcmdmQ{N0G9fpu!mMwYqEjH@S0F-f!N7Z)W@_GX*9xr(Ki5lL*bH(QA?0G`zkpa1{> delta 165 zcmexvwBMMefpzMZjVyDSUC!%=7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H>Ytti(hWlO`Wzp1OGk+kGJb Dx#2w& diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.doctree index 02e70d0b963ba2b5f7eae31499680e1f9b606993..f2b777914003959d357a8187cbc281a3f6275b72 100644 GIT binary patch delta 92 zcmaEFw%m-Rfpx0PMwa!=3hVSki&Kk=^^3DgEX|Gd1B&vqQj<%H^$YTIGWCm#k|*c0 R&Dh+}GKZ0%%EkF?q5u{VAzT0e delta 185 zcmZ2(_TG%8fpu!iMwa!=UYGPki&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(A>}e#H}i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izgeh&DfmHvW$@`rfoK4dnyb7 DW#~K5 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.doctree index 9859a6a3a393af4e01d9a2f52cbcf653055347a3..818c2d2681692522b092cb1a3eeda9720ad19ba6 100644 GIT binary patch delta 49 xcmexwyWN(hfpzMdjVwo)88=SWXOd>oFD^=+ypV17=H)Eg7?H#_FJz080078V5lH|5 delta 185 zcmdmP``?zOfpzMajVwo)y{_tq7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6noLX_!GE@Tp!T+G(ExtV1fBbCkF JT+HSo0RRv_Lp=Zh diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.doctree index 131aeace1cfd40162792e6a55d148e41d2126ead..5c9260d80e589dc614548bd5ef3f7a660be42c56 100644 GIT binary patch delta 29 lcmeyNd_|e1fpzN1jVwP{7*|Z@W|C&nFD^>n?7+H%2LPyy3Pu0` delta 87 zcmcbj{6m?gfpzNJjVwP{T+Zl+7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H^he-N6F@#knA8 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.doctree index 9069ca82716b929f9a612ddd127f4ec0257681a6..2f3ac4f90952627e2598367880d614a35b80f59e 100644 GIT binary patch delta 72 zcmaE}fw5r&BWnZe)UV+iSwFKd&YJvzQJO`+xF~tE4QneG5`VG{Yu)B%0X`!;?G73&w| z=Va=pE~o7=@(R%WaQ@=>sjg-XO^Vu79=KTC#I(sPu|O4w|N>XI~P?<+q{>* VhsotQb=*}wnOBf|^LrsdR{-)ITOR-b diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.model.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.model.doctree index 0e7f68fdcc528bf9e64f50c46696e00558b932ce..ba5905f80c2fe2ca70604106e7a70d563235560a 100644 GIT binary patch delta 98 zcmbPkzuJzafpx0FMiyyi#)*^d*rd7ii;I%=3-WU^^(QL|icEgb5Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hdM!^%$vQ(qwz)^2z69xi<5$ OYD!Se#LeeqV;KP$g;zoV diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.doctree index f93dd9305165afe30b83828f64818591d574f044..ce754ee5ab243d19116dd4e6b0d2ff59d1efcdab 100644 GIT binary patch delta 94 zcmdn2_ga^=fpzKwv5l;gnH84khZd(673&vgl~|e^=?4_$XQd{W6zdn{=Va;^7bS1L U!|cRFP}Sr+%zc|busI6=0C6!RApigX delta 186 zcmaE@yIGI5fpw~e_(s;r%w8w-LyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQz6RqCkL{MOg3RF+3d!$g^|kU KZZ=`tE&u=p%Rz4d diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.doctree index fa2e5b4202f2347b61996821757d22bc745f3fb5..be404a49fd355f6edaf6f160b991332b81c29b5f 100644 GIT binary patch delta 51 zcmaE@bzF<3fpx0QMwSv*g+2PA#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(#4E HuIC2;;ARrj delta 87 zcmX@E^;(Oifpu!aMwSv*mk0Wx#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o rDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hYiauIC2;cF-Tz diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.doctree index a1fbef5d6ed542f0f8ea10a7f65aeb9f4988d111..409a5acb83f607734e8e4597b921c348da9f6bd7 100644 GIT binary patch delta 39 vcmeyPc|((>fpzNHjVwm2jGHG*F-ddj7Z)Y#7v$$;>Q8QD5!pP2HG>}j6D17( delta 97 zcmcbi`A3tbfpzM~jVwm2Uf1fpzNHjVwm2jGHG*F-ddj7Z)Y#7v$$;>Q8QD5!pP2HG>}j6D17( delta 97 zcmcbi`A3tbfpzM~jVwm2Uf1Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o qDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hYVU+xY={;U9(o diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.doctree index 4309839bbcc7a9ea295afad705c2a29ae05c4582..0b44cbc226822d3003c8de75810ba912ff8c6a5a 100644 GIT binary patch delta 29 lcmX@9xm1&-fpzMvjV!{fjO!jV!{fE|>K~i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE rQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#MCI=J5jnS;-#W diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.doctree index f63fcb47a6b02ba3e4337ec522a5f1e881e9f758..c3c1cf67dcba31b48fda5187704764c5eac5ad34 100644 GIT binary patch delta 93 zcmca?*loztz&f>IBgCww#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(#Q& SYcUa2HTf^|g3a9QCjX delta 185 zcmeA+yllwQz&iEBMwYG2Ubpl^i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(A4*-Oe2;%?% delta 97 zcmbQDwL^=gfpx0xMwU=kuRHpo#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o xDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z46?jE9PiAf82LOL@A=3Z= diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.doctree index 57f30cae638d24eb76983bb490cd9d48a6b6d79d..fbd563c3b5b4ab1c3d376577513e676040941432 100644 GIT binary patch delta 29 lcmdm?HARc1fpse9MwU=k#vPM2nWS0ti;I#s&t;v>4*-Oe2;%?% delta 97 zcmbQDwL^=gfpx0xMwU=kuRHpo#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o xDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z46?jE9PiAf82LOL@A=3Z= diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.doctree index bcc28b6b320f85c3c992691724d0c024932e3b99..73886977cb6d8be1d86ffbbb8e694eb58166d880 100644 GIT binary patch delta 49 wcmZ3ee^Za8fpx0iMwWfdjN2z`GD)-O7Z)W@E@xY~c{xiDBa+zWayBhN0H5;@*#H0l delta 165 zcmcbqw@{y@fpzM%jV$|^U2f}#7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7Ejh^Te!KIrH7F!rft?|(-H&# Doqs!Z diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.doctree index cabc64c88305019dd9e79bab3c516508ed2a3e18..57130b96ea403dc927d79f2b5f08a678aeb661f2 100644 GIT binary patch delta 38 ucmcbixkZzufpzN2jV!XPj2k8kGD&mk7Z)Y#7v$$;>Q7=8*<8;W$qxYX1`Emn delta 87 zcmdm@c|((>fpzNHjV!XPE?4wJi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE rQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#I#67V`rDYw;f? diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.doctree index 6fa9f3a8178898530cb6d0c0654ed72ed5c02036..f4851045bf1db94b0c26f964649f0a08c1f95ab7 100644 GIT binary patch delta 38 ucmcbixkZzufpzN2jV!XPj2k8kGD&mk7Z)Y#7v$$;>Q7=8*<8;W$qxYX1`Emn delta 87 zcmdm@c|((>fpzNHjV!XPE?4wJi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE rQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#I#67V`rDYw;f? diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.doctree index 9239d76ace114c46612f72bf67647720a8817d82..7ececca759bec907259bd2b1e42954ba7e440d98 100644 GIT binary patch delta 51 zcmaECv)_iLfpx0MMwaWW3P<%ri&Kk=^^3DgEX|Gd1B&vqQj<%H^$YTIGWCm#k~hn< Hxkvy2@L3W~ delta 87 zcmdmQ^Vo)^fpu!cMwaWWE-&>%i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE rQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#Pvfb&&u7o1h?1 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.doctree index b0bbd2e2e082f0f7dc4d07e85c40e888af60bcb1..e96c8ebee53b96f006baa4cf03dd4b29e9691604 100644 GIT binary patch delta 71 zcmeCV!MNZ$BWnZe)T!AUS(BIIie)pB&}Ku{)hS4Pppu!J JcV-1M0sv=y7ux^; delta 275 zcmZ2*ow4TzBWnZeRK}c*tVzsXXZ1siQ;UlAi?d2B&5iUE^AeNu^HLIx^;7f8iuDWf zb24>P@{@~=^m8(k^b0CWGV=3`^(^&^GfPr+3lfvF6Vp>6%Je5sln|MGF0*v97|Ukr U8(Y7*iB%|t%I0o9mwAa101V@07ytkO diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.doctree index 393e4560105f8d1768025eb3725e70a0bb9ad58a..23ae872ccc98854eb001cf95178edfa959da5da9 100644 GIT binary patch delta 50 xcmbQJcT$(NfpzLWv5lZG(gv6ixk$K+cUu^XP0Gcfj-2eap delta 165 zcmdm}_fwChfpu!$MwXS#E;sZ;i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#MNTR%fD$Nt4eq&)d9-tzG~C DmFYaS diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.doctree index 85e101112fa6941330902166b74c902ce4711df9..e2a0debf933d817f8a04d1c8e337959f2ea7427e 100644 GIT binary patch delta 50 xcmcbh*P+MSz&iD>*hba^%#1rGYcff*=oc3yPp)QLw0Sj44G9Y)?t!n(JwAa-ptS9!Gy%0%+IoTvmN_=Q2?Vp577Vs delta 166 zcmca=IoFD{fpw~o>_*mO%r1BJLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;RphX7*sBib<1SGcVr!jqScD E0E?16i2wiq diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.doctree index a23f19bf15d3cd64619865008f6ac5493c347644..f07fbe66f8a862f6f93ab5610cb4736591dd7673 100644 GIT binary patch delta 68 zcmezGH`$M+fpsd!Miyyi##xj93rn-;7Z)W@{>RcV`7!f#B%#g!Sd!$C_&_CHoAp!! FnE-gw8NC1i delta 243 zcmbR2_ur4Dfpu!hMiyyimwo!7#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hdM!!x^b!(qwz)hRtTIkL0Ll J+76XyCIESfS3Up$ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.doctree index ac0056659a972e9de820e3775db5cbdf01aedd64..02f712178c409af8179dce3119032b6cbdd0b00a 100644 GIT binary patch delta 238 zcmaF#oO!`>W|julsZ%$y%w}WUIr+gkX%_wBqU6czJ7;aKWjEGA7wa>*8^U-9u5R=C z&JHakK2YDX&5B!>^D>rCK6xlYt~^ztv^Z5EBQYmUp(Gy*YRwNo@QSbMmzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUr-GV6uS-*XB#yN96(U Cb`paC delta 165 zcmX>fHa(oBfpu!nMwT{Km&f{{#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#giX!E!gbER>tD;h6<)_e!!Kl F007N2JpBLw diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.register.doctree index aa7ecd7197c88cb7c547043cfe7e43b2bc07c1ee..b0f661896aefdbd61bdc2105090b364bebbc132d 100644 GIT binary patch delta 69 zcmdnza><#sfpzL}#f_{1%#4dCKNON?(JwAao*c;9Ia!J2HImTgK-R-jNPM7@$(vs* H1Tz8vZdDla delta 243 zcmccQyw8QTfpw~}(ni(*W|!mop~b01#rnlrC6?w!`iXgo$@zIHiN^Y=d1b}=1^GFd zx+(d|#YXx$nMwKul_eSZdB%E{`o)*jgp0d@ct@*5)n delta 249 zcmezWit*iRMwSNFsgF0Z{AP3cp&weDT2!oGoK<3JZls@>mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrt=oP06PG)Lt484 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.doctree index 2ba8bc5d3029f910083e64ced6aed7f83fa39269..eb050753b704996d13ae3c283fa28dab232cabd3 100644 GIT binary patch delta 68 zcmaE6{>zM|fpu#BMwZpgjQb}mFiErM7Z)W@p3Ay)@(h-PNJ5+EvNDSx@qtR#Z=Ng_ G%m@HIninkq delta 247 zcmexm_RO56fpzNbjV!B~T^{R)7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H>Y!oW@8MlO~^MUOHJ;ifc0q PTZk~#Ox!Fh70URBg-`=uNC^C#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?5M}z4KXQmn_Gby0oWi`3%EoT? TXL%|}Wix?JjoN%dERYERY_(!( diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.doctree index c1a1d9f9c0ee8b4ed2a9cc4026a0c6cf66ff6daa..313bd0a14389e3eaeccfe7d014e3f315ed432b87 100644 GIT binary patch delta 135 zcmeymo$2W|CYA=)sZkqQF0nE$n5^3+&81&ll&oKnpOdLSIWb0Lvk9A#40f3#N(Bmx cE3xRAY{Hg4`F0KGW+s;=N&G5;;uhNi0JLr|-v9sr delta 323 zcmaF5jp^%lCYA=)sjoJ&Tw--Oq90nET2!oGoK<3JZls@>mzbQNmy&3#pPE-ztY46y zlc}4MpImIDpOcxSUrjLRnX@=CMl7Z)W@&gW|1{F~K)g>gMxY;!(Wl{^5pXb|TB delta 169 zcmZ1&{4$uOfpzM=jVwB>E~oTEi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#G?bZf9}1Oa+rB2e7tJp1{qu Jc?Z`^IRKZxJ^%m! diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.white_noise.register.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.objective_repository.white_noise.register.doctree index 877ea7817af3d4e0b83199874e6c129ffc6a1c0e..724ae991cc91adfb52ed4b42d8349f7d8837fda7 100644 GIT binary patch delta 65 zcmaE7*JQ`qz&iE2+(uSzX2#yhXBeef^oxs4$RNaEa2?ze#}M{(>C*PZDa%h D5^Oqv diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.doctree index 541fcccdec692fb8ab36dced32f1b4f0eb65e9c3..1ad056b32522d9416f70ad2f4a0abcf33bc7c971 100644 GIT binary patch delta 45 ucmbPec+!BSfpx0gMwV8l$xJLVEc(So$(zqIT@`}!CZA;r*lZ>i%>)2TCJrkA delta 165 zcmX?UFwu~ufpu!zMwV74mp=W_;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>q(w12+F;Y89f2X`APXu4V!N DQ<6Lo diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.doctree index 15463436980a74e5229e9583f2d2bb743fa9e478..62311ccf8b9ca36cb75f5aaa1d61da1eb984fbc4 100644 GIT binary patch delta 69 zcmX@^e%ptcU1f*H?i;I#ce^jj8{D^rfBdS>QW;?cgX(X}D9~G}L F0su3I7nuM6 delta 239 zcmccZcHEt%fpzMhjVy}HF5C4(i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#NM6^D$Ayq{*#{&6~fm=1Wt> Kw9T!G*BAk7pH|iY diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.doctree index 78475e564059c5526424db28c58a1b563e219aa9..2e837378f8659e162ebd73f4b29a152c67a944fd 100644 GIT binary patch delta 51 zcmeySa7lrsfpx0;MwXu}3d{6Ei&Kk=^^3DgEX|Gd1B&vqQj<%H^$YTIGWCm#k~cfD HnsNgG@kSC= delta 87 zcmcbl@J)fGfpu#3MwXu}E~oTEi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE rQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#N-%nsNgGnEW4D diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.doctree index 0a0e30b2d6f76e2edcc4f7cba7ef1854992cbf28..4ae34631f86945141c22d751bd86c5d4c0601d4c 100644 GIT binary patch delta 51 zcmaE*a7=-vfpx0&MwU-33QP4vi&Kk=^^3DgEX|Gd1B&vqQj<%H^$YTIGWCm#k~dqi H8gK&u=`Ru; delta 87 zcmX@6@JfNDfpu#9MwU-3E+_Rvi&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE rQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#Ln08gK&uinSjg diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.doctree index 17daf9acb2c0bb3fd14cc07f786b6e7ea963b119..322f949f997b0304deed509ca4055a64c69be532 100644 GIT binary patch delta 29 lcmcbouuFlZfpx0>MwZtsj7ug9GD)-O7Z)XOHfGi41^|Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hcxks^zI-(qwlglg(mE(M$j$ CD>@zk diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.basic_objectives.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.basic_objectives.doctree index cc63bc76346983eb9fa94ba83af7f0afee983f51..30b42a9114e0a8470e838f5c7aaffbc2536539ac 100644 GIT binary patch delta 49 wcmZ3ke_xNKfpu!gMwYWoj7^hQGfK1Q7Z)XO7G>@hMB+~tWzN{_BO1*F0GiwnbpQYW delta 165 zcmcbww_Km4fpzMfjVx!GT$bsF7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H|H@)GbIAlO}&;%Gk^z8qEX% Du*5tu diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.doctree index 22fd32d02faf4ffdb843234d5be4b858dccc7360..9aa595c471957d3ff57b2ecf4508aef7c035a262 100644 GIT binary patch delta 45 rcmaEEGT(%yfpx0LMwW19#-)=d@JX}i7Z)XOp3gi-1esqi@q!TmT1*c@ delta 165 zcmbPl^4x@_fpu!kMwW19my`OT#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o zDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#ha^{=ZH|nq{-FH-J1_d#4-W^ DNxnPW diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.doctree index 5386fa68970cd1283792d741a1148b41970e4b26..3405406c5821a454defe8c9b1d0cd5975e61e1e7 100644 GIT binary patch delta 30 mcmbQO^j(p)fpzK|fsL#&tc-gm+c8PA=oc3yZ(hn;#ti_YiwXQb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(t{+ HPT>Xs-uDv6 delta 87 zcmX@4^h}ARfpu#1MwTvCmuLE+#i>Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o rDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hcf$PT>XsboC#~ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.chemistry.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.chemistry.doctree index d430d16acff1698cbee5f798ad1c718c1809123c..b8d1d71a6358a0997264edc94592b12f3ce3226b 100644 GIT binary patch delta 93 zcmaDYyI7W`fpzMPjVw(}3MKlX#i>Qb`o&o#mgYwK0Y&*)smUe9`UUwpnfk>=$(v6x Ssc{ihHTe`%)aE|kSVjOA86jW* delta 164 zcmZ21`&yQzfpzMGjVw(}E;IB)i&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE zQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(izmO~iQ2?`hLb9WZGOYEoe=<9 CRy=F~ diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.doctree index 0ba4f12809b5b6319d2061158e94e6755e9ec477..684a994803bde1a4d8b47aae012bcda42c1ec752 100644 GIT binary patch delta 49 wcmX>R-4M;vz&f>bBTE1iW5VP_MrjuP;-ciuGnl+Jkoc2lFu85c)sAKY0Ex^GOaK4? delta 165 zcmZpOJ`v5*z&dsBMwS33mlpld;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>q{5+&1rGV%4CEX`AnBEo1@! DU5Pv} diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.proteins.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.proteins.doctree index e4083017be83f88bb76e6da64f32c8a002946230..697f7a26c2de5bcd6eed698cce936657756936e1 100644 GIT binary patch delta 93 zcmaDLJ42SGfpu!{MwVJ8g(CgX;?$yI{olbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7H{TZp2tWPlP2>pr%(PM!nN6& PRga%)CT{*963Ykx7}QuY diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.toy_continuous_problems.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.toy_continuous_problems.doctree index e391b22396a74cdac0cf1358d8056fb5abcefadd..14ced67b51723315602edb1b09940e013edf6921 100644 GIT binary patch delta 49 wcmca^+;7a%z&f>MBg-!)#tD<>u}HJ%7Z)W@W)m;lyn~rb7)fk1oA^a00I9qXEC2ui delta 161 zcmeA-zHZFYz&iEJMwVYpE?e|Ni&Kk=^^3DgEX|Gd6Y~<2^Yc;?jrCLW%8K<1@^dnE xQ}UCGjr4Oelk^KJOEU8FjP)$_i!)17bqf-cvlG)(i#N+LHwaV5q?1fpzL#nT@Rfm>F+QW)zfW(JwAao~+Nde=-~EQzW6y`fNu_*mq%r1ZRLyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;R2`k=j4`5zA9*8Fq5>2DU%K MR55My87Ubi043jC2><{9 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.doctree index 667d6493fa26b7a54028f1f0d4d5ba5ff0b8c520..a2d519e3d75b2ad155f95865f1dcfd21302183c0 100644 GIT binary patch delta 32 ocmaEfpu!&MwX{cjP;Wza7wf27Z)XO)@3dfK;lot<8 delta 165 zcmcbkwM3hxfpzN4jVw=@To&tx7N-^!>lbI0SehH@C*~z4=jWv)8tbR#l@;q3J}s>XD6no7EhifoVq!WnMZ&srfr@je25VM DayvWW diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.doctree index 8a6d5d10de1f72068288d4be0eaf56998f1a97bd..4d4b0056bd37188b3695217b35e21a8784118d9f 100644 GIT binary patch delta 50 xcmbQOa#@+RfpzK$!HukQm>K6xmSU1-(JwAap8SWkZF4q@FC&uJ=0B|RJOHV{5HJ7$ delta 166 zcmcbtJX?jefpw~Y&_>od%q|D?LyJ?3iuH@LN-WKd^b_+Elk@XZ5{>m!^U8|#3-WU^ zbyM<_i;eViGL!TRDoZl*^NjT@^@}r0QgsUwld}`kQ;RnrWWLNu6_X|(WNzDR#Ws^0 E07>LK^#A|> diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.test_seeding.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.test_seeding.doctree index 3c611b189bf8abe1a3a9ce381e6bc2ebd236a33b..dfd41c77f4255522e96626ea894ac2afe13c0157 100644 GIT binary patch delta 134 zcmZqInytywz&drpMwWUeg?RnY;?$yI{oFpkBmJDrB>jTQl8pR3V?9g#;>?m%-GapA?8Nlc;>kaSTqnO^`b{mv{5J=&wDVEL Lw9P+-7BK<Qb`o&o#mgYwKiFt|1`FSac#`>vwWySgh`8k=o rDf!98M*2CKN%{qqB^mj7#(I|e#hE3kx&?{J*@@|?#hZIr9&iBwQn??0 diff --git a/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.util.doctree b/docs/poli-docs/_build/.doctrees/_autosummary/poli.tests.util.doctree index 722a14dd9996eecba5b9eb8ebde68ffd4f0ee0ef..9d61eab36d528469eef1b2b7f4c300350ee08485 100644 GIT binary patch delta 50 xcmca8(<#H+z&iCG??zT@CdP=#k&MzT`o%@bleh8MZ9c@bffGq=^ERH@i~yY#5Ig_? delta 166 zcmeB_xhTWhz&h29ZzHQUlS_?$XmM&$v3_w@iKV%beqvr?a(-S)qOpEzURkkzL4HoA zZc2V~v5|gGW|DqEWl2VUp0S>#esN|=s%}AIa&}^RYVqa-rgxlFF==uFlilVuJh6-b D!cjV7 diff --git a/docs/poli-docs/_build/.doctrees/contributing/a_new_problem.doctree b/docs/poli-docs/_build/.doctrees/contributing/a_new_problem.doctree index eb94ab2368bf725bd7e90180ef87d1e879ad8b3c..147fa3d0a9fdbafea0fddf03f23f8650ddfc4c9e 100644 GIT binary patch delta 64 zcmeC{WqQ-Y#L~bzHE|;gOA6zz$q!Q1In#6$DhzZKDh)O(ru8v$WU$9h$q(^b delta 98 zcmaFU!_?Qy#L~bzwRs~8OA6!Z$>&qmr3#AjlX6mX<1_Qp@^uu_bQCHKbQCIqIDYg0 U)ILUz4EES58DbGcD9%*?0NffQ2><{9 diff --git a/docs/poli-docs/_build/.doctrees/environment.pickle b/docs/poli-docs/_build/.doctrees/environment.pickle index b662209dcd31bfecc85f307b3829819f40ba763c..b3b2f92b1a60031b168fac565427db02ead8726f 100644 GIT binary patch literal 1404897 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 literal 2052465 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�Fn0}%wh&a<7+=}o_WVakZ2r547+HkpNS~#d!ms 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 z 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%0DOuOsF6B~iXP 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 HRcHP$Hz;41 diff --git a/docs/poli-docs/_build/.doctrees/getting_started/getting_started.doctree b/docs/poli-docs/_build/.doctrees/getting_started/getting_started.doctree index 6cff71f735904f5998ae80ae6874e4e2053170d6..972140b9a818384d087ba6633340c41f912fad13 100644 GIT binary patch delta 60 zcmeBQ&Uk+rBTED8)R2uVzBY^slc(8ca;E7hR2b+eR2ocHu-i1b&z2ose6xaGz9;}x CwGx{E delta 111 zcmcb=jInkz}$Nso` z_nhy1=R0T5-hKZ{=5N1dnl_lWhyVD{v|uo;SHjsjnjx}&N zBZFTjXndm@^oyF#2dntC&DH+(?xt$j+&OMnb4XcJ*`icA4LiG<6#gk*4o90sO%a1@ zDqVA`oV;U>Yi^ax>9D(P;i$*qA&bPYCi(Sbnc#2_tHv7#EJQH{`eD#R<& zaNVGKXo0FiqH07VdQ>;Wkj?x^V~nPkb<(0nf_~x?BDAcqrh0>7NT(bcgIActsd}kn zo$MD$gt|o0?-hK_L@Ih}5|nT%g_ z1CM_^ITn|4R>!3&cWM-3jpg}v^b2_+a_E$Wl+dRX863k0BRa|7~D4*`ub`U z&QD)Ps2{$4uMqk^bKpy67<<%S-ddQQA(coKG^U@?7E75CuQX*7CZ+$%+7G_YH}G{c zv?&$&V<`#g(NMd;obm_vuf(|=B9qDddCj$yVdVrc<&`MXcUf|szJX)=4l`9 zAsD$>bkEE;+HJRHq`WUs1@1<^I>)WAO?y*HXrXwsd@h#hX6XyY0S>VtUk}c^7&U$ z=e7&;@aHL5=mLj2A$nl}?o7h0Sx-`NsoC5|vvkdZJejkkSrcIUx&vRfz{1uB{6mW6 zxd9GchQPoqW@pI`4siI=t#GU9Hfh2FXZ`m<`8P7=tVzN7R@Odi_H7JxOuD#=`59OH zMGjA}{w*aPH_pXf`T#qv;PBevr%N1m+`{JP+~!PJQiB30s~A=c&O@ztf%lT@shcZcaqNPIFpKNFoyT>EZf7Rm)QRse+~ zGjL8G%o{1e6Y}7hk^9iJqXWE>yp^Ih%}RV_rQhGxwa(P z(1gFqdKh;mqa9^CMjL2lj~m#o8ESvNfzE;Z>Pb{jMcmeRg&k!uN*LV>Z+l}jnG0lS1HbBjznoI|(FO*-gk-!Le*WRoqT zE-HqN%fl9;W(f-ebed`2Xu_1}7A}r2fXHo$0&**tL5b5)Cc|^yj?0IAF@AZ@d!Ebh z`Jbmx`eeoRt8rIxnfThxrEkO;mDrBq&B{`7f;uuw17B7~@N1Q?U|FqMa;ny>IR4xy zfB9Og1Xoxgx1qq@nOI@va~u4T?qH!seZZ8Z*6Y=A`jj|bN?d|kuhYlNj^!5{bJfL` zb0&3>)s&Z=LfkPsXhZ@}6!iy;Ls z%7vQ~@4>+SrWhDC`0OHCTRjRC4gFo)z}h5* zJrDjyuafvSc%v&B8AvCs7l(=b60?>&g@yWP_@U=0-a(uCL*`fvyR|WI?2SUWjDa}c z0Jt<0jz40A$*lgupfZs5U7<1hlArq?8=O@%U~qxgPOs8XbgG> zvv3Oonx!CmkpAozLNi}Aq(^v-0b^ny{64$`OISg4%0q^F4?Rq!2UXodJk8`qSCaX) zhgBjJ0aYUhaTrT~0Ju8F;1Cw-TO;7e=qG3&%#NPIyJ?KhDH(;-%=<&-aXpNWC6Nak zdwn4GkK34Ig(m9A+hizibms1!VuR7P_;yL-_P1)JZTW zaJLf?Wn+jV$rgq?o$V@Y3~t+~^+*$MBA+oFHVd+E$X*sWa<|PiI}0N-CowtbD062S z{AderOX4%$@a!EF0QED`;As`X-8lv;cX6qZ6q?Q!U$B~LIXeTx zc9rN)vWuX!2ZHaC4A?P8)|>EQ9?FY?bL`lk!+f!<|*=uvvOD!F9gyGkns|5Xjz1^ZW1{srr@YPJ9X diff --git a/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/RaSP.doctree b/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/RaSP.doctree index 9ad9cf8480acf58e568fe7eaf6da9168d799ca23..2895766811e790cb647c0777023ba8e3f0602c31 100644 GIT binary patch delta 188 zcmbQSgYm+4M%D(_sYjzXvN9>KWjYoYm*!69Q^;i#f-t?bWj4=Ks9|Ju+gztA%E*@% yUzAu}prcS>prcS}u-RW(j|r!gI@9Kx8s8W(P2KFJJ%daWC*RcI+q~X5Qv(11H9DUF delta 260 zcmcbxopHtvM%D(_sk|{8S(y~rvw}+t3i695Z`8_V7lyDmHz>?tWDMWTZy?GjUr>~v zl#`kppP84IucMF_UzAu}prcS>prcR;#PORS=;|>MuU4IDa-=ce=EE8<7_r$rxj{i@ Qvx9aG&1~NsX diff --git a/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/aloha.doctree b/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/aloha.doctree index 46e66f9d7a415ca0d279777848b651e8b2fd9823..839e1f6f0657e17925cf34365d59edec3cb854ab 100644 GIT binary patch delta 58 xcmdm?-J#9Wz&f>dBg;n)MvckeIJ`L1bQCHKbQCHLCMR+}z#?{Ya~ro27XUWt63YMp delta 109 zcmeCs-l5IXz&ds9MwX8pj1H5vxV#h#it>|kQgh=o^V0Hl6w-7QDhzZKDuKADG!HB| Yxt8lDM+STBlnk*5BDHL;<>KZB0N?H-`~Uy| diff --git a/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/dockstring.doctree b/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/dockstring.doctree index f32c2039e1b2c868939c7eb7ce80467a79a1f8cc..da2aec8ec6fe9666ead28963e37bd43507bfba24 100644 GIT binary patch delta 59 ycmaD=exjVEfpzNMg)C}}Zzl6;L~*9+C{!5eC{!A3u2h@Ch()lMaWlWxZ9xEZXA`yn delta 95 zcmX?6{;Hg%fpzNrg)C}}e<%M{kCG}V%1_Ek&5h5@OUu_$NYhcMFwjw`1mgJ32^zhO R92xAfQ!>ONh)|p%3;@%jA^QLT diff --git a/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/drd3_docking.doctree b/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/drd3_docking.doctree index a96499a87d3af5064f132859760551449562f486..b50d209e6a13085103ee15dcf2d632db80955218 100644 GIT binary patch delta 131 zcmX>+jj??iBWnZe)IVMuS^2GGH8nho^K%kQQd2Y)GV>HlGEx;13i5L@4xl=OOW2a<@^&mtxFSEMC$kg+B@;qA;&NLl`3IiR5N`uLFZ1!Rk+`f60-Ao<; DB|k8C delta 146 zcmZpl#&~!dBWnZeR15Eoto&Bo+8Un4`8kOtsVSP1vrH5x+gZ6ywl>w@yx!_8BWnaV zBLlS4JyT(9_T3?Lu#ik)qG4Ut7s66PCra}TS7~>OaqR|KAxp#Mci`mlF) z?mg$+?|%0?=ghZbe;=28M}4pU);sA7G@yFPMDK=3_w-Cjn1RZ7* zD_60d4X-s^Yr%eK*cNP_*Lfu5N4U`vQIj?JqspwjTRoahL zo~?waZ>Zhvat%^q5M-F7V4w`vP#Rv2D1`!%qo^;73|+(?Q&bfxnqgvi?#26d4j^oq zdLElf2Bt~~!--^lOjC8tkH*ocWE5*Ava^ax3}hLKHiA<7OS=`5TIp024RQj~gijk- zk;B4m$NoN~XAv0fvC>FY@``Dorz}!bAcm3^gyABAy|^FNbgh)vtt%!1GbdFh8AT?@ z)RE1P<6!4bD$b{?r@EGEgk>3`BBG5dMO}l7GSMh5DmbkYphs1Sj8eP%2KOA?IXpPf z-E^ZWRUY=u z>Uca(*U&Dp;&NGO8Z0lH85$zb3BaPEHSBWz5_Z|=wU-O$mi`z7Sn3f01|8(LLHjmn zXCbw3gUS|C`!K`Ns)QQe2dx-mh(4RG7sH)&73KlITG*WIkKw5?-WvzTaXx6 zCuXNak4PkYQ!SA?t9cMCe|XypFxOzxsSt1{|G5Cq%SdnIyk*&;=Q^vix#|~OJ$wyU zYp++^ugZHaCiYfz&7;jXsP_)A8`{ibwDPWWv~ikOQ* z#8A^8g3lMantGfv&rYnn=q_`T;(@N3-pARgw!fs4?EQQC+;5BP4RqI*PO{DG^RRTa zW%$|AcE2>v&aDqgr~564XYcfEv`64Imxh6!r_;HY09oz@KD-V(%$?xF zgFt?6J0G6o3(xQ&$-SP0!72wdoF`_fKn(tsoa6Bl^n5~uN{BEC5h5Yn6T&rN(GG5$ n_IAR?OXxH`CU&J4#Fq4z>V9wX?Ztjvx?;cF_|&njk4ygm(cmkF delta 844 zcmey@&3L_>wSjf&8S9O#oI=vfj0_CnsS2qT1*yp;3YGb#3MKgp8Hr`73el4rge51t z3r*)rEY60?O#UEbEhvVrezT+SY9;|m9fk5#1%%qoEMgmZCqL7@&m_k@`JkWyr+$WP zhFOMmmh>e3Uraj8lNZW(Fqwd)ba>@6s8cFhS|b>V_JOzLNtC z>zTqJTH_E}&7oSuCWjcQfaC?OWF}8DQV0#KR?OHjSqv z0P#d8^SDUF3V@irAmTlUcmpI#dpPqFb5lzy3xN88v6%(Z?3Z!Z53J8GYYs5o z`(-%*W7{taq}>m!)vq)|8>AR)2~WnYj7FdhjV|H>V8fk(s=E22IAc$?@9TIn#6$DhzZKDh(zl8bwcjp;d-MJbyEz?nWlY YO&FTKab&Q^PRS69K$F^>Xw)MN07{rA=l}o! delta 212 zcmeC}W_;Vt$kM<%_0dL_4VsMeCOaB#S1c&XPs&NnjnB+W%hypz(^04}&{3!a;-b<# tu;64yqv**Ow8}_SpTGH{&PFE2Q$$0|57Y|M-&FYMcCnxA`S1c&XPs&NnjnB+W%hypz(^04}&{3!a;-b<# zu;63`y@bj3TKOCq?6Ffa#3D%0w%J}wftm32PLMF*7h^NN1IAuGH;jWb6V8>P~(j$im5;A)8?al9+6- zZ^l@HQ6sAn!pET1xYie}@K+9?_ttUb0iin_WA%E}5sscET2sd>q% z#avugR#w$XnMpaB`RPT81sRpKTvo*;l{u+a3W+%d8Hr#83c9*>TvH%+6K{$dc4Jzn zK;4tUmLZ*$%{=*^vb-i+T7FS(V#$;qmW-0zoGDpz85tO|<^hS)4AZPkW(I}~*$lG` zIq$&9>Dpn8)sy#Wr!n?Tj?>cN%<2KjN@sO$j?(F7WSj#O)Sdi5kcE>QtOY1BSwYW? zv3+y6UL7;zyUo`O1z4DLS%9{RP5x&p&!|0F&P$lAK?fSE8GnnO9npT0AAo1}IV5!%>u)mY0|d6sVn&wQiER659!&bFvOk z)-c!6*#~0o1`*pp#AXn&4oGAiDDB|{=_;u#0PEDqIx)GyTvigK!4It153I1GG(#I0 zbwJ~`nH!6PO)_MHnRFY-$~chKImtqtaouDIiz1F@p!V1)Ko3u{$YuO9$ua`~2HC-G diff --git a/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/rdkit_logp.doctree b/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/rdkit_logp.doctree index 207b81a97e305a6dd63c275f373229ff662bc0dc..1bb463ef03b465db436518c4b97a8aa6504e1ffc 100644 GIT binary patch delta 117 zcmezEGuwxyfpx0DMwYvLjA@f|1iU%ZbQCHKbQCHLHZKqpW#pWa!5%v$Lo5QD00000 delta 213 zcmbR3^V^4|fpu!ZMwYvLjCGUWhnNn@C{!5eC{zM*QE47n saI+l0DkBMsUX4YM+h-=6WN6`Ch!*_Ox!t#XmyJmKzL=*?c(cZSL0XbE(;r z`D}bjHT1e{PR*;iYpTKKHTS2!1YRGOZQVyg{P)G1N8olG-E7 ztg{t(1?#Xzo-^eceQ3Hp9Z#u+`7GT|F9KnE67%Q6wW$!9ZL<28U&-onx<3=1x2bB zwMB&0<%+JURjf7)(w8?TNVMa(c^mH;SBnlV zU9un?#MMz;_6t2dP?662kF~Rmh=IT1=;QL1C4 zl{qtTP)Nr$%~#UYOA;IaDs}ad%>repu9tG)mD7qcE;TC4xS(VDvp4iw&c^i&qu6Kl z_Wz2}@4aYze{LrkaYhE6?@P43ilia-0QC<^c@xF%*`Pw!2EQAxYbi0Q*@!qIOVS2xk}uqcdtA8H}`T^c>@~ueddT zcg*7SBj1M}`FS9gsXTeOt1kIjQ+8}Z{}TE-ec%7oq3*RocLOie;ehy(eBN{=36Ug4 z7VuzCe~udg?v{VOCFIw;D5k=2Q4E_%AU)j)R9y0TdOAE8u>2BXLm6G9-)d^=}GignkxI3)ks4;R#`yJ`5l6 za29B6;H0>@ul#@Q|8qOyaTD<-y*Dr}Y%;_N8i}CTCtZLW@aU?#r&*M*(-$INyYHC^ z(r{56H51%rM&>ch9u}|*ll0mUPS&;SNh$fgGqUs?c@xAaSr8iM)zGBi7t9SW*^yRgT5IpTbmp7m*|B-{-xV3 zGEaw|i#;P8-dc}+>2fW&w(`R}y<@#|vnQ?Vh`&4WTy=3gL-d_w%GYKaV5nJKOATe^ zD{O1g(-G#ZEbPsh;{!9tS}HBH>1gV4_uI_EQn=)6^m1ydJ;Jtfj4k9gxg{?^)2CrM z1i?2}B+&@<5RXiA|CQH(n<|Zjp=R h2I)Ydcn`V5%aCnegY5DGT+sCQ)NihHF8V84`V%A+rh)(f diff --git a/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/template.doctree b/docs/poli-docs/_build/.doctrees/using_poli/objective_repository/template.doctree index 42468f1cd3d2e4b65585235d79d367be2397e245..547322d4d57f7b21017e2992ae0cb435b1f53344 100644 GIT binary patch delta 62 zcmez6aKwS7fpx0oMwTcprk=l(Te#gh({vOn40IGK4JNP-!svv{TSzZi~Mh8SJrBGQ=XV YNN?u0n8(Gn3t7ufRPLtD5iSXQ0N8aUhX4Qo delta 204 zcmcbygmK4GMwSNFscSc~beb@lPVO@~saQ~ypOllD8=sk%man6brlU|{prcR;#6_if yV8P7^reTaEDE4REe8XZPr_v>YCQnW<4VpZ|IYBdnJ$6clSPyYJHqUTAzy|5 delta 115 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 Ua{x6kG~oSbK4-Gx2 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 diff --git a/docs/poli-docs/_build/.doctrees/using_poli/the_basics/defining_an_observer.doctree b/docs/poli-docs/_build/.doctrees/using_poli/the_basics/defining_an_observer.doctree index f6ab745092ab97e96472778a28c9d3279d2faf9e..daf668133235db14b15d8356830eea2cb574c2c8 100644 GIT binary patch delta 1269 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 tCzpUL`26ImLaOR8#2q?cLH-;QmmeoL=Nr~^x z_Icj-InRC0d)o7VpyT(E@qqDY;n1Y9!HI?-&Mq$t%kj`)ud4CEXgsQ=ot2C;5>|Ru zAujZ3P|7_4SDo&EQM)$tjceS9Y9Y!_=Ol>|yySF%m-9aYW%jyTt*9Hyy{oL@N@mbq z$)w%T?R8s3bI+JqeE1P6)9p>=4ZEbkB7sZmX+Quw|Y9}!eedoI+^@hMGa zm9)3o<7IXdpo32)qKSx?X$~aiNK#N$W;h{hOju4OLM#)A3%n{YDJ8^f0wbk}wvc4_ zM2Lwh>49h{B4{eh><|P-)HFr)a@+zuDexgp6sR*cDig09J%PBurO3bO)zO8u=P1Ru+TyI`cQsrSi^`3?rPhCw4?!_5X*hPHIKGAAm-Z!)|NcrJS?1QF3MP25WFDeX(LST zXe(OHCzE{I)z#(n&|6$hmwGtmcbOi1yy9ojJ$S#Z9B%J7fuqfbXR_K>c&)7h-63Qb zzBQ{J;B|F0J=)R?Cj-||B^=oP6mr3Z?d{lQ(*132{{s6=3;eNot7*>L#@#m51fE_8 z?DyA>?i@l=VSBOffv<6P^TSiaS zt^>34P(i>EvcIQy90wk112=C*t=S%UnYUq|nM{I%ZsX0@=YVn6I2otgxnP3-PCPum zQJCHzMqynyz&BD&5;ifLFs`TeMO1Pmw_uxGQ!+Z?yw1`boJb`^Xil!GRNyGkOZ=Pfz-Q|GO|+7!-@?}WDY6c zVRR|8PtDIkOF$l|$N5%xZ=ehnz~=)_^dy0nfpL(buye3BC(lYQ(&>RBv=UN->(~!0 z#92^kApe_E4PD-$R!5{;IplFdx{!dHXKSJM{1-r?7){d%!qul4Jt ceo|>mSJ`Grx3q++PGmNx3lX{j9WRJ~0Uq1Rg#Z8m delta 1577 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 v9Y{2Uu|YP1+!5BW7%jF za_z&1%xrAP=$}mHHj_10+Rw(1a_pBghU1J>nn}}yqm6a%`%-L8)AVD{ojuPv&w0+d z=e|?3H1`haNA<7YsQN%(A4hvpl$U5;+BeYKzQf<$+SSw9YqNIRtRw4e)?NJ9itMK4 zkmEPutGFfqFFGX0kFk)a;(G~)lG5SI_Jn@gbeZTb&d5o)T9ir=2OS0ME}_uzsW{HI ztb@JyFz!2IaK~lDOtBfi7v;cSVq}R7qm330 zB;i7JGPXT2OCz}EG9yr$N23QF**NYpa@S0$R|S&rq$`6CE&``qt5u+urWTz8WtnV* zsV$x_dx}nT#uY4(hSqX3)|chrc)5`~PnBn~(^^!VyPI9px;#0pc6pU+uVz;mtnTDc zamBBa;T}_!pPYunnM~i}Z0$zFLh!tpz@R~v79%Xkt8$YGd)!vMTa|7wgkcGoiH*Xu zbtXKhT1E4`|Ai^(#FQ{ooj_N(vmBpQ%cSFjd6it8s4Vh}%c?df-mj^qVo>dy)P}ce zJ6Vf_N$11bs5O$$>k?S81W#cZj@HSf7vl|mS(ipED1jU{B-P6_j;#9I?1+T3@(ScO zWUylbTZfk#jC2Ht8agyA3CkO8?89(ucVn`O@g=&@XyimxYr%<=cGD8N$U7`Wf!9dqICB;Tyf3nw67GBb?7Og5=@!;{SFm$hpTBLE z=^=HEMB+F$G*2;;PVMcN<_s3EQ+umuG4g9^Xi>O5(^9Y~9r;^wDF?kyv2+^S+PRE1Kw;b|dY_t#&`RXIipNIXC{2HHK?j*Wi;5qi!FUhRMiO z{Lt|+JE1bg*!f$_T@0S)!H=!57g z%YGJs1xpoc!X44PIq;)6EQ+KKCZz(tniOnNy4eFA&MWr#o7#wK)=Phmjx$AfS?IdZ zj^-{Sub^}tV5Xp9Xu#LuZ})X^o|%Eds)vvI0=~QTWJmIc`bec!|lP? zoxKBFJ9>wEhV0#4J;Ou(!HK{DTWH*(2lLeI7iPo^$O=YnL0N3Ip$N&HU diff --git a/docs/poli-docs/_build/.doctrees/using_poli/the_basics/registering_an_objective_function.doctree b/docs/poli-docs/_build/.doctrees/using_poli/the_basics/registering_an_objective_function.doctree index 27fa59874221013ab3cdf91e9a2275e2f0ea19d1..4e6a86f93afb2dba0b5f4ca181141035ce4a26c8 100644 GIT binary patch delta 64 zcmeyfo$1VWCYA=)sRuW*Y^z~Zn#@=~gELJ>p~65%q0(UUuKHF+jtutLDH&oBm~u`s E009RUMgRZ+ delta 122 zcmX@Jo$1eZCYA=)sUJ78Y^!0hVq##Jys=zlQhlRhK~a8EPHJv^W?ovpjzXG_LWO~j bLM0FvmF9s3H^ayEvAmfpzMPjVx0|8IMh_6|d$&PlD@EGXg5$dSPwJ0(Lb0z+zx7yzXb B6`cS8 delta 94 zcmZ1+do-4%fpzMxjVx0|8Lv;y5wDgkD9TUDNzIMV%uCDHQAmqVOwP_pt<+J7-~3+O SoslDhJ$6clSOj6UTf_jQej|YZ diff --git a/docs/poli-docs/_build/.doctrees/using_poli_baselines/line_bayesian_optimization.doctree b/docs/poli-docs/_build/.doctrees/using_poli_baselines/line_bayesian_optimization.doctree index ca17dde53b42066d6480c8b96108f386abf07e87..e92b873fe75ea2dd7980bf8d1ff36cdc71fa21ec 100644 GIT binary patch delta 61 zcmZ2r@z0#KfpzL<>5Z)Sc^S`7zQ~`(krtnroSl successfully finished\n", - "Cleaning BuildModel...DONE\n" - ] - } - ], - "source": [ - "from poli import objective_factory\n", - "\n", - "problem_info, f, x0, y0, run_info = objective_factory.create(\n", - " name=\"foldx_stability\",\n", - " caller_info=None,\n", - " observer=None,\n", - " wildtype_pdb_path=wildtype_pdb_path\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from poli_baselines.solvers.simple.random_mutation import RandomMutation\n", - "solver = RandomMutation(\n", - " black_box=f,\n", - " x0=x0,\n", - " y0=y0,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " ********************************************\n", - " *** ***\n", - " *** FoldX 5 (c) ***\n", - " *** ***\n", - " *** code by the FoldX Consortium ***\n", - " *** ***\n", - " *** Jesper Borg, Frederic Rousseau ***\n", - " *** Joost Schymkowitz, Luis Serrano ***\n", - " *** Peter Vanhee, Erik Verschueren ***\n", - " *** Lies Baeten, Javier Delgado ***\n", - " *** and Francois Stricher ***\n", - " *** and any other of the 9! permutations ***\n", - " *** based on an original concept by ***\n", - " *** Raphael Guerois and Luis Serrano ***\n", - " ********************************************\n", - "\n", - "1 models read: 3ned_Repair.pdb\n", - "1 models read: 3ned_Repair.pdb\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.21\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.46\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.21\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.46\n", - "\n", - "Starting BuildModel\n", - "Reading IA119L;\n", - "Residue to Mutate ILEA119 has residue index 118\n", - "Mutating residue = ILEA119 into LEU\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Your file run OK\n", - "End time of FoldX: Fri Jan 19 09:18:49 2024\n", - "Total time spend: 8.69 seconds.\n", - "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", - "Cleaning BuildModel...DONE\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " ********************************************\n", - " *** ***\n", - " *** FoldX 5 (c) ***\n", - " *** ***\n", - " *** code by the FoldX Consortium ***\n", - " *** ***\n", - " *** Jesper Borg, Frederic Rousseau ***\n", - " *** Joost Schymkowitz, Luis Serrano ***\n", - " *** Peter Vanhee, Erik Verschueren ***\n", - " *** Lies Baeten, Javier Delgado ***\n", - " *** and Francois Stricher ***\n", - " *** and any other of the 9! permutations ***\n", - " *** based on an original concept by ***\n", - " *** Raphael Guerois and Luis Serrano ***\n", - " ********************************************\n", - "\n", - "1 models read: 3ned_Repair.pdb\n", - "1 models read: 3ned_Repair.pdb\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.27\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.41\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.27\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.41\n", - "\n", - "Starting BuildModel\n", - "Reading NA23C;\n", - "Residue to Mutate ASNA23 has residue index 22\n", - "Mutating residue = ASNA23 into CYS\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Your file run OK\n", - "End time of FoldX: Fri Jan 19 09:18:51 2024\n", - "Total time spend: 1.53 seconds.\n", - "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", - "Cleaning BuildModel...DONE\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " ********************************************\n", - " *** ***\n", - " *** FoldX 5 (c) ***\n", - " *** ***\n", - " *** code by the FoldX Consortium ***\n", - " *** ***\n", - " *** Jesper Borg, Frederic Rousseau ***\n", - " *** Joost Schymkowitz, Luis Serrano ***\n", - " *** Peter Vanhee, Erik Verschueren ***\n", - " *** Lies Baeten, Javier Delgado ***\n", - " *** and Francois Stricher ***\n", - " *** and any other of the 9! permutations ***\n", - " *** based on an original concept by ***\n", - " *** Raphael Guerois and Luis Serrano ***\n", - " ********************************************\n", - "\n", - "1 models read: 3ned_Repair.pdb\n", - "1 models read: 3ned_Repair.pdb\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.27\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.41\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.27\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.41\n", - "\n", - "Starting BuildModel\n", - "Reading GA126Q;\n", - "Residue to Mutate GLYA126 has residue index 125\n", - "Mutating residue = GLYA126 into GLN\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Your file run OK\n", - "End time of FoldX: Fri Jan 19 09:18:57 2024\n", - "Total time spend: 4.86 seconds.\n", - "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", - "Cleaning BuildModel...DONE\n" - ] - } - ], - "source": [ - "solver.solve(max_iter=3)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "All y values: [array([[9.41639]]), array([[8.99477]]), array([[8.42085]]), array([[3.16703]])]\n", - "best stability: [9.41639]\n", - "Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLQDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYNTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK\n" - ] - } - ], - "source": [ - "print(f\"All y values: {solver.history['y']}\")\n", - "print(f\"best stability: {solver.get_best_performance()}\")\n", - "print(f\"Associated sequence: {''.join(solver.get_best_solution().flatten())}\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "poli-dev", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.18" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} \ No newline at end of file diff --git a/docs/poli-docs/_build/.jupyter_cache/executed/8d4497d872605fedd707c447b2e6c83f/base.ipynb b/docs/poli-docs/_build/.jupyter_cache/executed/4158632ea056a4b647992ecd2d975233/base.ipynb similarity index 79% rename from docs/poli-docs/_build/.jupyter_cache/executed/8d4497d872605fedd707c447b2e6c83f/base.ipynb rename to docs/poli-docs/_build/.jupyter_cache/executed/4158632ea056a4b647992ecd2d975233/base.ipynb index 1b1ff85c..00ecf988 100644 --- a/docs/poli-docs/_build/.jupyter_cache/executed/8d4497d872605fedd707c447b2e6c83f/base.ipynb +++ b/docs/poli-docs/_build/.jupyter_cache/executed/4158632ea056a4b647992ecd2d975233/base.ipynb @@ -9,7 +9,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['aloha', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_select', 'penalized_logp_lambo', 'rdkit_logp', 'rdkit_qed', 'toy_continuous_problem', 'white_noise']\n" + "['aloha', 'dockstring', 'foldx_stability', 'gfp_select', 'rdkit_logp', 'rdkit_qed', 'toy_continuous_problem', 'white_noise']\n" ] } ], @@ -27,7 +27,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['aloha', 'dockstring', 'drd3_docking', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_cbas', 'gfp_select', 'penalized_logp_lambo', 'rasp', 'rdkit_logp', 'rdkit_qed', 'sa_tdc', 'super_mario_bros', 'toy_continuous_problem', 'white_noise']\n" + "['aloha', 'dockstring', 'drd3_docking', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_cbas', 'gfp_select', 'penalized_logp_lambo', 'rasp', 'rdkit_logp', 'rdkit_qed', 'rfp_foldx_stability_and_sasa', 'sa_tdc', 'super_mario_bros', 'toy_continuous_problem', 'white_noise']\n" ] } ], @@ -51,7 +51,7 @@ "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, _ = objective_factory.create(name=\"white_noise\")" + "f, x0, y0 = objective_factory.create(name=\"white_noise\")" ] }, { @@ -59,12 +59,20 @@ "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ "x0: [['1' '2' '3']]\n", - "y0: [[0.57433265]]\n" + "y0: [[-1.16173153]]\n" ] } ], @@ -89,7 +97,7 @@ { "data": { "text/plain": [ - "array([['1', '4', '3']], dtype=')" + "(PosixPath('/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/101m.pdb'),\n", + " )" ] }, "execution_count": 2, @@ -123,77 +123,77 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=N) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=N) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CA) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CA) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=C) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=C) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=O) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=O) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CB) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CB) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'S' for Atom (name=SD) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'S' for Atom (name=SD) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE3) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE3) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ3) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ3) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CH2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CH2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NZ) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NZ) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OH) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OH) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OXT) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OXT) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n" ] } @@ -324,7 +324,7 @@ "text": [ " ********************************************\n", " *** ***\n", - " *** FoldX 4 (c) ***\n", + " *** FoldX 5 (c) ***\n", " *** ***\n", " *** code by the FoldX Consortium ***\n", " *** ***\n", @@ -338,6 +338,7 @@ " *** Raphael Guerois and Luis Serrano ***\n", " ********************************************\n", "\n", + "1 models read: 101m_Repair.pdb\n", "1 models read: 101m_Repair.pdb\n" ] }, @@ -375,6 +376,30 @@ "name": "stdout", "output_type": "stream", "text": [ + "\n", + "BackHbond = -142.58\n", + "SideHbond = -48.61\n", + "Energy_VdW = -179.63\n", + "Electro = -8.33\n", + "Energy_SolvP = 245.28\n", + "Energy_SolvH = -238.89\n", + "Energy_vdwclash = 3.42\n", + "energy_torsion = 6.70\n", + "backbone_vdwclash= 158.16\n", + "Entropy_sidec = 105.87\n", + "Entropy_mainc = 231.69\n", + "water bonds = 0.00\n", + "helix dipole = -8.75\n", + "loop_entropy = 0.00\n", + "cis_bond = 0.00\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.56\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -32.28\n", + "\n", "Starting BuildModel\n", "Reading MA0G;\n", "Residue to Mutate META0 has residue index 0\n", @@ -386,8 +411,8 @@ "output_type": "stream", "text": [ "Your file run OK\n", - "End time of FoldX: Fri Dec 22 12:10:14 2023\n", - "Total time spend: 20.63 seconds.\n", + "End time of FoldX: Wed Feb 7 16:44:52 2024\n", + "Total time spend: 22.96 seconds.\n", "validated file \"101m_Repair_1.pdb\" => successfully finished\n", "Cleaning BuildModel...DONE\n" ] @@ -395,7 +420,7 @@ { "data": { "text/plain": [ - "CompletedProcess(args=['/Users/sjt972/foldx/foldx', '--pdb', '101m_Repair.pdb', '--command', 'BuildModel', '--mutant-file', '/Users/sjt972/Projects/protein-optimization-docs/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/individual_list.txt', '--water', '-CRYSTAL', '--pH', '7.0'], returncode=0)" + "CompletedProcess(args=['/Users/sjt972/foldx/foldx', '--pdb', '101m_Repair.pdb', '--command', 'BuildModel', '--mutant-file', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/individual_list.txt', '--water', '-CRYSTAL', '--pH', '7.0'], returncode=0)" ] }, "execution_count": 11, @@ -447,7 +472,22 @@ "cell_type": "code", "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/l3/qk9dx6g958765kmn_2wn34t00000gn/T/ipykernel_25734/1758354106.py:1: DeprecationWarning: \n", + "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n", + "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n", + "but was not found to be installed on your system.\n", + "If this would cause problems for you,\n", + "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n", + " \n", + " import pandas as pd\n" + ] + } + ], "source": [ "import pandas as pd\n", "\n", diff --git a/docs/poli-docs/_build/.jupyter_cache/executed/f2885123d5acde20c7d317555d2324d1/base.ipynb b/docs/poli-docs/_build/.jupyter_cache/executed/f2885123d5acde20c7d317555d2324d1/base.ipynb deleted file mode 100644 index 7b6601a0..00000000 --- a/docs/poli-docs/_build/.jupyter_cache/executed/f2885123d5acde20c7d317555d2324d1/base.ipynb +++ /dev/null @@ -1,164 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# No output: we don't have it installed.\n", - "!pip freeze | grep dockstring" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "poli 🧪: creating an isolated black box function.\n", - "poli 🧪: starting the isolated objective process.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "from poli import create\n", - "\n", - "problem_info, f, x0, y0, _ = create(\n", - " name=\"dockstring\",\n", - " target_name=\"drd2\" # The target protein.\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ExternalBlackBox(L=inf, num_evaluations=0)\n" - ] - } - ], - "source": [ - "print(f)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "array([[11.9]])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "f(x0)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ExternalBlackBox(L=inf, num_evaluations=1)\n" - ] - } - ], - "source": [ - "print(f)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "poli 🧪: Creating the objective from the repository.\n" - ] - } - ], - "source": [ - "problem_info, f_logp, x0_logp, y0_logp, _ = create(\n", - " name=\"rdkit_logp\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogPBlackBox(L=inf, num_evaluations=1)\n" - ] - } - ], - "source": [ - "print(f_logp)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "poli-docs", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.18" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} \ No newline at end of file diff --git a/docs/poli-docs/_build/.jupyter_cache/global.db b/docs/poli-docs/_build/.jupyter_cache/global.db index 4b2ca44b37a830a7c0264d035cdc3d610410ee93..5cc0cdfb9e867f14b3cf9383fe70cc9e97d83241 100644 GIT binary patch literal 40960 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 literal 40960 zcmeI*&u-(!9S3mAlC`nBvXYYzi-id%K-Wk_%^wc`s6bm~qc+>Foy4(=7(t*?l6V>wNKDnkGb^?dh8`Yd*~zd30hzeMGpmf=?o=%*IC(e5_y5${SF|JB1h!> zJ~JXbB!~X+gS(wXn(e`;7bGS(UNv$#jsIN#s`QryU&Lw%KmY;|fB*y_009U<;AIq;+*rM~dE-Xz z_oXCgb!ER52I0MvN%8i6qkhmZ59)84Xf+R41@!@-WdVk?a z28oQ!cT^z{?(8?;UE8OP_XeSiPXZhimA{AJ_FyfwVPqc?ZBcjtq{hIwli#?Jaq zrC8jo-^dxAek32p54x%^*9^wVAp6{$fi&rC=Gr8mzqYxxmHXY{40AXdd?v%B-Y0uX=z1Rwwb z2tWV=5P$##An>9J=nMSl|G%iUi?|>F0SG_<0uX=z1Rwwb2tWV=Q-M`A$(8@7KdenB z)8%-F00bZa0SG_<0uX=z1Rwwb2teRP5qKr9um7)>_Kos`jjuP}F8xi-B0&HG5P$## zAOHafKmY;|fWV~$#)Y((s~*O36j$TV65nOj_ot)mrb)erxr(kdB|hUi-;t&`btd zai)7Nq()(qzxrKAvfb%xiJ;#cw3P1Wax^VLK7F$=Il7_}JXups`7r1WyYg{8#_BN& z9re(K<4SwbjUHBKxw8tJR(10<%e1g7X{j*TT3crOP>+5XslD_gz1wLy2(9Q=)0LIp zIGMJxtQpOUnLQn1S{^~c^I;m6y$2+UUn~GzLsrUE@zx`MqFQ~Q!VP7#H&%S zCR|I{jJf_iE!$>PIO%agx012e@*>;z-N= zzs8CBnK&M$6JtgHO!B(oId?-hREG%8DYgB!&0E}wn9`-~wlCc)ulV!3^YiQ9u{_~2 z+jrDUCtKJ5lt3LRXiYT%Zd<-XJu0Al-npLY7&Uw-__Q`h3v zm1iy-$0zB})EyU-{1wLh#N8wp-Bj=$17V&;e9yN@dZ2C{m~1UQkneeGz;_8t-7zB6 zO(8a=zN7p9D;vKx%0E_bNDzPk1R$_{f%QKwf1B7M1Rwwb2tWV=5O@v+(jTd@J85s} z-RjGYNxF3JIUAFtM%kz_NmS^OCfpHfBu@GhHI^nFKcmvm8!vL{2);2^LRf@&KH<+{ elR=Ro009U<00Izz00bZa0SG_<0ucC?0{;j6rm&^} diff --git a/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.AbstractBlackBox.html b/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.AbstractBlackBox.html index b1262ba9..634ad9fd 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.AbstractBlackBox.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.AbstractBlackBox.html @@ -583,6 +583,17 @@

poli.core.abstract_black_box.AbstractBlackBox +
+observer_info#
+

The information given by the observer after initialization.

+
+
Type
+

object or None

+
+
+
+
parallelize#
@@ -682,7 +693,7 @@

poli.core.abstract_black_box.AbstractBlackBoxProblemSetupInformation) – The problem setup information object.

  • batch_size (int, optional) – The batch size for parallel execution, by default None.

  • parallelize (bool, optional) – Flag indicating whether to parallelize the execution, by default False.

  • -
  • num_workers (int, optional) – The number of workers for parallel execution, by default None.

  • +
  • num_workers (int, optional) – The number of workers for parallel execution, by default we use half the available CPUs.

  • evaluation_budget (int, optional) – The maximum number of evaluations allowed for the black box function, by default float(“inf”).

  • diff --git a/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.NegativeBlackBox.html b/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.NegativeBlackBox.html index 232201b7..bc2df87b 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.NegativeBlackBox.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.core.abstract_black_box.NegativeBlackBox.html @@ -561,7 +561,7 @@

    poli.core.abstract_black_box.NegativeBlackBoxProblemSetupInformation) – The problem setup information object.

  • batch_size (int, optional) – The batch size for parallel execution, by default None.

  • parallelize (bool, optional) – Flag indicating whether to parallelize the execution, by default False.

  • -
  • num_workers (int, optional) – The number of workers for parallel execution, by default None.

  • +
  • num_workers (int, optional) – The number of workers for parallel execution, by default we use half the available CPUs.

  • evaluation_budget (int, optional) – The maximum number of evaluations allowed for the black box function, by default float(“inf”).

  • diff --git a/docs/poli-docs/_build/html/_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.html b/docs/poli-docs/_build/html/_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.html index 88a23795..52bf7ab7 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.html @@ -544,7 +544,7 @@

    poli.core.util.files.download_files_from_github.download_file_from_github_re

    poli.core.util.files.download_files_from_github.download_file_from_github_repository#

    -poli.core.util.files.download_files_from_github.download_file_from_github_repository(repository_name: str, file_path_in_repository: str, download_path_for_file: str, tag: str = 'master', commit_sha: Optional[str] = None, exist_ok: bool = False, verbose: bool = False, strict: bool = True) None#
    +poli.core.util.files.download_files_from_github.download_file_from_github_repository(repository_name: str, file_path_in_repository: str, download_path_for_file: str, tag: str = 'master', commit_sha: Optional[str] = None, exist_ok: bool = False, parent_folders_exist_ok: bool = True, verbose: bool = False, strict: bool = True) None#

    Download a file from a Github repository.

    Parameters
    @@ -555,6 +555,7 @@

    poli.core.util.files.download_files_from_github.download_file_from_github_re
  • tag (str, optional) – tag or branch to download, defaults to master

  • sha (str, optional) – sha of commit to download, overwrites tag if specified

  • exists_ok (bool, optional) – whether to overwrite existing files

  • +
  • parent_folders_exist_ok (bool, optional) – whether to create parent folders if they do not exist

  • verbose (bool, optional) – whether to print progress

  • strict (bool, optional) – whether to raise exceptions on errors

  • @@ -566,6 +567,8 @@

    poli.core.util.files.download_files_from_github.download_file_from_github_re GITHUB_TOKEN_FOR_POLI if it exists. If it does not exist, it will try to download without it. Note that the rate limit is 60 requests per hour for anonymous requests.

    +

    To create a GitHub token like this, follow the instructions here: +https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token

    diff --git a/docs/poli-docs/_build/html/_autosummary/poli.objective_factory.create.html b/docs/poli-docs/_build/html/_autosummary/poli.objective_factory.create.html index 76fdd6ab..532403dd 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.objective_factory.create.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.objective_factory.create.html @@ -544,14 +544,14 @@

    poli.objective_factory.create

    poli.objective_factory.create#

    -poli.objective_factory.create(name: str, *, seed: Optional[int] = None, caller_info: Optional[dict] = None, observer: Optional[AbstractObserver] = None, force_register: bool = True, force_isolation: bool = False, batch_size: Optional[int] = None, parallelize: bool = False, num_workers: Optional[int] = None, evaluation_budget: int = inf, quiet: bool = False, **kwargs_for_factory) Tuple[ProblemSetupInformation, AbstractBlackBox, ndarray, ndarray, object]#
    +poli.objective_factory.create(name: str, *, seed: Optional[int] = None, observer_init_info: Optional[dict] = None, observer: Optional[AbstractObserver] = None, force_register: bool = True, force_isolation: bool = False, batch_size: Optional[int] = None, parallelize: bool = False, num_workers: Optional[int] = None, evaluation_budget: int = inf, quiet: bool = False, **kwargs_for_factory) Tuple[ProblemSetupInformation, AbstractBlackBox, ndarray, ndarray, object]#

    Instantiantes a black-box function by calling the create method of the associated factory.

    Parameters
    diff --git a/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.html b/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.html index f392f893..ae47f490 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.html @@ -555,7 +555,7 @@

    poli.objective_repository.gfp_cbas.register.GFPCBasBlackBoxProblemSetupInformation) – The problem setup information object.

  • batch_size (int, optional) – The batch size for parallel execution, by default None.

  • parallelize (bool, optional) – Flag indicating whether to parallelize the execution, by default False.

  • -
  • num_workers (int, optional) – The number of workers for parallel execution, by default None.

  • +
  • num_workers (int, optional) – The number of workers for parallel execution, by default we use half the available CPUs.

  • evaluation_budget (int, optional) – The maximum number of evaluations allowed for the black box function, by default float(“inf”).

  • diff --git a/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.html b/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.html index 550de5ec..b235a7c0 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.html @@ -555,7 +555,7 @@

    poli.objective_repository.gfp_select.register.GFPBlackBoxProblemSetupInformation) – The problem setup information object.

  • batch_size (int, optional) – The batch size for parallel execution, by default None.

  • parallelize (bool, optional) – Flag indicating whether to parallelize the execution, by default False.

  • -
  • num_workers (int, optional) – The number of workers for parallel execution, by default None.

  • +
  • num_workers (int, optional) – The number of workers for parallel execution, by default we use half the available CPUs.

  • evaluation_budget (int, optional) – The maximum number of evaluations allowed for the black box function, by default float(“inf”).

  • diff --git a/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.html b/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.html index f1ca9c73..f41041f5 100644 --- a/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.html +++ b/docs/poli-docs/_build/html/_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.html @@ -643,7 +643,7 @@

    poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlack
  • info (ProblemSetupInformation) – The problem setup information object.

  • batch_size (int, optional) – The batch size for parallel execution, by default None.

  • parallelize (bool, optional) – Flag indicating whether to parallelize the execution, by default False.

  • -
  • num_workers (int, optional) – The number of workers for parallel execution, by default None.

  • +
  • num_workers (int, optional) – The number of workers for parallel execution, by default we use half the available CPUs.

  • evaluation_budget (int, optional) – The maximum number of evaluations allowed for the black box function, by default float(“inf”).

  • diff --git a/docs/poli-docs/_build/html/_sources/contributing/a_new_problem.md b/docs/poli-docs/_build/html/_sources/contributing/a_new_problem.md index 748987e3..3c22e099 100644 --- a/docs/poli-docs/_build/html/_sources/contributing/a_new_problem.md +++ b/docs/poli-docs/_build/html/_sources/contributing/a_new_problem.md @@ -233,7 +233,7 @@ If you can find your problem in this list, then you're set! You should be able t ```python from poli import objective_factory -problem_info, f, x0, y0, _ = objective_factory.create( +f, x0, y0 = objective_factory.create( name="your_problem", ..., your_arg_1=..., # <-- Keywords you (maybe) needed diff --git a/docs/poli-docs/_build/html/_sources/getting_started/getting_started.md b/docs/poli-docs/_build/html/_sources/getting_started/getting_started.md index 2a6ec5c3..a8b83b03 100644 --- a/docs/poli-docs/_build/html/_sources/getting_started/getting_started.md +++ b/docs/poli-docs/_build/html/_sources/getting_started/getting_started.md @@ -128,7 +128,7 @@ Let's write a small script that creates an instance of `white_noise` from the re import numpy as np from poli import objective_factory -problem_info, f, x0, y0, run_info = objective_factory.create(name="white_noise") +f, x0, y0 = objective_factory.create(name="white_noise") x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. for _ in range(5): diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/RaSP.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/RaSP.md index 9bd22f1b..5457ca88 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/RaSP.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/RaSP.md @@ -36,7 +36,7 @@ Follow that with conda activate poli__rasp ``` -Supposing you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: +Assuming you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: ```python from pathlib import Path @@ -53,7 +53,7 @@ if __name__ == "__main__": # You could have more if you want. ] - problem_info, f_rasp, x0, y0, _ = objective_factory.create( + f_rasp, x0, y0 = objective_factory.create( name="rasp", wildtype_pdb_path=wildtype_pdb_paths_for_rasp, ) @@ -79,7 +79,7 @@ if __name__ == "__main__": :::{tab-item} In isolation -Supposing you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: +Assuming you have [`3ned.pdb`](https://www.rcsb.org/structure/3ned) in the same directory as this script: ```python from pathlib import Path @@ -96,7 +96,7 @@ if __name__ == "__main__": # You could have more if you want. ] - problem_info, f_rasp, x0, y0, _ = objective_factory.create( + f_rasp, x0, y0 = objective_factory.create( name="rasp", wildtype_pdb_path=wildtype_pdb_paths_for_rasp, ) diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/aloha.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/aloha.md index 085865b0..0266d92b 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/aloha.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/aloha.md @@ -19,7 +19,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="aloha") +f, x0, y0 = objective_factory.create(name="aloha") # Example input: x = np.array([["A", "L", "O", "O", "F"]]) # must be of shape [b, L], in this case [1, 5]. diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/dockstring.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/dockstring.md index 90ee2eaf..79071730 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/dockstring.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/dockstring.md @@ -76,7 +76,7 @@ import numpy as np from poli import objective_factory if __name__ == "__main__": - problem_info, f, x0, y0, _ = objective_factory.create( + f, x0, y0 = objective_factory.create( name="dockstring", target_name="DRD2", string_representation="SMILES", diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/drd3_docking.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/drd3_docking.md index b11a21a1..711ac0bc 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/drd3_docking.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/drd3_docking.md @@ -85,7 +85,7 @@ Running this objective function will create an `./oracle` folder on your working ::::{tab-set} -:::{tab-item} (Isolated) in the `poli__lambo` environment +:::{tab-item} (Isolated) in the `poli__tdc` environment After the setup described above, you can simply run the following code from @@ -93,7 +93,7 @@ After the setup described above, you can simply run the following code from from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="drd3_docking", force_register=True ) diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_rfp_lambo.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_rfp_lambo.md index 4856ed92..8bbd363c 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_rfp_lambo.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_rfp_lambo.md @@ -16,7 +16,7 @@ We need you to have `foldx` installed, and available in your home directory. We ### Python environment -We expect you to have [cloned and installed the `lambo` repository](https://github.com/samuelstanton/lambo). Since there are some files we can't install automatically using `pip install git+...`, we ask you to create a `conda` environment for the lambo tasks: +We recommend that you have [cloned and installed the `lambo` repository](https://github.com/samuelstanton/lambo). Since there are some files we can't install automatically using `pip install git+...`, we recommend that you create a `conda` environment for the lambo tasks: ``` # From the root of the poli repository @@ -44,6 +44,13 @@ In particular, we need Make sure the data is avaliable. +:::{admonition} We can install `lambo` automatically +:class: dropdown + +These steps can be skipped. If so, we will install LaMBO automatically and download the relevant files using `PyGithub`. That being said, the API of GitHub limits queries if you are doing anonymous queries. If you decide to skip installing lambo, we recommend that you add an environment variable called `GITHUB_TOKEN_FOR_POLI` whose value is a personal token. [See how to create one here.](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + +::: + ## How to run You can only run this objective function either in the `poli__lambo` environment, or as an isolated process (which runs this environment underneath). @@ -62,8 +69,8 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( - name="foldx_rfp", +f, x0, y0 = objective_factory.create( + name="foldx_rfp_lambo", ) # Example input: diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_sasa.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_sasa.md index 93364dae..14193a97 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_sasa.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_sasa.md @@ -62,7 +62,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_sasa", wildtype_pdb_file=wildtype_pdb_file ) @@ -91,7 +91,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_sasa", wildtype_pdb_file=wildtype_pdb_file, force_register=True, diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_stability.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_stability.md index ee3c6cc8..005ca855 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_stability.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/foldx_stability.md @@ -61,7 +61,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_stability", wildtype_pdb_file=wildtype_pdb_file ) @@ -90,7 +90,7 @@ from poli import objective_factory wildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_stability", wildtype_pdb_file=wildtype_pdb_file, force_register=True, diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/penalized_logp_lambo.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/penalized_logp_lambo.md index c6c46e52..cfef640e 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/penalized_logp_lambo.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/penalized_logp_lambo.md @@ -57,7 +57,7 @@ import numpy as np from poli import objective_factory # Using create -problem_info, f, x0, y0, _ = objective_factory.create(name="penalized_logp_lambo") +f, x0, y0 = objective_factory.create(name="penalized_logp_lambo") # An example input print(x0) @@ -77,10 +77,3 @@ f.terminate() - `penalized: bool = True`. Whether we are evaluating penalized logP or not. - `string_representation: str = "SMILES"`. Can be either `"SMILES"` or `"SELFIES"`. - - diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_logp.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_logp.md index 64d1653f..529b497a 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_logp.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_logp.md @@ -33,7 +33,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_logp", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, @@ -58,7 +58,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_logp", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_qed.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_qed.md index cb8e5e21..e0ed3622 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_qed.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/rdkit_qed.md @@ -32,7 +32,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_qed", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, @@ -57,7 +57,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_qed", alphabet=alphabet, string_representation="SELFIES", # Can be either SMILES or SELFIES diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/sa_tdc.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/sa_tdc.md index 70b3d5fa..409d6dbe 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/sa_tdc.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/sa_tdc.md @@ -10,20 +10,9 @@ This objective function computes the synthetic accesibility of a small molecule ## Prerequisites -### Create the `poli__lambo` environment - -#### Create the environment from the yml file - -This can easily be done by running - -```bash -# From the base of the poli repo -conda env create --file src/poli/objective_repository/sa_tdc/environment.yml -``` - ## How to run -You can only run this objective function either in the `poli__lambo` environment, or as an isolated process (which runs this environment underneath). +You can only run this objective function either in the `poli__tdc` environment, or as an isolated process (which runs this environment underneath). :::{warning} Running this objective function will create an `./oracle` folder on your working directory, where it will download the relevant files for the oracle to work. @@ -31,7 +20,7 @@ Running this objective function will create an `./oracle` folder on your working ::::{tab-set} -:::{tab-item} (Isolated) in the `poli__lambo` environment +:::{tab-item} (Isolated) in the `poli__tdc` environment After the setup described above, you can simply run the following code from @@ -43,7 +32,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="sa_tdc", force_register=True ) diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/template.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/template.md index f792a0c9..9a280570 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/template.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/template.md @@ -25,7 +25,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="problem_name") +f, x0, y0 = objective_factory.create(name="problem_name") # Example input: x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/toy_continuous_problems.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/toy_continuous_problems.md index f2aec6f3..c371ae0e 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/toy_continuous_problems.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/toy_continuous_problems.md @@ -46,7 +46,7 @@ function_name = "ackley_function_01" n_dimensions = 2 # it's 2 by default. # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="toy_continuous_problem", function_name=function_name, n_dimensions=n_dimensions, # For some, this can be arbitrary. @@ -65,7 +65,7 @@ print(f(x)) # Should be [[0.0]] in this example Some optimization algorithms (like [LineBO](https://arxiv.org/abs/1902.03229) or [SAASBO](https://proceedings.mlr.press/v161/eriksson21a.html)) rely on the assumption that there is a _low intrinsic dimensionality_ to the problem. Roughly speaking, this means that only a subset of the variables are actually relevant to the problem in question. This `poli` objective allows you to create such problems. For example, consider `camelback_2d` (which is usually only defined in two dimensions). You can embed this function into, say, 30 dimensions by creating the objective as follows: ```python -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="toy_continuous_problem", function_name="camelback_2d", embed_in=30, # This will create a function that takes 30d input values diff --git a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/white_noise.md b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/white_noise.md index a9198eb8..e8245b6d 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/white_noise.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/objective_repository/white_noise.md @@ -20,7 +20,7 @@ import numpy as np from poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="white_noise") +f, x0, y0 = objective_factory.create(name="white_noise") # Example input: x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. diff --git a/docs/poli-docs/_build/html/_sources/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb b/docs/poli-docs/_build/html/_sources/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb index 3d633361..49ab6619 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb +++ b/docs/poli-docs/_build/html/_sources/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb @@ -55,7 +55,7 @@ ], "source": [ "from poli.core.registry import get_problems\n", - "get_problems(include_repository=True)" + "get_problems(only_available=False)" ] }, { @@ -249,7 +249,7 @@ "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, run_info = objective_factory.create(\n", + "f, x0, y0 = objective_factory.create(\n", " name=\"foldx_stability\",\n", " caller_info=None,\n", " observer=None,\n", diff --git a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/defining_an_observer.ipynb b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/defining_an_observer.ipynb index a0badd16..c4d23c3f 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/defining_an_observer.ipynb +++ b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/defining_an_observer.ipynb @@ -304,13 +304,33 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "tags": [ "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: Creating the objective from the repository.\n", + "poli 🧪: initializing the observer.\n" + ] + }, + { + "ename": "ValueError", + "evalue": "too many values to unpack (expected 3)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 7\u001b[0m\n\u001b[1;32m 4\u001b[0m observer \u001b[38;5;241m=\u001b[39m SimpleObserver()\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# We instantiate the objective function\u001b[39;00m\n\u001b[0;32m----> 7\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m objective_factory\u001b[38;5;241m.\u001b[39mcreate(\n\u001b[1;32m 8\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124maloha\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 9\u001b[0m observer\u001b[38;5;241m=\u001b[39mobserver,\n\u001b[1;32m 10\u001b[0m )\n", + "\u001b[0;31mValueError\u001b[0m: too many values to unpack (expected 3)" + ] + } + ], "source": [ "from poli import objective_factory\n", "\n", @@ -318,7 +338,7 @@ "observer = SimpleObserver()\n", "\n", "# We instantiate the objective function\n", - "problem_info, f, x0, y0, _ = objective_factory.create(\n", + "f, x0, y0 = objective_factory.create(\n", " name=\"aloha\",\n", " observer=observer,\n", ")" @@ -448,7 +468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" }, "orig_nbformat": 4 }, diff --git a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/intro_to_poli.ipynb b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/intro_to_poli.ipynb index b044d5da..1aff5cb7 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/intro_to_poli.ipynb +++ b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/intro_to_poli.ipynb @@ -128,7 +128,7 @@ "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, _ = objective_factory.create(name=\"white_noise\")" + "f, x0, y0 = objective_factory.create(name=\"white_noise\")" ] }, { diff --git a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/isolation.ipynb b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/isolation.ipynb index b9ad64f2..c7366580 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/isolation.ipynb +++ b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/isolation.ipynb @@ -1 +1 @@ -{"cells":[{"cell_type":"markdown","metadata":{},"source":["# Isolating black box objective functions"]},{"cell_type":"markdown","metadata":{"vscode":{"languageId":"plaintext"}},"source":["Each black-box objective function in `poli` lives inside a `conda` environment. For example:\n","- the `foldx` stability objective lives inside `poli__protein`, which has `biopython`, `pdb-tools` and other libraries that are required to interface well with proteins and their representations.\n","- the `dockstring` objective lives inside `poli__dockstring`, which includes babel as part of its installation.\n","\n","There are two ways of running objective functions: **having the right dependencies**, or **in isolation**."]},{"cell_type":"markdown","metadata":{},"source":["## Running objective functions in isolation"]},{"cell_type":"markdown","metadata":{},"source":["Let's say that your current environment doesn't have the package `dockstring` installed. You can still run the objective function:"]},{"cell_type":"code","execution_count":3,"metadata":{},"outputs":[],"source":["# No output: we don't have it installed.\n","!pip freeze | grep dockstring"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: creating an isolated black box function.\n","poli 🧪: starting the isolated objective process.\n"]},{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]}],"source":["from poli import create\n","\n","problem_info, f, x0, y0, _ = create(\n"," name=\"dockstring\",\n"," target_name=\"drd2\" # The target protein.\n",")"]},{"cell_type":"markdown","metadata":{},"source":["As you can see, `poli` warns us that it is creating the conda environment associated with the black box function, and it is creating an isolated process where the objective can be run.\n","\n","This can be verified by checking the type of `f`:"]},{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=0)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["This black box is an `ExternalBlackBox`, meaning that it is listening to an isolated process running `python` inside the `poli__dockstring` environment."]},{"cell_type":"markdown","metadata":{},"source":["We can still evaluate `f` like normal:"]},{"cell_type":"code","execution_count":10,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]},{"data":{"text/plain":["array([[11.9]])"]},"execution_count":10,"metadata":{},"output_type":"execute_result"}],"source":["f(x0)"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["## When you have the right dependencies..."]},{"cell_type":"markdown","metadata":{},"source":["However, when you have the right dependencies, the `create` method returns the actual objective function. Let's use for example `rdkit_logp`:"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: Creating the objective from the repository.\n"]}],"source":["problem_info, f_logp, x0_logp, y0_logp, _ = create(\n"," name=\"rdkit_logp\"\n",")"]},{"cell_type":"markdown","metadata":{},"source":["Now, if we print `f_logp`, we can see that the create method returned the actual objective black box."]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["LogPBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f_logp)"]},{"cell_type":"markdown","metadata":{},"source":["## Conclusions"]},{"cell_type":"markdown","metadata":{},"source":["- `poli` is able to instantiate objective functions inside isolated environments.\n","- If the dependencies are met, the objective function is created directly instead."]},{"cell_type":"markdown","metadata":{},"source":["## Read more"]},{"cell_type":"markdown","metadata":{},"source":["You can check the individual dependencies of each black box inside their implementation, or in [their documentation](../objective_repository/all_objectives.md)."]}],"metadata":{"kernelspec":{"display_name":"poli-docs","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.18"}},"nbformat":4,"nbformat_minor":2} +{"cells":[{"cell_type":"markdown","metadata":{},"source":["# Isolating black box objective functions"]},{"cell_type":"markdown","metadata":{"vscode":{"languageId":"plaintext"}},"source":["Each black-box objective function in `poli` lives inside a `conda` environment. For example:\n","- the `foldx` stability objective lives inside `poli__protein`, which has `biopython`, `pdb-tools` and other libraries that are required to interface well with proteins and their representations.\n","- the `dockstring` objective lives inside `poli__dockstring`, which includes babel as part of its installation.\n","\n","There are two ways of running objective functions: **having the right dependencies**, or **in isolation**."]},{"cell_type":"markdown","metadata":{},"source":["## Running objective functions in isolation"]},{"cell_type":"markdown","metadata":{},"source":["Let's say that your current environment doesn't have the package `dockstring` installed. You can still run the objective function:"]},{"cell_type":"code","execution_count":3,"metadata":{},"outputs":[],"source":["# No output: we don't have it installed.\n","!pip freeze | grep dockstring"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: creating an isolated black box function.\n","poli 🧪: starting the isolated objective process.\n"]},{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]}],"source":["from poli import create\n","\n","f, x0, y0 = create(\n"," name=\"dockstring\",\n"," target_name=\"drd2\" # The target protein.\n",")"]},{"cell_type":"markdown","metadata":{},"source":["As you can see, `poli` warns us that it is creating the conda environment associated with the black box function, and it is creating an isolated process where the objective can be run.\n","\n","This can be verified by checking the type of `f`:"]},{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=0)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["This black box is an `ExternalBlackBox`, meaning that it is listening to an isolated process running `python` inside the `poli__dockstring` environment."]},{"cell_type":"markdown","metadata":{},"source":["We can still evaluate `f` like normal:"]},{"cell_type":"code","execution_count":10,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n"," warnings.warn(\n"]},{"data":{"text/plain":["array([[11.9]])"]},"execution_count":10,"metadata":{},"output_type":"execute_result"}],"source":["f(x0)"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["ExternalBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f)"]},{"cell_type":"markdown","metadata":{},"source":["## When you have the right dependencies..."]},{"cell_type":"markdown","metadata":{},"source":["However, when you have the right dependencies, the `create` method returns the actual objective function. Let's use for example `rdkit_logp`:"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["poli 🧪: Creating the objective from the repository.\n"]}],"source":["f_logp, x0_logp, y0_logp = create(\n"," name=\"rdkit_logp\"\n",")"]},{"cell_type":"markdown","metadata":{},"source":["Now, if we print `f_logp`, we can see that the create method returned the actual objective black box."]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["LogPBlackBox(L=inf, num_evaluations=1)\n"]}],"source":["print(f_logp)"]},{"cell_type":"markdown","metadata":{},"source":["## Conclusions"]},{"cell_type":"markdown","metadata":{},"source":["- `poli` is able to instantiate objective functions inside isolated environments.\n","- If the dependencies are met, the objective function is created directly instead."]},{"cell_type":"markdown","metadata":{},"source":["## Read more"]},{"cell_type":"markdown","metadata":{},"source":["You can check the individual dependencies of each black box inside their implementation, or in [their documentation](../objective_repository/all_objectives.md)."]}],"metadata":{"kernelspec":{"display_name":"poli-docs","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.18"}},"nbformat":4,"nbformat_minor":2} diff --git a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/optimizing_an_objective_function.md b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/optimizing_an_objective_function.md index 07c4fa33..f1c71b45 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/optimizing_an_objective_function.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/optimizing_an_objective_function.md @@ -49,7 +49,7 @@ if __name__ == "__main__": assert "our_aloha" in get_problems() # Creating an instance of the problem - problem_info, f, x0, y0, run_info = objective_factory.create( + f, x0, y0 = objective_factory.create( name="our_aloha", caller_info=None, observer=None ) diff --git a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/registering_an_objective_function.md b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/registering_an_objective_function.md index 3177730b..bff6c506 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli/the_basics/registering_an_objective_function.md +++ b/docs/poli-docs/_build/html/_sources/using_poli/the_basics/registering_an_objective_function.md @@ -205,7 +205,7 @@ from poli import objective_factory if __name__ == "__main__": # Creating an instance of the problem - problem_info, f, x0, y0, run_info = objective_factory.create( + f, x0, y0 = objective_factory.create( name="our_aloha", caller_info=None, observer=None ) print(x0, y0) diff --git a/docs/poli-docs/_build/html/_sources/using_poli_baselines/bayesian_optimization.md b/docs/poli-docs/_build/html/_sources/using_poli_baselines/bayesian_optimization.md index c6c07c30..530a3686 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli_baselines/bayesian_optimization.md +++ b/docs/poli-docs/_build/html/_sources/using_poli_baselines/bayesian_optimization.md @@ -17,7 +17,7 @@ from poli import objective_factory from poli_baselines.solvers import VanillaBayesianOptimization -problem_info, f_ackley, _, _, _ = objective_factory.create( +f_ackley, _, _ = objective_factory.create( name="toy_continuous_problem", function_name="ackley_function_01", n_dimensions=2, diff --git a/docs/poli-docs/_build/html/_sources/using_poli_baselines/line_bayesian_optimization.md b/docs/poli-docs/_build/html/_sources/using_poli_baselines/line_bayesian_optimization.md index 7f11ba72..cfa886cd 100644 --- a/docs/poli-docs/_build/html/_sources/using_poli_baselines/line_bayesian_optimization.md +++ b/docs/poli-docs/_build/html/_sources/using_poli_baselines/line_bayesian_optimization.md @@ -17,7 +17,7 @@ from poli import objective_factory from poli_baselines.solvers import LineBO -problem_info, f_ackley, _, _, _ = objective_factory.create( +f_ackley, _, _ = objective_factory.create( name="toy_continuous_problem", function_name="ackley_function_01", n_dimensions=2, diff --git a/docs/poli-docs/_build/html/_static/logo_protein_opt.png b/docs/poli-docs/_build/html/_static/logo_protein_opt.png deleted file mode 100644 index 2163df30448646c3f2954b11f2c94ced06ab8294..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31476 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�l!(Dw{>!MDf`#T#2n+Ze0{6Rqxn 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 { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/LICENSE.txt b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/LICENSE.txt deleted file mode 100644 index cc557ece..00000000 --- a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ -Fonticons, Inc. (https://fontawesome.com) - --------------------------------------------------------------------------------- - -Font Awesome Free License - -Font Awesome Free is free, open source, and GPL friendly. You can use it for -commercial projects, open source projects, or really almost whatever you want. -Full Font Awesome Free license: https://fontawesome.com/license/free. - --------------------------------------------------------------------------------- - -# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) - -The Font Awesome Free download is licensed under a Creative Commons -Attribution 4.0 International License and applies to all icons packaged -as SVG and JS file types. - --------------------------------------------------------------------------------- - -# Fonts: SIL OFL 1.1 License - -In the Font Awesome Free download, the SIL OFL license applies to all icons -packaged as web and desktop font files. - -Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com) -with Reserved Font Name: "Font Awesome". - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - -SIL OPEN FONT LICENSE -Version 1.1 - 26 February 2007 - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting — in part or in whole — any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. - --------------------------------------------------------------------------------- - -# Code: MIT License (https://opensource.org/licenses/MIT) - -In the Font Awesome Free download, the MIT license applies to all non-font and -non-icon files. - -Copyright 2022 Fonticons, Inc. - -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. - --------------------------------------------------------------------------------- - -# Attribution - -Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font -Awesome Free files already contain embedded comments with sufficient -attribution, so you shouldn't need to do anything additional when using these -files normally. - -We've kept attribution comments terse, so we ask that you do not actively work -to remove them from files, especially code. They're a great way for folks to -learn about Font Awesome. - --------------------------------------------------------------------------------- - -# Brand Icons - -All brand icons are trademarks of their respective owners. The use of these -trademarks does not indicate endorsement of the trademark holder by Font -Awesome, nor vice versa. **Please do not use brand logos for any purpose except -to represent the company, product, or service to which they refer.** diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/css/all.min.css b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/css/all.min.css deleted file mode 100644 index aad4b1d9..00000000 --- a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/css/all.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2022 Fonticons, Inc. - */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e5a0"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e494"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-notdef:before{content:"\e1fe"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e5a9"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e5aa"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-stapler:before{content:"\e5af"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before{content:"\e5b4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-display:block;font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands;font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-meta:before{content:"\e49b"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-space-awesome:before{content:"\e5ac"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:Font Awesome\ 6 Free;font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:Font Awesome\ 6 Free;font-weight:900}@font-face{font-display:block;font-family:Font Awesome\ 5 Brands;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-display:block;font-family:FontAwesome;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/js/all.min.js b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/js/all.min.js deleted file mode 100644 index f504685d..00000000 --- a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/js/all.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see all.min.js.LICENSE.txt */ -!function(){"use strict";var C={},c={};try{"undefined"!=typeof window&&(C=window),"undefined"!=typeof document&&(c=document)}catch(C){}var z=void 0===(s=(C.navigator||{}).userAgent)?"":s,l=C,e=c;function a(C,c){var z,l=Object.keys(C);return Object.getOwnPropertySymbols&&(z=Object.getOwnPropertySymbols(C),c&&(z=z.filter((function(c){return Object.getOwnPropertyDescriptor(C,c).enumerable}))),l.push.apply(l,z)),l}function M(C){for(var c=1;cC.length)&&(c=C.length);for(var z=0,l=new Array(c);zC.length)&&(c=C.length);for(var z=0,l=new Array(c);zC.length)&&(c=C.length);for(var z=0,l=new Array(c);zC.length)&&(c=C.length);for(var z=0,l=new Array(c);z>>0;z--;)c[z]=C[z];return c}function K(C){return C.classList?G(C.classList):(C.getAttribute("class")||"").split(" ").filter((function(C){return C}))}function $(C){return"".concat(C).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function J(C){return Object.keys(C||{}).reduce((function(c,z){return c+"".concat(z,": ").concat(C[z].trim(),";")}),"")}function Z(C){return C.size!==X.size||C.x!==X.x||C.y!==X.y||C.rotate!==X.rotate||C.flipX||C.flipY}function CC(){var C,c,z=u,l=F.familyPrefix,e=F.replacementClass,a=':host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}';return"fa"===l&&e===z||(C=new RegExp("\\.".concat("fa","\\-"),"g"),c=new RegExp("\\--".concat("fa","\\-"),"g"),z=new RegExp("\\.".concat(z),"g"),a=a.replace(C,".".concat(l,"-")).replace(c,"--".concat(l,"-")).replace(z,".".concat(e))),a}var cC=!1;function zC(){F.autoAddCss&&!cC&&(function(C){if(C&&v){var c=n.createElement("style");c.setAttribute("type","text/css"),c.innerHTML=C;for(var z=n.head.childNodes,l=null,e=z.length-1;-1").concat(e.map(LC).join(""),"")}function VC(C,c,z){if(C&&C[c]&&C[c][z])return{prefix:c,iconName:z,icon:C[c][z]}}function HC(C,c,z,l){for(var e,a,M=Object.keys(C),L=M.length,V=void 0!==l?tC(c,l):c,H=void 0===z?(e=1,C[M[0]]):(e=0,z);e+?PD^L$-7 z_nv+IpZ|9L=Z0~{n43*9ndMGAd2s0L(>9;N81F{x)^jh}wq0HPvCWLRE?`Xi-T4>4 z@9my#pE-uH*f5hmvh{+uZ9A{<5BoME@56AT7a&4esr17C3S8F(m+ZLWUw&?!hx%?| zOy6_yJI~!F_3cL9zfSEP5J4UuCYc=WqGlzn$%0yq|d_6l3hy%I1sa-iM~7Nj`v1OZ2UdN_b@!%hvKA>+Cl!vnL1^hw0a_~*UO~FmTvG$w%lk@x(?zm1o zMs!%7DaH>AJNa{>ZYnd?uA}pwWLc4)(%_^C=iQ0J40{nr6VXcjrC9bc8eW+M62_jSYR6H;+u3z?xv) z=J!FgJIUgB8%Q^iuE52_cqc`B6wi+8Si3)y;@#iwhY#;?+pnX2P57x^%ID;DV5;qx zCffa^xg?7v+)zEJ zuid8{+DWwQwL4|oZ>m?UIno_C-6PskDZO3BS*I!HL7Xm4Aio0})Sl59_iXvOa-Dw0 z+IUY}e)Fs}cU8-j-wm z7+`!?J0IdZVUcGN;R$AoI>`^$sb5-;_U~xtpJXYj7cP!GIXDS;%iHc}r(aH6P8~7o zyJ%}llym$}8o_sGJ|qFpxw*We9F=v-b7=y3ClRK;AP!-|D^y=tgpr0g#vc`NPCHK7 zPJZ65i}Bq~9qoP@G-skOD33bBqMfOBJ(Hqc+B;63HjK>AgER*YkQL()<)sPapJYkO z*G_lVn8I-FwgoN};mKLNNc)P)IN z|2}Dz(?2n0s%HZ0jdy1bkSBdu*hv$xfiwpPO)`NiI%B8tQu$8*;E$nRABEvhwc95@ z;aEN|?2MD(6Z;P75*+0d`&js$I^vx&m4&GkH2wJW6VuO3|6=-A(|cyN z%)DpjnwiO&8)t5r`S8rgXFf4=|I7n3kIj5zW@_f?nP+CcJM-+!?wRLiUYz;$%qugm z&irNOKWAoU{yNjzr|vWN+57VQiu+3Y>igF1+pur*zSH*oWZ!T1{chi1_eb{Mx&OZX zpWFZW{g3Vc+Wv3ue`f#g{r|du@BRb(|Mt57_0a3%uP=Z7)31O3_1&+(c%XjZ%mY^) zxbeWP2R?M*BM0t1@Rb8!J@Dj#XAb<^ffo+Ebl^7!mmFMv@V{1jV=5Cygr-uT)yY#w^*MV*5~2Z-Y?eY-q(KIUY|u`ea^@FT(oyP*5|Ul@7p_x z^|@87&nK`xyY@c5_sPBA-}~I&-|zkN-q)t3X=B=)4q$!iSf7Q{$76lAPMB;GxSf7th-;MQoaQX{apGT%2#rixw{gdfmiuJi*=8Bo?W^Taxd~oI?GxyGXdge1T z56wJ|_4!VFeZG(N`7ze#rJ3Kg*JnT0N7|?F3+{`H^(oI=pI5Lxzu)ivKU$yfiS?;r zeXeY;&m9Loe&EYkpRc#q=hs-D;e+Fcug{@h9s2R1A7GXK?!R0%7s>f@p6pB6pJ#uX zeIol$nPutiX`XsHbzy2G)^TXzc%nzEknzxuYn>U&}%^S??%}MiG^BRz(tIey-E6mHy_n14(%glEp=2G(# zJl|%XXKpjMnrFj*rn%f)YA!Svc)#g=6e#P<-ut};uk8(c{a($hc;4{r_q^u$i|2=) zXFbn&9`iiv+3C67)9wCm_Z#j%yFcN6r~730aqeT>E8WZ8OWfV=iaY1F-5$5g&E3rP zsO!tFjjnaBURTj&x%>j#VO{tq{{G+Jy_|0?F8%Ug+sl`i@|mnjHMrC zEYkp%b0AueW_cUYgM%-m+V~4@mdl9|@Wv_() z%0D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띰kq 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 I{1*cQ03ENt>Hq)$ diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.ttf b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.ttf deleted file mode 100644 index c5ac00957778d6d0b317615275b6511277b246e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60236 zcmd443!Gd?WI%*&>jgQd^AU|{Hq*Ij-&W4sGzC$GNl%KhGd zJO35NoQD{T{`QUgZh6DlJBFTTtgVl+C-&@p{gr#NpIy8F_dWs`-HQ{>O%5OOzXf#e zz3#>XH@uU75#`;*n4@doo3FmI>&q{_m9gXpaqhnBt~{`x{S$i`c{lD)Uw`Fwuitm( zUz&{l^EBS++W+PoZd`xKUwwnIXAUyvd6c294(?)iKJ%GFSLo}Om`}lDjQy)~*P9yY z(OG4R&*Iq4VvVT7kXMV(vuz)yE*ZH!$oc!l}nz?ZL9R3De z-D0IntcCqK%49A_y+m%*vy5%pb-}r8mgSBfm32VfD!43az*qCnAfLwJ6krxmk(WeD zc{)$&v0$I4)XvjAv&S6Mxe80y&(n4LK1!!pN<2R$pHt*HStiaA3h6qfN`=L#94o*4 z8eMOO3XZ4n?5utM=uw5vF?k+&S(bf{&I52i)irJ9o1Pc-FhqG%&E?wVBds*f(|zJz zoNF#ioSzb9$-1!m^YmVMuXVi{FUQM^wltm>?G@)LqAuy?_Sc`c+E#zoq79ChwRw5{ zfjjFxqK>Gab(~fzjXK+T`(C82;(pvyry;99E6cE-r+a4QeZ(JB#tEOnwWfExdVcCP z+|%B$yNX@S_OREp zH?TLdz3duxEqfE&$F5`7vp2K->@DoA>;`rtyNTV*-o_5FTiDy#=h$E6x^ge(YWbP` z-{=2V{!ax~2o>53s|yzwE-74ExU6t_;fliR3!g81q42GutLQ2EivHr};+e%gy{)}% zy`8-i&%FDYTGdf?Rn@9ijZ|aRcr{sVt+rRQ)z0dw>W1p(>KWBDtFNnGTD`1#eRY5J zhU!h#+p1I5JFD-h-c|jJ>fO~3R`08Rxcc$xO!a~4XRF_@K2@Eo{;v95_4m~mt4FFY zRbQ^w=Kb@b`N({9J~`hu-#(w4FVAnDKXZP|{Mqx{=XcCsI{*6lJLm76pPv7~{C)FZ zod4VTpUnSa{-5T5HUFFW7v_)5zcl~H1@FRH3uiB!yD+h^W8sp8%NA~2II!^cgSZb9)s!g`oGh${!8)u1O5B@cl9Ur zZ|UFEzbelBHLiV5$^mHfxaDA)`|S6J|fbTuIoXZ_30kn zt+U`CgW?Ur!;A&L7W{N@CU_s+7rZBUXYf{}w*;>V_9N{96oUC+XE21Euq*=q$yne| zbT`tU1D*!_-+-TqGk=fVlYnmoJ{R~~ z_lobQ_`Se)x^Kw0%9ro^XK^8{3>b*e>-3|;BkH@ejh`6 zGo6?J_n*Z_3Ia!|_fN`FtD}0!K=^sz&tSi?2tcGKY9>~Gg<(=#?s!Xz0*2dad2TQ?1%&;sZ zWGBnBF4oO@SU+3E2H6lRvoSUf4Y!u9V;k6M>`b{50a+H(b)gdQZFM;h;D=($_j6nh7|likJsg5AyTVee)4viGs~vk$TR*hkn$*~i%Z z?32L5r`QAR)9gX^8R*o{qUQJ)yi_)e4gxs z3((7;qb2A_UvB{!)Nil=eF+*|0#SRf1sFF#t4kocaIFPVq%=MthynIl5J!5Q1qr0r zThM~^%@!n)?zf;7>02xyPJF8c?MQF10GtaOLP84ZO%|k)68{rq0B^G(i}Zj6guh!X zfP{nnAt8^Hq!t0a^RFy;2T`IdC-rXwC9762KWO5BWj>-eCFvB|)4= z56Dw5z&!;d1mF}{I}*S_tbleBfX7$?v?TzCu>xpI0RCWwOC*3xSOL620DfVG%Orq{ zSmAOB;3ig}cL2awtN>aQfWKMc^Af0@g)c}D`EMZ)Ao>(t5~yxPj|A{OEBYjWuUQd% zMgR_H#my4H*Q|(k5{UdB%B#3+`@&Kws?}P;OLiWtNB@n`%0lo=X z5rV@Zf$CFr0#H{fzp6^0XRDe7^kr5BzY?Iwu_}0!06msf!J`DM7b$p=0DY2GQAYyw zOjZR=2+-4675qfN`jDc&1dtT0x=I3M2CHt6zy^?RmO%ZrdWHnZ3RVSf2ne^;U4Yji zKZq3cBoO(_kOx2pu`2ow0UJh&{zAY;kfL7@uu-HpNr1d!)ms6#;ruw#DG6*1(mN$U znz8D8BtUAh>Rl2bzgYDzBtYJ=>fI6qZa;`TfUQS*p9JFP>W3wWwtpOX03;==&PZSz zk%AWqAURp}LBMB`uOR)t1V(uJA>b*TCp^tb5cK^W@&M7U=a2`8`oDnu?~&h%6n&FG zlz#+y0OT>Nz9fOFe!vHC&y`3)M*@L| zFCq^hT+KfL_*>+u?4L*=Sw8;@2_(zs|4D+#{|b44z}s(-2apVz2aO0w#?ON$1SI3< zK^Fp%|0D7MlD!LF2_)|qfRlx@aQ;T5zy|@z_l0vMkc?jdP6$XQF90_LB<~l1(*@v0 zoCjVO0MNl~0qavxR#ki2Qqz z2SB^C1>l@O_!`dNjr8jhU=^^1Z%BZBz!ttKLFE4ic>t^i zw(z(Fk^dI*0N4_2;oA~KeinHE$-M>8ap6hiLH~vCN`U3T77hb`hVxX%rzOA!VGF;O zKyrKG4-!abzNkoGA4b|GfgMD;8*mBA`3Ta_NMIjF`VSJ=Cm35aBvAQ_c?s0^#WfPx z3{uDl0@87dn>955zB#`b~1aAzz@9>C0sC9VUu+RTwgi81n*frr{KaPlP=Dkv{!RcxyZDQX z0!Z(0;EI6s0$)5=0LcNqxLp8)Jm-sh1Q0*)#d`%X(13V_EM>3sqiyB+C+0z})FK94;3g4zW-6ENsCzVrfVa0ApW63J)HDu`eNY3SjIIQkMY6zKm2Az!>Ox#3O*A zzwjeo0Sx@ij|2oT_7$Xt0LCVe#syHn;75Re0At@m3f=}V_Bhg30gQbeX`2AXfWIT{ z0vJYx{76~=+2Z_2Rsdt*ks}2GG}hxsKr;ZNzH_8c0QF6Nq+bB_L4E{$0HD6ckCX*a zU*<0Kq3OJ%ju+C-_V`KX2th-1-F^G)UKHxu0+4_wgSo5oM2ZmvY3h z)p4U^)|qf_cfQ^EfQz~MT)SO&yB>G_QVpu>)H~I0YDw*4?JL^TZq?o6-s8T{{Z03C zo?*|;p2OaPciLO^J>X~lasNjH$-q5-7I=>@j{6GC~)H{wh2f{-}AT`T0mJ z^7H7y*zR~T{?7Odi9+J$M6Koambv6dlP|ZP*7|JQJKOyok&a6{zMb-?u1)Q+%kat!uhF(f#M$M|wWmGuOMO_qTmJ z`=0LK*Z<1E@W5RI&zClrW(G$Ge>!wv=-3k!`8E63I@f-1UC+9Q)_1Lc!}{CTKfB?9jfIV$uNalvD=%!iXw#FMYNy?P+Owzc zJ^crpw{Cv&jH}N0^%;w2&TKht%i`9D&bsUD?Aiaa?dEfgb6(!=-~RY{S4~`ee#ee$ zFDP8Fu=AG}-gwdeUEkdO>(}kSc<04OF1hDY_0qY^?zw#36@6FSJn5bM3aH{@?C30? z;H%h8!Z;}dZKEvcv;KIM2!!XM>q1aW@kpn3dP(;PKlNqD{K7Wvx7VuQ}s8?nO=FgT)WgQ^xKjEY0LFjGpUIZvlbcDlL0Us3w| zH`^&(YPdROUly4X-EfC}hscn%2mCSqNqCuc9#+Z5k#5PrYy?LpuU7-(1j>t7aWgi zs?Jfks`0K`)lgl&pQap+WNS}Px)=%t^sa#o>$?js=c-Tsj9!%HLBsdW_Cg_@aynXb z0X=Nwx}55&((2XS@27e+zqiC#JeQ>xj-d_l*jjo&s0?!BXCoJ_%;18k0o6g(9=|x7 zO!{1rm`4o+!xwkP6PzdFoqJF-?}xreRp3nIyTKMr^L&1sZU&ttPNsn84)|7pXF=f+s^pl7I-(*VHb_tCo>F2(PNlpYaI5OH zKVo|R>@Xd7#gqdvWiM4`uixkAhUxJ~{&0|v4-)3>_Ym%(Pfmmbyp$*+ke}0#SQyxm zZ)@`l3>ZdqM=n7aNaP;$X&O(vOu+$<$KO+Lel(Jed0bHw6~S$txZUmXecco_e~*$c z*lm}6lB)Z)k3xmTz6v zlJt4G(cBe?=cjBgr28#uKiQ3r#kH}`w+2T2BmO!!S#ARyLaIr8z z+%GXtTqzoB)^qi1+}We>TyCUmB$wk#Ppc84qpfrlGFlIGrDIVJp_Q&@#<$w1>X{#O zuA%$s!8M(s*0!vDlx=GbeV(4SAEC51bL<&g&emzj3&p`gQMM}<9~v7PgHVl?htM+d zH-Mh`0WpCx~@H}MWWv9TvpRv&WKif?$S#i<9s?8tnH6_waCPT zu6U!@|N2+U=o*E$wjUf^rz`ZFASW8wOwJKAH&Q3yD|vzVdx(D?5r_|)=^x!_WBkSs ze(-~K{>QmdxN<1;oj4%TK4+IiwPTc*sAuPiPoGFTWH78EEAme9%Y z7mZl>Z;(sU2+SR)YpV9oXATY~TU(QZLuZsa^U_H6on z`7!!^>}5;4(Hp3bL%50`8|Tyy;A7)Wg%Oj>H&B^YIrJFnX`r5WS*08jXGFOT8h#7q zt!tv8q>!K==_Vl*B>lk6^e1SH(*k{xivM!j&`?_&?`SU%Z5YghjGTKss?X3{ldH}i z8dN}#LSbtgDNy%)s6_NjF`{F6EX`A?^3d9i0*8{EL6?i`L``LI=$vSGcP>YdXEJMK zgSHF}CX+B4guEkqV*JEIgn^L^Y!`tDsIrXEXr#?zN^MR)3QVLa$L}H*S7J{+)xgI= zp~#wXjB+LI$R-iZl@t_43D7J_w_lV*SXN?`cT)zhn6zJ6n-R)U)|Y74ZsS_&TtX?K z9Q2FD(GFFc5t4@rv1}|+6wIfz(%ZLb6}@0pKUfaz*Uy7=SXo^My3c@BZL~UD1CFg@VBk^N*;e?({x={!LV{+i96!<8*c z_7HF2bu{PrUY}O`r6^z5eY_xZPG{P~FROh;7H()xf9=zJI~~>b8ybvJ!FRKuW0Gbz zY{@4SsMI-9t6~@;ED4*uBv$66sAv`&GQSO7#FihFrdQr#Jvxm}v90-b>c_H9#9Lvq z@K7hTvaSMhV1TiPXp1JOG1HaaUPbBc*>pgOB@Xm;w1b=4`wrMN>+P-34F_V%EN}1V zqw9y|duWDzhNVejSQdsQ8(?I}wnE#1mLtPpJ)stex#@YG7<9n@>ES(#$AW2x!^rGdSX9}i_RTOuif4Mh*G*e{4D% zk8vK0XQw~q%5|1UJM)(IRALW*&Fc!9ANzZ{N_Wi=oj6OO?@WUK;b(&#u7W4Ud;5y3hWl4RvwEYajg6&RRIR=J^g^K!i@QBtXTCS))MDGZ zyF;xU=T9q&^P5ImA{g)nJYGDObh$#oR3T!9y}HrfJ~YtUm)BxZXV~EkM509#BML)r zZ-@8Y>aSC%d*q-0vWi3RwaROq(@S zVQzik1JwM7RRg0rK23I3?KAum!eecJP}m4UMk~Z0=tZs)+UY~93q`v;uyMUqevljL zl~<`oNS#(AG4I>1Rzo56>bKz?u4xVLF!<@UZyB8H^e$JV_Emm1j*QyZ__m0P-l;d< z$*Jy;iFKI`$xXu~;*At1UeI}*zg?KD+I{zFKDTBBKK8MI5!Ua!4}($UwJ_|{uYAR$ z>fvvEBdiCEuYAS8IQ1LfsMC?&fiZ@q5JnnhYy8$v6SY3=51GLaeJE&#{QT|D&Jez5 zo;8F1&`*96@(0ake!y@~jIGBwY#U+PfH#GDbplDH^#5^-k{=I-k!zGH51mZViVy z4~JX%l%1BicueIsX-GhA!Ao}R?*xarU#L7@NN z_?dv84`Bo_4nIwtWQCBnQMfULmbctBbT(Taj9Y>u8YAu*8xdkg=ZijnGM&i{L!R-0 zNBxH3e{_KJOlCNn$+U3p>(7;PG@wfzIs^kD7RBKJ-{<$Yc)c!fu`sG`>ie9}_qo1J z>S&>eQ{I+|fwZb6lR34o*3C6TJU=FNOp0_XhZR`+Sbjg&zL_ z46DZv_&pbf9KLd5=E8dNmFSN=&}sPl>&j9P!~cmWE!f2ZbQT3Bf_yj zM}%zBdEA&J9p>=_`Bc#3A+_|cS}r#thB85 z=$K=fkA$v1Pu=vwus>i<`Vw1LugPXP&t})G-rAf$tgKzTd-vM4ik+ftAn5=Z~`H$LMidF#&&uLb5mn$ykK%W;448@lu#=G_x50(@?XFVI&PPbHFy} z0tE$c@A0w&d`;Ta%Eh z)Wj<|y+Rj#6nrmuq?1+9N8trSlkum4;f3sl>>!bXKcF}Szfle@sX~zk_=RFt8vzYs zaXH){8Vm7Xd%UN2_hdVVhjz&-$CUF%NBdWelqwPK^XmTouKu3V#*Jr&x0JfF`H|s` zeAd~aD1o3u$-1d|wG#dA%_``_3Qu?_YqJL3)Aq8~t^{-?SvvyxV*CH2G@fsG z{x?F9P-O-6idtwCJvbVwyZv=NG(8>CfdTmVr>D7-M>LWeaQIJ{9=ChvPPfNx@-wWER`3l!sEt}yTO;E)v>%Ovlj4xvWBgejQj;IYs_dv?K2d9gN? zlo~8)X|PbZ&G-u^gzua3F0aRR4(Tvdd@I$~evH!H$0#$wQMLDcQ`4qbsp{o?BhkC| zLrc#6i9e3m!xW^#4&ZIHJP4JFz5zvIJIH~;0_5@7=m6e0hFOau+Eo-C3@j22*HQ&}-|q`ygy-`U%kY+#e65;qfjUBNKmTkr>ZjtqA5hzzK2LB@IPm>!FxbAT!wC5g zuL*Hcmil9Q7Uk5cvOJ6fQMO$SHz?OE6I-B@&Lo*wx2~3}r9q7R2kV|-TQG`_5QpK8 zOO&VP5}SP~WDJx-hOVz#rRzqhG+#Oimp%tClcxV z-0q5etPferP3>%MOmqG?4HG(A$SN9lucHVq7>JTak}gCINe_taV@95;Hj>57aDkIH zCpk7I6uhJ%WEio3JMP@6tf&te5(ah z_h)#-OhL+=09mz?tupPD1bYXW4k-IDHzOUy&k;q5_|=>{V9=4$7Aw%pKy$*)oFa8) ziS43jT{Hq?TSAPj-O)5_v|Gw$Vdl~KY%vm*uG&G6-+Dk`6Bp&5S3-?jTVGe{C$DeWJ5eTED(j>deLCey7tPkLOmNd1A1uE7cw` zeLgeNp6cov6vuG-!m}%mXKnMzPA8~rdZXJ-D$oJ{H)gf|H5IE0T7f(< ze&;lRgJD6)ifAB#&7h=T2jkMPEagxKVXuv=b4GvSBJ2l$F(XEXV^lYKcZzFkC z;py>EemoovSgk9^BRvyWfT4^(N zkz(09fqzqzlhc$=Ou&2+2VAdAPfqfwF6xe5$J4>`%46f>rHc5scYOR8<6Q3=AMesR zvKY*f9W%$tuIQxb-zJ$R`XBg)nk8Inb><0?TUXUcF;n*xH&{L0mRd?VfQb*Es_Cn8 zxp?o;mNl!T(Y|`kmaalP67BSPys#bo+!i^MVsPBrHZZW}tdUeC%KcDam{T@_^5mL< zfwop&oAzr#BVfkbV!=c_-8@Ogl%q$jwj?O3{Dh-;m`<=4LZFr$&4>7R9x0j0x7p}# zGJjyVkjbN4ME-dMDm@wnIPj~j~ObR?5T1VJ$4;|lK&fVq8| zYILVF@nqYE!J%X_5$){ki^d{GveoHS6eI3O^aStj+K9zlv$o$@)qOq@OTl#`v8p2G z^nR{FFpZLfm(pa!^tW_4ovP*zc^sd24Gx}FS(Pw!?$^;{d_G;}n80+p+u#v&ctUPf zb2>X({AMIs&gE3zg85q|<=p4WAVrgE=s3EiIi0`|ZALr;uICy`8qpfrQocEXmhdu!q$Sl2dN<{2p*g zMa)x>4k{E)RC49;RNFkSjQ$QZzUilms&7k^E*QV?SG<>v%E#hfxi=qA$ ztV1!*t>_^#DYba49bN_D!(Y!y zC`K`2j$`5rdY7Dv)aCGF%X`e(rxpAkCz(zn`g_Tqp+q#|PlahFWG|f-mW1SoG$Etp za(YTrlsm-vq1pj|${!!X*w^j$1E}$OFy>H-4rd0F@zZqUxcKSvdLrEfPIx{dDJna~ z{r>29s&n63Os>$$I>P1Lux|QArpuvl<$L?$(Q%Vwti2O2!s~{q*x?q_^mrg`p$`ZA zUUwpqy|h7rWAQ)1?w}O~E`fELCt-ER%afb|Hv0gcuOVsVLRfv_TwsP^IkAaA6! znhy;|v`D**sVkdeXa_@?Qpg`0`8FxwGDKg5x1${|1C5(V;ND9UPT{mK8c7WGB)?~q zVqB7juwqa{EfRQ~E|~-J>GYv{oG_jhM=YpQvn3UPqoFtmgTR%{Z36k?Cyn{5wfj2L zV^O%XQ#KKt&hCiEOF*waWFv3FZ|W#Nrc5Z@p>$EM_N>nr3xyH$qN+ZR$240c2_!jo zf(f`e9*ytIv?Sc(QF;h{AZ^*yWPjBA0DOMr$ODiqBo#P#lo%FxS_^iDFro_@scT%p zL<3NZY(xXitURQ;nk$Wz1`&HizJ?;XSl7boDtxX)TF{i@vq+%~!O9sLBUyqU+$u`r z2Ts73W9k20e2Mws|L?lp3jAArATN+hzCj>_91w!x1=bNSEbM-1T}h-1glRycU|}FH zhdwYoI20dR%O!F0a5Mt7P_sy_enrT)Ndf;i+;)&tq?N4kq(y>R$(X6}{~}}Zj{gE< zJ|#O|${&gTH+Q_W@0gBf*|jt$62&Un(_#NCn`X4cQ4#2a?M=gzIJyB4D^Hjta)gM2 z(xt(h+>e%Wq7lEx(Vj=R#tfya`sv3g_h5vNpoDK!+YK=F1rT zfafx@q2M~S9u9_fK4(|OPXA$NAo3^sfLAD|*Zv-^bJE^mvF zV`pHw#{N@8ADo!L3^6sTqH{42*|S|yULid#$HHWvMk#t542n_5@oXg;Itdql!;Co5 zGzW&X$FUhOm}?9fi7)8oun(dbg%8>O9GEoAUSG!S8I4!aWiyDnzuxWh<7`5Jr>h-N4HJ!$w|QsxMO`F7H!?|2|6VBqs8TI zD2a+}Fge(on4C{W13~-`2BLJmRu$L-i(pJ;;D%TrkdQ@*Ie8~Dpv(579|sW;OY?#( zj)5)Vfef&bT(mJc1HT(4U0|M-Am!+fl$pE?4A38)BqU;r!|FWpM!I#sE9^Bk7~Zgx z&rEDD4RYQa&<*#D+t35OoJNe37?k=h_hGOJCs-!4Zj8o=sr|y`Y0WYb3RJHc@n>4qP*4YO$%V#V}3&<1V12^HA96B{JA>hznApq-g7xM3^3YCh6#FR$vDeArr=_Z9T zgsq%%CXu`Mm?y-uFWVyIL{ePp1}OtY+~sSUyMpLE!OY9b$b;GDnV#nSapt5X50gF7 zf>Hl^>^5*MB(p%>sO23IBE|~VDMru%DX@z~j48vNdskO`TPSFRLh$ytmC*MB9uGxf2hbBIt<*Yu_|(xc3Ex^k4;taH zkmPzeYy|ZHyk^s~gRlH8H6yJ#zY>AR#ow6l4-tCA3<}|a#tLe2aO}Suf720HFqiG? z%jSYEtjEAIw^S+?ML=NXzYBeX-e^7=i{S?$fOdzBxW2OzZSu@(Kwe#j690v;OFb&kSzWxxwlDzN1uh?XNMw-wsuD(tXv8+Mww54$5Af}Vl=I)N(-W~RuFHK?19zR=Jk^x>JO+}$Ywc8SKTl>V% zcq2P;-0a@Q+1hL)|5~0~H%D(4KUjtfvEOXUQVlHwo6&7Y+4EM_@Ul`Pd%RrJ<%!1i zrn8Ncja<{^-9m|qA7TZvorSHGg^WIxxkH4%WiYtNgibOkD76|wMNc{bC_R*%(YzF` z)02A45IRG|pvdqW8krA|y|&Pk$Nhn6pKm%q69b!1z0>i2&Al7zE8M$PtepLFK)bHF zUp41fO6}%(1TW?;uqF+YJhnWM>hD!82QDll={KvL++z3znHU6j*?fOuE1|h=E!b5G zs}xQg{{roLG9%|{ic>i@>gDN^8aew`#=0z?LgfXoLUw%zqu(YuQ6(j+~ z4(x`tm|BA*#xRteoODIai9tNcCCDgp{s{jBcvuK3W%V@a>^%=|=Zn{EmoSyLhng%gL0Tc9DGkO7&fj@`uZ!ou-+lMyRW0;3L~U( z?LBU<4g(5`fweCSrNea#$m{WVF*A4S{o~eggx%@y54gsi93*ivb$q zIBjlf*xGe(jIgyC59q$VZuefF9yq=W#1cvsB6e-IX>4HC(}c?agaNNX`ymqW$- z74*2Y;4H=bUvclrt7%v@6t$feWB+5Cc1$&oS5MhJVxmW!NY)_zrI1FUV}Y4GTT?QE*|JF!Ow`Hcoi8ZP&E3K@a0UPr?b zDEvkt%y@z7!sLmgZq^aM?rgL5tMzv>%9-t?-KlOfc>Q_*VOxL*NSLnMgZ%2V<${Z; z`oklwX6@smNmD_E+E<%_ks01{E@HmG7+zjlwDd3R=9A?+Zy9GG`g$XobDIun@ zv3!{h2)QLl68u4E(xij&`*mH%G6)6U+ z1bxdi+xF;YIFk+PTF~$J1eBOtO9g|f%jNR~Rs`qpuo=zj zhU&%wP**b15)NYCRMj*UesoohaYx9&TYZ=&G#rY{>31VsA?S3P4n2&*4l{Pk_AxGUo97;cIe#YoP=BG8Am5TaiYG9~)q+5Kaw zg!S@~3xck&89L*PkQsIbFNnA`-}3WbtT3xz*%Q9tg7BU-YwYxIODXs|)2V?0+6N|; zD%qXdPH$~4cwpf8FB}-q9Ck&5viO}lWV&PL_o#UBnpApVRXUBWpE1H{C2EAjNqP^- zHwAN=bGS5vd423ckf&KlYB#mmT1zSHA<2H0FaXDCb-Y-NnZxGMJQO+$%WM#$*aP}$ z9>33HtxBg=svC#<`_oQ`Lw$(ifp|JSoPoQvcXLO2vjdaR+e%&C38$taMg&WDar?%h za(f4l#fsp*Ve%8N>FYN~Hl4G2b==pa!)T03Ho-}400&q?telOZZRmY)0v@9%2|>$j zfZH1e06!%gfX8eNM@9y8IN`W4UI`%*6YC!Eept;mLlL@B`BV2_He9kzlo$$(uhd9y? zO}L>jQ@E6Y8VpBEr04K6Yo$1tJ?`1s^F&3t7?E;P|ChKvVLOf|s0g8NcQ*Oi&H;G555X_4=AP5)*VQr4Ysy?+J5yDt(Iz=Um;sup( zx81Mmw%O^YZkfTtk=lVKynse98zEEZj8ibs4rqpoj%? z%XPr&**h+ylvcEB9qrb9s^bI<5ovB&3>1Y$j_99UaR@3x4B=rn(gbt)6dHIyb9VWi zn%gNS)f+6vg`e*1Bky!yCoEc6>6*F`i>BlR6%v=KxwwmBYy$x- z<2xAwWb+^IlF_X6#MeyZ3& zEc&tmkQj9mYQ)%6=Od@k`YS;3Ny&ti^kG1R|9z*{&Y8x8C?=mkd?v>T|OBO`cOV2j`~I2N0oh^1JA7%;_0A%k&l&_U}XaUvGSS^&!t ziTfpoW1SP0b^147am8joZIa|)tthLpIwoYFL%6z+&iOtWYi*59jBeXDI`K)~HxUR- z^zp+uuufkfPT;}?wkcw#AzD5v%Xsy7U0N@qQS4#+Rkfpy_g`t7jCN}4FMRtCdlz-U z$6P=!K<~wPJ%!O}v(6neF}~!*ykjJ;0cj5GW*n%M{5<%PfXk(+Z@$_Iw}w}#IQ;Ma zo4q{u(Sd<)fBBgbf84FrUUmm{wer@W=5TK5RvcKiaY*;v@DIHY)&6GC?1-KHO6_sd zrD9ycsV**-2H&!=czLWyA)#_CLGp$uX43#cJ0LT8W#F|{BNE6GYR&HcT?5;RFz>nkb%JHXahoy5~y38n4ging)&ag|}v=I8YPOkBi z#;q_7;fj-S8Yj-WXQimI68N@InzheX7d=+{g$PH%%4}Yu_ty?0+SnK16`DP$9j?#V zlA%I?Kops=(<&rbMZSa*+x8IaDKq%;M}@vhfiamKwIsvaWMGpB2apRY?Eog4>=@KW zzy;+vjYw!vF-ZO<@~V!MAM4zV_u)NOaFgcP-B=^}{=)A}5zW+|NCY+vXz4GnuRUu8 zKF!$yPG_z5TairlNGG5FjKx3>Rv-;fAx3hMC-efhORB`XT*AFW8I#`u}yRxSpw zoS4JGEQ8W}LA*~aI4N_xiI}CgA-wL+gYA>d; zQ=W;FAj1v}g?zp+Jd!72hILkncs!BDZ0QNYWmYa!=IMAa5DL+{sA9QXq!jz-2IKLT zbXu%)B0FSGslZ1=zK+xAiy0^PcH~8SiSwh<+K?@^+c^|3pX`QHnK1un1N%U<7mDp| zyqyxlK`>&{-jNYgpMBMe&Kc|Pqc6_0A(a~rGF58MJ#F%-ipB}DS5aKF>6p7q=hHsM-C#z`!lOQ&Yr7QRxFuem5E0X@fDqwto3ou^ z6;u_A7^v>`b0R~xTA@HdU8Q0_ATE~VmFZ~ek?QEcaAI%x6-p?M~~c;wI(7?+`RAn z^ZPhFf_olwxpth7!KmXglg~vSqdiB-PBAyEI)6vsM$@)g%#D3J&R?|w$F+l+YsU`m zQsJS^nr5~YGD+I8RPO@p7tBJyD|gaLqiGJ}lJW@ZP8*J(+OWapa)?)}GqvmC^E>z) zZ{M*4Yc+Vs`B=F8s+Goqv47do(QBH$9XmFkpX!Z7dQ%9%;Pv%jZ^8k@5LOG(Jf9Sk z8m)ODO9KM~F>kUSO2=B+wUJJt%EEsuu97?zLJz`EEGvS2LcT4bmx$fOm>G|Vo^nex z7f@Yh0uyuLtU+v%>7W&eIRzn@Zpa{x^@Vy!x-!r)l%Nm3AWu+tIx(H;a0kLpXF$iT zfj~?=GJr*sW{Tg2Zl&|2=vzbWt=;F*63WQyV~VDE--&rDfBZbtZ}btXPSX#H_9{-y z#Cq{k#i3xiIOf6L*&2%l{#-n?uXocsu@3@1HY)t#bD;4m`l_SA5}aPZ6|}1C?**7) za@JW)8pBUSN?0@)?0_Ln4wSC%!9%lnz#o_zm?WcB<{Ia$96zY4ni)>e+BjMo*bzkt zxI2seOrkqFip9PR?U+f%e*z0d*JaNrO?Z5W*Y&nK92!3K5X1Z=!d_$sh_p^niq#Xb zK(Mj6@$CxuHk(T9N{2$2T|EC`GW4soCXx?bndq4F5eL4WAl!&p{Jv-v`5 zK|K#r2Pf?fbb*`XqEX^Iil~6319k=P;Ycj*)N(v{l~~f5@?%NoKu^+`@(1Fk>Gm6X zi{d2@D3*t%9Lno>t3q4SCKMkeEBsJce&fhwvKdDL&H1zgh?YaO!i#;jk8~IE%E|HU5bofzt_iKICi)t(+zAv+&yiad7)+ zs+g>*ugd! znnW-acYfThZpVsy+_U~eSo1@lX6T&6olv?D&5184(?jx_M^{2hz-C|M_6*U0|zZFxftuNZpoJP?Bex)(L|T3%TEiv;mjj?@X&ZgR-|4sqjKO_-9e5p%9nQb&qgmA6EpANKyEW{wu61T_ zbvXTSK%3XX6RIemaXN5RGQ*wN?ZOOaecm1PwT4tje9JfnYWekl=kaufLcBeIy+B*z zqb<4)Zw$@-;Sbh!6mx&K(l`Icghe3aS-Fvg;VQL;5OajhD9{F3Cnu_{5S_Xh6u~!G zi$-K2G6=F*ngQ}J5|``QV&jE}No*6q5TShlmEbiogzl?mi;sjLiL8*D zXT#y(c6?N#^E$7mw*wIhkw^!2fPmlhy5ZD$aEsuJOrAEE+v9LT5-Nrp`-uh&Y%}V@ zyhG4*IQ3v$!5ieOV9-ude%a41Xc@h}8t8K*Yop1yxwqXg9PV^(=z0ih31r#ERHO(+&A0VpsBqJXp%W@|tcTtwf}z}s@owpbNRtFzJ1#I~|h zDC16$YK(|NKySm35X>MBzdzuMw1u&!Z^X>Bnh~Hd)=PBIhOlK9Z(Y^D<~$KFfi)?Y zVmB>C!LC|cqmG0xfDK&|F7tCrOxM;Ajw$?^^SU#uJc@A*M+}7rJ8r)he3O&PATEALgn$a)8y_mTxuIOt__7+qn<7hJlbLCdp)60bRrk)%<-Y2 zv-h<_;1ARL$HmWsJgzA3hw@iG9Hz6@Q1L~##rx6~=~T0AUy>CG@abmA z39tnEtgwHHM@V0b#d$?*UoK%K!cS_)KZ-6dEunhY{T!y!ss3U)o1NP_O$|EX23>L- zRhvPq__D`DQ4b5>WtSLp&Dz5d88|DitccIIVRbbK>r7Nf@`_W5Yg{vBL>C*Lzz{3^v@P2;qwKSmN|7^jWOAbB+j1Un53|mbS z36laaIRudg`B(@`P>XQSnUqsTy*&7^+w=7qKfW^+{G8@_Y{uvN&sPo{;N#QNB_#K| z{j}YB#i6WU=hEDMK4GXh*s$KE)$Zu$?W=0Pi}C`yBhUeOJuAw9=ZG zhDQS{#$iU{i$&1DatB?kl+J0?kFBW-{+-4iK9jI#)jyL1du&yU5!=j!7+Hy3YG={k zlC@{h-*#eh)_FO+20TR@+}37vzHS{@K23VHHrFge$>tFIZ{xkF$}tuPP4>aOz<)VT zAn74z=)}CsF~0MsWM{JWPNIYH<`A*wyzLgZQ=V>wF*kBEr|uTFWTVgvet0xi1Itpz zLzmK^|FtxPZh*6=`U4;_T@vA6afeCP@J zzV?=kEdnzMBNUF)SuBT7!7VmjJA^1^e7TGEg?3{+=EI_T+UF~XZQtBgj6adX$jMpz z8sSN9c@)R4UleeSZ$Y^b5dhW~{+gHJL%s_m)7xnmDEL081zG_u5Pu@PK{Oza6ZL6P ztHb8dZILArivTxTa4u9fQktY01E4n}idO_J;l?5c{Wt@R(VvJR!8&ycStmpZJt#B$ zm0&70kZWtpb>q8RaB7BBw_n2$bCu7##^h!+*&6ZP=5(|=$3odO8!Q`9ntc}_Rt|Gc2 z9q~=jT^=XC1%k0hD6HT+KprQY#avx$wjnOv^zCsvJDrYjtCKrggAN}EaXvH=*UvB= zAcx`zATB!C8IDHvtK2lQU8(ljAdM(X-doh^v!k%B7PSLl6 z+C6@3U)$?&`e5|JGw*Xcda`h+1u54F%G_c(<}v@_PO zr?@#oH-XAxcBmoZ;Z?QeyHSx_SInZSv3NFZSKm(Y9ZERP;5}>l-Cq-)UV*&&1Mmdb z=IBn6^D|Ty9Z=zEy3sC=(h3GY6is;v3jGVg|OZM5&7qmR5ca0mA)N zbS<6}Gm?;Cc;1ST(nzS0G$X;rnZ5nGoyx7*=TifID;OLf_NG4s} zT1=;-tLh(>P*(8?+8W+2l+q~#Jk$%Xo>)us?v|jg2V1)NwzL@zhtp%{+UoLLY{iSY z*GAlPKju&<4)Rrdj1>|H9f$1zv1%O6$DC{v*VWyd&<}K)SB_mJO;kizk@h@|tZ1Bu z&QPB(u~{O$oVTE&U$uJ}a=1smaB7BbwacM2-ON#vM`R!Jq7Tv6L(hYp5mgplV@0## zCqj$xGm73tCSxWS zD|KSg45if8Sc0>?}Zn_ zDa#L273r%OZdq3))@)m5p({6`0P<5(#65LCVRp$`Jwyjsaf((bep6HE)(nRVMMFTH zLvvu55@CDJ#*$(2(0-d*&Abb>&(Oj-v~(I=YZ&%Z;&BRbr2;3Y>CKN(QME(VaF77g zXz(@u4zlTX8O=u%ePmgQUwo(<2Ndxoz1?y|J0fhVjmyWk#pcnj2mw^A?_0^yx*RG- zEjx_dU*s&e2Fh_9@!vXJE^jIm_5>msw-fOO(X&F%D0Gb-aM zEnf%iLR`U`m|Zl&h9H-SgSYoMSqI{8AmQnAaQGD+1Ha%r$$f(wf>1ESfC=>oA~Hl+ z_y~l-jBWKztjH*xXHt8`cL4+g32r|#A8Nn6J^ax7;gr4H#m%i2SJmc9)Oik{@Q1%` zjIdujY%?WhUvNA|-;^F}b2{5erZ^fJv!VOb zV3_6v?3i~n8fb!yh~~xDCB#@^Oh&$&LSRTNic$z;h)Sx9K0ax8E68Z$I+w@o+8A@W z-LA8QWkq{K)eg&A%HQW}hsxN)of;zI{U!)wGEiX7E=pv`?D~|ZUEZN-SK3qThk?3! zVYO-K$a0mQuadKtiX=JIn9FX*Y&K#DXkS%nSPGfG+;AL#upssr9RpsZ1z9E^v+ct)s9){xybJDwM3HqelJ?Y0Md|t(BY2Kipim>P;+7`#S zU^9&gh(942X(BU5>WB#4cma?P$*1ZL!n2V~{Zp9L1Em6Wd}dTXmdv zAvzg;Ac9z2Ob&x!nEJ)C*jF)4k0n?F_*HgMYwGPg;Wy0e=GZCkp|$^l;^=jg^6Slc_mxx5-X9761v} z6O@*?x$CtwOUxC@Z&!riw`;+k;TiBEBxHtKN3*UpaSL^x8^g!7wIWipn9=y3_QGv> z)aQPq$M-y`*ysJ8KihcExp!>8fBWs*?%8zv7x+bA_|r#xzKK#{HQG5KWUlsBi23rO31tG|(bqwJwaz8kdRwS)S;1(&=$r|v9?>x}a@t1B=7)G<4 z7dAhi#v0^OiIzB9>6DuUOo@IVV}!K9cjL)=owbFV9Oae7;Urz69Q^yp%{CWBMW!ot zHAqFm|8JMlY%rC?!*r#d5weZqD`tRmvB%Aczhfm$cc`dkX6&+$+MV$0RbLWqo3d*q zhvFq^+S0HBwT6#}zH_zmn^ou4pQ_`AR~lQca-H-IL>cVA3hX~WjoDqmJE>48Ttv@V zyFJ2=vxq9milBcf<%qXP0l||lCS~LRi|8-o8*rPr4C%qUYX1?1$n|govwnzT$L0yi zQpOKwloF4(CjH)^?hmM^VZR1ii8P8`O0k)Fwv@yUsF-AIYi*0ux0q;Tro?fCIZQ)D z9+4KBDJELn>C=4u#cuII?$HDdqkNbx|N1zP0ALsn%KXfCA-?kfO5Z^7mFQ7{VH9;5{h3Y{U5t-<} z*jfYIgH!w-j3YT#K^Po0kE}^VWr&R?;^@QFSP-w7EBf>#Ou1|!iY} z)!>ZuTyuJFAC}>+UbE|(7I;vx?SntkNi)S_wm4Dyl4OGOsqJ^D=`JN0aHhM=xG%BR zw$M89&kIMp;aP8?j7YH0Y z!8f2!`r&0kj1Fv9Em6uB{BjBW`anY$YWa(pRc8*cZe*-e8Qt)Q>JUk#49u zi>e>$=xFa~Sv}s-v3hk2vMCITl~iej%0TI3{T~#CLrucB#?TNDT96rhAexK=!V9hlg-GU0xfsKo0vR#H0VKGF#so(X zk2o5vKuG0`*q2x`0cwLpiKAMZ!{u=W6D}vddgbsIy%=f-!W3|&c#DXh@g);MIJKSa znzC=?vH(6R*cNXaSk>-~M7jfk%SQI`T@)sY7E}DFNM!l;dvt!G+hr&k1OsC0!U&i4 zguFhVHw3@7ADeF?`cP907gn$S=6g?0L`Q?z6ig+q)`$EwC~4x}hNR<%d_LnZbuT{o3vWXv+t-V4dExVo zf$p11_;*t`dWbid%k}hSGwm42xYAzzFAbk>mSiUhPq2)X`NDQ}GMwNT7iKg-2xB8$ zEWu|ogKwJH*}9GKDdE2y0hSO^IJRQAwc<=MzT%!@!)&CkM&_3=7SIprkNO#0JhZ~> z_}|u=mO`7hig5?`%N=8|D^KG4zEEKfm0bx=O9BgdM;RIpUmJGADHE*Y{3mJ(x#gWh^_(mv>32V6C;INxL(S?6{ z4V-J6&vyDxvg{KTz4H7m&6sV@9|y~j!`7apUS|Hk&0TAhTh(>e*8BaKC-yv$XFLzX zXl&W@u&E6;0b@)I1`NSK16R@=jWUw1(7l@RIDwFmKth2+AOt9BorJUj`hd`;G;P|Z zkA$SFUH#S7)&A*PY4fkEtgh9cb^7gd?v<`aqp@U9lgvZ+oO_PWW1oHY*=L`<_i;>! zd!O!dw1Q^e4?95jLgfc8JSx zcW`guYQNBpI)htu!FvGS0I*ybfwe*prxUntK|D5r>&MYzKb)>iPQvku573+0zklYr zEuq*Jh^;KgGp;}|0%Kno_(pK`c_@@?1ylR)$=cEo+qzhfbQV(33d}~?hEBRoPG0;8?vBb_q|BQq%;^1+nH>kY$!5p1x$ zzFQ$-TRdsW>-kALA`!kMsl`9T?MIx>r|c9B6H-z+F&4~`Z$ukP#0KG*)ZH1{KujBn z^!Z`&6_3ZE`W9n`7v@mTQ{f&DTp8KVa~4x>&)x<5kecCXm{`0~Cygele5*5b=`5FR zzrg+zZi4@WN7~MN-YAIimP+yxeSB$%PZ^Jd$WrKjfwRw$Cd zmG{`yB9@P1^XYcspy?Rgvhovx6u0}W)=`#V>|oV-;>M^efm+~&7DTlVE6QYLIV*P1>yxVUUc8(zW5&3O(Cvaw#7!9MsZuz-Hx*3acG(`t$}a? zV{H>#u#ac9;N|n-_Nik0cu=J{-CVdP#9q8Z$=pa&AWJ`jXA_jxBT5N=bA6QYwQpx9d1oWzBw4V?-z&7T#-4y;bP_&#dkP;9vBGk zI(+!lZHEuklB-v{RBZaO|U4|RtRPAwjc!J9xle)G+l?D3ni?ni>Lg9mT_5Z8c# zo4`_n8#nwoR(0YgVyw?UA!i6mPLK&g8^`Cvts}@1OY}tlduz@l22TWbhPFG-qzbX3 z`{?8((d6V&IJt*${Sg^Ef;+CScJAGK65Vn=bQmnsk;4zc@4n~c-dQJI{1-5>kyvkU z6nghyVIj%Hc|Cl|;3tfOd+r8!Tj=ITdwcoDi12mW&ARx8V1VqzU6~*hZo52L>T2hi zJ}~(f@|(KQxFItJstI%5j+Rg9G|i+D3xc^tk&La3ng@E#vpGRZa4sj%lvB69^y~R{ zvt4p2a1TH4js&fJHWLhg)IARe@?aRx(oyFQXOG7XTWn7cf|hLc!}@m8zO_VnYdOR9 z>GaNUbS{hw>UitTBqAD_i-vcm)7LZieDV1St|JiWA?J<>Ym;e*`v7csZ*f$F=K#>#m_ii6X$OoAlb&ifTQ2nYBQg7#)hm{O z_|g(;C`Pwz?965DL37I7CjhqTq#E9QF8w=BwdyBa;f_Vm?UvK;T9b)4d~GM(rREvS z{dnb7+wL7&MATP!-ngk4>p75=`Xy0;z?Gaewg|JD1b^Fc#;7{hK$qTtzdLy*1GZ0` zp-7HJC|E2WqW$yx7v}`i4_-tt9b@>!KdcquNe&#!R(a+)kC;qg`L|#8nub6FR0wOT zJ1G4?2m6O0F=9Uq<=E>+Cm!=$<&2(%k+q2T zH_7p(rUC02z{d*4OW2c&T{G`Tw*Qd&31)!*3Ac7RA=H_j9UF_B+O8GkNvt369eB+S z_=VcJ=)Y$%2!%xtR!Qb96B`C9i|xz(9p=X zf#Ejq8d^cOfn;3Cj$s4nnutczexZw7&g{N)qznm~=$)whbfufZ#)P(Q(+1AF8=aHO z6!h4aHO#SwoPh1u55Wc@@A$0aCG=ca72KZvxfX+EI$Ka^-l6hcZ)J|~FqULkL z5&^toueh$LHo&@_Qf<>IU9#`%Fkifj8ExO+#9=iykJB&K>ullD>_Q$+guK!m7jY8B z<2Wz4J?pi_S8@t&hUM&a9+b7@EsNX*)5R{!YoMdv&@q16&U7&ocK=5Gy|(H=^!zBi z=Ylt6{7fW9S@JV8H#fu2CNWGyAOoi9tfiostOwfi2`}TGf*A|@XQn1cR(UjEh2v0s zAharNx`keMFW`DWXw0tiOki%851E8~m*u)?=6(f~Sa_D665jKH?VN!RG7gAi2@%41 zARmj2b3XCMlS0lSi|co>7hWk!<|M9c;6VB<)@FzjR2KRoQFzvkg?|u>#Cwx_xv@9S zCM_xwW1afg1^KXEo^FRwrzftpU?86R{kU88t5PQc^+Y3mP|b}UjQ7MMqr$kEu6bKd zDf!u?u=HWOsdMpY+!{-M-g%JSquS2!c7V=&3VZW6S%$^v2M{;FVgh{XmyA0j$8c{S ztBFSv!z0tvBg2U(tX4vB&x!MspZC7Ft$zL|JLAMU%hesf=5!4H?EB7XoDGf&-*}A2 zEvn<<2HpX9PsItX)F$6c2|E8O_GdwDr!yQ0fAQ%s{JIWlkab00yU7=e`EGi^=PC3# z1NW{*JPR~22!)(r`SobP@4fX_IHZlfUJgR9Yw%gVn*7!V8c0H z)0tLg#M-uDkK1}K)S#Bubd?H`e2i(%e4eyovJSTDN^X7f^Nw{|Q-2<9HvuAv54Qhqv`b3qfT5s z*fTacIo5-K^Xl2{W4Iq5ak)lD#$jFM^2cI+9G3gXM;`5%?e0oH#o-vBsPsGzE^8r84fuH9X~b0aabX| zZ-x`1e3t`vU7(&hdKXr6945zt^F=f4gm2LQHN!5)jl?%Ba~`)XkH?XtQ|5cGV;}v8 z84fz`bM~9zkYm>QBQuQK^qeI#oZ#~BQuDQdRS+5rI%SLiKyC-SS$ziju z1+FP&)^uiBO|Ge#DLq-zbR${OD%`YWA&Yu-)krGkT+-0A;!44owU=i$c#~IFAC?WH zqQih}2{kLSm$O-|1h>X2nCcofuL>Bo{N4$h*5}UImQmY7atod8) zPInfHPP0IVdy!tn_X?tc`z<%ps)K(EK zu%MPiJF;efb>wIGDS%@RPXq5YKz9Xs48Xx^$JP+;EZ4?yU`QB%j1DuAz4%=cZ8Fdn z`&iD3wnDkj!8V)x^Rs`&DePuHKL!DC64Z!rkmH4AxSs;J8X$zrdmdO3!R`_=_K7oAEi@tJKX_?ad*;P zbT^%$d+1*J7~Mx_>3({E9;9ETkJCf+Fe#LwEagb0CCbw>73dSRLPaW3nKay$@d#B( zCxdFVN^5kE*6BQbl0HR`(qr^#+;sdI`Yb&`pQF#ylk^mQfxbvj)34Dp^ejC`zYb3l zFVL6hMS6+8OfS<{=oNaEUZdZj*XgVDoAg^Sc>NlEoxVYD&^K`r{qNAX=uLWy-lpHB z-=p8BKfn$5@6xyFJ^DlXBl-^gF}+WJLf@r7r9Y$Z(Vx>_z=PBG>96Ro>2K(7=?C;f z`hb2!KlUvv`m&+qH-+A1^f$7k6?1Ael`U$zn)8-5Bd0ETmQ|%{xOGFRx@)>x^&mC7 z60NFPLn-HrYN}Y!4fj$}$@?>!wo+26E1p70$*YlyT22{SN`IuLRMl{{P|YIuInH23 zvde0AC1$2PQd4yUWYwjvs{#C{^dhcwZYFQ~Rd5UUDD~GaGHCHfFS*4l_B6lv8s}@$(_%euTs-hLjMoJLr znC(STT{0rJc&%bj&1q|8cNWAwv{ck8mGxAvps#pkkNs+SRmEG?Q&Dt74HTLFXKKZa zJEInh{$)+C6bz*plDSirVomo-Pz0BhEV^GR6jd2qs-hmhcw17J{VVEvMnm)c7HmQ$ z2rETpJ#3a&DwJ!w6%l|==;*VWLSZFyP#BzOoSrbh1Hh<8iaQl+dQ+?PG{ps!+)JW; z_y7u&RXt!V*Gd^ZRjY)|5EtaqYh`yy)5^_tFj#|Tt8<#+&(sRVT%nxzbD^n9ZYdxF zYZ^vMgw%6cwHTAB+L~Gw!zGghwuMB}`9h_lR^@A@mMds7xLU}mnk+G^PFamEYqe?~n5_%M4Ai4hfn*sayOLVs8O2eFczU*=>snP0 zi5$hkd5ONjS-pa(7;a!Ex-KIs5GYtx^C(CK&Nn6zV_DQfo0PzjMpVqrMpPh;tE5zX zB~{lkqpfLMQ9uYRoYM`h5@uc^Wik^1ZURtkMU7Z9AjK0jtmJZ46qI5zQIGIkw2ET# z;xFVdhjV$=hX5zW)(T}HQmUk!E0hZ7)q1>87V)T=j-m~%ss{A3wgzgnq6UmA=m*Lu zdj*E*fo!o*5fjI%kP*}hGe%k+6eArl(X&=@<<(Lc^g~@wWePxvbgV)BOnSB~I#$q^ zwMr0hLoZhtHOyd{r@r~VqHvue3n-piHeXi(6pIur)r!TiNyIQ44L#N%2q|=TMN$Qj z-|D&y<_hP}uZKmhC5-U0nv-75#@X-(FqC0qEgE*OUQ|!$e$3k$+)cFo}*DSD03k&~NN4VGaq2<=a>uVN(RMjwvWcFIMQZ4A_dSDbVss9fn C9oP{7 diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2 b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2 deleted file mode 100644 index 7dca1d907fde034ebacc631acfcdef45dea89274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24028 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 diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.ttf b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.ttf deleted file mode 100644 index 43ba1cc7d94f6cb27d7e7e596c5bfefa242205a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389948 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

      `}m6pgdhRBIgqU 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
    1. observer (poli.core.abstract_black_box.AbstractBlackBox attribute)
    2. -
    3. one_hot_encode_aa() (in module poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing) +
    4. observer_info (poli.core.abstract_black_box.AbstractBlackBox attribute)
      • +
      • one_hot_encode_aa() (in module poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing) +
      • one_hot_encode_aa_array() (in module poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing)
      • one_hot_encode_dna() (in module poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing) diff --git a/docs/poli-docs/_build/html/getting_started/getting_started.html b/docs/poli-docs/_build/html/getting_started/getting_started.html index 6d1c4398..6f4f2d78 100644 --- a/docs/poli-docs/_build/html/getting_started/getting_started.html +++ b/docs/poli-docs/_build/html/getting_started/getting_started.html @@ -660,7 +660,7 @@

        Your first script using import numpy as np from poli import objective_factory -problem_info, f, x0, y0, run_info = objective_factory.create(name="white_noise") +f, x0, y0 = objective_factory.create(name="white_noise") x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. for _ in range(5): diff --git a/docs/poli-docs/_build/html/objects.inv b/docs/poli-docs/_build/html/objects.inv index d287681acc754bdc8d030dd9a6fb76153a3c28d2..2bc87a90f871ddc5539ac1b2673216f5183eb4b0 100644 GIT binary patch delta 9323 zcmV-xB$V5bOOi{lcL9GdhY5NarBvXO^)w`T5f!&26{!)q$4P^0nrG6Su+99L3VOYX=CTQIz>1At^etA9;BJjYMa^UD^7@B?g=zTB5Fs&GgRm-=0Q5eR8vBda63vl}pE#M(iq3x|r3}HS-uA*96?KrQ z;|MlETTz7@+kd`(4@g7?D4U_%P=l0YKpMv~Pf?Z9gqRMr0+PvDbxlZE9^^411s@+& zCKYdx-l%IMp?6};ar1b_O;wZlrn|#!^cw#@;sYvheSUe&N>b6dA&3o( zSrd4%{K69}$;o*3+R1KYzZfwr$8iSj6pOI9CVRLSnvMk|M8Y*E2cTp2KZ&nJ+~H z?2c89ZP+)B6%>`_rlyHW6X$Xp&0E~=7tAIL_9nm!O|Yqc@$#3EZO!1$5NR!JCaRF( z-4oC`GB(xug^+3QJPDhGo-#gkG_R4JhPEd5g0z1^;s=Q>tPILJgW_Sgu>~P*1lc}C zr&-a|K=_d+*p&QR#!R2$wlP-AAG8)f)zCRK2+AQNs&ka)35lA7SXf(vxDa4HL2_hc zhViuu5NR;Bz66v=V*NY}$tAQUM>!z~LsEfl$C9PPtV;MKepEWc;|U*RH%vHl?hC7h z4#0nTZeo=)d1M2{3@7l>%tBMwgqI38?G@-~Mvr9f?@|>ZHc8;KPQZXBG$Y{nDl8q~ z_$n+J9vO=H%SE6!Xr6!>bmZs2=Gdh^qn3Ldve^ek@zVmk|$c9n*-3= zI*==o>8UZQ^*pL`OZL2EeDtR|gbjaNNk+=k<++Izn3jkh5$oev8)SA7&SKsq?`cd> zHz<8Rh80a4vC@+^H6GqmeJ(yPrVjN)YJ8wcH+gw6Y(y=30YNG*NWLmDEF3%+8QIpJ zl>+N+4|!$!MtLwAqZiVioeG;gk8%rNNai)=sY+>@)IcMGUe$P1FldmN))jv`kotj; zZ2WGN;fT%@5)c5s)*7QIVb!y$(d5lCvHHZ9|Cwx7yU{eY0%1PX9+=rmtn`1>K#33j7+gXVNoIlq36PjdDcXABX$Gva@gHEDkVc~rL!qKn#8 zrMR#$ZRToNqRcG!tDTxa_HydL4Y%V8~#7sZZetK#+DbDyHH(c6Y;d(M|keysCLH$tkUg3g} z9D0ivOHsTCrTjksSs2H8^hK`3*reJ)8<1v4N-k+$0pmtuf8BpybIAH;z_6m(L~?1E zPfymVcX)ETjy=Xx@pbM+An?BF2CTq=iQD%!&q~`{59Hm8GX4&6P}|;Uqz~x|#%fMI zk_yO`$o~4%^>;4)krotMG%F}h&DfA6jlXfFDR*!~8BU39Ru3Fe_iSzm?UQDp;)fHK z@0OIu0wp*-+g;i79zd-77SU4!W$;EjK!*YwbA7g!$XwDIk(ySHLf z3l;^ah4fJOo|V4S65aDT;459h>;!Y*DXNjPE7NZZ-113}WuH$52#2f76IW^T@_FI(%3~6?0xfKX^CEcXzG5+y zM{)Lq1;dPa^P|9JO~rY!ar>ELARnfNyzv)Xt8mG{^e1-U?0wAA#z5A??@s^yyQ@1t zGqQgTSnD{=alFjD!Vs0?QWAg8%jox~Afw&OZzhi??mLXg!)*K5|3=3s1)x{5`JIY77zM|8k zIg;@lAxBz=h9+@Wl^sSUOF%n5G-h*Kz8-&`f(OyD6>cEH3PTOyT4%!0yAzjKZuim*%?XQ6JH996*&mPi!e~18OlH9TC{2#-uSbCxiDTc`qXo||yyT$8Ng zXSC=1oX248PGQBF`90x%2!B=*fbalr#j`&e$hmtM9SmgGF-U;lu5Lc^Yc@l+ZAAO{ z3=mEOwqW$cX%FO4d_FWB_T-_Wt-+gct@8`tG_0mslQ$JVCYFzKW2P!=P!SXvrz-8t><1)E1sCg0PRP>`2p zbHe=3s_2e73FN@4O;27CT;*vn{sP?>)6)r^S#~1f`p3b9C(hNG9%Yf8Nx%#^HRFqW zeK{mFtG-ZF! z=8WT!LodvmL*8U@_4nZmNe?V%)9mlVo4#-OyYj~6T$dN-Qifu_*HzW6oBhA_$oU-s z2Wx?ydAeTIn_I!xi$g6VuUu9|$zL4<81-HzYAXS1oM$H=&a@^d%V}k`MaW1UP-(_m zF7pZ%jw6lz@BDw_&-|Lh^uZ7rSU{UlE>-P0=sHaUo{q3{e+a_&PB>(>*reXcvq5-| zt$U)V)KRzRnpCw8PRMMi^CK~K`H6*j$5hCnIl&gQ`1W?Xr|3 z{;bZx(Zol%;mD5Row6j_= zh|o^iWFW-}ddN$DeDk<>*OucJz*f<0>giY+1lSsXJxmoLvHq-=rGhpLo!s~be?tY{ z@0h|Vo#byx8#%`X7fvmNcU2vK&xU@x*DAhTeaCM&Tw;I_KUZ*ulYoY$ z1wHgqX=Y6!VNRewh^SvnvSKtx(NkQg0670lPM8l?+&Irs3^>nKw4B>qiH_~+41nlN zb(P&r4oaynhuJ!k15-7ksRJwOV81?+8vFBUiDvB2QgzLjVF0aXIvq9d6gRY1_H`VA zQqg~k<|>1!7?98Y^Ywc`12;f1w zJ!H4Mt~1ddxe94UYpQD$=5kO<;>_1aK+`b;GNn7!S|i^t9qZ{$7LIqz>pBzrm?VTv zy7EIs%6m3tFPjWiQAvv$VtpNDjo5~YDd+CB5;)KC`yxB7n3m6p%*S_pLoWa=CBT0w zJEb&)q%AiiN_r;UGO|qp&UIHA%>}`%kl6Wbc&zNga*k!pdakJTf^`>tlY%fF>#edI z3xSweW|b8PBYpGX?9yXmzp*kRrWC=9it%JfnSMy8)l|KiMUj$}r6p|;IG zp{I-=$!biqQ&6+%?wT3hQ+^sC`$2zVxcxzQo61OVlhpy&(b<%S5LVh1cl3tjzijkb zG&RiVNO7IOSPDi){%u|$s{m%?I_XW4kae1=f|7)G#b$=V{%Q9_O7nz7e1ROyV~Md% zO`%}TcHeG6Tnks1AP%02OCelU09*K~K(T*!mi1{_ zmEfA7QFUo|&-LN+20q;N4KObe=xb58#j)oI%<-KfFbCU=0C{9%^b9B9(cMB($$23K zBeTD0ul(Z7ZjNL|ccHe){|IRv$JMHS)Ye<68|M$1*ab=aloPBItq(H5)41}9Wjiw$!KJ{^sj?Z65o)w zrMmB~c8AV;pgx0yx-!@I#6ToZ~Qs z+l<5T_%X#9J`u=*kV;p{T_p%+B~Kd$t$7+_8MB@%I(s31_v@lyji@uEzu$!3ct+1U6ftauv8!ksH`fcv8Ca8up;=Q7~=?>t*`$S$zNcRYSiV%|{ zZju^qx>MZb&`X(-5s!bs!AykKHVq*H;26>IL zn%mTRF(98kiD_M-1F0VfVF^YqpEdx(kw<%l2_vMKAOb!r68z?4{{pH z7mS#!`C!ArgsI=Ac+gPvf63WWk6e<9#toaU@)LfXqXDpD8W4W~q*+XOEDKy#{Cf(h zrz72M{v$y!t3Cf;mN~9EKdsxNDX_6Wn<##q_3x#ld#--5=robo7T23&J*1^)y}p@i z;uL5o`Thv#-Ijzo0X6~6_zNJ`Tn2qTt&y-5!~JbZtMnSz*qLjO1Y$j?+3}C?JwN(Q z9#!D#!WazZ#aMsS&XF@o*hs%}uQCz`M!!|EW6o!K1uaNIGvZ8t3^{C^IHeIzk_)TR6`xa3z6FG#xfOL4jWyX#dUE{MerJfjJm69{AK2Da5>p9ovSOWs zDG4U3w8^e-nK1jDb|J1Zwei{PQonoI!R(_Fz5W)Vg|HFBc8d}quhC{CyG;=z4x+1y z^6W@YP$GXL)lD`dIU`D9O&3Z=C~eXZ60gkmsx!5&e6d1x+tBV_?tBEdK5SyN(+Gi> z4BKhiQkv|exigivBe}ogKcVg25Dwk%z!OCQ=s^9*13O?K;YdRw`@3N{2k)JmQ81*uBAVc zwV~(KfK)gT!th3Rf4ZNdsB(`s;)#eRBzTZ_(-*@h1sH{U71&TgO>+NFpSo3KO& zY}0{vsycrJEQR zMgr3-4Mm<2bk14p%%VId z0o%^Pke9G5P{Rf%?3jART$n%w7*Wq`#Mx6-CT1x_kQl7j_!PLTDIX!ASo?oHp)V_5 z;xdKw8k3UXSS0$8A(>6_-j_o|lh|8L z>e1l7^s4s0(3oU3f9#dyRprH>2_oF5iMqXCTt^(&T$58?^6yVkR5C;cUgpKci>DeJ zaNjk6;Al8Jv|nHtdjowazqItjhuilo;W#{Y*J6UbnFBa`=lpQo5ZQm)Q~L+p6-n3) zOP8dw32P|{C+6BLW+>)Vt(wN%8Y>;ghOvQY;mcUv(XTskiOr$Cv<-6umR_%*nFgUC z8Q-6U<@+Q**?)hdg3&po(s7~f(xNu;Y#af%vTX*p-QAz^)9p|EobuRSKB(CLj#@Yn-Bvxz%u?qYf%(7^m=72w_XxX%qf6N z6mzN$!5pmditLcJbdVO_O!Qq{bIvwqz_xB$W)Fe(Rd+z(wyqiFugYTqHOS5lVhm!; z)3P~CZ2fw3?c5mF0O5{|wcVWZ)C{&^?Hsgh0&Lvv@tcY*IIVwM8@fK+acWK`xGoNY z8(oD_9Y+?fNJSl2DFq|r65ttv89mFO4OX1KJ6Q(Y`8eC z1oRS(C?Plt6NG;ew3F{694{`*zxn(8mM@m1yV=N!qO0olp%0mj;2gCiOMKwxjyj%I+^{O#)IBfo#<&x;Px&YfP}(J!%eF?kg4 z-y_fEw8XabbqQqZb)8@Mwo*0Cn!Ks_>3MwmVBw+~Nav4Q%Z)rg1dnFa_QNtgsGU<| z1b+_h*&H?@7j$eg@yr%|^KBTPmv-F4paAt5nWUf@2^WwK-bWldtN`x64eS0}kM6(q z=>CCZHHv@e3728~AMiZ{U;y(Ofii!{0y)p2efZ6BJh~j=lq3h1RnXfwjOSwu9s)3i z^BIS8lbx8(CCigIP$xLG;Ug9kK%dcIvMjx%^ih9;pC21OqA>yV84dpCEutB!?Ut0F zCVa$VjOQ^FF*yVq9!P8t&PyQQUcU|K^;=(Fzx99W^^w2U$X`Rx%d$CP{%2KK9z@}0 z&`W$)(LDx@;3`kUghxPo2!z1#>GJ7>&a49>fyRvkz7OYnFpm+a&h#j2)0u?oE~hp; zL}Ci)GaB{fkkG99LQ#!F<%*dRAMuzXItIkyB?AqjrK`}F5Ogd)=a={WZHM<0tn4_( zKn;HyBr?t~JUCeM8YR2eBvwp>UPJY{v>Il`b>*@ug*10qiwczHG@l`MYw&2{ZwD&u|_%pxekj)K|ZJblUc=FddM}zPkeb?sUPKOQc zdVI}-mQrQJQ+Z!ux+YbvF(pJs(Bk(R6hD6zuIirB839ie=4PgM&5Vj`Xml`Y`{2cb z%^K1+%~dr={_=)6rLq(D=+YA0(n|%B7stitUV;1`V>`J$2J-GTYWU_%NFK0Qg^a<} zlDCLVVZFrXD~Ur@iV?I^1V%W%T@G6#Rt@Wf3w3xx@%fGF@*Lm~Th-H?B0 zD!U-p-OyUuA88A;(l1>lq`4DneP6E0tKBe_q?^q!;~9 z+gxOTXTW=1S?^I%<~5-ijCQBA&aHowFef0L5T7^NaT)aWv_`^K3{6jCh9H4hZ=TM) zsjlDgLaT1dbY%yOna(H^CV5_<2U?%=hSlei;2M^~x1rW)Z|fPlaLmhyAX?=K24`6n zfQIf&+K^;{#m2ww;VStNGNmv>($HR0GvKdWzy>l`V{C9%D_FCYK_KaY$d7*tyX%N% zb&k&TbS5Q=sVBEgje-3)Mh+jSksuo0K@W&9dv5huf1 zbjXHkZq72SM%b(25)diPXo?f`ke6RL4q$m=OMl_emarAWu=Kt8=HPfmNUVKHZYi&( z*WNU;IQhZf{shiaO|dqaZYh7RdcnU7G-1f)7S{R2P2};AmL(=q9&tpB&8d`?9F&p< z#M<$!_&Ac*)NFRQp}s+GA^Qr|gw<#^0Il9cY?7R(uhTqk67sscJ|UwMmZtwD%Xc-c z6Y{UGa6!ia?57mDy8Us-t~KI_D>0H~LruZ?)qx%onx9HsoF}vJ@pXR*@`)Tt$q$~Z zUh(`{(gX7=JH5duBM+*#O4g-XR-&)l;T^lP>-1~p%$e+lN3<$qY=nG2efGa9q%f5i zHBIT?7yvWIgYcRk<&@Bjd3GWh&0-?ws|h}kgrj#?CD@PrPbOK{as?do-TdFoevip% zL?!AE^5U+&_-dfhqKtnSaMHW~{m=jU@9&vQ2|bjoy6*DhE~XWm->_QLFBj~FCz!1A zC|oNpue%!(`=h91t&^j>8nxRCn_p#9?TX+sI!_hlHK}ta@89ARdDSqDlK0ahk%?yg z=9_O`i@rNyWpjGHSVu5a=?bm8x|3@JO6_l7^O+25V%>?0uf>034hi&TQ6#n)lG6J; zEkuPCHJ)UoJc&}oyEbv`7%=-K;dUL|EBWMw*MT>xcN*S&!gse5mIm@|6K5GC-t|W= z?`}sY2kKB*a95VhV47`%O%i1#)?>|9(v1{4n_PEkRcn-)`XcAN5X*y>G(Y^-8!Y4R z5SNFV9O+4;*Pnl`zuR?4e-Zk-&)4t&s->{8W(HJk^G93d|MKa>?O%8OW@w@b@N>UA zazgo^grX_Q`M!1LT2pGGL&@qLj>K6@Ex|D_V@ADua9W+}j9ZTg3?tDg2b5Ub8}Ly2x-MrnYB0fEp`F%fEj%n4hMBMIO1S*m#4F?O1NV zE}K(Azp!LqRlC3ZdULJkv)t9sOrz~%FB$7yY8vgXRMpm~t#56=2Gy0Uevv~k&fw1` zEh;v++1+u;o!q439p7QMB$>}=!iKqob;VJ&yXJ?zv7R|)z0Lpp z`+w|ONj-lV#Q@$^r;W*?57zW_+P!5Jf_Z2cVm@@Mz5O-^*2QiRW@11|L)a!g_aBXERVFO^UZ3JYyx6P*S~J^ zrXBgc?(=y&Y|Q%x)6XikorpIBi#A&HFO|e_&%fmL0`>k*})B8H<>2obx>Xw-qLoAAH2O$`XoNCKK_lrQ(`30AYF6it4$V zMznvO%*mh3)dPPyeRs$ob$Mw7Hmd5PxaRM6>FMYY77a!e{#L#kfiDsdoSzm#mBkbc zyH+z|Iy9g+2YewF<@lpaqb8@*l6>B^x4Ov9r@JGRD8*>4+h2&a)9sH}uW#T_d>^_7_R-G_#epL0A<_0D2!ujs3-IiRMVgPn^tXMQ4&yhG2hGZ+qd5iaN;DaRi$Y zt*F9{?LS|?2P7f`l+Dm>s6k3HAdO?0r>IJ4LQF?C0mlZrP; zZ`8Gs&^s~axOqI|rm9JN)7{~=da-q%43M^c+TXH^4pt}XDpP5b)Rc{A{v;9a2Vu>4 zRe2-0>pCC#onL>t8-P{~g#^W64Fl5NpNAl5`uQvr2hn4bMSUYSNESZmcHJl&(l-U- z6Vo!qT{F{F{Z-|Ss=uz&_TG2=#*b4Xnz|3h1Vv&M1XBBbQLG6yOY)uUc2P)?W1hs1 zu&lSHYhiBxf&T`iIy0cH0BSUW1sj%3R1!A56)QC~JE4D=mSmWDJvTY>SdfyYB&!jP z4bxU|QgvD&E@8Zy6r9lmP2&1e5QI~j^>Biow6ogva%*i2L*!@DP- zb7X9)^9v!<-gy!>2|Z;-9s#1DTGTUZ&Cbq2-LWn&9M+6c0JY)!MG zse$k#O|U8Xw~U!S#cgA(mOp4MeyX8!Xb_Y`MpWl0%@Yze39+!Y1aTq2dV=K0#th?Y z6(G`JY<&qRk;M9W7?Mk9OOA3v5Qd}z+m0nmhgp^IN&KjEhQ|{=$ZnW$=G+%n3mt&- z+{Aw>XY$AfiWyGeqnU-Kt_d#{ZrUr*(TpC++~1`tLTr-2XPtlnO=w2I@l{wl!0}aB zGCVRA^OuW2Z_qpeGw8_Afz7c?eMT+!IApQ))+&YK{2@zn93$~lP9#sXJ~s!TwRIp@ zBGX&rJK!0#KYQCHwS~?XD5^6?$Gk)}KKXwnK7-b9q*+Z)C9N;OlJ51)3U&~W@|2Bo z2}k~95&K31VIg_tyT#nYC z+cpAyURBCJH)Nd%2h#ag)>*7CKF1Q{urL+>TI#8IjKff8^=zh$CX!Ep38m z%Sf#S?p%V9=!QrYuJH3RDG3|4l8k?pr^|B_DKIS&JtEe}u{Ox;BAms%N#4_#pl(q5 zd<-j^He#hGZE8Hcr}|ucUQ8Y8iPZQ&lWy|zV%UgU^a6rZT#$TKVpuqME;6#MJu3y) z+aB`D^o{ahG)6C^Jv$XPc^>5!zL3mo%2SonG^v3`1ih;9s9?|_F|8|fAoYI(A=&ud zD8mt*DI_2Oe62M`QNpTcRinw9Wn%S-FaI;ytahVmY6Zf4s6ArgW$|v8$b~-00}Sc; z%Xjw5ij@<*@{N>@tKV3M|1ZOiE7d!C&={FwgTkUj3PR6?7xS!%>PBwO;f+|2s%KW> zs({xZu4PwE=&?*6{weq*Z#2YcZ^e`TyVA5$J);;yYH2@I4=3G4>>J zr7^~WGdYu_Xtw}xA<@FX?ek@mf)*s98F3{s#)31sr&Yrr&GoD2E>tF9hFrvh5K)YF z#WB)1w8;NKbiBF%Hadk^wObK3xB&E0t-P+0cVf2ic4ox?C~MLJ@~D4q9YhzksY-ES zW7^Esutb?z?pHfCf$Zhffg5hemkg(rZt(b$%=r3|9|5n3f+*nU~850%&Y(QE^}#Lh$%vVLr2X{Na8jJ{L2kITy~6cm+#ox-Sc3YY=DorNAvyFG zFP5Ts5lZ=e{lFOhBBNI+pHcqqVCz;5ZWirK*bLyEZ;3D zj|EC_ddO|s@eF?g(1PchF4<%a%LASL`+mX8qW)`8EedIX`1Ik{=$(CAR8QobYWvgC zv`-=C;C`uw4y+H-?I#GZ6=N8%IlumeKCA4)wZZvBD7k0035**F@sigccUN~;4g)14 zTv)+u0l8Q7&{UnrApmsGWWz<*n)c+SV7ms>LBJbJujzlG*)Fg=&}rk_U3YKArWPy; zPz&jy?ma7grzN`QbHG=+g4qe?z*AHsXIG}*6u9M+9?L$T3=kgk+!E9$!C8r1WwD=O zjIBkNN?>ZjW6gd+?)lC?c6Oi4!RIJNxT_~N%Zd)TvdIITE}*&hD*aA+_m~)d9}EZd zMXcZD@3()e8~fE4s0m2%8DqLs%AgMLe^B>05fw~CeqwF;sKW%;rh06_MR|5l${JxT zKFXr31>>^B7rRvuCzHNH-y7(WxfzVBC-7-*(z{QSPv|Q0wINwVp1?7sU2op;MKWBT zQv4XumBENt-UpoEKPkTv)8TNCfIch@di7^GFaUoi=nr%W?9JSqS6{dw!(=Tnuor_N z@BEnv-!t;-6L`>>^6Eo{)52sQO)plwG0!uC&N-`|S(L{lYz11_3g<=e&V9vVD39Xo z2@8f9^X5l^%bJSwV&nER$3Q+z4SC})wpQVif$2}|z}fqlrHz5Chu@w4`*&A&er9AF zu-1QZn&Wtxd4(Y=$E76xoR`u0H%zVxZ=)U~x?;dTk`nvl-DBcpz5{U~uz$w}p)5nVRIE7`s2CQ?UaE^9N_Uixa(zXoM{^|O zIYN%K4h>D>t|~i>N|u0jd}z$(wtPK2$*X_L7pDoR9WQQ{#3;fwIprn)d>ch2Lu0^Y zUR-=J)tCWscXx6KIuOTj31GjRX&(V=LT1gcXJw!nMwXp?4=PvE1&Z8JZjLPdP+@9mszd zBol{+#H?#RIef36!T~fDrMgSY-30VSY=7I`{V6}){>1M&G;Ui{w#96O?NVD`l0(jU z!_8oLm!7nw;LaIr(6_1wXs&VtF^9Y{0e~2ezp&u*=vi6qwXICLdAx*iBeCbz#32vr zAdRY<4#TCjJPkpoSD>GSqS$VBbcTPQ#dmy9$g@8l@rBWJ?wQPh{ZS0kc5KOh)tzvcFwhHfS_VfBe>Uf>FKnBFl!zIkIXaZN)u&x^ z3`mZct0v^0B#3X#?uW_<&l9aZj$>4?fA|Scb&kX>yNC8*Gd3kU0gV!ZvtX1*=*~># z-~3}9`xmDH2K@0&SYr%Hm*ao?VJki<$}@7#gApE?aONyw`nFI7;5;|s%(*66#m{KZ z`8kil+MU9RGxK}G`w;%DBmm(7+=^#^G>~)mFgh5>u49k@zg^vY#!)8Avxny|~SK*jX%=qHYWLXPI z>7&u%m43|l;?7?bXQO`xR9nxzpjJFFkI5lqqL%PJxxNj{^{qFqNB(9e|DYf*%jSgn zpHGd;>8JClGJaB9XE_xf^3 zXjXlpsKx>7_{@$2dzXhi8c6pkL67t~zr62nJ3J4vvg0ATE5Ls)Q|y=KiqoqkFU%Ro zBZpp?H;25*;_C0i7m^-W&ZgPlhc|uS@OR~n%egKu%%u#)e6OpjTQ~cE>yh(20uI&! zJM(nCs5iHQuNQ|}MqatBiju!N1~BTqOw?8a)Hu&hKAdSyP?pomYKxGOI-t^wwOr;E zDjY`|```J+pZR|^hv|bMGO&O)pIv!rEmiNBmix zfuo6!aKn)u!#i{RO5%W2N9fK>N9{f!V}%tZbD0&&i&1}L>4dkMLoai{6^+c(lSbRh zqzr{;B1%k;^yJkpTk{u4MXNTfBYuo+RuyaL*=YDFyjhH(*L;f3B(-P=y_!)4VAF}3 z&mSn|fj-scyPyulMnVc{mthjNWqZn|Wt7tj5xe^`Q)foWMnd&OL znH-c-Ukvc{P_Mx>A{WO{0Y@SMSLM{j8Vu8B{izIi<3hE2`l zo9+&b!5YdswN(`Z&bREMCDDoM2D^#e8l|*JYC2l!fzHN^Tl${Mi^6;saLYb9`=jmpB`X&WoJl0!fHx>dh zvCJwf5JvnA@`+eZ($nb|lXlZ2t4^S9tMV0BL6pTzioBqX_-5kk`?m}&we?m_g zKa$m$W~ZQL)7>>Qx~Kd!K=y;gaQlCQ?lzT?;3lgBuA{Rl4I!+wEAHqG$$#1CvuJ9V z(UIahfw2^fjQrcYKvn_F$aT`2Bq8fGQw1dn?TXC|gZww zn(e;b2z7j|^5TLD80?o4#lcyzqiO(Om$(+LElYGO-Ji_$en?Ct9DI1B}Bu&N{sfB`4<7 zTjM*h39LV3RxvO_b_>GKLauFlx8(Km9z#HZm+h%vzLL; zV0ThBUM47w|5>`m1qxiBZ3(UdnowWY-gJuVizOI->N{c>X_L{&bm?CQp(MT`Z%cLG zUF{B?_dtCH33X+z@5?p*OoadbJ)Eag3$BjO;Jn3wXOJk*GI?5Hh&X>tEjY(v3bz@D z;qhaNGkhYD1tFELlDkR}%u1d%3|jLv#xiC-S9JD5{_fXT1GuI#VC}CG%~KEp6|JwL z1{QrAAz(K#*IQvb6#_9~Gd5g~R`lE4VNFmCXT*C&cheofgZGKNl928Z{1hQ3N8BVe z+;pe7$)T4rBO@MxgPDH_t!)}Y1i(Q)eE*U6PDdOOOG;A^1BNpVGs0<8W79XuRy4P% z^q|jU5g+6L+lr5?E?6^$DPG4IP2d_NB3O)V$o?Lu`RAQ$9hOh&w70`*TgB% zQ1bl|(7P=Oa{_Dvn(-Gvtho&OdRil4D~9{ql2++8uCX)M9tp&HP_yG7;d_4cn>?z( z)rBz_%!{$6og;r|lCY6}vV+-2C3^iWLJMIdhV2$5KwhKGNOqedMjS*}73JBH zo}ffVs+)goMsh}!#F{RYj8NL7AtYXz?Nw)LUHM{#>b9ZXz1;Z-ZhhFqXr~bZF&Vbg zw52rJM{{Q?ZAWr{#eYKEyCEFRfvK*GJCLv9EkSKu(|#kbL}JXp$h9U5M+Rjb;Xx8k z%%#dJP|T@RBx^&@ zsR5~QAcWzKNNMr<)Ae^Q4M+=W<0wp*-{v~{ReclPVkhg+k!8EsLm{Tm=W`e>gU%)vc)?3Nz} z#P)x!N6!^^K(%&tfPnc};R;*3!j;V!b4fU{_D^xfx*N$6kU8P8mIZm|WIaIv(6&p_ zQ)~Ryr$6ql?yejLIYzh^el0<~caZ8?la)1gA z$loCw^bqbTVF3m8!ZJB5?aJ!dU3X6trWSu}9bSR+90y-X1ZKxmOuQr(@xq?luwnrP z^sm=*b-`nUU1Hig<=TW5Os3V~DvSN}{I(XIBeM-3IBvdEfSuhyF|IAJiS1j0%4y zBESE!TO>DuHFkLe!>613D9`RmStE?aE*X@ydR&(H63YKIdp-iQ3LYe4Jvujq-LjXB zJ+Bd)g9nM&@G*zjkL7DavWSEZo6@M)*eNY|4Ip2>!{sT(kD;P9Snv{>0nU3I4miPo zQhp<*k-?{QzO8wS&l1{utjHtl75RTTJT*?xALtS?Qgd70;xq^L9wjcwa9P?58K1$5 zx5x~TL1My0_!eScLr0~v<25cFsQ1WJ?fI+$gHnwSblv&G^BRggBj}v7)|o|lOaiu@ zg&{9tS)hguPS`Q^in%a>3NWIc*@&~Js!YsMh#)aoukk5xSyMhjK(Y3FLSKJYyu@V+ z=`|)L!Ldm6Awx1T;w2&zM7w}^ScDqmz}$LpS!wAkzJGUh=Vzg51J=r~8HS^qa(+nS z&v_Z0f5YUO@buu(;S~dxuCJhZ4#G_qI0&r)PeEwWz(L@DoC+5&C4#XVQXI@vY$lO>lzEiaK;*Roxxi3F@G`J_ds=Y6Vh9!S;BF6?5@QGdou@c_Rjg?xFNE&r}lpjxGR#d8CvuSt+wmVfj2`7K{Q1E4!OK85n@d%|*CFxNS_AI~|GKgY$F2zf@% zc^KbE`0nnHz`R62LiO3hdtRU8J4Ij)<|P6($tr%-XpSnHhRJyf6HakZ;CTtfJ>f$c zzHaF|0t2#>;{%MfzXnG%0D!>WtR2k&vH9E8%}0LCpBH}}qMbXvx}#rW>tgaK-oHnl z%V~*i>FW~6)ayFG@NK1Pnl*V-@zeA8^ufYKHIU99wU!%seh41TsO^VkdQdy3#t8l# z+_O1sLN4goWa61E`sUj(J}>RKhd}}AGcrj*GZHQ!9lVb?bXWo0e;d~Qw;tVp>(TuK z$!ZkQ6E1(l_&?x#2*3d5GXiD)kOgv{L;LWX<9KvA!YN4(EUTcmaTw3X7CZ!C4CgZr z=O#NbolBM{aiC6cYQsk?CV)Pp!DLx_N$I2h1V2AEd_-dc=rbDp&09n>RNE~nK~4CG z#Td_HC}MI5Haw8n9-NmzzP)}M(CfFpyngG|>mz@Et&zWmo|k2F!u-#wusn#u&7ha~ ztfG4i8o^bbh6#^=_7Dhxd_ znZkOB&sP$MsuUw=rwEL2e7hXBMywk06^;P)Vbm9gsuv0qP61Kit%gGO>$)M&RCa$s zuDhYNvOnO8M#h5@jq)mwg(RGqjHF+>N=S1j)cU?$lUKW89&bekXR7BvV^=9pm5=Ky-|qBBY1IkDGTXV{AXI7l!0pSHQk z0MCH;y0YG*qReYTGZ^hoX`NdqVNQQQIw3x9wBs`9>uHUItr(h~#tcCMvEDqLc~f1# zOTx)85uIbm5qn5ka)d6AaF>DgX`L znY1Cv0*j4*+rw4zBVFG>L6jM)bnHmH8Z;Tv1P$NM!yn)zDaT$_Trt5;wKr3AE%{e$06U+ED&LU2Rwdjxy z)!dwASdFk(!zCb6n$Z*|=piq^a2&w$#FqZTp)Fx6hGFS@^UcBWijY|QlH5{WO|QLa zWO4F?zx@fErJ7=GGTl;K^@4wY7ihwe%Pp+)i<`*fAuUTxq&(t?7@JcmD>*174T!bl zS@Cfst*P1UZbN;8+(PyhstK#nYyeuliP$7LPhY2b+$7|6cYQ)eCoE0>OP23yS|{XR zU*Up|0oYF|a&`OTj$LcS5m#a)%Z8eQ^Q!|rBs4#jxHwN{;p6KPZ1%$YOU4UcG5#@Gn?e){ZxRY+kfFKU|7 zzcB!2j0fR0Kgubg8T0H!GMdFi&Q}wBAPGnBu1c^U`JYU(uH_0i=DYd7nf)G<(}+sc zALPYdd-2skqeU4p;G}iUdD`i_u#ZT)fu-Q5ynTi8@7#p%dESzV|Q*l zT80Iu-kR22OH%kLKfPv!)^w5KL`-eZb^tY2l9qpMFh74y1B*OzQ?c;|AKS6qeqA=F zgnnVkzN&VA`Ss>n&u6)-pP5G6$6hklyVNw=U8$%5GkHv%q3*^i4~w2fPv@J}BH0AQkgk8-rcG#Hr4W^$}YC92c1{Q6$SoAtFo0KdTdD?%ER44wjEF_=DRBz;mKs>HpRa4C9 zfU50qroAo4&~id5kr`W#g@&n~&VaVAXtd^xvc7h#nWp#ra!g2JWOFRu8WWdx^3wOa zbN;}_b}T!J`66FclQR}E-#F)a{BJ8vC_ng!Za{BI&KkD+*2y9fhTDQLtYp2^EuU_BWso}&r7dl}r zU?kB%2wg diff --git a/docs/poli-docs/_build/html/reports/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.err.log b/docs/poli-docs/_build/html/reports/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.err.log index 9d12d73d..1ce38c0a 100644 --- a/docs/poli-docs/_build/html/reports/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.err.log +++ b/docs/poli-docs/_build/html/reports/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.err.log @@ -1,30 +1,84 @@ Traceback (most recent call last): - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution executenb( - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 1305, in execute + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 1305, in execute return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 172, in wrapped + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped return loop.run_until_complete(inner) - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete return future.result() - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 705, in async_execute + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 705, in async_execute await self.async_execute_cell( - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 1058, in async_execute_cell + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 1058, in async_execute_cell await self._check_raise_for_error(cell, cell_index, exec_reply) - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 914, in _check_raise_for_error + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 914, in _check_raise_for_error raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: ------------------ -from poli.core.registry import get_problems -get_problems(include_repository=True) +from poli import objective_factory + +f, x0, y0 = objective_factory.create( + name="foldx_stability", + caller_info=None, + observer=None, + wildtype_pdb_path=wildtype_pdb_path +) ------------------ +----- stdout ----- +poli 🧪: creating an isolated black box function. +poli 🧪: starting the isolated objective process. +----- stdout ----- +Traceback (most recent call last): + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 138, in run + f, x0, y0 = objective_factory.create(**kwargs) +TypeError: create() got an unexpected keyword argument 'caller_info' +----- stderr ----- +Traceback (most recent call last): + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 176, in + run(factory_kwargs[0], args.objective_name, args.port, args.password) + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 145, in run + raise e + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 138, in run + f, x0, y0 = objective_factory.create(**kwargs) +TypeError: create() got an unexpected keyword argument 'caller_info' +------------------ --------------------------------------------------------------------------- TypeError Traceback (most recent call last) -Cell In[1], line 2 - 1 from poli.core.registry import get_problems -----> 2 get_problems(include_repository=True) +Cell In[5], line 3 + 1 from poli import objective_factory +----> 3 f, x0, y0 = objective_factory.create( + 4  name="foldx_stability", + 5  caller_info=None, + 6  observer=None, + 7  wildtype_pdb_path=wildtype_pdb_path + 8 ) + +File ~/Projects/poli/src/poli/objective_factory.py:439, in create(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory) + 437 if not quiet: + 438 print(f"poli 🧪: creating an isolated black box function.") +--> 439 f, x0, y0 = __create_as_isolated_process( + 440  name, + 441  seed=seed, + 442  batch_size=batch_size, + 443  parallelize=parallelize, + 444  num_workers=num_workers, + 445  evaluation_budget=evaluation_budget, + 446  quiet=quiet, + 447  **kwargs_for_factory, + 448 ) + 449 problem_information = f.info + 451 # instantiate observer (if desired) + +File ~/Projects/poli/src/poli/objective_factory.py:278, in __create_as_isolated_process(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory) + 276 e, tb = msg + 277 print(tb) +--> 278 raise e + 279 else: + 280 raise ValueError( + 281 f"Internal error: received {msg_type} when expecting SETUP or EXCEPTION" + 282 ) -TypeError: get_problems() got an unexpected keyword argument 'include_repository' +TypeError: create() got an unexpected keyword argument 'caller_info' diff --git a/docs/poli-docs/_build/html/reports/using_poli/the_basics/intro_to_poli.err.log b/docs/poli-docs/_build/html/reports/using_poli/the_basics/intro_to_poli.err.log deleted file mode 100644 index d01a5e23..00000000 --- a/docs/poli-docs/_build/html/reports/using_poli/the_basics/intro_to_poli.err.log +++ /dev/null @@ -1,43 +0,0 @@ -Traceback (most recent call last): - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution - executenb( - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 1305, in execute - return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 172, in wrapped - return loop.run_until_complete(inner) - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete - return future.result() - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 705, in async_execute - await self.async_execute_cell( - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 1058, in async_execute_cell - await self._check_raise_for_error(cell, cell_index, exec_reply) - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 914, in _check_raise_for_error - raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) -nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: ------------------- -from poli_baselines.solvers.simple.random_mutation import RandomMutation - -solver = RandomMutation( - black_box=f, - x0=x0, - y0=y0, -) - -print(f"x0: {x0}") -print(f"y0: {y0}") ------------------- - - ---------------------------------------------------------------------------- -ModuleNotFoundError Traceback (most recent call last) -Cell In[4], line 1 -----> 1 from poli_baselines.solvers.simple.random_mutation import RandomMutation - 3 solver = RandomMutation( - 4 black_box=f, - 5 x0=x0, - 6 y0=y0, - 7 ) - 9 print(f"x0: {x0}") - -ModuleNotFoundError: No module named 'poli_baselines' - diff --git a/docs/poli-docs/_build/html/reports/using_poli/the_basics/isolation.err.log b/docs/poli-docs/_build/html/reports/using_poli/the_basics/isolation.err.log index a8c64258..3c1d3c69 100644 --- a/docs/poli-docs/_build/html/reports/using_poli/the_basics/isolation.err.log +++ b/docs/poli-docs/_build/html/reports/using_poli/the_basics/isolation.err.log @@ -1,28 +1,94 @@ Traceback (most recent call last): - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution executenb( - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 1305, in execute + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 1305, in execute return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 172, in wrapped + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped return loop.run_until_complete(inner) - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete return future.result() - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 705, in async_execute + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 705, in async_execute await self.async_execute_cell( - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 1058, in async_execute_cell + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 1058, in async_execute_cell await self._check_raise_for_error(cell, cell_index, exec_reply) - File "/Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/nbclient/client.py", line 914, in _check_raise_for_error + File "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/nbclient/client.py", line 914, in _check_raise_for_error raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content) nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell: ------------------ -TODO: write +from poli import create + +f, x0, y0 = create( + name="dockstring", + target_name="drd2" # The target protein. +) ------------------ +----- stdout ----- +poli 🧪: creating an isolated black box function. +poli 🧪: starting the isolated objective process. +----- stdout ----- +Traceback (most recent call last): + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 135, in run + objective_factory: AbstractProblemFactory = dynamically_instantiate( + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 102, in dynamically_instantiate + raise e + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 92, in dynamically_instantiate + exec(command) + File "", line 1, in +ModuleNotFoundError: No module named 'register' +----- stderr ----- +CRITICAL:root:Path: /opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin:/opt/homebrew/bin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/Users/sjt972/.cargo/bin:/Users/sjt972/anaconda3/bin +CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring'] +CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring +CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring +Traceback (most recent call last): + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 176, in + run(factory_kwargs[0], args.objective_name, args.port, args.password) + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 145, in run + raise e + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 135, in run + objective_factory: AbstractProblemFactory = dynamically_instantiate( + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 102, in dynamically_instantiate + raise e + File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 92, in dynamically_instantiate + exec(command) + File "", line 1, in +ModuleNotFoundError: No module named 'register' +------------------ --------------------------------------------------------------------------- -NameError Traceback (most recent call last) -Cell In[1], line 1 -----> 1 TODO: write +ModuleNotFoundError Traceback (most recent call last) +Cell In[2], line 3 + 1 from poli import create +----> 3 f, x0, y0 = create( + 4  name="dockstring", + 5  target_name="drd2" # The target protein. + 6 ) + +File ~/Projects/poli/src/poli/objective_factory.py:439, in create(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory) + 437 if not quiet: + 438 print(f"poli 🧪: creating an isolated black box function.") +--> 439 f, x0, y0 = __create_as_isolated_process( + 440  name, + 441  seed=seed, + 442  batch_size=batch_size, + 443  parallelize=parallelize, + 444  num_workers=num_workers, + 445  evaluation_budget=evaluation_budget, + 446  quiet=quiet, + 447  **kwargs_for_factory, + 448 ) + 449 problem_information = f.info + 451 # instantiate observer (if desired) + +File ~/Projects/poli/src/poli/objective_factory.py:278, in __create_as_isolated_process(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory) + 276 e, tb = msg + 277 print(tb) +--> 278 raise e + 279 else: + 280 raise ValueError( + 281 f"Internal error: received {msg_type} when expecting SETUP or EXCEPTION" + 282 ) -NameError: name 'write' is not defined +ModuleNotFoundError: No module named 'register' diff --git a/docs/poli-docs/_build/html/searchindex.js b/docs/poli-docs/_build/html/searchindex.js index 2c326894..5498d034 100644 --- a/docs/poli-docs/_build/html/searchindex.js +++ b/docs/poli-docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_autosummary/poli", "_autosummary/poli.core", "_autosummary/poli.core.abstract_black_box", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox", "_autosummary/poli.core.abstract_problem_factory", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory", "_autosummary/poli.core.chemistry", "_autosummary/poli.core.chemistry.tdc_black_box", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox", "_autosummary/poli.core.exceptions", "_autosummary/poli.core.exceptions.BudgetExhaustedException", "_autosummary/poli.core.exceptions.PoliException", "_autosummary/poli.core.multi_objective_black_box", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "_autosummary/poli.core.problem_setup_information", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation", "_autosummary/poli.core.proteins", "_autosummary/poli.core.proteins.foldx_black_box", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox", "_autosummary/poli.core.registry", "_autosummary/poli.core.registry.delete_observer_run_script", "_autosummary/poli.core.registry.delete_problem", "_autosummary/poli.core.registry.get_problem_factories", "_autosummary/poli.core.registry.get_problems", "_autosummary/poli.core.registry.register_problem", "_autosummary/poli.core.registry.register_problem_from_repository", "_autosummary/poli.core.registry.set_observer", "_autosummary/poli.core.registry.set_observer_run_script", "_autosummary/poli.core.util", "_autosummary/poli.core.util.abstract_observer", "_autosummary/poli.core.util.abstract_observer.AbstractObserver", "_autosummary/poli.core.util.alignment", "_autosummary/poli.core.util.alignment.is_aligned", "_autosummary/poli.core.util.batch", "_autosummary/poli.core.util.batch.batch_input", "_autosummary/poli.core.util.batch.batch_input.batched", "_autosummary/poli.core.util.chemistry", "_autosummary/poli.core.util.chemistry.string_to_molecule", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "_autosummary/poli.core.util.external_observer", "_autosummary/poli.core.util.external_observer.ExternalObserver", "_autosummary/poli.core.util.files", "_autosummary/poli.core.util.files.download_files_from_github", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag", "_autosummary/poli.core.util.files.integrity", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath", "_autosummary/poli.core.util.inter_process_communication", "_autosummary/poli.core.util.inter_process_communication.process_wrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection", "_autosummary/poli.core.util.objective_management", "_autosummary/poli.core.util.objective_management.make_run_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script", "_autosummary/poli.core.util.observer_wrapper", "_autosummary/poli.core.util.observer_wrapper.start_observer_process", "_autosummary/poli.core.util.proteins", "_autosummary/poli.core.util.proteins.defaults", "_autosummary/poli.core.util.proteins.foldx", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface", "_autosummary/poli.core.util.proteins.mutations", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "_autosummary/poli.core.util.proteins.pdb_parsing", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "_autosummary/poli.core.util.proteins.rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization", "_autosummary/poli.core.util.proteins.rasp.load_models", "_autosummary/poli.core.util.proteins.rasp.rasp_interface", "_autosummary/poli.core.util.seeding", "_autosummary/poli.core.util.seeding.seeding", "_autosummary/poli.core.util.seeding.seeding.seed_numpy", "_autosummary/poli.core.util.seeding.seeding.seed_python", "_autosummary/poli.objective", "_autosummary/poli.objective.dynamically_instantiate", "_autosummary/poli.objective.parse_factory_kwargs", "_autosummary/poli.objective.run", "_autosummary/poli.objective_factory", "_autosummary/poli.objective_factory.ExternalBlackBox", "_autosummary/poli.objective_factory.create", "_autosummary/poli.objective_factory.load_config", "_autosummary/poli.objective_factory.start", "_autosummary/poli.objective_repository", "_autosummary/poli.objective_repository.aloha", "_autosummary/poli.objective_repository.aloha.register", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory", "_autosummary/poli.objective_repository.dockstring", "_autosummary/poli.objective_repository.dockstring.register", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory", "_autosummary/poli.objective_repository.drd3_docking", "_autosummary/poli.objective_repository.drd3_docking.register", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config", "_autosummary/poli.objective_repository.foldx_sasa", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils", "_autosummary/poli.objective_repository.foldx_sasa.register", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "_autosummary/poli.objective_repository.foldx_stability", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils", "_autosummary/poli.objective_repository.foldx_stability.register", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "_autosummary/poli.objective_repository.foldx_stability_and_sasa", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "_autosummary/poli.objective_repository.gfp_cbas", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp", "_autosummary/poli.objective_repository.gfp_cbas.make_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "_autosummary/poli.objective_repository.gfp_cbas.register", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "_autosummary/poli.objective_repository.gfp_select", "_autosummary/poli.objective_repository.gfp_select.register", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "_autosummary/poli.objective_repository.penalized_logp_lambo", "_autosummary/poli.objective_repository.penalized_logp_lambo.register", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "_autosummary/poli.objective_repository.rasp", "_autosummary/poli.objective_repository.rasp.register", "_autosummary/poli.objective_repository.rdkit_logp", "_autosummary/poli.objective_repository.rdkit_logp.register", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "_autosummary/poli.objective_repository.rdkit_qed", "_autosummary/poli.objective_repository.rdkit_qed.register", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.sa_tdc", "_autosummary/poli.objective_repository.sa_tdc.register", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory", "_autosummary/poli.objective_repository.super_mario_bros", "_autosummary/poli.objective_repository.super_mario_bros.level_utils", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized", "_autosummary/poli.objective_repository.super_mario_bros.model", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model", "_autosummary/poli.objective_repository.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "_autosummary/poli.objective_repository.toy_continuous_problem.register", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "_autosummary/poli.objective_repository.white_noise", "_autosummary/poli.objective_repository.white_noise.register", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "_autosummary/poli.registered_objectives", "_autosummary/poli.tests", "_autosummary/poli.tests.docs_examples", "_autosummary/poli.tests.docs_examples.test_objective_functions", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "_autosummary/poli.tests.registry", "_autosummary/poli.tests.registry.basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion", "_autosummary/poli.tests.registry.chemistry", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives", "_autosummary/poli.tests.registry.proteins", "_autosummary/poli.tests.registry.proteins.test_foldx", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo", "_autosummary/poli.tests.registry.proteins.test_rasp", "_autosummary/poli.tests.registry.test_basic_loop_without_create", "_autosummary/poli.tests.registry.test_force_isolation", "_autosummary/poli.tests.registry.test_passing_array_of_strings", "_autosummary/poli.tests.registry.toy_continuous_problems", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "_autosummary/poli.tests.test_minimal_working_example", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example", "_autosummary/poli.tests.test_seeding", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise", "_autosummary/poli.tests.util", "_autosummary/poli.tests.util.test_foldx_interface", "_autosummary/poli.tests.util.test_protein_utilities", "_templates/custom-module-template", "api", "bibliography", "contributing/a_new_problem", "contributing/a_new_solver", "getting_started/getting_started", "index", "understanding_foldx/00-installing-foldx", "understanding_foldx/01-single-mutation-using-foldx/index", "using_poli/objective_repository/RaSP", "using_poli/objective_repository/all_objectives", "using_poli/objective_repository/aloha", "using_poli/objective_repository/dockstring", "using_poli/objective_repository/drd3_docking", "using_poli/objective_repository/foldx_rfp_lambo", "using_poli/objective_repository/foldx_sasa", "using_poli/objective_repository/foldx_stability", "using_poli/objective_repository/penalized_logp_lambo", "using_poli/objective_repository/rdkit_logp", "using_poli/objective_repository/rdkit_qed", "using_poli/objective_repository/sa_tdc", "using_poli/objective_repository/super_mario_bros", "using_poli/objective_repository/tdc_oracles", "using_poli/objective_repository/template", "using_poli/objective_repository/toy_continuous_problems", "using_poli/objective_repository/white_noise", "using_poli/observers/registering_an_observer", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability", "using_poli/the_basics/defining_a_problem_solver", "using_poli/the_basics/defining_an_observer", "using_poli/the_basics/diving_deeper", "using_poli/the_basics/intro_to_poli", "using_poli/the_basics/isolation", "using_poli/the_basics/optimizing_an_objective_function", "using_poli/the_basics/registering_an_objective_function", "using_poli_baselines/bayesian_optimization", "using_poli_baselines/cma_es", "using_poli_baselines/graph_ga", "using_poli_baselines/latent_space_bo", "using_poli_baselines/line_bayesian_optimization", "using_poli_baselines/nsga_2", "using_poli_baselines/random_mutations", "using_poli_baselines/template"], "filenames": ["_autosummary/poli.rst", "_autosummary/poli.core.rst", "_autosummary/poli.core.abstract_black_box.rst", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox.rst", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox.rst", "_autosummary/poli.core.abstract_problem_factory.rst", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory.rst", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.rst", "_autosummary/poli.core.chemistry.rst", "_autosummary/poli.core.chemistry.tdc_black_box.rst", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox.rst", "_autosummary/poli.core.exceptions.rst", "_autosummary/poli.core.exceptions.BudgetExhaustedException.rst", "_autosummary/poli.core.exceptions.PoliException.rst", "_autosummary/poli.core.multi_objective_black_box.rst", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.rst", "_autosummary/poli.core.problem_setup_information.rst", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.rst", "_autosummary/poli.core.proteins.rst", "_autosummary/poli.core.proteins.foldx_black_box.rst", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.rst", "_autosummary/poli.core.registry.rst", "_autosummary/poli.core.registry.delete_observer_run_script.rst", "_autosummary/poli.core.registry.delete_problem.rst", "_autosummary/poli.core.registry.get_problem_factories.rst", "_autosummary/poli.core.registry.get_problems.rst", "_autosummary/poli.core.registry.register_problem.rst", "_autosummary/poli.core.registry.register_problem_from_repository.rst", "_autosummary/poli.core.registry.set_observer.rst", "_autosummary/poli.core.registry.set_observer_run_script.rst", "_autosummary/poli.core.util.rst", "_autosummary/poli.core.util.abstract_observer.rst", "_autosummary/poli.core.util.abstract_observer.AbstractObserver.rst", "_autosummary/poli.core.util.alignment.rst", "_autosummary/poli.core.util.alignment.is_aligned.rst", "_autosummary/poli.core.util.batch.rst", "_autosummary/poli.core.util.batch.batch_input.rst", "_autosummary/poli.core.util.batch.batch_input.batched.rst", "_autosummary/poli.core.util.chemistry.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies.rst", "_autosummary/poli.core.util.external_observer.rst", "_autosummary/poli.core.util.external_observer.ExternalObserver.rst", "_autosummary/poli.core.util.files.rst", "_autosummary/poli.core.util.files.download_files_from_github.rst", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.rst", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.rst", "_autosummary/poli.core.util.files.integrity.rst", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath.rst", "_autosummary/poli.core.util.inter_process_communication.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.rst", "_autosummary/poli.core.util.objective_management.rst", "_autosummary/poli.core.util.objective_management.make_run_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.rst", "_autosummary/poli.core.util.observer_wrapper.rst", "_autosummary/poli.core.util.observer_wrapper.start_observer_process.rst", "_autosummary/poli.core.util.proteins.rst", "_autosummary/poli.core.util.proteins.defaults.rst", "_autosummary/poli.core.util.proteins.foldx.rst", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface.rst", "_autosummary/poli.core.util.proteins.mutations.rst", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings.rst", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant.rst", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure.rst", "_autosummary/poli.core.util.proteins.rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization.rst", "_autosummary/poli.core.util.proteins.rasp.load_models.rst", "_autosummary/poli.core.util.proteins.rasp.rasp_interface.rst", "_autosummary/poli.core.util.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.seed_numpy.rst", "_autosummary/poli.core.util.seeding.seeding.seed_python.rst", "_autosummary/poli.objective.rst", "_autosummary/poli.objective.dynamically_instantiate.rst", "_autosummary/poli.objective.parse_factory_kwargs.rst", "_autosummary/poli.objective.run.rst", "_autosummary/poli.objective_factory.rst", "_autosummary/poli.objective_factory.ExternalBlackBox.rst", "_autosummary/poli.objective_factory.create.rst", "_autosummary/poli.objective_factory.load_config.rst", "_autosummary/poli.objective_factory.start.rst", "_autosummary/poli.objective_repository.rst", "_autosummary/poli.objective_repository.aloha.rst", "_autosummary/poli.objective_repository.aloha.register.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.rst", "_autosummary/poli.objective_repository.dockstring.rst", "_autosummary/poli.objective_repository.dockstring.register.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.rst", "_autosummary/poli.objective_repository.drd3_docking.rst", "_autosummary/poli.objective_repository.drd3_docking.register.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.rst", "_autosummary/poli.objective_repository.foldx_sasa.rst", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability.rst", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_stability.register.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_cbas.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_select.rst", "_autosummary/poli.objective_repository.gfp_select.register.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.rst", "_autosummary/poli.objective_repository.rasp.rst", "_autosummary/poli.objective_repository.rasp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.rst", "_autosummary/poli.objective_repository.rdkit_qed.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.sa_tdc.rst", "_autosummary/poli.objective_repository.sa_tdc.register.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory.rst", "_autosummary/poli.objective_repository.super_mario_bros.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem.rst", "_autosummary/poli.objective_repository.white_noise.rst", "_autosummary/poli.objective_repository.white_noise.register.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory.rst", "_autosummary/poli.registered_objectives.rst", "_autosummary/poli.tests.rst", "_autosummary/poli.tests.docs_examples.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example.rst", "_autosummary/poli.tests.registry.rst", "_autosummary/poli.tests.registry.basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise.rst", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion.rst", "_autosummary/poli.tests.registry.chemistry.rst", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives.rst", "_autosummary/poli.tests.registry.proteins.rst", "_autosummary/poli.tests.registry.proteins.test_foldx.rst", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo.rst", "_autosummary/poli.tests.registry.proteins.test_rasp.rst", "_autosummary/poli.tests.registry.test_basic_loop_without_create.rst", "_autosummary/poli.tests.registry.test_force_isolation.rst", "_autosummary/poli.tests.registry.test_passing_array_of_strings.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems.rst", "_autosummary/poli.tests.test_minimal_working_example.rst", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.rst", "_autosummary/poli.tests.test_seeding.rst", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise.rst", "_autosummary/poli.tests.util.rst", "_autosummary/poli.tests.util.test_foldx_interface.rst", "_autosummary/poli.tests.util.test_protein_utilities.rst", "_templates/custom-module-template.rst", "api.rst", "bibliography.md", "contributing/a_new_problem.md", "contributing/a_new_solver.md", "getting_started/getting_started.md", "index.md", "understanding_foldx/00-installing-foldx.md", "understanding_foldx/01-single-mutation-using-foldx/index.ipynb", "using_poli/objective_repository/RaSP.md", "using_poli/objective_repository/all_objectives.md", "using_poli/objective_repository/aloha.md", "using_poli/objective_repository/dockstring.md", "using_poli/objective_repository/drd3_docking.md", "using_poli/objective_repository/foldx_rfp_lambo.md", "using_poli/objective_repository/foldx_sasa.md", "using_poli/objective_repository/foldx_stability.md", "using_poli/objective_repository/penalized_logp_lambo.md", "using_poli/objective_repository/rdkit_logp.md", "using_poli/objective_repository/rdkit_qed.md", "using_poli/objective_repository/sa_tdc.md", "using_poli/objective_repository/super_mario_bros.md", "using_poli/objective_repository/tdc_oracles.md", "using_poli/objective_repository/template.md", "using_poli/objective_repository/toy_continuous_problems.md", "using_poli/objective_repository/white_noise.md", "using_poli/observers/registering_an_observer.md", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb", "using_poli/the_basics/defining_a_problem_solver.md", "using_poli/the_basics/defining_an_observer.ipynb", "using_poli/the_basics/diving_deeper.md", "using_poli/the_basics/intro_to_poli.ipynb", "using_poli/the_basics/isolation.ipynb", "using_poli/the_basics/optimizing_an_objective_function.md", "using_poli/the_basics/registering_an_objective_function.md", "using_poli_baselines/bayesian_optimization.md", "using_poli_baselines/cma_es.md", "using_poli_baselines/graph_ga.md", "using_poli_baselines/latent_space_bo.md", "using_poli_baselines/line_bayesian_optimization.md", "using_poli_baselines/nsga_2.md", "using_poli_baselines/random_mutations.md", "using_poli_baselines/template.md"], "titles": ["poli", "poli.core", "poli.core.abstract_black_box", "poli.core.abstract_black_box.AbstractBlackBox", "poli.core.abstract_black_box.NegativeBlackBox", "poli.core.abstract_problem_factory", "poli.core.abstract_problem_factory.AbstractProblemFactory", "poli.core.abstract_problem_factory.MetaProblemFactory", "poli.core.chemistry", "poli.core.chemistry.tdc_black_box", "poli.core.chemistry.tdc_black_box.TDCBlackBox", "poli.core.exceptions", "poli.core.exceptions.BudgetExhaustedException", "poli.core.exceptions.PoliException", "poli.core.multi_objective_black_box", "poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "poli.core.problem_setup_information", "poli.core.problem_setup_information.ProblemSetupInformation", "poli.core.proteins", "poli.core.proteins.foldx_black_box", "poli.core.proteins.foldx_black_box.FoldxBlackBox", "poli.core.registry", "poli.core.registry.delete_observer_run_script", "poli.core.registry.delete_problem", "poli.core.registry.get_problem_factories", "poli.core.registry.get_problems", "poli.core.registry.register_problem", "poli.core.registry.register_problem_from_repository", "poli.core.registry.set_observer", "poli.core.registry.set_observer_run_script", "poli.core.util", "poli.core.util.abstract_observer", "poli.core.util.abstract_observer.AbstractObserver", "poli.core.util.alignment", "poli.core.util.alignment.is_aligned", "poli.core.util.batch", "poli.core.util.batch.batch_input", "poli.core.util.batch.batch_input.batched", "poli.core.util.chemistry", "poli.core.util.chemistry.string_to_molecule", "poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "poli.core.util.external_observer", "poli.core.util.external_observer.ExternalObserver", "poli.core.util.files", "poli.core.util.files.download_files_from_github", "poli.core.util.files.download_files_from_github.download_file_from_github_repository", "poli.core.util.files.download_files_from_github.get_sha_for_tag", "poli.core.util.files.integrity", "poli.core.util.files.integrity.compute_md5_from_filepath", "poli.core.util.inter_process_communication", "poli.core.util.inter_process_communication.process_wrapper", "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "poli.core.util.inter_process_communication.process_wrapper.get_connection", "poli.core.util.objective_management", "poli.core.util.objective_management.make_run_script", "poli.core.util.objective_management.make_run_script.make_observer_script", "poli.core.util.objective_management.make_run_script.make_run_script", "poli.core.util.observer_wrapper", "poli.core.util.observer_wrapper.start_observer_process", "poli.core.util.proteins", "poli.core.util.proteins.defaults", "poli.core.util.proteins.foldx", "poli.core.util.proteins.foldx.FoldxInterface", "poli.core.util.proteins.mutations", "poli.core.util.proteins.mutations.edits_between_strings", "poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "poli.core.util.proteins.pdb_parsing", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "poli.core.util.proteins.rasp", "poli.core.util.proteins.rasp.inner_rasp", "poli.core.util.proteins.rasp.inner_rasp.PrismData", "poli.core.util.proteins.rasp.inner_rasp.cavity_model", "poli.core.util.proteins.rasp.inner_rasp.helpers", "poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "poli.core.util.proteins.rasp.inner_rasp.visualization", "poli.core.util.proteins.rasp.load_models", "poli.core.util.proteins.rasp.rasp_interface", "poli.core.util.seeding", "poli.core.util.seeding.seeding", "poli.core.util.seeding.seeding.seed_numpy", "poli.core.util.seeding.seeding.seed_python", "poli.objective", "poli.objective.dynamically_instantiate", "poli.objective.parse_factory_kwargs", "poli.objective.run", "poli.objective_factory", "poli.objective_factory.ExternalBlackBox", "poli.objective_factory.create", "poli.objective_factory.load_config", "poli.objective_factory.start", "poli.objective_repository", "poli.objective_repository.aloha", "poli.objective_repository.aloha.register", "poli.objective_repository.aloha.register.AlohaBlackBox", "poli.objective_repository.aloha.register.AlohaProblemFactory", "poli.objective_repository.dockstring", "poli.objective_repository.dockstring.register", "poli.objective_repository.dockstring.register.DockstringBlackBox", "poli.objective_repository.dockstring.register.DockstringProblemFactory", "poli.objective_repository.drd3_docking", "poli.objective_repository.drd3_docking.register", "poli.objective_repository.drd3_docking.register.DRD3BlackBox", "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "poli.objective_repository.foldx_rfp_lambo", "poli.objective_repository.foldx_rfp_lambo.register", "poli.objective_repository.foldx_rfp_lambo.register.Config", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "poli.objective_repository.foldx_rfp_lambo.register.get_config", "poli.objective_repository.foldx_sasa", "poli.objective_repository.foldx_sasa.foldx_utils", "poli.objective_repository.foldx_sasa.register", "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "poli.objective_repository.foldx_stability", "poli.objective_repository.foldx_stability.foldx_utils", "poli.objective_repository.foldx_stability.register", "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "poli.objective_repository.foldx_stability_and_sasa", "poli.objective_repository.foldx_stability_and_sasa.register", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "poli.objective_repository.gfp_cbas", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "poli.objective_repository.gfp_cbas.cbas_wrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "poli.objective_repository.gfp_cbas.gfp_gp", "poli.objective_repository.gfp_cbas.make_vae", "poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "poli.objective_repository.gfp_cbas.make_vae.build_vae", "poli.objective_repository.gfp_cbas.make_vae.identity_loss", "poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "poli.objective_repository.gfp_cbas.register", "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "poli.objective_repository.gfp_select", "poli.objective_repository.gfp_select.register", "poli.objective_repository.gfp_select.register.GFPBlackBox", "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "poli.objective_repository.penalized_logp_lambo", "poli.objective_repository.penalized_logp_lambo.register", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "poli.objective_repository.rasp", "poli.objective_repository.rasp.register", "poli.objective_repository.rdkit_logp", "poli.objective_repository.rdkit_logp.register", "poli.objective_repository.rdkit_logp.register.LogPBlackBox", "poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "poli.objective_repository.rdkit_qed", "poli.objective_repository.rdkit_qed.register", "poli.objective_repository.rdkit_qed.register.QEDBlackBox", "poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "poli.objective_repository.rfp_foldx_stability_and_sasa", "poli.objective_repository.rfp_foldx_stability_and_sasa.register", "poli.objective_repository.sa_tdc", "poli.objective_repository.sa_tdc.register", "poli.objective_repository.sa_tdc.register.SABlackBox", "poli.objective_repository.sa_tdc.register.SAProblemFactory", "poli.objective_repository.super_mario_bros", "poli.objective_repository.super_mario_bros.level_utils", "poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "poli.objective_repository.super_mario_bros.level_utils.clean_level", "poli.objective_repository.super_mario_bros.level_utils.level_to_array", "poli.objective_repository.super_mario_bros.level_utils.level_to_list", "poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "poli.objective_repository.super_mario_bros.level_utils.vectorized", "poli.objective_repository.super_mario_bros.model", "poli.objective_repository.super_mario_bros.model.VAEMario", "poli.objective_repository.super_mario_bros.model.load_example_model", "poli.objective_repository.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.definitions", "poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "poli.objective_repository.toy_continuous_problem.definitions.brown", "poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "poli.objective_repository.toy_continuous_problem.definitions.deb_01", "poli.objective_repository.toy_continuous_problem.definitions.deb_02", "poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "poli.objective_repository.toy_continuous_problem.definitions.easom", "poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "poli.objective_repository.toy_continuous_problem.register", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "poli.objective_repository.white_noise", "poli.objective_repository.white_noise.register", "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "poli.registered_objectives", "poli.tests", "poli.tests.docs_examples", "poli.tests.docs_examples.test_objective_functions", "poli.tests.docs_examples.test_objective_functions.test_aloha_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_qed_example", "poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "poli.tests.registry", "poli.tests.registry.basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "poli.tests.registry.basic_objectives.test_budget_exhaustion", "poli.tests.registry.chemistry", "poli.tests.registry.chemistry.test_chemistry_objectives", "poli.tests.registry.proteins", "poli.tests.registry.proteins.test_foldx", "poli.tests.registry.proteins.test_foldx_rfp_lambo", "poli.tests.registry.proteins.test_rasp", "poli.tests.registry.test_basic_loop_without_create", "poli.tests.registry.test_force_isolation", "poli.tests.registry.test_passing_array_of_strings", "poli.tests.registry.toy_continuous_problems", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "poli.tests.test_minimal_working_example", "poli.tests.test_minimal_working_example.test_minimal_working_example", "poli.tests.test_seeding", "poli.tests.test_seeding.test_seeding_in_white_noise", "poli.tests.util", "poli.tests.util.test_foldx_interface", "poli.tests.util.test_protein_utilities", "<no title>", "API documentation for poli", "References", "Adding a new problem to the repository", "Adding a new optimizer to poli-baselines", "Getting started", "poli \ud83e\uddea: a library of discrete objective functions", "Installing foldx", "Computing the energy of a protein and a single mutation", "Rapid Stability Predictions", "All objective functions", "Aloha objective function", "dockstring", "DRD3 docking (using TDC)", "Protein (RFP) stability and SASA (using foldx,lambo)", "Protein solvent accessibility (using foldx)", "Protein stability (using foldx)", "Penalized logP (using lambo)", "Log-solubility (logP)", "Quantitative Estimate of Druglikeness (QED)", "Synthetic Accessibility (using TDC)", "Optimizing jumps in Super Mario Bros", "Therapeutics Data Commons\u2019 oracles", "Objective function name", "Toy continuous objective functions", "White Noise objective function", "Registering and running observers in isolated processes", "Optimizing protein stability using random mutations", "Defining a problem solver in poli_baselines", "Defining an observer", "Diving deeper: how does poli work under the hood?", "What is poli?", "Isolating black box objective functions", "Optimizing an objective function", "Registering an objective function in poli", "Bayesian Optimization", "CMA-ES", "Graph Genetic Algorithms", "Latent Space Bayesian Optimization", "Line Bayesian Optimization", "Discrete NSGA-2", "Random mutations", "Template: optimization algorithm"], "terms": {"modul": [0, 1, 2, 5, 8, 18, 19, 21, 30, 33, 35, 36, 38, 47, 48, 51, 53, 54, 57, 58, 63, 64, 65, 67, 71, 84, 97, 98, 102, 103, 106, 110, 116, 121, 126, 130, 150, 152, 162, 166, 167, 170, 171, 172, 176, 180, 182, 186, 199, 222, 227, 228, 229, 236, 237, 242, 244, 248, 249, 251, 257, 259, 262], "thi": [2, 4, 5, 6, 14, 15, 19, 21, 22, 23, 26, 27, 28, 29, 32, 36, 37, 43, 44, 48, 49, 51, 55, 56, 58, 62, 64, 65, 66, 67, 70, 71, 89, 90, 91, 94, 96, 99, 103, 106, 109, 118, 123, 127, 148, 152, 167, 171, 173, 177, 181, 200, 216, 217, 218, 223, 229, 248, 249, 252, 257, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301, 302, 303, 304], "implement": [2, 4, 5, 8, 9, 14, 15, 16, 18, 19, 36, 65, 100, 103, 104, 107, 119, 124, 128, 131, 148, 154, 166, 167, 171, 183, 184, 218, 266, 268, 272, 274, 276, 279, 286, 289, 290, 293, 294, 295, 296, 297, 298, 302], "abstract": [2, 3, 5, 6, 31, 32, 265, 289, 296], "black": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 274, 280, 281, 289, 290, 291, 293, 295, 297, 302], "box": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 273, 274, 280, 281, 286, 287, 289, 290, 291, 293, 295, 297, 302], "class": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 28, 31, 32, 45, 46, 54, 55, 65, 66, 92, 93, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 113, 114, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 132, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 196, 197, 217, 218, 219, 220, 221, 223, 224, 225, 265, 266, 290, 291, 296], "from": [2, 10, 20, 23, 25, 27, 37, 43, 44, 47, 48, 49, 50, 51, 52, 65, 66, 70, 89, 90, 96, 106, 119, 124, 128, 134, 139, 142, 155, 171, 190, 193, 198, 200, 206, 215, 256, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "which": [2, 3, 7, 16, 20, 45, 52, 66, 70, 74, 95, 103, 168, 177, 179, 217, 218, 224, 265, 266, 270, 271, 274, 275, 276, 279, 282, 286, 289, 290, 291, 293, 294, 295, 296, 297], "all": [2, 92, 94, 97, 99, 100, 101, 106, 148, 200, 224, 229, 265, 266, 267, 270, 271, 273, 274, 281, 289, 290, 293, 296], "object": [0, 2, 3, 4, 14, 15, 17, 19, 20, 32, 46, 50, 55, 56, 59, 66, 73, 74, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 106, 111, 113, 118, 119, 121, 123, 124, 127, 128, 160, 164, 168, 173, 177, 178, 179, 181, 183, 184, 200, 216, 217, 218, 221, 223, 229, 248, 249, 252, 264, 265, 266, 267, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 302], "function": [0, 2, 3, 4, 9, 14, 15, 21, 22, 23, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 43, 44, 48, 49, 51, 53, 54, 56, 58, 61, 62, 67, 70, 71, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 100, 102, 103, 104, 106, 108, 111, 113, 115, 116, 119, 121, 124, 128, 133, 153, 160, 164, 167, 168, 173, 174, 177, 178, 179, 184, 187, 196, 199, 200, 216, 217, 218, 220, 221, 223, 224, 229, 238, 248, 249, 252, 255, 257, 264, 265, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 301, 302], "should": [2, 55, 106, 265, 266, 267, 269, 273, 275, 280, 281, 286, 287, 289, 290, 291, 294, 295, 296], "inherit": [2, 10, 15, 266, 289, 290, 291, 296], "info": [3, 4, 10, 15, 20, 93, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 266, 290, 291, 293, 296, 302], "problemsetupinform": [3, 4, 10, 15, 20, 32, 93, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 276, 291, 296], "batch_siz": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 144, 160, 164, 168, 174, 178, 184, 218, 224, 265, 296, 302], "option": [3, 4, 10, 15, 17, 20, 22, 26, 27, 28, 29, 40, 42, 43, 44, 46, 49, 52, 59, 60, 66, 68, 69, 72, 73, 74, 86, 87, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 197, 218, 221, 224], "int": [3, 4, 10, 15, 17, 20, 32, 37, 56, 62, 68, 69, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 149, 160, 164, 168, 174, 178, 184, 188, 189, 192, 194, 197, 218, 221, 224, 265, 266, 290, 291, 295, 296], "none": [3, 4, 10, 15, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 59, 60, 66, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 143, 145, 147, 160, 161, 164, 168, 174, 178, 184, 197, 218, 221, 224, 265, 266, 273, 274, 280, 281, 285, 286, 287, 289, 291, 295, 296], "parallel": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265], "bool": [3, 4, 10, 17, 20, 25, 26, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 140, 160, 164, 168, 174, 178, 184, 216, 218, 224, 265, 279, 295], "fals": [3, 4, 10, 17, 20, 25, 26, 27, 41, 42, 43, 44, 49, 66, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 139, 140, 146, 160, 164, 168, 174, 178, 184, 193, 218, 224, 265, 291, 293, 295], "num_work": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265], "evaluation_budget": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265], "inf": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "base": [3, 6, 13, 32, 55, 106, 154, 267, 268, 270, 272, 275, 282, 289, 293, 296, 302], "optim": [3, 17, 32, 65, 110, 166, 167, 199, 200, 217, 220, 252, 264, 269, 270, 272, 286, 290, 291, 296, 302, 303], "problem": [3, 4, 5, 6, 10, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 34, 57, 58, 60, 93, 94, 99, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 173, 174, 177, 178, 179, 180, 184, 185, 186, 200, 217, 218, 222, 223, 224, 252, 267, 276, 291, 293, 302], "paramet": [3, 4, 6, 10, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 37, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 67, 68, 69, 70, 72, 73, 74, 86, 87, 89, 90, 91, 93, 94, 96, 100, 101, 104, 105, 108, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224], "The": [3, 4, 10, 15, 17, 19, 20, 22, 23, 26, 27, 28, 29, 37, 46, 49, 50, 52, 55, 56, 59, 60, 62, 65, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 104, 106, 108, 113, 118, 119, 123, 124, 127, 128, 154, 160, 164, 166, 173, 174, 177, 178, 179, 181, 184, 214, 215, 217, 218, 223, 224, 266, 268, 270, 271, 272, 274, 277, 278, 279, 289, 290, 294, 295, 296, 302], "setup": [3, 4, 6, 10, 15, 16, 20, 46, 62, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224, 275, 276, 279, 282], "inform": [3, 4, 6, 10, 15, 16, 20, 32, 46, 62, 93, 94, 96, 100, 101, 103, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 171, 174, 178, 179, 184, 185, 218, 221, 224, 264, 265, 270, 291, 296], "provid": [3, 15, 46, 92, 109, 119, 124, 178, 268, 269, 270, 291, 293], "detail": [3, 9, 67, 90, 91, 270, 289, 293], "about": [3, 10, 27, 90, 91, 93, 94, 96, 265, 268, 269, 272, 289, 293, 296], "batch": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "size": [3, 4, 10, 15, 20, 37, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296, 298, 302], "evalu": [3, 4, 10, 14, 15, 20, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 179, 184, 218, 224, 266, 267, 279, 289, 290, 291, 294, 296], "default": [3, 4, 10, 15, 17, 20, 22, 27, 28, 29, 46, 49, 52, 66, 68, 69, 72, 73, 74, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 265, 266, 276, 277, 278, 286, 296, 297, 301], "flag": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218], "indic": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 134, 135, 160, 164, 174, 178, 184, 218, 266, 290], "whether": [3, 4, 10, 17, 20, 25, 26, 49, 72, 73, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 249, 257, 270, 279, 280, 281, 291, 293, 296], "number": [3, 4, 10, 20, 37, 56, 62, 84, 85, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 266, 272, 286, 290, 293, 295], "worker": [3, 4, 10, 20, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "us": [3, 7, 10, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 51, 55, 56, 60, 64, 65, 66, 88, 89, 94, 96, 99, 100, 104, 106, 107, 108, 119, 123, 124, 126, 128, 138, 139, 140, 166, 167, 168, 171, 172, 173, 174, 176, 177, 178, 180, 183, 184, 217, 223, 248, 252, 264, 265, 266, 269, 270, 271, 272, 274, 280, 281, 286, 288, 290, 291, 294, 295, 296, 297, 298, 301, 302], "half": [3, 94, 224], "avail": [3, 24, 25, 94, 106, 118, 123, 127, 181, 224, 229, 267, 270, 272, 276, 277, 278, 279, 286, 289, 293, 295, 296], "cpu": [3, 94, 224], "maximum": [3, 4, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296], "allow": [3, 4, 7, 19, 20, 94, 113, 118, 119, 123, 124, 127, 128, 160, 164, 173, 177, 181, 217, 218, 265, 266, 269, 270, 286, 290, 293, 295, 296], "float": [3, 4, 20, 113, 119, 124, 128, 160, 164, 174, 177, 178, 184, 212, 218, 224, 265, 268, 295], "type": [3, 10, 15, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 55, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 95, 100, 104, 108, 136, 141, 174, 178, 218, 265, 270, 294, 296], "observ": [3, 21, 22, 28, 29, 30, 31, 32, 45, 46, 57, 58, 59, 61, 62, 89, 94, 96, 139, 268, 289, 295, 296], "record": 3, "dure": [3, 62, 265, 286], "abstractobserv": [3, 28, 59, 94, 96, 291], "set_observ": [3, 288], "set": [3, 26, 28, 29, 32, 55, 74, 106, 138, 140, 146, 152, 174, 178, 265, 266, 271, 274, 290, 291, 293], "__call__": [3, 4], "x": [3, 4, 15, 32, 46, 94, 96, 100, 104, 106, 124, 140, 145, 146, 174, 178, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 218, 224, 265, 266, 267, 271, 273, 274, 275, 280, 281, 285, 286, 287, 289, 290, 291, 296, 297], "context": [3, 15, 32, 46, 96, 100, 104, 124, 174, 178, 218, 224, 265, 291, 296], "given": [3, 15, 22, 43, 44, 56, 59, 60, 66, 69, 74, 103, 104, 105, 124, 136, 137, 138, 198, 266, 267, 271, 274, 290], "input": [3, 10, 15, 22, 29, 34, 36, 94, 100, 104, 108, 124, 174, 178, 184, 218, 224, 265, 267, 268, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 296, 297, 301, 302], "_black_box": [3, 4, 15, 100, 104, 124, 174, 178, 218, 224, 265, 296], "method": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 70, 74, 93, 94, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 138, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 270, 276, 277, 278, 289, 290, 291, 293, 294, 295, 296], "termin": [3, 62, 274, 277, 278, 279, 280, 281, 291, 296], "__enter__": 3, "enter": 3, "manag": [3, 96], "__exit__": 3, "exc_typ": 3, "exc_val": 3, "exc_tb": 3, "exit": 3, "__del__": 3, "destructor": 3, "__neg__": 3, "creat": [3, 6, 20, 26, 27, 28, 55, 57, 58, 59, 60, 92, 96, 101, 105, 109, 120, 129, 173, 177, 179, 185, 186, 248, 265, 266, 267, 268, 269, 270, 271, 273, 274, 276, 277, 278, 279, 280, 281, 285, 287, 289, 291, 294, 295, 297, 298, 301, 302, 303, 304], "new": [3, 108, 173, 177, 268, 270, 290, 296], "neg": [3, 158, 274, 278], "origin": [3, 4, 66, 67, 70, 131, 215, 268, 270, 289], "one": [3, 143, 178, 192, 264, 265, 266, 268, 270, 271, 272, 289, 290, 293, 301], "__init__": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 93, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 290, 291, 296], "initi": [3, 4, 10, 15, 17, 20, 32, 46, 55, 62, 66, 93, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 266, 270, 289, 290, 293, 296, 302], "execut": [3, 4, 51, 55, 59, 88, 106, 108, 113, 160, 164, 184, 218, 269, 275], "f": [4, 19, 64, 65, 94, 96, 118, 123, 127, 181, 265, 266, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 302, 303, 304], "abstractblackbox": [4, 10, 15, 94, 96, 113, 160, 164, 218, 265, 266, 289, 290, 291, 296], "factori": [5, 6, 19, 24, 26, 27, 55, 60, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 105, 109, 111, 118, 119, 120, 121, 123, 124, 127, 129, 173, 177, 179, 181, 185, 217, 223, 265, 268, 289], "defin": [6, 28, 67, 180, 200, 252, 265, 266, 286, 293, 295], "interfac": [6, 65, 92, 268, 294], "instanc": [6, 10, 15, 101, 105, 108, 120, 129, 179, 185, 218, 267, 289, 296, 302], "framework": 264, "get_setup_inform": [6, 101, 105, 109, 120, 129, 179, 185, 265, 296], "return": [4, 6, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 52, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 94, 95, 96, 101, 105, 120, 124, 129, 136, 137, 138, 141, 143, 156, 157, 168, 173, 174, 177, 178, 179, 185, 191, 194, 222, 223, 224, 265, 266, 273, 274, 276, 277, 278, 280, 281, 287, 289, 290, 294, 296], "specifi": [6, 49, 50, 94, 101, 105, 120, 129, 137, 142, 150, 154, 179, 185, 217, 265, 270, 280, 281, 295, 296, 302], "metaclass": 7, "abstractproblemfactori": [7, 24, 26, 60, 265, 296], "overrid": 7, "__repr__": 7, "__str__": 7, "arg": [7, 150, 151, 154, 155, 197, 265, 270], "kwarg": [7, 26, 60, 89, 90, 91, 150, 151, 154, 155, 197, 265, 296], "In": [106, 166, 168, 264, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 298, 302], "we": [9, 14, 20, 27, 64, 70, 94, 106, 118, 119, 123, 124, 127, 128, 139, 166, 167, 173, 174, 177, 178, 181, 200, 214, 216, 217, 252, 265, 266, 267, 268, 270, 271, 274, 275, 276, 279, 286, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302], "synthet": [9, 182, 183, 184, 185, 268, 272], "access": [9, 66, 106, 116, 119, 120, 126, 128, 129, 180, 183, 184, 185, 264, 265, 268, 270, 272, 275, 286], "tdc": [9, 10, 106, 107, 182, 183, 184, 268, 272], "oracl": [9, 10, 107, 108, 182, 183, 184, 268, 272, 275, 282], "1": [9, 19, 27, 37, 65, 68, 70, 96, 103, 104, 105, 107, 110, 118, 123, 127, 134, 135, 139, 146, 156, 166, 167, 168, 171, 177, 181, 183, 184, 188, 200, 206, 215, 217, 221, 264, 266, 267, 268, 270, 271, 273, 275, 279, 280, 281, 285, 286, 287, 289, 290, 291, 293, 294, 296, 297, 298, 301, 302], "huang": [9, 107, 183, 264, 268, 275, 282], "kexin": [9, 264], "tianfan": [9, 264], "fu": [9, 107, 183, 264], "wenhao": [9, 264], "gao": [9, 107, 183, 264, 272], "yue": [9, 264], "zhao": [9, 264], "yusuf": [9, 264], "roohani": [9, 264], "jure": [9, 264], "leskovec": [9, 264], "connor": [9, 264], "w": [9, 64, 107, 183, 192, 197, 264, 268, 270, 275, 291], "colei": [9, 264, 268], "cao": [9, 264], "xiao": [9, 264], "jimeng": [9, 264], "sun": [9, 264], "marinka": [9, 264], "zitnik": [9, 264], "artifici": [9, 107, 183, 200], "intellig": [9, 107, 183], "foundat": [9, 107, 183], "therapeut": [9, 10, 107, 183, 264, 268, 272, 275, 282, 296], "scienc": [9, 107, 183, 264], "natur": 9, "chemic": [9, 103, 104, 105, 264], "biologi": [9, 106, 118, 123, 127, 181, 264, 275], "18": [9, 107, 183, 264, 289], "10": [9, 37, 103, 104, 105, 107, 171, 183, 264, 270, 291, 297, 298, 301, 302], "octob": 9, "2022": [9, 65, 103, 104, 105, 107, 110, 166, 167, 183, 264, 268, 269, 270, 272, 274, 279, 289], "1033": [9, 107, 183], "36": 9, "http": [9, 37, 48, 65, 67, 103, 104, 105, 106, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 265, 267, 268, 269, 270, 276, 279, 291, 296], "doi": [9, 103, 104, 105, 107, 171, 183, 264], "org": [9, 37, 65, 103, 104, 105, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 270], "1038": [9, 107, 183], "s41589": [9, 107, 183], "022": [9, 107, 183], "01131": [9, 107, 183], "2": [9, 27, 37, 65, 68, 107, 118, 123, 127, 134, 135, 181, 183, 197, 200, 216, 218, 221, 264, 267, 270, 282, 285, 286, 287, 289, 293, 297, 301], "oracle_nam": [10, 108], "str": [10, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 94, 96, 104, 108, 119, 124, 128, 161, 178, 190, 191, 197, 218, 265, 270, 277, 278, 279, 291, 296], "from_smil": [10, 108, 168, 174, 178, 184], "true": [10, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 74, 94, 96, 108, 140, 155, 160, 168, 174, 178, 184, 216, 270, 275, 277, 278, 279, 280, 281, 282, 289, 291, 293, 295, 296], "repres": [10, 20, 56, 68, 73, 108, 154, 293], "data": [9, 10, 35, 100, 104, 106, 139, 140, 146, 147, 152, 264, 268, 270, 272, 275, 276, 282, 296], "common": [9, 10, 92, 264, 268, 270, 272, 275, 282, 296, 302], "It": [10, 26, 55, 56, 89, 106, 265, 267, 270, 274, 275, 289, 290, 293], "name": [10, 17, 22, 23, 26, 27, 28, 29, 46, 49, 50, 60, 62, 72, 73, 74, 89, 91, 94, 96, 104, 108, 218, 221, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "comput": [10, 19, 52, 66, 68, 70, 100, 104, 106, 108, 118, 119, 123, 124, 126, 127, 128, 166, 167, 172, 174, 178, 180, 181, 200, 264, 267, 268, 269, 271, 272, 275, 277, 278, 279, 282, 294], "dock": [10, 103, 104, 105, 106, 107, 108, 109, 264, 268, 272, 274, 294], "score": [10, 103, 104, 105, 119, 124, 128, 268, 271, 272, 274, 275, 277, 278, 279, 294], "an": [10, 19, 22, 28, 29, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 49, 56, 61, 62, 65, 70, 89, 91, 93, 94, 96, 118, 123, 127, 134, 135, 173, 178, 181, 192, 249, 265, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 289, 294, 297, 298, 302], "contain": [8, 10, 16, 18, 21, 37, 51, 58, 60, 64, 67, 68, 69, 71, 89, 90, 91, 95, 134, 135, 152, 221, 229, 265, 267, 270, 277, 278, 296], "process": [10, 26, 28, 32, 45, 46, 55, 56, 61, 62, 89, 91, 93, 94, 96, 100, 104, 119, 123, 124, 128, 152, 173, 174, 178, 249, 264, 265, 270, 275, 276, 277, 278, 279, 280, 281, 282, 286, 293, 294, 295, 296, 297], "multipl": [10, 100, 104, 174, 178], "budget": [3, 10, 12, 20, 96, 119, 124, 128], "infin": [10, 94, 100, 104, 108, 119, 124, 128, 174, 178, 184], "molecul": [10, 39, 40, 41, 42, 103, 104, 105, 168, 174, 178, 179, 264, 267, 270, 274, 275, 282, 293], "ar": [10, 24, 27, 32, 65, 68, 70, 95, 106, 140, 168, 173, 174, 177, 178, 179, 217, 229, 252, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 297], "smile": [10, 41, 42, 43, 44, 104, 108, 173, 174, 177, 178, 184, 268, 274, 279, 280, 281], "format": [10, 55, 67, 70, 136], "represent": [10, 39, 42, 104, 108, 171, 264, 294], "custom": [11, 295], "insid": [1, 11, 27, 89, 97, 106, 173, 178, 265, 267, 268, 270, 271, 274, 275, 286, 289, 293, 294, 296], "packag": [11, 13, 43, 44, 48, 275, 291, 294, 296], "rais": [12, 15, 40, 41, 43, 44, 49, 50, 56, 65, 68, 69, 266, 269, 290, 295], "when": [12, 55, 94, 96, 265, 271, 274, 291, 293, 295], "exhaust": 12, "multi_object": 14, "version": [14, 46, 66, 93, 106, 166, 177, 179, 266, 267, 268, 269, 270, 271, 275, 286, 290, 291, 301, 302], "mean": [14, 70, 138, 168, 279, 286, 294, 298], "simpli": [14, 266, 267, 274, 275, 276, 279, 282, 290, 291, 293], "concaten": [14, 15, 174, 178], "result": [14, 15, 66, 174, 178, 270, 291, 294], "individu": [14, 15, 67, 191, 270, 289, 291, 294], "objective_funct": [15, 302], "list": [15, 17, 20, 25, 26, 28, 40, 41, 42, 43, 44, 59, 60, 66, 67, 68, 69, 70, 72, 73, 119, 124, 128, 134, 148, 155, 178, 189, 191, 194, 265, 268, 270, 271, 274, 277, 278, 289, 291, 293, 296], "multi": [15, 264, 302], "requir": [15, 20, 48, 49, 106, 173, 177, 265, 266, 268, 271, 274, 289, 290, 291, 293, 294, 295], "valueerror": [15, 50, 69], "If": [4, 15, 22, 25, 27, 28, 29, 32, 37, 40, 41, 42, 43, 44, 46, 49, 50, 56, 62, 65, 66, 68, 69, 70, 74, 86, 87, 94, 96, 173, 177, 216, 218, 265, 266, 267, 268, 269, 270, 274, 275, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "max_sequence_length": [17, 265, 289, 291, 296], "align": [17, 265, 291, 296], "alphabet": [16, 17, 20, 100, 104, 119, 124, 128, 178, 218, 265, 266, 276, 277, 278, 281, 289, 290, 291, 293, 296, 302, 303, 304], "log_transform_recommend": [17, 291], "s": [17, 20, 43, 44, 64, 65, 96, 106, 119, 124, 128, 131, 171, 173, 174, 177, 178, 179, 200, 214, 229, 264, 265, 267, 268, 272, 275, 276, 277, 278, 279, 282, 286, 289, 290, 291, 293, 294, 295, 297, 301, 302], "length": [16, 17, 37, 68, 69, 145, 270, 296], "longest": 17, "sequenc": [16, 17, 65, 99, 100, 101, 110, 134, 135, 136, 137, 141, 142, 143, 166, 167, 264, 266, 268, 270, 273, 287, 289, 290, 293, 296], "have": [17, 27, 37, 106, 119, 124, 128, 200, 248, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 290, 293, 295, 296], "been": [17, 200, 269], "charact": 17, "mai": [17, 27, 171, 264], "appear": [17, 265, 267, 270], "A": [4, 17, 20, 24, 25, 26, 28, 37, 40, 41, 42, 43, 44, 60, 64, 66, 68, 69, 70, 72, 73, 90, 96, 99, 100, 101, 106, 110, 116, 118, 119, 123, 124, 126, 127, 128, 168, 174, 178, 180, 181, 182, 186, 196, 197, 199, 218, 220, 222, 224, 264, 267, 268, 270, 271, 272, 273, 277, 278, 291, 296], "recommend": [17, 106, 267, 268, 271, 274, 275, 298], "algorithm": [17, 32, 217, 252, 264, 266, 270, 286, 290, 291, 293, 295, 296, 297, 302], "log": [17, 46, 158, 166, 172, 173, 174, 268, 272, 296], "transform": [17, 39, 187, 192, 193], "target": [17, 100, 104, 294], "foldx": [19, 20, 67, 70, 118, 119, 120, 121, 123, 124, 126, 127, 128, 129, 171, 180, 181, 267, 268, 270, 272, 289, 294, 296], "simul": [19, 20, 65, 66, 118, 119, 123, 124, 127, 128, 181, 194, 200, 265, 267], "differ": [4, 19, 68, 118, 123, 127, 181, 229, 265, 266, 267, 270, 271, 290, 291, 296], "free": [19, 118, 123, 127, 181, 265, 266, 269, 270, 293], "energi": [19, 66, 118, 123, 127, 181, 269, 278], "between": [19, 68, 70, 100, 118, 123, 127, 177, 181, 280], "wildtyp": [19, 20, 69, 70, 118, 119, 123, 124, 127, 128, 171, 181, 268, 271, 272, 277, 278], "mutat": [19, 20, 66, 118, 123, 127, 136, 181, 264, 266, 268, 271, 272, 277, 290, 293, 295, 302], "schymkowitz": [19, 65, 118, 123, 127, 181, 268, 270, 289], "j": [19, 65, 103, 104, 105, 118, 123, 127, 181, 264, 291], "borg": [19, 65, 118, 123, 127, 181, 270, 289], "stricher": [19, 65, 118, 123, 127, 181, 270, 289], "ny": [19, 65, 118, 123, 127, 181], "r": [19, 64, 65, 70, 118, 123, 127, 181, 200, 264, 271, 275, 291], "rousseau": [19, 65, 118, 123, 127, 181, 270, 289], "serrano": [19, 65, 118, 123, 127, 181, 270, 289], "l": [19, 64, 65, 96, 99, 100, 101, 118, 123, 127, 144, 149, 150, 151, 171, 181, 264, 265, 266, 267, 273, 285, 287, 290, 291, 293, 294, 296], "2005": [19, 65, 118, 123, 127, 181, 268], "web": [19, 65, 118, 123, 127, 181], "server": [19, 55, 56, 65, 118, 123, 127, 181, 291], "onlin": [19, 65, 118, 123, 127, 181], "forc": [19, 26, 65, 118, 123, 127, 181, 249], "field": [19, 65, 118, 123, 127, 181], "nucleic": [19, 65, 118, 123, 127, 181], "acid": [19, 20, 64, 65, 118, 119, 123, 124, 127, 128, 134, 135, 137, 142, 143, 181], "research": [19, 65, 118, 123, 127, 181, 264], "33": [19, 65, 118, 123, 127, 156, 181, 270, 289], "suppl_2": [19, 65, 118, 123, 127, 181], "w382": [19, 65, 118, 123, 127, 181], "w388": [19, 65, 118, 123, 127, 181], "wildtype_pdb_path": [20, 119, 124, 128, 271, 289], "union": [20, 26, 59, 60, 66, 69, 119, 124, 128], "path": [20, 26, 28, 49, 52, 59, 60, 66, 69, 72, 73, 74, 106, 119, 124, 128, 147, 198, 265, 270, 271, 276, 277, 278, 279, 282, 289, 291], "experiment_id": [20, 119, 124, 128, 291], "tmp_folder": [20, 119, 124, 128], "eager_repair": [20, 119, 124, 128, 277, 278], "pdb": [20, 66, 69, 70, 71, 72, 73, 74, 119, 123, 124, 128, 171, 267, 271, 275, 277, 278, 289, 294], "file": [20, 27, 65, 66, 67, 69, 70, 71, 72, 73, 74, 95, 99, 106, 119, 123, 124, 128, 171, 173, 177, 217, 223, 264, 265, 267, 269, 271, 274, 276, 279, 289, 291, 296], "amino": [20, 64, 119, 124, 128, 134, 135, 137, 142, 143], "experi": [20, 119, 124, 128, 139, 200, 291], "id": [20, 67, 119, 124, 128, 189, 248, 264, 265, 270, 291, 296], "temporari": [20, 119, 124, 128], "folder": [20, 27, 99, 106, 119, 124, 128, 173, 177, 217, 223, 265, 267, 269, 282, 291, 296], "eagerli": [20, 119, 124, 128], "repair": [20, 65, 66, 119, 124, 128, 289], "wildtype_residu": [20, 70], "residu": [20, 67, 69, 70, 72, 73, 270, 289], "each": [20, 32, 37, 68, 70, 137, 142, 268, 270, 291, 294, 295, 298], "wildtype_amino_acid": 20, "wildtype_residue_str": [20, 70], "string": [20, 39, 40, 41, 42, 43, 44, 55, 60, 68, 69, 70, 72, 89, 90, 91, 104, 108, 135, 136, 145, 173, 174, 177, 178, 184, 190, 191, 266, 268, 271, 273, 277, 278, 280, 281, 287, 290, 295, 296, 303, 304], "create_working_directori": 20, "work": [20, 37, 59, 60, 66, 96, 106, 209, 213, 256, 257, 266, 267, 269, 270, 272, 274, 275, 280, 281, 282, 289, 290, 291, 293, 295, 297], "directori": [20, 59, 60, 66, 269, 270, 271, 275, 276, 277, 278, 282, 291], "util": [1, 21, 115, 124, 152, 187, 291, 294, 297], "regist": [21, 25, 26, 27, 28, 29, 94, 95, 96, 106, 267, 271, 274, 277, 278, 280, 281, 293], "observer_nam": [22, 28, 29, 46, 62, 288], "delet": [22, 23, 291], "run": [22, 26, 27, 28, 29, 45, 55, 57, 58, 59, 60, 66, 94, 96, 106, 124, 173, 177, 229, 265, 266, 267, 268, 269, 270, 289, 290, 291, 293, 295, 296], "script": [22, 26, 28, 29, 55, 57, 58, 59, 60, 61, 65, 88, 99, 106, 123, 173, 177, 200, 217, 223, 265, 271, 275, 291, 295, 296], "take": [22, 23, 26, 27, 28, 29, 55, 191, 194, 264, 265, 266, 273, 286, 287, 289, 290, 293, 296, 297], "pass": [22, 26, 28, 29, 46, 55, 70, 74, 89, 90, 94, 265, 270, 276, 277, 278, 289, 296], "locat": [22, 28, 29, 65, 214, 221, 270, 303, 304], "note": [22, 25, 28, 29, 49, 55, 56, 62, 66, 119, 124, 128], "must": [22, 28, 29, 267, 273, 285, 286, 287], "accept": [22, 28, 29, 55], "port": [22, 28, 29, 55, 56, 62, 91], "password": [22, 28, 29, 55, 56, 62, 91], "argument": [10, 22, 26, 28, 29, 46, 55, 89, 94, 96, 108, 277, 278, 289, 295], "problem_nam": [23, 265, 285, 289], "configur": [23, 26, 29, 95], "dict": [10, 24, 26, 55, 89, 90, 94, 96, 100, 104, 108, 265, 296], "dictionari": [24, 55, 90, 289], "problem_factori": [24, 26, 60, 274, 298, 302, 303, 304], "include_repositori": 289, "includ": [25, 106, 265, 267, 268, 271, 274, 275, 286, 289, 291, 294, 295, 296, 297], "repositori": [25, 27, 47, 48, 49, 50, 92, 103, 131, 200, 206, 229, 264, 266, 267, 268, 271, 274, 276, 279, 289, 293, 294], "problem_list": 25, "otherwis": [25, 42, 69, 270, 277, 278], "onli": [4, 9, 25, 96, 131, 139, 148, 209, 213, 214, 265, 266, 267, 270, 271, 274, 275, 276, 278, 279, 282, 286, 289, 290, 295, 296], "user": [25, 28, 49, 55, 119, 124, 128, 154, 252, 266, 270, 290, 291, 294, 296], "conda_environment_nam": [26, 60, 265, 296], "python_path": [26, 28, 59, 60, 296], "conda": [26, 28, 59, 60, 99, 106, 173, 177, 217, 223, 266, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 294], "environ": [26, 27, 28, 49, 59, 60, 99, 173, 177, 217, 223, 264, 266, 267, 268, 270, 271, 274, 277, 278, 280, 281, 285, 290, 294, 295], "python": [26, 28, 37, 59, 60, 64, 87, 96, 106, 118, 123, 127, 181, 264, 265, 267, 268, 275, 277, 278, 291, 294], "addit": [10, 26, 46, 55, 59, 94, 96, 108, 271], "keyword": [10, 26, 46, 55, 89, 94, 96, 108, 265, 277, 278, 289, 295], "With": [26, 28, 295, 296], "can": [25, 26, 27, 28, 37, 45, 55, 62, 74, 106, 155, 171, 174, 178, 196, 265, 266, 267, 269, 270, 271, 274, 275, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 294, 295, 296, 301], "instanti": [26, 28, 29, 46, 62, 89, 91, 93, 94, 96, 266, 290, 291, 294, 295, 296], "separ": [26, 28], "also": [26, 89, 106, 123, 265, 267, 268, 271, 276, 277, 278, 279, 286, 289, 291, 293, 295, 296, 301], "so": [9, 26, 70, 174, 178, 266, 270, 279, 290, 294, 296], "later": 26, "append": [26, 28, 60, 290, 291], "overwrit": [26, 49, 66, 94, 96, 291, 296], "exist": [26, 49, 50, 265, 270, 289], "correspond": [27, 100, 104, 135, 224, 270], "objective_repositori": [27, 265, 271, 274, 275, 276, 279, 282, 296, 298, 302, 303, 304], "yaml": 27, "said": [27, 265, 266, 290, 296], "enviro": [27, 265, 266, 290, 296], "sinc": [27, 70, 106, 252, 265, 266, 269, 270, 274, 275, 276, 279, 286, 289, 290, 293, 295, 296, 297], "t": [27, 64, 107, 118, 123, 127, 181, 183, 264, 265, 268, 269, 270, 274, 275, 276, 279, 291, 294, 295, 296], "import": [25, 27, 50, 65, 96, 167, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "depend": [27, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293], "instal": [27, 48, 119, 124, 128, 173, 177, 268, 270, 271, 274, 276, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "conda_environment_loc": 28, "extern": [28, 45, 46, 61, 89, 93, 293], "after": [28, 32, 106, 265, 266, 270, 275, 276, 279, 282, 289, 290, 293, 296], "externalobserv": [28, 288], "relev": [28, 270, 271, 274, 275, 277, 278, 280, 281, 282, 286, 296], "script_file_nam": 29, "run_script": [29, 55, 59, 60], "call": [29, 32, 49, 55, 61, 62, 94, 99, 119, 124, 128, 173, 177, 217, 223, 265, 266, 267, 268, 269, 270, 271, 274, 277, 278, 280, 281, 289, 291, 293], "librari": [0, 32, 37, 200, 291, 293, 294], "monitor": 32, "progress": [32, 49, 74, 290], "valu": [32, 64, 86, 87, 94, 96, 139, 140, 146, 216, 270, 279, 286, 289], "decis": 32, "variabl": [32, 49, 174, 178, 270, 286, 291], "iter": [32, 37, 266, 290, 293, 295, 298], "np": [32, 94, 96, 200, 218, 265, 266, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 296, 297, 298, 301, 302, 303, 304], "ndarrai": [32, 94, 144, 188, 189, 190, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 265, 266, 289, 290, 291, 296], "y": [32, 46, 64, 94, 96, 140, 146, 266, 271, 274, 281, 289, 290, 291], "creation": [27, 32, 94, 265, 286, 302], "everi": [32, 291], "time": [32, 56, 265, 270, 271, 289, 291, 302], "initialize_observ": [32, 46, 291], "problem_setup_info": [32, 291], "caller_info": [32, 46, 94, 96, 289, 291, 295, 296], "x0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "y0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "seed": [32, 46, 94, 96, 160, 164, 193, 257, 265, 291, 296], "necessari": [32, 66, 265, 276, 277, 278, 296], "finish": [32, 46, 270, 289, 291], "perform": [32, 86, 87, 100, 119, 128, 174, 178, 266, 268, 289, 290, 295, 297, 298], "ani": [32, 55, 94, 96, 150, 151, 197, 265, 270, 287, 289, 291, 293, 295, 296], "cleanup": 32, "final": [32, 291], "step": [32, 266, 289, 295, 296], "complet": [32, 270, 296], "gener": [36, 37, 55, 59, 60, 84, 85, 86, 87, 94, 96, 224, 270, 289, 297], "chunk_siz": 37, "element": [37, 289], "yield": [37, 103, 104, 105, 264], "tupl": [37, 68, 69, 94, 218, 265, 296], "equal": [37, 68, 295], "exampl": [37, 50, 52, 68, 70, 96, 99, 220, 256, 257, 265, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 293, 294, 295, 302], "3": [37, 134, 135, 265, 267, 268, 270, 273, 285, 287, 289, 291, 293, 296, 297, 298], "4": [37, 145, 156, 264, 269, 270, 275, 289, 293], "5": [37, 66, 99, 100, 101, 177, 179, 212, 267, 268, 272, 273, 289, 291, 293, 295, 296, 302], "6": [37, 264, 270, 289, 293], "7": [37, 66, 270, 277, 278, 289, 293], "8": [37, 103, 104, 105, 264, 270, 289, 293], "9": [37, 264, 265, 267, 268, 270, 274, 289, 291, 293, 294, 296], "print": [20, 37, 49, 66, 72, 73, 74, 96, 119, 124, 128, 265, 266, 267, 270, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 302, 303, 304], "rdkit": [39, 40, 41, 42, 50, 172, 173, 174, 176, 177, 178, 268, 272, 274, 280, 281, 282, 296], "selfies_str": [40, 43], "mol": [40, 41, 42], "convert": [40, 41, 42, 55, 134, 135, 140, 145], "selfi": [40, 42, 43, 44, 104, 173, 174, 177, 178, 268, 274, 279, 280, 281], "strict": [40, 41, 43, 44, 49, 68], "error": [40, 41, 43, 44, 49, 65, 265, 289], "fail": [40, 174, 178, 295], "decod": [40, 150, 154, 155, 194, 197], "chem": [40, 41, 42, 107, 174, 177, 178, 183], "smiles_str": [41, 43, 44], "cannot": [41, 43, 44, 174, 178], "pars": [41, 43, 44, 71, 72, 73, 74, 90, 174, 178, 190], "molecule_str": 42, "from_selfi": [42, 174, 178], "assum": [42, 70, 174, 178, 252, 265, 266, 270, 271, 274, 277, 278, 279, 280, 281, 285, 289, 290, 293], "translat": [43, 44], "els": [43, 44, 265, 296], "those": [43, 44], "kwargs_for_observ": 46, "isol": [45, 46, 88, 89, 93, 94, 96, 173, 249, 265, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 296], "send": [46, 62], "verifi": [46, 51, 291, 294], "wa": [46, 48, 70, 167, 266, 270, 275, 279, 289, 290], "correctli": [46, 269], "setup_info": 46, "start": [46, 55, 61, 62, 91, 171, 270, 271, 289, 291, 293, 294, 295, 296], "close": [46, 96, 280, 281], "__getattr__": 46, "__name": 46, "retriev": [46, 62, 109], "attribut": [46, 62, 150, 151, 197, 270, 289], "underli": 46, "taken": [48, 206, 271, 294], "adapt": [48, 264, 270, 298], "gist": 48, "github": [47, 48, 49, 50, 106, 265, 267, 268, 271, 276, 279, 296], "com": [48, 106, 265, 267, 268, 269, 276, 279, 296], "pdashford": 48, "2e4bcd4fc2343e2fd03efe4da17f577d": 48, "permalink_comment_id": 48, "4274705": 48, "gistcom": 48, "repository_nam": 49, "file_path_in_repositori": 49, "download_path_for_fil": 49, "tag": [49, 50], "master": [49, 267, 296], "commit_sha": [49, 50], "exist_ok": [49, 270, 291], "verbos": [20, 49, 66, 72, 73, 74, 119, 124, 128, 266, 295], "download": [47, 48, 49, 51, 106, 265, 269, 271, 282, 289], "i": [49, 64, 100, 118, 123, 127, 139, 174, 178, 181, 216, 224, 264, 266, 268, 270, 271, 274, 278, 290, 291, 296], "e": [16, 49, 64, 70, 96, 100, 106, 134, 135, 139, 171, 174, 178, 179, 216, 224, 264, 266, 267, 268, 270, 271, 272, 274, 276, 277, 278, 279, 287, 290, 291, 295, 296], "repo": [49, 106, 267, 275, 282], "download_path": 49, "branch": [49, 50, 267], "sha": [49, 50], "commit": [49, 50, 271], "exists_ok": 49, "except": [49, 56, 62, 265], "github_token_for_poli": 49, "doe": [49, 167], "try": [49, 265, 277, 278], "without": [49, 94, 96, 173, 177, 248, 265, 266, 290, 293, 295, 296], "anonym": 49, "request": [49, 91, 270], "rate": 49, "limit": [49, 221, 271], "60": 49, "per": 49, "hour": 49, "pygithub": [48, 50], "get_repo": 50, "release_2023_09": 50, "068441957858f786c227825d90eb2c43f4f2b000": 50, "check": [34, 51, 65, 68, 221, 265, 266, 270, 271, 277, 278, 279, 286, 290, 291, 293, 294, 295, 296], "internet": 51, "reproduc": 51, "purpos": 51, "make": [51, 267, 269, 270, 271, 274, 276, 289, 295, 296, 302], "sure": [51, 267, 269, 270, 271, 274, 276, 291, 295, 296], "malici": 51, "code": [48, 51, 152, 171, 265, 270, 275, 276, 279, 282, 289, 293, 296], "being": [51, 269, 271], "filepath": 52, "read_mod": 52, "rb": 52, "md5": [52, 271], "hex": 52, "digest": 52, "open": [52, 171, 270, 291], "binari": [52, 66, 106, 119, 124, 128, 270, 276, 277, 278], "form": [52, 270], "mode": [52, 67], "read": [52, 66, 147, 270, 289, 291, 295], "txt": [52, 66, 70, 269, 270, 276, 277, 278, 291], "d41d8cd98f00b204e9800998ecf8427": 52, "wrap": [53, 54, 296], "interprocess": [53, 54], "commun": [53, 54, 55, 93], "kwargs_for_factori": [55, 94, 96], "connect": [55, 56, 62, 91, 154], "inter": 55, "These": [55, 268, 270, 271, 272, 286, 289, 291, 293], "inner": 55, "up": [55, 56, 266, 274, 275, 289, 290, 291, 296], "authent": [55, 56], "listen": [55, 91, 294], "random": [55, 84, 85, 86, 87, 94, 96, 266, 268, 290, 293, 295, 297, 298, 301, 302, 304], "subprocess": [55, 270], "expect": [55, 65, 66, 67, 70, 106, 119, 124, 128, 174, 270, 276, 277, 278, 279, 291, 296], "well": [55, 267, 270, 274, 294, 295, 297], "other": [55, 174, 178, 265, 269, 289, 291, 294, 295, 296], "objective_factori": [55, 248, 265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 295, 296, 297, 301], "determin": 55, "client": 56, "get": [56, 61, 74, 265, 266, 270, 271, 272, 290, 291, 293, 295, 296], "eoferror": 56, "host": 56, "readi": [56, 140], "yet": [56, 265, 290], "connectionrefusederror": 56, "refus": 56, "attempt": 56, "establish": [56, 62], "retri": 56, "two": [9, 56, 68, 267, 270, 277, 278, 280, 281, 286, 291, 294, 295, 296, 302], "befor": [56, 59, 289, 295, 296], "conda_environ": 59, "cwd": [59, 60, 270], "activ": [59, 265, 267, 268, 271, 274, 276, 279, 291], "ad": [59, 106, 248, 275, 291, 296], "current": [59, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294], "either": [60, 104, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 301], "mother": [61, 62, 91], "receiv": 62, "wait": [62, 91, 296], "occur": 62, "sent": [62, 194], "back": [62, 187], "quit": [62, 265, 271, 293], "messag": [62, 94, 289], "encod": [64, 143, 144, 154, 155, 178, 276, 277, 278], "queri": [65, 265, 266, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 290, 296], "automat": [65, 96, 264, 265, 269, 276, 279], "thei": [65, 167, 168, 270, 279, 289, 291], "working_dir": [66, 270], "interact": [66, 270, 289], "engin": [66, 200, 297], "softwar": [66, 268, 269], "where": [66, 99, 100, 101, 155, 265, 266, 268, 270, 275, 282, 290, 294], "output": [20, 66, 72, 73, 74, 119, 124, 128, 194, 268, 270, 279, 289, 291, 293, 294], "store": [66, 271, 289], "pdb_file": 66, "remove_and_renam": 66, "ph": [66, 270, 277, 278], "0": [3, 66, 68, 119, 124, 128, 156, 177, 193, 212, 266, 267, 268, 270, 271, 277, 278, 280, 281, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301], "remove_heteroatom": 66, "_repair_if_necessary_and_provide_path": 66, "_simulate_mut": 66, "_read_energi": 66, "_compute_sasa": 66, "sasa": [65, 66, 116, 118, 119, 120, 126, 127, 128, 129, 180, 181, 268, 272, 277, 278], "solvent": [66, 116, 119, 120, 126, 128, 129, 180, 264, 268, 270, 272], "surfac": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "area": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "compute_st": 66, "stabil": [65, 66, 121, 123, 124, 126, 127, 171, 180, 181, 264, 267, 268, 270, 272, 277, 294], "structur": [66, 72, 73, 74, 106, 124, 270, 275, 291], "compute_sasa": 66, "compute_stability_and_sasa": 66, "singl": [66, 70, 171, 200, 264, 268, 271, 272, 280, 281, 289, 291, 297, 301], "copy_foldx_fil": 66, "copi": [66, 266, 270, 290, 302], "write_mutations_to_fil": 66, "wildtype_resiud": 66, "output_dir": 66, "write": [66, 106, 265, 267, 270, 275, 283, 284, 288, 291, 292, 296, 299, 300], "accord": [67, 138, 270, 293, 296], "certain": [67, 265, 268, 270, 274, 295], "first": [67, 68, 70, 265, 270, 271, 273, 289, 290, 295, 296], "letter": [67, 70, 99, 100, 101, 268, 270, 272, 273, 296], "second": [67, 68, 70, 148, 270, 289, 295, 296], "posit": [67, 68, 70, 137, 142, 266, 270, 271, 289, 290, 293], "third": [67, 70], "chain": [67, 70, 270], "fourth": [67, 70], "mutant": [67, 69, 70, 171, 266, 270, 290], "string_1": 68, "string_2": 68, "edit": [68, 171, 271], "oper": [68, 269, 295], "replac": [37, 68, 70, 171, 189, 271, 289, 303, 304], "assertionerror": [68, 295], "abc": 68, "abd": 68, "def": [68, 265, 266, 290, 291, 296], "wildtype_pdb_fil": [69, 277, 278], "mutated_residue_str": [69, 70], "return_hamming_dist": 69, "find": [69, 99, 100, 101, 106, 265, 271, 274, 275, 291, 293, 295], "closest": 69, "ham": 69, "distanc": [69, 70, 100, 271, 273], "along": 69, "best": [69, 266, 289, 290, 298, 302], "candid": [69, 266], "same": [4, 69, 70, 166, 167, 168, 265, 267, 271, 293], "found": [69, 267, 270, 291, 296], "individual_list": [70, 270], "levenshtein": [70, 277, 278], "keep": [70, 265, 277, 278], "track": [70, 264, 265], "written": 70, "line": [70, 268, 270], "g": [16, 64, 70, 134, 135, 179, 266, 267, 268, 270, 272, 277, 278, 287, 290, 291, 295, 296], "ea1r": 70, "still": [70, 294], "need": [70, 106, 265, 269, 270, 275, 276, 277, 278, 279, 289, 291, 295], "dummi": 70, "itself": [70, 265, 267], "For": [64, 70, 106, 139, 166, 171, 221, 252, 265, 268, 270, 275, 276, 279, 286, 289, 291, 293, 294, 296, 298], "ecd": 70, "acd": 70, "would": [70, 271, 274, 291, 296], "ea1a": 70, "load": [71, 95, 131, 139, 148, 198, 270, 289, 291], "them": [71, 106, 252, 265, 266, 267, 270, 271, 272, 275, 290, 293], "path_to_pdb": [72, 73, 74], "structure_nam": [72, 73, 74], "done": [74, 106, 270, 275, 276, 279, 282, 289, 293], "quietli": 74, "you": [4, 66, 74, 106, 173, 174, 177, 178, 200, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 295, 296], "some": [74, 152, 168, 252, 267, 268, 270, 276, 279, 286, 291, 293, 296], "get_structur": [74, 270], "pdbparser": [74, 270], "numpi": [86, 190, 265, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 291, 296, 297, 301, 302, 303, 304], "123": [], "obj": 89, "factory_kwarg": [90, 91], "objective_nam": 91, "loop": [91, 248, 264, 297], "param": [], "subpackag": [], "myfactorynam": [], "main": [100, 174, 178, 266, 267, 268, 269, 270, 290, 291, 296], "who": [], "want": [173, 177, 265, 266, 270, 271, 274, 277, 278, 280, 281, 293, 295, 296], "process_wrapp": 93, "force_regist": [94, 96, 275, 277, 278, 280, 281, 282], "force_isol": [94, 96], "instantiant": 94, "shell": [267, 296], "case": [266, 267, 270, 273, 285, 286, 287, 290, 291, 293, 296], "involv": [], "caller": [94, 96, 291], "forward": [94, 96, 291], "logger": [94, 96], "ask": [94, 96, 276, 279], "confirm": [94, 96], "previou": [66, 94, 96, 270, 291, 295], "registr": [27, 94, 96, 99, 173, 177, 217, 223, 265, 295, 296], "onc": [94, 265, 274, 293, 295, 296], "problem_inform": 94, "hold": [], "basic": [155, 248, 293, 296], "properti": [], "arrai": [96, 134, 135, 144, 145, 187, 190, 192, 265, 267, 268, 271, 273, 274, 277, 278, 280, 281, 285, 286, 287, 289, 291, 293, 294, 296], "observer_info": 94, "just": [96, 276, 277, 278, 279, 289, 291, 295, 296], "like": [96, 106, 209, 265, 266, 269, 275, 286, 289, 290, 291, 293, 294, 295, 296, 297], "anyth": 293, "One": [96, 269], "aloha": [96, 267, 268, 272, 289, 290, 293, 296, 302], "reshap": [96, 266, 280, 281, 296, 297, 301], "simpl": [99, 100, 101, 103, 104, 105, 138, 173, 174, 177, 178, 265, 266, 289, 290, 293, 295, 296], "discret": [0, 99, 100, 101, 131, 266, 289, 290, 293, 295, 297], "goal": [99, 100, 101], "o": [99, 100, 101, 273, 274, 291, 296], "h": [64, 99, 100, 101, 192, 197, 264, 291, 296], "among": [99, 100, 101, 269, 270, 295], "poli__bas": [99, 217, 223], "see": [9, 43, 44, 67, 90, 91, 99, 106, 173, 177, 200, 217, 220, 223, 265, 267, 270, 271, 274, 276, 289, 291, 294, 296], "yml": [99, 106, 173, 177, 217, 223, 271, 274, 276, 279, 296], "simultan": [100, 104, 108, 174, 178, 184, 271], "map": [100, 104], "symbol": [100, 104], "garc\u00eda": [103, 104, 105, 264, 268, 274], "orteg\u00f3n": [103, 104, 105, 264, 268, 274], "miguel": [103, 104, 105, 264, 268], "gregor": [103, 104, 105, 264], "n": [64, 103, 104, 105, 221, 264, 267, 268, 270, 271, 282, 286, 287, 291], "c": [64, 103, 104, 105, 264, 265, 267, 270, 274, 275, 280, 281, 282, 289, 291, 296], "simm": [103, 104, 105, 264], "austin": [103, 104, 105, 264], "tripp": [103, 104, 105, 264], "jos\u00e9": [103, 104, 105, 171, 264], "hern\u00e1ndez": [103, 104, 105, 264], "lobato": [103, 104, 105, 264], "andrea": [103, 104, 105, 264], "bender": [103, 104, 105, 264], "sergio": [103, 104, 105, 264], "bacallado": [103, 104, 105, 264], "easi": [103, 104, 105, 264, 265, 270, 293, 295], "molecular": [103, 104, 105, 118, 123, 127, 181, 264], "better": [103, 104, 105, 264, 265], "benchmark": [103, 104, 105, 200, 217, 221, 264, 268, 272], "ligand": [103, 104, 105, 264, 268, 272, 274], "design": [65, 103, 104, 105, 110, 154, 166, 167, 264, 266, 269, 272, 274, 289, 290, 293, 296], "journal": [103, 104, 105, 264], "model": [34, 65, 103, 104, 105, 139, 140, 152, 154, 156, 264, 265, 270, 271, 289, 297], "62": [103, 104, 105, 264], "15": [103, 104, 105, 264, 302], "august": [103, 104, 105, 264], "3486": [103, 104, 105, 264], "3502": [103, 104, 105, 264], "1021": [103, 104, 105, 264], "ac": [103, 104, 105, 264], "jcim": [103, 104, 105, 264], "1c01334": [103, 104, 105, 264], "target_nam": [104, 274, 294], "string_represent": [104, 274, 279, 280, 281], "api": [103, 104, 105, 267], "assess": [103, 104, 105, 171, 272], "small": [103, 104, 105, 174, 265, 267, 274, 275, 282, 291, 293, 295], "protein": [103, 104, 105, 118, 123, 124, 127, 171, 181, 264, 267, 269, 271, 274, 275, 293, 294], "refer": [9, 19, 65, 103, 104, 105, 106, 107, 110, 166, 167, 183, 268, 276, 279], "ddr3": 107, "task": [106, 107, 110, 113, 115, 148, 264, 270, 276, 279, 297], "k": [64, 107, 173, 183, 212, 264, 291], "et": [107, 183, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 289, 297, 301, 302], "al": [107, 183, 200, 221, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 286, 289, 297, 301, 302], "nat": [107, 183], "biol": [107, 183], "1036": [107, 183], "drd3": [9, 106, 108, 109, 268, 272, 274], "self": [108, 265, 266, 271, 290, 291, 296], "tdcblackbox": 108, "alia": 112, "proxyrfptask": [106, 113, 276], "base_candid": 113, "config": [95, 115, 289], "lambo": [65, 106, 110, 113, 115, 166, 167, 168, 268, 270, 272, 275, 289], "specifc": 115, "rfp": [106, 110, 111, 115, 180, 268, 272], "pair": [118, 127, 181], "biopython": [118, 123, 127, 181, 270, 277, 278, 294], "cock": [118, 123, 127, 181], "pa": [118, 123, 127, 181], "antao": [118, 123, 127, 181], "chang": [106, 118, 123, 127, 131, 148, 181, 267, 269, 270, 275, 277, 278, 286], "jt": [118, 123, 127, 181], "chapman": [118, 123, 127, 181], "ba": [118, 123, 127, 181], "cox": [118, 123, 127, 181], "cj": [118, 123, 127, 181], "dalk": [118, 123, 127, 181], "friedberg": [118, 123, 127, 181], "hamelryck": [118, 123, 127, 181], "kauff": [118, 123, 127, 181], "wilczynski": [118, 123, 127, 181], "b": [118, 123, 127, 181, 192, 265, 267, 273, 285, 286, 287, 291, 293, 296], "de": [118, 123, 127, 181, 264], "hoon": [118, 123, 127, 181], "mjl": [118, 123, 127, 181], "2009": [118, 123, 127, 181, 268], "freeli": [118, 123, 127, 181], "tool": [118, 123, 127, 181, 265, 277, 278, 294, 296], "bioinformat": [118, 123, 127, 181], "25": [118, 123, 127, 181, 289], "1422": [118, 123, 127, 181], "1423": [118, 123, 127, 181], "eager": [119, 128], "foldxblackbox": [119, 124, 128], "pre": [123, 266, 267, 271, 274, 277, 278], "through": [124, 266, 267, 290, 293], "total": [124, 138, 270, 289], "wrapper": [4, 9, 93, 106, 110, 131, 148, 173, 177, 182, 268, 272, 302], "cba": [131, 148, 150], "vae": [131, 148, 150, 151, 155, 156, 194, 196, 197, 297], "sb": [131, 148], "bo": 131, "minor": [131, 148], "modif": [131, 148], "conduct": [131, 148], "rm": [131, 148], "creator": [131, 148], "last": [131, 148, 270], "x_aa": [134, 135, 144], "aa_idx": 134, "arn": [134, 135], "becom": [134, 135], "row": [134, 135, 270], "base_seq": 136, "wild": [136, 141, 270], "mtuation": 136, "xt_p": [137, 142], "categor": [137, 142, 158, 196, 197], "probabl": [137, 142], "distribut": [137, 142, 158, 197, 264, 298], "most": [48, 137, 272], "pred": 138, "xt": 138, "predictor": 138, "built": [37, 90, 91, 138, 267], "balaji": 138, "lakshminarayanan": 138, "paper": [138, 150, 264, 294], "scalabl": 138, "predict": [116, 138, 139, 157, 171, 264, 268, 270, 272, 297], "uncertainti": [138, 297], "estim": [138, 166, 176, 177, 178, 179, 267, 268, 272], "deep": [138, 171, 264, 297], "ensembl": 138, "2017": [138, 264, 271], "varianc": 138, "random_st": [139, 146], "train_siz": [139, 146], "5000": 139, "return_test": [139, 146], "return_al": 139, "gfp": [139, 140, 141, 147], "test": [139, 200, 266, 286, 290], "ground": 139, "truth": 139, "gp": [139, 161], "partit": [139, 146, 280], "below": [139, 271, 274, 277, 278], "20th": 139, "percentil": [139, 146], "add": [106, 139, 188, 265, 277, 278, 279, 290], "measur": [65, 139, 270, 280, 281], "nois": [139, 222, 223, 224, 257, 268, 272], "data_df": 140, "datafram": [140, 147, 270], "functional_onli": [140, 160], "ignore_stop": [140, 160], "return_str": 140, "raw": 140, "sampl": [142, 193, 264, 287, 291, 297, 303, 304], "aa_str": 143, "pad": [143, 145, 188], "hot": [143, 192], "onehot": 144, "alphabet_s": [144, 266, 290], "dna_str": 145, "base_ord": 145, "atcg": 145, "m": [64, 145, 171, 264, 270, 291], "token": [145, 174, 178, 189, 191, 293, 296, 303, 304], "40": 146, "1000": [146, 295], "df_save_fil": 147, "bright": 147, "panda": [140, 147, 270], "author": [148, 166, 268], "credit": 148, "herculean": 148, "go": [148, 268, 269, 296], "aa": [149, 150, 151], "latent_dimension": [150, 151], "enc1_unit": [150, 151, 156], "mimic": 150, "kera": [150, 154], "intern": [89, 264, 265, 282, 285, 293], "state": [], "share": [265, 266, 267], "both": [173, 177, 270, 277, 278, 295, 296], "nn": [], "scriptmodul": [], "input_shap": [154, 155], "latent_dim": [154, 155, 156], "variat": [154, 297], "autoencod": [65, 110, 154, 166, 167, 264, 297], "via": [154, 264, 291], "latent": [154, 266, 290, 297], "space": [154, 189, 252, 266, 290, 297, 301], "flatten": [155, 266, 289, 290], "construct": [4, 155], "layer": 155, "n_token": 156, "seq_length": 156, "50": [156, 298], "eps_std": 156, "compil": [119, 124, 128, 156, 271, 289], "y_true": [157, 158], "y_pred": [157, 158], "likelihood": 158, "logp": [166, 167, 168, 172, 173, 174, 268, 272], "_exactly_": 167, "do": [106, 167, 266, 270, 279, 290, 294, 296], "todo": [168, 270, 283, 284, 288, 292, 299, 300], "penal": [166, 168, 268, 272], "particular": [106, 168, 180, 275, 276, 286, 291, 294, 295, 296], "adjust": 168, "magic": 168, "empir": [168, 279], "standard": [168, 223, 224, 279, 287], "deviat": [168, 279], "dataset": [168, 200, 264, 279], "document": [9, 168, 267, 268, 270, 289, 294], "whose": [173, 177, 223, 297], "quotient": [173, 268, 272], "solubl": [166, 172, 173, 174, 268, 272], "around": [9, 106, 110, 173, 177, 182, 268, 272, 302], "descriptor": [173, 296], "poli__chem": [173, 177, 280, 281], "local": [173, 177, 209, 266, 267, 285, 291], "environemnt": [173, 177], "extra": [173, 177, 265, 289, 294], "interest": [173, 267, 270, 271, 274, 277, 278, 285, 286, 291, 293], "directli": [25, 173, 206, 270, 271, 274, 294], "instead": [4, 173, 200, 266, 277, 278, 290, 294], "pip": [48, 106, 173, 177, 265, 267, 268, 270, 276, 277, 278, 279, 280, 281, 291, 294, 296], "qed": [166, 174, 176, 177, 178, 179, 268, 272], "By": [94, 124, 174, 178, 218, 266, 277, 278, 295, 297, 301], "molfromsmil": [174, 178], "known": [174, 178, 280, 289], "silent": [174, 178], "nan": [174, 178], "someth": [174, 178], "than": [174, 178, 252, 295, 296], "quantit": [166, 176, 177, 178, 179, 267, 268, 272], "druglik": [166, 176, 177, 178, 179, 267, 268, 272], "continu": [177, 179, 199, 200, 217, 218, 252, 264, 268, 272, 293], "lipinski": [177, 179], "rule": [177, 179, 265], "level": [186, 187, 188, 189, 190, 191, 192, 193, 270, 272], "n_pad": 188, "left": 188, "give": [94, 188, 252, 274, 296], "room": 188, "agent": 188, "land": 188, "level_txt": [190, 191], "n_sprite": [192, 197], "11": [189, 192, 197, 267, 274, 294], "levels_onehot": 193, "tensor_level": 194, "tensor": 194, "level_s": 194, "14": [194, 197, 270], "could": [194, 265, 266, 270, 271, 276, 277, 278, 289, 290, 293, 296, 301], "mariogan": 194, "jar": [194, 265], "prob_matrix": 195, "item": [195, 262], "train": [152, 196], "mario": [186, 189, 196, 272, 296], "notat": 270, "veri": 213, "much": [], "follow": [64, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 290, 293, 295, 296, 301], "z_dim": 197, "devic": 197, "sentenc": 197, "shape": [197, 265, 266, 267, 273, 285, 286, 287, 290, 293], "path_to_state_dict": 198, "vaemario": 198, "pretrain": 198, "landscap": 200, "signatur": 200, "might": [106, 200, 265, 267, 270, 275, 276, 277, 278, 279, 286, 289, 291, 296], "sign": [200, 286], "flip": [200, 286], "becaus": [200, 296], "re": [200, 265, 267, 270, 271, 290, 291, 293, 296], "deal": 200, "maxim": [4, 200, 215, 216, 266, 286], "minim": [4, 200, 256, 266, 272, 274, 290, 302], "what": [265, 274, 289, 295], "arbitrari": [264, 286], "dimens": [217, 218, 221, 252, 264, 286, 297], "d": [64, 171, 200, 216, 264, 269, 286, 291], "ali": [200, 264], "roomi": [200, 221, 264, 268, 286], "2015": [200, 264, 268, 286], "unconstrain": [200, 221, 264], "www": [200, 264], "halifax": 200, "nova": 200, "scotia": 200, "canada": 200, "dalhousi": 200, "univers": 200, "electr": 200, "surjanov": [200, 268], "bingham": [200, 268], "virtual": 200, "sfu": 200, "ca": 200, "ssurjano": 200, "html": [37, 200, 264, 291], "linebo": [206, 286, 301], "kirschnj": 206, "xy": [209, 213, 214], "cross": 209, "trai": 209, "ha": [106, 209, 265, 266, 270, 275, 289, 290, 294, 296, 298], "sever": [106, 200, 209, 217, 270, 271, 295, 296], "maxima": [209, 213], "quilt": 209, "pattern": 209, "2d": [209, 213, 214, 252], "alpha": [212, 267, 297], "flat": 213, "pi": 213, "egg": 214, "holder": 214, "especi": [214, 265, 268], "difficult": 214, "know": [214, 270], "optima": [214, 221], "usual": [119, 124, 215, 217, 265, 266, 268, 272, 286, 291, 295, 296, 297], "squar": 215, "norm": 215, "shift": 215, "awai": [215, 271], "bit": [215, 270], "normal": [216, 264, 294, 298], "903534": 216, "39": [216, 276], "16599": 216, "divid": 216, "toi": [186, 199, 200, 217, 218, 221, 222, 224, 252, 273, 291, 295, 302], "focu": [217, 270, 289, 293], "ones": [217, 265], "dimension": [217, 252, 264], "function_nam": [218, 286, 297, 298, 301], "n_dimens": [218, 286, 297, 298, 301], "embed_in": [218, 221, 286], "seri": 220, "testb": 220, "fyi": [], "plot": [], "three": [271, 291, 293], "more": [9, 67, 119, 124, 128, 220, 221, 265, 267, 270, 271, 289, 293], "en": [220, 291], "wikipedia": 220, "wiki": 220, "test_functions_for_optim": 220, "liter": [104, 221, 265], "ackley_function_01": [221, 268, 272, 286, 297, 298, 301], "alpine_01": [221, 286], "alpine_02": [221, 286], "bent_cigar": [221, 286], "brown": [221, 286], "chung_reynold": [221, 286], "cosine_mixtur": [221, 286], "deb_01": [221, 286], "deb_02": [221, 286], "deflected_corrugated_spr": [221, 286], "styblinski_tang": 221, "shifted_spher": [221, 286], "easom": [221, 268, 272, 286], "cross_in_trai": [221, 286], "egg_hold": [221, 286], "camelback_2d": [221, 286], "n_dim": 221, "definit": [221, 265, 286], "py": [106, 221, 266, 267, 290, 291, 294, 295, 296], "gaussian": [152, 223, 224, 264, 268, 272, 287, 297], "instruct": [229, 265, 266, 291, 293], "how": [90, 91, 106, 229, 265, 266, 267, 268, 270, 272, 289, 290, 291, 293, 295, 296], "embed": [218, 252, 286], "higher": [252, 270], "afford": 252, "emb": [218, 252, 286], "bayesian": [65, 110, 166, 167, 252, 264, 266, 268, 290], "intrins": 252, "lower": [218, 252], "actual": [252, 265, 286, 294], "readm": [256, 265], "verbatum": 256, "white": [222, 223, 257, 268, 272], "fullnam": 262, "escap": 262, "underlin": 262, "block": [262, 265], "rubric": 262, "endfor": 262, "endif": 262, "endblock": 262, "ar15": 264, "url": [264, 268], "bkg": 264, "23": [264, 267], "lass": [171, 264], "blaabjerg": [171, 264, 268, 271], "maher": [171, 264], "kassem": [171, 264], "lydia": [171, 264], "good": [171, 264, 265, 267, 268, 289, 296], "nicola": [171, 264], "jonsson": [171, 264], "matteo": [171, 264], "cagiada": [171, 264], "kristoff": [171, 264], "johansson": [171, 264], "wouter": [171, 264], "boomsma": [171, 264, 271], "ameli": [171, 264], "stein": [171, 264], "kresten": [171, 264], "lindorff": [171, 264], "larsen": [171, 264], "rapid": [171, 264, 268, 272], "learn": [171, 264, 271], "elif": [171, 264], "12": [37, 65, 110, 166, 167, 171, 264, 270, 291], "e82593": [171, 264], "2023": [171, 264, 268, 269, 270, 271, 291], "7554": [171, 264], "82593": [171, 264], "bf17": 264, "je": 264, "frellsen": [264, 271], "spheric": 264, "convolut": 264, "applic": 264, "guyon": 264, "u": [264, 291], "von": 264, "luxburg": 264, "bengio": 264, "wallach": 264, "fergu": 264, "vishwanathan": 264, "garnett": 264, "editor": 264, "advanc": 264, "neural": [264, 271], "system": [264, 269], "volum": 264, "30": [264, 286], "curran": 264, "associ": [94, 264, 289, 294], "inc": 264, "proceed": 264, "neurip": 264, "cc": [264, 274], "paper_fil": 264, "1113d7a76ffceca1bb350bfe145467c6": 264, "pdf": 264, "gost": 264, "22": [264, 270, 289, 291], "dockstr": [264, 267, 268, 272, 289, 293, 294], "hfg": 264, "21": [264, 289, 291], "machin": 264, "drug": [264, 293], "discoveri": 264, "develop": [264, 265, 266, 290], "thirti": 264, "fifth": 264, "confer": 264, "round": [94, 224, 264], "2021": [264, 275, 282], "openreview": 264, "net": 264, "forum": 264, "8nvgnornowr": 264, "sr73": 264, "shrake": [264, 270], "ruplei": [264, 270], "exposur": 264, "atom": 264, "lysozym": 264, "insulin": 264, "79": 264, "351": [264, 289], "371": 264, "sep": 264, "1973": [264, 270], "1016": 264, "0022": 264, "2836": 264, "73": 264, "90011": 264, "smg": 264, "samuel": [65, 110, 166, 167, 264], "stanton": [65, 110, 166, 167, 264, 268, 269, 270, 279, 289], "weslei": [65, 110, 166, 167, 264], "maddox": [65, 110, 166, 167, 264], "nate": [65, 110, 166, 167, 264], "gruver": [65, 110, 166, 167, 264], "phillip": [65, 110, 166, 167, 264], "maffetton": [65, 110, 166, 167, 264], "emili": [65, 110, 166, 167, 264], "delanei": [65, 110, 166, 167, 264], "peyton": [65, 110, 166, 167, 264], "greensid": [65, 110, 166, 167, 264], "andrew": [65, 110, 166, 167, 264], "gordon": [65, 110, 166, 167, 264], "wilson": [65, 110, 166, 167, 264], "acceler": [65, 110, 166, 167, 264], "biolog": [65, 110, 166, 167, 264], "denois": [110, 166, 167, 264], "arxiv": [65, 110, 166, 167, 264], "preprint": 264, "2203": [65, 110, 166, 167, 264], "12742": [65, 110, 166, 167, 264], "tutori": [265, 270, 289, 291, 295, 296, 297], "cover": 265, "look": [265, 266, 290, 296], "sourc": [171, 265], "poli": [265, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 294, 295, 297, 298, 301, 302, 303, 304], "live": [265, 294], "goe": [265, 270, 296], "exactli": [265, 266, 276, 279, 290], "doesn": [265, 275, 291, 294], "env": [106, 265, 267, 271, 274, 275, 276, 279, 282, 291, 294, 296], "mani": [265, 302], "think": 265, "project": [265, 270], "here": [265, 268, 270, 289, 296, 302], "ll": [265, 269, 270, 293, 295], "carri": 265, "let": [265, 267, 270, 289, 291, 293, 294, 296], "super_mario_bro": [265, 268, 289, 293], "pt": [265, 271], "level_util": 265, "md": [265, 266], "As": [265, 270, 289, 294, 296], "don": [265, 268, 274, 294], "git": [106, 265, 267, 268, 276, 279, 296], "end": [265, 270, 289, 291, 295], "ignor": 265, "altern": 265, "averag": 265, "core": [124, 265, 266, 288, 289, 290, 295, 296, 302], "abstract_black_box": [265, 296], "abstract_problem_factori": [265, 296], "problem_setup_inform": [265, 291, 296], "pythonpath": 265, "runtim": [265, 296], "imagin": 265, "your_local_depend": 265, "yourblackbox": 265, "super": [186, 265, 266, 272, 290, 296], "yourproblemfactori": 265, "descript": [106, 265, 271, 274, 289, 291, 296], "chapter": [265, 266, 267, 268, 270, 289, 290, 291, 293, 295, 296], "your_problem": 265, "parent": [265, 270, 271, 291, 302], "your_keyword_1": [], "your_keyword_2": [], "your_keyword_3": [], "manipul": [67, 265, 267, 268], "problem_info": [265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "__name__": [265, 271, 274, 295, 296], "__main__": [265, 271, 274, 295, 296], "registri": [265, 289, 295], "register_problem": [265, 296], "our": [9, 265, 266, 270, 272, 274, 277, 278, 289, 290, 291, 295, 296, 297, 298, 302], "your_problem_factori": 265, "your_env": 265, "That": 265, "advic": [178, 265], "camel_cas": 265, "experiment": [], "under": [265, 267, 269, 274, 275, 286, 296], "tell": 265, "though": 265, "sai": [265, 270, 286, 289, 294, 296], "channel": [265, 296], "machinelearninglifesci": [265, 266, 267, 268, 296], "java": [265, 296], "poli__mario": 265, "forg": 265, "pytorch": 265, "openjdk": 265, "cpuonli": 265, "click": [265, 268, 272, 293], "moreov": [265, 266, 290], "hack": [], "wai": [65, 266, 267, 270, 271, 274, 277, 278, 280, 281, 290, 291, 294], "colab": [265, 268], "put": [265, 270, 302], "describ": [265, 270, 275, 276, 279, 282, 293, 295], "register": 265, "fresh": 268, "get_problem": [265, 267, 289, 293, 295, 296], "fret": [], "abl": [106, 265, 267, 269, 270, 275, 291, 294, 296], "_": [265, 266, 267, 271, 274, 279, 291, 293, 294, 297, 298, 301, 302], "mayb": 265, "your_factori": 265, "now": [106, 265, 267, 270, 293, 294, 296], "support": [9, 248, 265, 267, 268, 290, 291, 294], "At": [265, 270, 291, 293, 296], "point": [265, 270, 291, 293, 296, 297], "wrote": 265, "direct": [265, 301], "life": [265, 271], "come": [248, 265, 274, 293, 295], "debug": [265, 267, 271, 274, 285], "vscode": 265, "src": [106, 265, 271, 274, 275, 276, 279, 282, 289], "rest": [106, 265, 291, 293], "available_problem_factori": 265, "importerror": 265, "feel": [265, 266, 270, 293], "solver": [296, 297, 298, 301, 302, 303, 304], "unfortun": [267, 274], "linux": [267, 274, 294], "maco": [267, 274], "top": [267, 268, 293], "therefor": [267, 294], "anaconda": 267, "went": 267, "okai": [267, 271], "anoth": [267, 270, 289, 293], "right": [267, 291], "clone": [106, 267, 271, 276, 279, 285], "cd": [106, 267, 276, 279], "stabl": [267, 291], "bleed": 267, "edg": 267, "dev": [265, 267, 268], "home": [267, 269, 270, 276, 277, 278], "poli_object": [267, 271, 296], "To": [267, 268, 269, 270, 271, 274, 279, 296], "everyth": [267, 269, 291], "white_nois": [267, 287, 289, 293], "isn": [], "littl": 270, "effort": [], "notic": [266, 274, 279, 290, 291], "minimal_working_exampl": 267, "run_info": [267, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 289, 295, 296], "rang": [266, 267, 290], "trivial": [266, 267, 290, 293, 296], "plenti": 267, "complex": [267, 270, 289], "show": [106, 267, 270, 289, 296], "next": [266, 268, 270, 289, 290, 291, 293, 295, 296], "explain": [266, 290, 291], "own": 269, "baselin": [268, 289, 291, 293, 294, 295, 297, 302], "book": [], "its": [106, 266, 270, 271, 274, 275, 277, 289, 290, 294, 295, 296], "complic": [266, 290], "weird": [], "promis": [], "your": [106, 266, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 294], "reliabl": [], "worri": [266, 268, 290, 296], "batteri": 274, "alreadi": [270, 289, 293], "collect": [171, 199, 268, 271], "out": [264, 273, 280, 281, 286, 287, 293, 297], "full": [268, 270], "drawn": [268, 272], "unit": [268, 272], "word": [268, 272, 296], "spell": [268, 272], "3pbl": [268, 272, 275], "implmenet": [268, 272], "sa": [182, 268, 272], "rasp": [268, 271, 272, 289, 293], "fluoresc": [268, 270, 272, 289], "On": 268, "focus": 268, "nsga": 264, "genet": [264, 302], "metric": 269, "wip": [], "cma": 268, "es": 268, "evolutionari": [264, 266, 268, 290, 298], "strategi": [264, 268, 298], "graph": [], "ga": [], "place": [268, 269, 270], "coupl": [268, 296], "guid": 268, "familiar": 270, "ourselv": 270, "refresh": 270, "heavili": [65, 270], "inspir": [65, 270], "essenti": [270, 291], "rotabas": [66, 269, 270, 276, 277, 278], "notebook": [270, 291], "renam": [269, 270, 276, 277, 278], "pathlib": [270, 271, 276, 277, 278, 282, 289, 291], "shutil": 270, "path_to_foldx_fil": 270, "this_dir": [270, 271, 291], "resolv": [270, 271, 289, 291], "tmp": 270, "mkdir": [270, 291], "copyfil": 270, "respons": 270, "transport": 270, "oxigen": 270, "sperm": 270, "whale": 270, "101m": 270, "hand": 270, "urllib": 270, "web_address": 270, "rcsb": 270, "view": [171, 270], "urlretriev": 270, "Of": [270, 293], "cours": [270, 293], "long": [270, 289, 291, 296], "aid": 270, "pdb_name": 270, "choos": [270, 286], "repairpdb": [270, 277, 278], "command": [269, 270, 277, 278], "futur": [267, 270, 291], "consumig": 270, "400sec": 270, "build": [270, 293, 296, 297], "101m_repair": 270, "repair_cmd": 270, "water": [270, 277, 278, 280, 289], "crystal": [270, 277, 278], "tree": 270, "fxout": 270, "unrecognized_molecul": 270, "onward": [270, 297], "inspect": [270, 271, 274], "easili": [106, 270, 275, 282, 289, 295], "bio": [70, 73, 74, 270], "parser": 270, "get_residu": 270, "dive": [270, 293, 295], "first_residu": 270, "resnam": 270, "index": [270, 289], "get_par": 270, "met": [270, 294], "extract": 270, "sequtil": 270, "seq1": 270, "ingredi": [266, 270, 289, 290], "latter": [4, 270], "original_residu": 270, "chain_id": 270, "position_in_sequ": 270, "mutant_residu": 270, "glycin": 270, "Be": [270, 271], "care": [270, 289, 294], "fire": 270, "did": 270, "modifi": 270, "mutation_list": 270, "residue_idx": 270, "li": [270, 289], "tranform": 270, "position_in_chain": 270, "content": 270, "indiviual_list": 270, "ma0g": 270, "won": 270, "buildmodel": [270, 289], "thing": [269, 270, 289, 296], "gibb": 270, "foldx_cmd": 270, "consortium": [270, 289], "jesper": [270, 289], "freder": [270, 289], "joost": [270, 289], "lui": [270, 289], "peter": [270, 289], "vanhe": [270, 289], "erik": [270, 289], "verschueren": [270, 289], "baeten": [270, 289], "javier": [270, 289], "delgado": [270, 289], "francoi": [270, 289], "permut": [270, 289], "concept": [270, 289], "raphael": [270, 289], "gueroi": [270, 289], "backhbond": [270, 289], "142": 270, "58": 270, "sidehbond": [270, 289], "48": 270, "61": [270, 289], "energy_vdw": [270, 289], "179": 270, "63": 270, "electro": [270, 289], "energy_solvp": [270, 289], "245": 270, "28": [270, 271, 289], "energy_solvh": [270, 289], "238": 270, "89": 270, "energy_vdwclash": [270, 289], "42": [270, 289], "energy_tors": [270, 289], "70": [270, 289], "backbone_vdwclash": [270, 289], "158": 270, "16": [264, 270], "entropy_sidec": [270, 289], "105": 270, "87": 270, "entropy_mainc": [270, 289], "231": 270, "69": [270, 289], "bond": [270, 289], "00": [270, 289], "helix": [270, 289], "dipol": [270, 289], "75": [270, 289], "loop_entropi": [270, 289], "cis_bond": [270, 289], "disulfid": [270, 289], "kn": [270, 289], "electrostat": [270, 289], "partial": [270, 289], "coval": [270, 289], "energy_ionis": [270, 289], "56": 270, "entropi": [270, 289], "32": 270, "meta0": 270, "gly": 270, "ok": [270, 289], "fri": [270, 289], "dec": 270, "spend": [270, 289], "20": [124, 264, 270], "valid": [270, 289], "101m_repair_1": 270, "successfulli": [270, 289], "clean": [189, 270, 289], "completedprocess": 270, "sjt972": [270, 291, 294], "doc": [37, 270, 291], "understanding_foldx": 270, "01": 270, "returncod": 270, "average_101m_repair": 270, "dif_101m_repair": 270, "pdblist_101m_repair": 270, "raw_101m_repair": 270, "wt_101m_repair_1": 270, "raw_": 270, "_repair": [270, 277, 278], "tabl": 270, "quantiti": 270, "foldxsuit": [67, 269, 270], "crg": [67, 269, 270], "eu": [67, 269, 270], "column_nam": 270, "backbon": 270, "hbond": 270, "sidechain": 270, "van": 270, "der": 270, "waal": 270, "solvat": 270, "polar": 270, "hydrophob": 270, "clash": [268, 270], "mainchain": 270, "sloop_entropi": 270, "mloop_entropi": 270, "torsion": 270, "bridg": 270, "kon": 270, "ionis": 270, "pd": 270, "readlin": 270, "df": 270, "split": 270, "column": 270, "overal": 270, "31": [270, 291], "7457": 270, "34": 270, "3436": 270, "stand": [270, 293, 296], "pretti": [266, 270, 290], "again": 270, "quiet": [27, 94, 270], "wt_structur": 270, "mut_structur": 270, "pdb1": 270, "shrakeruplei": 270, "attach": [270, 291], "8407": 270, "731560227876": 270, "8439": 270, "063468009845": 270, "short": [267, 270], "impact": 270, "databas": 270, "desir": [270, 293], "lesser": 270, "stabler": 270, "correl": 270, "inde": [34, 249, 270, 277, 278, 295, 296], "present": [270, 296], "supervis": 271, "approach": 271, "featur": [268, 271], "rosetta": [171, 271], "network": [271, 297], "drawback": 271, "consid": [171, 271, 286, 296], "similar": 271, "foldx_stabl": [271, 278, 289, 293], "drop": [171, 271, 289, 293], "awar": [271, 297], "scale": [271, 286], "howev": [106, 271, 275, 294, 296], "easier": 271, "poli__rasp": 271, "correct": [271, 274, 277, 278, 279, 280, 281, 285, 296], "breakpoint": [271, 274], "satisfi": [271, 274], "root": [271, 274, 276, 279], "suppos": [271, 274], "3ned": [271, 289], "__file__": 271, "wildtype_pdb_paths_for_rasp": 271, "f_rasp": 271, "wildtype_str": 271, "join": [271, 289], "three_mut": 271, "wildtype_sequ": 271, "ddg": 271, "approx": 271, "03": 271, "07": [271, 289], "exact": [166, 266, 271, 274, 290, 296], "clang": 271, "cmake": 271, "reduc": 271, "pin": 271, "hash": 271, "bd23a0bf627ae9b08842102a5c2e9404b4a81924": 271, "cavity_model_15": 271, "ds_model": 271, "3ccebe87e017b6bd737f88e1943557d128c85616": 271, "against": [271, 274], "checksum": 271, "satur": 271, "mutagenesi": 271, "pmo": 272, "cite": [], "guacamol": [], "jump": 272, "bro": [186, 272, 296], "cap": 273, "alwai": [266, 273, 286, 287, 290, 294, 296], "openbabel": [267, 274], "prepar": 274, "autodock": 274, "vina": 274, "even": [274, 296], "requisit": [267, 274], "poli__dockstr": [274, 294], "canon": [274, 275], "risperidon": 274, "drd2": [274, 294], "risperidone_smil": 274, "cc1": 274, "n2ccccc2": 274, "n1": 274, "ccn3ccc": 274, "cc3": 274, "c4": 274, "noc5": 274, "c4c": 274, "c5": 274, "handl": [274, 277, 278, 280, 281], "hood": [274, 275], "pyscreen": [106, 268, 275], "center": [106, 275], "websit": [106, 275], "uncompress": [106, 275], "export": [106, 275], "autodock_vina": [106, 275], "bin": [106, 275], "bashrc": [106, 275], "zshrc": [106, 275], "sh": [106, 275, 296], "thu": [106, 275], "permiss": [106, 275], "chmod": [106, 275], "sometim": [106, 275], "problemat": [106, 275], "symlink": [106, 275], "ln": [106, 275], "sf": [106, 275], "drd3_dock": [268, 275, 289, 293], "abov": [275, 276, 279, 282, 295, 296], "success": 275, "underneath": [275, 276, 279, 282, 293], "text": [276, 277, 278, 296], "foldx_rfp_lambo": [276, 279, 289, 293], "poli__lambo": [276, 279], "samuelstanton": [65, 106, 276, 279], "431b052": [106, 276, 279], "proxy_rfp": [106, 113, 276], "asset": [106, 276], "fpbase": [106, 276], "avali": 276, "foldx_rfp": 276, "11189": 276, "00587946": 276, "8155": 276, "acces": [277, 282], "foldx_stability_and_sasa": [277, 278, 289, 293], "filenam": [277, 278], "cach": [277, 278], "your_fil": [277, 278], "remov": [189, 269, 277, 278, 291, 296], "heteroatom": [277, 278], "pdbtool": [277, 278], "Then": [277, 278, 280, 281], "foldx_sasa": [277, 289, 293], "poli__protein": [277, 278, 294], "penalized_logp_lambo": [268, 279, 289, 293], "carefulli": 279, "zinc": 279, "coeffici": 280, "solut": [266, 280, 290, 302], "octanol": 280, "rdkit_logp": [280, 289, 293, 294], "carbon": [280, 281], "6361": 280, "rdkit_q": [281, 289, 293], "35978494": 281, "assert": [281, 295], "isclos": 281, "sa_tdc": [268, 282, 289, 293], "8548": 282, "link": 285, "sort": [266, 285, 290, 302], "peopl": 286, "sum_": 286, "x_d": 286, "specif": [119, 124, 128, 286, 293], "constant": [152, 286], "toy_continuous_problem": [268, 286, 289, 293, 297, 301], "saasbo": 286, "reli": [66, 248, 286], "assumpt": 286, "roughli": 286, "speak": 286, "subset": [269, 286, 298], "question": 286, "30d": 286, "randomli": [218, 266, 286, 289, 290, 293, 302, 303, 304], "dimensions_to_embed_in": 286, "integ": [192, 193, 266, 286, 287, 290, 293, 296], "mathcal": 287, "But": 288, "idea": [288, 289], "rc": 289, "sit": 289, "anaconda3": [291, 294], "lib": [291, 294], "python3": [291, 294], "site": [171, 291, 294], "tqdm": 291, "auto": 291, "tqdmwarn": 291, "iprogress": 291, "pleas": [291, 294], "updat": [266, 291, 298], "jupyt": 291, "ipywidget": 291, "readthedoc": 291, "io": 291, "user_instal": 291, "autonotebook": 291, "notebook_tqdm": 291, "304": [], "154": 291, "miss": 291, "restart": 291, "rich": 291, "warn": [269, 291, 294], "tensorflow": 291, "compat": 291, "v2_compat": 291, "108": 291, "disable_resource_vari": 291, "op": 291, "variable_scop": 291, "deprec": 291, "non": [291, 302], "resourc": 291, "term": 291, "gfp_cba": [268, 289, 293], "gfp_select": [268, 289, 293], "stick": 289, "red": 289, "explor": [289, 297], "expand": [], "autom": [], "ls": 289, "3ned_repair": 289, "optimizing_protein_st": 289, "ipynb": 289, "hopefulli": 289, "remind": 289, "forgot": 289, "178": 289, "76": 289, "267": 289, "80": 289, "13": 289, "374": 289, "65": 289, "17": 289, "146": 289, "340": 289, "27": 289, "77": [289, 294], "41": 289, "ea1": 289, "glua1": 289, "glu": 289, "3ned_repair_1": 289, "four": [], "section": [289, 295, 296], "abstractsolv": [266, 289, 290], "poli_baselin": [266, 267, 289, 293, 295, 297, 298, 301, 302, 303, 304], "abstract_solv": [266, 289, 290], "simplest": [266, 289, 290], "select": [289, 293, 301], "alter": 289, "There": [106, 289, 291, 294], "noth": [266, 289, 290], "special": [289, 293], "next_candid": [266, 289, 290, 293], "random_mut": [266, 289, 290, 293, 295], "black_box": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "modulenotfounderror": [], "traceback": [], "recent": 269, "cell": [], "No": 294, "And": [106, 289, 296], "solv": [266, 289, 290, 293, 295, 296, 297, 298, 301, 302, 303, 304], "n_iter": 289, "while": [267, 289], "max_it": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "mon": [], "la124w": [], "leua124": [], "trp": [], "43": [], "wa143": [], "trpa143": [], "ser": [], "44": [], "histori": [266, 289, 290, 293, 303, 304], "kei": [289, 295], "get_best_perform": [266, 289], "get_best_solut": [289, 293, 295, 302, 303, 304], "41639": 289, "01168": [], "81194": [], "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslqdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayntntklditshnedytiveqyernegrhstggmdelyk": 289, "almost": [266, 290], "likewis": [266, 290], "propos": [266, 290, 293], "notimplementederror": [266, 290], "subclass": [266, 290], "100": [266, 290, 293, 302, 303, 304], "leverag": [266, 290], "fact": [266, 290], "len": [266, 290], "far": [9, 266, 290], "best_x": [266, 290], "argmax": [266, 290], "next_x": [266, 290], "po": [266, 290], "randint": [266, 290], "choic": [266, 290, 302], "lean": [266, 290], "logic": [266, 290, 291], "slightli": [266, 290, 296], "appli": 290, "discuss": [268, 291, 293, 295, 296], "part": [291, 294], "compar": [291, 294], "effici": [264, 291, 297], "qualiti": 291, "comparison": [166, 291], "save": 291, "json": 291, "mlflow": 291, "weight": 291, "bias": 291, "abstract_observ": 291, "skeleton": 291, "simpleobserv": 291, "init": 291, "servic": 291, "wandb": 291, "adjac": 291, "uniqu": [160, 291], "identifi": 291, "uuid4": 291, "metadata": 291, "uuid": 291, "experiment_path": 291, "as_dict": 291, "recal": 291, "tolist": 291, "dump": 291, "curiou": 291, "rememb": [291, 296], "invent": 291, "wheel": 291, "tensorboard": 291, "fp": 291, "snippet": [291, 295], "scenario": 291, "253": 291, "p": [64, 264, 291], "q": [64, 264, 291], "v": [64, 66, 291], "z": 291, "were": [291, 294], "accordingli": 291, "migu": 291, "flea": [291, 296], "showcas": 291, "behind": 291, "saw": 291, "overwritten": 291, "deeper": [293, 295], "intro": 293, "treat": 293, "38": [], "260": [], "further": 293, "prerequisit": [], "page": [293, 296], "yourself": 296, "00_a_simple_objective_function_registr": [], "randommut": [293, 295, 303, 304], "dtype": 293, "u1": 293, "talk": 293, "combin": 295, "optimizing_aloha": 295, "01_a_simple_example_of_optim": 295, "our_aloha": [295, 296], "past": 295, "haven": 295, "realli": 295, "Its": 295, "break_at_perform": [266, 295], "break": [266, 295], "summari": 295, "less": 295, "conclud": 295, "takeawai": 295, "independ": 295, "why": 295, "registering_aloha": 296, "search": [296, 297], "match": [294, 296], "aloof": 296, "syntax": 296, "ouralohablackbox": 296, "sum": 296, "axi": 296, "keepdim": 296, "get_max_sequence_length": 296, "x_0": 296, "alohablackbox": 296, "ascii_uppercas": 296, "ouralohaproblemfactori": 296, "interpret": 296, "poli_aloha": 296, "poli_aloha_problem": 296, "aloha_problem_factori": 296, "somewher": 296, "workhors": 296, "querying_aloha": 296, "emphas": 296, "amaz": 296, "x1": 296, "y1": 296, "subtl": 296, "torch": [194, 296], "cheminformat": 296, "mechan": 296, "prism": [], "implment": [], "prismpars": [], "deriv": [], "variantdata": [], "help": 269, "preprocess": [], "infer": 264, "effect": [], "caviti": [], "downstream": [], "apach": [], "licens": 269, "duli": [], "inner_rasp": [], "bird": 171, "ey": 171, "reader": 171, "099": [], "372": [], "459": [], "251": [], "788": [], "26": [], "476": [], "622": [], "45": [], "138": [], "29": 264, "602": [], "377": [], "reset_evaluation_budget": 3, "reset": [3, 96], "made": 3, "relat": [8, 18, 38, 63, 269], "477": [], "tue": [], "47": [], "787": [], "negat": 4, "kwargs_for_oracl": [10, 108], "888": [], "02": [], "19": [264, 289], "677": [], "24": [], "05": [], "698": [], "144": [], "160": [], "06": [], "35": [], "686": [], "966": [], "wed": [], "855": [], "itertool": 37, "aspuru": [43, 44, 264], "guzik": [43, 44, 264], "lab": [43, 44], "group": [43, 44], "hex_digest": 52, "amino_acid": 64, "foldxinterfac": 65, "codebas": [], "faraldo": 171, "g\u00f3mez": [171, 264, 297], "detlef": 171, "weigel": 171, "nir": 171, "ben": 171, "tal": 171, "julian": 171, "echav": 171, "04": [], "68": [], "917": [], "dynam": 89, "constructor": 89, "processwrapp": [90, 91, 93], "down": 94, "configpars": 95, "162": [], "46": 289, "479": [], "prepare_receptor": 106, "adfr": [], "suit": 269, "scripp": 106, "edu": 106, "bash": 106, "ccsb": 106, "ddr3_dock": 106, "manual": [], "query_exampl": 106, "54": [], "409": [], "55": [], "628": [], "036": [], "089": [], "465": [], "98": [], "37": 289, "163": [], "juli": [65, 110, 166, 167], "ab": [65, 110, 166, 167, 264], "388": [], "913": [], "jointli": 166, "fair": 166, "string_to_idx": [], "idx_to_str": [], "strongli": 178, "heurist": 179, "discard": 179, "too": 179, "heavi": 179, "accessibl": 182, "51": 289, "610": [], "52": [], "74": [], "09": 289, "369": [], "avout": 186, "empti": 189, "probit": 193, "toycontinuousproblem": 218, "bound": 218, "upper": 218, "vector": 224, "downward": 224, "527": [], "93": [], "53": 289, "273": [], "081": [], "670": [], "982": [], "keyboardinterrupt": [], "objective_manag": [], "make_run_script": [], "make_observer_script": [], "available_object": [], "_default": [], "_observ": [], "101": [], "gfpcbasproblemfactori": [], "103": [], "104": 264, "filenotfounderror": [], "seed_numpi": [], "seed_python": [], "cbas_wrapp": [], "cbasvaewrapp": [], "cbas_alphabet_preprocess": [], "get_gfp_x_y_aa": [], "one_hot_encode_aa_arrai": [], "gfpcbasblackbox": [], "abstract_vae_wrapp": [], "abstractvaewrapp": [], "make_va": [], "build_va": [], "tf": [], "backend": [], "_api": [], "v2": [], "autograph": [], "bitwis": [], "public": [], "namespac": [], "sy": [], "_sy": [], "v1": [], "forward_compatibility_horizon": [], "125": 289, "forward_compat": [], "lazy_load": [], "lazyload": [], "_lazyload": [], "keraslazyload": [], "_keraslazyload": [], "__internal__": [], "__operators__": [], "audio": [], "341": [], "339": [], "_current_modul": [], "_tf": [], "342": [], "__path__": [], "343": [], "_module_util": [], "get_parent_dir": [], "344": [], "setattr": [], "frozen": [], "importlib": [], "_bootstrap": [], "1007": [], "_find_and_load": [], "import_": [], "986": [], "_find_and_load_unlock": [], "680": [], "_load_unlock": [], "spec": [], "_bootstrap_extern": [], "846": [], "exec_modul": [], "941": [], "get_cod": [], "1039": [], "get_data": [], "107": [], "32895038": [], "49": 289, "079": [], "squelch": [27, 94], "feedback": [27, 94], "parent_folders_exist_ok": [], "account": [], "secur": [], "person": [], "fine": 267, "grain": [], "longer": 66, "v5": [119, 124, 128], "shown": 124, "regress": 152, "sarkisyan": 152, "2016": [152, 264, 297], "plu": [152, 302], "problem_typ": 161, "exemplifi": 248, "Not": 248, "benefit": 248, "intellisens": 248, "spawn": 249, "2024": [268, 289], "858": [], "jan": [268, 289], "149": [], "only_avail": [25, 293], "highli": [], "063": [], "typeerror": [], "got": [], "unexpect": [], "releas": 267, "548": [], "57433265": 293, "phase": 267, "simple__": 289, "mrogu": 289, "67": 289, "ia119l": 289, "ilea119": 289, "118": 289, "leu": 289, "na23c": 289, "asna23": 289, "cy": 289, "ga126q": 289, "glya126": 289, "gln": 289, "57": 289, "86": 289, "99477": 289, "42085": 289, "16703": 289, "five": 289, "gfsc22": 264, "matter": 264, "practic": 264, "sixth": 264, "yczrdi0y7g": 264, "dockstringproblemfactori": 274, "v4": [277, 278], "nameerror": [], "readili": 25, "pareto": 180, "front": 180, "equival": [], "intend": [], "skip": [], "whole": [], "domin": 302, "deb": [264, 302], "2002": [264, 302], "mate": 302, "procedur": 302, "upon": 302, "pymoo": [264, 302], "alohaproblemfactori": [302, 303, 304], "multi_objective_black_box": 302, "multiobjectiveblackbox": 302, "discretensgaii": 302, "hyperparamet": 302, "population_s": [298, 302], "max_iter": 302, "num_mut": 302, "f_aloha": 302, "togeth": 302, "popul": 302, "evolut": [264, 302], "dpam02": 264, "pratap": 264, "agarw": 264, "meyarivan": 264, "fast": 264, "elitist": 264, "multiobject": 264, "ii": 264, "ieee": 264, "transact": 264, "182": 264, "197": 264, "april": 264, "1109": 264, "4235": 264, "996017": 264, "blankdeb20": 264, "blank": [264, 302], "89497": 264, "89509": 264, "2020": [264, 268, 297, 301, 302], "approxim": 297, "tild": 297, "bm": [], "surrog": 297, "acquisit": [268, 297, 301], "render": 297, "smartli": 297, "balanc": 297, "exploit": 297, "gpytorch": [264, 297], "botorch": [264, 268, 297, 301], "balandat": [264, 297, 301], "gardner": [264, 297], "2018": [264, 268, 297], "grid": 297, "vanillabayesianoptim": 297, "f_acklei": [297, 301], "randn": [297, 301], "clip": [297, 301], "bo_solv": 297, "human": [264, 297], "great": 297, "mostli": 297, "intent": 297, "adversari": 297, "gan": 297, "restrict": 301, "coordin": 301, "singletaskgp": 301, "type_of_lin": 301, "gbwd": 264, "rafael": 264, "bombarelli": [264, 297], "jennif": 264, "wei": 264, "david": [264, 298], "duvenaud": 264, "benjam\u00edn": 264, "s\u00e1nchez": 264, "lengel": 264, "denni": 264, "sheberla": 264, "jorg": 264, "aguilera": 264, "iparraguirr": 264, "timothi": 264, "hirzel": 264, "ryan": 264, "adam": 264, "al\u00e1n": 264, "driven": 264, "central": 264, "268": 264, "276": 264, "februari": 264, "acscentsci": 264, "7b00572": 264, "kmh": 264, "johann": 264, "kirschner": [264, 301], "mojmir": 264, "mutni": 264, "nicol": 264, "hiller": 264, "rasmu": 264, "ischebeck": 264, "kraus": 264, "safe": 264, "high": 264, "subspac": 264, "36th": 264, "3429": 264, "3438": 264, "pmlr": 264, "2019": [264, 268, 301], "mlr": 264, "press": 264, "v97": 264, "kirschner19a": 264, "ssw": 264, "bobak": 264, "shahriari": [264, 297], "kevin": 264, "swerski": 264, "ziyu": 264, "wang": 264, "nando": 264, "freita": 264, "review": 264, "148": 264, "175": 264, "januari": 264, "jproc": 264, "2494218": 264, "bkj": 264, "gpb": 264, "jacob": 264, "geoff": 264, "pleiss": 264, "bindel": 264, "kilian": 264, "weinberg": 264, "blackbox": 264, "matrix": [264, 298], "gpu": 264, "usepackag": [], "covari": [264, 298], "maintain": 298, "mu": 298, "sigma": 298, "member": 298, "ho96": 264, "hansen": [264, 298], "ostermei": [264, 298], "312": 264, "317": 264, "1996": [264, 298], "icec": 264, "542381": 264, "introduct": 298, "blogpost": 298, "pycma": 298, "cma_e": 298, "initial_mean": 298, "initial_sigma": 298, "toycontinuousproblemfactori": 298, "mathbf": [], "boldsymbol": [297, 298], "maximilian": 264, "brian": 264, "karrer": 264, "daniel": 264, "jiang": 264, "daulton": 264, "benjamin": 264, "letham": 264, "eytan": 264, "bakshi": 264, "mont": 264, "carlo": 264, "decemb": 264, "1910": 264, "06403": 264, "cs": 264, "math": 264, "stat": 264, "vanilla": 268, "over": 268, "babel": 294, "diagram": [], "freez": 294, "grep": 294, "dockstringwarn": 294, "although": 294, "mac": [269, 294], "perfectli": 294, "platform": 294, "report": 294, "externalblackbox": 294, "num_evalu": 294, "f_logp": 294, "x0_logp": 294, "y0_logp": 294, "logpblackbox": 294, "withdenois": 65, "stdout": 66, "dg": 269, "academ": 269, "zip": 269, "auxiliari": 269, "unverifi": 269, "quarantin": 269, "risk": 269, "xattr": 269, "appl": 269, "your_arg": 265, "your_second_arg": 265, "your_kwarg": 265, "googl": [265, 268], "your_arg_1": 265, "your_arg_2": 265, "thereof": 265, "contribut": [265, 266], "x0_i": 266, "y0_i": 266, "callback": 266, "pre_step_callback": 266, "turn": 266, "post": 266, "post_step_callback": 266, "jrhernandezgarcia": 264, "moksh": 264, "jain": [264, 269], "sharath": 264, "chandra": 264, "raparthi": 264, "alex": 264, "hern": 264, "\u00e1": 264, "ndez": 264, "garc": 264, "\u0131": 264, "jarrid": 264, "rector": 264, "brook": [264, 268], "yoshua": 264, "santiago": 264, "miret": 264, "emmanuel": 264, "gf": 264, "low": 264, "emma": 264, "brunskil": 264, "kyunghyun": 264, "cho": 264, "barbara": 264, "engelhardt": 264, "sivan": 264, "sabato": 264, "jonathan": 264, "scarlett": 264, "40th": 264, "202": 264, "14631": 264, "14653": 264, "jul": 264, "v202": 264, "jain23a": 264, "pytdc": 268, "accces": 268, "stage": [], "encourag": 268, "gonzalezduquebartelsmichael": 268, "gonz\u00e1lez": 268, "duqu": 268, "bartel": 268, "simon": 268, "michael": 268, "richard": 268, "month": 268, "titl": 268, "libari": 268, "year": 268, "graff": 268, "shakhnovich": 268, "foldx_": 268, "park": 268, "listgarten": 268, "rdkit_": 268, "rfp_foldx_": 268, "ertl": 268, "schuffenhau": 268, "volz": 268, "2013": 268}, "objects": {"": [[0, 0, 0, "-", "poli"]], "poli": [[1, 0, 0, "-", "core"], [88, 0, 0, "-", "objective"], [92, 0, 0, "-", "objective_factory"], [97, 0, 0, "-", "objective_repository"], [226, 0, 0, "-", "registered_objectives"], [227, 0, 0, "-", "tests"]], "poli.core": [[2, 0, 0, "-", "abstract_black_box"], [5, 0, 0, "-", "abstract_problem_factory"], [8, 0, 0, "-", "chemistry"], [11, 0, 0, "-", "exceptions"], [14, 0, 0, "-", "multi_objective_black_box"], [16, 0, 0, "-", "problem_setup_information"], [18, 0, 0, "-", "proteins"], [21, 0, 0, "-", "registry"], [30, 0, 0, "-", "util"]], "poli.core.abstract_black_box": [[3, 1, 1, "", "AbstractBlackBox"], [4, 1, 1, "", "NegativeBlackBox"]], "poli.core.abstract_black_box.AbstractBlackBox": [[3, 2, 1, "", "__call__"], [3, 2, 1, "", "__del__"], [3, 2, 1, "", "__enter__"], [3, 2, 1, "", "__exit__"], [3, 2, 1, "", "__init__"], [3, 2, 1, "", "__neg__"], [3, 2, 1, "", "_black_box"], [3, 3, 1, "", "batch_size"], [3, 3, 1, "", "info"], [3, 3, 1, "", "num_workers"], [3, 3, 1, "", "observer"], [3, 3, 1, "", "parallelize"], [3, 2, 1, "", "reset_evaluation_budget"], [3, 2, 1, "", "set_observer"], [3, 2, 1, "", "terminate"]], "poli.core.abstract_black_box.NegativeBlackBox": [[4, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory": [[6, 1, 1, "", "AbstractProblemFactory"], [7, 1, 1, "", "MetaProblemFactory"]], "poli.core.abstract_problem_factory.AbstractProblemFactory": [[6, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory.MetaProblemFactory": [[7, 2, 1, "", "__init__"]], "poli.core.chemistry": [[9, 0, 0, "-", "tdc_black_box"]], "poli.core.chemistry.tdc_black_box": [[10, 1, 1, "", "TDCBlackBox"]], "poli.core.chemistry.tdc_black_box.TDCBlackBox": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "from_smiles"], [10, 3, 1, "", "oracle"]], "poli.core.exceptions": [[12, 4, 1, "", "BudgetExhaustedException"], [13, 4, 1, "", "PoliException"]], "poli.core.multi_objective_black_box": [[15, 1, 1, "", "MultiObjectiveBlackBox"]], "poli.core.multi_objective_black_box.MultiObjectiveBlackBox": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "_black_box"], [15, 3, 1, "", "objective_functions"]], "poli.core.problem_setup_information": [[17, 1, 1, "", "ProblemSetupInformation"]], "poli.core.problem_setup_information.ProblemSetupInformation": [[17, 2, 1, "", "__init__"]], "poli.core.proteins": [[19, 0, 0, "-", "foldx_black_box"]], "poli.core.proteins.foldx_black_box": [[20, 1, 1, "", "FoldxBlackBox"]], "poli.core.proteins.foldx_black_box.FoldxBlackBox": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "create_working_directory"], [20, 3, 1, "", "experiment_id"], [20, 3, 1, "", "tmp_folder"], [20, 3, 1, "", "wildtype_amino_acids"], [20, 3, 1, "", "wildtype_pdb_paths"], [20, 3, 1, "", "wildtype_residue_strings"], [20, 3, 1, "", "wildtype_residues"]], "poli.core.registry": [[22, 5, 1, "", "delete_observer_run_script"], [23, 5, 1, "", "delete_problem"], [24, 5, 1, "", "get_problem_factories"], [25, 5, 1, "", "get_problems"], [26, 5, 1, "", "register_problem"], [27, 5, 1, "", "register_problem_from_repository"], [28, 5, 1, "", "set_observer"], [29, 5, 1, "", "set_observer_run_script"]], "poli.core.util": [[31, 0, 0, "-", "abstract_observer"], [33, 0, 0, "-", "alignment"], [35, 0, 0, "-", "batch"], [38, 0, 0, "-", "chemistry"], [45, 0, 0, "-", "external_observer"], [47, 0, 0, "-", "files"], [53, 0, 0, "-", "inter_process_communication"], [57, 0, 0, "-", "objective_management"], [61, 0, 0, "-", "observer_wrapper"], [63, 0, 0, "-", "proteins"], [84, 0, 0, "-", "seeding"]], "poli.core.util.abstract_observer": [[32, 1, 1, "", "AbstractObserver"]], "poli.core.util.abstract_observer.AbstractObserver": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "finish"], [32, 2, 1, "", "observe"]], "poli.core.util.alignment": [[34, 0, 0, "-", "is_aligned"]], "poli.core.util.batch": [[36, 0, 0, "-", "batch_input"]], "poli.core.util.batch.batch_input": [[37, 5, 1, "", "batched"]], "poli.core.util.chemistry": [[39, 0, 0, "-", "string_to_molecule"]], "poli.core.util.chemistry.string_to_molecule": [[40, 5, 1, "", "selfies_to_molecules"], [41, 5, 1, "", "smiles_to_molecules"], [42, 5, 1, "", "strings_to_molecules"], [43, 5, 1, "", "translate_selfies_to_smiles"], [44, 5, 1, "", "translate_smiles_to_selfies"]], "poli.core.util.external_observer": [[46, 1, 1, "", "ExternalObserver"]], "poli.core.util.external_observer.ExternalObserver": [[46, 2, 1, "", "__getattr__"], [46, 2, 1, "", "__init__"], [46, 2, 1, "", "finish"], [46, 2, 1, "", "initialize_observer"], [46, 2, 1, "", "observe"]], "poli.core.util.files": [[48, 0, 0, "-", "download_files_from_github"], [51, 0, 0, "-", "integrity"]], "poli.core.util.files.download_files_from_github": [[49, 5, 1, "", "download_file_from_github_repository"], [50, 5, 1, "", "get_sha_for_tag"]], "poli.core.util.files.integrity": [[52, 5, 1, "", "compute_md5_from_filepath"]], "poli.core.util.inter_process_communication": [[54, 0, 0, "-", "process_wrapper"]], "poli.core.util.inter_process_communication.process_wrapper": [[55, 1, 1, "", "ProcessWrapper"], [56, 5, 1, "", "get_connection"]], "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper": [[55, 2, 1, "", "__init__"]], "poli.core.util.objective_management": [[58, 0, 0, "-", "make_run_script"]], "poli.core.util.objective_management.make_run_script": [[59, 5, 1, "", "make_observer_script"], [60, 5, 1, "", "make_run_script"]], "poli.core.util.observer_wrapper": [[62, 5, 1, "", "start_observer_process"]], "poli.core.util.proteins": [[64, 0, 0, "-", "defaults"], [65, 0, 0, "-", "foldx"], [67, 0, 0, "-", "mutations"], [71, 0, 0, "-", "pdb_parsing"], [75, 0, 0, "-", "rasp"]], "poli.core.util.proteins.foldx": [[66, 1, 1, "", "FoldxInterface"]], "poli.core.util.proteins.foldx.FoldxInterface": [[66, 2, 1, "", "__init__"], [66, 2, 1, "", "_compute_sasa"], [66, 2, 1, "", "_read_energy"], [66, 2, 1, "", "_repair_if_necessary_and_provide_path"], [66, 2, 1, "", "_simulate_mutations"], [66, 2, 1, "", "compute_sasa"], [66, 2, 1, "", "compute_stability"], [66, 2, 1, "", "compute_stability_and_sasa"], [66, 2, 1, "", "copy_foldx_files"], [66, 2, 1, "", "repair"], [66, 3, 1, "", "verbose"], [66, 3, 1, "", "working_dir"], [66, 2, 1, "", "write_mutations_to_file"]], "poli.core.util.proteins.mutations": [[68, 5, 1, "", "edits_between_strings"], [69, 5, 1, "", "find_closest_wildtype_pdb_file_to_mutant"], [70, 5, 1, "", "mutations_from_wildtype_residues_and_mutant"]], "poli.core.util.proteins.pdb_parsing": [[72, 5, 1, "", "parse_pdb_as_residue_strings"], [73, 5, 1, "", "parse_pdb_as_residues"], [74, 5, 1, "", "parse_pdb_as_structure"]], "poli.core.util.proteins.rasp": [[76, 0, 0, "-", "inner_rasp"], [82, 6, 1, "", "load_models"], [83, 6, 1, "", "rasp_interface"]], "poli.core.util.proteins.rasp.inner_rasp": [[77, 6, 1, "", "PrismData"], [78, 6, 1, "", "cavity_model"], [79, 6, 1, "", "helpers"], [80, 6, 1, "", "run_pipeline"], [81, 6, 1, "", "visualization"]], "poli.core.util.seeding": [[85, 0, 0, "-", "seeding"]], "poli.core.util.seeding.seeding": [[86, 5, 1, "", "seed_numpy"], [87, 5, 1, "", "seed_python"]], "poli.objective": [[89, 5, 1, "", "dynamically_instantiate"], [90, 5, 1, "", "parse_factory_kwargs"], [91, 5, 1, "", "run"]], "poli.objective_factory": [[93, 1, 1, "", "ExternalBlackBox"], [94, 5, 1, "", "create"], [95, 5, 1, "", "load_config"], [96, 5, 1, "", "start"]], "poli.objective_factory.ExternalBlackBox": [[93, 2, 1, "", "__init__"]], "poli.objective_repository": [[98, 0, 0, "-", "aloha"], [102, 0, 0, "-", "dockstring"], [106, 0, 0, "-", "drd3_docking"], [110, 0, 0, "-", "foldx_rfp_lambo"], [116, 0, 0, "-", "foldx_sasa"], [121, 0, 0, "-", "foldx_stability"], [126, 0, 0, "-", "foldx_stability_and_sasa"], [130, 0, 0, "-", "gfp_cbas"], [162, 0, 0, "-", "gfp_select"], [166, 0, 0, "-", "penalized_logp_lambo"], [170, 0, 0, "-", "rasp"], [172, 0, 0, "-", "rdkit_logp"], [176, 0, 0, "-", "rdkit_qed"], [180, 0, 0, "-", "rfp_foldx_stability_and_sasa"], [182, 0, 0, "-", "sa_tdc"], [186, 0, 0, "-", "super_mario_bros"], [199, 0, 0, "-", "toy_continuous_problem"], [222, 0, 0, "-", "white_noise"]], "poli.objective_repository.aloha": [[99, 0, 0, "-", "register"]], "poli.objective_repository.aloha.register": [[100, 1, 1, "", "AlohaBlackBox"], [101, 1, 1, "", "AlohaProblemFactory"]], "poli.objective_repository.aloha.register.AlohaBlackBox": [[100, 2, 1, "", "__init__"], [100, 2, 1, "", "_black_box"], [100, 3, 1, "", "alphabet"]], "poli.objective_repository.aloha.register.AlohaProblemFactory": [[101, 2, 1, "", "__init__"], [101, 2, 1, "", "create"], [101, 2, 1, "", "get_setup_information"]], "poli.objective_repository.dockstring": [[103, 0, 0, "-", "register"]], "poli.objective_repository.dockstring.register": [[104, 1, 1, "", "DockstringBlackBox"], [105, 1, 1, "", "DockstringProblemFactory"]], "poli.objective_repository.dockstring.register.DockstringBlackBox": [[104, 2, 1, "", "__init__"], [104, 2, 1, "", "_black_box"], [104, 3, 1, "", "alphabet"]], "poli.objective_repository.dockstring.register.DockstringProblemFactory": [[105, 2, 1, "", "__init__"], [105, 2, 1, "", "create"], [105, 2, 1, "", "get_setup_information"]], "poli.objective_repository.drd3_docking": [[107, 0, 0, "-", "register"]], "poli.objective_repository.drd3_docking.register": [[108, 1, 1, "", "DRD3BlackBox"], [109, 1, 1, "", "DRD3ProblemFactory"]], "poli.objective_repository.drd3_docking.register.DRD3BlackBox": [[108, 2, 1, "id0", "__init__"], [108, 3, 1, "", "oracle_name"]], "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory": [[109, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo": [[111, 0, 0, "-", "register"]], "poli.objective_repository.foldx_rfp_lambo.register": [[112, 3, 1, "", "Config"], [113, 1, 1, "", "RFPWrapper"], [114, 1, 1, "", "RFPWrapperFactory"], [115, 5, 1, "", "get_config"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper": [[113, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory": [[114, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa": [[118, 0, 0, "-", "register"]], "poli.objective_repository.foldx_sasa.register": [[119, 1, 1, "", "FoldXSASABlackBox"], [120, 1, 1, "", "FoldXSASAProblemFactory"]], "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox": [[119, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory": [[120, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability": [[123, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability.register": [[124, 1, 1, "", "FoldXStabilityBlackBox"], [125, 1, 1, "", "FoldXStabilityProblemFactory"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox": [[124, 2, 1, "", "__init__"], [124, 2, 1, "", "_black_box"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory": [[125, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa": [[127, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability_and_sasa.register": [[128, 1, 1, "", "FoldXStabilityAndSASABlackBox"], [129, 1, 1, "", "FoldXStabilityAndSASAProblemFactory"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox": [[128, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory": [[129, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas": [[131, 0, 0, "-", "abstract_vae_wrapper"], [133, 0, 0, "-", "cbas_alphabet_preprocessing"], [148, 0, 0, "-", "cbas_wrapper"], [152, 0, 0, "-", "gfp_gp"], [153, 0, 0, "-", "make_vae"], [159, 0, 0, "-", "register"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper": [[132, 1, 1, "", "AbstractVAEWrapper"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper": [[132, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing": [[134, 5, 1, "", "convert_aas_to_idx_array"], [135, 5, 1, "", "convert_idx_array_to_aas"], [136, 5, 1, "", "convert_mutations_to_sequence"], [137, 5, 1, "", "get_argmax"], [138, 5, 1, "", "get_balaji_predictions"], [139, 5, 1, "", "get_experimental_X_y"], [140, 5, 1, "", "get_gfp_X_y_aa"], [141, 5, 1, "", "get_gfp_base_seq"], [142, 5, 1, "", "get_samples"], [143, 5, 1, "", "one_hot_encode_aa"], [144, 5, 1, "", "one_hot_encode_aa_array"], [145, 5, 1, "", "one_hot_encode_dna"], [146, 5, 1, "", "partition_data"], [147, 5, 1, "", "read_gfp_data"]], "poli.objective_repository.gfp_cbas.cbas_wrapper": [[149, 1, 1, "", "CBASVAEWrapper"], [150, 1, 1, "", "ConvertedTorchVaeDecoder"], [151, 1, 1, "", "ConvertedTorchVaeEncoder"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper": [[149, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder": [[150, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder": [[151, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae": [[154, 1, 1, "", "BaseVAE"], [155, 1, 1, "", "SimpleVAE"], [156, 5, 1, "", "build_vae"], [157, 5, 1, "", "identity_loss"], [158, 5, 1, "", "summed_categorical_crossentropy"]], "poli.objective_repository.gfp_cbas.make_vae.BaseVAE": [[154, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE": [[155, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register": [[160, 1, 1, "", "GFPCBasBlackBox"], [161, 1, 1, "", "GFPCBasProblemFactory"]], "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox": [[160, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory": [[161, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select": [[163, 0, 0, "-", "register"]], "poli.objective_repository.gfp_select.register": [[164, 1, 1, "", "GFPBlackBox"], [165, 1, 1, "", "GFPSelectionProblemFactory"]], "poli.objective_repository.gfp_select.register.GFPBlackBox": [[164, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory": [[165, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo": [[167, 0, 0, "-", "register"]], "poli.objective_repository.penalized_logp_lambo.register": [[168, 1, 1, "", "PenalizedLogPLamboBlackBox"], [169, 1, 1, "", "PenalizedLogPLamboProblemFactory"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox": [[168, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory": [[169, 2, 1, "", "__init__"]], "poli.objective_repository.rasp": [[171, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp": [[173, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp.register": [[174, 1, 1, "", "LogPBlackBox"], [175, 1, 1, "", "LogPProblemFactory"]], "poli.objective_repository.rdkit_logp.register.LogPBlackBox": [[174, 2, 1, "", "__init__"], [174, 2, 1, "", "_black_box"], [174, 3, 1, "", "from_selfies"], [174, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_logp.register.LogPProblemFactory": [[175, 2, 1, "", "__init__"]], "poli.objective_repository.rdkit_qed": [[177, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_qed.register": [[178, 1, 1, "", "QEDBlackBox"], [179, 1, 1, "", "QEDProblemFactory"]], "poli.objective_repository.rdkit_qed.register.QEDBlackBox": [[178, 2, 1, "", "__init__"], [178, 2, 1, "", "_black_box"], [178, 3, 1, "", "from_selfies"], [178, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_qed.register.QEDProblemFactory": [[179, 2, 1, "", "__init__"], [179, 2, 1, "", "create"], [179, 2, 1, "", "get_setup_information"]], "poli.objective_repository.rfp_foldx_stability_and_sasa": [[181, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc": [[183, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc.register": [[184, 1, 1, "", "SABlackBox"], [185, 1, 1, "", "SAProblemFactory"]], "poli.objective_repository.sa_tdc.register.SABlackBox": [[184, 2, 1, "", "__init__"]], "poli.objective_repository.sa_tdc.register.SAProblemFactory": [[185, 2, 1, "", "__init__"], [185, 2, 1, "", "create"], [185, 2, 1, "", "get_setup_information"]], "poli.objective_repository.super_mario_bros": [[187, 0, 0, "-", "level_utils"], [196, 0, 0, "-", "model"]], "poli.objective_repository.super_mario_bros.level_utils": [[188, 5, 1, "", "add_padding_to_level"], [189, 5, 1, "", "clean_level"], [190, 5, 1, "", "level_to_array"], [191, 5, 1, "", "level_to_list"], [192, 5, 1, "", "levels_to_onehot"], [193, 5, 1, "", "onehot_to_levels"], [194, 5, 1, "", "tensor_to_sim_level"], [195, 5, 1, "", "vectorized"]], "poli.objective_repository.super_mario_bros.model": [[197, 1, 1, "", "VAEMario"], [198, 5, 1, "", "load_example_model"]], "poli.objective_repository.super_mario_bros.model.VAEMario": [[197, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem": [[200, 0, 0, "-", "definitions"], [217, 0, 0, "-", "register"], [220, 0, 0, "-", "toy_continuous_problem"]], "poli.objective_repository.toy_continuous_problem.definitions": [[201, 5, 1, "", "ackley_function_01"], [202, 5, 1, "", "alpine_01"], [203, 5, 1, "", "alpine_02"], [204, 5, 1, "", "bent_cigar"], [205, 5, 1, "", "brown"], [206, 5, 1, "", "camelback_2d"], [207, 5, 1, "", "chung_reynolds"], [208, 5, 1, "", "cosine_mixture"], [209, 5, 1, "", "cross_in_tray"], [210, 5, 1, "", "deb_01"], [211, 5, 1, "", "deb_02"], [212, 5, 1, "", "deflected_corrugated_spring"], [213, 5, 1, "", "easom"], [214, 5, 1, "", "egg_holder"], [215, 5, 1, "", "shifted_sphere"], [216, 5, 1, "", "styblinski_tang"]], "poli.objective_repository.toy_continuous_problem.register": [[218, 1, 1, "", "ToyContinuousBlackBox"], [219, 1, 1, "", "ToyContinuousProblemFactory"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox": [[218, 2, 1, "", "__init__"], [218, 2, 1, "", "_black_box"], [218, 3, 1, "", "alphabet"], [218, 3, 1, "", "bounds"], [218, 3, 1, "", "embed_in"], [218, 3, 1, "", "function"], [218, 3, 1, "", "function_name"], [218, 3, 1, "", "n_dimensions"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory": [[219, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem": [[221, 1, 1, "", "ToyContinuousProblem"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem": [[221, 2, 1, "", "__init__"]], "poli.objective_repository.white_noise": [[223, 0, 0, "-", "register"]], "poli.objective_repository.white_noise.register": [[224, 1, 1, "", "WhiteNoiseBlackBox"], [225, 1, 1, "", "WhiteNoiseProblemFactory"]], "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox": [[224, 2, 1, "", "__init__"], [224, 2, 1, "", "_black_box"]], "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory": [[225, 2, 1, "", "__init__"]], "poli.tests": [[228, 0, 0, "-", "docs_examples"], [236, 0, 0, "-", "registry"], [255, 0, 0, "-", "test_minimal_working_example"], [257, 0, 0, "-", "test_seeding"], [259, 0, 0, "-", "util"]], "poli.tests.docs_examples": [[229, 0, 0, "-", "test_objective_functions"]], "poli.tests.docs_examples.test_objective_functions": [[230, 5, 1, "", "test_aloha_example"], [231, 5, 1, "", "test_logp_example"], [233, 5, 1, "", "test_qed_example"], [235, 5, 1, "", "test_white_noise_example"]], "poli.tests.registry": [[237, 0, 0, "-", "basic_objectives"], [242, 0, 0, "-", "chemistry"], [244, 0, 0, "-", "proteins"], [248, 0, 0, "-", "test_basic_loop_without_create"], [249, 0, 0, "-", "test_force_isolation"], [251, 0, 0, "-", "toy_continuous_problems"]], "poli.tests.registry.basic_objectives": [[238, 0, 0, "-", "test_basic_objectives"]], "poli.tests.registry.basic_objectives.test_basic_objectives": [[239, 5, 1, "", "test_registering_aloha"], [240, 5, 1, "", "test_registering_white_noise"]], "poli.tests.registry.toy_continuous_problems": [[252, 0, 0, "-", "test_embedding_problems_into_higher_dims"]], "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims": [[253, 5, 1, "", "test_embed_camelback_into_high_dimensions"]], "poli.tests.test_minimal_working_example": [[256, 5, 1, "", "test_minimal_working_example"]], "poli.tests.test_seeding": [[258, 5, 1, "", "test_seeding_in_white_noise"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"poli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, 268, 292, 293, 296], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 291], "abstract_black_box": [2, 3, 4], "abstractblackbox": 3, "negativeblackbox": 4, "abstract_problem_factori": [5, 6, 7], "abstractproblemfactori": 6, "metaproblemfactori": 7, "chemistri": [8, 9, 10, 38, 39, 40, 41, 42, 43, 44, 242, 243], "tdc_black_box": [9, 10], "tdcblackbox": 10, "except": [11, 12, 13], "budgetexhaustedexcept": 12, "poliexcept": 13, "multi_objective_black_box": [14, 15], "multiobjectiveblackbox": 15, "problem_setup_inform": [16, 17], "problemsetupinform": 17, "protein": [18, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 244, 245, 246, 247, 268, 270, 272, 276, 277, 278, 289], "foldx_black_box": [19, 20], "foldxblackbox": 20, "registri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 296], "delete_observer_run_script": 22, "delete_problem": 23, "get_problem_factori": 24, "get_problem": 25, "register_problem": 26, "register_problem_from_repositori": 27, "set_observ": 28, "set_observer_run_script": 29, "util": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 259, 260, 261], "abstract_observ": [31, 32], "abstractobserv": 32, "batch": [35, 36, 37, 290], "batch_input": [36, 37], "string_to_molecul": [39, 40, 41, 42, 43, 44], "selfies_to_molecul": 40, "smiles_to_molecul": 41, "strings_to_molecul": 42, "translate_selfies_to_smil": 43, "translate_smiles_to_selfi": 44, "external_observ": [45, 46], "externalobserv": 46, "file": [47, 48, 49, 50, 51, 52, 270, 275, 277, 278, 282], "download_files_from_github": [48, 49, 50], "download_file_from_github_repositori": 49, "get_sha_for_tag": 50, "integr": [51, 52], "compute_md5_from_filepath": 52, "inter_process_commun": [53, 54, 55, 56], "process_wrapp": [54, 55, 56], "processwrapp": 55, "get_connect": 56, "objective_manag": [57, 58, 59, 60], "make_run_script": [58, 59, 60], "make_observer_script": 59, "observer_wrapp": [61, 62], "start_observer_process": 62, "default": 64, "foldx": [65, 66, 269, 276, 277, 278], "foldxinterfac": 66, "mutat": [67, 68, 69, 70, 270, 289, 303], "edits_between_str": 68, "find_closest_wildtype_pdb_file_to_mut": 69, "mutations_from_wildtype_residues_and_mut": 70, "pdb_pars": [71, 72, 73, 74], "parse_pdb_as_residue_str": 72, "parse_pdb_as_residu": 73, "parse_pdb_as_structur": 74, "seed": [84, 85, 86, 87], "seed_numpi": 86, "seed_python": 87, "object": [88, 89, 90, 91, 268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "dynamically_instanti": 89, "parse_factory_kwarg": 90, "run": [91, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 288, 294, 297, 298, 301, 302, 303, 304], "objective_factori": [92, 93, 94, 95, 96], "externalblackbox": 93, "creat": [94, 106, 275, 282, 286, 293, 296], "load_config": 95, "start": [96, 267, 268], "objective_repositori": [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "aloha": [98, 99, 100, 101, 273, 291, 295], "regist": [99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 123, 124, 125, 127, 128, 129, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 217, 218, 219, 223, 224, 225, 265, 288, 289, 295, 296], "alohablackbox": 100, "alohaproblemfactori": 101, "dockstr": [102, 103, 104, 105, 274], "dockstringblackbox": 104, "dockstringproblemfactori": 105, "drd3_dock": [106, 107, 108, 109], "drd3blackbox": 108, "drd3problemfactori": 109, "foldx_rfp_lambo": [110, 111, 112, 113, 114, 115], "config": 112, "rfpwrapper": 113, "rfpwrapperfactori": 114, "get_config": 115, "foldx_sasa": [116, 117, 118, 119, 120], "foldx_util": [117, 122], "foldxsasablackbox": 119, "foldxsasaproblemfactori": 120, "foldx_stabl": [121, 122, 123, 124, 125], "foldxstabilityblackbox": 124, "foldxstabilityproblemfactori": 125, "foldx_stability_and_sasa": [126, 127, 128, 129], "foldxstabilityandsasablackbox": 128, "foldxstabilityandsasaproblemfactori": 129, "gfp_cba": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161], "abstract_vae_wrapp": [131, 132], "abstractvaewrapp": 132, "cbas_alphabet_preprocess": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "convert_aas_to_idx_arrai": 134, "convert_idx_array_to_aa": 135, "convert_mutations_to_sequ": 136, "get_argmax": 137, "get_balaji_predict": 138, "get_experimental_x_i": 139, "get_gfp_x_y_aa": 140, "get_gfp_base_seq": 141, "get_sampl": 142, "one_hot_encode_aa": 143, "one_hot_encode_aa_arrai": 144, "one_hot_encode_dna": 145, "partition_data": 146, "read_gfp_data": 147, "cbas_wrapp": [148, 149, 150, 151], "cbasvaewrapp": 149, "convertedtorchvaedecod": 150, "convertedtorchvaeencod": 151, "make_va": [153, 154, 155, 156, 157, 158], "baseva": 154, "simpleva": 155, "build_va": 156, "identity_loss": 157, "summed_categorical_crossentropi": 158, "gfpcbasblackbox": 160, "gfpcbasproblemfactori": 161, "gfp_select": [162, 163, 164, 165], "gfpblackbox": 164, "gfpselectionproblemfactori": 165, "penalized_logp_lambo": [166, 167, 168, 169], "penalizedlogplamboblackbox": 168, "penalizedlogplamboproblemfactori": 169, "rasp": [75, 76, 77, 78, 79, 80, 81, 82, 83, 170, 171], "rdkit_logp": [172, 173, 174, 175], "logpblackbox": 174, "logpproblemfactori": 175, "rdkit_q": [176, 177, 178, 179], "qedblackbox": 178, "qedproblemfactori": 179, "sa_tdc": [182, 183, 184, 185], "sablackbox": 184, "saproblemfactori": 185, "super_mario_bro": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "level_util": [187, 188, 189, 190, 191, 192, 193, 194, 195], "add_padding_to_level": 188, "clean_level": 189, "level_to_arrai": 190, "level_to_list": 191, "levels_to_onehot": 192, "onehot_to_level": 193, "tensor_to_sim_level": 194, "vector": 195, "model": [196, 197, 198], "vaemario": 197, "load_example_model": 198, "toy_continuous_problem": [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 251, 252, 253, 254], "definit": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "ackley_function_01": 201, "alpine_01": 202, "alpine_02": 203, "bent_cigar": 204, "brown": 205, "camelback_2d": 206, "chung_reynold": 207, "cosine_mixtur": 208, "cross_in_trai": 209, "deb_01": 210, "deb_02": 211, "deflected_corrugated_spr": 212, "easom": 213, "egg_hold": 214, "shifted_spher": 215, "styblinski_tang": 216, "toycontinuousblackbox": 218, "toycontinuousproblemfactori": 219, "toycontinuousproblem": 221, "white_nois": [222, 223, 224, 225], "whitenoiseblackbox": 224, "whitenoiseproblemfactori": 225, "registered_object": 226, "test": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 265, 267], "docs_exampl": [228, 229, 230, 231, 232, 233, 234, 235], "test_objective_funct": [229, 230, 231, 232, 233, 234, 235], "test_aloha_exampl": 230, "test_logp_exampl": 231, "test_logp_example_using_str": 232, "test_qed_exampl": 233, "test_qed_example_using_str": 234, "test_white_noise_exampl": 235, "basic_object": [237, 238, 239, 240, 241], "test_basic_object": [238, 239, 240], "test_registering_aloha": 239, "test_registering_white_nois": 240, "test_embedding_problems_into_higher_dim": [252, 253], "test_embed_camelback_into_high_dimens": 253, "test_minimal_working_exampl": [255, 256], "test_seed": [257, 258], "test_seeding_in_white_nois": 258, "api": 263, "document": 263, "refer": [264, 304], "ad": [265, 266], "new": [265, 266], "problem": [265, 266, 268, 272, 286, 289, 290, 295, 296], "repositori": 265, "The": [265, 291, 293], "structur": 265, "A": 265, "gener": 265, "py": 265, "environ": [106, 265, 275, 276, 279, 282, 296], "yml": [265, 275, 282], "why": [265, 296], "conda": [265, 267, 296], "your": [265, 267, 293, 296], "instal": [106, 265, 267, 269, 275], "option": 265, "make": [265, 275], "avail": 265, "depend": [265, 294, 296], "ar": [265, 270], "met": 265, "submit": [265, 266], "pull": [265, 266], "request": [265, 266], "black": [268, 294, 296], "box": [268, 294, 296], "optim": [266, 268, 283, 289, 293, 295, 297, 300, 301, 304], "algorithm": [268, 299, 304], "get": [267, 268], "local": [], "colab": [], "first": 267, "script": 267, "conclus": [270, 291, 293, 294, 295, 296], "discret": [268, 296, 302], "sequenc": [], "us": [267, 268, 275, 276, 277, 278, 279, 282, 289, 293], "function": [268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "toi": [268, 272, 286], "small": [268, 272], "molecul": [268, 272], "contribut": 268, "solver": [266, 268, 289, 290, 293, 295], "comput": 270, "energi": 270, "singl": 270, "python": [270, 276, 279, 296], "prerequisit": [106, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 295], "set": [270, 275], "up": 270, "folder": [270, 275], "download": [270, 275], "pdb": 270, "repair": [270, 277, 278], "what": [270, 290, 293], "other": [268, 270, 272, 279], "pars": 270, "wildtyp": 270, "defin": [270, 289, 290, 291, 296], "s": [270, 296], "sasa": [270, 276], "score": 270, "rapid": 271, "stabil": [271, 276, 278, 289], "predict": 271, "how": [271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 292, 297, 298, 301, 302, 303, 304], "warn": 271, "further": 271, "read": [271, 294], "all": [272, 275, 291], "about": [273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 290, 297, 298, 301, 302, 303, 304], "drd3": 275, "dock": 275, "tdc": [275, 282], "autodock": [106, 275], "vina": [106, 275], "add": [275, 296], "binari": 275, "path": [275, 296], "adfr": [106, 275], "suit": [106, 275], "prepare_receptor": 275, "poli__lambo": [106, 275, 282], "from": [275, 282], "sure": 275, "you": [275, 277, 278, 294], "re": 275, "rfp": 276, "lambo": [276, 279], "solvent": 277, "access": [277, 282], "we": [277, 278], "can": [277, 278], "penal": 279, "logp": [279, 280], "keyword": 279, "argument": 279, "log": [280, 291], "solubl": 280, "quantit": 281, "estim": 281, "druglik": 281, "qed": 281, "synthet": 282, "jump": 283, "super": 283, "mario": 283, "bro": 283, "therapeut": 284, "data": 284, "common": 284, "oracl": 284, "name": 285, "see": [285, 297, 302], "also": 285, "continu": 286, "low": 286, "intrins": 286, "dimension": 286, "white": 287, "nois": 287, "observ": [288, 291], "isol": [288, 294], "process": 288, "random": [289, 303], "mrogu": [], "randommut": [266, 289, 290], "check": 289, "result": 289, "poli_baselin": 290, "an": [266, 290, 291, 295, 296], "abstract": [266, 290, 291], "candid": 290, "exampl": [266, 290, 291, 296], "want": 291, "more": [291, 294, 296, 297, 302], "complex": 291, "instanc": [291, 295], "simpl": 291, "initi": 291, "put": 291, "togeth": 291, "coupl": 291, "queri": 291, "dive": 292, "deeper": 292, "doe": 292, "work": [268, 292], "under": 292, "hood": 292, "content": [292, 293], "usual": 293, "develop": 293, "loop": 293, "identifi": 293, "own": 293, "Is": 295, "factori": 296, "entir": 296, "need": 296, "where": 296, "thi": 296, "call": 296, "cma": 298, "es": 298, "graph": 299, "genet": 299, "latent": 300, "space": 300, "bayesian": [297, 300, 301], "nsga": 302, "2": 302, "inner_rasp": [76, 77, 78, 79, 80, 81], "prismdata": 77, "cavity_model": 78, "helper": 79, "visual": 81, "load_model": 82, "rasp_interfac": 83, "test_budget_exhaust": 241, "test_chemistry_object": 243, "test_foldx": 245, "test_rasp": 247, "test_instancing_of_toy_continuous_problem": 254, "test_foldx_interfac": 260, "test_protein_util": 261, "align": [33, 34], "is_align": 34, "gfp_gp": 152, "test_basic_loop_without_cr": 248, "test_force_isol": 249, "librari": 268, "baselin": [266, 267], "mroug": 289, "test_foldx_rfp_lambo": 246, "test_passing_array_of_str": 250, "rfp_foldx_stability_and_sasa": [180, 181], "templat": 304, "line": 301, "when": 294, "have": 294, "right": 294, "run_pipelin": 80, "cite": 268, "relev": 268}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["_autosummary/poli", "_autosummary/poli.core", "_autosummary/poli.core.abstract_black_box", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox", "_autosummary/poli.core.abstract_problem_factory", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory", "_autosummary/poli.core.chemistry", "_autosummary/poli.core.chemistry.tdc_black_box", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox", "_autosummary/poli.core.exceptions", "_autosummary/poli.core.exceptions.BudgetExhaustedException", "_autosummary/poli.core.exceptions.PoliException", "_autosummary/poli.core.multi_objective_black_box", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "_autosummary/poli.core.problem_setup_information", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation", "_autosummary/poli.core.proteins", "_autosummary/poli.core.proteins.foldx_black_box", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox", "_autosummary/poli.core.registry", "_autosummary/poli.core.registry.delete_observer_run_script", "_autosummary/poli.core.registry.delete_problem", "_autosummary/poli.core.registry.get_problem_factories", "_autosummary/poli.core.registry.get_problems", "_autosummary/poli.core.registry.register_problem", "_autosummary/poli.core.registry.register_problem_from_repository", "_autosummary/poli.core.registry.set_observer", "_autosummary/poli.core.registry.set_observer_run_script", "_autosummary/poli.core.util", "_autosummary/poli.core.util.abstract_observer", "_autosummary/poli.core.util.abstract_observer.AbstractObserver", "_autosummary/poli.core.util.alignment", "_autosummary/poli.core.util.alignment.is_aligned", "_autosummary/poli.core.util.batch", "_autosummary/poli.core.util.batch.batch_input", "_autosummary/poli.core.util.batch.batch_input.batched", "_autosummary/poli.core.util.chemistry", "_autosummary/poli.core.util.chemistry.string_to_molecule", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "_autosummary/poli.core.util.external_observer", "_autosummary/poli.core.util.external_observer.ExternalObserver", "_autosummary/poli.core.util.files", "_autosummary/poli.core.util.files.download_files_from_github", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag", "_autosummary/poli.core.util.files.integrity", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath", "_autosummary/poli.core.util.inter_process_communication", "_autosummary/poli.core.util.inter_process_communication.process_wrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection", "_autosummary/poli.core.util.objective_management", "_autosummary/poli.core.util.objective_management.make_run_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script", "_autosummary/poli.core.util.observer_wrapper", "_autosummary/poli.core.util.observer_wrapper.start_observer_process", "_autosummary/poli.core.util.proteins", "_autosummary/poli.core.util.proteins.defaults", "_autosummary/poli.core.util.proteins.foldx", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface", "_autosummary/poli.core.util.proteins.mutations", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "_autosummary/poli.core.util.proteins.pdb_parsing", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "_autosummary/poli.core.util.proteins.rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization", "_autosummary/poli.core.util.proteins.rasp.load_models", "_autosummary/poli.core.util.proteins.rasp.rasp_interface", "_autosummary/poli.core.util.seeding", "_autosummary/poli.core.util.seeding.seeding", "_autosummary/poli.core.util.seeding.seeding.seed_numpy", "_autosummary/poli.core.util.seeding.seeding.seed_python", "_autosummary/poli.objective", "_autosummary/poli.objective.dynamically_instantiate", "_autosummary/poli.objective.parse_factory_kwargs", "_autosummary/poli.objective.run", "_autosummary/poli.objective_factory", "_autosummary/poli.objective_factory.ExternalBlackBox", "_autosummary/poli.objective_factory.create", "_autosummary/poli.objective_factory.load_config", "_autosummary/poli.objective_factory.start", "_autosummary/poli.objective_repository", "_autosummary/poli.objective_repository.aloha", "_autosummary/poli.objective_repository.aloha.register", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory", "_autosummary/poli.objective_repository.dockstring", "_autosummary/poli.objective_repository.dockstring.register", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory", "_autosummary/poli.objective_repository.drd3_docking", "_autosummary/poli.objective_repository.drd3_docking.register", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config", "_autosummary/poli.objective_repository.foldx_sasa", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils", "_autosummary/poli.objective_repository.foldx_sasa.register", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "_autosummary/poli.objective_repository.foldx_stability", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils", "_autosummary/poli.objective_repository.foldx_stability.register", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "_autosummary/poli.objective_repository.foldx_stability_and_sasa", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "_autosummary/poli.objective_repository.gfp_cbas", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp", "_autosummary/poli.objective_repository.gfp_cbas.make_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "_autosummary/poli.objective_repository.gfp_cbas.register", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "_autosummary/poli.objective_repository.gfp_select", "_autosummary/poli.objective_repository.gfp_select.register", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "_autosummary/poli.objective_repository.penalized_logp_lambo", "_autosummary/poli.objective_repository.penalized_logp_lambo.register", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "_autosummary/poli.objective_repository.rasp", "_autosummary/poli.objective_repository.rasp.register", "_autosummary/poli.objective_repository.rdkit_logp", "_autosummary/poli.objective_repository.rdkit_logp.register", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "_autosummary/poli.objective_repository.rdkit_qed", "_autosummary/poli.objective_repository.rdkit_qed.register", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.sa_tdc", "_autosummary/poli.objective_repository.sa_tdc.register", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory", "_autosummary/poli.objective_repository.super_mario_bros", "_autosummary/poli.objective_repository.super_mario_bros.level_utils", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized", "_autosummary/poli.objective_repository.super_mario_bros.model", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model", "_autosummary/poli.objective_repository.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "_autosummary/poli.objective_repository.toy_continuous_problem.register", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "_autosummary/poli.objective_repository.white_noise", "_autosummary/poli.objective_repository.white_noise.register", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "_autosummary/poli.registered_objectives", "_autosummary/poli.tests", "_autosummary/poli.tests.docs_examples", "_autosummary/poli.tests.docs_examples.test_objective_functions", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "_autosummary/poli.tests.registry", "_autosummary/poli.tests.registry.basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion", "_autosummary/poli.tests.registry.chemistry", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives", "_autosummary/poli.tests.registry.proteins", "_autosummary/poli.tests.registry.proteins.test_foldx", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo", "_autosummary/poli.tests.registry.proteins.test_rasp", "_autosummary/poli.tests.registry.test_basic_loop_without_create", "_autosummary/poli.tests.registry.test_force_isolation", "_autosummary/poli.tests.registry.test_passing_array_of_strings", "_autosummary/poli.tests.registry.toy_continuous_problems", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "_autosummary/poli.tests.test_minimal_working_example", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example", "_autosummary/poli.tests.test_seeding", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise", "_autosummary/poli.tests.util", "_autosummary/poli.tests.util.test_foldx_interface", "_autosummary/poli.tests.util.test_protein_utilities", "_templates/custom-module-template", "api", "bibliography", "contributing/a_new_problem", "contributing/a_new_solver", "getting_started/getting_started", "index", "understanding_foldx/00-installing-foldx", "understanding_foldx/01-single-mutation-using-foldx/index", "using_poli/objective_repository/RaSP", "using_poli/objective_repository/all_objectives", "using_poli/objective_repository/aloha", "using_poli/objective_repository/dockstring", "using_poli/objective_repository/drd3_docking", "using_poli/objective_repository/foldx_rfp_lambo", "using_poli/objective_repository/foldx_sasa", "using_poli/objective_repository/foldx_stability", "using_poli/objective_repository/penalized_logp_lambo", "using_poli/objective_repository/rdkit_logp", "using_poli/objective_repository/rdkit_qed", "using_poli/objective_repository/sa_tdc", "using_poli/objective_repository/super_mario_bros", "using_poli/objective_repository/tdc_oracles", "using_poli/objective_repository/template", "using_poli/objective_repository/toy_continuous_problems", "using_poli/objective_repository/white_noise", "using_poli/observers/registering_an_observer", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability", "using_poli/the_basics/defining_a_problem_solver", "using_poli/the_basics/defining_an_observer", "using_poli/the_basics/diving_deeper", "using_poli/the_basics/intro_to_poli", "using_poli/the_basics/isolation", "using_poli/the_basics/optimizing_an_objective_function", "using_poli/the_basics/registering_an_objective_function", "using_poli_baselines/bayesian_optimization", "using_poli_baselines/cma_es", "using_poli_baselines/graph_ga", "using_poli_baselines/latent_space_bo", "using_poli_baselines/line_bayesian_optimization", "using_poli_baselines/nsga_2", "using_poli_baselines/random_mutations", "using_poli_baselines/template"], "filenames": ["_autosummary/poli.rst", "_autosummary/poli.core.rst", "_autosummary/poli.core.abstract_black_box.rst", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox.rst", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox.rst", "_autosummary/poli.core.abstract_problem_factory.rst", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory.rst", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.rst", "_autosummary/poli.core.chemistry.rst", "_autosummary/poli.core.chemistry.tdc_black_box.rst", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox.rst", "_autosummary/poli.core.exceptions.rst", "_autosummary/poli.core.exceptions.BudgetExhaustedException.rst", "_autosummary/poli.core.exceptions.PoliException.rst", "_autosummary/poli.core.multi_objective_black_box.rst", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.rst", "_autosummary/poli.core.problem_setup_information.rst", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.rst", "_autosummary/poli.core.proteins.rst", "_autosummary/poli.core.proteins.foldx_black_box.rst", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.rst", "_autosummary/poli.core.registry.rst", "_autosummary/poli.core.registry.delete_observer_run_script.rst", "_autosummary/poli.core.registry.delete_problem.rst", "_autosummary/poli.core.registry.get_problem_factories.rst", "_autosummary/poli.core.registry.get_problems.rst", "_autosummary/poli.core.registry.register_problem.rst", "_autosummary/poli.core.registry.register_problem_from_repository.rst", "_autosummary/poli.core.registry.set_observer.rst", "_autosummary/poli.core.registry.set_observer_run_script.rst", "_autosummary/poli.core.util.rst", "_autosummary/poli.core.util.abstract_observer.rst", "_autosummary/poli.core.util.abstract_observer.AbstractObserver.rst", "_autosummary/poli.core.util.alignment.rst", "_autosummary/poli.core.util.alignment.is_aligned.rst", "_autosummary/poli.core.util.batch.rst", "_autosummary/poli.core.util.batch.batch_input.rst", "_autosummary/poli.core.util.batch.batch_input.batched.rst", "_autosummary/poli.core.util.chemistry.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies.rst", "_autosummary/poli.core.util.external_observer.rst", "_autosummary/poli.core.util.external_observer.ExternalObserver.rst", "_autosummary/poli.core.util.files.rst", "_autosummary/poli.core.util.files.download_files_from_github.rst", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.rst", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.rst", "_autosummary/poli.core.util.files.integrity.rst", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath.rst", "_autosummary/poli.core.util.inter_process_communication.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.rst", "_autosummary/poli.core.util.objective_management.rst", "_autosummary/poli.core.util.objective_management.make_run_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.rst", "_autosummary/poli.core.util.observer_wrapper.rst", "_autosummary/poli.core.util.observer_wrapper.start_observer_process.rst", "_autosummary/poli.core.util.proteins.rst", "_autosummary/poli.core.util.proteins.defaults.rst", "_autosummary/poli.core.util.proteins.foldx.rst", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface.rst", "_autosummary/poli.core.util.proteins.mutations.rst", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings.rst", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant.rst", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure.rst", "_autosummary/poli.core.util.proteins.rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization.rst", "_autosummary/poli.core.util.proteins.rasp.load_models.rst", "_autosummary/poli.core.util.proteins.rasp.rasp_interface.rst", "_autosummary/poli.core.util.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.seed_numpy.rst", "_autosummary/poli.core.util.seeding.seeding.seed_python.rst", "_autosummary/poli.objective.rst", "_autosummary/poli.objective.dynamically_instantiate.rst", "_autosummary/poli.objective.parse_factory_kwargs.rst", "_autosummary/poli.objective.run.rst", "_autosummary/poli.objective_factory.rst", "_autosummary/poli.objective_factory.ExternalBlackBox.rst", "_autosummary/poli.objective_factory.create.rst", "_autosummary/poli.objective_factory.load_config.rst", "_autosummary/poli.objective_factory.start.rst", "_autosummary/poli.objective_repository.rst", "_autosummary/poli.objective_repository.aloha.rst", "_autosummary/poli.objective_repository.aloha.register.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.rst", "_autosummary/poli.objective_repository.dockstring.rst", "_autosummary/poli.objective_repository.dockstring.register.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.rst", "_autosummary/poli.objective_repository.drd3_docking.rst", "_autosummary/poli.objective_repository.drd3_docking.register.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.rst", "_autosummary/poli.objective_repository.foldx_sasa.rst", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability.rst", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_stability.register.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_cbas.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_select.rst", "_autosummary/poli.objective_repository.gfp_select.register.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.rst", "_autosummary/poli.objective_repository.rasp.rst", "_autosummary/poli.objective_repository.rasp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.rst", "_autosummary/poli.objective_repository.rdkit_qed.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.sa_tdc.rst", "_autosummary/poli.objective_repository.sa_tdc.register.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory.rst", "_autosummary/poli.objective_repository.super_mario_bros.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem.rst", "_autosummary/poli.objective_repository.white_noise.rst", "_autosummary/poli.objective_repository.white_noise.register.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory.rst", "_autosummary/poli.registered_objectives.rst", "_autosummary/poli.tests.rst", "_autosummary/poli.tests.docs_examples.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example.rst", "_autosummary/poli.tests.registry.rst", "_autosummary/poli.tests.registry.basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise.rst", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion.rst", "_autosummary/poli.tests.registry.chemistry.rst", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives.rst", "_autosummary/poli.tests.registry.proteins.rst", "_autosummary/poli.tests.registry.proteins.test_foldx.rst", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo.rst", "_autosummary/poli.tests.registry.proteins.test_rasp.rst", "_autosummary/poli.tests.registry.test_basic_loop_without_create.rst", "_autosummary/poli.tests.registry.test_force_isolation.rst", "_autosummary/poli.tests.registry.test_passing_array_of_strings.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems.rst", "_autosummary/poli.tests.test_minimal_working_example.rst", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.rst", "_autosummary/poli.tests.test_seeding.rst", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise.rst", "_autosummary/poli.tests.util.rst", "_autosummary/poli.tests.util.test_foldx_interface.rst", "_autosummary/poli.tests.util.test_protein_utilities.rst", "_templates/custom-module-template.rst", "api.rst", "bibliography.md", "contributing/a_new_problem.md", "contributing/a_new_solver.md", "getting_started/getting_started.md", "index.md", "understanding_foldx/00-installing-foldx.md", "understanding_foldx/01-single-mutation-using-foldx/index.ipynb", "using_poli/objective_repository/RaSP.md", "using_poli/objective_repository/all_objectives.md", "using_poli/objective_repository/aloha.md", "using_poli/objective_repository/dockstring.md", "using_poli/objective_repository/drd3_docking.md", "using_poli/objective_repository/foldx_rfp_lambo.md", "using_poli/objective_repository/foldx_sasa.md", "using_poli/objective_repository/foldx_stability.md", "using_poli/objective_repository/penalized_logp_lambo.md", "using_poli/objective_repository/rdkit_logp.md", "using_poli/objective_repository/rdkit_qed.md", "using_poli/objective_repository/sa_tdc.md", "using_poli/objective_repository/super_mario_bros.md", "using_poli/objective_repository/tdc_oracles.md", "using_poli/objective_repository/template.md", "using_poli/objective_repository/toy_continuous_problems.md", "using_poli/objective_repository/white_noise.md", "using_poli/observers/registering_an_observer.md", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb", "using_poli/the_basics/defining_a_problem_solver.md", "using_poli/the_basics/defining_an_observer.ipynb", "using_poli/the_basics/diving_deeper.md", "using_poli/the_basics/intro_to_poli.ipynb", "using_poli/the_basics/isolation.ipynb", "using_poli/the_basics/optimizing_an_objective_function.md", "using_poli/the_basics/registering_an_objective_function.md", "using_poli_baselines/bayesian_optimization.md", "using_poli_baselines/cma_es.md", "using_poli_baselines/graph_ga.md", "using_poli_baselines/latent_space_bo.md", "using_poli_baselines/line_bayesian_optimization.md", "using_poli_baselines/nsga_2.md", "using_poli_baselines/random_mutations.md", "using_poli_baselines/template.md"], "titles": ["poli", "poli.core", "poli.core.abstract_black_box", "poli.core.abstract_black_box.AbstractBlackBox", "poli.core.abstract_black_box.NegativeBlackBox", "poli.core.abstract_problem_factory", "poli.core.abstract_problem_factory.AbstractProblemFactory", "poli.core.abstract_problem_factory.MetaProblemFactory", "poli.core.chemistry", "poli.core.chemistry.tdc_black_box", "poli.core.chemistry.tdc_black_box.TDCBlackBox", "poli.core.exceptions", "poli.core.exceptions.BudgetExhaustedException", "poli.core.exceptions.PoliException", "poli.core.multi_objective_black_box", "poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "poli.core.problem_setup_information", "poli.core.problem_setup_information.ProblemSetupInformation", "poli.core.proteins", "poli.core.proteins.foldx_black_box", "poli.core.proteins.foldx_black_box.FoldxBlackBox", "poli.core.registry", "poli.core.registry.delete_observer_run_script", "poli.core.registry.delete_problem", "poli.core.registry.get_problem_factories", "poli.core.registry.get_problems", "poli.core.registry.register_problem", "poli.core.registry.register_problem_from_repository", "poli.core.registry.set_observer", "poli.core.registry.set_observer_run_script", "poli.core.util", "poli.core.util.abstract_observer", "poli.core.util.abstract_observer.AbstractObserver", "poli.core.util.alignment", "poli.core.util.alignment.is_aligned", "poli.core.util.batch", "poli.core.util.batch.batch_input", "poli.core.util.batch.batch_input.batched", "poli.core.util.chemistry", "poli.core.util.chemistry.string_to_molecule", "poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "poli.core.util.external_observer", "poli.core.util.external_observer.ExternalObserver", "poli.core.util.files", "poli.core.util.files.download_files_from_github", "poli.core.util.files.download_files_from_github.download_file_from_github_repository", "poli.core.util.files.download_files_from_github.get_sha_for_tag", "poli.core.util.files.integrity", "poli.core.util.files.integrity.compute_md5_from_filepath", "poli.core.util.inter_process_communication", "poli.core.util.inter_process_communication.process_wrapper", "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "poli.core.util.inter_process_communication.process_wrapper.get_connection", "poli.core.util.objective_management", "poli.core.util.objective_management.make_run_script", "poli.core.util.objective_management.make_run_script.make_observer_script", "poli.core.util.objective_management.make_run_script.make_run_script", "poli.core.util.observer_wrapper", "poli.core.util.observer_wrapper.start_observer_process", "poli.core.util.proteins", "poli.core.util.proteins.defaults", "poli.core.util.proteins.foldx", "poli.core.util.proteins.foldx.FoldxInterface", "poli.core.util.proteins.mutations", "poli.core.util.proteins.mutations.edits_between_strings", "poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "poli.core.util.proteins.pdb_parsing", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "poli.core.util.proteins.rasp", "poli.core.util.proteins.rasp.inner_rasp", "poli.core.util.proteins.rasp.inner_rasp.PrismData", "poli.core.util.proteins.rasp.inner_rasp.cavity_model", "poli.core.util.proteins.rasp.inner_rasp.helpers", "poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "poli.core.util.proteins.rasp.inner_rasp.visualization", "poli.core.util.proteins.rasp.load_models", "poli.core.util.proteins.rasp.rasp_interface", "poli.core.util.seeding", "poli.core.util.seeding.seeding", "poli.core.util.seeding.seeding.seed_numpy", "poli.core.util.seeding.seeding.seed_python", "poli.objective", "poli.objective.dynamically_instantiate", "poli.objective.parse_factory_kwargs", "poli.objective.run", "poli.objective_factory", "poli.objective_factory.ExternalBlackBox", "poli.objective_factory.create", "poli.objective_factory.load_config", "poli.objective_factory.start", "poli.objective_repository", "poli.objective_repository.aloha", "poli.objective_repository.aloha.register", "poli.objective_repository.aloha.register.AlohaBlackBox", "poli.objective_repository.aloha.register.AlohaProblemFactory", "poli.objective_repository.dockstring", "poli.objective_repository.dockstring.register", "poli.objective_repository.dockstring.register.DockstringBlackBox", "poli.objective_repository.dockstring.register.DockstringProblemFactory", "poli.objective_repository.drd3_docking", "poli.objective_repository.drd3_docking.register", "poli.objective_repository.drd3_docking.register.DRD3BlackBox", "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "poli.objective_repository.foldx_rfp_lambo", "poli.objective_repository.foldx_rfp_lambo.register", "poli.objective_repository.foldx_rfp_lambo.register.Config", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "poli.objective_repository.foldx_rfp_lambo.register.get_config", "poli.objective_repository.foldx_sasa", "poli.objective_repository.foldx_sasa.foldx_utils", "poli.objective_repository.foldx_sasa.register", "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "poli.objective_repository.foldx_stability", "poli.objective_repository.foldx_stability.foldx_utils", "poli.objective_repository.foldx_stability.register", "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "poli.objective_repository.foldx_stability_and_sasa", "poli.objective_repository.foldx_stability_and_sasa.register", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "poli.objective_repository.gfp_cbas", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "poli.objective_repository.gfp_cbas.cbas_wrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "poli.objective_repository.gfp_cbas.gfp_gp", "poli.objective_repository.gfp_cbas.make_vae", "poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "poli.objective_repository.gfp_cbas.make_vae.build_vae", "poli.objective_repository.gfp_cbas.make_vae.identity_loss", "poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "poli.objective_repository.gfp_cbas.register", "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "poli.objective_repository.gfp_select", "poli.objective_repository.gfp_select.register", "poli.objective_repository.gfp_select.register.GFPBlackBox", "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "poli.objective_repository.penalized_logp_lambo", "poli.objective_repository.penalized_logp_lambo.register", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "poli.objective_repository.rasp", "poli.objective_repository.rasp.register", "poli.objective_repository.rdkit_logp", "poli.objective_repository.rdkit_logp.register", "poli.objective_repository.rdkit_logp.register.LogPBlackBox", "poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "poli.objective_repository.rdkit_qed", "poli.objective_repository.rdkit_qed.register", "poli.objective_repository.rdkit_qed.register.QEDBlackBox", "poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "poli.objective_repository.rfp_foldx_stability_and_sasa", "poli.objective_repository.rfp_foldx_stability_and_sasa.register", "poli.objective_repository.sa_tdc", "poli.objective_repository.sa_tdc.register", "poli.objective_repository.sa_tdc.register.SABlackBox", "poli.objective_repository.sa_tdc.register.SAProblemFactory", "poli.objective_repository.super_mario_bros", "poli.objective_repository.super_mario_bros.level_utils", "poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "poli.objective_repository.super_mario_bros.level_utils.clean_level", "poli.objective_repository.super_mario_bros.level_utils.level_to_array", "poli.objective_repository.super_mario_bros.level_utils.level_to_list", "poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "poli.objective_repository.super_mario_bros.level_utils.vectorized", "poli.objective_repository.super_mario_bros.model", "poli.objective_repository.super_mario_bros.model.VAEMario", "poli.objective_repository.super_mario_bros.model.load_example_model", "poli.objective_repository.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.definitions", "poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "poli.objective_repository.toy_continuous_problem.definitions.brown", "poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "poli.objective_repository.toy_continuous_problem.definitions.deb_01", "poli.objective_repository.toy_continuous_problem.definitions.deb_02", "poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "poli.objective_repository.toy_continuous_problem.definitions.easom", "poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "poli.objective_repository.toy_continuous_problem.register", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "poli.objective_repository.white_noise", "poli.objective_repository.white_noise.register", "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "poli.registered_objectives", "poli.tests", "poli.tests.docs_examples", "poli.tests.docs_examples.test_objective_functions", "poli.tests.docs_examples.test_objective_functions.test_aloha_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_qed_example", "poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "poli.tests.registry", "poli.tests.registry.basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "poli.tests.registry.basic_objectives.test_budget_exhaustion", "poli.tests.registry.chemistry", "poli.tests.registry.chemistry.test_chemistry_objectives", "poli.tests.registry.proteins", "poli.tests.registry.proteins.test_foldx", "poli.tests.registry.proteins.test_foldx_rfp_lambo", "poli.tests.registry.proteins.test_rasp", "poli.tests.registry.test_basic_loop_without_create", "poli.tests.registry.test_force_isolation", "poli.tests.registry.test_passing_array_of_strings", "poli.tests.registry.toy_continuous_problems", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "poli.tests.test_minimal_working_example", "poli.tests.test_minimal_working_example.test_minimal_working_example", "poli.tests.test_seeding", "poli.tests.test_seeding.test_seeding_in_white_noise", "poli.tests.util", "poli.tests.util.test_foldx_interface", "poli.tests.util.test_protein_utilities", "<no title>", "API documentation for poli", "References", "Adding a new problem to the repository", "Adding a new optimizer to poli-baselines", "Getting started", "poli \ud83e\uddea: a library of discrete objective functions", "Installing foldx", "Computing the energy of a protein and a single mutation", "Rapid Stability Predictions", "All objective functions", "Aloha objective function", "dockstring", "DRD3 docking (using TDC)", "Protein (RFP) stability and SASA (using foldx,lambo)", "Protein solvent accessibility (using foldx)", "Protein stability (using foldx)", "Penalized logP (using lambo)", "Log-solubility (logP)", "Quantitative Estimate of Druglikeness (QED)", "Synthetic Accessibility (using TDC)", "Optimizing jumps in Super Mario Bros", "Therapeutics Data Commons\u2019 oracles", "Objective function name", "Toy continuous objective functions", "White Noise objective function", "Registering and running observers in isolated processes", "Optimizing protein stability using random mutations", "Defining a problem solver in poli_baselines", "Defining an observer", "Diving deeper: how does poli work under the hood?", "What is poli?", "Isolating black box objective functions", "Optimizing an objective function", "Registering an objective function in poli", "Bayesian Optimization", "CMA-ES", "Graph Genetic Algorithms", "Latent Space Bayesian Optimization", "Line Bayesian Optimization", "Discrete NSGA-2", "Random mutations", "Template: optimization algorithm"], "terms": {"librari": [0, 32, 37, 200, 270, 291, 293, 294], "discret": [0, 99, 100, 101, 131, 266, 289, 290, 293, 295, 297], "black": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 274, 280, 281, 289, 290, 291, 293, 295, 297, 302], "box": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 273, 274, 280, 281, 286, 287, 289, 290, 291, 293, 295, 297, 302], "object": [0, 2, 3, 4, 14, 15, 17, 19, 20, 32, 46, 50, 55, 56, 59, 66, 73, 74, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 106, 111, 113, 118, 119, 121, 123, 124, 127, 128, 160, 164, 168, 173, 177, 178, 179, 181, 183, 184, 200, 216, 217, 218, 221, 223, 229, 248, 249, 252, 264, 265, 266, 267, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 302], "function": [0, 2, 3, 4, 9, 14, 15, 21, 22, 23, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 43, 44, 48, 49, 51, 53, 54, 56, 58, 61, 62, 67, 70, 71, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 100, 102, 103, 104, 106, 108, 111, 113, 115, 116, 119, 121, 124, 128, 133, 153, 160, 164, 167, 168, 173, 174, 177, 178, 179, 184, 187, 196, 199, 200, 216, 217, 218, 220, 221, 223, 224, 229, 238, 248, 249, 252, 255, 257, 264, 265, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 301, 302], "modul": [0, 1, 2, 5, 8, 18, 19, 21, 30, 33, 35, 36, 38, 47, 48, 51, 53, 54, 57, 58, 63, 64, 65, 67, 71, 84, 97, 98, 102, 103, 106, 110, 116, 121, 126, 130, 150, 152, 162, 166, 167, 170, 171, 172, 176, 180, 182, 186, 199, 222, 227, 228, 229, 236, 237, 242, 244, 248, 249, 251, 257, 259, 262, 289, 294], "class": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 28, 31, 32, 45, 46, 54, 55, 65, 66, 92, 93, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 113, 114, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 132, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 196, 197, 217, 218, 219, 220, 221, 223, 224, 225, 265, 266, 290, 291, 296], "util": [1, 21, 115, 124, 152, 187, 291, 294, 297], "insid": [1, 11, 27, 89, 97, 106, 173, 178, 265, 267, 268, 270, 271, 274, 275, 286, 289, 293, 294, 296], "thi": [2, 4, 5, 6, 14, 15, 19, 21, 22, 23, 26, 27, 28, 29, 32, 36, 37, 43, 44, 48, 49, 51, 55, 56, 58, 62, 64, 65, 66, 67, 70, 71, 89, 90, 91, 94, 96, 99, 103, 106, 109, 118, 123, 127, 148, 152, 167, 171, 173, 177, 181, 200, 216, 217, 218, 223, 229, 248, 249, 252, 257, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301, 302, 303, 304], "implement": [2, 4, 5, 8, 9, 14, 15, 16, 18, 19, 36, 65, 100, 103, 104, 107, 119, 124, 128, 131, 148, 154, 166, 167, 171, 183, 184, 218, 266, 268, 272, 274, 276, 279, 286, 289, 290, 293, 294, 295, 296, 297, 298, 302], "abstract": [2, 3, 5, 6, 31, 32, 265, 289, 296], "from": [2, 10, 20, 23, 25, 27, 37, 43, 44, 47, 48, 49, 50, 51, 52, 65, 66, 70, 89, 90, 96, 106, 119, 124, 128, 134, 139, 142, 155, 171, 190, 193, 198, 200, 206, 215, 256, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "which": [2, 3, 7, 16, 20, 45, 52, 66, 70, 74, 95, 103, 168, 177, 179, 217, 218, 224, 265, 266, 270, 271, 274, 275, 276, 279, 282, 286, 289, 290, 291, 293, 294, 295, 296, 297], "all": [2, 92, 94, 97, 99, 100, 101, 106, 148, 200, 224, 229, 265, 266, 267, 270, 271, 273, 274, 281, 289, 290, 293, 296], "should": [2, 55, 106, 265, 266, 267, 269, 273, 275, 280, 281, 286, 287, 289, 290, 291, 294, 295, 296], "inherit": [2, 10, 15, 266, 289, 290, 291, 296], "info": [3, 4, 10, 15, 20, 93, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 266, 289, 290, 291, 293, 294, 296, 302], "problemsetupinform": [3, 4, 10, 15, 20, 32, 93, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 276, 291, 296], "batch_siz": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 144, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294, 296, 302], "option": [3, 4, 10, 15, 17, 20, 22, 26, 27, 28, 29, 40, 42, 43, 44, 46, 49, 52, 59, 60, 66, 68, 69, 72, 73, 74, 86, 87, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 197, 218, 221, 224], "int": [3, 4, 10, 15, 17, 20, 32, 37, 56, 62, 68, 69, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 149, 160, 164, 168, 174, 178, 184, 188, 189, 192, 194, 197, 218, 221, 224, 265, 266, 290, 291, 295, 296], "none": [3, 4, 10, 15, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 59, 60, 66, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 143, 145, 147, 160, 161, 164, 168, 174, 178, 184, 197, 218, 221, 224, 265, 266, 273, 274, 280, 281, 285, 286, 287, 289, 291, 295, 296], "parallel": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294], "bool": [3, 4, 10, 17, 20, 25, 26, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 140, 160, 164, 168, 174, 178, 184, 216, 218, 224, 265, 279, 295], "fals": [3, 4, 10, 17, 20, 25, 26, 27, 41, 42, 43, 44, 49, 66, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 139, 140, 146, 160, 164, 168, 174, 178, 184, 193, 218, 224, 265, 289, 291, 293, 295], "num_work": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294], "evaluation_budget": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294], "inf": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "base": [3, 6, 13, 32, 55, 106, 154, 267, 268, 270, 272, 275, 289, 293, 296, 302], "optim": [3, 17, 32, 65, 110, 166, 167, 199, 200, 217, 220, 252, 264, 269, 270, 272, 286, 290, 291, 296, 302, 303], "problem": [3, 4, 5, 6, 10, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 34, 57, 58, 60, 93, 99, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 173, 174, 177, 178, 179, 180, 184, 185, 186, 200, 217, 218, 222, 223, 224, 252, 267, 270, 276, 291, 293, 302], "paramet": [3, 4, 6, 10, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 37, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 67, 68, 69, 70, 72, 73, 74, 86, 87, 89, 90, 91, 93, 94, 96, 100, 101, 104, 105, 108, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224], "The": [3, 4, 10, 15, 17, 19, 20, 22, 23, 26, 27, 28, 29, 37, 46, 49, 50, 52, 55, 56, 59, 60, 62, 65, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 104, 106, 108, 113, 118, 119, 123, 124, 127, 128, 154, 160, 164, 166, 173, 174, 177, 178, 179, 181, 184, 214, 215, 217, 218, 223, 224, 266, 268, 270, 271, 272, 274, 277, 278, 279, 289, 290, 294, 295, 296, 302], "setup": [3, 4, 6, 10, 15, 16, 20, 46, 62, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224, 275, 276, 279, 282, 289, 294], "inform": [3, 4, 6, 10, 15, 16, 20, 32, 46, 62, 93, 94, 96, 100, 101, 103, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 171, 174, 178, 179, 184, 185, 218, 221, 224, 264, 265, 270, 291, 296], "provid": [3, 15, 46, 92, 109, 119, 124, 178, 268, 269, 270, 291, 293], "detail": [3, 9, 67, 90, 91, 270, 289, 293], "about": [3, 10, 27, 90, 91, 93, 94, 96, 265, 268, 269, 272, 289, 293, 296], "batch": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "size": [3, 4, 10, 15, 20, 37, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296, 298, 302], "evalu": [3, 4, 10, 14, 15, 20, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 179, 184, 218, 224, 266, 267, 279, 289, 290, 291, 294, 296], "default": [3, 4, 10, 15, 17, 20, 22, 27, 28, 29, 46, 49, 52, 66, 68, 69, 72, 73, 74, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 265, 266, 276, 277, 278, 286, 296, 297, 301], "flag": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218], "indic": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 134, 135, 160, 164, 174, 178, 184, 218, 266, 290], "whether": [3, 4, 10, 17, 20, 25, 26, 49, 72, 73, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 249, 257, 270, 279, 280, 281, 291, 293, 296], "number": [3, 4, 10, 20, 37, 56, 62, 84, 85, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 266, 272, 286, 290, 293, 295], "worker": [3, 4, 10, 20, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "us": [3, 4, 7, 10, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 51, 55, 56, 60, 64, 65, 66, 88, 89, 94, 96, 99, 100, 104, 106, 107, 108, 113, 119, 123, 124, 126, 128, 138, 139, 140, 160, 164, 166, 167, 168, 171, 172, 173, 174, 176, 177, 178, 180, 183, 184, 217, 218, 223, 248, 252, 264, 265, 266, 269, 270, 271, 272, 274, 280, 281, 286, 288, 290, 291, 294, 295, 296, 297, 298, 301, 302], "half": [3, 4, 94, 113, 160, 164, 218, 224], "avail": [3, 4, 24, 25, 94, 106, 113, 118, 123, 127, 160, 164, 181, 218, 224, 229, 267, 270, 272, 276, 277, 278, 279, 286, 289, 293, 295, 296], "cpu": [3, 4, 94, 113, 160, 164, 218, 224], "maximum": [3, 4, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296], "allow": [3, 4, 7, 19, 20, 94, 113, 118, 119, 123, 124, 127, 128, 160, 164, 173, 177, 181, 217, 218, 265, 266, 269, 270, 286, 290, 293, 295, 296], "float": [3, 4, 20, 113, 119, 124, 128, 160, 164, 174, 177, 178, 184, 212, 218, 224, 265, 268, 295], "type": [3, 10, 15, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 55, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 95, 100, 104, 108, 136, 141, 174, 178, 218, 265, 270, 294, 296], "observ": [3, 21, 22, 28, 29, 30, 31, 32, 45, 46, 57, 58, 59, 61, 62, 89, 94, 96, 139, 268, 289, 294, 295, 296], "record": 3, "dure": [3, 62, 265, 286], "abstractobserv": [3, 28, 59, 94, 96, 291], "observer_info": 3, "given": [3, 15, 22, 43, 44, 56, 59, 60, 66, 69, 74, 103, 104, 105, 124, 136, 137, 138, 198, 266, 267, 271, 274, 290], "after": [3, 28, 32, 106, 265, 266, 270, 275, 276, 279, 282, 289, 290, 293, 296], "initi": [3, 4, 10, 15, 17, 20, 32, 46, 55, 62, 66, 93, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 266, 270, 289, 290, 293, 296, 302], "set_observ": [3, 288], "set": [3, 26, 28, 29, 32, 55, 74, 106, 138, 140, 146, 152, 174, 178, 265, 266, 271, 274, 290, 291, 293], "reset_evaluation_budget": 3, "reset": [3, 96], "budget": [3, 10, 12, 20, 96, 119, 124, 128], "made": 3, "0": [3, 66, 68, 119, 124, 128, 156, 177, 193, 212, 266, 267, 268, 270, 271, 277, 278, 280, 281, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301], "__call__": [3, 4], "x": [3, 4, 15, 32, 46, 94, 96, 100, 104, 106, 124, 140, 145, 146, 174, 178, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 218, 224, 265, 266, 267, 271, 273, 274, 275, 280, 281, 285, 286, 287, 289, 290, 291, 296, 297], "context": [3, 15, 32, 46, 96, 100, 104, 124, 174, 178, 218, 224, 265, 291, 296], "input": [3, 10, 15, 22, 29, 34, 36, 94, 100, 104, 108, 124, 174, 178, 184, 218, 224, 265, 267, 268, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 296, 297, 301, 302], "_black_box": [3, 4, 15, 100, 104, 124, 174, 178, 218, 224, 265, 296], "method": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 70, 74, 93, 94, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 138, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 270, 276, 277, 278, 289, 290, 291, 293, 294, 295, 296], "termin": [3, 62, 274, 277, 278, 279, 280, 281, 291, 296], "__enter__": 3, "enter": 3, "manag": [3, 49, 96], "__exit__": 3, "exc_typ": 3, "exc_val": 3, "exc_tb": 3, "exit": 3, "__del__": 3, "destructor": 3, "__neg__": 3, "creat": [3, 6, 20, 26, 27, 28, 49, 55, 57, 58, 59, 60, 92, 96, 101, 105, 109, 120, 129, 173, 177, 179, 185, 186, 248, 265, 266, 267, 268, 269, 270, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 287, 289, 291, 294, 295, 297, 298, 301, 302, 303, 304], "new": [3, 108, 173, 177, 268, 270, 290, 296], "neg": [3, 158, 274, 278], "origin": [3, 4, 66, 67, 70, 131, 215, 268, 270, 289], "one": [3, 143, 178, 192, 264, 265, 266, 268, 270, 271, 272, 276, 289, 290, 293, 301], "__init__": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 93, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 290, 291, 296], "execut": [3, 4, 51, 55, 59, 88, 106, 108, 113, 160, 164, 184, 218, 269, 275], "we": [3, 4, 9, 14, 20, 27, 64, 70, 94, 106, 113, 118, 119, 123, 124, 127, 128, 139, 160, 164, 166, 167, 173, 174, 177, 178, 181, 200, 214, 216, 217, 218, 252, 265, 266, 267, 268, 270, 271, 274, 275, 279, 286, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302], "f": [4, 19, 64, 65, 94, 96, 118, 123, 127, 181, 265, 266, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 302, 303, 304], "abstractblackbox": [4, 10, 15, 94, 96, 113, 160, 164, 218, 265, 266, 289, 290, 291, 296], "A": [4, 17, 20, 24, 25, 26, 28, 37, 40, 41, 42, 43, 44, 60, 64, 66, 68, 69, 70, 72, 73, 90, 96, 99, 100, 101, 106, 110, 116, 118, 119, 123, 124, 126, 127, 128, 168, 174, 178, 180, 181, 182, 186, 196, 197, 199, 218, 220, 222, 224, 264, 267, 268, 270, 271, 272, 273, 277, 278, 291, 296], "wrapper": [4, 9, 93, 106, 110, 131, 148, 173, 177, 182, 268, 272, 302], "negat": 4, "If": [4, 15, 22, 25, 27, 28, 29, 32, 37, 40, 41, 42, 43, 44, 46, 49, 50, 56, 62, 65, 66, 68, 69, 70, 74, 86, 87, 94, 96, 173, 177, 216, 218, 265, 266, 267, 268, 269, 270, 274, 275, 276, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "you": [4, 66, 74, 106, 173, 174, 177, 178, 200, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 295, 296], "construct": [4, 155], "maxim": [4, 200, 215, 216, 266, 286], "minim": [4, 200, 256, 266, 272, 274, 290, 302], "latter": [4, 270], "onli": [4, 9, 25, 96, 131, 139, 148, 209, 213, 214, 265, 266, 267, 270, 271, 274, 275, 276, 278, 279, 282, 286, 289, 290, 295, 296], "differ": [4, 19, 68, 118, 123, 127, 181, 229, 265, 266, 267, 270, 271, 290, 291, 296], "return": [4, 6, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 52, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 94, 95, 96, 101, 105, 120, 124, 129, 136, 137, 138, 141, 143, 156, 157, 168, 173, 174, 177, 178, 179, 185, 191, 194, 222, 223, 224, 265, 266, 273, 274, 276, 277, 278, 280, 281, 287, 289, 290, 294, 296], "instead": [4, 173, 200, 266, 277, 278, 290, 294], "same": [4, 69, 70, 166, 167, 168, 265, 267, 271, 293], "factori": [5, 6, 19, 24, 26, 27, 55, 60, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 105, 109, 111, 118, 119, 120, 121, 123, 124, 127, 129, 173, 177, 179, 181, 185, 217, 223, 265, 268, 289], "defin": [6, 28, 67, 180, 200, 252, 265, 266, 286, 293, 295], "interfac": [6, 65, 92, 268, 294], "instanc": [6, 10, 15, 101, 105, 108, 120, 129, 179, 185, 218, 267, 289, 296, 302], "get_setup_inform": [6, 101, 105, 109, 120, 129, 179, 185, 265, 296], "specifi": [6, 49, 50, 94, 101, 105, 120, 129, 137, 142, 150, 154, 179, 185, 217, 265, 270, 280, 281, 295, 296, 302], "metaclass": 7, "abstractproblemfactori": [7, 24, 26, 60, 265, 294, 296], "overrid": 7, "__repr__": 7, "__str__": 7, "arg": [7, 150, 151, 154, 155, 197, 265, 270, 289, 294], "kwarg": [7, 26, 60, 89, 90, 91, 150, 151, 154, 155, 197, 265, 289, 296], "contain": [8, 10, 16, 18, 21, 37, 51, 58, 60, 64, 67, 68, 69, 71, 89, 90, 91, 95, 134, 135, 152, 221, 229, 265, 267, 270, 277, 278, 296], "relat": [8, 18, 38, 63, 269], "around": [9, 106, 110, 173, 177, 182, 268, 272, 302], "therapeut": [9, 10, 107, 183, 264, 268, 272, 275, 282, 296], "data": [9, 10, 35, 49, 100, 104, 106, 139, 140, 146, 147, 152, 264, 268, 270, 272, 275, 276, 282, 296], "common": [9, 10, 92, 264, 268, 270, 272, 275, 282, 296, 302], "tdc": [9, 10, 106, 107, 182, 183, 184, 268, 272], "oracl": [9, 10, 107, 108, 182, 183, 184, 268, 272, 275, 282], "1": [9, 19, 27, 37, 65, 68, 70, 96, 103, 104, 105, 107, 110, 118, 123, 127, 134, 135, 139, 146, 156, 166, 167, 168, 171, 177, 181, 183, 184, 188, 200, 206, 215, 217, 221, 264, 266, 267, 268, 270, 271, 273, 275, 279, 280, 281, 285, 286, 287, 289, 290, 291, 293, 294, 296, 297, 298, 301, 302], "so": [9, 26, 70, 174, 178, 266, 270, 276, 279, 290, 294, 296], "far": [9, 266, 290], "support": [9, 248, 265, 267, 268, 290, 294], "two": [9, 56, 68, 267, 270, 277, 278, 280, 281, 286, 291, 294, 295, 296, 302], "drd3": [9, 106, 108, 109, 268, 272, 274], "synthet": [9, 182, 183, 184, 185, 268, 272], "access": [9, 49, 66, 106, 116, 119, 120, 126, 128, 129, 180, 183, 184, 185, 264, 265, 268, 270, 272, 275, 286], "see": [9, 43, 44, 67, 90, 91, 99, 106, 173, 177, 200, 217, 220, 223, 265, 267, 270, 271, 274, 276, 289, 293, 294, 296], "document": [9, 168, 267, 268, 270, 289, 294], "our": [9, 265, 266, 270, 272, 274, 277, 278, 289, 290, 291, 295, 296, 297, 298, 302], "more": [9, 67, 119, 124, 128, 220, 221, 265, 267, 270, 271, 289, 293], "refer": [9, 19, 65, 103, 104, 105, 106, 107, 110, 166, 167, 183, 268, 276, 279], "artifici": [9, 107, 183, 200], "intellig": [9, 107, 183], "foundat": [9, 107, 183], "scienc": [9, 107, 183, 264], "huang": [9, 107, 183, 264, 268, 275, 282], "kexin": [9, 264], "tianfan": [9, 264], "fu": [9, 107, 183, 264], "wenhao": [9, 264], "gao": [9, 107, 183, 264, 272], "yue": [9, 264], "zhao": [9, 264], "yusuf": [9, 264], "roohani": [9, 264], "jure": [9, 264], "leskovec": [9, 264], "connor": [9, 264], "w": [9, 64, 107, 183, 192, 197, 264, 268, 270, 275, 291], "colei": [9, 264, 268], "cao": [9, 264], "xiao": [9, 264], "jimeng": [9, 264], "sun": [9, 264], "marinka": [9, 264], "zitnik": [9, 264], "natur": 9, "chemic": [9, 103, 104, 105, 264], "biologi": [9, 106, 118, 123, 127, 181, 264, 275], "18": [9, 107, 183, 264], "10": [9, 37, 103, 104, 105, 107, 171, 183, 264, 297, 298, 301, 302], "octob": 9, "2022": [9, 65, 103, 104, 105, 107, 110, 166, 167, 183, 264, 268, 269, 270, 272, 274, 279, 289], "1033": [9, 107, 183], "36": 9, "http": [9, 37, 48, 49, 65, 67, 103, 104, 105, 106, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 265, 267, 268, 269, 270, 276, 279, 293, 296], "doi": [9, 103, 104, 105, 107, 171, 183, 264], "org": [9, 37, 65, 103, 104, 105, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 270], "1038": [9, 107, 183], "s41589": [9, 107, 183], "022": [9, 107, 183], "01131": [9, 107, 183], "2": [9, 27, 37, 65, 68, 107, 118, 123, 127, 134, 135, 181, 183, 197, 200, 216, 218, 221, 264, 267, 270, 282, 285, 286, 287, 289, 293, 294, 297, 301], "oracle_nam": [10, 108], "str": [10, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 94, 96, 104, 108, 119, 124, 128, 161, 178, 190, 191, 197, 218, 265, 270, 277, 278, 279, 291, 296], "from_smil": [10, 108, 168, 174, 178, 184], "true": [10, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 74, 94, 96, 108, 140, 155, 160, 168, 174, 178, 184, 216, 270, 275, 277, 278, 279, 280, 281, 282, 289, 291, 293, 295, 296], "kwargs_for_oracl": [10, 108], "repres": [10, 20, 56, 68, 73, 108, 154, 293], "It": [10, 26, 55, 56, 89, 106, 265, 267, 270, 274, 275, 289, 290, 293], "name": [10, 17, 22, 23, 26, 27, 28, 29, 46, 49, 50, 60, 62, 72, 73, 74, 89, 91, 94, 96, 104, 108, 218, 221, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "comput": [10, 19, 52, 66, 68, 70, 100, 104, 106, 108, 118, 119, 123, 124, 126, 127, 128, 166, 167, 172, 174, 178, 180, 181, 200, 264, 267, 268, 269, 271, 272, 275, 277, 278, 279, 282, 294], "dock": [10, 103, 104, 105, 106, 107, 108, 109, 264, 268, 272, 274, 294], "score": [10, 103, 104, 105, 119, 124, 128, 268, 271, 272, 274, 275, 277, 278, 279, 294], "an": [10, 19, 22, 28, 29, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 49, 56, 61, 62, 65, 70, 89, 91, 93, 94, 96, 118, 123, 127, 134, 135, 173, 178, 181, 192, 249, 265, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 289, 294, 297, 298, 302], "process": [10, 26, 28, 32, 45, 46, 55, 56, 61, 62, 89, 91, 93, 94, 96, 100, 104, 119, 123, 124, 128, 152, 173, 174, 178, 249, 264, 265, 270, 275, 276, 277, 278, 279, 280, 281, 282, 286, 289, 293, 294, 295, 296, 297], "multipl": [10, 100, 104, 174, 178], "infin": [10, 94, 100, 104, 108, 119, 124, 128, 174, 178, 184], "molecul": [10, 39, 40, 41, 42, 103, 104, 105, 168, 174, 178, 179, 264, 267, 270, 274, 275, 282, 293], "ar": [10, 24, 27, 32, 65, 68, 70, 95, 106, 140, 168, 173, 174, 177, 178, 179, 217, 229, 252, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 297], "smile": [10, 41, 42, 43, 44, 104, 108, 173, 174, 177, 178, 184, 268, 274, 279, 280, 281], "format": [10, 55, 67, 70, 136], "represent": [10, 39, 42, 104, 108, 171, 264, 294], "dict": [10, 24, 26, 55, 89, 90, 94, 96, 100, 104, 108, 265, 296], "addit": [10, 26, 46, 55, 59, 94, 96, 108, 271], "keyword": [10, 26, 46, 55, 89, 94, 96, 108, 265, 277, 278, 289, 295], "argument": [10, 22, 26, 28, 29, 46, 55, 89, 94, 96, 108, 277, 278, 289, 295], "custom": [11, 295], "packag": [11, 13, 43, 44, 48, 275, 293, 294, 296], "rais": [12, 15, 40, 41, 43, 44, 49, 50, 56, 65, 68, 69, 266, 269, 289, 290, 294, 295], "when": [12, 55, 94, 96, 265, 271, 274, 289, 291, 293, 295], "exhaust": 12, "multi_object": 14, "version": [14, 46, 66, 93, 106, 166, 177, 179, 266, 267, 268, 269, 270, 271, 275, 286, 290, 291, 301, 302], "mean": [14, 70, 138, 168, 279, 286, 294, 298], "simpli": [14, 266, 267, 274, 275, 276, 279, 282, 290, 291, 293], "concaten": [14, 15, 174, 178], "result": [14, 15, 66, 174, 178, 270, 291, 294], "individu": [14, 15, 67, 191, 270, 289, 291, 294], "objective_funct": [15, 302], "list": [15, 17, 20, 25, 26, 28, 40, 41, 42, 43, 44, 59, 60, 66, 67, 68, 69, 70, 72, 73, 119, 124, 128, 134, 148, 155, 178, 189, 191, 194, 265, 268, 270, 271, 274, 277, 278, 289, 291, 293, 296], "multi": [15, 264, 302], "requir": [15, 20, 48, 49, 106, 173, 177, 265, 266, 268, 270, 271, 274, 289, 290, 291, 293, 294, 295], "valueerror": [15, 50, 69, 289, 294], "e": [16, 49, 64, 70, 96, 100, 106, 134, 135, 139, 171, 174, 178, 179, 216, 224, 264, 266, 267, 268, 270, 271, 272, 274, 276, 277, 278, 279, 287, 289, 290, 291, 294, 295, 296], "g": [16, 64, 70, 134, 135, 179, 266, 267, 268, 270, 272, 277, 278, 287, 290, 291, 295, 296], "alphabet": [16, 17, 20, 100, 104, 119, 124, 128, 178, 218, 265, 266, 276, 277, 278, 281, 289, 290, 291, 293, 296, 302, 303, 304], "sequenc": [16, 17, 65, 99, 100, 101, 110, 134, 135, 136, 137, 141, 142, 143, 166, 167, 264, 266, 268, 270, 273, 287, 289, 290, 293, 296], "length": [16, 17, 37, 68, 69, 145, 270, 296], "max_sequence_length": [17, 265, 289, 291, 296], "align": [17, 265, 291, 296], "log_transform_recommend": [17, 291], "s": [17, 20, 43, 44, 64, 65, 96, 106, 119, 124, 128, 131, 171, 173, 174, 177, 178, 179, 200, 214, 229, 264, 265, 267, 268, 272, 275, 276, 277, 278, 279, 282, 286, 289, 290, 291, 293, 294, 295, 297, 301, 302], "longest": 17, "have": [17, 27, 37, 106, 119, 124, 128, 200, 248, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 290, 293, 295, 296], "been": [17, 200, 269], "charact": 17, "mai": [17, 27, 171, 264], "appear": [17, 265, 267, 270], "recommend": [17, 106, 267, 268, 271, 274, 275, 276, 298], "algorithm": [17, 32, 217, 252, 264, 266, 270, 286, 290, 291, 293, 295, 296, 297, 302], "log": [17, 46, 158, 166, 172, 173, 174, 268, 272, 296], "transform": [17, 39, 187, 192, 193], "target": [17, 100, 104, 294], "foldx": [19, 20, 67, 70, 118, 119, 120, 121, 123, 124, 126, 127, 128, 129, 171, 180, 181, 267, 268, 270, 272, 289, 294, 296], "simul": [19, 20, 65, 66, 118, 119, 123, 124, 127, 128, 181, 194, 200, 265, 267], "free": [19, 118, 123, 127, 181, 265, 266, 269, 270, 293], "energi": [19, 66, 118, 123, 127, 181, 269, 278], "between": [19, 68, 70, 100, 118, 123, 127, 177, 181, 280], "wildtyp": [19, 20, 69, 70, 118, 119, 123, 124, 127, 128, 171, 181, 268, 271, 272, 277, 278], "mutat": [19, 20, 66, 118, 123, 127, 136, 181, 264, 266, 268, 271, 272, 277, 290, 293, 295, 302], "web": [19, 65, 118, 123, 127, 181], "server": [19, 55, 56, 65, 118, 123, 127, 181], "onlin": [19, 65, 118, 123, 127, 181], "forc": [19, 26, 65, 118, 123, 127, 181, 249], "field": [19, 65, 118, 123, 127, 181], "nucleic": [19, 65, 118, 123, 127, 181], "acid": [19, 20, 64, 65, 118, 119, 123, 124, 127, 128, 134, 135, 137, 142, 143, 181], "research": [19, 65, 118, 123, 127, 181, 264], "schymkowitz": [19, 65, 118, 123, 127, 181, 268, 270, 289], "j": [19, 65, 103, 104, 105, 118, 123, 127, 181, 264, 291], "borg": [19, 65, 118, 123, 127, 181, 270, 289], "stricher": [19, 65, 118, 123, 127, 181, 270, 289], "ny": [19, 65, 118, 123, 127, 181], "r": [19, 64, 65, 70, 118, 123, 127, 181, 200, 264, 271, 275, 291], "rousseau": [19, 65, 118, 123, 127, 181, 270, 289], "serrano": [19, 65, 118, 123, 127, 181, 270, 289], "l": [19, 64, 65, 96, 99, 100, 101, 118, 123, 127, 144, 149, 150, 151, 171, 181, 264, 265, 266, 267, 273, 285, 287, 290, 291, 293, 294, 296], "2005": [19, 65, 118, 123, 127, 181, 268], "33": [19, 65, 118, 123, 127, 156, 181, 270, 289], "suppl_2": [19, 65, 118, 123, 127, 181], "w382": [19, 65, 118, 123, 127, 181], "w388": [19, 65, 118, 123, 127, 181], "wildtype_pdb_path": [20, 119, 124, 128, 271, 289], "union": [20, 26, 59, 60, 66, 69, 119, 124, 128], "path": [20, 26, 28, 49, 52, 59, 60, 66, 69, 72, 73, 74, 106, 119, 124, 128, 147, 198, 265, 270, 271, 276, 277, 278, 279, 282, 289, 291, 294], "experiment_id": [20, 119, 124, 128, 291], "tmp_folder": [20, 119, 124, 128], "eager_repair": [20, 119, 124, 128, 277, 278], "verbos": [20, 49, 66, 72, 73, 74, 119, 124, 128, 266, 295], "pdb": [20, 66, 69, 70, 71, 72, 73, 74, 119, 123, 124, 128, 171, 267, 271, 275, 277, 278, 289, 294], "file": [20, 27, 65, 66, 67, 69, 70, 71, 72, 73, 74, 95, 99, 106, 119, 123, 124, 128, 171, 173, 177, 217, 223, 264, 265, 267, 269, 271, 274, 276, 279, 282, 289, 291, 294, 296], "amino": [20, 64, 119, 124, 128, 134, 135, 137, 142, 143], "experi": [20, 119, 124, 128, 139, 200, 291], "id": [20, 67, 119, 124, 128, 189, 248, 264, 265, 270, 291, 296], "temporari": [20, 119, 124, 128], "folder": [20, 27, 49, 99, 106, 119, 124, 128, 173, 177, 217, 223, 265, 267, 269, 282, 291, 296], "eagerli": [20, 119, 124, 128], "repair": [20, 65, 66, 119, 124, 128, 289], "print": [20, 37, 49, 66, 72, 73, 74, 96, 119, 124, 128, 265, 266, 267, 270, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 302, 303, 304], "output": [20, 66, 72, 73, 74, 119, 124, 128, 194, 268, 270, 279, 289, 293, 294], "wildtype_residu": [20, 70], "residu": [20, 67, 69, 70, 72, 73, 270, 289], "each": [20, 32, 37, 68, 70, 137, 142, 268, 270, 291, 294, 295, 298], "wildtype_amino_acid": 20, "wildtype_residue_str": [20, 70], "string": [20, 39, 40, 41, 42, 43, 44, 55, 60, 68, 69, 70, 72, 89, 90, 91, 104, 108, 135, 136, 145, 173, 174, 177, 178, 184, 190, 191, 266, 268, 270, 271, 273, 277, 278, 280, 281, 287, 290, 294, 295, 296, 303, 304], "create_working_directori": 20, "work": [20, 37, 59, 60, 66, 96, 106, 209, 213, 256, 257, 266, 267, 269, 270, 272, 274, 275, 280, 281, 282, 289, 290, 291, 293, 295, 297], "directori": [20, 59, 60, 66, 269, 270, 271, 275, 276, 277, 278, 282, 291], "regist": [21, 25, 26, 27, 28, 29, 94, 95, 96, 106, 267, 271, 274, 277, 278, 280, 281, 293, 294], "observer_nam": [22, 28, 29, 46, 62, 288], "delet": [22, 23, 291], "run": [22, 26, 27, 28, 29, 45, 55, 57, 58, 59, 60, 66, 94, 96, 106, 124, 173, 177, 229, 265, 266, 267, 268, 269, 270, 289, 290, 291, 293, 295, 296], "script": [22, 26, 28, 29, 55, 57, 58, 59, 60, 61, 65, 88, 99, 106, 123, 173, 177, 200, 217, 223, 265, 271, 275, 291, 295, 296], "take": [22, 23, 26, 27, 28, 29, 55, 191, 194, 264, 265, 266, 273, 286, 287, 289, 290, 293, 296, 297], "pass": [22, 26, 28, 29, 46, 55, 70, 74, 89, 90, 94, 265, 270, 276, 277, 278, 289, 296], "locat": [22, 28, 29, 65, 214, 221, 270, 303, 304], "note": [22, 25, 28, 29, 49, 55, 56, 62, 66, 119, 124, 128], "must": [22, 28, 29, 267, 273, 285, 286, 287], "accept": [22, 28, 29, 55], "port": [22, 28, 29, 55, 56, 62, 91, 289, 294], "password": [22, 28, 29, 55, 56, 62, 91, 289, 294], "problem_nam": [23, 265, 285, 289], "configur": [23, 26, 29, 95], "dictionari": [24, 55, 90, 289], "problem_factori": [24, 26, 60, 274, 298, 302, 303, 304], "only_avail": [25, 289, 293], "includ": [25, 106, 265, 267, 268, 271, 274, 275, 286, 289, 291, 294, 295, 296, 297], "can": [25, 26, 27, 28, 37, 45, 55, 62, 74, 106, 155, 171, 174, 178, 196, 265, 266, 267, 269, 270, 271, 274, 275, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 294, 295, 296, 301], "import": [25, 27, 50, 65, 96, 167, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "directli": [25, 173, 206, 270, 271, 274, 294], "problem_list": 25, "repositori": [25, 27, 47, 48, 49, 50, 92, 103, 131, 200, 206, 229, 264, 266, 267, 268, 271, 274, 276, 279, 289, 291, 293, 294], "otherwis": [25, 42, 69, 270, 277, 278], "user": [25, 28, 49, 55, 119, 124, 128, 154, 252, 266, 270, 289, 290, 291, 293, 294, 296], "readili": 25, "conda_environment_nam": [26, 60, 265, 296], "python_path": [26, 28, 59, 60, 296], "conda": [26, 28, 59, 60, 99, 106, 173, 177, 217, 223, 266, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 290, 294], "environ": [26, 27, 28, 49, 59, 60, 99, 173, 177, 217, 223, 264, 266, 267, 268, 270, 271, 274, 277, 278, 280, 281, 282, 285, 290, 294, 295], "python": [26, 28, 37, 59, 60, 64, 87, 96, 106, 118, 123, 127, 181, 264, 265, 267, 268, 275, 277, 278, 294], "With": [26, 28, 295, 296], "instanti": [26, 28, 29, 46, 62, 89, 91, 93, 94, 96, 266, 289, 290, 291, 294, 295, 296], "separ": [26, 28], "also": [26, 89, 106, 123, 265, 267, 268, 271, 276, 277, 278, 279, 286, 289, 291, 293, 295, 296, 301], "later": 26, "append": [26, 28, 60, 290, 291], "overwrit": [26, 49, 66, 94, 96, 291, 296], "exist": [26, 49, 50, 265, 270, 289], "quiet": [27, 94, 270, 289, 294], "correspond": [27, 100, 104, 135, 224, 270], "objective_repositori": [27, 265, 271, 274, 275, 276, 279, 294, 296, 298, 302, 303, 304], "yaml": 27, "said": [27, 265, 266, 276, 290, 296], "enviro": [27, 265, 266, 290, 296], "sinc": [27, 70, 106, 252, 265, 266, 269, 270, 274, 275, 276, 279, 286, 289, 290, 293, 295, 296, 297], "t": [27, 64, 107, 118, 123, 127, 181, 183, 264, 265, 268, 269, 270, 274, 275, 276, 279, 291, 294, 295, 296], "depend": [27, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293], "instal": [27, 48, 119, 124, 128, 173, 177, 268, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294, 295, 296], "squelch": [27, 94], "feedback": [27, 94, 270], "creation": [27, 32, 94, 265, 286, 302], "registr": [27, 94, 96, 99, 173, 177, 217, 223, 265, 295, 296], "conda_environment_loc": 28, "extern": [28, 45, 46, 61, 89, 93, 293], "externalobserv": [28, 288], "relev": [28, 270, 271, 274, 275, 276, 277, 278, 280, 281, 282, 286, 296], "script_file_nam": 29, "run_script": [29, 55, 59, 60], "call": [29, 32, 49, 55, 61, 62, 94, 99, 119, 124, 128, 173, 177, 217, 223, 265, 266, 267, 268, 269, 270, 271, 274, 276, 277, 278, 280, 281, 289, 291, 293, 294], "monitor": 32, "progress": [32, 49, 74, 290], "valu": [32, 64, 86, 87, 94, 96, 139, 140, 146, 216, 270, 276, 279, 286, 289], "decis": 32, "variabl": [32, 49, 174, 178, 270, 276, 286], "iter": [32, 37, 266, 290, 293, 295, 298], "np": [32, 94, 96, 200, 218, 265, 266, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 296, 297, 298, 301, 302, 303, 304], "ndarrai": [32, 94, 144, 188, 189, 190, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 265, 266, 289, 290, 291, 296], "y": [32, 46, 64, 94, 96, 140, 146, 266, 271, 274, 281, 289, 290, 291], "everi": [32, 291], "time": [32, 56, 265, 270, 271, 289, 291, 302], "initialize_observ": [32, 46, 291], "problem_setup_info": [32, 291], "caller_info": [32, 46, 96, 289, 291, 295, 296], "x0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "y0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "seed": [32, 46, 94, 96, 160, 164, 193, 257, 265, 289, 291, 294, 296], "necessari": [32, 66, 265, 276, 277, 278, 296], "finish": [32, 46, 270, 289, 291], "perform": [32, 86, 87, 100, 119, 128, 174, 178, 266, 268, 270, 289, 290, 295, 297, 298], "ani": [32, 55, 94, 96, 150, 151, 197, 265, 270, 287, 289, 291, 293, 295, 296], "cleanup": 32, "final": [32, 291], "step": [32, 266, 276, 289, 295, 296], "complet": [32, 270, 296], "model": [34, 65, 103, 104, 105, 139, 140, 152, 154, 156, 264, 265, 270, 271, 289, 297], "check": [34, 51, 65, 68, 221, 265, 266, 270, 271, 277, 278, 279, 286, 290, 291, 293, 294, 295, 296], "inde": [34, 249, 270, 277, 278, 295, 296], "gener": [36, 37, 55, 59, 60, 84, 85, 86, 87, 94, 96, 224, 270, 289, 297], "chunk_siz": 37, "element": [37, 289], "3": [37, 134, 135, 265, 267, 268, 270, 273, 285, 287, 289, 291, 293, 294, 296, 297, 298], "12": [37, 65, 110, 166, 167, 171, 264], "replac": [37, 68, 70, 171, 189, 271, 289, 303, 304], "built": [37, 90, 91, 138, 267], "itertool": 37, "doc": [37, 49, 270, 294], "html": [37, 200, 264, 293], "yield": [37, 103, 104, 105, 264], "tupl": [37, 68, 69, 94, 218, 265, 296], "equal": [37, 68, 295], "exampl": [37, 50, 52, 68, 70, 96, 99, 220, 256, 257, 265, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 293, 294, 295, 302], "4": [37, 145, 156, 264, 269, 275, 289, 293, 294], "5": [37, 66, 99, 100, 101, 177, 179, 212, 267, 268, 270, 272, 273, 289, 291, 293, 294, 295, 296, 302], "6": [37, 264, 270, 289, 293, 294], "7": [37, 66, 270, 277, 278, 289, 293], "8": [37, 103, 104, 105, 264, 270, 289, 293], "9": [37, 264, 265, 267, 268, 270, 274, 289, 293, 294, 296], "rdkit": [39, 40, 41, 42, 50, 172, 173, 174, 176, 177, 178, 268, 272, 274, 280, 281, 282, 296], "selfies_str": [40, 43], "chem": [40, 41, 42, 107, 174, 177, 178, 183], "mol": [40, 41, 42], "convert": [40, 41, 42, 55, 134, 135, 140, 145], "selfi": [40, 42, 43, 44, 104, 173, 174, 177, 178, 268, 274, 279, 280, 281], "strict": [40, 41, 43, 44, 49, 68], "error": [40, 41, 43, 44, 49, 65, 265, 289, 294], "fail": [40, 174, 178, 295], "decod": [40, 150, 154, 155, 194, 197], "smiles_str": [41, 43, 44], "cannot": [41, 43, 44, 174, 178], "pars": [41, 43, 44, 71, 72, 73, 74, 90, 174, 178, 190], "molecule_str": 42, "from_selfi": [42, 174, 178], "assum": [42, 70, 174, 178, 252, 265, 266, 270, 271, 274, 277, 278, 279, 280, 281, 285, 289, 290, 293], "translat": [43, 44], "els": [43, 44, 265, 289, 294, 296], "those": [43, 44], "aspuru": [43, 44, 264], "guzik": [43, 44, 264], "lab": [43, 44], "group": [43, 44], "isol": [45, 46, 88, 89, 93, 94, 96, 173, 249, 265, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 296], "kwargs_for_observ": 46, "send": [46, 62], "verifi": [46, 51, 291, 294], "wa": [46, 48, 70, 167, 266, 270, 275, 279, 289, 290], "correctli": [46, 269], "setup_info": 46, "start": [46, 55, 61, 62, 91, 171, 270, 271, 289, 291, 293, 294, 295, 296], "close": [46, 96, 280, 281], "__getattr__": 46, "__name": 46, "retriev": [46, 62, 109], "attribut": [46, 62, 150, 151, 197, 270, 289], "underli": 46, "download": [47, 48, 49, 51, 106, 265, 269, 271, 276, 282, 289], "github": [47, 48, 49, 50, 106, 265, 267, 268, 270, 271, 276, 279, 296], "pygithub": [48, 50, 276], "pip": [48, 106, 173, 177, 265, 267, 268, 270, 276, 277, 278, 279, 280, 281, 294, 296], "most": [48, 137, 272, 289, 294], "code": [48, 51, 152, 171, 265, 270, 275, 276, 279, 282, 289, 293, 296], "taken": [48, 206, 271, 294], "adapt": [48, 264, 270, 298], "gist": 48, "com": [48, 49, 106, 265, 267, 268, 269, 270, 276, 279, 294, 296], "pdashford": 48, "2e4bcd4fc2343e2fd03efe4da17f577d": 48, "permalink_comment_id": 48, "4274705": 48, "gistcom": 48, "repository_nam": 49, "file_path_in_repositori": 49, "download_path_for_fil": 49, "tag": [49, 50], "master": [49, 267, 296], "commit_sha": [49, 50], "exist_ok": [49, 270, 291], "parent_folders_exist_ok": 49, "i": [49, 64, 100, 118, 123, 127, 139, 174, 178, 181, 216, 224, 264, 266, 268, 270, 271, 274, 278, 290, 291, 296], "repo": [49, 106, 267, 275], "download_path": 49, "branch": [49, 50, 267], "sha": [49, 50], "commit": [49, 50, 271], "exists_ok": 49, "parent": [49, 265, 270, 271, 291, 302], "thei": [49, 65, 167, 168, 270, 279, 289, 291], "do": [49, 106, 167, 266, 270, 276, 279, 290, 294, 296], "except": [49, 56, 62, 265, 289, 294], "github_token_for_poli": [49, 276], "doe": [49, 167], "try": [49, 265, 277, 278], "without": [49, 94, 96, 173, 177, 248, 265, 266, 290, 293, 295, 296], "rate": 49, "limit": [49, 221, 271, 276], "60": 49, "request": [49, 91, 270], "per": 49, "hour": 49, "anonym": [49, 276], "To": [49, 267, 268, 269, 270, 271, 274, 279, 296], "token": [49, 145, 174, 178, 189, 191, 276, 293, 296, 303, 304], "like": [49, 96, 106, 209, 265, 266, 269, 275, 286, 289, 290, 291, 293, 294, 295, 296, 297], "follow": [49, 64, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 290, 293, 295, 296, 301], "instruct": [49, 229, 265, 266, 293], "here": [49, 265, 268, 270, 276, 289, 296, 302], "en": [49, 220, 293], "authent": [49, 55, 56], "keep": [49, 70, 265, 277, 278], "your": [49, 106, 266, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 294], "account": 49, "secur": [49, 294], "person": [49, 276], "fine": [49, 267], "grain": 49, "get_repo": 50, "release_2023_09": 50, "068441957858f786c227825d90eb2c43f4f2b000": 50, "internet": 51, "reproduc": 51, "purpos": 51, "make": [51, 267, 269, 270, 271, 274, 276, 289, 295, 296, 302], "sure": [51, 267, 269, 270, 271, 274, 276, 291, 295, 296], "malici": 51, "being": [51, 269, 271, 276], "filepath": 52, "read_mod": 52, "rb": 52, "md5": [52, 271], "hex": 52, "digest": 52, "open": [52, 171, 270, 291], "binari": [52, 66, 106, 119, 124, 128, 270, 276, 277, 278], "form": [52, 270], "mode": [52, 67], "read": [52, 66, 147, 270, 289, 291, 295], "hex_digest": 52, "txt": [52, 66, 70, 269, 270, 276, 277, 278, 291], "d41d8cd98f00b204e9800998ecf8427": 52, "wrap": [53, 54, 296], "interprocess": [53, 54], "commun": [53, 54, 55, 93], "kwargs_for_factori": [55, 94, 96, 289, 294], "connect": [55, 56, 62, 91, 154], "inter": 55, "These": [55, 268, 270, 271, 272, 276, 286, 289, 291, 293], "inner": 55, "up": [55, 56, 266, 274, 275, 289, 290, 291, 296], "listen": [55, 91, 294], "random": [55, 84, 85, 86, 87, 94, 96, 266, 268, 290, 293, 295, 297, 298, 301, 302, 304], "subprocess": [55, 270], "expect": [55, 65, 66, 67, 70, 106, 119, 124, 128, 174, 270, 276, 277, 278, 279, 289, 291, 294, 296], "well": [55, 267, 270, 274, 294, 295, 297], "other": [55, 174, 178, 265, 269, 289, 291, 294, 295, 296], "objective_factori": [55, 248, 265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "determin": 55, "client": 56, "get": [56, 61, 74, 265, 266, 270, 271, 272, 290, 291, 293, 295, 296], "eoferror": 56, "host": 56, "readi": [56, 140], "yet": [56, 265, 290], "connectionrefusederror": 56, "refus": 56, "attempt": 56, "establish": [56, 62], "retri": 56, "befor": [56, 59, 289, 295, 296], "conda_environ": 59, "cwd": [59, 60, 270], "activ": [59, 265, 267, 268, 271, 274, 276, 279, 291], "ad": [59, 106, 248, 275, 291, 296], "current": [59, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294], "either": [60, 104, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 301], "mother": [61, 62, 91], "receiv": [62, 289, 294], "wait": [62, 91, 296], "occur": 62, "sent": [62, 194], "back": [62, 187], "quit": [62, 265, 271, 293], "messag": [62, 94, 289], "encod": [64, 143, 144, 154, 155, 178, 276, 277, 278], "For": [64, 70, 106, 139, 166, 171, 221, 252, 265, 268, 270, 275, 276, 279, 286, 289, 291, 293, 294, 296, 298], "amino_acid": 64, "n": [64, 103, 104, 105, 221, 264, 267, 268, 270, 271, 282, 286, 287, 291], "d": [64, 171, 200, 216, 264, 269, 286, 291], "c": [64, 103, 104, 105, 264, 265, 267, 270, 274, 275, 280, 281, 282, 289, 291, 296], "q": [64, 264, 291], "h": [64, 99, 100, 101, 192, 197, 264, 291, 296], "k": [64, 107, 173, 183, 212, 264, 291], "m": [64, 145, 171, 264, 270, 291], "p": [64, 264, 291], "v": [64, 66, 291], "measur": [65, 139, 270, 280, 281], "stabil": [65, 66, 121, 123, 124, 126, 127, 171, 180, 181, 264, 267, 268, 270, 272, 277, 294], "sasa": [65, 66, 116, 118, 119, 120, 126, 127, 128, 129, 180, 181, 268, 272, 277, 278], "foldxinterfac": 65, "queri": [65, 265, 266, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 290, 296], "heavili": [65, 270], "inspir": [65, 270], "wai": [65, 266, 267, 270, 271, 274, 277, 278, 280, 281, 290, 291, 294], "lambo": [65, 106, 110, 113, 115, 166, 167, 168, 268, 270, 272, 275, 289], "automat": [65, 96, 264, 265, 269, 279], "acceler": [65, 110, 166, 167, 264], "bayesian": [65, 110, 166, 167, 252, 264, 266, 268, 290], "biolog": [65, 110, 166, 167, 264], "design": [65, 103, 104, 105, 110, 154, 166, 167, 264, 266, 269, 272, 274, 289, 290, 293, 296], "withdenois": 65, "autoencod": [65, 110, 154, 166, 167, 264, 297], "stanton": [65, 110, 166, 167, 264, 268, 269, 270, 279, 289], "samuel": [65, 110, 166, 167, 264], "weslei": [65, 110, 166, 167, 264], "maddox": [65, 110, 166, 167, 264], "nate": [65, 110, 166, 167, 264], "gruver": [65, 110, 166, 167, 264], "phillip": [65, 110, 166, 167, 264], "maffetton": [65, 110, 166, 167, 264], "emili": [65, 110, 166, 167, 264], "delanei": [65, 110, 166, 167, 264], "peyton": [65, 110, 166, 167, 264], "greensid": [65, 110, 166, 167, 264], "andrew": [65, 110, 166, 167, 264], "gordon": [65, 110, 166, 167, 264], "wilson": [65, 110, 166, 167, 264], "arxiv": [65, 110, 166, 167, 264], "juli": [65, 110, 166, 167], "ab": [65, 110, 166, 167, 264], "2203": [65, 110, 166, 167, 264], "12742": [65, 110, 166, 167, 264], "samuelstanton": [65, 106, 276, 279], "working_dir": [66, 270], "interact": [66, 270, 289], "engin": [66, 200, 297], "softwar": [66, 268, 269], "where": [66, 99, 100, 101, 155, 265, 266, 268, 270, 275, 282, 290, 294], "store": [66, 271, 289], "pdb_file": 66, "remove_and_renam": 66, "ph": [66, 270, 277, 278], "remove_heteroatom": 66, "_repair_if_necessary_and_provide_path": 66, "_simulate_mut": 66, "_read_energi": 66, "_compute_sasa": 66, "solvent": [66, 116, 119, 120, 126, 128, 129, 180, 264, 268, 270, 272], "surfac": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "area": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "compute_st": 66, "structur": [66, 72, 73, 74, 106, 124, 270, 275, 291], "compute_sasa": 66, "compute_stability_and_sasa": 66, "singl": [66, 70, 171, 200, 264, 268, 271, 272, 280, 281, 289, 291, 297, 301], "copy_foldx_fil": 66, "copi": [66, 266, 270, 290, 302], "write_mutations_to_fil": 66, "wildtype_resiud": 66, "output_dir": 66, "write": [66, 106, 265, 267, 270, 275, 283, 284, 288, 291, 292, 296, 299, 300], "stdout": 66, "previou": [66, 94, 96, 270, 291, 295], "reli": [66, 248, 286], "rotabas": [66, 269, 270, 276, 277, 278], "longer": 66, "manipul": [67, 265, 267, 268], "accord": [67, 138, 270, 293, 296], "certain": [67, 265, 268, 270, 274, 295], "first": [67, 68, 70, 265, 270, 271, 273, 289, 290, 295, 296], "letter": [67, 70, 99, 100, 101, 268, 270, 272, 273, 296], "second": [67, 68, 70, 148, 270, 289, 295, 296], "posit": [67, 68, 70, 137, 142, 266, 270, 271, 289, 290, 293], "third": [67, 70], "chain": [67, 70, 270], "fourth": [67, 70], "mutant": [67, 69, 70, 171, 266, 270, 290], "foldxsuit": [67, 269, 270], "crg": [67, 269, 270], "eu": [67, 269, 270], "string_1": 68, "string_2": 68, "edit": [68, 171, 271], "oper": [68, 269, 295], "assertionerror": [68, 295], "abc": 68, "abd": 68, "def": [68, 265, 266, 290, 291, 296], "wildtype_pdb_fil": [69, 277, 278], "mutated_residue_str": [69, 70], "return_hamming_dist": 69, "find": [69, 99, 100, 101, 106, 265, 271, 274, 275, 291, 293, 295], "closest": 69, "ham": 69, "distanc": [69, 70, 100, 271, 273], "along": 69, "best": [69, 266, 289, 290, 298, 302], "candid": [69, 266], "found": [69, 267, 270, 293, 296], "bio": [70, 73, 74, 270], "individual_list": [70, 270], "levenshtein": [70, 277, 278], "track": [70, 264, 265], "written": 70, "line": [70, 268, 270, 289, 294], "ea1r": 70, "still": [70, 294], "need": [70, 106, 265, 269, 270, 275, 276, 277, 278, 279, 289, 291, 295], "dummi": 70, "itself": [70, 265, 267], "ecd": 70, "acd": 70, "would": [70, 270, 271, 274, 291, 296], "ea1a": 70, "load": [71, 95, 131, 139, 148, 198, 270, 289, 291], "them": [71, 106, 252, 265, 266, 267, 270, 271, 272, 275, 290, 293], "path_to_pdb": [72, 73, 74], "structure_nam": [72, 73, 74], "done": [74, 106, 270, 275, 276, 279, 289, 293], "quietli": 74, "some": [74, 152, 168, 252, 267, 268, 270, 276, 279, 286, 291, 293, 296], "get_structur": [74, 270], "pdbparser": [74, 270], "numpi": [86, 190, 265, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 291, 296, 297, 301, 302, 303, 304], "obj": 89, "dynam": 89, "intern": [89, 264, 265, 282, 285, 289, 293, 294], "constructor": 89, "factory_kwarg": [90, 91, 289, 294], "processwrapp": [90, 91, 93], "how": [90, 91, 106, 229, 265, 266, 267, 268, 270, 272, 289, 290, 291, 293, 295, 296], "objective_nam": [91, 289, 294], "loop": [91, 248, 264, 297], "process_wrapp": 93, "observer_init_info": [94, 289, 294], "force_regist": [94, 96, 275, 277, 278, 280, 281, 282, 289, 294], "force_isol": [94, 96, 289, 294], "instantiant": 94, "associ": [94, 264, 289, 294], "caller": [94, 96, 291], "forward": [94, 96, 291], "logger": [94, 96], "ask": [94, 96, 279], "confirm": [94, 96], "By": [94, 124, 174, 178, 218, 266, 277, 278, 295, 297, 301], "onc": [94, 265, 274, 293, 295, 296], "round": [94, 224, 264], "down": 94, "give": [94, 188, 252, 274, 296], "config": [95, 115, 289], "configpars": 95, "just": [96, 276, 277, 278, 279, 289, 291, 295, 296], "One": [96, 269], "aloha": [96, 267, 268, 272, 289, 290, 293, 296, 302], "arrai": [96, 134, 135, 144, 145, 187, 190, 192, 265, 267, 268, 271, 273, 274, 277, 278, 280, 281, 285, 286, 287, 289, 291, 293, 294, 296], "reshap": [96, 266, 280, 281, 296, 297, 301], "simpl": [99, 100, 101, 103, 104, 105, 138, 173, 174, 177, 178, 265, 266, 289, 290, 293, 295, 296], "goal": [99, 100, 101], "o": [99, 100, 101, 273, 274, 291, 296], "among": [99, 100, 101, 269, 270, 295], "poli__bas": [99, 217, 223], "yml": [99, 106, 173, 177, 217, 223, 271, 274, 276, 279, 296], "simultan": [100, 104, 108, 174, 178, 184, 271], "map": [100, 104], "symbol": [100, 104], "main": [100, 174, 178, 266, 267, 268, 269, 270, 290, 291, 296], "api": [103, 104, 105, 267, 276], "assess": [103, 104, 105, 171, 272], "small": [103, 104, 105, 174, 265, 267, 274, 275, 282, 291, 293, 295], "protein": [103, 104, 105, 118, 123, 124, 127, 171, 181, 264, 267, 269, 271, 274, 275, 293, 294], "easi": [103, 104, 105, 264, 265, 270, 293, 295], "molecular": [103, 104, 105, 118, 123, 127, 181, 264], "better": [103, 104, 105, 264, 265, 270], "benchmark": [103, 104, 105, 200, 217, 221, 264, 268, 272], "ligand": [103, 104, 105, 264, 268, 272, 274], "garc\u00eda": [103, 104, 105, 264, 268, 274], "orteg\u00f3n": [103, 104, 105, 264, 268, 274], "miguel": [103, 104, 105, 264, 268], "gregor": [103, 104, 105, 264], "simm": [103, 104, 105, 264], "austin": [103, 104, 105, 264], "tripp": [103, 104, 105, 264], "jos\u00e9": [103, 104, 105, 171, 264], "hern\u00e1ndez": [103, 104, 105, 264], "lobato": [103, 104, 105, 264], "andrea": [103, 104, 105, 264], "bender": [103, 104, 105, 264], "sergio": [103, 104, 105, 264], "bacallado": [103, 104, 105, 264], "journal": [103, 104, 105, 264], "62": [103, 104, 105, 264], "15": [103, 104, 105, 264, 302], "august": [103, 104, 105, 264], "3486": [103, 104, 105, 264], "3502": [103, 104, 105, 264], "1021": [103, 104, 105, 264], "ac": [103, 104, 105, 264], "jcim": [103, 104, 105, 264], "1c01334": [103, 104, 105, 264], "target_nam": [104, 274, 294], "string_represent": [104, 274, 279, 280, 281], "liter": [104, 221, 265], "There": [106, 289, 291, 294], "sever": [106, 200, 209, 217, 270, 271, 295, 296], "prepare_receptor": 106, "rest": [106, 265, 291, 293], "descript": [106, 265, 271, 274, 289, 291, 296], "show": [106, 267, 270, 289, 296], "center": [106, 275], "websit": [106, 275], "scripp": 106, "edu": 106, "uncompress": [106, 275], "add": [106, 139, 188, 265, 276, 277, 278, 279, 290], "export": [106, 275], "autodock_vina": [106, 275], "bin": [106, 275, 294], "bashrc": [106, 275], "zshrc": [106, 275], "bash": 106, "In": [106, 166, 168, 264, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 298, 302], "ccsb": 106, "sh": [106, 275, 296], "thu": [106, 275], "might": [106, 200, 265, 267, 270, 275, 276, 277, 278, 279, 286, 289, 291, 296], "chang": [106, 118, 123, 127, 131, 148, 181, 267, 269, 270, 275, 277, 278, 286], "its": [106, 266, 270, 271, 274, 275, 277, 289, 290, 294, 295, 296], "permiss": [106, 275], "chmod": [106, 275], "abl": [106, 265, 267, 269, 270, 275, 291, 294, 296], "pyscreen": [106, 268, 275], "howev": [106, 271, 275, 294, 296], "sometim": [106, 275], "problemat": [106, 275], "ha": [106, 209, 265, 266, 270, 275, 289, 290, 294, 296, 298], "symlink": [106, 275], "ln": [106, 275], "sf": [106, 275], "easili": [106, 270, 275, 289, 295], "env": [106, 265, 267, 271, 274, 275, 276, 279, 293, 294, 296], "src": [106, 265, 271, 274, 275, 276, 279, 289, 294], "ddr3_dock": 106, "task": [106, 107, 110, 113, 115, 148, 264, 270, 276, 279, 297], "git": [106, 265, 267, 268, 276, 279, 296], "clone": [106, 267, 271, 276, 279, 285], "431b052": [106, 276, 279], "cd": [106, 267, 276, 279], "particular": [106, 168, 180, 275, 276, 286, 291, 294, 295, 296], "proxy_rfp": [106, 113, 276], "proxyrfptask": [106, 113, 276], "rfp": [106, 110, 111, 115, 180, 268, 272], "asset": [106, 276], "fpbase": [106, 276], "And": [106, 289, 296], "now": [106, 265, 267, 270, 293, 294, 296], "py": [106, 221, 266, 267, 270, 289, 290, 291, 293, 294, 295, 296], "query_exampl": 106, "ddr3": 107, "et": [107, 183, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 289, 297, 301, 302], "al": [107, 183, 200, 221, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 286, 289, 297, 301, 302], "nat": [107, 183], "biol": [107, 183], "1036": [107, 183], "self": [108, 265, 266, 271, 290, 291, 296], "tdcblackbox": 108, "denois": [110, 166, 167, 264], "alia": 112, "base_candid": 113, "specifc": 115, "predict": [116, 138, 139, 157, 171, 264, 268, 270, 272, 297], "pair": [118, 127, 181], "biopython": [118, 123, 127, 181, 270, 277, 278, 294], "cock": [118, 123, 127, 181], "pa": [118, 123, 127, 181], "antao": [118, 123, 127, 181], "jt": [118, 123, 127, 181], "chapman": [118, 123, 127, 181], "ba": [118, 123, 127, 181], "cox": [118, 123, 127, 181], "cj": [118, 123, 127, 181], "dalk": [118, 123, 127, 181], "friedberg": [118, 123, 127, 181], "hamelryck": [118, 123, 127, 181], "kauff": [118, 123, 127, 181], "wilczynski": [118, 123, 127, 181], "b": [118, 123, 127, 181, 192, 265, 267, 273, 285, 286, 287, 291, 293, 296], "de": [118, 123, 127, 181, 264], "hoon": [118, 123, 127, 181], "mjl": [118, 123, 127, 181], "2009": [118, 123, 127, 181, 268], "freeli": [118, 123, 127, 181], "tool": [118, 123, 127, 181, 265, 277, 278, 294, 296], "bioinformat": [118, 123, 127, 181], "25": [118, 123, 127, 181, 289], "1422": [118, 123, 127, 181], "1423": [118, 123, 127, 181], "usual": [119, 124, 215, 217, 265, 266, 268, 272, 286, 291, 295, 296, 297], "eager": [119, 128], "v5": [119, 124, 128], "compil": [119, 124, 128, 156, 271, 289], "specif": [119, 124, 128, 286, 293], "foldxblackbox": [119, 124, 128], "pre": [123, 266, 267, 271, 274, 277, 278], "20": [124, 264], "shown": 124, "core": [124, 265, 266, 288, 289, 290, 295, 296, 302], "through": [124, 266, 267, 290, 293], "total": [124, 138, 270, 289], "cba": [131, 148, 150], "vae": [131, 148, 150, 151, 155, 156, 194, 196, 197, 297], "sb": [131, 148], "bo": 131, "minor": [131, 148], "modif": [131, 148], "conduct": [131, 148], "rm": [131, 148], "creator": [131, 148], "last": [131, 148, 270, 289, 294], "x_aa": [134, 135, 144], "aa_idx": 134, "arn": [134, 135], "becom": [134, 135, 270], "row": [134, 135, 270], "base_seq": 136, "wild": [136, 141, 270], "mtuation": 136, "xt_p": [137, 142], "categor": [137, 142, 158, 196, 197], "probabl": [137, 142], "distribut": [137, 142, 158, 197, 264, 298], "pred": 138, "xt": 138, "predictor": 138, "balaji": 138, "lakshminarayanan": 138, "paper": [138, 150, 264, 294], "scalabl": 138, "uncertainti": [138, 297], "estim": [138, 166, 176, 177, 178, 179, 267, 268, 272], "deep": [138, 171, 264, 297], "ensembl": 138, "2017": [138, 264, 271], "varianc": 138, "random_st": [139, 146], "train_siz": [139, 146], "5000": 139, "return_test": [139, 146], "return_al": 139, "gfp": [139, 140, 141, 147], "test": [139, 200, 266, 286, 290], "ground": 139, "truth": 139, "gp": [139, 161], "partit": [139, 146, 280], "below": [139, 271, 274, 277, 278], "20th": 139, "percentil": [139, 146], "nois": [139, 222, 223, 224, 257, 268, 272], "data_df": 140, "panda": [140, 147, 270], "datafram": [140, 147, 270], "functional_onli": [140, 160], "ignore_stop": [140, 160], "return_str": 140, "raw": 140, "sampl": [142, 193, 264, 287, 291, 297, 303, 304], "aa_str": 143, "pad": [143, 145, 188], "hot": [143, 192], "onehot": 144, "alphabet_s": [144, 266, 290], "dna_str": 145, "base_ord": 145, "atcg": 145, "40": 146, "1000": [146, 295], "df_save_fil": 147, "bright": 147, "author": [148, 166, 268], "credit": 148, "herculean": 148, "go": [148, 268, 269, 294, 296], "aa": [149, 150, 151], "mimic": 150, "kera": [150, 154], "latent_dimension": [150, 151], "enc1_unit": [150, 151, 156], "train": [152, 196], "gaussian": [152, 223, 224, 264, 268, 272, 287, 297], "regress": 152, "sarkisyan": 152, "2016": [152, 264, 297], "plu": [152, 302], "constant": [152, 286], "input_shap": [154, 155], "latent_dim": [154, 155, 156], "variat": [154, 297], "via": [154, 264, 291], "latent": [154, 266, 290, 297], "space": [154, 189, 252, 266, 290, 297, 301], "flatten": [155, 266, 289, 290], "basic": [155, 248, 293, 296], "layer": 155, "n_token": 156, "seq_length": 156, "50": [156, 298], "eps_std": 156, "y_true": [157, 158], "y_pred": [157, 158], "likelihood": 158, "uniqu": [160, 291], "problem_typ": 161, "exact": [166, 266, 271, 274, 290, 296], "logp": [166, 167, 168, 172, 173, 174, 268, 272], "jointli": 166, "quantit": [166, 176, 177, 178, 179, 267, 268, 272], "druglik": [166, 176, 177, 178, 179, 267, 268, 272], "qed": [166, 174, 176, 177, 178, 179, 268, 272], "penal": [166, 168, 268, 272], "solubl": [166, 172, 173, 174, 268, 272], "fair": 166, "comparison": [166, 291], "_exactly_": 167, "adjust": 168, "magic": 168, "empir": [168, 279], "standard": [168, 223, 224, 279, 287], "deviat": [168, 279], "dataset": [168, 200, 264, 279], "todo": [168, 270, 283, 284, 288, 292, 299, 300], "rapid": [171, 264, 268, 272], "sourc": [171, 265], "bird": 171, "ey": 171, "view": [171, 270], "collect": [171, 199, 268, 271], "site": [171, 293, 294], "reader": 171, "consid": [171, 271, 286, 296], "drop": [171, 271, 289, 293], "rosetta": [171, 271], "learn": [171, 264, 271], "blaabjerg": [171, 264, 268, 271], "lass": [171, 264], "maher": [171, 264], "kassem": [171, 264], "lydia": [171, 264], "good": [171, 264, 265, 267, 268, 289, 296], "nicola": [171, 264], "jonsson": [171, 264], "matteo": [171, 264], "cagiada": [171, 264], "kristoff": [171, 264], "johansson": [171, 264], "wouter": [171, 264], "boomsma": [171, 264, 271], "ameli": [171, 264], "stein": [171, 264], "kresten": [171, 264], "lindorff": [171, 264], "larsen": [171, 264], "faraldo": 171, "g\u00f3mez": [171, 264, 297], "detlef": 171, "weigel": 171, "nir": 171, "ben": 171, "tal": 171, "julian": 171, "echav": 171, "elif": [171, 264], "2023": [171, 264, 268, 269, 271], "e82593": [171, 264], "7554": [171, 264], "82593": [171, 264], "whose": [173, 177, 223, 276, 297], "quotient": [173, 268, 272], "descriptor": [173, 296], "both": [173, 177, 270, 277, 278, 295, 296], "poli__chem": [173, 177, 280, 281], "want": [173, 177, 265, 266, 270, 271, 274, 277, 278, 280, 281, 293, 295, 296], "local": [173, 177, 209, 266, 267, 285, 291, 294], "environemnt": [173, 177], "extra": [173, 177, 265, 289, 294], "interest": [173, 267, 270, 271, 274, 277, 278, 285, 286, 291, 293], "molfromsmil": [174, 178], "known": [174, 178, 280, 289], "silent": [174, 178], "nan": [174, 178], "someth": [174, 178], "than": [174, 178, 252, 295, 296], "continu": [177, 179, 199, 200, 217, 218, 252, 264, 268, 272, 293], "lipinski": [177, 179], "rule": [177, 179, 265], "strongli": 178, "advic": [178, 265], "heurist": 179, "discard": 179, "too": 179, "heavi": 179, "pareto": 180, "front": 180, "accessibl": 182, "sa": [182, 268, 272], "toi": [186, 199, 200, 217, 218, 221, 222, 224, 252, 273, 291, 295, 302], "avout": 186, "super": [186, 265, 266, 272, 290, 296], "mario": [186, 189, 196, 272, 296], "bro": [186, 272, 296], "level": [186, 187, 188, 189, 190, 191, 192, 193, 270, 272], "n_pad": 188, "left": 188, "room": 188, "agent": 188, "land": 188, "clean": [189, 270, 289], "remov": [189, 269, 277, 278, 296], "11": [189, 192, 197, 267, 274, 294], "empti": 189, "level_txt": [190, 191], "n_sprite": [192, 197], "integ": [192, 193, 266, 286, 287, 290, 293, 296], "levels_onehot": 193, "probit": 193, "tensor_level": 194, "torch": [194, 296], "tensor": 194, "level_s": 194, "14": [194, 197], "could": [194, 265, 266, 270, 271, 276, 277, 278, 289, 290, 293, 296, 301], "mariogan": 194, "jar": [194, 265], "prob_matrix": 195, "item": [195, 262], "sentenc": 197, "shape": [197, 265, 266, 267, 273, 285, 286, 287, 290, 293], "z_dim": 197, "devic": 197, "path_to_state_dict": 198, "vaemario": 198, "pretrain": 198, "landscap": 200, "signatur": 200, "sign": [200, 286], "flip": [200, 286], "becaus": [200, 296], "re": [200, 265, 267, 270, 271, 290, 291, 293, 296], "deal": 200, "ali": [200, 264], "roomi": [200, 221, 264, 268, 286], "2015": [200, 264, 268, 286], "unconstrain": [200, 221, 264], "www": [200, 264], "halifax": 200, "nova": 200, "scotia": 200, "canada": 200, "dalhousi": 200, "univers": 200, "electr": 200, "surjanov": [200, 268], "bingham": [200, 268], "virtual": 200, "sfu": 200, "ca": 200, "ssurjano": 200, "linebo": [206, 286, 301], "kirschnj": 206, "xy": [209, 213, 214], "cross": 209, "trai": 209, "maxima": [209, 213], "quilt": 209, "pattern": 209, "2d": [209, 213, 214, 252], "alpha": [212, 267, 297], "veri": 213, "flat": 213, "pi": 213, "egg": 214, "holder": 214, "especi": [214, 265, 268], "difficult": 214, "know": [214, 270], "optima": [214, 221], "squar": 215, "norm": 215, "shift": 215, "awai": [215, 271], "bit": [215, 270], "normal": [216, 264, 294, 298], "903534": 216, "39": [216, 276], "16599": 216, "divid": 216, "dimens": [217, 218, 221, 252, 264, 286, 297], "focu": [217, 270, 289, 293], "ones": [217, 265], "dimension": [217, 252, 264], "function_nam": [218, 286, 297, 298, 301], "n_dimens": [218, 286, 297, 298, 301], "embed_in": [218, 221, 286], "randomli": [218, 266, 286, 289, 290, 293, 302, 303, 304], "embed": [218, 252, 286], "emb": [218, 252, 286], "toycontinuousproblem": 218, "bound": 218, "lower": [218, 252], "upper": 218, "seri": 220, "testb": 220, "wikipedia": 220, "wiki": 220, "test_functions_for_optim": 220, "ackley_function_01": [221, 268, 272, 286, 297, 298, 301], "alpine_01": [221, 286], "alpine_02": [221, 286], "bent_cigar": [221, 286], "brown": [221, 286], "chung_reynold": [221, 286], "cosine_mixtur": [221, 286], "deb_01": [221, 286], "deb_02": [221, 286], "deflected_corrugated_spr": [221, 286], "styblinski_tang": 221, "shifted_spher": [221, 286], "easom": [221, 268, 272, 286], "cross_in_trai": [221, 286], "egg_hold": [221, 286], "camelback_2d": [221, 286], "n_dim": 221, "definit": [221, 265, 286], "white": [222, 223, 257, 268, 272], "vector": 224, "downward": 224, "exemplifi": 248, "Not": 248, "come": [248, 265, 274, 293, 295], "benefit": 248, "intellisens": 248, "spawn": 249, "higher": [252, 270], "afford": 252, "intrins": 252, "actual": [252, 265, 286, 294], "readm": [256, 265], "verbatum": 256, "fullnam": 262, "escap": 262, "underlin": 262, "block": [262, 265], "rubric": 262, "endfor": 262, "endif": 262, "endblock": 262, "ar15": 264, "url": [264, 268], "bkj": 264, "maximilian": 264, "balandat": [264, 297, 301], "brian": 264, "karrer": 264, "daniel": 264, "jiang": 264, "daulton": 264, "benjamin": 264, "letham": 264, "eytan": 264, "bakshi": 264, "botorch": [264, 268, 297, 301], "framework": 264, "effici": [264, 291, 297], "mont": 264, "carlo": 264, "decemb": 264, "2020": [264, 268, 297, 301, 302], "1910": 264, "06403": 264, "cs": 264, "math": 264, "stat": 264, "bkg": 264, "23": [264, 267, 289], "bf17": 264, "je": 264, "frellsen": [264, 271], "spheric": 264, "convolut": 264, "applic": 264, "guyon": 264, "u": [264, 291], "von": 264, "luxburg": 264, "bengio": 264, "wallach": 264, "fergu": 264, "vishwanathan": 264, "garnett": 264, "editor": 264, "advanc": 264, "neural": [264, 271], "system": [264, 269, 270, 294], "volum": 264, "30": [264, 286], "curran": 264, "inc": 264, "proceed": 264, "neurip": 264, "cc": [264, 274], "paper_fil": 264, "1113d7a76ffceca1bb350bfe145467c6": 264, "pdf": 264, "dpam02": 264, "deb": [264, 302], "pratap": 264, "agarw": 264, "meyarivan": 264, "fast": 264, "elitist": 264, "multiobject": 264, "genet": [264, 302], "nsga": 264, "ii": 264, "ieee": 264, "transact": 264, "evolutionari": [264, 266, 268, 290, 298], "182": 264, "197": 264, "april": 264, "2002": [264, 302], "1109": 264, "4235": 264, "996017": 264, "gfsc22": 264, "matter": 264, "practic": 264, "thirti": 264, "sixth": 264, "confer": 264, "openreview": 264, "net": 264, "forum": 264, "yczrdi0y7g": 264, "gost": 264, "22": [264, 270, 289], "dockstr": [264, 267, 268, 272, 289, 293, 294], "gpb": 264, "jacob": 264, "gardner": [264, 297], "geoff": 264, "pleiss": 264, "david": [264, 298], "bindel": 264, "kilian": 264, "weinberg": 264, "gpytorch": [264, 297], "blackbox": 264, "matrix": [264, 298], "infer": 264, "gpu": 264, "2018": [264, 268, 297], "gbwd": 264, "rafael": 264, "bombarelli": [264, 297], "jennif": 264, "wei": 264, "duvenaud": 264, "benjam\u00edn": 264, "s\u00e1nchez": 264, "lengel": 264, "denni": 264, "sheberla": 264, "jorg": 264, "aguilera": 264, "iparraguirr": 264, "timothi": 264, "hirzel": 264, "ryan": 264, "adam": 264, "al\u00e1n": 264, "driven": 264, "central": 264, "268": 264, "276": [264, 289, 294], "februari": 264, "acscentsci": 264, "7b00572": 264, "ho96": 264, "hansen": [264, 298], "ostermei": [264, 298], "arbitrari": [264, 286], "evolut": [264, 302], "strategi": [264, 268, 298], "covari": [264, 298], "312": 264, "317": 264, "1996": [264, 298], "icec": 264, "542381": 264, "hfg": 264, "21": [264, 289, 293], "machin": 264, "drug": [264, 293], "discoveri": 264, "develop": [264, 265, 266, 290], "fifth": 264, "2021": [264, 275, 282], "8nvgnornowr": 264, "jrhernandezgarcia": 264, "moksh": 264, "jain": [264, 269], "sharath": 264, "chandra": 264, "raparthi": 264, "alex": 264, "hern": 264, "\u00e1": 264, "ndez": 264, "garc": 264, "\u0131": 264, "jarrid": 264, "rector": 264, "brook": [264, 268], "yoshua": 264, "santiago": 264, "miret": 264, "emmanuel": 264, "gf": 264, "low": 264, "kraus": 264, "emma": 264, "brunskil": 264, "kyunghyun": 264, "cho": 264, "barbara": 264, "engelhardt": 264, "sivan": 264, "sabato": 264, "jonathan": 264, "scarlett": 264, "40th": 264, "202": 264, "14631": 264, "14653": 264, "pmlr": 264, "29": 264, "jul": 264, "mlr": 264, "press": 264, "v202": 264, "jain23a": 264, "kmh": 264, "19": [264, 289], "johann": 264, "kirschner": [264, 301], "mojmir": 264, "mutni": 264, "nicol": 264, "hiller": 264, "rasmu": 264, "ischebeck": 264, "safe": 264, "high": 264, "subspac": 264, "36th": 264, "3429": 264, "3438": 264, "2019": [264, 268, 301], "v97": 264, "kirschner19a": 264, "ssw": 264, "16": [264, 270], "bobak": 264, "shahriari": [264, 297], "kevin": 264, "swerski": 264, "ziyu": 264, "wang": 264, "nando": 264, "freita": 264, "human": [264, 297], "out": [264, 273, 280, 281, 286, 287, 293, 297], "review": 264, "104": 264, "148": 264, "175": 264, "januari": 264, "jproc": 264, "2494218": 264, "sr73": 264, "shrake": [264, 270], "ruplei": [264, 270], "exposur": 264, "atom": 264, "lysozym": 264, "insulin": 264, "79": 264, "351": [264, 289], "371": 264, "sep": 264, "1973": [264, 270], "1016": 264, "0022": 264, "2836": 264, "73": 264, "90011": 264, "smg": 264, "preprint": 264, "blankdeb20": 264, "blank": [264, 302], "pymoo": [264, 302], "89497": 264, "89509": 264, "tutori": [265, 270, 289, 291, 295, 296, 297], "cover": 265, "what": [265, 274, 289, 295], "look": [265, 266, 290, 296], "poli": [265, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 294, 295, 297, 298, 301, 302, 303, 304], "live": [265, 294], "goe": [265, 270, 296], "exactli": [265, 266, 276, 279, 290], "doesn": [265, 275, 291, 294], "mani": [265, 302], "think": 265, "project": [265, 270, 289, 294], "ll": [265, 269, 270, 293, 295], "carri": 265, "let": [265, 267, 270, 289, 291, 293, 294, 296], "super_mario_bro": [265, 268, 289, 293], "pt": [265, 271], "level_util": 265, "md": [265, 266], "As": [265, 270, 289, 294, 296], "don": [265, 268, 274, 294], "end": [265, 270, 289, 291, 295], "ignor": 265, "altern": 265, "averag": 265, "abstract_black_box": [265, 296], "abstract_problem_factori": [265, 296], "problem_setup_inform": [265, 291, 296], "pythonpath": 265, "runtim": [265, 296], "imagin": 265, "your_local_depend": 265, "yourblackbox": 265, "your_arg": 265, "your_second_arg": 265, "your_kwarg": 265, "yourproblemfactori": 265, "chapter": [265, 266, 267, 268, 270, 289, 290, 291, 293, 295, 296], "your_problem": 265, "problem_info": [265, 285, 289, 291, 293, 296], "__name__": [265, 271, 274, 295, 296], "__main__": [265, 271, 274, 295, 296], "registri": [265, 289, 295], "register_problem": [265, 296], "your_problem_factori": 265, "your_env": 265, "That": [265, 276], "camel_cas": 265, "under": [265, 267, 269, 274, 275, 286, 296], "tell": 265, "though": 265, "sai": [265, 270, 286, 289, 294, 296], "channel": [265, 296], "machinelearninglifesci": [265, 266, 267, 268, 296], "dev": [265, 267, 268, 270], "java": [265, 296], "poli__mario": 265, "forg": 265, "pytorch": 265, "openjdk": 265, "cpuonli": 265, "click": [265, 268, 272, 293], "moreov": [265, 266, 290], "googl": [265, 268], "colab": [265, 268], "put": [265, 270, 302], "describ": [265, 270, 275, 276, 279, 282, 293, 295], "register": 265, "get_problem": [265, 267, 289, 293, 295, 296], "your_arg_1": 265, "mayb": 265, "your_arg_2": 265, "your_factori": 265, "thereof": 265, "At": [265, 270, 291, 293, 296], "point": [265, 270, 291, 293, 296, 297], "wrote": 265, "direct": [265, 301], "life": [265, 271], "debug": [265, 267, 271, 274, 285], "vscode": 265, "available_problem_factori": 265, "importerror": 265, "share": [265, 266, 267], "feel": [265, 266, 270, 293], "contribut": [265, 266], "case": [266, 267, 270, 273, 285, 286, 287, 290, 291, 293, 296], "poli_baselin": [266, 267, 289, 293, 295, 297, 298, 301, 302, 303, 304], "almost": [266, 290], "trivial": [266, 267, 290, 293, 296], "complic": [266, 290], "likewis": [266, 290], "explain": [266, 290, 291], "abstractsolv": [266, 289, 290], "abstract_solv": [266, 289, 290], "black_box": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "histori": [266, 289, 290, 293, 303, 304], "x0_i": 266, "y0_i": 266, "ingredi": [266, 270, 289, 290], "next_candid": [266, 289, 290, 293], "propos": [266, 290, 293], "solv": [266, 289, 290, 293, 295, 296, 297, 298, 301, 302, 303, 304], "max_it": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "next": [266, 268, 270, 289, 290, 291, 293, 295, 296], "solut": [266, 280, 290, 302], "notimplementederror": [266, 290], "subclass": [266, 290], "100": [266, 290, 293, 302, 303, 304], "rang": [266, 267, 290], "callback": 266, "pre_step_callback": 266, "turn": 266, "updat": [266, 291, 293, 298], "_": [266, 267, 297, 298, 301, 302], "post": 266, "post_step_callback": 266, "get_best_perform": [266, 289], "break_at_perform": [266, 295], "break": [266, 295], "leverag": [266, 290], "fact": [266, 290], "simplest": [266, 289, 290], "random_mut": [266, 289, 290, 293, 295], "len": [266, 290], "best_x": [266, 290], "argmax": [266, 290], "alwai": [266, 273, 286, 287, 290, 294, 296], "next_x": [266, 290], "po": [266, 290], "randint": [266, 290], "choic": [266, 290, 302], "pretti": [266, 270, 290], "lean": [266, 290], "notic": [266, 274, 279, 290, 291], "sort": [266, 285, 290, 302], "logic": [266, 290, 291], "noth": [266, 289, 290], "worri": [266, 268, 290, 296], "slightli": [266, 290, 296], "unfortun": [267, 274], "linux": [267, 274, 294], "maco": [267, 274], "top": [267, 268, 293], "therefor": [267, 294], "anaconda": 267, "went": 267, "okai": [267, 271], "anoth": [267, 270, 289, 293], "right": [267, 291], "bleed": 267, "edg": 267, "while": [267, 289], "stabl": [267, 293], "releas": [267, 270], "shell": [267, 296], "home": [267, 269, 270, 276, 277, 278], "poli_object": [267, 271, 296], "phase": 267, "short": [267, 270], "futur": [267, 270], "everyth": [267, 269, 291], "requisit": [267, 274], "openbabel": [267, 274], "white_nois": [267, 287, 289, 293], "minimal_working_exampl": 267, "plenti": 267, "complex": [267, 270, 289], "rasp": [268, 271, 272, 289, 293], "pytdc": 268, "accces": 268, "featur": [268, 271], "clash": [268, 270], "discuss": [268, 291, 293, 295, 296], "baselin": [268, 289, 291, 293, 294, 295, 297, 302], "place": [268, 269, 270], "fresh": 268, "full": [268, 270], "drawn": [268, 272], "unit": [268, 272], "word": [268, 272, 296], "spell": [268, 272], "3pbl": [268, 272, 275], "implmenet": [268, 272], "fluoresc": [268, 270, 272, 289], "On": 268, "focus": 268, "cma": 268, "es": 268, "vanilla": 268, "acquisit": [268, 297, 301], "over": 268, "encourag": 268, "gonzalezduquebartelsmichael": 268, "2024": [268, 270, 289], "gonz\u00e1lez": 268, "duqu": 268, "bartel": 268, "simon": 268, "michael": 268, "richard": 268, "month": 268, "jan": [268, 289], "titl": 268, "libari": 268, "year": 268, "drd3_dock": [268, 275, 289, 293], "graff": 268, "shakhnovich": 268, "foldx_": 268, "gfp_cba": [268, 289, 293], "park": 268, "listgarten": 268, "gfp_select": [268, 289, 293], "penalized_logp_lambo": [268, 279, 289, 293], "rdkit_": 268, "rfp_foldx_": 268, "sa_tdc": [268, 282, 289, 293], "ertl": 268, "schuffenhau": 268, "volz": 268, "toy_continuous_problem": [268, 286, 289, 293, 297, 301], "2013": 268, "coupl": [268, 296], "guid": 268, "subset": [269, 286, 298], "suit": 269, "thing": [269, 270, 289, 296], "dg": 269, "metric": 269, "recent": [269, 289, 294], "academ": 269, "licens": 269, "zip": [269, 294], "auxiliari": 269, "renam": [269, 270, 276, 277, 278], "help": 269, "mac": [269, 294], "warn": [269, 294], "unverifi": 269, "quarantin": 269, "command": [269, 270, 277, 278, 294], "own": 269, "risk": 269, "xattr": 269, "appl": [269, 294], "familiar": 270, "ourselv": 270, "alreadi": [270, 289, 293], "refresh": 270, "essenti": [270, 291], "notebook": 270, "pathlib": [270, 271, 276, 277, 278, 282, 289, 291], "shutil": 270, "path_to_foldx_fil": 270, "this_dir": [270, 271, 291], "resolv": [270, 271, 289, 291], "tmp": 270, "mkdir": [270, 291], "copyfil": 270, "respons": 270, "transport": 270, "oxigen": 270, "sperm": 270, "whale": 270, "101m": 270, "hand": 270, "urllib": 270, "web_address": 270, "rcsb": 270, "urlretriev": 270, "Of": [270, 293], "cours": [270, 293], "long": [270, 289, 296], "aid": 270, "pdb_name": 270, "choos": [270, 286], "repairpdb": [270, 277, 278], "littl": 270, "consumig": 270, "400sec": 270, "build": [270, 293, 296, 297], "101m_repair": 270, "repair_cmd": 270, "water": [270, 277, 278, 280, 289], "crystal": [270, 277, 278], "tree": 270, "fxout": 270, "unrecognized_molecul": 270, "onward": [270, 297], "inspect": [270, 271, 274], "parser": 270, "get_residu": 270, "dive": [270, 293, 295], "first_residu": 270, "resnam": 270, "index": [270, 289], "get_par": 270, "met": [270, 289, 294], "extract": 270, "sequtil": 270, "seq1": 270, "original_residu": 270, "chain_id": 270, "position_in_sequ": 270, "mutant_residu": 270, "glycin": 270, "Be": [270, 271], "care": [270, 289, 294], "fire": 270, "did": 270, "modifi": 270, "mutation_list": 270, "residue_idx": 270, "li": [270, 289], "tranform": 270, "position_in_chain": 270, "content": 270, "indiviual_list": 270, "ma0g": 270, "won": 270, "buildmodel": [270, 289], "gibb": 270, "foldx_cmd": 270, "consortium": [270, 289], "jesper": [270, 289], "freder": [270, 289], "joost": [270, 289], "lui": [270, 289], "peter": [270, 289], "vanhe": [270, 289], "erik": [270, 289], "verschueren": [270, 289], "baeten": [270, 289], "javier": [270, 289], "delgado": [270, 289], "francoi": [270, 289], "permut": [270, 289], "concept": [270, 289], "raphael": [270, 289], "gueroi": [270, 289], "backhbond": [270, 289], "142": 270, "58": 270, "sidehbond": [270, 289], "48": 270, "61": [270, 289], "energy_vdw": [270, 289], "179": 270, "63": 270, "electro": [270, 289], "energy_solvp": [270, 289], "245": 270, "28": [270, 271, 289], "energy_solvh": [270, 289], "238": 270, "89": 270, "energy_vdwclash": [270, 289], "42": [270, 289], "energy_tors": [270, 289], "70": [270, 289], "backbone_vdwclash": [270, 289], "158": 270, "entropy_sidec": [270, 289], "105": 270, "87": 270, "entropy_mainc": [270, 289], "231": 270, "69": 270, "bond": [270, 289], "00": [270, 289], "helix": [270, 289], "dipol": [270, 289], "75": [270, 289], "loop_entropi": [270, 289], "cis_bond": [270, 289], "disulfid": [270, 289], "kn": [270, 289], "electrostat": [270, 289], "partial": [270, 289], "coval": [270, 289], "energy_ionis": [270, 289], "56": 270, "entropi": [270, 289], "32": [270, 289], "meta0": 270, "gly": 270, "ok": [270, 289], "wed": 270, "feb": 270, "44": 270, "52": 270, "spend": [270, 289], "96": 270, "valid": [270, 289], "101m_repair_1": 270, "successfulli": [270, 289], "completedprocess": 270, "sjt972": [270, 289, 293, 294], "understanding_foldx": 270, "01": 270, "returncod": 270, "average_101m_repair": 270, "dif_101m_repair": 270, "pdblist_101m_repair": 270, "raw_101m_repair": 270, "wt_101m_repair_1": 270, "raw_": 270, "_repair": [270, 277, 278], "tabl": 270, "quantiti": 270, "column_nam": 270, "backbon": 270, "hbond": 270, "sidechain": 270, "van": 270, "der": 270, "waal": 270, "solvat": 270, "polar": 270, "hydrophob": 270, "mainchain": 270, "sloop_entropi": 270, "mloop_entropi": 270, "torsion": 270, "bridg": 270, "kon": 270, "ionis": 270, "pd": 270, "readlin": 270, "df": 270, "split": 270, "column": 270, "var": [270, 294], "l3": 270, "qk9dx6g958765kmn_2wn34t00000gn": 270, "ipykernel_25734": 270, "1758354106": 270, "deprecationwarn": 270, "pyarrow": 270, "major": 270, "arrow": 270, "interoper": 270, "caus": 270, "pleas": [270, 293, 294], "issu": 270, "54466": 270, "overal": 270, "31": 270, "7457": 270, "34": 270, "3436": 270, "notat": 270, "stand": [270, 293, 296], "again": 270, "wt_structur": 270, "mut_structur": 270, "pdb1": 270, "shrakeruplei": 270, "attach": [270, 291], "8407": 270, "731560227876": 270, "8439": 270, "063468009845": 270, "impact": 270, "databas": 270, "desir": [270, 289, 293, 294], "lesser": 270, "stabler": 270, "correl": 270, "present": [270, 296], "supervis": 271, "approach": 271, "network": [271, 297], "drawback": 271, "similar": 271, "foldx_stabl": [271, 278, 289, 293], "awar": [271, 297], "scale": [271, 286], "easier": 271, "poli__rasp": 271, "correct": [271, 274, 277, 278, 279, 280, 281, 285, 296], "breakpoint": [271, 274], "satisfi": [271, 274], "root": [271, 274, 276, 279, 294], "3ned": [271, 289], "__file__": 271, "wildtype_pdb_paths_for_rasp": 271, "f_rasp": 271, "wildtype_str": 271, "join": [271, 289], "three": [271, 291, 293], "three_mut": 271, "wildtype_sequ": 271, "ddg": 271, "approx": 271, "03": 271, "07": [271, 289], "clang": 271, "cmake": 271, "reduc": 271, "pin": 271, "hash": 271, "bd23a0bf627ae9b08842102a5c2e9404b4a81924": 271, "cavity_model_15": 271, "ds_model": 271, "3ccebe87e017b6bd737f88e1943557d128c85616": 271, "against": [271, 274], "checksum": 271, "satur": 271, "mutagenesi": 271, "pmo": 272, "jump": 272, "cap": 273, "prepar": 274, "autodock": 274, "vina": 274, "suppos": 274, "batteri": 274, "even": [274, 296], "poli__dockstr": [274, 294], "canon": [274, 275], "risperidon": 274, "dockstringproblemfactori": 274, "drd2": [274, 294], "risperidone_smil": 274, "cc1": 274, "n2ccccc2": 274, "n1": 274, "ccn3ccc": 274, "cc3": 274, "c4": 274, "noc5": 274, "c4c": 274, "c5": 274, "handl": [274, 277, 278, 280, 281], "hood": [274, 275], "abov": [275, 276, 279, 282, 295, 296], "success": 275, "underneath": [275, 276, 279, 282, 293], "poli__tdc": [275, 282], "text": [276, 277, 278, 296], "foldx_rfp_lambo": [276, 279, 289, 293], "poli__lambo": [276, 279], "avali": 276, "skip": 276, "decid": 276, "11189": 276, "00587946": 276, "8155": 276, "acces": [277, 282], "foldx_stability_and_sasa": [277, 278, 289, 293], "v4": [277, 278], "filenam": [277, 278], "cach": [277, 278], "your_fil": [277, 278], "heteroatom": [277, 278], "pdbtool": [277, 278], "Then": [277, 278, 280, 281], "foldx_sasa": [277, 289, 293], "poli__protein": [277, 278, 294], "carefulli": 279, "zinc": 279, "coeffici": 280, "octanol": 280, "rdkit_logp": [280, 289, 293, 294], "carbon": [280, 281], "6361": 280, "rdkit_q": [281, 289, 293], "35978494": 281, "assert": [281, 295], "isclos": 281, "8548": 282, "run_info": [285, 289], "link": 285, "peopl": 286, "sum_": 286, "x_d": 286, "saasbo": 286, "assumpt": 286, "roughli": 286, "speak": 286, "question": 286, "30d": 286, "dimensions_to_embed_in": 286, "mathcal": 287, "But": 288, "idea": [288, 289], "rc": 289, "sit": 289, "rfp_foldx_stability_and_sasa": [289, 293], "stick": 289, "red": 289, "explor": [289, 297], "ls": 289, "3ned_repair": 289, "optimizing_protein_st": 289, "ipynb": 289, "mrogu": 289, "hopefulli": 289, "remind": 289, "forgot": 289, "traceback": [289, 294], "138": 289, "typeerror": 289, "got": 289, "unexpect": 289, "176": [289, 294], "145": [289, 294], "cell": [289, 294], "439": [289, 294], "437": [289, 294], "438": [289, 294], "__create_as_isolated_process": [289, 294], "440": [289, 294], "441": [289, 294], "442": [289, 294], "443": [289, 294], "444": [289, 294], "445": [289, 294], "446": [289, 294], "447": [289, 294], "448": [289, 294], "449": [289, 294], "problem_inform": [289, 294], "451": [289, 294], "278": [289, 294], "tb": [289, 294], "msg": [289, 294], "277": [289, 294], "279": [289, 294], "280": [289, 294], "281": [289, 294], "msg_type": [289, 294], "282": [289, 294], "five": 289, "section": [289, 295, 296], "select": [289, 293, 301], "alter": 289, "special": [289, 293], "n_iter": 289, "178": 289, "76": 289, "267": 289, "80": 289, "13": 289, "374": 289, "65": 289, "17": 289, "146": 289, "340": 289, "27": 289, "77": [289, 294], "41": 289, "na194f": 289, "asna194": 289, "193": 289, "phe": 289, "fri": 289, "09": 289, "51": 289, "54": 289, "3ned_repair_1": 289, "qa114": 289, "glna114": 289, "113": 289, "ser": 289, "da3m": 289, "aspa3": 289, "kei": [289, 295], "get_best_solut": [289, 293, 295, 302, 303, 304], "41639": 289, "0629": 289, "5983": 289, "1298": 289, "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslsdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayftntklditshnedytiveqyernegrhstggmdelyk": 289, "appli": 290, "part": [291, 294], "compar": [291, 294], "qualiti": 291, "save": 291, "json": 291, "mlflow": 291, "weight": 291, "bias": 291, "abstract_observ": 291, "skeleton": 291, "simpleobserv": 291, "init": 291, "servic": 291, "wandb": 291, "adjac": 291, "identifi": 291, "uuid4": 291, "metadata": 291, "uuid": 291, "experiment_path": 291, "as_dict": 291, "recal": 291, "tolist": 291, "dump": 291, "curiou": 291, "rememb": [291, 296], "invent": 291, "wheel": 291, "tensorboard": 291, "fp": 291, "snippet": [291, 295], "scenario": 291, "z": 291, "were": [291, 294], "accordingli": 291, "migu": 291, "flea": [291, 296], "showcas": 291, "behind": 291, "saw": 291, "overwritten": 291, "deeper": [293, 295], "intro": 293, "treat": 293, "anyth": 293, "further": 293, "page": [293, 296], "randommut": [293, 295, 303, 304], "anaconda3": [293, 294], "docs2": [293, 294], "lib": [293, 294], "python3": [293, 294], "tqdm": 293, "auto": 293, "tqdmwarn": 293, "iprogress": 293, "jupyt": 293, "ipywidget": 293, "readthedoc": 293, "io": 293, "user_instal": 293, "autonotebook": 293, "notebook_tqdm": 293, "16173153": 293, "dtype": 293, "u1": 293, "talk": 293, "babel": 294, "No": 294, "freez": 294, "grep": 294, "135": 294, "dynamically_instanti": 294, "102": 294, "92": 294, "exec": 294, "modulenotfounderror": 294, "critic": 294, "opt": 294, "homebrew": 294, "condabin": 294, "autodock_vina_1_1_2_mac_catalina_64bit": 294, "usr": 294, "cryptex": 294, "app": 294, "sbin": 294, "cryptexd": 294, "codex": 294, "bootstrap": 294, "appleintern": 294, "tex": 294, "texbin": 294, "cargo": 294, "using_poli": 294, "the_bas": 294, "python39": 294, "dynload": 294, "externalblackbox": 294, "num_evalu": 294, "dockstringwarn": 294, "although": 294, "perfectli": 294, "match": [294, 296], "platform": 294, "report": 294, "f_logp": 294, "x0_logp": 294, "y0_logp": 294, "logpblackbox": 294, "combin": 295, "optimizing_aloha": 295, "01_a_simple_example_of_optim": 295, "our_aloha": [295, 296], "past": 295, "haven": 295, "realli": 295, "Its": 295, "summari": 295, "less": 295, "conclud": 295, "takeawai": 295, "independ": 295, "why": 295, "registering_aloha": 296, "search": [296, 297], "aloof": 296, "syntax": 296, "ouralohablackbox": 296, "sum": 296, "axi": 296, "keepdim": 296, "get_max_sequence_length": 296, "x_0": 296, "alohablackbox": 296, "ascii_uppercas": 296, "ouralohaproblemfactori": 296, "interpret": 296, "poli_aloha": 296, "poli_aloha_problem": 296, "yourself": 296, "aloha_problem_factori": 296, "somewher": 296, "workhors": 296, "querying_aloha": 296, "emphas": 296, "amaz": 296, "x1": 296, "y1": 296, "subtl": 296, "cheminformat": 296, "mechan": 296, "solver": [296, 297, 298, 301, 302, 303, 304], "approxim": 297, "tild": 297, "boldsymbol": [297, 298], "surrog": 297, "render": 297, "smartli": 297, "balanc": 297, "exploit": 297, "grid": 297, "vanillabayesianoptim": 297, "f_acklei": [297, 301], "randn": [297, 301], "clip": [297, 301], "bo_solv": 297, "great": 297, "mostli": 297, "intent": 297, "adversari": 297, "gan": 297, "maintain": 298, "mu": 298, "sigma": 298, "member": 298, "introduct": 298, "blogpost": 298, "pycma": 298, "cma_e": 298, "toycontinuousproblemfactori": 298, "population_s": [298, 302], "initial_mean": 298, "initial_sigma": 298, "restrict": 301, "coordin": 301, "singletaskgp": 301, "type_of_lin": 301, "non": 302, "domin": 302, "mate": 302, "procedur": 302, "upon": 302, "alohaproblemfactori": [302, 303, 304], "multi_objective_black_box": 302, "multiobjectiveblackbox": 302, "discretensgaii": 302, "hyperparamet": 302, "max_iter": 302, "num_mut": 302, "f_aloha": 302, "togeth": 302, "popul": 302}, "objects": {"": [[0, 0, 0, "-", "poli"]], "poli": [[1, 0, 0, "-", "core"], [88, 0, 0, "-", "objective"], [92, 0, 0, "-", "objective_factory"], [97, 0, 0, "-", "objective_repository"], [226, 0, 0, "-", "registered_objectives"], [227, 0, 0, "-", "tests"]], "poli.core": [[2, 0, 0, "-", "abstract_black_box"], [5, 0, 0, "-", "abstract_problem_factory"], [8, 0, 0, "-", "chemistry"], [11, 0, 0, "-", "exceptions"], [14, 0, 0, "-", "multi_objective_black_box"], [16, 0, 0, "-", "problem_setup_information"], [18, 0, 0, "-", "proteins"], [21, 0, 0, "-", "registry"], [30, 0, 0, "-", "util"]], "poli.core.abstract_black_box": [[3, 1, 1, "", "AbstractBlackBox"], [4, 1, 1, "", "NegativeBlackBox"]], "poli.core.abstract_black_box.AbstractBlackBox": [[3, 2, 1, "", "__call__"], [3, 2, 1, "", "__del__"], [3, 2, 1, "", "__enter__"], [3, 2, 1, "", "__exit__"], [3, 2, 1, "", "__init__"], [3, 2, 1, "", "__neg__"], [3, 2, 1, "", "_black_box"], [3, 3, 1, "", "batch_size"], [3, 3, 1, "", "info"], [3, 3, 1, "", "num_workers"], [3, 3, 1, "", "observer"], [3, 3, 1, "", "observer_info"], [3, 3, 1, "", "parallelize"], [3, 2, 1, "", "reset_evaluation_budget"], [3, 2, 1, "", "set_observer"], [3, 2, 1, "", "terminate"]], "poli.core.abstract_black_box.NegativeBlackBox": [[4, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory": [[6, 1, 1, "", "AbstractProblemFactory"], [7, 1, 1, "", "MetaProblemFactory"]], "poli.core.abstract_problem_factory.AbstractProblemFactory": [[6, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory.MetaProblemFactory": [[7, 2, 1, "", "__init__"]], "poli.core.chemistry": [[9, 0, 0, "-", "tdc_black_box"]], "poli.core.chemistry.tdc_black_box": [[10, 1, 1, "", "TDCBlackBox"]], "poli.core.chemistry.tdc_black_box.TDCBlackBox": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "from_smiles"], [10, 3, 1, "", "oracle"]], "poli.core.exceptions": [[12, 4, 1, "", "BudgetExhaustedException"], [13, 4, 1, "", "PoliException"]], "poli.core.multi_objective_black_box": [[15, 1, 1, "", "MultiObjectiveBlackBox"]], "poli.core.multi_objective_black_box.MultiObjectiveBlackBox": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "_black_box"], [15, 3, 1, "", "objective_functions"]], "poli.core.problem_setup_information": [[17, 1, 1, "", "ProblemSetupInformation"]], "poli.core.problem_setup_information.ProblemSetupInformation": [[17, 2, 1, "", "__init__"]], "poli.core.proteins": [[19, 0, 0, "-", "foldx_black_box"]], "poli.core.proteins.foldx_black_box": [[20, 1, 1, "", "FoldxBlackBox"]], "poli.core.proteins.foldx_black_box.FoldxBlackBox": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "create_working_directory"], [20, 3, 1, "", "experiment_id"], [20, 3, 1, "", "tmp_folder"], [20, 3, 1, "", "wildtype_amino_acids"], [20, 3, 1, "", "wildtype_pdb_paths"], [20, 3, 1, "", "wildtype_residue_strings"], [20, 3, 1, "", "wildtype_residues"]], "poli.core.registry": [[22, 5, 1, "", "delete_observer_run_script"], [23, 5, 1, "", "delete_problem"], [24, 5, 1, "", "get_problem_factories"], [25, 5, 1, "", "get_problems"], [26, 5, 1, "", "register_problem"], [27, 5, 1, "", "register_problem_from_repository"], [28, 5, 1, "", "set_observer"], [29, 5, 1, "", "set_observer_run_script"]], "poli.core.util": [[31, 0, 0, "-", "abstract_observer"], [33, 0, 0, "-", "alignment"], [35, 0, 0, "-", "batch"], [38, 0, 0, "-", "chemistry"], [45, 0, 0, "-", "external_observer"], [47, 0, 0, "-", "files"], [53, 0, 0, "-", "inter_process_communication"], [57, 0, 0, "-", "objective_management"], [61, 0, 0, "-", "observer_wrapper"], [63, 0, 0, "-", "proteins"], [84, 0, 0, "-", "seeding"]], "poli.core.util.abstract_observer": [[32, 1, 1, "", "AbstractObserver"]], "poli.core.util.abstract_observer.AbstractObserver": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "finish"], [32, 2, 1, "", "observe"]], "poli.core.util.alignment": [[34, 0, 0, "-", "is_aligned"]], "poli.core.util.batch": [[36, 0, 0, "-", "batch_input"]], "poli.core.util.batch.batch_input": [[37, 5, 1, "", "batched"]], "poli.core.util.chemistry": [[39, 0, 0, "-", "string_to_molecule"]], "poli.core.util.chemistry.string_to_molecule": [[40, 5, 1, "", "selfies_to_molecules"], [41, 5, 1, "", "smiles_to_molecules"], [42, 5, 1, "", "strings_to_molecules"], [43, 5, 1, "", "translate_selfies_to_smiles"], [44, 5, 1, "", "translate_smiles_to_selfies"]], "poli.core.util.external_observer": [[46, 1, 1, "", "ExternalObserver"]], "poli.core.util.external_observer.ExternalObserver": [[46, 2, 1, "", "__getattr__"], [46, 2, 1, "", "__init__"], [46, 2, 1, "", "finish"], [46, 2, 1, "", "initialize_observer"], [46, 2, 1, "", "observe"]], "poli.core.util.files": [[48, 0, 0, "-", "download_files_from_github"], [51, 0, 0, "-", "integrity"]], "poli.core.util.files.download_files_from_github": [[49, 5, 1, "", "download_file_from_github_repository"], [50, 5, 1, "", "get_sha_for_tag"]], "poli.core.util.files.integrity": [[52, 5, 1, "", "compute_md5_from_filepath"]], "poli.core.util.inter_process_communication": [[54, 0, 0, "-", "process_wrapper"]], "poli.core.util.inter_process_communication.process_wrapper": [[55, 1, 1, "", "ProcessWrapper"], [56, 5, 1, "", "get_connection"]], "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper": [[55, 2, 1, "", "__init__"]], "poli.core.util.objective_management": [[58, 0, 0, "-", "make_run_script"]], "poli.core.util.objective_management.make_run_script": [[59, 5, 1, "", "make_observer_script"], [60, 5, 1, "", "make_run_script"]], "poli.core.util.observer_wrapper": [[62, 5, 1, "", "start_observer_process"]], "poli.core.util.proteins": [[64, 0, 0, "-", "defaults"], [65, 0, 0, "-", "foldx"], [67, 0, 0, "-", "mutations"], [71, 0, 0, "-", "pdb_parsing"], [75, 0, 0, "-", "rasp"]], "poli.core.util.proteins.foldx": [[66, 1, 1, "", "FoldxInterface"]], "poli.core.util.proteins.foldx.FoldxInterface": [[66, 2, 1, "", "__init__"], [66, 2, 1, "", "_compute_sasa"], [66, 2, 1, "", "_read_energy"], [66, 2, 1, "", "_repair_if_necessary_and_provide_path"], [66, 2, 1, "", "_simulate_mutations"], [66, 2, 1, "", "compute_sasa"], [66, 2, 1, "", "compute_stability"], [66, 2, 1, "", "compute_stability_and_sasa"], [66, 2, 1, "", "copy_foldx_files"], [66, 2, 1, "", "repair"], [66, 3, 1, "", "verbose"], [66, 3, 1, "", "working_dir"], [66, 2, 1, "", "write_mutations_to_file"]], "poli.core.util.proteins.mutations": [[68, 5, 1, "", "edits_between_strings"], [69, 5, 1, "", "find_closest_wildtype_pdb_file_to_mutant"], [70, 5, 1, "", "mutations_from_wildtype_residues_and_mutant"]], "poli.core.util.proteins.pdb_parsing": [[72, 5, 1, "", "parse_pdb_as_residue_strings"], [73, 5, 1, "", "parse_pdb_as_residues"], [74, 5, 1, "", "parse_pdb_as_structure"]], "poli.core.util.proteins.rasp": [[76, 0, 0, "-", "inner_rasp"], [82, 6, 1, "", "load_models"], [83, 6, 1, "", "rasp_interface"]], "poli.core.util.proteins.rasp.inner_rasp": [[77, 6, 1, "", "PrismData"], [78, 6, 1, "", "cavity_model"], [79, 6, 1, "", "helpers"], [80, 6, 1, "", "run_pipeline"], [81, 6, 1, "", "visualization"]], "poli.core.util.seeding": [[85, 0, 0, "-", "seeding"]], "poli.core.util.seeding.seeding": [[86, 5, 1, "", "seed_numpy"], [87, 5, 1, "", "seed_python"]], "poli.objective": [[89, 5, 1, "", "dynamically_instantiate"], [90, 5, 1, "", "parse_factory_kwargs"], [91, 5, 1, "", "run"]], "poli.objective_factory": [[93, 1, 1, "", "ExternalBlackBox"], [94, 5, 1, "", "create"], [95, 5, 1, "", "load_config"], [96, 5, 1, "", "start"]], "poli.objective_factory.ExternalBlackBox": [[93, 2, 1, "", "__init__"]], "poli.objective_repository": [[98, 0, 0, "-", "aloha"], [102, 0, 0, "-", "dockstring"], [106, 0, 0, "-", "drd3_docking"], [110, 0, 0, "-", "foldx_rfp_lambo"], [116, 0, 0, "-", "foldx_sasa"], [121, 0, 0, "-", "foldx_stability"], [126, 0, 0, "-", "foldx_stability_and_sasa"], [130, 0, 0, "-", "gfp_cbas"], [162, 0, 0, "-", "gfp_select"], [166, 0, 0, "-", "penalized_logp_lambo"], [170, 0, 0, "-", "rasp"], [172, 0, 0, "-", "rdkit_logp"], [176, 0, 0, "-", "rdkit_qed"], [180, 0, 0, "-", "rfp_foldx_stability_and_sasa"], [182, 0, 0, "-", "sa_tdc"], [186, 0, 0, "-", "super_mario_bros"], [199, 0, 0, "-", "toy_continuous_problem"], [222, 0, 0, "-", "white_noise"]], "poli.objective_repository.aloha": [[99, 0, 0, "-", "register"]], "poli.objective_repository.aloha.register": [[100, 1, 1, "", "AlohaBlackBox"], [101, 1, 1, "", "AlohaProblemFactory"]], "poli.objective_repository.aloha.register.AlohaBlackBox": [[100, 2, 1, "", "__init__"], [100, 2, 1, "", "_black_box"], [100, 3, 1, "", "alphabet"]], "poli.objective_repository.aloha.register.AlohaProblemFactory": [[101, 2, 1, "", "__init__"], [101, 2, 1, "", "create"], [101, 2, 1, "", "get_setup_information"]], "poli.objective_repository.dockstring": [[103, 0, 0, "-", "register"]], "poli.objective_repository.dockstring.register": [[104, 1, 1, "", "DockstringBlackBox"], [105, 1, 1, "", "DockstringProblemFactory"]], "poli.objective_repository.dockstring.register.DockstringBlackBox": [[104, 2, 1, "", "__init__"], [104, 2, 1, "", "_black_box"], [104, 3, 1, "", "alphabet"]], "poli.objective_repository.dockstring.register.DockstringProblemFactory": [[105, 2, 1, "", "__init__"], [105, 2, 1, "", "create"], [105, 2, 1, "", "get_setup_information"]], "poli.objective_repository.drd3_docking": [[107, 0, 0, "-", "register"]], "poli.objective_repository.drd3_docking.register": [[108, 1, 1, "", "DRD3BlackBox"], [109, 1, 1, "", "DRD3ProblemFactory"]], "poli.objective_repository.drd3_docking.register.DRD3BlackBox": [[108, 2, 1, "id0", "__init__"], [108, 3, 1, "", "oracle_name"]], "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory": [[109, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo": [[111, 0, 0, "-", "register"]], "poli.objective_repository.foldx_rfp_lambo.register": [[112, 3, 1, "", "Config"], [113, 1, 1, "", "RFPWrapper"], [114, 1, 1, "", "RFPWrapperFactory"], [115, 5, 1, "", "get_config"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper": [[113, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory": [[114, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa": [[118, 0, 0, "-", "register"]], "poli.objective_repository.foldx_sasa.register": [[119, 1, 1, "", "FoldXSASABlackBox"], [120, 1, 1, "", "FoldXSASAProblemFactory"]], "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox": [[119, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory": [[120, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability": [[123, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability.register": [[124, 1, 1, "", "FoldXStabilityBlackBox"], [125, 1, 1, "", "FoldXStabilityProblemFactory"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox": [[124, 2, 1, "", "__init__"], [124, 2, 1, "", "_black_box"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory": [[125, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa": [[127, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability_and_sasa.register": [[128, 1, 1, "", "FoldXStabilityAndSASABlackBox"], [129, 1, 1, "", "FoldXStabilityAndSASAProblemFactory"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox": [[128, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory": [[129, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas": [[131, 0, 0, "-", "abstract_vae_wrapper"], [133, 0, 0, "-", "cbas_alphabet_preprocessing"], [148, 0, 0, "-", "cbas_wrapper"], [152, 0, 0, "-", "gfp_gp"], [153, 0, 0, "-", "make_vae"], [159, 0, 0, "-", "register"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper": [[132, 1, 1, "", "AbstractVAEWrapper"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper": [[132, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing": [[134, 5, 1, "", "convert_aas_to_idx_array"], [135, 5, 1, "", "convert_idx_array_to_aas"], [136, 5, 1, "", "convert_mutations_to_sequence"], [137, 5, 1, "", "get_argmax"], [138, 5, 1, "", "get_balaji_predictions"], [139, 5, 1, "", "get_experimental_X_y"], [140, 5, 1, "", "get_gfp_X_y_aa"], [141, 5, 1, "", "get_gfp_base_seq"], [142, 5, 1, "", "get_samples"], [143, 5, 1, "", "one_hot_encode_aa"], [144, 5, 1, "", "one_hot_encode_aa_array"], [145, 5, 1, "", "one_hot_encode_dna"], [146, 5, 1, "", "partition_data"], [147, 5, 1, "", "read_gfp_data"]], "poli.objective_repository.gfp_cbas.cbas_wrapper": [[149, 1, 1, "", "CBASVAEWrapper"], [150, 1, 1, "", "ConvertedTorchVaeDecoder"], [151, 1, 1, "", "ConvertedTorchVaeEncoder"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper": [[149, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder": [[150, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder": [[151, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae": [[154, 1, 1, "", "BaseVAE"], [155, 1, 1, "", "SimpleVAE"], [156, 5, 1, "", "build_vae"], [157, 5, 1, "", "identity_loss"], [158, 5, 1, "", "summed_categorical_crossentropy"]], "poli.objective_repository.gfp_cbas.make_vae.BaseVAE": [[154, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE": [[155, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register": [[160, 1, 1, "", "GFPCBasBlackBox"], [161, 1, 1, "", "GFPCBasProblemFactory"]], "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox": [[160, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory": [[161, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select": [[163, 0, 0, "-", "register"]], "poli.objective_repository.gfp_select.register": [[164, 1, 1, "", "GFPBlackBox"], [165, 1, 1, "", "GFPSelectionProblemFactory"]], "poli.objective_repository.gfp_select.register.GFPBlackBox": [[164, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory": [[165, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo": [[167, 0, 0, "-", "register"]], "poli.objective_repository.penalized_logp_lambo.register": [[168, 1, 1, "", "PenalizedLogPLamboBlackBox"], [169, 1, 1, "", "PenalizedLogPLamboProblemFactory"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox": [[168, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory": [[169, 2, 1, "", "__init__"]], "poli.objective_repository.rasp": [[171, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp": [[173, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp.register": [[174, 1, 1, "", "LogPBlackBox"], [175, 1, 1, "", "LogPProblemFactory"]], "poli.objective_repository.rdkit_logp.register.LogPBlackBox": [[174, 2, 1, "", "__init__"], [174, 2, 1, "", "_black_box"], [174, 3, 1, "", "from_selfies"], [174, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_logp.register.LogPProblemFactory": [[175, 2, 1, "", "__init__"]], "poli.objective_repository.rdkit_qed": [[177, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_qed.register": [[178, 1, 1, "", "QEDBlackBox"], [179, 1, 1, "", "QEDProblemFactory"]], "poli.objective_repository.rdkit_qed.register.QEDBlackBox": [[178, 2, 1, "", "__init__"], [178, 2, 1, "", "_black_box"], [178, 3, 1, "", "from_selfies"], [178, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_qed.register.QEDProblemFactory": [[179, 2, 1, "", "__init__"], [179, 2, 1, "", "create"], [179, 2, 1, "", "get_setup_information"]], "poli.objective_repository.rfp_foldx_stability_and_sasa": [[181, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc": [[183, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc.register": [[184, 1, 1, "", "SABlackBox"], [185, 1, 1, "", "SAProblemFactory"]], "poli.objective_repository.sa_tdc.register.SABlackBox": [[184, 2, 1, "", "__init__"]], "poli.objective_repository.sa_tdc.register.SAProblemFactory": [[185, 2, 1, "", "__init__"], [185, 2, 1, "", "create"], [185, 2, 1, "", "get_setup_information"]], "poli.objective_repository.super_mario_bros": [[187, 0, 0, "-", "level_utils"], [196, 0, 0, "-", "model"]], "poli.objective_repository.super_mario_bros.level_utils": [[188, 5, 1, "", "add_padding_to_level"], [189, 5, 1, "", "clean_level"], [190, 5, 1, "", "level_to_array"], [191, 5, 1, "", "level_to_list"], [192, 5, 1, "", "levels_to_onehot"], [193, 5, 1, "", "onehot_to_levels"], [194, 5, 1, "", "tensor_to_sim_level"], [195, 5, 1, "", "vectorized"]], "poli.objective_repository.super_mario_bros.model": [[197, 1, 1, "", "VAEMario"], [198, 5, 1, "", "load_example_model"]], "poli.objective_repository.super_mario_bros.model.VAEMario": [[197, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem": [[200, 0, 0, "-", "definitions"], [217, 0, 0, "-", "register"], [220, 0, 0, "-", "toy_continuous_problem"]], "poli.objective_repository.toy_continuous_problem.definitions": [[201, 5, 1, "", "ackley_function_01"], [202, 5, 1, "", "alpine_01"], [203, 5, 1, "", "alpine_02"], [204, 5, 1, "", "bent_cigar"], [205, 5, 1, "", "brown"], [206, 5, 1, "", "camelback_2d"], [207, 5, 1, "", "chung_reynolds"], [208, 5, 1, "", "cosine_mixture"], [209, 5, 1, "", "cross_in_tray"], [210, 5, 1, "", "deb_01"], [211, 5, 1, "", "deb_02"], [212, 5, 1, "", "deflected_corrugated_spring"], [213, 5, 1, "", "easom"], [214, 5, 1, "", "egg_holder"], [215, 5, 1, "", "shifted_sphere"], [216, 5, 1, "", "styblinski_tang"]], "poli.objective_repository.toy_continuous_problem.register": [[218, 1, 1, "", "ToyContinuousBlackBox"], [219, 1, 1, "", "ToyContinuousProblemFactory"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox": [[218, 2, 1, "", "__init__"], [218, 2, 1, "", "_black_box"], [218, 3, 1, "", "alphabet"], [218, 3, 1, "", "bounds"], [218, 3, 1, "", "embed_in"], [218, 3, 1, "", "function"], [218, 3, 1, "", "function_name"], [218, 3, 1, "", "n_dimensions"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory": [[219, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem": [[221, 1, 1, "", "ToyContinuousProblem"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem": [[221, 2, 1, "", "__init__"]], "poli.objective_repository.white_noise": [[223, 0, 0, "-", "register"]], "poli.objective_repository.white_noise.register": [[224, 1, 1, "", "WhiteNoiseBlackBox"], [225, 1, 1, "", "WhiteNoiseProblemFactory"]], "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox": [[224, 2, 1, "", "__init__"], [224, 2, 1, "", "_black_box"]], "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory": [[225, 2, 1, "", "__init__"]], "poli.tests": [[228, 0, 0, "-", "docs_examples"], [236, 0, 0, "-", "registry"], [255, 0, 0, "-", "test_minimal_working_example"], [257, 0, 0, "-", "test_seeding"], [259, 0, 0, "-", "util"]], "poli.tests.docs_examples": [[229, 0, 0, "-", "test_objective_functions"]], "poli.tests.docs_examples.test_objective_functions": [[230, 5, 1, "", "test_aloha_example"], [231, 5, 1, "", "test_logp_example"], [233, 5, 1, "", "test_qed_example"], [235, 5, 1, "", "test_white_noise_example"]], "poli.tests.registry": [[237, 0, 0, "-", "basic_objectives"], [242, 0, 0, "-", "chemistry"], [244, 0, 0, "-", "proteins"], [248, 0, 0, "-", "test_basic_loop_without_create"], [249, 0, 0, "-", "test_force_isolation"], [251, 0, 0, "-", "toy_continuous_problems"]], "poli.tests.registry.basic_objectives": [[238, 0, 0, "-", "test_basic_objectives"]], "poli.tests.registry.basic_objectives.test_basic_objectives": [[239, 5, 1, "", "test_registering_aloha"], [240, 5, 1, "", "test_registering_white_noise"]], "poli.tests.registry.toy_continuous_problems": [[252, 0, 0, "-", "test_embedding_problems_into_higher_dims"]], "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims": [[253, 5, 1, "", "test_embed_camelback_into_high_dimensions"]], "poli.tests.test_minimal_working_example": [[256, 5, 1, "", "test_minimal_working_example"]], "poli.tests.test_seeding": [[258, 5, 1, "", "test_seeding_in_white_noise"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"poli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, 268, 292, 293, 296], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 291], "abstract_black_box": [2, 3, 4], "abstractblackbox": 3, "negativeblackbox": 4, "abstract_problem_factori": [5, 6, 7], "abstractproblemfactori": 6, "metaproblemfactori": 7, "chemistri": [8, 9, 10, 38, 39, 40, 41, 42, 43, 44, 242, 243], "tdc_black_box": [9, 10], "tdcblackbox": 10, "except": [11, 12, 13], "budgetexhaustedexcept": 12, "poliexcept": 13, "multi_objective_black_box": [14, 15], "multiobjectiveblackbox": 15, "problem_setup_inform": [16, 17], "problemsetupinform": 17, "protein": [18, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 244, 245, 246, 247, 268, 270, 272, 276, 277, 278, 289], "foldx_black_box": [19, 20], "foldxblackbox": 20, "registri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 296], "delete_observer_run_script": 22, "delete_problem": 23, "get_problem_factori": 24, "get_problem": 25, "register_problem": 26, "register_problem_from_repositori": 27, "set_observ": 28, "set_observer_run_script": 29, "util": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 259, 260, 261], "abstract_observ": [31, 32], "abstractobserv": 32, "align": [33, 34], "is_align": 34, "batch": [35, 36, 37, 290], "batch_input": [36, 37], "string_to_molecul": [39, 40, 41, 42, 43, 44], "selfies_to_molecul": 40, "smiles_to_molecul": 41, "strings_to_molecul": 42, "translate_selfies_to_smil": 43, "translate_smiles_to_selfi": 44, "external_observ": [45, 46], "externalobserv": 46, "file": [47, 48, 49, 50, 51, 52, 270, 275, 277, 278], "download_files_from_github": [48, 49, 50], "download_file_from_github_repositori": 49, "get_sha_for_tag": 50, "integr": [51, 52], "compute_md5_from_filepath": 52, "inter_process_commun": [53, 54, 55, 56], "process_wrapp": [54, 55, 56], "processwrapp": 55, "get_connect": 56, "objective_manag": [57, 58, 59, 60], "make_run_script": [58, 59, 60], "make_observer_script": 59, "observer_wrapp": [61, 62], "start_observer_process": 62, "default": 64, "foldx": [65, 66, 269, 276, 277, 278], "foldxinterfac": 66, "mutat": [67, 68, 69, 70, 270, 289, 303], "edits_between_str": 68, "find_closest_wildtype_pdb_file_to_mut": 69, "mutations_from_wildtype_residues_and_mut": 70, "pdb_pars": [71, 72, 73, 74], "parse_pdb_as_residue_str": 72, "parse_pdb_as_residu": 73, "parse_pdb_as_structur": 74, "rasp": [75, 76, 77, 78, 79, 80, 81, 82, 83, 170, 171], "inner_rasp": [76, 77, 78, 79, 80, 81], "prismdata": 77, "cavity_model": 78, "helper": 79, "run_pipelin": 80, "visual": 81, "load_model": 82, "rasp_interfac": 83, "seed": [84, 85, 86, 87], "seed_numpi": 86, "seed_python": 87, "object": [88, 89, 90, 91, 268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "dynamically_instanti": 89, "parse_factory_kwarg": 90, "run": [91, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 288, 294, 297, 298, 301, 302, 303, 304], "objective_factori": [92, 93, 94, 95, 96], "externalblackbox": 93, "creat": [94, 106, 275, 286, 293, 296], "load_config": 95, "start": [96, 267, 268], "objective_repositori": [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "aloha": [98, 99, 100, 101, 273, 291, 295], "regist": [99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 123, 124, 125, 127, 128, 129, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 217, 218, 219, 223, 224, 225, 265, 288, 289, 295, 296], "alohablackbox": 100, "alohaproblemfactori": 101, "dockstr": [102, 103, 104, 105, 274], "dockstringblackbox": 104, "dockstringproblemfactori": 105, "drd3_dock": [106, 107, 108, 109], "prerequisit": [106, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 295], "instal": [106, 265, 267, 269, 275, 276], "autodock": [106, 275], "vina": [106, 275], "adfr": [106, 275], "suit": [106, 275], "poli__lambo": [106, 275], "environ": [106, 265, 275, 276, 279, 296], "drd3blackbox": 108, "drd3problemfactori": 109, "foldx_rfp_lambo": [110, 111, 112, 113, 114, 115], "config": 112, "rfpwrapper": 113, "rfpwrapperfactori": 114, "get_config": 115, "foldx_sasa": [116, 117, 118, 119, 120], "foldx_util": [117, 122], "foldxsasablackbox": 119, "foldxsasaproblemfactori": 120, "foldx_stabl": [121, 122, 123, 124, 125], "foldxstabilityblackbox": 124, "foldxstabilityproblemfactori": 125, "foldx_stability_and_sasa": [126, 127, 128, 129], "foldxstabilityandsasablackbox": 128, "foldxstabilityandsasaproblemfactori": 129, "gfp_cba": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161], "abstract_vae_wrapp": [131, 132], "abstractvaewrapp": 132, "cbas_alphabet_preprocess": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "convert_aas_to_idx_arrai": 134, "convert_idx_array_to_aa": 135, "convert_mutations_to_sequ": 136, "get_argmax": 137, "get_balaji_predict": 138, "get_experimental_x_i": 139, "get_gfp_x_y_aa": 140, "get_gfp_base_seq": 141, "get_sampl": 142, "one_hot_encode_aa": 143, "one_hot_encode_aa_arrai": 144, "one_hot_encode_dna": 145, "partition_data": 146, "read_gfp_data": 147, "cbas_wrapp": [148, 149, 150, 151], "cbasvaewrapp": 149, "convertedtorchvaedecod": 150, "convertedtorchvaeencod": 151, "gfp_gp": 152, "make_va": [153, 154, 155, 156, 157, 158], "baseva": 154, "simpleva": 155, "build_va": 156, "identity_loss": 157, "summed_categorical_crossentropi": 158, "gfpcbasblackbox": 160, "gfpcbasproblemfactori": 161, "gfp_select": [162, 163, 164, 165], "gfpblackbox": 164, "gfpselectionproblemfactori": 165, "penalized_logp_lambo": [166, 167, 168, 169], "penalizedlogplamboblackbox": 168, "penalizedlogplamboproblemfactori": 169, "rdkit_logp": [172, 173, 174, 175], "logpblackbox": 174, "logpproblemfactori": 175, "rdkit_q": [176, 177, 178, 179], "qedblackbox": 178, "qedproblemfactori": 179, "rfp_foldx_stability_and_sasa": [180, 181], "sa_tdc": [182, 183, 184, 185], "sablackbox": 184, "saproblemfactori": 185, "super_mario_bro": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "level_util": [187, 188, 189, 190, 191, 192, 193, 194, 195], "add_padding_to_level": 188, "clean_level": 189, "level_to_arrai": 190, "level_to_list": 191, "levels_to_onehot": 192, "onehot_to_level": 193, "tensor_to_sim_level": 194, "vector": 195, "model": [196, 197, 198], "vaemario": 197, "load_example_model": 198, "toy_continuous_problem": [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 251, 252, 253, 254], "definit": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "ackley_function_01": 201, "alpine_01": 202, "alpine_02": 203, "bent_cigar": 204, "brown": 205, "camelback_2d": 206, "chung_reynold": 207, "cosine_mixtur": 208, "cross_in_trai": 209, "deb_01": 210, "deb_02": 211, "deflected_corrugated_spr": 212, "easom": 213, "egg_hold": 214, "shifted_spher": 215, "styblinski_tang": 216, "toycontinuousblackbox": 218, "toycontinuousproblemfactori": 219, "toycontinuousproblem": 221, "white_nois": [222, 223, 224, 225], "whitenoiseblackbox": 224, "whitenoiseproblemfactori": 225, "registered_object": 226, "test": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 265, 267], "docs_exampl": [228, 229, 230, 231, 232, 233, 234, 235], "test_objective_funct": [229, 230, 231, 232, 233, 234, 235], "test_aloha_exampl": 230, "test_logp_exampl": 231, "test_logp_example_using_str": 232, "test_qed_exampl": 233, "test_qed_example_using_str": 234, "test_white_noise_exampl": 235, "basic_object": [237, 238, 239, 240, 241], "test_basic_object": [238, 239, 240], "test_registering_aloha": 239, "test_registering_white_nois": 240, "test_budget_exhaust": 241, "test_chemistry_object": 243, "test_foldx": 245, "test_foldx_rfp_lambo": 246, "test_rasp": 247, "test_basic_loop_without_cr": 248, "test_force_isol": 249, "test_passing_array_of_str": 250, "test_embedding_problems_into_higher_dim": [252, 253], "test_embed_camelback_into_high_dimens": 253, "test_instancing_of_toy_continuous_problem": 254, "test_minimal_working_exampl": [255, 256], "test_seed": [257, 258], "test_seeding_in_white_nois": 258, "test_foldx_interfac": 260, "test_protein_util": 261, "api": 263, "document": 263, "refer": [264, 304], "ad": [265, 266], "new": [265, 266], "problem": [265, 266, 268, 272, 286, 289, 290, 295, 296], "repositori": 265, "The": [265, 291, 293], "structur": 265, "A": 265, "gener": 265, "py": 265, "yml": [265, 275], "why": [265, 296], "conda": [265, 267, 296], "your": [265, 267, 293, 296], "option": 265, "make": [265, 275], "avail": 265, "depend": [265, 294, 296], "ar": [265, 270], "met": 265, "submit": [265, 266], "pull": [265, 266], "request": [265, 266], "optim": [266, 268, 283, 289, 293, 295, 297, 300, 301, 304], "baselin": [266, 267], "an": [266, 290, 291, 295, 296], "abstract": [266, 290, 291], "solver": [266, 268, 289, 290, 293, 295], "exampl": [266, 290, 291, 296], "randommut": [266, 289, 290], "get": [267, 268], "first": 267, "script": 267, "us": [267, 268, 275, 276, 277, 278, 279, 282, 289, 293], "librari": 268, "discret": [268, 296, 302], "function": [268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "black": [268, 294, 296], "box": [268, 294, 296], "toi": [268, 272, 286], "small": [268, 272], "molecul": [268, 272], "algorithm": [268, 299, 304], "cite": 268, "other": [268, 270, 272, 279], "relev": 268, "work": [268, 292], "contribut": 268, "comput": 270, "energi": 270, "singl": 270, "python": [270, 276, 279, 296], "set": [270, 275], "up": 270, "folder": [270, 275], "download": [270, 275], "pdb": 270, "repair": [270, 277, 278], "what": [270, 290, 293], "pars": 270, "wildtyp": 270, "defin": [270, 289, 290, 291, 296], "s": [270, 296], "sasa": [270, 276], "score": 270, "conclus": [270, 291, 293, 294, 295, 296], "rapid": 271, "stabil": [271, 276, 278, 289], "predict": 271, "how": [271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 292, 297, 298, 301, 302, 303, 304], "warn": 271, "further": 271, "read": [271, 294], "all": [272, 275, 291], "about": [273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 290, 297, 298, 301, 302, 303, 304], "drd3": 275, "dock": 275, "tdc": [275, 282], "add": [275, 296], "binari": 275, "path": [275, 296], "prepare_receptor": 275, "from": 275, "sure": 275, "you": [275, 277, 278, 294], "re": 275, "rfp": 276, "lambo": [276, 279], "we": [276, 277, 278], "can": [276, 277, 278], "automat": 276, "solvent": 277, "access": [277, 282], "penal": 279, "logp": [279, 280], "keyword": 279, "argument": 279, "log": [280, 291], "solubl": 280, "quantit": 281, "estim": 281, "druglik": 281, "qed": 281, "synthet": 282, "jump": 283, "super": 283, "mario": 283, "bro": 283, "therapeut": 284, "data": 284, "common": 284, "oracl": 284, "name": 285, "see": [285, 297, 302], "also": 285, "continu": 286, "low": 286, "intrins": 286, "dimension": 286, "white": 287, "nois": 287, "observ": [288, 291], "isol": [288, 294], "process": 288, "random": [289, 303], "mroug": 289, "check": 289, "result": 289, "poli_baselin": 290, "candid": 290, "want": 291, "more": [291, 294, 296, 297, 302], "complex": 291, "instanc": [291, 295], "simpl": 291, "initi": 291, "put": 291, "togeth": 291, "coupl": 291, "queri": 291, "dive": 292, "deeper": 292, "doe": 292, "under": 292, "hood": 292, "content": [292, 293], "usual": 293, "develop": 293, "loop": 293, "identifi": 293, "own": 293, "when": 294, "have": 294, "right": 294, "Is": 295, "factori": 296, "entir": 296, "need": 296, "where": 296, "thi": 296, "call": 296, "bayesian": [297, 300, 301], "cma": 298, "es": 298, "graph": 299, "genet": 299, "latent": 300, "space": 300, "line": 301, "nsga": 302, "2": 302, "templat": 304}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/poli-docs/_build/html/understanding_foldx/01-single-mutation-using-foldx/index.html b/docs/poli-docs/_build/html/understanding_foldx/01-single-mutation-using-foldx/index.html index 1aecf8ad..54f474a6 100644 --- a/docs/poli-docs/_build/html/understanding_foldx/01-single-mutation-using-foldx/index.html +++ b/docs/poli-docs/_build/html/understanding_foldx/01-single-mutation-using-foldx/index.html @@ -832,7 +832,7 @@

        Computing the mutation’s energy
           ********************************************
            ***                                      ***
        -   ***             FoldX 4 (c)              ***
        +   ***             FoldX 5 (c)            ***
            ***                                      ***
            ***     code by the FoldX Consortium     ***
            ***                                      ***
        @@ -846,6 +846,7 @@ 

        Computing the mutation’s energy
        Starting BuildModel
        +
        BackHbond       =               -142.58
        +SideHbond       =               -48.61
        +Energy_VdW      =               -179.63
        +Electro         =               -8.33
        +Energy_SolvP    =               245.28
        +Energy_SolvH    =               -238.89
        +Energy_vdwclash =               3.42
        +energy_torsion  =               6.70
        +backbone_vdwclash=              158.16
        +Entropy_sidec   =               105.87
        +Entropy_mainc   =               231.69
        +water bonds     =               0.00
        +helix dipole    =               -8.75
        +loop_entropy    =               0.00
        +cis_bond        =               0.00
        +disulfide       =               0.00
        +kn electrostatic=               0.00
        +partial covalent interactions = 0.00
        +Energy_Ionisation =             1.56
        +Entropy Complex =               0.00
        +-----------------------------------------------------------
        +Total          = 				  -32.28
        +
        +Starting BuildModel
         Reading MA0G;
         Residue to Mutate META0 has residue index 0
         Mutating residue = META0 into GLY
         
        Your file run OK
        -End time of FoldX: Fri Dec 22 12:10:14 2023
        -Total time spend: 20.63 seconds.
        +End time of FoldX: Wed Feb  7 16:44:52 2024
        +Total time spend: 22.96 seconds.
         validated file "101m_Repair_1.pdb" => successfully finished
         Cleaning BuildModel...DONE
         
        -

        Of all these columns, we are interested in the total energy (the predicted overall stability of the protein, according to foldx). Let’s check what the total energy was for both of these:

        diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/RaSP.html b/docs/poli-docs/_build/html/using_poli/objective_repository/RaSP.html index 6198ed55..2edf3d27 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/RaSP.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/RaSP.html @@ -583,7 +583,7 @@

        How to run
        conda activate poli__rasp
         

        -

        Supposing you have 3ned.pdb in the same directory as this script:

        +

        Assuming you have 3ned.pdb in the same directory as this script:

        from pathlib import Path
         
         import numpy as np
        @@ -598,7 +598,7 @@ 

        How to run# You could have more if you want. ] - problem_info, f_rasp, x0, y0, _ = objective_factory.create( + f_rasp, x0, y0 = objective_factory.create( name="rasp", wildtype_pdb_path=wildtype_pdb_paths_for_rasp, ) @@ -624,7 +624,7 @@

        How to run
        -

        Supposing you have 3ned.pdb in the same directory as this script:

        +

        Assuming you have 3ned.pdb in the same directory as this script:

        from pathlib import Path
         
         import numpy as np
        @@ -639,7 +639,7 @@ 

        How to run# You could have more if you want. ] - problem_info, f_rasp, x0, y0, _ = objective_factory.create( + f_rasp, x0, y0 = objective_factory.create( name="rasp", wildtype_pdb_path=wildtype_pdb_paths_for_rasp, ) diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/aloha.html b/docs/poli-docs/_build/html/using_poli/objective_repository/aloha.html index ae5e7ab4..81a08519 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/aloha.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/aloha.html @@ -570,7 +570,7 @@

        How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="aloha") +f, x0, y0 = objective_factory.create(name="aloha") # Example input: x = np.array([["A", "L", "O", "O", "F"]]) # must be of shape [b, L], in this case [1, 5]. diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/dockstring.html b/docs/poli-docs/_build/html/using_poli/objective_repository/dockstring.html index bde3fb06..acef7183 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/dockstring.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/dockstring.html @@ -616,7 +616,7 @@

        How to runfrom poli import objective_factory if __name__ == "__main__": - problem_info, f, x0, y0, _ = objective_factory.create( + f, x0, y0 = objective_factory.create( name="dockstring", target_name="DRD2", string_representation="SMILES", diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/drd3_docking.html b/docs/poli-docs/_build/html/using_poli/objective_repository/drd3_docking.html index 209468a8..73364965 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/drd3_docking.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/drd3_docking.html @@ -651,12 +651,12 @@

        How to run

      Make sure the data is avaliable.

      +
      @@ -619,8 +623,8 @@

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( - name="foldx_rfp", +f, x0, y0 = objective_factory.create( + name="foldx_rfp_lambo", ) # Example input: diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_sasa.html b/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_sasa.html index 76a04c12..4cbb8c5e 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_sasa.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_sasa.html @@ -607,7 +607,7 @@

      How to runwildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_sasa", wildtype_pdb_file=wildtype_pdb_file ) @@ -634,7 +634,7 @@

      How to runwildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_sasa", wildtype_pdb_file=wildtype_pdb_file, force_register=True, diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_stability.html b/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_stability.html index 6958aad2..7a7ad250 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_stability.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/foldx_stability.html @@ -607,7 +607,7 @@

      How to runwildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_stability", wildtype_pdb_file=wildtype_pdb_file ) @@ -634,7 +634,7 @@

      How to runwildtype_pdb_file = Path("path/to/wildtype.pdb") # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="foldx_stability", wildtype_pdb_file=wildtype_pdb_file, force_register=True, diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/penalized_logp_lambo.html b/docs/poli-docs/_build/html/using_poli/objective_repository/penalized_logp_lambo.html index 500ad52d..f6eed841 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/penalized_logp_lambo.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/penalized_logp_lambo.html @@ -607,7 +607,7 @@

      How to runfrom poli import objective_factory # Using create -problem_info, f, x0, y0, _ = objective_factory.create(name="penalized_logp_lambo") +f, x0, y0 = objective_factory.create(name="penalized_logp_lambo") # An example input print(x0) @@ -627,12 +627,6 @@

      Other keyword arguments:penalized: bool = True. Whether we are evaluating penalized logP or not.

    5. string_representation: str = "SMILES". Can be either "SMILES" or "SELFIES".

    6. -
      1
      diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_logp.html b/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_logp.html index 4bb3eb6e..28134b3b 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_logp.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_logp.html @@ -581,7 +581,7 @@

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_logp", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, @@ -604,7 +604,7 @@

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_logp", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_qed.html b/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_qed.html index 4beb63bb..3ca1bd97 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_qed.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/rdkit_qed.html @@ -580,7 +580,7 @@

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_qed", string_representation="SELFIES", # Can be either SMILES or SELFIES force_register=True, @@ -603,7 +603,7 @@

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="rdkit_qed", alphabet=alphabet, string_representation="SELFIES", # Can be either SMILES or SELFIES diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/sa_tdc.html b/docs/poli-docs/_build/html/using_poli/objective_repository/sa_tdc.html index fd3f8301..902df403 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/sa_tdc.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/sa_tdc.html @@ -539,13 +539,7 @@

      Contents

      @@ -568,21 +562,10 @@

      About#

      Prerequisites#

      -
      -

      Create the poli__lambo environment#

      -
      -

      Create the environment from the yml file#

      -

      This can easily be done by running

      -
      # From the base of the poli repo
      -conda env create --file src/poli/objective_repository/sa_tdc/environment.yml
      -
      -
      -
      -

      How to run#

      -

      You can only run this objective function either in the poli__lambo environment, or as an isolated process (which runs this environment underneath).

      +

      You can only run this objective function either in the poli__tdc environment, or as an isolated process (which runs this environment underneath).

      Warning

      Running this objective function will create an ./oracle folder on your working directory, where it will download the relevant files for the oracle to work.

      @@ -590,7 +573,7 @@

      How to run
      +(Isolated) in the poli__tdc environment

      After the setup described above, you can simply run the following code from

      diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/template.html b/docs/poli-docs/_build/html/using_poli/objective_repository/template.html index e724a8fa..54c7c2ea 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/template.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/template.html @@ -576,7 +576,7 @@

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="problem_name") +f, x0, y0 = objective_factory.create(name="problem_name") # Example input: x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/toy_continuous_problems.html b/docs/poli-docs/_build/html/using_poli/objective_repository/toy_continuous_problems.html index a813be24..5a9108e4 100644 --- a/docs/poli-docs/_build/html/using_poli/objective_repository/toy_continuous_problems.html +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/toy_continuous_problems.html @@ -605,7 +605,7 @@

      How to runn_dimensions = 2 # it's 2 by default. # How to create -problem_info, f, x0, y0, run_info = objective_factory.create( +f, x0, y0 = objective_factory.create( name="toy_continuous_problem", function_name=function_name, n_dimensions=n_dimensions, # For some, this can be arbitrary. @@ -623,7 +623,7 @@

      How to run

      Creating problems with low intrinsic dimensionality#

      Some optimization algorithms (like LineBO or SAASBO) rely on the assumption that there is a low intrinsic dimensionality to the problem. Roughly speaking, this means that only a subset of the variables are actually relevant to the problem in question. This poli objective allows you to create such problems. For example, consider camelback_2d (which is usually only defined in two dimensions). You can embed this function into, say, 30 dimensions by creating the objective as follows:

      -
      problem_info, f, x0, y0, run_info = objective_factory.create(
      +
      f, x0, y0 = objective_factory.create(
           name="toy_continuous_problem",
           function_name="camelback_2d",
           embed_in=30,  #  This will create a function that takes 30d input values
      diff --git a/docs/poli-docs/_build/html/using_poli/objective_repository/white_noise.html b/docs/poli-docs/_build/html/using_poli/objective_repository/white_noise.html
      index 36f24665..1f6b12f7 100644
      --- a/docs/poli-docs/_build/html/using_poli/objective_repository/white_noise.html
      +++ b/docs/poli-docs/_build/html/using_poli/objective_repository/white_noise.html
      @@ -572,7 +572,7 @@ 

      How to runfrom poli import objective_factory # How to create -problem_info, f, x0, y0, run_info = objective_factory.create(name="white_noise") +f, x0, y0 = objective_factory.create(name="white_noise") # Example input: x = np.array([["1", "2", "3"]]) # must be of shape [b, L], in this case [1, 3]. diff --git a/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html b/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html index 02a4ec0d..03ac5f18 100644 --- a/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html +++ b/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html @@ -562,7 +562,7 @@

      Stability optimization is a registered problem
      from poli.core.registry import get_problems
      -get_problems(include_repository=True)
      +get_problems(only_available=False)
       
      @@ -580,8 +580,8 @@

      Stability optimization is a registered problem
      from poli import objective_factory
       
      -problem_info, f, x0, y0, run_info = objective_factory.create(
      +f, x0, y0 = objective_factory.create(
           name="foldx_stability",
           caller_info=None,
           observer=None,
      @@ -658,87 +658,63 @@ 

      Defining the objective functionHide code cell output
      -
      poli 🧪: Creating the objective from the repository.
      +
      poli 🧪: creating an isolated black box function.
      +poli 🧪: starting the isolated objective process.
       
      -
         ********************************************
      -   ***                                      ***
      -   ***             FoldX 5 (c)            ***
      -   ***                                      ***
      -   ***     code by the FoldX Consortium     ***
      -   ***                                      ***
      -   ***     Jesper Borg, Frederic Rousseau   ***
      -   ***    Joost Schymkowitz, Luis Serrano   ***
      -   ***    Peter Vanhee, Erik Verschueren    ***
      -   ***     Lies Baeten, Javier Delgado      ***
      -   ***       and Francois Stricher          ***
      -   *** and any other of the 9! permutations ***
      -   ***   based on an original concept by    ***
      -   ***   Raphael Guerois and Luis Serrano   ***
      -   ********************************************
      -
      -1 models read: 3ned_Repair.pdb
      -1 models read: 3ned_Repair.pdb
      +
      Traceback (most recent call last):
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 138, in run
      +    f, x0, y0 = objective_factory.create(**kwargs)
      +TypeError: create() got an unexpected keyword argument 'caller_info'
       
      -
      BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      +
      Traceback (most recent call last):
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 176, in <module>
      +    run(factory_kwargs[0], args.objective_name, args.port, args.password)
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 145, in run
      +    raise e
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 138, in run
      +    f, x0, y0 = objective_factory.create(**kwargs)
      +TypeError: create() got an unexpected keyword argument 'caller_info'
       
      -
      BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -Starting BuildModel
      -Reading EA1E;
      -Residue to Mutate GLUA1 has residue index 0
      -Mutating residue = GLUA1 into GLU
      -
      -
      -
      Your file run OK
      -End time of FoldX: Fri Jan 19 09:18:37 2024
      -Total time spend: 2.67 seconds.
      -validated file "3ned_Repair_1.pdb" => successfully finished
      -Cleaning BuildModel...DONE
      +
      ---------------------------------------------------------------------------
      +TypeError                                 Traceback (most recent call last)
      +Cell In[5], line 3
      +      1 from poli import objective_factory
      +----> 3 f, x0, y0 = objective_factory.create(
      +      4     name="foldx_stability",
      +      5     caller_info=None,
      +      6     observer=None,
      +      7     wildtype_pdb_path=wildtype_pdb_path
      +      8 )
      +
      +File ~/Projects/poli/src/poli/objective_factory.py:439, in create(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      +    437 if not quiet:
      +    438     print(f"poli 🧪: creating an isolated black box function.")
      +--> 439 f, x0, y0 = __create_as_isolated_process(
      +    440     name,
      +    441     seed=seed,
      +    442     batch_size=batch_size,
      +    443     parallelize=parallelize,
      +    444     num_workers=num_workers,
      +    445     evaluation_budget=evaluation_budget,
      +    446     quiet=quiet,
      +    447     **kwargs_for_factory,
      +    448 )
      +    449 problem_information = f.info
      +    451 # instantiate observer (if desired)
      +
      +File ~/Projects/poli/src/poli/objective_factory.py:278, in __create_as_isolated_process(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      +    276     e, tb = msg
      +    277     print(tb)
      +--> 278     raise e
      +    279 else:
      +    280     raise ValueError(
      +    281         f"Internal error: received {msg_type} when expecting SETUP or EXCEPTION"
      +    282     )
      +
      +TypeError: create() got an unexpected keyword argument 'caller_info'
       
      @@ -809,9 +785,8 @@

      Optimizing using a
      BackHbond       =               -178.70
      +
      +BackHbond       =               -178.70
       SideHbond       =               -76.61
       Energy_VdW      =               -267.80
       Electro         =               -13.75
      @@ -821,7 +796,7 @@ 

      Optimizing using a
      BackHbond       =               -178.70
      +Total          = 				  -9.41
      +
      +
      +BackHbond       =               -178.70
       SideHbond       =               -76.61
       Energy_VdW      =               -267.80
       Electro         =               -13.75
      @@ -845,7 +820,7 @@ 

      Optimizing using a
      Your file run OK
      -End time of FoldX: Fri Jan 19 09:18:49 2024
      -Total time spend: 8.69 seconds.
      +Reading NA194F;
      +Residue to Mutate ASNA194 has residue index 193
      +Mutating residue = ASNA194 into PHE
      +Your file run OK
      +End time of FoldX: Fri Jan 19 09:51:22 2024
      +Total time spend: 6.54 seconds.
       validated file "3ned_Repair_1.pdb" => successfully finished
       Cleaning BuildModel...DONE
      -
      -

      -
         ********************************************
      +   ********************************************
          ***                                      ***
          ***             FoldX 5 (c)            ***
          ***                                      ***
      @@ -889,9 +860,8 @@ 

      Optimizing using a
      BackHbond       =               -178.70
      +
      +BackHbond       =               -178.70
       SideHbond       =               -76.61
       Energy_VdW      =               -267.80
       Electro         =               -13.75
      @@ -913,9 +883,9 @@ 

      Optimizing using a
      BackHbond       =               -178.70
      +
      +
      +BackHbond       =               -178.70
       SideHbond       =               -76.61
       Energy_VdW      =               -267.80
       Electro         =               -13.75
      @@ -939,19 +909,17 @@ 

      Optimizing using a
      Your file run OK
      -End time of FoldX: Fri Jan 19 09:18:51 2024
      -Total time spend: 1.53 seconds.
      +Reading QA114S,NA194F;
      +Residue to Mutate GLNA114 has residue index 113
      +Residue to Mutate ASNA194 has residue index 193
      +Mutating residue = ASNA194 into PHE
      +Mutating residue = GLNA114 into SER
      +Your file run OK
      +End time of FoldX: Fri Jan 19 09:51:32 2024
      +Total time spend: 8.65 seconds.
       validated file "3ned_Repair_1.pdb" => successfully finished
       Cleaning BuildModel...DONE
      -
      -

      -
         ********************************************
      +   ********************************************
          ***                                      ***
          ***             FoldX 5 (c)            ***
          ***                                      ***
      @@ -969,9 +937,8 @@ 

      Optimizing using a
      BackHbond       =               -178.70
      +
      +BackHbond       =               -178.70
       SideHbond       =               -76.61
       Energy_VdW      =               -267.80
       Electro         =               -13.75
      @@ -993,9 +960,9 @@ 

      Optimizing using a
      BackHbond       =               -178.70
      +
      +
      +BackHbond       =               -178.70
       SideHbond       =               -76.61
       Energy_VdW      =               -267.80
       Electro         =               -13.75
      @@ -1019,14 +986,16 @@ 

      Optimizing using a
      Your file run OK
      -End time of FoldX: Fri Jan 19 09:18:57 2024
      -Total time spend: 4.86 seconds.
      +Reading DA3M,QA114S,NA194F;
      +Residue to Mutate ASPA3 has residue index 2
      +Residue to Mutate GLNA114 has residue index 113
      +Residue to Mutate ASNA194 has residue index 193
      +Mutating residue = ASPA3 into MET
      +Mutating residue = ASNA194 into PHE
      +Mutating residue = GLNA114 into SER
      +Your file run OK
      +End time of FoldX: Fri Jan 19 09:51:42 2024
      +Total time spend: 9.23 seconds.
       validated file "3ned_Repair_1.pdb" => successfully finished
       Cleaning BuildModel...DONE
       
      @@ -1047,9 +1016,9 @@

      Checking the results

      -
      All y values: [array([[9.41639]]), array([[8.99477]]), array([[8.42085]]), array([[3.16703]])]
      -best stability: [9.41639]
      -Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLQDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYNTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK
      +
      All y values: [array([[9.41639]]), array([[13.0629]]), array([[13.5983]]), array([[13.1298]])]
      +best stability: [13.5983]
      +Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLSDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYFTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK
       
      diff --git a/docs/poli-docs/_build/html/using_poli/the_basics/defining_an_observer.html b/docs/poli-docs/_build/html/using_poli/the_basics/defining_an_observer.html index affbc221..ecd49da9 100644 --- a/docs/poli-docs/_build/html/using_poli/the_basics/defining_an_observer.html +++ b/docs/poli-docs/_build/html/using_poli/the_basics/defining_an_observer.html @@ -786,7 +786,7 @@

      Logging a couple queries of observer = SimpleObserver() # We instantiate the objective function -problem_info, f, x0, y0, _ = objective_factory.create( +f, x0, y0 = objective_factory.create( name="aloha", observer=observer, ) @@ -799,16 +799,8 @@

      Logging a couple queries of Hide code cell output
      -
      /Users/sjt972/anaconda3/envs/poli-docs/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
      -  from .autonotebook import tqdm as notebook_tqdm
      -
      -
      -
      2023-12-22 12:10:31,253	INFO util.py:154 -- Missing packages: ['ipywidgets']. Run `pip install -U ipywidgets`, then restart the notebook server for rich notebook output.
      -
      -
      -
      +
      /Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
      +  from .autonotebook import tqdm as notebook_tqdm
      +
      +
      x0: [['1' '2' '3']]
      -y0: [[0.57433265]]
      +y0: [[-1.16173153]]
       
      @@ -669,7 +673,7 @@

      Using a solver, or creating your own<

      -
      array([['1', '4', '3']], dtype='<U1')
      +
      array([['1', '2', '6']], dtype='<U1')
       
      @@ -706,7 +710,7 @@

      Optimizing

      -
      [['6' '2' '6']]
      +
      [['1' '3' '0']]
       
      diff --git a/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html b/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html index 8c066360..6237f52e 100644 --- a/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html +++ b/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html @@ -576,7 +576,7 @@

      Running objective functions in isolation
      from poli import create
       
      -problem_info, f, x0, y0, _ = create(
      +f, x0, y0 = create(
           name="dockstring",
           target_name="drd2"  # The target protein.
       )
      @@ -588,8 +588,71 @@ 

      Running objective functions in isolation
      /Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.
      -  warnings.warn(
      +
      Traceback (most recent call last):
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 135, in run
      +    objective_factory: AbstractProblemFactory = dynamically_instantiate(
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 102, in dynamically_instantiate
      +    raise e
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 92, in dynamically_instantiate
      +    exec(command)
      +  File "<string>", line 1, in <module>
      +ModuleNotFoundError: No module named 'register'
      +
      +
      +
      CRITICAL:root:Path: /opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin:/opt/homebrew/bin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/Users/sjt972/.cargo/bin:/Users/sjt972/anaconda3/bin
      +CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring']
      +CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring
      +CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring
      +Traceback (most recent call last):
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 176, in <module>
      +    run(factory_kwargs[0], args.objective_name, args.port, args.password)
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 145, in run
      +    raise e
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 135, in run
      +    objective_factory: AbstractProblemFactory = dynamically_instantiate(
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 102, in dynamically_instantiate
      +    raise e
      +  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 92, in dynamically_instantiate
      +    exec(command)
      +  File "<string>", line 1, in <module>
      +ModuleNotFoundError: No module named 'register'
      +
      +
      +
      ---------------------------------------------------------------------------
      +ModuleNotFoundError                       Traceback (most recent call last)
      +Cell In[2], line 3
      +      1 from poli import create
      +----> 3 f, x0, y0 = create(
      +      4     name="dockstring",
      +      5     target_name="drd2"  # The target protein.
      +      6 )
      +
      +File ~/Projects/poli/src/poli/objective_factory.py:439, in create(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      +    437 if not quiet:
      +    438     print(f"poli 🧪: creating an isolated black box function.")
      +--> 439 f, x0, y0 = __create_as_isolated_process(
      +    440     name,
      +    441     seed=seed,
      +    442     batch_size=batch_size,
      +    443     parallelize=parallelize,
      +    444     num_workers=num_workers,
      +    445     evaluation_budget=evaluation_budget,
      +    446     quiet=quiet,
      +    447     **kwargs_for_factory,
      +    448 )
      +    449 problem_information = f.info
      +    451 # instantiate observer (if desired)
      +
      +File ~/Projects/poli/src/poli/objective_factory.py:278, in __create_as_isolated_process(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      +    276     e, tb = msg
      +    277     print(tb)
      +--> 278     raise e
      +    279 else:
      +    280     raise ValueError(
      +    281         f"Internal error: received {msg_type} when expecting SETUP or EXCEPTION"
      +    282     )
      +
      +ModuleNotFoundError: No module named 'register'
       
      @@ -644,7 +707,7 @@

      When you have the right dependencies…create method returns the actual objective function. Let’s use for example rdkit_logp:

      -
      problem_info, f_logp, x0_logp, y0_logp, _ = create(
      +
      f_logp, x0_logp, y0_logp = create(
           name="rdkit_logp"
       )
       
      diff --git a/docs/poli-docs/_build/html/using_poli/the_basics/optimizing_an_objective_function.html b/docs/poli-docs/_build/html/using_poli/the_basics/optimizing_an_objective_function.html index 9be57211..8dc6604f 100644 --- a/docs/poli-docs/_build/html/using_poli/the_basics/optimizing_an_objective_function.html +++ b/docs/poli-docs/_build/html/using_poli/the_basics/optimizing_an_objective_function.html @@ -598,7 +598,7 @@

      Instancing the problem and solverassert "our_aloha" in get_problems() # Creating an instance of the problem - problem_info, f, x0, y0, run_info = objective_factory.create( + f, x0, y0 = objective_factory.create( name="our_aloha", caller_info=None, observer=None ) diff --git a/docs/poli-docs/_build/html/using_poli/the_basics/registering_an_objective_function.html b/docs/poli-docs/_build/html/using_poli/the_basics/registering_an_objective_function.html index 6331d098..85b044b6 100644 --- a/docs/poli-docs/_build/html/using_poli/the_basics/registering_an_objective_function.html +++ b/docs/poli-docs/_build/html/using_poli/the_basics/registering_an_objective_function.html @@ -738,7 +738,7 @@

      Calling the registered problemif __name__ == "__main__": # Creating an instance of the problem - problem_info, f, x0, y0, run_info = objective_factory.create( + f, x0, y0 = objective_factory.create( name="our_aloha", caller_info=None, observer=None ) print(x0, y0) diff --git a/docs/poli-docs/_build/html/using_poli_baselines/bayesian_optimization.html b/docs/poli-docs/_build/html/using_poli_baselines/bayesian_optimization.html index e14dd9e4..4210886a 100644 --- a/docs/poli-docs/_build/html/using_poli_baselines/bayesian_optimization.html +++ b/docs/poli-docs/_build/html/using_poli_baselines/bayesian_optimization.html @@ -570,7 +570,7 @@

      How to runfrom poli_baselines.solvers import VanillaBayesianOptimization -problem_info, f_ackley, _, _, _ = objective_factory.create( +f_ackley, _, _ = objective_factory.create( name="toy_continuous_problem", function_name="ackley_function_01", n_dimensions=2, diff --git a/docs/poli-docs/_build/html/using_poli_baselines/line_bayesian_optimization.html b/docs/poli-docs/_build/html/using_poli_baselines/line_bayesian_optimization.html index 21766ca6..806e1c34 100644 --- a/docs/poli-docs/_build/html/using_poli_baselines/line_bayesian_optimization.html +++ b/docs/poli-docs/_build/html/using_poli_baselines/line_bayesian_optimization.html @@ -567,7 +567,7 @@

      How to runfrom poli_baselines.solvers import LineBO -problem_info, f_ackley, _, _, _ = objective_factory.create( +f_ackley, _, _ = objective_factory.create( name="toy_continuous_problem", function_name="ackley_function_01", n_dimensions=2, diff --git a/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb b/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb index 226d1b9f..291a008d 100644 --- a/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb +++ b/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": { "tags": [ "remove-output" @@ -69,10 +69,10 @@ { "data": { "text/plain": [ - "PosixPath('/Users/migd/Projects/protein-opt/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/rotabase.txt')" + "PosixPath('/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/rotabase.txt')" ] }, - "execution_count": 3, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": { "tags": [ "remove-output" @@ -121,11 +121,11 @@ { "data": { "text/plain": [ - "(PosixPath('/Users/migd/Projects/protein-opt/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/101m.pdb'),\n", - " )" + "(PosixPath('/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/101m.pdb'),\n", + " )" ] }, - "execution_count": 4, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -181,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": { "tags": [ "hide-output" @@ -256,7 +256,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": { "tags": [ "remove-output" @@ -267,77 +267,77 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=N) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=N) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CA) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CA) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=C) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=C) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=O) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=O) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CB) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CB) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'S' for Atom (name=SD) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'S' for Atom (name=SD) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE3) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE3) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ3) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ3) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CH2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CH2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NZ) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NZ) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG1) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG1) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OH) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OH) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND2) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND2) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n", - "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OXT) with given element ''\n", + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OXT) with given element ''\n", " warnings.warn(msg, PDBConstructionWarning)\n" ] } @@ -359,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -388,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -446,7 +446,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -467,7 +467,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -531,7 +531,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -559,7 +559,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": { "tags": [ "hide-output" @@ -572,7 +572,7 @@ "text": [ " ********************************************\n", " *** ***\n", - " *** FoldX 4 (c) ***\n", + " *** FoldX 5 (c) ***\n", " *** ***\n", " *** code by the FoldX Consortium ***\n", " *** ***\n", @@ -587,6 +587,43 @@ " ********************************************\n", "\n", "1 models read: 101m_Repair.pdb\n", + "1 models read: 101m_Repair.pdb\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "BackHbond = -142.58\n", + "SideHbond = -48.61\n", + "Energy_VdW = -179.63\n", + "Electro = -8.33\n", + "Energy_SolvP = 245.28\n", + "Energy_SolvH = -238.89\n", + "Energy_vdwclash = 3.42\n", + "energy_torsion = 6.70\n", + "backbone_vdwclash= 158.16\n", + "Entropy_sidec = 105.87\n", + "Entropy_mainc = 231.69\n", + "water bonds = 0.00\n", + "helix dipole = -8.75\n", + "loop_entropy = 0.00\n", + "cis_bond = 0.00\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.56\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -32.28\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "\n", "BackHbond = -142.58\n", "SideHbond = -48.61\n", @@ -614,10 +651,16 @@ "Starting BuildModel\n", "Reading MA0G;\n", "Residue to Mutate META0 has residue index 0\n", - "Mutating residue = META0 into GLY\n", + "Mutating residue = META0 into GLY\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Your file run OK\n", - "End time of FoldX: Mon Aug 7 10:34:55 2023\n", - "Total time spend: 54.97 seconds.\n", + "End time of FoldX: Wed Feb 7 16:44:52 2024\n", + "Total time spend: 22.96 seconds.\n", "validated file \"101m_Repair_1.pdb\" => successfully finished\n", "Cleaning BuildModel...DONE\n" ] @@ -625,10 +668,10 @@ { "data": { "text/plain": [ - "CompletedProcess(args=['/Users/migd/foldx/foldx', '--pdb', '101m_Repair.pdb', '--command', 'BuildModel', '--mutant-file', '/Users/migd/Projects/protein-opt/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/individual_list.txt', '--water', '-CRYSTAL', '--pH', '7.0'], returncode=0)" + "CompletedProcess(args=['/Users/sjt972/foldx/foldx', '--pdb', '101m_Repair.pdb', '--command', 'BuildModel', '--mutant-file', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/individual_list.txt', '--water', '-CRYSTAL', '--pH', '7.0'], returncode=0)" ] }, - "execution_count": 13, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -664,7 +707,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -700,9 +743,24 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/l3/qk9dx6g958765kmn_2wn34t00000gn/T/ipykernel_25734/1758354106.py:1: DeprecationWarning: \n", + "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n", + "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n", + "but was not found to be installed on your system.\n", + "If this would cause problems for you,\n", + "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n", + " \n", + " import pandas as pd\n" + ] + } + ], "source": [ "import pandas as pd\n", "\n", @@ -725,7 +783,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -774,7 +832,7 @@ "1 WT_101m_Repair_1.pdb -34.3436" ] }, - "execution_count": 16, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -813,7 +871,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -882,7 +940,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb index c2ac9731..b8fae11c 100644 --- a/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb @@ -42,6 +42,7 @@ " 'rasp',\n", " 'rdkit_logp',\n", " 'rdkit_qed',\n", + " 'rfp_foldx_stability_and_sasa',\n", " 'sa_tdc',\n", " 'super_mario_bros',\n", " 'toy_continuous_problem',\n", @@ -55,7 +56,7 @@ ], "source": [ "from poli.core.registry import get_problems\n", - "get_problems(include_repository=True)" + "get_problems(only_available=False)" ] }, { @@ -101,7 +102,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "3ned_Repair.pdb optimizing_protein_stability.ipynb\n" + "3ned_Repair.pdb optimizing_protein_stability.ipynb\r\n" ] } ], @@ -167,89 +168,53 @@ "name": "stdout", "output_type": "stream", "text": [ - "poli 🧪: Creating the objective from the repository.\n", - " ********************************************\n", - " *** ***\n", - " *** FoldX 5 (c) ***\n", - " *** ***\n", - " *** code by the FoldX Consortium ***\n", - " *** ***\n", - " *** Jesper Borg, Frederic Rousseau ***\n", - " *** Joost Schymkowitz, Luis Serrano ***\n", - " *** Peter Vanhee, Erik Verschueren ***\n", - " *** Lies Baeten, Javier Delgado ***\n", - " *** and Francois Stricher ***\n", - " *** and any other of the 9! permutations ***\n", - " *** based on an original concept by ***\n", - " *** Raphael Guerois and Luis Serrano ***\n", - " ********************************************\n", - "\n", - "1 models read: 3ned_Repair.pdb\n", - "1 models read: 3ned_Repair.pdb\n", - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.27\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.41\n", - "\n", - "\n", - "BackHbond = -178.70\n", - "SideHbond = -76.61\n", - "Energy_VdW = -267.80\n", - "Electro = -13.75\n", - "Energy_SolvP = 374.21\n", - "Energy_SolvH = -351.07\n", - "Energy_vdwclash = 6.28\n", - "energy_torsion = 7.33\n", - "backbone_vdwclash= 65.17\n", - "Entropy_sidec = 146.42\n", - "Entropy_mainc = 340.27\n", - "water bonds = 0.00\n", - "helix dipole = 0.00\n", - "loop_entropy = 0.00\n", - "cis_bond = 2.25\n", - "disulfide = 0.00\n", - "kn electrostatic= 0.00\n", - "partial covalent interactions = 0.00\n", - "Energy_Ionisation = 1.77\n", - "Entropy Complex = 0.00\n", - "-----------------------------------------------------------\n", - "Total = \t\t\t\t -9.41\n", - "\n", - "Starting BuildModel\n", - "Reading EA1E;\n", - "Residue to Mutate GLUA1 has residue index 0\n", - "Mutating residue = GLUA1 into GLU\n", - "Your file run OK\n", - "End time of FoldX: Fri Jan 19 09:51:02 2024\n", - "Total time spend: 2.64 seconds.\n", - "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", - "Cleaning BuildModel...DONE\n" + "poli 🧪: creating an isolated black box function.\n", + "poli 🧪: starting the isolated objective process.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 138, in run\n", + " f, x0, y0 = objective_factory.create(**kwargs)\n", + "TypeError: create() got an unexpected keyword argument 'caller_info'\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 176, in \n", + " run(factory_kwargs[0], args.objective_name, args.port, args.password)\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 145, in run\n", + " raise e\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 138, in run\n", + " f, x0, y0 = objective_factory.create(**kwargs)\n", + "TypeError: create() got an unexpected keyword argument 'caller_info'\n" + ] + }, + { + "ename": "TypeError", + "evalue": "create() got an unexpected keyword argument 'caller_info'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[5], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpoli\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m objective_factory\n\u001b[0;32m----> 3\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43mobjective_factory\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfoldx_stability\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mcaller_info\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserver\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mwildtype_pdb_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwildtype_pdb_path\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:439\u001b[0m, in \u001b[0;36mcreate\u001b[0;34m(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m quiet:\n\u001b[1;32m 438\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpoli 🧪: creating an isolated black box function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 439\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43m__create_as_isolated_process\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 440\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 441\u001b[0m \u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 442\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 443\u001b[0m \u001b[43m \u001b[49m\u001b[43mparallelize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparallelize\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 444\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_workers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_workers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 445\u001b[0m \u001b[43m \u001b[49m\u001b[43mevaluation_budget\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mevaluation_budget\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 446\u001b[0m \u001b[43m \u001b[49m\u001b[43mquiet\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 447\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs_for_factory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 448\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 449\u001b[0m problem_information \u001b[38;5;241m=\u001b[39m f\u001b[38;5;241m.\u001b[39minfo\n\u001b[1;32m 451\u001b[0m \u001b[38;5;66;03m# instantiate observer (if desired)\u001b[39;00m\n", + "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:278\u001b[0m, in \u001b[0;36m__create_as_isolated_process\u001b[0;34m(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m 276\u001b[0m e, tb \u001b[38;5;241m=\u001b[39m msg\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28mprint\u001b[39m(tb)\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 279\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 281\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInternal error: received \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmsg_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m when expecting SETUP or EXCEPTION\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 282\u001b[0m )\n", + "\u001b[0;31mTypeError\u001b[0m: create() got an unexpected keyword argument 'caller_info'" ] } ], "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, run_info = objective_factory.create(\n", + "f, x0, y0 = objective_factory.create(\n", " name=\"foldx_stability\",\n", " caller_info=None,\n", " observer=None,\n", @@ -626,7 +591,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb index 1d47ff39..e4c42fc7 100644 --- a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb @@ -310,7 +310,16 @@ "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: Creating the objective from the repository.\n", + "poli 🧪: initializing the observer.\n" + ] + } + ], "source": [ "from poli import objective_factory\n", "\n", @@ -318,7 +327,7 @@ "observer = SimpleObserver()\n", "\n", "# We instantiate the objective function\n", - "problem_info, f, x0, y0, _ = objective_factory.create(\n", + "f, x0, y0 = objective_factory.create(\n", " name=\"aloha\",\n", " observer=observer,\n", ")" @@ -333,7 +342,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -358,7 +367,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -386,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -448,7 +457,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" } }, "nbformat": 4, diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb index bf0e0c1a..d2a04e19 100644 --- a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb @@ -66,7 +66,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['aloha', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_select', 'penalized_logp_lambo', 'rdkit_logp', 'rdkit_qed', 'toy_continuous_problem', 'white_noise']\n" + "['aloha', 'dockstring', 'foldx_stability', 'gfp_select', 'rdkit_logp', 'rdkit_qed', 'toy_continuous_problem', 'white_noise']\n" ] } ], @@ -91,7 +91,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['aloha', 'dockstring', 'drd3_docking', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_cbas', 'gfp_select', 'penalized_logp_lambo', 'rasp', 'rdkit_logp', 'rdkit_qed', 'sa_tdc', 'super_mario_bros', 'toy_continuous_problem', 'white_noise']\n" + "['aloha', 'dockstring', 'drd3_docking', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_cbas', 'gfp_select', 'penalized_logp_lambo', 'rasp', 'rdkit_logp', 'rdkit_qed', 'rfp_foldx_stability_and_sasa', 'sa_tdc', 'super_mario_bros', 'toy_continuous_problem', 'white_noise']\n" ] } ], @@ -128,7 +128,7 @@ "source": [ "from poli import objective_factory\n", "\n", - "problem_info, f, x0, y0, _ = objective_factory.create(name=\"white_noise\")" + "f, x0, y0 = objective_factory.create(name=\"white_noise\")" ] }, { @@ -159,12 +159,20 @@ "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ "x0: [['1' '2' '3']]\n", - "y0: [[0.24476048]]\n" + "y0: [[-1.16173153]]\n" ] } ], @@ -196,7 +204,7 @@ { "data": { "text/plain": [ - "array([['2', '2', '3']], dtype='\", line 1, in \n", + "ModuleNotFoundError: No module named 'register'\n", + "\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n", - " warnings.warn(\n" + "CRITICAL:root:Path: /opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin:/opt/homebrew/bin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/Users/sjt972/.cargo/bin:/Users/sjt972/anaconda3/bin\n", + "CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring']\n", + "CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring\n", + "CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring\n", + "Traceback (most recent call last):\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 176, in \n", + " run(factory_kwargs[0], args.objective_name, args.port, args.password)\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 145, in run\n", + " raise e\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 135, in run\n", + " objective_factory: AbstractProblemFactory = dynamically_instantiate(\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 102, in dynamically_instantiate\n", + " raise e\n", + " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 92, in dynamically_instantiate\n", + " exec(command)\n", + " File \"\", line 1, in \n", + "ModuleNotFoundError: No module named 'register'\n" + ] + }, + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'register'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpoli\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m create\n\u001b[0;32m----> 3\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdockstring\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mtarget_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdrd2\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# The target protein.\u001b[39;49;00m\n\u001b[1;32m 6\u001b[0m \u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:439\u001b[0m, in \u001b[0;36mcreate\u001b[0;34m(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m quiet:\n\u001b[1;32m 438\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpoli 🧪: creating an isolated black box function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 439\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43m__create_as_isolated_process\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 440\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 441\u001b[0m \u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 442\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 443\u001b[0m \u001b[43m \u001b[49m\u001b[43mparallelize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparallelize\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 444\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_workers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_workers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 445\u001b[0m \u001b[43m \u001b[49m\u001b[43mevaluation_budget\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mevaluation_budget\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 446\u001b[0m \u001b[43m \u001b[49m\u001b[43mquiet\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 447\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs_for_factory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 448\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 449\u001b[0m problem_information \u001b[38;5;241m=\u001b[39m f\u001b[38;5;241m.\u001b[39minfo\n\u001b[1;32m 451\u001b[0m \u001b[38;5;66;03m# instantiate observer (if desired)\u001b[39;00m\n", + "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:278\u001b[0m, in \u001b[0;36m__create_as_isolated_process\u001b[0;34m(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m 276\u001b[0m e, tb \u001b[38;5;241m=\u001b[39m msg\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28mprint\u001b[39m(tb)\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 279\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 281\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInternal error: received \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmsg_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m when expecting SETUP or EXCEPTION\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 282\u001b[0m )\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'register'" ] } ], "source": [ "from poli import create\n", "\n", - "problem_info, f, x0, y0, _ = create(\n", + "f, x0, y0 = create(\n", " name=\"dockstring\",\n", " target_name=\"drd2\" # The target protein.\n", ")" @@ -190,7 +234,7 @@ } ], "source": [ - "problem_info, f_logp, x0_logp, y0_logp, _ = create(\n", + "f_logp, x0_logp, y0_logp = create(\n", " name=\"rdkit_logp\"\n", ")" ] diff --git a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Average_101m_Repair.fxout b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Average_101m_Repair.fxout index c06ff184..fc76f8c1 100644 --- a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Average_101m_Repair.fxout +++ b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Average_101m_Repair.fxout @@ -9,3 +9,4 @@ Output type: BuildModel Pdb SD total energy Backbone Hbond Sidechain Hbond Van der Waals Electrostatics Solvation Polar Solvation Hydrophobic Van der Waals clashes entropy sidechain entropy mainchain sloop_entropy mloop_entropy cis_bond torsional clash backbone clash helix dipole water bridge disulfide electrostatic kon partial covalent bonds energy Ionisation Entropy Complex 101m_Repair_1 0 2.59783 -0.0104632 -0.262957 1.83503 -0.379823 0.00867772 3.33628 -0.0772417 -1.21489 -0.526276 0 0 0 -0.0266575 -0.0410968 -0.0882147 0 0 0 0 0.00436099 0 101m_Repair_1 0 2.59783 -0.0104632 -0.262957 1.83503 -0.379823 0.00867772 3.33628 -0.0772417 -1.21489 -0.526276 0 0 0 -0.0266575 -0.0410968 -0.0882147 0 0 0 0 0.00436099 0 +101m_Repair_1 0 2.59783 -0.0104632 -0.262957 1.83503 -0.379823 0.00867772 3.33628 -0.0772417 -1.21489 -0.526276 0 0 0 -0.0266575 -0.0410968 -0.0882147 0 0 0 0 0.00436099 0 diff --git a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Dif_101m_Repair.fxout b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Dif_101m_Repair.fxout index 3675b49e..0ba55a05 100644 --- a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Dif_101m_Repair.fxout +++ b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Dif_101m_Repair.fxout @@ -9,3 +9,4 @@ Output type: BuildModel Pdb total energy Backbone Hbond Sidechain Hbond Van der Waals Electrostatics Solvation Polar Solvation Hydrophobic Van der Waals clashes entropy sidechain entropy mainchain sloop_entropy mloop_entropy cis_bond torsional clash backbone clash helix dipole water bridge disulfide electrostatic kon partial covalent bonds energy Ionisation Entropy Complex 101m_Repair_1.pdb 2.59783 -0.0104632 -0.262957 1.83503 -0.379823 0.00867772 3.33628 -0.0772417 -1.21489 -0.526276 0 0 0 -0.0266575 -0.0410968 -0.0882147 0 0 0 0 0.00436099 0 101m_Repair_1.pdb 2.59783 -0.0104632 -0.262957 1.83503 -0.379823 0.00867772 3.33628 -0.0772417 -1.21489 -0.526276 0 0 0 -0.0266575 -0.0410968 -0.0882147 0 0 0 0 0.00436099 0 +101m_Repair_1.pdb 2.59783 -0.0104632 -0.262957 1.83503 -0.379823 0.00867772 3.33628 -0.0772417 -1.21489 -0.526276 0 0 0 -0.0266575 -0.0410968 -0.0882147 0 0 0 0 0.00436099 0 diff --git a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/PdbList_101m_Repair.fxout b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/PdbList_101m_Repair.fxout index 663e9a59..24e68cd7 100644 --- a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/PdbList_101m_Repair.fxout +++ b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/PdbList_101m_Repair.fxout @@ -2,3 +2,5 @@ WT_101m_Repair_1.pdb 101m_Repair_1.pdb WT_101m_Repair_1.pdb +101m_Repair_1.pdb +WT_101m_Repair_1.pdb diff --git a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Raw_101m_Repair.fxout b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Raw_101m_Repair.fxout index 0e4288dd..5851f4cd 100644 --- a/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Raw_101m_Repair.fxout +++ b/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/Raw_101m_Repair.fxout @@ -13,3 +13,5 @@ WT_101m_Repair_1.pdb -34.3436 -141.831 -47.9784 -179.662 -8.13848 243.99 -239.23 WT_101m_Repair_1.pdb -34.3436 -141.831 -47.9784 -179.662 -8.13848 243.99 -239.232 3.40664 105.266 231.722 0 0 0 5.28162 157.882 -8.73035 0 0 0 0 1.56224 0 101m_Repair_1.pdb -31.7457 -141.841 -48.2413 -177.827 -8.5183 243.998 -235.896 3.3294 104.051 231.196 0 0 0 5.25497 157.841 -8.81857 0 0 0 0 1.5666 0 WT_101m_Repair_1.pdb -34.3436 -141.831 -47.9784 -179.662 -8.13848 243.99 -239.232 3.40664 105.266 231.722 0 0 0 5.28162 157.882 -8.73035 0 0 0 0 1.56224 0 +101m_Repair_1.pdb -31.7457 -141.841 -48.2413 -177.827 -8.5183 243.998 -235.896 3.3294 104.051 231.196 0 0 0 5.25497 157.841 -8.81857 0 0 0 0 1.5666 0 +WT_101m_Repair_1.pdb -34.3436 -141.831 -47.9784 -179.662 -8.13848 243.99 -239.232 3.40664 105.266 231.722 0 0 0 5.28162 157.882 -8.73035 0 0 0 0 1.56224 0 diff --git a/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb b/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb index 16982d55..ef3c971f 100644 --- a/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb +++ b/docs/poli-docs/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb @@ -42,6 +42,7 @@ " 'rasp',\n", " 'rdkit_logp',\n", " 'rdkit_qed',\n", + " 'rfp_foldx_stability_and_sasa',\n", " 'sa_tdc',\n", " 'super_mario_bros',\n", " 'toy_continuous_problem',\n", @@ -55,7 +56,7 @@ ], "source": [ "from poli.core.registry import get_problems\n", - "get_problems(include_repository=True)" + "get_problems(only_available=False)" ] }, { @@ -251,8 +252,6 @@ "\n", "f, x0, y0 = objective_factory.create(\n", " name=\"foldx_stability\",\n", - " caller_info=None,\n", - " observer=None,\n", " wildtype_pdb_path=wildtype_pdb_path\n", ")" ] @@ -626,7 +625,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" }, "orig_nbformat": 4 }, diff --git a/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb b/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb index 69b91785..c4d23c3f 100644 --- a/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb +++ b/docs/poli-docs/using_poli/the_basics/defining_an_observer.ipynb @@ -304,13 +304,33 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "tags": [ "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: Creating the objective from the repository.\n", + "poli 🧪: initializing the observer.\n" + ] + }, + { + "ename": "ValueError", + "evalue": "too many values to unpack (expected 3)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 7\u001b[0m\n\u001b[1;32m 4\u001b[0m observer \u001b[38;5;241m=\u001b[39m SimpleObserver()\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# We instantiate the objective function\u001b[39;00m\n\u001b[0;32m----> 7\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m objective_factory\u001b[38;5;241m.\u001b[39mcreate(\n\u001b[1;32m 8\u001b[0m name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124maloha\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 9\u001b[0m observer\u001b[38;5;241m=\u001b[39mobserver,\n\u001b[1;32m 10\u001b[0m )\n", + "\u001b[0;31mValueError\u001b[0m: too many values to unpack (expected 3)" + ] + } + ], "source": [ "from poli import objective_factory\n", "\n", @@ -448,7 +468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.9.18" }, "orig_nbformat": 4 }, diff --git a/docs/poli-docs/using_poli/the_basics/results/2f354fa8-4e76-4d19-816b-7e836ef8868b/metadata.json b/docs/poli-docs/using_poli/the_basics/results/2f354fa8-4e76-4d19-816b-7e836ef8868b/metadata.json new file mode 100644 index 00000000..f8529602 --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/2f354fa8-4e76-4d19-816b-7e836ef8868b/metadata.json @@ -0,0 +1 @@ +{"name": "aloha", "max_sequence_length": 5, "aligned": true, "alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], "log_transform_recommended": false, "caller_info": null, "x0": [["A", "L", "O", "O", "F"]], "y0": [[3]], "seed": null} \ No newline at end of file diff --git a/docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/metadata.json b/docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/metadata.json new file mode 100644 index 00000000..f8529602 --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/metadata.json @@ -0,0 +1 @@ +{"name": "aloha", "max_sequence_length": 5, "aligned": true, "alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], "log_transform_recommended": false, "caller_info": null, "x0": [["A", "L", "O", "O", "F"]], "y0": [[3]], "seed": null} \ No newline at end of file diff --git a/docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/results.txt b/docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/results.txt new file mode 100644 index 00000000..090f58cf --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/30092169-1146-42e0-b224-15966256072d/results.txt @@ -0,0 +1,3 @@ +[['M', 'I', 'G', 'U', 'E']] [[0]] +[['F', 'L', 'E', 'A', 'S']] [[1]] +[['A', 'L', 'O', 'H', 'A']] [[5]] diff --git a/docs/poli-docs/using_poli/the_basics/results/3ecac8e0-bae0-4ff0-acf0-15300557dcd6/metadata.json b/docs/poli-docs/using_poli/the_basics/results/3ecac8e0-bae0-4ff0-acf0-15300557dcd6/metadata.json new file mode 100644 index 00000000..f8529602 --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/3ecac8e0-bae0-4ff0-acf0-15300557dcd6/metadata.json @@ -0,0 +1 @@ +{"name": "aloha", "max_sequence_length": 5, "aligned": true, "alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], "log_transform_recommended": false, "caller_info": null, "x0": [["A", "L", "O", "O", "F"]], "y0": [[3]], "seed": null} \ No newline at end of file diff --git a/docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/metadata.json b/docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/metadata.json new file mode 100644 index 00000000..f8529602 --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/metadata.json @@ -0,0 +1 @@ +{"name": "aloha", "max_sequence_length": 5, "aligned": true, "alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], "log_transform_recommended": false, "caller_info": null, "x0": [["A", "L", "O", "O", "F"]], "y0": [[3]], "seed": null} \ No newline at end of file diff --git a/docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/results.txt b/docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/results.txt new file mode 100644 index 00000000..090f58cf --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/6025d62f-457f-4600-929a-fc6e6831b8de/results.txt @@ -0,0 +1,3 @@ +[['M', 'I', 'G', 'U', 'E']] [[0]] +[['F', 'L', 'E', 'A', 'S']] [[1]] +[['A', 'L', 'O', 'H', 'A']] [[5]] diff --git a/docs/poli-docs/using_poli/the_basics/results/65f8bdc3-8cd1-48e2-8cd7-effd83c2860c/metadata.json b/docs/poli-docs/using_poli/the_basics/results/65f8bdc3-8cd1-48e2-8cd7-effd83c2860c/metadata.json new file mode 100644 index 00000000..f8529602 --- /dev/null +++ b/docs/poli-docs/using_poli/the_basics/results/65f8bdc3-8cd1-48e2-8cd7-effd83c2860c/metadata.json @@ -0,0 +1 @@ +{"name": "aloha", "max_sequence_length": 5, "aligned": true, "alphabet": ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], "log_transform_recommended": false, "caller_info": null, "x0": [["A", "L", "O", "O", "F"]], "y0": [[3]], "seed": null} \ No newline at end of file From 2e8a1369df6670c5c8368ac80f0586d5cd76b246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Gonz=C3=A1lez=20Duque?= Date: Wed, 14 Feb 2024 16:20:01 -0500 Subject: [PATCH 3/4] Updates the build to the changes in the interface --- .../_build/.doctrees/environment.pickle | Bin 1404897 -> 1398398 bytes .../index.doctree | Bin 64891 -> 64883 bytes .../optimizing_protein_stability.doctree | Bin 52324 -> 30511 bytes .../the_basics/intro_to_poli.doctree | Bin 32030 -> 32022 bytes .../using_poli/the_basics/isolation.doctree | Bin 29604 -> 28462 bytes .../base.ipynb | 196 +++++++++++ .../poli-docs/_build/.jupyter_cache/global.db | Bin 40960 -> 40960 bytes .../optimizing_protein_stability.ipynb | 5 +- .../using_poli/the_basics/isolation.err.log | 2 +- docs/poli-docs/_build/html/searchindex.js | 2 +- .../optimizing_protein_stability.html | 312 +----------------- .../html/using_poli/the_basics/isolation.html | 2 +- .../index.ipynb | 188 ++++------- .../optimizing_protein_stability.ipynb | 297 +---------------- .../the_basics/defining_an_observer.ipynb | 19 +- .../using_poli/the_basics/intro_to_poli.ipynb | 18 +- .../using_poli/the_basics/isolation.ipynb | 2 +- 17 files changed, 311 insertions(+), 732 deletions(-) create mode 100644 docs/poli-docs/_build/.jupyter_cache/executed/93cca8082af33d502625c354077d38c3/base.ipynb diff --git a/docs/poli-docs/_build/.doctrees/environment.pickle b/docs/poli-docs/_build/.doctrees/environment.pickle index b3b2f92b1a60031b168fac565427db02ead8726f..f55d2dafd6a46c0e3cd695ff0c4f541296f4063c 100644 GIT binary patch literal 1398398 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

      -L?S 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 diff --git a/docs/poli-docs/_build/.doctrees/understanding_foldx/01-single-mutation-using-foldx/index.doctree b/docs/poli-docs/_build/.doctrees/understanding_foldx/01-single-mutation-using-foldx/index.doctree index 3afce5c6942f66a8a97283918d556ca2c336591d..37c2603bd163944ec14ca47e19e47034fcbbcf32 100644 GIT binary patch delta 1038 zcmZWoZERCj7{2e>?Yi#VHe(wrUD@IovdvCcM#L2-ABkczaf=}nh+m)%%5^T2k3@n~ z8%;E3VAp37-4BvU3ds40G3#P($6E$H$q&eqVt|(ro-XJ!mSi8iEcaCZJDpG;* za3R`{T2SA2o8A!FrPvhqkQZHHmq};2iV{2#xlF8wV|k$i9h2qkOOE6QH|Boh)C0@F z0hxQN*^P4px7e>7^nx2Vf9Di}f2a_)3#VuRzg*bEE^&0VRb%^Lz5wVQSSd7vTEgbgr3ZS?2868uO4RFm1=Dn`n}jfAK$PKHDgF^lrx`(uAu@{kB(5l z@FIUuPsYpsF)qN5#&)ql#*1s5lMj!LAEMI+H$Gm*&StoePjCS~J@EuPZE&sXM)Ulv zr=+1GY%MNAVnSozYB>M;GL&EIpqP-^!X`5k)p0I>y7&?n%e3o^b9Uukt*yayU-Dm# zRD37PwayDGi{yX%xswbY9IndQ_b2qng) z(DBL4>b$qDiqdJ`)v|rhzV?=GJr_eWrK(j^6gX#!QJ5?cLX}BFNZuFA{pP;l2g&*@ z>IJnD=Dk{g$rEz7BIG}eBX O1@^frdJgO6R^0_>$B+8} delta 1072 zcmYjPZA_C_6z;i{w(!0!B^qX7R0}GES)topgjK{J{=va;6Olxh7(mNwfPxTX#E4D& zvuH$~?jvdfi6$m4(QM6(CTbuU6ZpZ0LS>zaeE5M#XgfhIXtsObPTFhDep<|ac`z8)}`Yb|8Pnw%0rnngC8H|(|hzhst{yb_*3zS4w^?K z7OmyGIASH1EMxzsWcdHeqBKyzNy*3$Y~!{i;1r4BGr7LEfmSUmkkzFm7$uB4lMGtD zSi}|?U7u~2$Hgx?M;>gWo$=)|@6uYx;}|R}GN^cpvKs|sJ6WELZ+}aId+>AoJ+_&; zv2y$_o#M6aZ4(LPfqCLJgS@y&zQ2G&X5TMX08Tt@5E*=&<#7+PpZ&~kMVX_|Y}BPP zwM)!f*!p~n$PkOT_FSSHXr0_>T$bUJ(Om;Emgo~&k)adCzfIQhyBbG8<}FC~)Tf4Nt{LP58rY=C=eQDJcEI(^A$PUbM; z+@u}TuOy+)SJ&p2kuv=?d3>l>;LG#+(Vc@+r*AuE{>4CQdzns6#BQTsw&SmFhag`F|f>$^E?*0MMg zKY%2RzFSTDwuqGsSRKh=mT2^ch>i4UiEK*NnRtQ3BXtdx6?ILujrN-A+NQ>;!(L?- z`XgDo%e=nQj(;OxWq0yZR_+LMf}e}hEX;WU|H4hv>A2ecHC3X^!{Wr1%cz`Bw+K$L znqREu7B{(U0&Pdf{N|0S*i*wtv2LLqBV=cUCu9|m__he|5OfQ3G=ldFy{t@3Vbi

      +5(c6Lh_+)@H!l(dEIQd-KR1!lX`&JNw3VP_UB zN@_Lr0ZoXUML`k*YK$Z#f*amKserYh(MDrp&;;a7f-wpaNqpQp!**9u_#=PL?tJIm z?>qO-Ip@x$t)>rtMCKRFTgI>5XFkNCP0(SNAk8shh-ht!i0R!i;2eCZFwx%})d*f2 znF<>UACJzQyBp!NCP0Ec<%dF?B<6}GVz$%=<0~Dw&jh^_?C?tE9emRSomEx%wjK%R zs~L(6t6qt2!faa>bX8A6Rw!^gVy>Ij`S)BC=gmTyiLRNoIdm~$9)2mVc!LOx91DAw zk0_L`nUa#kys8B6Ws2m8rm$DKPX59`WhShg--61a)13tu=FdWNh(rZ>UhXc`(HW@j z9#T=8i_4SsomAE^czW`ELYL!d{F~5$nuRE=3yt?U(RzI^8$Arc-t-jUut9yp!{E^U z)K?x%-LRkm?a-u)AsEeihe5rumciTar@s1N>N~aHptF>4a~*^FAf;{z z?n{PanH;=P*Nn~+PcF>!kHg<5Lq&ZriTI;Fk4Dfp?q0;;Q-g}5V=v@dg5u`68E}3c z0|yt`@kLYg`XVRB>1KG+mI;XwQmjjJL(t?lLm#_A+Q2Z1pw}`;)gKe~UROiB#StQhAd)BkLnYqFJ=i z-YSY$qpx`_?uqZek21|bJ>d7{#BjRzZ)5mOfu%S-?M(uMKQhB=e_laYERG#^MtlQ@ z4gJB&za_NeyN1@QE%gY)1=#_qtxWP=5(ua!oq7rL@XR>Juev~1f$>6O!B#HHpOtaU>bNuuuso{{6{C z79%B81hb`zWO|fDDSxO0>+P2TWYev1-4?i z{$vcMr55nyXOKBItYh&gl$6BPt3pWSR7rD9FXi|k-z*1x{8UZ|u2DHfZu3v^$<1mh z*XH+fO1mb?!KpSEr}{Nvio!Rq;#&ok(^mTe93R$Xo6=rh>L_RH2++WXg8pD@Ia}!o z$*mzlRoS4du`O~q=(Dk&Hlc%81vaescuioXFyR(LEFbi-ex-e_-`6T=s*PPJ2&|}S zidxQb33y20eVQoH%xr#{)2wb?{1&^C-^TS9VxwbAs5zTlPR zRjfat$e|96rHQk=o|x`fL4jcrW9mQZw{_}XcBJm#1mfA^ulDmeK z80>r|6W(!^#)@x^MZYM>E%}cEM03Z2(pwCd+nmS)*?|GH9c~61(YvJdOGZm?8;qq_ z1_#h~*buD2+b#NZycH})2S{WES=A&vV(@NxI{Ne;oTpS#n9hc`6b5_Ddd+_(Wy3k8 z5??V|WX^CCZIO#ci|9{Ai=3xH-RiQHIi^i@LCNthv;Z6@YLFW`PfWb`1@-?kJJHK<@I(WC$r>v% znAgjoRv74g40_Vcq`+1pa=g7qaZ2}4EyOnqUNWyD@cOAv{GByA`gCeC&K^Q8jdYmN zpHIH9mi6bMELhh+5f>Zq;r;>wpX+y`3>bAL15Jj>XC`+Xu##83kD59%KBWcJoWR5! zqh>yx@m18M(vTEt_E58%m~i*dARiFu?V!?IP@-IJoyV%JZ0ldcxPjFG literal 52324 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 Cl{DV~ delta 996 zcmYjPTS${(7~c1}!!P@7x{1eWo~W7UBFm_&E{cImg^=7lY;*JXZ=1IKF;97bZbHm> zS7b&k5<#fQmI#rFU38O1)>T4;&_xnPCKd=m@AoasoA2X)-uF4Y-}~R(CU>`qdO&l- zG_7{m!di7oq_g%1A!8t)yG6rVNH7*cX`K;)lXVt6eRbn>MhnXg>5ykHr*o|1AdJ{W zG6UoG0#;ivnBjR+E_niiV+JWN92s-0mgsM~>oM;pgvo=;!wT@F48%5SXU1WyWRaubKR7vx7U?@5z1czc&Qo6hkuDMfS z>1;9dI`t%%f3;PX!5Qb#C@~!d3UlC<(@v|R#GxrptlS~SaUeq~Mm4Jrtt_zaI!0Q- z;`S0Rc2yHAthxtxa(6aQk*k>aIM=T+LD2JoOd*gDiZ_i+!l?HdnZ?1(FjA01=Kl>h z*CNtc9o$LC`dbdCmXqb(WyJfX4A#V+ZAlVQZAE%RHn6D-R$BGs8|F!dCXEpcavb>z z8S*_U2z)W&R4uH^r8Hh(%PF-!%~Y$T=vacFQb}ehMsZ0=!l-JdGh2`&Byk5$882DM9z-HNqUCMB5!0GpNbhV=r?m%WT wHm+jh3N|ia<9r*Z+c?{%NZD*>E=lBep!B5aH_?R4%9D}XJtjg{;Zd*j2e{5k{{R30 diff --git a/docs/poli-docs/_build/.doctrees/using_poli/the_basics/isolation.doctree b/docs/poli-docs/_build/.doctrees/using_poli/the_basics/isolation.doctree index 3bd5e9c99ff31f67c69458f34d5b1064e4a5c9eb..b863209f0d27923a5e19bddc06b2cd95385e94ed 100644 GIT binary patch delta 102 zcmZ4ToN?VfM%D(_sml2qS$U+H_H#^@R8!&3FDTK^FG$VHO39vlPE&uffdc2`x7xg$ W^VN``VM9w3V*`uH{PFjdpsJ0mOo7Im8JL(E za{;}{!k^2)KZ$=ke=h$Wps!;2HC32>843A@1*B+lV64LAZTVhYyr58HtYBcQ*w~oI z$h)VOm5ZU#JW`Os@w@Bf!dUmsktWj_H)mOzvTU|&(PZY%FDTK^FG$VHO39ua-l;aJ zSAO%9_T!A3w{)v8a{$fa1Y(BC4(%e7^ZK$ThxMNf{ywiUoFa fD-mNoV*^toV~a*hMxfSAn55z4oOt`m2kadH5MzmJ delta 1178 zcmcgrOHUI~7@eV09z&+nHX1NB<_3rbQm_wdUlK6d7)=CC+?Yzop}k;L3#?f|KYL_AH1&S0wxcqsE0ME}Zf(Xh~${-F@fW``z!Hdv0-~rnphF zWFgJZ&R-+V>knUEGBX50=qZX|uh-qIeXjpTQR~WAonh0bZzL4YeG_q2DF$GC=!UvA zzCs$c-3>|`)j%kH6^_uD5QLULF>A>hnwV*=fV+J_4lY97iXX15*29ae55noo>Y~Kx z3*zu&9Fb#b%#H97S(I`#Jz_&yyA9>+s25ey-4O}%GH$1lwgf(bds{}tcr?qUWPUgn zkIA_f+ddcJ<8dr;F=0gP9S{Y4fQrK@ETyq@1YOj+WMc8CoJ(RZ86D=5y!@!Q3W4vL zpB1U~ijUN!#tx*CgARyueXz0G|E8ZZ(mEzcu&lw#1XYvK!$5Fo+idqBr^Dal_S;?E zE||3qa=5%U6cdm%A?#~Dm2;h)V;No=O?A-sG|@px5+y%6bhQJGiZbE_ zG$G(@QhOL2MPoRZ5v3^N+ojQo1QujuJ?5>I?y4-5lA~CX(0-vR#Rp{Je~xy-WTXhu zS(*8*(Gs#J;LGgUa;dgl@{n%umc~t0@q)FIyQ>PdgnE1lOUUI7xC71}N1(@*=+;VK zK!ahg^o0E@f?%3&gXKjtyqdE#9y1HJ=31MaUhRCq?nqQpdDtajx5Lt6Gi2u(7+WyZ zAI0=v2XqK|fL~}fRVQ|9?n1jZXBDxpg|>to0hcpT`9uhL)%^UOhJin", line 1, in ModuleNotFoundError: No module named 'register' ----- stderr ----- -CRITICAL:root:Path: /opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin:/opt/homebrew/bin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/Users/sjt972/.cargo/bin:/Users/sjt972/anaconda3/bin +CRITICAL:root:Path: /opt/homebrew/opt/openjdk/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring'] CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring diff --git a/docs/poli-docs/_build/html/searchindex.js b/docs/poli-docs/_build/html/searchindex.js index 5498d034..1ef09fec 100644 --- a/docs/poli-docs/_build/html/searchindex.js +++ b/docs/poli-docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_autosummary/poli", "_autosummary/poli.core", "_autosummary/poli.core.abstract_black_box", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox", "_autosummary/poli.core.abstract_problem_factory", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory", "_autosummary/poli.core.chemistry", "_autosummary/poli.core.chemistry.tdc_black_box", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox", "_autosummary/poli.core.exceptions", "_autosummary/poli.core.exceptions.BudgetExhaustedException", "_autosummary/poli.core.exceptions.PoliException", "_autosummary/poli.core.multi_objective_black_box", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "_autosummary/poli.core.problem_setup_information", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation", "_autosummary/poli.core.proteins", "_autosummary/poli.core.proteins.foldx_black_box", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox", "_autosummary/poli.core.registry", "_autosummary/poli.core.registry.delete_observer_run_script", "_autosummary/poli.core.registry.delete_problem", "_autosummary/poli.core.registry.get_problem_factories", "_autosummary/poli.core.registry.get_problems", "_autosummary/poli.core.registry.register_problem", "_autosummary/poli.core.registry.register_problem_from_repository", "_autosummary/poli.core.registry.set_observer", "_autosummary/poli.core.registry.set_observer_run_script", "_autosummary/poli.core.util", "_autosummary/poli.core.util.abstract_observer", "_autosummary/poli.core.util.abstract_observer.AbstractObserver", "_autosummary/poli.core.util.alignment", "_autosummary/poli.core.util.alignment.is_aligned", "_autosummary/poli.core.util.batch", "_autosummary/poli.core.util.batch.batch_input", "_autosummary/poli.core.util.batch.batch_input.batched", "_autosummary/poli.core.util.chemistry", "_autosummary/poli.core.util.chemistry.string_to_molecule", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "_autosummary/poli.core.util.external_observer", "_autosummary/poli.core.util.external_observer.ExternalObserver", "_autosummary/poli.core.util.files", "_autosummary/poli.core.util.files.download_files_from_github", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag", "_autosummary/poli.core.util.files.integrity", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath", "_autosummary/poli.core.util.inter_process_communication", "_autosummary/poli.core.util.inter_process_communication.process_wrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection", "_autosummary/poli.core.util.objective_management", "_autosummary/poli.core.util.objective_management.make_run_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script", "_autosummary/poli.core.util.observer_wrapper", "_autosummary/poli.core.util.observer_wrapper.start_observer_process", "_autosummary/poli.core.util.proteins", "_autosummary/poli.core.util.proteins.defaults", "_autosummary/poli.core.util.proteins.foldx", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface", "_autosummary/poli.core.util.proteins.mutations", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "_autosummary/poli.core.util.proteins.pdb_parsing", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "_autosummary/poli.core.util.proteins.rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization", "_autosummary/poli.core.util.proteins.rasp.load_models", "_autosummary/poli.core.util.proteins.rasp.rasp_interface", "_autosummary/poli.core.util.seeding", "_autosummary/poli.core.util.seeding.seeding", "_autosummary/poli.core.util.seeding.seeding.seed_numpy", "_autosummary/poli.core.util.seeding.seeding.seed_python", "_autosummary/poli.objective", "_autosummary/poli.objective.dynamically_instantiate", "_autosummary/poli.objective.parse_factory_kwargs", "_autosummary/poli.objective.run", "_autosummary/poli.objective_factory", "_autosummary/poli.objective_factory.ExternalBlackBox", "_autosummary/poli.objective_factory.create", "_autosummary/poli.objective_factory.load_config", "_autosummary/poli.objective_factory.start", "_autosummary/poli.objective_repository", "_autosummary/poli.objective_repository.aloha", "_autosummary/poli.objective_repository.aloha.register", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory", "_autosummary/poli.objective_repository.dockstring", "_autosummary/poli.objective_repository.dockstring.register", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory", "_autosummary/poli.objective_repository.drd3_docking", "_autosummary/poli.objective_repository.drd3_docking.register", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config", "_autosummary/poli.objective_repository.foldx_sasa", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils", "_autosummary/poli.objective_repository.foldx_sasa.register", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "_autosummary/poli.objective_repository.foldx_stability", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils", "_autosummary/poli.objective_repository.foldx_stability.register", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "_autosummary/poli.objective_repository.foldx_stability_and_sasa", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "_autosummary/poli.objective_repository.gfp_cbas", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp", "_autosummary/poli.objective_repository.gfp_cbas.make_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "_autosummary/poli.objective_repository.gfp_cbas.register", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "_autosummary/poli.objective_repository.gfp_select", "_autosummary/poli.objective_repository.gfp_select.register", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "_autosummary/poli.objective_repository.penalized_logp_lambo", "_autosummary/poli.objective_repository.penalized_logp_lambo.register", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "_autosummary/poli.objective_repository.rasp", "_autosummary/poli.objective_repository.rasp.register", "_autosummary/poli.objective_repository.rdkit_logp", "_autosummary/poli.objective_repository.rdkit_logp.register", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "_autosummary/poli.objective_repository.rdkit_qed", "_autosummary/poli.objective_repository.rdkit_qed.register", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.sa_tdc", "_autosummary/poli.objective_repository.sa_tdc.register", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory", "_autosummary/poli.objective_repository.super_mario_bros", "_autosummary/poli.objective_repository.super_mario_bros.level_utils", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized", "_autosummary/poli.objective_repository.super_mario_bros.model", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model", "_autosummary/poli.objective_repository.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "_autosummary/poli.objective_repository.toy_continuous_problem.register", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "_autosummary/poli.objective_repository.white_noise", "_autosummary/poli.objective_repository.white_noise.register", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "_autosummary/poli.registered_objectives", "_autosummary/poli.tests", "_autosummary/poli.tests.docs_examples", "_autosummary/poli.tests.docs_examples.test_objective_functions", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "_autosummary/poli.tests.registry", "_autosummary/poli.tests.registry.basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion", "_autosummary/poli.tests.registry.chemistry", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives", "_autosummary/poli.tests.registry.proteins", "_autosummary/poli.tests.registry.proteins.test_foldx", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo", "_autosummary/poli.tests.registry.proteins.test_rasp", "_autosummary/poli.tests.registry.test_basic_loop_without_create", "_autosummary/poli.tests.registry.test_force_isolation", "_autosummary/poli.tests.registry.test_passing_array_of_strings", "_autosummary/poli.tests.registry.toy_continuous_problems", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "_autosummary/poli.tests.test_minimal_working_example", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example", "_autosummary/poli.tests.test_seeding", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise", "_autosummary/poli.tests.util", "_autosummary/poli.tests.util.test_foldx_interface", "_autosummary/poli.tests.util.test_protein_utilities", "_templates/custom-module-template", "api", "bibliography", "contributing/a_new_problem", "contributing/a_new_solver", "getting_started/getting_started", "index", "understanding_foldx/00-installing-foldx", "understanding_foldx/01-single-mutation-using-foldx/index", "using_poli/objective_repository/RaSP", "using_poli/objective_repository/all_objectives", "using_poli/objective_repository/aloha", "using_poli/objective_repository/dockstring", "using_poli/objective_repository/drd3_docking", "using_poli/objective_repository/foldx_rfp_lambo", "using_poli/objective_repository/foldx_sasa", "using_poli/objective_repository/foldx_stability", "using_poli/objective_repository/penalized_logp_lambo", "using_poli/objective_repository/rdkit_logp", "using_poli/objective_repository/rdkit_qed", "using_poli/objective_repository/sa_tdc", "using_poli/objective_repository/super_mario_bros", "using_poli/objective_repository/tdc_oracles", "using_poli/objective_repository/template", "using_poli/objective_repository/toy_continuous_problems", "using_poli/objective_repository/white_noise", "using_poli/observers/registering_an_observer", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability", "using_poli/the_basics/defining_a_problem_solver", "using_poli/the_basics/defining_an_observer", "using_poli/the_basics/diving_deeper", "using_poli/the_basics/intro_to_poli", "using_poli/the_basics/isolation", "using_poli/the_basics/optimizing_an_objective_function", "using_poli/the_basics/registering_an_objective_function", "using_poli_baselines/bayesian_optimization", "using_poli_baselines/cma_es", "using_poli_baselines/graph_ga", "using_poli_baselines/latent_space_bo", "using_poli_baselines/line_bayesian_optimization", "using_poli_baselines/nsga_2", "using_poli_baselines/random_mutations", "using_poli_baselines/template"], "filenames": ["_autosummary/poli.rst", "_autosummary/poli.core.rst", "_autosummary/poli.core.abstract_black_box.rst", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox.rst", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox.rst", "_autosummary/poli.core.abstract_problem_factory.rst", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory.rst", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.rst", "_autosummary/poli.core.chemistry.rst", "_autosummary/poli.core.chemistry.tdc_black_box.rst", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox.rst", "_autosummary/poli.core.exceptions.rst", "_autosummary/poli.core.exceptions.BudgetExhaustedException.rst", "_autosummary/poli.core.exceptions.PoliException.rst", "_autosummary/poli.core.multi_objective_black_box.rst", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.rst", "_autosummary/poli.core.problem_setup_information.rst", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.rst", "_autosummary/poli.core.proteins.rst", "_autosummary/poli.core.proteins.foldx_black_box.rst", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.rst", "_autosummary/poli.core.registry.rst", "_autosummary/poli.core.registry.delete_observer_run_script.rst", "_autosummary/poli.core.registry.delete_problem.rst", "_autosummary/poli.core.registry.get_problem_factories.rst", "_autosummary/poli.core.registry.get_problems.rst", "_autosummary/poli.core.registry.register_problem.rst", "_autosummary/poli.core.registry.register_problem_from_repository.rst", "_autosummary/poli.core.registry.set_observer.rst", "_autosummary/poli.core.registry.set_observer_run_script.rst", "_autosummary/poli.core.util.rst", "_autosummary/poli.core.util.abstract_observer.rst", "_autosummary/poli.core.util.abstract_observer.AbstractObserver.rst", "_autosummary/poli.core.util.alignment.rst", "_autosummary/poli.core.util.alignment.is_aligned.rst", "_autosummary/poli.core.util.batch.rst", "_autosummary/poli.core.util.batch.batch_input.rst", "_autosummary/poli.core.util.batch.batch_input.batched.rst", "_autosummary/poli.core.util.chemistry.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies.rst", "_autosummary/poli.core.util.external_observer.rst", "_autosummary/poli.core.util.external_observer.ExternalObserver.rst", "_autosummary/poli.core.util.files.rst", "_autosummary/poli.core.util.files.download_files_from_github.rst", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.rst", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.rst", "_autosummary/poli.core.util.files.integrity.rst", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath.rst", "_autosummary/poli.core.util.inter_process_communication.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.rst", "_autosummary/poli.core.util.objective_management.rst", "_autosummary/poli.core.util.objective_management.make_run_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.rst", "_autosummary/poli.core.util.observer_wrapper.rst", "_autosummary/poli.core.util.observer_wrapper.start_observer_process.rst", "_autosummary/poli.core.util.proteins.rst", "_autosummary/poli.core.util.proteins.defaults.rst", "_autosummary/poli.core.util.proteins.foldx.rst", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface.rst", "_autosummary/poli.core.util.proteins.mutations.rst", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings.rst", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant.rst", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure.rst", "_autosummary/poli.core.util.proteins.rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization.rst", "_autosummary/poli.core.util.proteins.rasp.load_models.rst", "_autosummary/poli.core.util.proteins.rasp.rasp_interface.rst", "_autosummary/poli.core.util.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.seed_numpy.rst", "_autosummary/poli.core.util.seeding.seeding.seed_python.rst", "_autosummary/poli.objective.rst", "_autosummary/poli.objective.dynamically_instantiate.rst", "_autosummary/poli.objective.parse_factory_kwargs.rst", "_autosummary/poli.objective.run.rst", "_autosummary/poli.objective_factory.rst", "_autosummary/poli.objective_factory.ExternalBlackBox.rst", "_autosummary/poli.objective_factory.create.rst", "_autosummary/poli.objective_factory.load_config.rst", "_autosummary/poli.objective_factory.start.rst", "_autosummary/poli.objective_repository.rst", "_autosummary/poli.objective_repository.aloha.rst", "_autosummary/poli.objective_repository.aloha.register.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.rst", "_autosummary/poli.objective_repository.dockstring.rst", "_autosummary/poli.objective_repository.dockstring.register.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.rst", "_autosummary/poli.objective_repository.drd3_docking.rst", "_autosummary/poli.objective_repository.drd3_docking.register.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.rst", "_autosummary/poli.objective_repository.foldx_sasa.rst", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability.rst", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_stability.register.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_cbas.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_select.rst", "_autosummary/poli.objective_repository.gfp_select.register.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.rst", "_autosummary/poli.objective_repository.rasp.rst", "_autosummary/poli.objective_repository.rasp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.rst", "_autosummary/poli.objective_repository.rdkit_qed.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.sa_tdc.rst", "_autosummary/poli.objective_repository.sa_tdc.register.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory.rst", "_autosummary/poli.objective_repository.super_mario_bros.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem.rst", "_autosummary/poli.objective_repository.white_noise.rst", "_autosummary/poli.objective_repository.white_noise.register.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory.rst", "_autosummary/poli.registered_objectives.rst", "_autosummary/poli.tests.rst", "_autosummary/poli.tests.docs_examples.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example.rst", "_autosummary/poli.tests.registry.rst", "_autosummary/poli.tests.registry.basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise.rst", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion.rst", "_autosummary/poli.tests.registry.chemistry.rst", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives.rst", "_autosummary/poli.tests.registry.proteins.rst", "_autosummary/poli.tests.registry.proteins.test_foldx.rst", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo.rst", "_autosummary/poli.tests.registry.proteins.test_rasp.rst", "_autosummary/poli.tests.registry.test_basic_loop_without_create.rst", "_autosummary/poli.tests.registry.test_force_isolation.rst", "_autosummary/poli.tests.registry.test_passing_array_of_strings.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems.rst", "_autosummary/poli.tests.test_minimal_working_example.rst", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.rst", "_autosummary/poli.tests.test_seeding.rst", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise.rst", "_autosummary/poli.tests.util.rst", "_autosummary/poli.tests.util.test_foldx_interface.rst", "_autosummary/poli.tests.util.test_protein_utilities.rst", "_templates/custom-module-template.rst", "api.rst", "bibliography.md", "contributing/a_new_problem.md", "contributing/a_new_solver.md", "getting_started/getting_started.md", "index.md", "understanding_foldx/00-installing-foldx.md", "understanding_foldx/01-single-mutation-using-foldx/index.ipynb", "using_poli/objective_repository/RaSP.md", "using_poli/objective_repository/all_objectives.md", "using_poli/objective_repository/aloha.md", "using_poli/objective_repository/dockstring.md", "using_poli/objective_repository/drd3_docking.md", "using_poli/objective_repository/foldx_rfp_lambo.md", "using_poli/objective_repository/foldx_sasa.md", "using_poli/objective_repository/foldx_stability.md", "using_poli/objective_repository/penalized_logp_lambo.md", "using_poli/objective_repository/rdkit_logp.md", "using_poli/objective_repository/rdkit_qed.md", "using_poli/objective_repository/sa_tdc.md", "using_poli/objective_repository/super_mario_bros.md", "using_poli/objective_repository/tdc_oracles.md", "using_poli/objective_repository/template.md", "using_poli/objective_repository/toy_continuous_problems.md", "using_poli/objective_repository/white_noise.md", "using_poli/observers/registering_an_observer.md", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb", "using_poli/the_basics/defining_a_problem_solver.md", "using_poli/the_basics/defining_an_observer.ipynb", "using_poli/the_basics/diving_deeper.md", "using_poli/the_basics/intro_to_poli.ipynb", "using_poli/the_basics/isolation.ipynb", "using_poli/the_basics/optimizing_an_objective_function.md", "using_poli/the_basics/registering_an_objective_function.md", "using_poli_baselines/bayesian_optimization.md", "using_poli_baselines/cma_es.md", "using_poli_baselines/graph_ga.md", "using_poli_baselines/latent_space_bo.md", "using_poli_baselines/line_bayesian_optimization.md", "using_poli_baselines/nsga_2.md", "using_poli_baselines/random_mutations.md", "using_poli_baselines/template.md"], "titles": ["poli", "poli.core", "poli.core.abstract_black_box", "poli.core.abstract_black_box.AbstractBlackBox", "poli.core.abstract_black_box.NegativeBlackBox", "poli.core.abstract_problem_factory", "poli.core.abstract_problem_factory.AbstractProblemFactory", "poli.core.abstract_problem_factory.MetaProblemFactory", "poli.core.chemistry", "poli.core.chemistry.tdc_black_box", "poli.core.chemistry.tdc_black_box.TDCBlackBox", "poli.core.exceptions", "poli.core.exceptions.BudgetExhaustedException", "poli.core.exceptions.PoliException", "poli.core.multi_objective_black_box", "poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "poli.core.problem_setup_information", "poli.core.problem_setup_information.ProblemSetupInformation", "poli.core.proteins", "poli.core.proteins.foldx_black_box", "poli.core.proteins.foldx_black_box.FoldxBlackBox", "poli.core.registry", "poli.core.registry.delete_observer_run_script", "poli.core.registry.delete_problem", "poli.core.registry.get_problem_factories", "poli.core.registry.get_problems", "poli.core.registry.register_problem", "poli.core.registry.register_problem_from_repository", "poli.core.registry.set_observer", "poli.core.registry.set_observer_run_script", "poli.core.util", "poli.core.util.abstract_observer", "poli.core.util.abstract_observer.AbstractObserver", "poli.core.util.alignment", "poli.core.util.alignment.is_aligned", "poli.core.util.batch", "poli.core.util.batch.batch_input", "poli.core.util.batch.batch_input.batched", "poli.core.util.chemistry", "poli.core.util.chemistry.string_to_molecule", "poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "poli.core.util.external_observer", "poli.core.util.external_observer.ExternalObserver", "poli.core.util.files", "poli.core.util.files.download_files_from_github", "poli.core.util.files.download_files_from_github.download_file_from_github_repository", "poli.core.util.files.download_files_from_github.get_sha_for_tag", "poli.core.util.files.integrity", "poli.core.util.files.integrity.compute_md5_from_filepath", "poli.core.util.inter_process_communication", "poli.core.util.inter_process_communication.process_wrapper", "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "poli.core.util.inter_process_communication.process_wrapper.get_connection", "poli.core.util.objective_management", "poli.core.util.objective_management.make_run_script", "poli.core.util.objective_management.make_run_script.make_observer_script", "poli.core.util.objective_management.make_run_script.make_run_script", "poli.core.util.observer_wrapper", "poli.core.util.observer_wrapper.start_observer_process", "poli.core.util.proteins", "poli.core.util.proteins.defaults", "poli.core.util.proteins.foldx", "poli.core.util.proteins.foldx.FoldxInterface", "poli.core.util.proteins.mutations", "poli.core.util.proteins.mutations.edits_between_strings", "poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "poli.core.util.proteins.pdb_parsing", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "poli.core.util.proteins.rasp", "poli.core.util.proteins.rasp.inner_rasp", "poli.core.util.proteins.rasp.inner_rasp.PrismData", "poli.core.util.proteins.rasp.inner_rasp.cavity_model", "poli.core.util.proteins.rasp.inner_rasp.helpers", "poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "poli.core.util.proteins.rasp.inner_rasp.visualization", "poli.core.util.proteins.rasp.load_models", "poli.core.util.proteins.rasp.rasp_interface", "poli.core.util.seeding", "poli.core.util.seeding.seeding", "poli.core.util.seeding.seeding.seed_numpy", "poli.core.util.seeding.seeding.seed_python", "poli.objective", "poli.objective.dynamically_instantiate", "poli.objective.parse_factory_kwargs", "poli.objective.run", "poli.objective_factory", "poli.objective_factory.ExternalBlackBox", "poli.objective_factory.create", "poli.objective_factory.load_config", "poli.objective_factory.start", "poli.objective_repository", "poli.objective_repository.aloha", "poli.objective_repository.aloha.register", "poli.objective_repository.aloha.register.AlohaBlackBox", "poli.objective_repository.aloha.register.AlohaProblemFactory", "poli.objective_repository.dockstring", "poli.objective_repository.dockstring.register", "poli.objective_repository.dockstring.register.DockstringBlackBox", "poli.objective_repository.dockstring.register.DockstringProblemFactory", "poli.objective_repository.drd3_docking", "poli.objective_repository.drd3_docking.register", "poli.objective_repository.drd3_docking.register.DRD3BlackBox", "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "poli.objective_repository.foldx_rfp_lambo", "poli.objective_repository.foldx_rfp_lambo.register", "poli.objective_repository.foldx_rfp_lambo.register.Config", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "poli.objective_repository.foldx_rfp_lambo.register.get_config", "poli.objective_repository.foldx_sasa", "poli.objective_repository.foldx_sasa.foldx_utils", "poli.objective_repository.foldx_sasa.register", "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "poli.objective_repository.foldx_stability", "poli.objective_repository.foldx_stability.foldx_utils", "poli.objective_repository.foldx_stability.register", "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "poli.objective_repository.foldx_stability_and_sasa", "poli.objective_repository.foldx_stability_and_sasa.register", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "poli.objective_repository.gfp_cbas", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "poli.objective_repository.gfp_cbas.cbas_wrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "poli.objective_repository.gfp_cbas.gfp_gp", "poli.objective_repository.gfp_cbas.make_vae", "poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "poli.objective_repository.gfp_cbas.make_vae.build_vae", "poli.objective_repository.gfp_cbas.make_vae.identity_loss", "poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "poli.objective_repository.gfp_cbas.register", "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "poli.objective_repository.gfp_select", "poli.objective_repository.gfp_select.register", "poli.objective_repository.gfp_select.register.GFPBlackBox", "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "poli.objective_repository.penalized_logp_lambo", "poli.objective_repository.penalized_logp_lambo.register", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "poli.objective_repository.rasp", "poli.objective_repository.rasp.register", "poli.objective_repository.rdkit_logp", "poli.objective_repository.rdkit_logp.register", "poli.objective_repository.rdkit_logp.register.LogPBlackBox", "poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "poli.objective_repository.rdkit_qed", "poli.objective_repository.rdkit_qed.register", "poli.objective_repository.rdkit_qed.register.QEDBlackBox", "poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "poli.objective_repository.rfp_foldx_stability_and_sasa", "poli.objective_repository.rfp_foldx_stability_and_sasa.register", "poli.objective_repository.sa_tdc", "poli.objective_repository.sa_tdc.register", "poli.objective_repository.sa_tdc.register.SABlackBox", "poli.objective_repository.sa_tdc.register.SAProblemFactory", "poli.objective_repository.super_mario_bros", "poli.objective_repository.super_mario_bros.level_utils", "poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "poli.objective_repository.super_mario_bros.level_utils.clean_level", "poli.objective_repository.super_mario_bros.level_utils.level_to_array", "poli.objective_repository.super_mario_bros.level_utils.level_to_list", "poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "poli.objective_repository.super_mario_bros.level_utils.vectorized", "poli.objective_repository.super_mario_bros.model", "poli.objective_repository.super_mario_bros.model.VAEMario", "poli.objective_repository.super_mario_bros.model.load_example_model", "poli.objective_repository.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.definitions", "poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "poli.objective_repository.toy_continuous_problem.definitions.brown", "poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "poli.objective_repository.toy_continuous_problem.definitions.deb_01", "poli.objective_repository.toy_continuous_problem.definitions.deb_02", "poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "poli.objective_repository.toy_continuous_problem.definitions.easom", "poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "poli.objective_repository.toy_continuous_problem.register", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "poli.objective_repository.white_noise", "poli.objective_repository.white_noise.register", "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "poli.registered_objectives", "poli.tests", "poli.tests.docs_examples", "poli.tests.docs_examples.test_objective_functions", "poli.tests.docs_examples.test_objective_functions.test_aloha_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_qed_example", "poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "poli.tests.registry", "poli.tests.registry.basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "poli.tests.registry.basic_objectives.test_budget_exhaustion", "poli.tests.registry.chemistry", "poli.tests.registry.chemistry.test_chemistry_objectives", "poli.tests.registry.proteins", "poli.tests.registry.proteins.test_foldx", "poli.tests.registry.proteins.test_foldx_rfp_lambo", "poli.tests.registry.proteins.test_rasp", "poli.tests.registry.test_basic_loop_without_create", "poli.tests.registry.test_force_isolation", "poli.tests.registry.test_passing_array_of_strings", "poli.tests.registry.toy_continuous_problems", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "poli.tests.test_minimal_working_example", "poli.tests.test_minimal_working_example.test_minimal_working_example", "poli.tests.test_seeding", "poli.tests.test_seeding.test_seeding_in_white_noise", "poli.tests.util", "poli.tests.util.test_foldx_interface", "poli.tests.util.test_protein_utilities", "<no title>", "API documentation for poli", "References", "Adding a new problem to the repository", "Adding a new optimizer to poli-baselines", "Getting started", "poli \ud83e\uddea: a library of discrete objective functions", "Installing foldx", "Computing the energy of a protein and a single mutation", "Rapid Stability Predictions", "All objective functions", "Aloha objective function", "dockstring", "DRD3 docking (using TDC)", "Protein (RFP) stability and SASA (using foldx,lambo)", "Protein solvent accessibility (using foldx)", "Protein stability (using foldx)", "Penalized logP (using lambo)", "Log-solubility (logP)", "Quantitative Estimate of Druglikeness (QED)", "Synthetic Accessibility (using TDC)", "Optimizing jumps in Super Mario Bros", "Therapeutics Data Commons\u2019 oracles", "Objective function name", "Toy continuous objective functions", "White Noise objective function", "Registering and running observers in isolated processes", "Optimizing protein stability using random mutations", "Defining a problem solver in poli_baselines", "Defining an observer", "Diving deeper: how does poli work under the hood?", "What is poli?", "Isolating black box objective functions", "Optimizing an objective function", "Registering an objective function in poli", "Bayesian Optimization", "CMA-ES", "Graph Genetic Algorithms", "Latent Space Bayesian Optimization", "Line Bayesian Optimization", "Discrete NSGA-2", "Random mutations", "Template: optimization algorithm"], "terms": {"librari": [0, 32, 37, 200, 270, 291, 293, 294], "discret": [0, 99, 100, 101, 131, 266, 289, 290, 293, 295, 297], "black": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 274, 280, 281, 289, 290, 291, 293, 295, 297, 302], "box": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 273, 274, 280, 281, 286, 287, 289, 290, 291, 293, 295, 297, 302], "object": [0, 2, 3, 4, 14, 15, 17, 19, 20, 32, 46, 50, 55, 56, 59, 66, 73, 74, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 106, 111, 113, 118, 119, 121, 123, 124, 127, 128, 160, 164, 168, 173, 177, 178, 179, 181, 183, 184, 200, 216, 217, 218, 221, 223, 229, 248, 249, 252, 264, 265, 266, 267, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 302], "function": [0, 2, 3, 4, 9, 14, 15, 21, 22, 23, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 43, 44, 48, 49, 51, 53, 54, 56, 58, 61, 62, 67, 70, 71, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 100, 102, 103, 104, 106, 108, 111, 113, 115, 116, 119, 121, 124, 128, 133, 153, 160, 164, 167, 168, 173, 174, 177, 178, 179, 184, 187, 196, 199, 200, 216, 217, 218, 220, 221, 223, 224, 229, 238, 248, 249, 252, 255, 257, 264, 265, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 301, 302], "modul": [0, 1, 2, 5, 8, 18, 19, 21, 30, 33, 35, 36, 38, 47, 48, 51, 53, 54, 57, 58, 63, 64, 65, 67, 71, 84, 97, 98, 102, 103, 106, 110, 116, 121, 126, 130, 150, 152, 162, 166, 167, 170, 171, 172, 176, 180, 182, 186, 199, 222, 227, 228, 229, 236, 237, 242, 244, 248, 249, 251, 257, 259, 262, 289, 294], "class": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 28, 31, 32, 45, 46, 54, 55, 65, 66, 92, 93, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 113, 114, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 132, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 196, 197, 217, 218, 219, 220, 221, 223, 224, 225, 265, 266, 290, 291, 296], "util": [1, 21, 115, 124, 152, 187, 291, 294, 297], "insid": [1, 11, 27, 89, 97, 106, 173, 178, 265, 267, 268, 270, 271, 274, 275, 286, 289, 293, 294, 296], "thi": [2, 4, 5, 6, 14, 15, 19, 21, 22, 23, 26, 27, 28, 29, 32, 36, 37, 43, 44, 48, 49, 51, 55, 56, 58, 62, 64, 65, 66, 67, 70, 71, 89, 90, 91, 94, 96, 99, 103, 106, 109, 118, 123, 127, 148, 152, 167, 171, 173, 177, 181, 200, 216, 217, 218, 223, 229, 248, 249, 252, 257, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301, 302, 303, 304], "implement": [2, 4, 5, 8, 9, 14, 15, 16, 18, 19, 36, 65, 100, 103, 104, 107, 119, 124, 128, 131, 148, 154, 166, 167, 171, 183, 184, 218, 266, 268, 272, 274, 276, 279, 286, 289, 290, 293, 294, 295, 296, 297, 298, 302], "abstract": [2, 3, 5, 6, 31, 32, 265, 289, 296], "from": [2, 10, 20, 23, 25, 27, 37, 43, 44, 47, 48, 49, 50, 51, 52, 65, 66, 70, 89, 90, 96, 106, 119, 124, 128, 134, 139, 142, 155, 171, 190, 193, 198, 200, 206, 215, 256, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "which": [2, 3, 7, 16, 20, 45, 52, 66, 70, 74, 95, 103, 168, 177, 179, 217, 218, 224, 265, 266, 270, 271, 274, 275, 276, 279, 282, 286, 289, 290, 291, 293, 294, 295, 296, 297], "all": [2, 92, 94, 97, 99, 100, 101, 106, 148, 200, 224, 229, 265, 266, 267, 270, 271, 273, 274, 281, 289, 290, 293, 296], "should": [2, 55, 106, 265, 266, 267, 269, 273, 275, 280, 281, 286, 287, 289, 290, 291, 294, 295, 296], "inherit": [2, 10, 15, 266, 289, 290, 291, 296], "info": [3, 4, 10, 15, 20, 93, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 266, 289, 290, 291, 293, 294, 296, 302], "problemsetupinform": [3, 4, 10, 15, 20, 32, 93, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 276, 291, 296], "batch_siz": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 144, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294, 296, 302], "option": [3, 4, 10, 15, 17, 20, 22, 26, 27, 28, 29, 40, 42, 43, 44, 46, 49, 52, 59, 60, 66, 68, 69, 72, 73, 74, 86, 87, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 197, 218, 221, 224], "int": [3, 4, 10, 15, 17, 20, 32, 37, 56, 62, 68, 69, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 149, 160, 164, 168, 174, 178, 184, 188, 189, 192, 194, 197, 218, 221, 224, 265, 266, 290, 291, 295, 296], "none": [3, 4, 10, 15, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 59, 60, 66, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 143, 145, 147, 160, 161, 164, 168, 174, 178, 184, 197, 218, 221, 224, 265, 266, 273, 274, 280, 281, 285, 286, 287, 289, 291, 295, 296], "parallel": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294], "bool": [3, 4, 10, 17, 20, 25, 26, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 140, 160, 164, 168, 174, 178, 184, 216, 218, 224, 265, 279, 295], "fals": [3, 4, 10, 17, 20, 25, 26, 27, 41, 42, 43, 44, 49, 66, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 139, 140, 146, 160, 164, 168, 174, 178, 184, 193, 218, 224, 265, 289, 291, 293, 295], "num_work": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294], "evaluation_budget": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 289, 294], "inf": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "base": [3, 6, 13, 32, 55, 106, 154, 267, 268, 270, 272, 275, 289, 293, 296, 302], "optim": [3, 17, 32, 65, 110, 166, 167, 199, 200, 217, 220, 252, 264, 269, 270, 272, 286, 290, 291, 296, 302, 303], "problem": [3, 4, 5, 6, 10, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 34, 57, 58, 60, 93, 99, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 173, 174, 177, 178, 179, 180, 184, 185, 186, 200, 217, 218, 222, 223, 224, 252, 267, 270, 276, 291, 293, 302], "paramet": [3, 4, 6, 10, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 37, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 67, 68, 69, 70, 72, 73, 74, 86, 87, 89, 90, 91, 93, 94, 96, 100, 101, 104, 105, 108, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224], "The": [3, 4, 10, 15, 17, 19, 20, 22, 23, 26, 27, 28, 29, 37, 46, 49, 50, 52, 55, 56, 59, 60, 62, 65, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 104, 106, 108, 113, 118, 119, 123, 124, 127, 128, 154, 160, 164, 166, 173, 174, 177, 178, 179, 181, 184, 214, 215, 217, 218, 223, 224, 266, 268, 270, 271, 272, 274, 277, 278, 279, 289, 290, 294, 295, 296, 302], "setup": [3, 4, 6, 10, 15, 16, 20, 46, 62, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224, 275, 276, 279, 282, 289, 294], "inform": [3, 4, 6, 10, 15, 16, 20, 32, 46, 62, 93, 94, 96, 100, 101, 103, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 171, 174, 178, 179, 184, 185, 218, 221, 224, 264, 265, 270, 291, 296], "provid": [3, 15, 46, 92, 109, 119, 124, 178, 268, 269, 270, 291, 293], "detail": [3, 9, 67, 90, 91, 270, 289, 293], "about": [3, 10, 27, 90, 91, 93, 94, 96, 265, 268, 269, 272, 289, 293, 296], "batch": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "size": [3, 4, 10, 15, 20, 37, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296, 298, 302], "evalu": [3, 4, 10, 14, 15, 20, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 179, 184, 218, 224, 266, 267, 279, 289, 290, 291, 294, 296], "default": [3, 4, 10, 15, 17, 20, 22, 27, 28, 29, 46, 49, 52, 66, 68, 69, 72, 73, 74, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 265, 266, 276, 277, 278, 286, 296, 297, 301], "flag": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218], "indic": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 134, 135, 160, 164, 174, 178, 184, 218, 266, 290], "whether": [3, 4, 10, 17, 20, 25, 26, 49, 72, 73, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 249, 257, 270, 279, 280, 281, 291, 293, 296], "number": [3, 4, 10, 20, 37, 56, 62, 84, 85, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 266, 272, 286, 290, 293, 295], "worker": [3, 4, 10, 20, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "us": [3, 4, 7, 10, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 51, 55, 56, 60, 64, 65, 66, 88, 89, 94, 96, 99, 100, 104, 106, 107, 108, 113, 119, 123, 124, 126, 128, 138, 139, 140, 160, 164, 166, 167, 168, 171, 172, 173, 174, 176, 177, 178, 180, 183, 184, 217, 218, 223, 248, 252, 264, 265, 266, 269, 270, 271, 272, 274, 280, 281, 286, 288, 290, 291, 294, 295, 296, 297, 298, 301, 302], "half": [3, 4, 94, 113, 160, 164, 218, 224], "avail": [3, 4, 24, 25, 94, 106, 113, 118, 123, 127, 160, 164, 181, 218, 224, 229, 267, 270, 272, 276, 277, 278, 279, 286, 289, 293, 295, 296], "cpu": [3, 4, 94, 113, 160, 164, 218, 224], "maximum": [3, 4, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296], "allow": [3, 4, 7, 19, 20, 94, 113, 118, 119, 123, 124, 127, 128, 160, 164, 173, 177, 181, 217, 218, 265, 266, 269, 270, 286, 290, 293, 295, 296], "float": [3, 4, 20, 113, 119, 124, 128, 160, 164, 174, 177, 178, 184, 212, 218, 224, 265, 268, 295], "type": [3, 10, 15, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 55, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 95, 100, 104, 108, 136, 141, 174, 178, 218, 265, 270, 294, 296], "observ": [3, 21, 22, 28, 29, 30, 31, 32, 45, 46, 57, 58, 59, 61, 62, 89, 94, 96, 139, 268, 289, 294, 295, 296], "record": 3, "dure": [3, 62, 265, 286], "abstractobserv": [3, 28, 59, 94, 96, 291], "observer_info": 3, "given": [3, 15, 22, 43, 44, 56, 59, 60, 66, 69, 74, 103, 104, 105, 124, 136, 137, 138, 198, 266, 267, 271, 274, 290], "after": [3, 28, 32, 106, 265, 266, 270, 275, 276, 279, 282, 289, 290, 293, 296], "initi": [3, 4, 10, 15, 17, 20, 32, 46, 55, 62, 66, 93, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 266, 270, 289, 290, 293, 296, 302], "set_observ": [3, 288], "set": [3, 26, 28, 29, 32, 55, 74, 106, 138, 140, 146, 152, 174, 178, 265, 266, 271, 274, 290, 291, 293], "reset_evaluation_budget": 3, "reset": [3, 96], "budget": [3, 10, 12, 20, 96, 119, 124, 128], "made": 3, "0": [3, 66, 68, 119, 124, 128, 156, 177, 193, 212, 266, 267, 268, 270, 271, 277, 278, 280, 281, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301], "__call__": [3, 4], "x": [3, 4, 15, 32, 46, 94, 96, 100, 104, 106, 124, 140, 145, 146, 174, 178, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 218, 224, 265, 266, 267, 271, 273, 274, 275, 280, 281, 285, 286, 287, 289, 290, 291, 296, 297], "context": [3, 15, 32, 46, 96, 100, 104, 124, 174, 178, 218, 224, 265, 291, 296], "input": [3, 10, 15, 22, 29, 34, 36, 94, 100, 104, 108, 124, 174, 178, 184, 218, 224, 265, 267, 268, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 296, 297, 301, 302], "_black_box": [3, 4, 15, 100, 104, 124, 174, 178, 218, 224, 265, 296], "method": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 70, 74, 93, 94, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 138, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 270, 276, 277, 278, 289, 290, 291, 293, 294, 295, 296], "termin": [3, 62, 274, 277, 278, 279, 280, 281, 291, 296], "__enter__": 3, "enter": 3, "manag": [3, 49, 96], "__exit__": 3, "exc_typ": 3, "exc_val": 3, "exc_tb": 3, "exit": 3, "__del__": 3, "destructor": 3, "__neg__": 3, "creat": [3, 6, 20, 26, 27, 28, 49, 55, 57, 58, 59, 60, 92, 96, 101, 105, 109, 120, 129, 173, 177, 179, 185, 186, 248, 265, 266, 267, 268, 269, 270, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 287, 289, 291, 294, 295, 297, 298, 301, 302, 303, 304], "new": [3, 108, 173, 177, 268, 270, 290, 296], "neg": [3, 158, 274, 278], "origin": [3, 4, 66, 67, 70, 131, 215, 268, 270, 289], "one": [3, 143, 178, 192, 264, 265, 266, 268, 270, 271, 272, 276, 289, 290, 293, 301], "__init__": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 93, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 290, 291, 296], "execut": [3, 4, 51, 55, 59, 88, 106, 108, 113, 160, 164, 184, 218, 269, 275], "we": [3, 4, 9, 14, 20, 27, 64, 70, 94, 106, 113, 118, 119, 123, 124, 127, 128, 139, 160, 164, 166, 167, 173, 174, 177, 178, 181, 200, 214, 216, 217, 218, 252, 265, 266, 267, 268, 270, 271, 274, 275, 279, 286, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302], "f": [4, 19, 64, 65, 94, 96, 118, 123, 127, 181, 265, 266, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 302, 303, 304], "abstractblackbox": [4, 10, 15, 94, 96, 113, 160, 164, 218, 265, 266, 289, 290, 291, 296], "A": [4, 17, 20, 24, 25, 26, 28, 37, 40, 41, 42, 43, 44, 60, 64, 66, 68, 69, 70, 72, 73, 90, 96, 99, 100, 101, 106, 110, 116, 118, 119, 123, 124, 126, 127, 128, 168, 174, 178, 180, 181, 182, 186, 196, 197, 199, 218, 220, 222, 224, 264, 267, 268, 270, 271, 272, 273, 277, 278, 291, 296], "wrapper": [4, 9, 93, 106, 110, 131, 148, 173, 177, 182, 268, 272, 302], "negat": 4, "If": [4, 15, 22, 25, 27, 28, 29, 32, 37, 40, 41, 42, 43, 44, 46, 49, 50, 56, 62, 65, 66, 68, 69, 70, 74, 86, 87, 94, 96, 173, 177, 216, 218, 265, 266, 267, 268, 269, 270, 274, 275, 276, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "you": [4, 66, 74, 106, 173, 174, 177, 178, 200, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 295, 296], "construct": [4, 155], "maxim": [4, 200, 215, 216, 266, 286], "minim": [4, 200, 256, 266, 272, 274, 290, 302], "latter": [4, 270], "onli": [4, 9, 25, 96, 131, 139, 148, 209, 213, 214, 265, 266, 267, 270, 271, 274, 275, 276, 278, 279, 282, 286, 289, 290, 295, 296], "differ": [4, 19, 68, 118, 123, 127, 181, 229, 265, 266, 267, 270, 271, 290, 291, 296], "return": [4, 6, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 52, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 94, 95, 96, 101, 105, 120, 124, 129, 136, 137, 138, 141, 143, 156, 157, 168, 173, 174, 177, 178, 179, 185, 191, 194, 222, 223, 224, 265, 266, 273, 274, 276, 277, 278, 280, 281, 287, 289, 290, 294, 296], "instead": [4, 173, 200, 266, 277, 278, 290, 294], "same": [4, 69, 70, 166, 167, 168, 265, 267, 271, 293], "factori": [5, 6, 19, 24, 26, 27, 55, 60, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 105, 109, 111, 118, 119, 120, 121, 123, 124, 127, 129, 173, 177, 179, 181, 185, 217, 223, 265, 268, 289], "defin": [6, 28, 67, 180, 200, 252, 265, 266, 286, 293, 295], "interfac": [6, 65, 92, 268, 294], "instanc": [6, 10, 15, 101, 105, 108, 120, 129, 179, 185, 218, 267, 289, 296, 302], "get_setup_inform": [6, 101, 105, 109, 120, 129, 179, 185, 265, 296], "specifi": [6, 49, 50, 94, 101, 105, 120, 129, 137, 142, 150, 154, 179, 185, 217, 265, 270, 280, 281, 295, 296, 302], "metaclass": 7, "abstractproblemfactori": [7, 24, 26, 60, 265, 294, 296], "overrid": 7, "__repr__": 7, "__str__": 7, "arg": [7, 150, 151, 154, 155, 197, 265, 270, 289, 294], "kwarg": [7, 26, 60, 89, 90, 91, 150, 151, 154, 155, 197, 265, 289, 296], "contain": [8, 10, 16, 18, 21, 37, 51, 58, 60, 64, 67, 68, 69, 71, 89, 90, 91, 95, 134, 135, 152, 221, 229, 265, 267, 270, 277, 278, 296], "relat": [8, 18, 38, 63, 269], "around": [9, 106, 110, 173, 177, 182, 268, 272, 302], "therapeut": [9, 10, 107, 183, 264, 268, 272, 275, 282, 296], "data": [9, 10, 35, 49, 100, 104, 106, 139, 140, 146, 147, 152, 264, 268, 270, 272, 275, 276, 282, 296], "common": [9, 10, 92, 264, 268, 270, 272, 275, 282, 296, 302], "tdc": [9, 10, 106, 107, 182, 183, 184, 268, 272], "oracl": [9, 10, 107, 108, 182, 183, 184, 268, 272, 275, 282], "1": [9, 19, 27, 37, 65, 68, 70, 96, 103, 104, 105, 107, 110, 118, 123, 127, 134, 135, 139, 146, 156, 166, 167, 168, 171, 177, 181, 183, 184, 188, 200, 206, 215, 217, 221, 264, 266, 267, 268, 270, 271, 273, 275, 279, 280, 281, 285, 286, 287, 289, 290, 291, 293, 294, 296, 297, 298, 301, 302], "so": [9, 26, 70, 174, 178, 266, 270, 276, 279, 290, 294, 296], "far": [9, 266, 290], "support": [9, 248, 265, 267, 268, 290, 294], "two": [9, 56, 68, 267, 270, 277, 278, 280, 281, 286, 291, 294, 295, 296, 302], "drd3": [9, 106, 108, 109, 268, 272, 274], "synthet": [9, 182, 183, 184, 185, 268, 272], "access": [9, 49, 66, 106, 116, 119, 120, 126, 128, 129, 180, 183, 184, 185, 264, 265, 268, 270, 272, 275, 286], "see": [9, 43, 44, 67, 90, 91, 99, 106, 173, 177, 200, 217, 220, 223, 265, 267, 270, 271, 274, 276, 289, 293, 294, 296], "document": [9, 168, 267, 268, 270, 289, 294], "our": [9, 265, 266, 270, 272, 274, 277, 278, 289, 290, 291, 295, 296, 297, 298, 302], "more": [9, 67, 119, 124, 128, 220, 221, 265, 267, 270, 271, 289, 293], "refer": [9, 19, 65, 103, 104, 105, 106, 107, 110, 166, 167, 183, 268, 276, 279], "artifici": [9, 107, 183, 200], "intellig": [9, 107, 183], "foundat": [9, 107, 183], "scienc": [9, 107, 183, 264], "huang": [9, 107, 183, 264, 268, 275, 282], "kexin": [9, 264], "tianfan": [9, 264], "fu": [9, 107, 183, 264], "wenhao": [9, 264], "gao": [9, 107, 183, 264, 272], "yue": [9, 264], "zhao": [9, 264], "yusuf": [9, 264], "roohani": [9, 264], "jure": [9, 264], "leskovec": [9, 264], "connor": [9, 264], "w": [9, 64, 107, 183, 192, 197, 264, 268, 270, 275, 291], "colei": [9, 264, 268], "cao": [9, 264], "xiao": [9, 264], "jimeng": [9, 264], "sun": [9, 264], "marinka": [9, 264], "zitnik": [9, 264], "natur": 9, "chemic": [9, 103, 104, 105, 264], "biologi": [9, 106, 118, 123, 127, 181, 264, 275], "18": [9, 107, 183, 264], "10": [9, 37, 103, 104, 105, 107, 171, 183, 264, 297, 298, 301, 302], "octob": 9, "2022": [9, 65, 103, 104, 105, 107, 110, 166, 167, 183, 264, 268, 269, 270, 272, 274, 279, 289], "1033": [9, 107, 183], "36": 9, "http": [9, 37, 48, 49, 65, 67, 103, 104, 105, 106, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 265, 267, 268, 269, 270, 276, 279, 293, 296], "doi": [9, 103, 104, 105, 107, 171, 183, 264], "org": [9, 37, 65, 103, 104, 105, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 270], "1038": [9, 107, 183], "s41589": [9, 107, 183], "022": [9, 107, 183], "01131": [9, 107, 183], "2": [9, 27, 37, 65, 68, 107, 118, 123, 127, 134, 135, 181, 183, 197, 200, 216, 218, 221, 264, 267, 270, 282, 285, 286, 287, 289, 293, 294, 297, 301], "oracle_nam": [10, 108], "str": [10, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 94, 96, 104, 108, 119, 124, 128, 161, 178, 190, 191, 197, 218, 265, 270, 277, 278, 279, 291, 296], "from_smil": [10, 108, 168, 174, 178, 184], "true": [10, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 74, 94, 96, 108, 140, 155, 160, 168, 174, 178, 184, 216, 270, 275, 277, 278, 279, 280, 281, 282, 289, 291, 293, 295, 296], "kwargs_for_oracl": [10, 108], "repres": [10, 20, 56, 68, 73, 108, 154, 293], "It": [10, 26, 55, 56, 89, 106, 265, 267, 270, 274, 275, 289, 290, 293], "name": [10, 17, 22, 23, 26, 27, 28, 29, 46, 49, 50, 60, 62, 72, 73, 74, 89, 91, 94, 96, 104, 108, 218, 221, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "comput": [10, 19, 52, 66, 68, 70, 100, 104, 106, 108, 118, 119, 123, 124, 126, 127, 128, 166, 167, 172, 174, 178, 180, 181, 200, 264, 267, 268, 269, 271, 272, 275, 277, 278, 279, 282, 294], "dock": [10, 103, 104, 105, 106, 107, 108, 109, 264, 268, 272, 274, 294], "score": [10, 103, 104, 105, 119, 124, 128, 268, 271, 272, 274, 275, 277, 278, 279, 294], "an": [10, 19, 22, 28, 29, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 49, 56, 61, 62, 65, 70, 89, 91, 93, 94, 96, 118, 123, 127, 134, 135, 173, 178, 181, 192, 249, 265, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 289, 294, 297, 298, 302], "process": [10, 26, 28, 32, 45, 46, 55, 56, 61, 62, 89, 91, 93, 94, 96, 100, 104, 119, 123, 124, 128, 152, 173, 174, 178, 249, 264, 265, 270, 275, 276, 277, 278, 279, 280, 281, 282, 286, 289, 293, 294, 295, 296, 297], "multipl": [10, 100, 104, 174, 178], "infin": [10, 94, 100, 104, 108, 119, 124, 128, 174, 178, 184], "molecul": [10, 39, 40, 41, 42, 103, 104, 105, 168, 174, 178, 179, 264, 267, 270, 274, 275, 282, 293], "ar": [10, 24, 27, 32, 65, 68, 70, 95, 106, 140, 168, 173, 174, 177, 178, 179, 217, 229, 252, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 297], "smile": [10, 41, 42, 43, 44, 104, 108, 173, 174, 177, 178, 184, 268, 274, 279, 280, 281], "format": [10, 55, 67, 70, 136], "represent": [10, 39, 42, 104, 108, 171, 264, 294], "dict": [10, 24, 26, 55, 89, 90, 94, 96, 100, 104, 108, 265, 296], "addit": [10, 26, 46, 55, 59, 94, 96, 108, 271], "keyword": [10, 26, 46, 55, 89, 94, 96, 108, 265, 277, 278, 289, 295], "argument": [10, 22, 26, 28, 29, 46, 55, 89, 94, 96, 108, 277, 278, 289, 295], "custom": [11, 295], "packag": [11, 13, 43, 44, 48, 275, 293, 294, 296], "rais": [12, 15, 40, 41, 43, 44, 49, 50, 56, 65, 68, 69, 266, 269, 289, 290, 294, 295], "when": [12, 55, 94, 96, 265, 271, 274, 289, 291, 293, 295], "exhaust": 12, "multi_object": 14, "version": [14, 46, 66, 93, 106, 166, 177, 179, 266, 267, 268, 269, 270, 271, 275, 286, 290, 291, 301, 302], "mean": [14, 70, 138, 168, 279, 286, 294, 298], "simpli": [14, 266, 267, 274, 275, 276, 279, 282, 290, 291, 293], "concaten": [14, 15, 174, 178], "result": [14, 15, 66, 174, 178, 270, 291, 294], "individu": [14, 15, 67, 191, 270, 289, 291, 294], "objective_funct": [15, 302], "list": [15, 17, 20, 25, 26, 28, 40, 41, 42, 43, 44, 59, 60, 66, 67, 68, 69, 70, 72, 73, 119, 124, 128, 134, 148, 155, 178, 189, 191, 194, 265, 268, 270, 271, 274, 277, 278, 289, 291, 293, 296], "multi": [15, 264, 302], "requir": [15, 20, 48, 49, 106, 173, 177, 265, 266, 268, 270, 271, 274, 289, 290, 291, 293, 294, 295], "valueerror": [15, 50, 69, 289, 294], "e": [16, 49, 64, 70, 96, 100, 106, 134, 135, 139, 171, 174, 178, 179, 216, 224, 264, 266, 267, 268, 270, 271, 272, 274, 276, 277, 278, 279, 287, 289, 290, 291, 294, 295, 296], "g": [16, 64, 70, 134, 135, 179, 266, 267, 268, 270, 272, 277, 278, 287, 290, 291, 295, 296], "alphabet": [16, 17, 20, 100, 104, 119, 124, 128, 178, 218, 265, 266, 276, 277, 278, 281, 289, 290, 291, 293, 296, 302, 303, 304], "sequenc": [16, 17, 65, 99, 100, 101, 110, 134, 135, 136, 137, 141, 142, 143, 166, 167, 264, 266, 268, 270, 273, 287, 289, 290, 293, 296], "length": [16, 17, 37, 68, 69, 145, 270, 296], "max_sequence_length": [17, 265, 289, 291, 296], "align": [17, 265, 291, 296], "log_transform_recommend": [17, 291], "s": [17, 20, 43, 44, 64, 65, 96, 106, 119, 124, 128, 131, 171, 173, 174, 177, 178, 179, 200, 214, 229, 264, 265, 267, 268, 272, 275, 276, 277, 278, 279, 282, 286, 289, 290, 291, 293, 294, 295, 297, 301, 302], "longest": 17, "have": [17, 27, 37, 106, 119, 124, 128, 200, 248, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 290, 293, 295, 296], "been": [17, 200, 269], "charact": 17, "mai": [17, 27, 171, 264], "appear": [17, 265, 267, 270], "recommend": [17, 106, 267, 268, 271, 274, 275, 276, 298], "algorithm": [17, 32, 217, 252, 264, 266, 270, 286, 290, 291, 293, 295, 296, 297, 302], "log": [17, 46, 158, 166, 172, 173, 174, 268, 272, 296], "transform": [17, 39, 187, 192, 193], "target": [17, 100, 104, 294], "foldx": [19, 20, 67, 70, 118, 119, 120, 121, 123, 124, 126, 127, 128, 129, 171, 180, 181, 267, 268, 270, 272, 289, 294, 296], "simul": [19, 20, 65, 66, 118, 119, 123, 124, 127, 128, 181, 194, 200, 265, 267], "free": [19, 118, 123, 127, 181, 265, 266, 269, 270, 293], "energi": [19, 66, 118, 123, 127, 181, 269, 278], "between": [19, 68, 70, 100, 118, 123, 127, 177, 181, 280], "wildtyp": [19, 20, 69, 70, 118, 119, 123, 124, 127, 128, 171, 181, 268, 271, 272, 277, 278], "mutat": [19, 20, 66, 118, 123, 127, 136, 181, 264, 266, 268, 271, 272, 277, 290, 293, 295, 302], "web": [19, 65, 118, 123, 127, 181], "server": [19, 55, 56, 65, 118, 123, 127, 181], "onlin": [19, 65, 118, 123, 127, 181], "forc": [19, 26, 65, 118, 123, 127, 181, 249], "field": [19, 65, 118, 123, 127, 181], "nucleic": [19, 65, 118, 123, 127, 181], "acid": [19, 20, 64, 65, 118, 119, 123, 124, 127, 128, 134, 135, 137, 142, 143, 181], "research": [19, 65, 118, 123, 127, 181, 264], "schymkowitz": [19, 65, 118, 123, 127, 181, 268, 270, 289], "j": [19, 65, 103, 104, 105, 118, 123, 127, 181, 264, 291], "borg": [19, 65, 118, 123, 127, 181, 270, 289], "stricher": [19, 65, 118, 123, 127, 181, 270, 289], "ny": [19, 65, 118, 123, 127, 181], "r": [19, 64, 65, 70, 118, 123, 127, 181, 200, 264, 271, 275, 291], "rousseau": [19, 65, 118, 123, 127, 181, 270, 289], "serrano": [19, 65, 118, 123, 127, 181, 270, 289], "l": [19, 64, 65, 96, 99, 100, 101, 118, 123, 127, 144, 149, 150, 151, 171, 181, 264, 265, 266, 267, 273, 285, 287, 290, 291, 293, 294, 296], "2005": [19, 65, 118, 123, 127, 181, 268], "33": [19, 65, 118, 123, 127, 156, 181, 270, 289], "suppl_2": [19, 65, 118, 123, 127, 181], "w382": [19, 65, 118, 123, 127, 181], "w388": [19, 65, 118, 123, 127, 181], "wildtype_pdb_path": [20, 119, 124, 128, 271, 289], "union": [20, 26, 59, 60, 66, 69, 119, 124, 128], "path": [20, 26, 28, 49, 52, 59, 60, 66, 69, 72, 73, 74, 106, 119, 124, 128, 147, 198, 265, 270, 271, 276, 277, 278, 279, 282, 289, 291, 294], "experiment_id": [20, 119, 124, 128, 291], "tmp_folder": [20, 119, 124, 128], "eager_repair": [20, 119, 124, 128, 277, 278], "verbos": [20, 49, 66, 72, 73, 74, 119, 124, 128, 266, 295], "pdb": [20, 66, 69, 70, 71, 72, 73, 74, 119, 123, 124, 128, 171, 267, 271, 275, 277, 278, 289, 294], "file": [20, 27, 65, 66, 67, 69, 70, 71, 72, 73, 74, 95, 99, 106, 119, 123, 124, 128, 171, 173, 177, 217, 223, 264, 265, 267, 269, 271, 274, 276, 279, 282, 289, 291, 294, 296], "amino": [20, 64, 119, 124, 128, 134, 135, 137, 142, 143], "experi": [20, 119, 124, 128, 139, 200, 291], "id": [20, 67, 119, 124, 128, 189, 248, 264, 265, 270, 291, 296], "temporari": [20, 119, 124, 128], "folder": [20, 27, 49, 99, 106, 119, 124, 128, 173, 177, 217, 223, 265, 267, 269, 282, 291, 296], "eagerli": [20, 119, 124, 128], "repair": [20, 65, 66, 119, 124, 128, 289], "print": [20, 37, 49, 66, 72, 73, 74, 96, 119, 124, 128, 265, 266, 267, 270, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 302, 303, 304], "output": [20, 66, 72, 73, 74, 119, 124, 128, 194, 268, 270, 279, 289, 293, 294], "wildtype_residu": [20, 70], "residu": [20, 67, 69, 70, 72, 73, 270, 289], "each": [20, 32, 37, 68, 70, 137, 142, 268, 270, 291, 294, 295, 298], "wildtype_amino_acid": 20, "wildtype_residue_str": [20, 70], "string": [20, 39, 40, 41, 42, 43, 44, 55, 60, 68, 69, 70, 72, 89, 90, 91, 104, 108, 135, 136, 145, 173, 174, 177, 178, 184, 190, 191, 266, 268, 270, 271, 273, 277, 278, 280, 281, 287, 290, 294, 295, 296, 303, 304], "create_working_directori": 20, "work": [20, 37, 59, 60, 66, 96, 106, 209, 213, 256, 257, 266, 267, 269, 270, 272, 274, 275, 280, 281, 282, 289, 290, 291, 293, 295, 297], "directori": [20, 59, 60, 66, 269, 270, 271, 275, 276, 277, 278, 282, 291], "regist": [21, 25, 26, 27, 28, 29, 94, 95, 96, 106, 267, 271, 274, 277, 278, 280, 281, 293, 294], "observer_nam": [22, 28, 29, 46, 62, 288], "delet": [22, 23, 291], "run": [22, 26, 27, 28, 29, 45, 55, 57, 58, 59, 60, 66, 94, 96, 106, 124, 173, 177, 229, 265, 266, 267, 268, 269, 270, 289, 290, 291, 293, 295, 296], "script": [22, 26, 28, 29, 55, 57, 58, 59, 60, 61, 65, 88, 99, 106, 123, 173, 177, 200, 217, 223, 265, 271, 275, 291, 295, 296], "take": [22, 23, 26, 27, 28, 29, 55, 191, 194, 264, 265, 266, 273, 286, 287, 289, 290, 293, 296, 297], "pass": [22, 26, 28, 29, 46, 55, 70, 74, 89, 90, 94, 265, 270, 276, 277, 278, 289, 296], "locat": [22, 28, 29, 65, 214, 221, 270, 303, 304], "note": [22, 25, 28, 29, 49, 55, 56, 62, 66, 119, 124, 128], "must": [22, 28, 29, 267, 273, 285, 286, 287], "accept": [22, 28, 29, 55], "port": [22, 28, 29, 55, 56, 62, 91, 289, 294], "password": [22, 28, 29, 55, 56, 62, 91, 289, 294], "problem_nam": [23, 265, 285, 289], "configur": [23, 26, 29, 95], "dictionari": [24, 55, 90, 289], "problem_factori": [24, 26, 60, 274, 298, 302, 303, 304], "only_avail": [25, 289, 293], "includ": [25, 106, 265, 267, 268, 271, 274, 275, 286, 289, 291, 294, 295, 296, 297], "can": [25, 26, 27, 28, 37, 45, 55, 62, 74, 106, 155, 171, 174, 178, 196, 265, 266, 267, 269, 270, 271, 274, 275, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 294, 295, 296, 301], "import": [25, 27, 50, 65, 96, 167, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "directli": [25, 173, 206, 270, 271, 274, 294], "problem_list": 25, "repositori": [25, 27, 47, 48, 49, 50, 92, 103, 131, 200, 206, 229, 264, 266, 267, 268, 271, 274, 276, 279, 289, 291, 293, 294], "otherwis": [25, 42, 69, 270, 277, 278], "user": [25, 28, 49, 55, 119, 124, 128, 154, 252, 266, 270, 289, 290, 291, 293, 294, 296], "readili": 25, "conda_environment_nam": [26, 60, 265, 296], "python_path": [26, 28, 59, 60, 296], "conda": [26, 28, 59, 60, 99, 106, 173, 177, 217, 223, 266, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 290, 294], "environ": [26, 27, 28, 49, 59, 60, 99, 173, 177, 217, 223, 264, 266, 267, 268, 270, 271, 274, 277, 278, 280, 281, 282, 285, 290, 294, 295], "python": [26, 28, 37, 59, 60, 64, 87, 96, 106, 118, 123, 127, 181, 264, 265, 267, 268, 275, 277, 278, 294], "With": [26, 28, 295, 296], "instanti": [26, 28, 29, 46, 62, 89, 91, 93, 94, 96, 266, 289, 290, 291, 294, 295, 296], "separ": [26, 28], "also": [26, 89, 106, 123, 265, 267, 268, 271, 276, 277, 278, 279, 286, 289, 291, 293, 295, 296, 301], "later": 26, "append": [26, 28, 60, 290, 291], "overwrit": [26, 49, 66, 94, 96, 291, 296], "exist": [26, 49, 50, 265, 270, 289], "quiet": [27, 94, 270, 289, 294], "correspond": [27, 100, 104, 135, 224, 270], "objective_repositori": [27, 265, 271, 274, 275, 276, 279, 294, 296, 298, 302, 303, 304], "yaml": 27, "said": [27, 265, 266, 276, 290, 296], "enviro": [27, 265, 266, 290, 296], "sinc": [27, 70, 106, 252, 265, 266, 269, 270, 274, 275, 276, 279, 286, 289, 290, 293, 295, 296, 297], "t": [27, 64, 107, 118, 123, 127, 181, 183, 264, 265, 268, 269, 270, 274, 275, 276, 279, 291, 294, 295, 296], "depend": [27, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293], "instal": [27, 48, 119, 124, 128, 173, 177, 268, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294, 295, 296], "squelch": [27, 94], "feedback": [27, 94, 270], "creation": [27, 32, 94, 265, 286, 302], "registr": [27, 94, 96, 99, 173, 177, 217, 223, 265, 295, 296], "conda_environment_loc": 28, "extern": [28, 45, 46, 61, 89, 93, 293], "externalobserv": [28, 288], "relev": [28, 270, 271, 274, 275, 276, 277, 278, 280, 281, 282, 286, 296], "script_file_nam": 29, "run_script": [29, 55, 59, 60], "call": [29, 32, 49, 55, 61, 62, 94, 99, 119, 124, 128, 173, 177, 217, 223, 265, 266, 267, 268, 269, 270, 271, 274, 276, 277, 278, 280, 281, 289, 291, 293, 294], "monitor": 32, "progress": [32, 49, 74, 290], "valu": [32, 64, 86, 87, 94, 96, 139, 140, 146, 216, 270, 276, 279, 286, 289], "decis": 32, "variabl": [32, 49, 174, 178, 270, 276, 286], "iter": [32, 37, 266, 290, 293, 295, 298], "np": [32, 94, 96, 200, 218, 265, 266, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 296, 297, 298, 301, 302, 303, 304], "ndarrai": [32, 94, 144, 188, 189, 190, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 265, 266, 289, 290, 291, 296], "y": [32, 46, 64, 94, 96, 140, 146, 266, 271, 274, 281, 289, 290, 291], "everi": [32, 291], "time": [32, 56, 265, 270, 271, 289, 291, 302], "initialize_observ": [32, 46, 291], "problem_setup_info": [32, 291], "caller_info": [32, 46, 96, 289, 291, 295, 296], "x0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "y0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "seed": [32, 46, 94, 96, 160, 164, 193, 257, 265, 289, 291, 294, 296], "necessari": [32, 66, 265, 276, 277, 278, 296], "finish": [32, 46, 270, 289, 291], "perform": [32, 86, 87, 100, 119, 128, 174, 178, 266, 268, 270, 289, 290, 295, 297, 298], "ani": [32, 55, 94, 96, 150, 151, 197, 265, 270, 287, 289, 291, 293, 295, 296], "cleanup": 32, "final": [32, 291], "step": [32, 266, 276, 289, 295, 296], "complet": [32, 270, 296], "model": [34, 65, 103, 104, 105, 139, 140, 152, 154, 156, 264, 265, 270, 271, 289, 297], "check": [34, 51, 65, 68, 221, 265, 266, 270, 271, 277, 278, 279, 286, 290, 291, 293, 294, 295, 296], "inde": [34, 249, 270, 277, 278, 295, 296], "gener": [36, 37, 55, 59, 60, 84, 85, 86, 87, 94, 96, 224, 270, 289, 297], "chunk_siz": 37, "element": [37, 289], "3": [37, 134, 135, 265, 267, 268, 270, 273, 285, 287, 289, 291, 293, 294, 296, 297, 298], "12": [37, 65, 110, 166, 167, 171, 264], "replac": [37, 68, 70, 171, 189, 271, 289, 303, 304], "built": [37, 90, 91, 138, 267], "itertool": 37, "doc": [37, 49, 270, 294], "html": [37, 200, 264, 293], "yield": [37, 103, 104, 105, 264], "tupl": [37, 68, 69, 94, 218, 265, 296], "equal": [37, 68, 295], "exampl": [37, 50, 52, 68, 70, 96, 99, 220, 256, 257, 265, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 293, 294, 295, 302], "4": [37, 145, 156, 264, 269, 275, 289, 293, 294], "5": [37, 66, 99, 100, 101, 177, 179, 212, 267, 268, 270, 272, 273, 289, 291, 293, 294, 295, 296, 302], "6": [37, 264, 270, 289, 293, 294], "7": [37, 66, 270, 277, 278, 289, 293], "8": [37, 103, 104, 105, 264, 270, 289, 293], "9": [37, 264, 265, 267, 268, 270, 274, 289, 293, 294, 296], "rdkit": [39, 40, 41, 42, 50, 172, 173, 174, 176, 177, 178, 268, 272, 274, 280, 281, 282, 296], "selfies_str": [40, 43], "chem": [40, 41, 42, 107, 174, 177, 178, 183], "mol": [40, 41, 42], "convert": [40, 41, 42, 55, 134, 135, 140, 145], "selfi": [40, 42, 43, 44, 104, 173, 174, 177, 178, 268, 274, 279, 280, 281], "strict": [40, 41, 43, 44, 49, 68], "error": [40, 41, 43, 44, 49, 65, 265, 289, 294], "fail": [40, 174, 178, 295], "decod": [40, 150, 154, 155, 194, 197], "smiles_str": [41, 43, 44], "cannot": [41, 43, 44, 174, 178], "pars": [41, 43, 44, 71, 72, 73, 74, 90, 174, 178, 190], "molecule_str": 42, "from_selfi": [42, 174, 178], "assum": [42, 70, 174, 178, 252, 265, 266, 270, 271, 274, 277, 278, 279, 280, 281, 285, 289, 290, 293], "translat": [43, 44], "els": [43, 44, 265, 289, 294, 296], "those": [43, 44], "aspuru": [43, 44, 264], "guzik": [43, 44, 264], "lab": [43, 44], "group": [43, 44], "isol": [45, 46, 88, 89, 93, 94, 96, 173, 249, 265, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 296], "kwargs_for_observ": 46, "send": [46, 62], "verifi": [46, 51, 291, 294], "wa": [46, 48, 70, 167, 266, 270, 275, 279, 289, 290], "correctli": [46, 269], "setup_info": 46, "start": [46, 55, 61, 62, 91, 171, 270, 271, 289, 291, 293, 294, 295, 296], "close": [46, 96, 280, 281], "__getattr__": 46, "__name": 46, "retriev": [46, 62, 109], "attribut": [46, 62, 150, 151, 197, 270, 289], "underli": 46, "download": [47, 48, 49, 51, 106, 265, 269, 271, 276, 282, 289], "github": [47, 48, 49, 50, 106, 265, 267, 268, 270, 271, 276, 279, 296], "pygithub": [48, 50, 276], "pip": [48, 106, 173, 177, 265, 267, 268, 270, 276, 277, 278, 279, 280, 281, 294, 296], "most": [48, 137, 272, 289, 294], "code": [48, 51, 152, 171, 265, 270, 275, 276, 279, 282, 289, 293, 296], "taken": [48, 206, 271, 294], "adapt": [48, 264, 270, 298], "gist": 48, "com": [48, 49, 106, 265, 267, 268, 269, 270, 276, 279, 294, 296], "pdashford": 48, "2e4bcd4fc2343e2fd03efe4da17f577d": 48, "permalink_comment_id": 48, "4274705": 48, "gistcom": 48, "repository_nam": 49, "file_path_in_repositori": 49, "download_path_for_fil": 49, "tag": [49, 50], "master": [49, 267, 296], "commit_sha": [49, 50], "exist_ok": [49, 270, 291], "parent_folders_exist_ok": 49, "i": [49, 64, 100, 118, 123, 127, 139, 174, 178, 181, 216, 224, 264, 266, 268, 270, 271, 274, 278, 290, 291, 296], "repo": [49, 106, 267, 275], "download_path": 49, "branch": [49, 50, 267], "sha": [49, 50], "commit": [49, 50, 271], "exists_ok": 49, "parent": [49, 265, 270, 271, 291, 302], "thei": [49, 65, 167, 168, 270, 279, 289, 291], "do": [49, 106, 167, 266, 270, 276, 279, 290, 294, 296], "except": [49, 56, 62, 265, 289, 294], "github_token_for_poli": [49, 276], "doe": [49, 167], "try": [49, 265, 277, 278], "without": [49, 94, 96, 173, 177, 248, 265, 266, 290, 293, 295, 296], "rate": 49, "limit": [49, 221, 271, 276], "60": 49, "request": [49, 91, 270], "per": 49, "hour": 49, "anonym": [49, 276], "To": [49, 267, 268, 269, 270, 271, 274, 279, 296], "token": [49, 145, 174, 178, 189, 191, 276, 293, 296, 303, 304], "like": [49, 96, 106, 209, 265, 266, 269, 275, 286, 289, 290, 291, 293, 294, 295, 296, 297], "follow": [49, 64, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 290, 293, 295, 296, 301], "instruct": [49, 229, 265, 266, 293], "here": [49, 265, 268, 270, 276, 289, 296, 302], "en": [49, 220, 293], "authent": [49, 55, 56], "keep": [49, 70, 265, 277, 278], "your": [49, 106, 266, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 294], "account": 49, "secur": [49, 294], "person": [49, 276], "fine": [49, 267], "grain": 49, "get_repo": 50, "release_2023_09": 50, "068441957858f786c227825d90eb2c43f4f2b000": 50, "internet": 51, "reproduc": 51, "purpos": 51, "make": [51, 267, 269, 270, 271, 274, 276, 289, 295, 296, 302], "sure": [51, 267, 269, 270, 271, 274, 276, 291, 295, 296], "malici": 51, "being": [51, 269, 271, 276], "filepath": 52, "read_mod": 52, "rb": 52, "md5": [52, 271], "hex": 52, "digest": 52, "open": [52, 171, 270, 291], "binari": [52, 66, 106, 119, 124, 128, 270, 276, 277, 278], "form": [52, 270], "mode": [52, 67], "read": [52, 66, 147, 270, 289, 291, 295], "hex_digest": 52, "txt": [52, 66, 70, 269, 270, 276, 277, 278, 291], "d41d8cd98f00b204e9800998ecf8427": 52, "wrap": [53, 54, 296], "interprocess": [53, 54], "commun": [53, 54, 55, 93], "kwargs_for_factori": [55, 94, 96, 289, 294], "connect": [55, 56, 62, 91, 154], "inter": 55, "These": [55, 268, 270, 271, 272, 276, 286, 289, 291, 293], "inner": 55, "up": [55, 56, 266, 274, 275, 289, 290, 291, 296], "listen": [55, 91, 294], "random": [55, 84, 85, 86, 87, 94, 96, 266, 268, 290, 293, 295, 297, 298, 301, 302, 304], "subprocess": [55, 270], "expect": [55, 65, 66, 67, 70, 106, 119, 124, 128, 174, 270, 276, 277, 278, 279, 289, 291, 294, 296], "well": [55, 267, 270, 274, 294, 295, 297], "other": [55, 174, 178, 265, 269, 289, 291, 294, 295, 296], "objective_factori": [55, 248, 265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "determin": 55, "client": 56, "get": [56, 61, 74, 265, 266, 270, 271, 272, 290, 291, 293, 295, 296], "eoferror": 56, "host": 56, "readi": [56, 140], "yet": [56, 265, 290], "connectionrefusederror": 56, "refus": 56, "attempt": 56, "establish": [56, 62], "retri": 56, "befor": [56, 59, 289, 295, 296], "conda_environ": 59, "cwd": [59, 60, 270], "activ": [59, 265, 267, 268, 271, 274, 276, 279, 291], "ad": [59, 106, 248, 275, 291, 296], "current": [59, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294], "either": [60, 104, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 301], "mother": [61, 62, 91], "receiv": [62, 289, 294], "wait": [62, 91, 296], "occur": 62, "sent": [62, 194], "back": [62, 187], "quit": [62, 265, 271, 293], "messag": [62, 94, 289], "encod": [64, 143, 144, 154, 155, 178, 276, 277, 278], "For": [64, 70, 106, 139, 166, 171, 221, 252, 265, 268, 270, 275, 276, 279, 286, 289, 291, 293, 294, 296, 298], "amino_acid": 64, "n": [64, 103, 104, 105, 221, 264, 267, 268, 270, 271, 282, 286, 287, 291], "d": [64, 171, 200, 216, 264, 269, 286, 291], "c": [64, 103, 104, 105, 264, 265, 267, 270, 274, 275, 280, 281, 282, 289, 291, 296], "q": [64, 264, 291], "h": [64, 99, 100, 101, 192, 197, 264, 291, 296], "k": [64, 107, 173, 183, 212, 264, 291], "m": [64, 145, 171, 264, 270, 291], "p": [64, 264, 291], "v": [64, 66, 291], "measur": [65, 139, 270, 280, 281], "stabil": [65, 66, 121, 123, 124, 126, 127, 171, 180, 181, 264, 267, 268, 270, 272, 277, 294], "sasa": [65, 66, 116, 118, 119, 120, 126, 127, 128, 129, 180, 181, 268, 272, 277, 278], "foldxinterfac": 65, "queri": [65, 265, 266, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 290, 296], "heavili": [65, 270], "inspir": [65, 270], "wai": [65, 266, 267, 270, 271, 274, 277, 278, 280, 281, 290, 291, 294], "lambo": [65, 106, 110, 113, 115, 166, 167, 168, 268, 270, 272, 275, 289], "automat": [65, 96, 264, 265, 269, 279], "acceler": [65, 110, 166, 167, 264], "bayesian": [65, 110, 166, 167, 252, 264, 266, 268, 290], "biolog": [65, 110, 166, 167, 264], "design": [65, 103, 104, 105, 110, 154, 166, 167, 264, 266, 269, 272, 274, 289, 290, 293, 296], "withdenois": 65, "autoencod": [65, 110, 154, 166, 167, 264, 297], "stanton": [65, 110, 166, 167, 264, 268, 269, 270, 279, 289], "samuel": [65, 110, 166, 167, 264], "weslei": [65, 110, 166, 167, 264], "maddox": [65, 110, 166, 167, 264], "nate": [65, 110, 166, 167, 264], "gruver": [65, 110, 166, 167, 264], "phillip": [65, 110, 166, 167, 264], "maffetton": [65, 110, 166, 167, 264], "emili": [65, 110, 166, 167, 264], "delanei": [65, 110, 166, 167, 264], "peyton": [65, 110, 166, 167, 264], "greensid": [65, 110, 166, 167, 264], "andrew": [65, 110, 166, 167, 264], "gordon": [65, 110, 166, 167, 264], "wilson": [65, 110, 166, 167, 264], "arxiv": [65, 110, 166, 167, 264], "juli": [65, 110, 166, 167], "ab": [65, 110, 166, 167, 264], "2203": [65, 110, 166, 167, 264], "12742": [65, 110, 166, 167, 264], "samuelstanton": [65, 106, 276, 279], "working_dir": [66, 270], "interact": [66, 270, 289], "engin": [66, 200, 297], "softwar": [66, 268, 269], "where": [66, 99, 100, 101, 155, 265, 266, 268, 270, 275, 282, 290, 294], "store": [66, 271, 289], "pdb_file": 66, "remove_and_renam": 66, "ph": [66, 270, 277, 278], "remove_heteroatom": 66, "_repair_if_necessary_and_provide_path": 66, "_simulate_mut": 66, "_read_energi": 66, "_compute_sasa": 66, "solvent": [66, 116, 119, 120, 126, 128, 129, 180, 264, 268, 270, 272], "surfac": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "area": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "compute_st": 66, "structur": [66, 72, 73, 74, 106, 124, 270, 275, 291], "compute_sasa": 66, "compute_stability_and_sasa": 66, "singl": [66, 70, 171, 200, 264, 268, 271, 272, 280, 281, 289, 291, 297, 301], "copy_foldx_fil": 66, "copi": [66, 266, 270, 290, 302], "write_mutations_to_fil": 66, "wildtype_resiud": 66, "output_dir": 66, "write": [66, 106, 265, 267, 270, 275, 283, 284, 288, 291, 292, 296, 299, 300], "stdout": 66, "previou": [66, 94, 96, 270, 291, 295], "reli": [66, 248, 286], "rotabas": [66, 269, 270, 276, 277, 278], "longer": 66, "manipul": [67, 265, 267, 268], "accord": [67, 138, 270, 293, 296], "certain": [67, 265, 268, 270, 274, 295], "first": [67, 68, 70, 265, 270, 271, 273, 289, 290, 295, 296], "letter": [67, 70, 99, 100, 101, 268, 270, 272, 273, 296], "second": [67, 68, 70, 148, 270, 289, 295, 296], "posit": [67, 68, 70, 137, 142, 266, 270, 271, 289, 290, 293], "third": [67, 70], "chain": [67, 70, 270], "fourth": [67, 70], "mutant": [67, 69, 70, 171, 266, 270, 290], "foldxsuit": [67, 269, 270], "crg": [67, 269, 270], "eu": [67, 269, 270], "string_1": 68, "string_2": 68, "edit": [68, 171, 271], "oper": [68, 269, 295], "assertionerror": [68, 295], "abc": 68, "abd": 68, "def": [68, 265, 266, 290, 291, 296], "wildtype_pdb_fil": [69, 277, 278], "mutated_residue_str": [69, 70], "return_hamming_dist": 69, "find": [69, 99, 100, 101, 106, 265, 271, 274, 275, 291, 293, 295], "closest": 69, "ham": 69, "distanc": [69, 70, 100, 271, 273], "along": 69, "best": [69, 266, 289, 290, 298, 302], "candid": [69, 266], "found": [69, 267, 270, 293, 296], "bio": [70, 73, 74, 270], "individual_list": [70, 270], "levenshtein": [70, 277, 278], "track": [70, 264, 265], "written": 70, "line": [70, 268, 270, 289, 294], "ea1r": 70, "still": [70, 294], "need": [70, 106, 265, 269, 270, 275, 276, 277, 278, 279, 289, 291, 295], "dummi": 70, "itself": [70, 265, 267], "ecd": 70, "acd": 70, "would": [70, 270, 271, 274, 291, 296], "ea1a": 70, "load": [71, 95, 131, 139, 148, 198, 270, 289, 291], "them": [71, 106, 252, 265, 266, 267, 270, 271, 272, 275, 290, 293], "path_to_pdb": [72, 73, 74], "structure_nam": [72, 73, 74], "done": [74, 106, 270, 275, 276, 279, 289, 293], "quietli": 74, "some": [74, 152, 168, 252, 267, 268, 270, 276, 279, 286, 291, 293, 296], "get_structur": [74, 270], "pdbparser": [74, 270], "numpi": [86, 190, 265, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 291, 296, 297, 301, 302, 303, 304], "obj": 89, "dynam": 89, "intern": [89, 264, 265, 282, 285, 289, 293, 294], "constructor": 89, "factory_kwarg": [90, 91, 289, 294], "processwrapp": [90, 91, 93], "how": [90, 91, 106, 229, 265, 266, 267, 268, 270, 272, 289, 290, 291, 293, 295, 296], "objective_nam": [91, 289, 294], "loop": [91, 248, 264, 297], "process_wrapp": 93, "observer_init_info": [94, 289, 294], "force_regist": [94, 96, 275, 277, 278, 280, 281, 282, 289, 294], "force_isol": [94, 96, 289, 294], "instantiant": 94, "associ": [94, 264, 289, 294], "caller": [94, 96, 291], "forward": [94, 96, 291], "logger": [94, 96], "ask": [94, 96, 279], "confirm": [94, 96], "By": [94, 124, 174, 178, 218, 266, 277, 278, 295, 297, 301], "onc": [94, 265, 274, 293, 295, 296], "round": [94, 224, 264], "down": 94, "give": [94, 188, 252, 274, 296], "config": [95, 115, 289], "configpars": 95, "just": [96, 276, 277, 278, 279, 289, 291, 295, 296], "One": [96, 269], "aloha": [96, 267, 268, 272, 289, 290, 293, 296, 302], "arrai": [96, 134, 135, 144, 145, 187, 190, 192, 265, 267, 268, 271, 273, 274, 277, 278, 280, 281, 285, 286, 287, 289, 291, 293, 294, 296], "reshap": [96, 266, 280, 281, 296, 297, 301], "simpl": [99, 100, 101, 103, 104, 105, 138, 173, 174, 177, 178, 265, 266, 289, 290, 293, 295, 296], "goal": [99, 100, 101], "o": [99, 100, 101, 273, 274, 291, 296], "among": [99, 100, 101, 269, 270, 295], "poli__bas": [99, 217, 223], "yml": [99, 106, 173, 177, 217, 223, 271, 274, 276, 279, 296], "simultan": [100, 104, 108, 174, 178, 184, 271], "map": [100, 104], "symbol": [100, 104], "main": [100, 174, 178, 266, 267, 268, 269, 270, 290, 291, 296], "api": [103, 104, 105, 267, 276], "assess": [103, 104, 105, 171, 272], "small": [103, 104, 105, 174, 265, 267, 274, 275, 282, 291, 293, 295], "protein": [103, 104, 105, 118, 123, 124, 127, 171, 181, 264, 267, 269, 271, 274, 275, 293, 294], "easi": [103, 104, 105, 264, 265, 270, 293, 295], "molecular": [103, 104, 105, 118, 123, 127, 181, 264], "better": [103, 104, 105, 264, 265, 270], "benchmark": [103, 104, 105, 200, 217, 221, 264, 268, 272], "ligand": [103, 104, 105, 264, 268, 272, 274], "garc\u00eda": [103, 104, 105, 264, 268, 274], "orteg\u00f3n": [103, 104, 105, 264, 268, 274], "miguel": [103, 104, 105, 264, 268], "gregor": [103, 104, 105, 264], "simm": [103, 104, 105, 264], "austin": [103, 104, 105, 264], "tripp": [103, 104, 105, 264], "jos\u00e9": [103, 104, 105, 171, 264], "hern\u00e1ndez": [103, 104, 105, 264], "lobato": [103, 104, 105, 264], "andrea": [103, 104, 105, 264], "bender": [103, 104, 105, 264], "sergio": [103, 104, 105, 264], "bacallado": [103, 104, 105, 264], "journal": [103, 104, 105, 264], "62": [103, 104, 105, 264], "15": [103, 104, 105, 264, 302], "august": [103, 104, 105, 264], "3486": [103, 104, 105, 264], "3502": [103, 104, 105, 264], "1021": [103, 104, 105, 264], "ac": [103, 104, 105, 264], "jcim": [103, 104, 105, 264], "1c01334": [103, 104, 105, 264], "target_nam": [104, 274, 294], "string_represent": [104, 274, 279, 280, 281], "liter": [104, 221, 265], "There": [106, 289, 291, 294], "sever": [106, 200, 209, 217, 270, 271, 295, 296], "prepare_receptor": 106, "rest": [106, 265, 291, 293], "descript": [106, 265, 271, 274, 289, 291, 296], "show": [106, 267, 270, 289, 296], "center": [106, 275], "websit": [106, 275], "scripp": 106, "edu": 106, "uncompress": [106, 275], "add": [106, 139, 188, 265, 276, 277, 278, 279, 290], "export": [106, 275], "autodock_vina": [106, 275], "bin": [106, 275, 294], "bashrc": [106, 275], "zshrc": [106, 275], "bash": 106, "In": [106, 166, 168, 264, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 298, 302], "ccsb": 106, "sh": [106, 275, 296], "thu": [106, 275], "might": [106, 200, 265, 267, 270, 275, 276, 277, 278, 279, 286, 289, 291, 296], "chang": [106, 118, 123, 127, 131, 148, 181, 267, 269, 270, 275, 277, 278, 286], "its": [106, 266, 270, 271, 274, 275, 277, 289, 290, 294, 295, 296], "permiss": [106, 275], "chmod": [106, 275], "abl": [106, 265, 267, 269, 270, 275, 291, 294, 296], "pyscreen": [106, 268, 275], "howev": [106, 271, 275, 294, 296], "sometim": [106, 275], "problemat": [106, 275], "ha": [106, 209, 265, 266, 270, 275, 289, 290, 294, 296, 298], "symlink": [106, 275], "ln": [106, 275], "sf": [106, 275], "easili": [106, 270, 275, 289, 295], "env": [106, 265, 267, 271, 274, 275, 276, 279, 293, 294, 296], "src": [106, 265, 271, 274, 275, 276, 279, 289, 294], "ddr3_dock": 106, "task": [106, 107, 110, 113, 115, 148, 264, 270, 276, 279, 297], "git": [106, 265, 267, 268, 276, 279, 296], "clone": [106, 267, 271, 276, 279, 285], "431b052": [106, 276, 279], "cd": [106, 267, 276, 279], "particular": [106, 168, 180, 275, 276, 286, 291, 294, 295, 296], "proxy_rfp": [106, 113, 276], "proxyrfptask": [106, 113, 276], "rfp": [106, 110, 111, 115, 180, 268, 272], "asset": [106, 276], "fpbase": [106, 276], "And": [106, 289, 296], "now": [106, 265, 267, 270, 293, 294, 296], "py": [106, 221, 266, 267, 270, 289, 290, 291, 293, 294, 295, 296], "query_exampl": 106, "ddr3": 107, "et": [107, 183, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 289, 297, 301, 302], "al": [107, 183, 200, 221, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 286, 289, 297, 301, 302], "nat": [107, 183], "biol": [107, 183], "1036": [107, 183], "self": [108, 265, 266, 271, 290, 291, 296], "tdcblackbox": 108, "denois": [110, 166, 167, 264], "alia": 112, "base_candid": 113, "specifc": 115, "predict": [116, 138, 139, 157, 171, 264, 268, 270, 272, 297], "pair": [118, 127, 181], "biopython": [118, 123, 127, 181, 270, 277, 278, 294], "cock": [118, 123, 127, 181], "pa": [118, 123, 127, 181], "antao": [118, 123, 127, 181], "jt": [118, 123, 127, 181], "chapman": [118, 123, 127, 181], "ba": [118, 123, 127, 181], "cox": [118, 123, 127, 181], "cj": [118, 123, 127, 181], "dalk": [118, 123, 127, 181], "friedberg": [118, 123, 127, 181], "hamelryck": [118, 123, 127, 181], "kauff": [118, 123, 127, 181], "wilczynski": [118, 123, 127, 181], "b": [118, 123, 127, 181, 192, 265, 267, 273, 285, 286, 287, 291, 293, 296], "de": [118, 123, 127, 181, 264], "hoon": [118, 123, 127, 181], "mjl": [118, 123, 127, 181], "2009": [118, 123, 127, 181, 268], "freeli": [118, 123, 127, 181], "tool": [118, 123, 127, 181, 265, 277, 278, 294, 296], "bioinformat": [118, 123, 127, 181], "25": [118, 123, 127, 181, 289], "1422": [118, 123, 127, 181], "1423": [118, 123, 127, 181], "usual": [119, 124, 215, 217, 265, 266, 268, 272, 286, 291, 295, 296, 297], "eager": [119, 128], "v5": [119, 124, 128], "compil": [119, 124, 128, 156, 271, 289], "specif": [119, 124, 128, 286, 293], "foldxblackbox": [119, 124, 128], "pre": [123, 266, 267, 271, 274, 277, 278], "20": [124, 264], "shown": 124, "core": [124, 265, 266, 288, 289, 290, 295, 296, 302], "through": [124, 266, 267, 290, 293], "total": [124, 138, 270, 289], "cba": [131, 148, 150], "vae": [131, 148, 150, 151, 155, 156, 194, 196, 197, 297], "sb": [131, 148], "bo": 131, "minor": [131, 148], "modif": [131, 148], "conduct": [131, 148], "rm": [131, 148], "creator": [131, 148], "last": [131, 148, 270, 289, 294], "x_aa": [134, 135, 144], "aa_idx": 134, "arn": [134, 135], "becom": [134, 135, 270], "row": [134, 135, 270], "base_seq": 136, "wild": [136, 141, 270], "mtuation": 136, "xt_p": [137, 142], "categor": [137, 142, 158, 196, 197], "probabl": [137, 142], "distribut": [137, 142, 158, 197, 264, 298], "pred": 138, "xt": 138, "predictor": 138, "balaji": 138, "lakshminarayanan": 138, "paper": [138, 150, 264, 294], "scalabl": 138, "uncertainti": [138, 297], "estim": [138, 166, 176, 177, 178, 179, 267, 268, 272], "deep": [138, 171, 264, 297], "ensembl": 138, "2017": [138, 264, 271], "varianc": 138, "random_st": [139, 146], "train_siz": [139, 146], "5000": 139, "return_test": [139, 146], "return_al": 139, "gfp": [139, 140, 141, 147], "test": [139, 200, 266, 286, 290], "ground": 139, "truth": 139, "gp": [139, 161], "partit": [139, 146, 280], "below": [139, 271, 274, 277, 278], "20th": 139, "percentil": [139, 146], "nois": [139, 222, 223, 224, 257, 268, 272], "data_df": 140, "panda": [140, 147, 270], "datafram": [140, 147, 270], "functional_onli": [140, 160], "ignore_stop": [140, 160], "return_str": 140, "raw": 140, "sampl": [142, 193, 264, 287, 291, 297, 303, 304], "aa_str": 143, "pad": [143, 145, 188], "hot": [143, 192], "onehot": 144, "alphabet_s": [144, 266, 290], "dna_str": 145, "base_ord": 145, "atcg": 145, "40": 146, "1000": [146, 295], "df_save_fil": 147, "bright": 147, "author": [148, 166, 268], "credit": 148, "herculean": 148, "go": [148, 268, 269, 294, 296], "aa": [149, 150, 151], "mimic": 150, "kera": [150, 154], "latent_dimension": [150, 151], "enc1_unit": [150, 151, 156], "train": [152, 196], "gaussian": [152, 223, 224, 264, 268, 272, 287, 297], "regress": 152, "sarkisyan": 152, "2016": [152, 264, 297], "plu": [152, 302], "constant": [152, 286], "input_shap": [154, 155], "latent_dim": [154, 155, 156], "variat": [154, 297], "via": [154, 264, 291], "latent": [154, 266, 290, 297], "space": [154, 189, 252, 266, 290, 297, 301], "flatten": [155, 266, 289, 290], "basic": [155, 248, 293, 296], "layer": 155, "n_token": 156, "seq_length": 156, "50": [156, 298], "eps_std": 156, "y_true": [157, 158], "y_pred": [157, 158], "likelihood": 158, "uniqu": [160, 291], "problem_typ": 161, "exact": [166, 266, 271, 274, 290, 296], "logp": [166, 167, 168, 172, 173, 174, 268, 272], "jointli": 166, "quantit": [166, 176, 177, 178, 179, 267, 268, 272], "druglik": [166, 176, 177, 178, 179, 267, 268, 272], "qed": [166, 174, 176, 177, 178, 179, 268, 272], "penal": [166, 168, 268, 272], "solubl": [166, 172, 173, 174, 268, 272], "fair": 166, "comparison": [166, 291], "_exactly_": 167, "adjust": 168, "magic": 168, "empir": [168, 279], "standard": [168, 223, 224, 279, 287], "deviat": [168, 279], "dataset": [168, 200, 264, 279], "todo": [168, 270, 283, 284, 288, 292, 299, 300], "rapid": [171, 264, 268, 272], "sourc": [171, 265], "bird": 171, "ey": 171, "view": [171, 270], "collect": [171, 199, 268, 271], "site": [171, 293, 294], "reader": 171, "consid": [171, 271, 286, 296], "drop": [171, 271, 289, 293], "rosetta": [171, 271], "learn": [171, 264, 271], "blaabjerg": [171, 264, 268, 271], "lass": [171, 264], "maher": [171, 264], "kassem": [171, 264], "lydia": [171, 264], "good": [171, 264, 265, 267, 268, 289, 296], "nicola": [171, 264], "jonsson": [171, 264], "matteo": [171, 264], "cagiada": [171, 264], "kristoff": [171, 264], "johansson": [171, 264], "wouter": [171, 264], "boomsma": [171, 264, 271], "ameli": [171, 264], "stein": [171, 264], "kresten": [171, 264], "lindorff": [171, 264], "larsen": [171, 264], "faraldo": 171, "g\u00f3mez": [171, 264, 297], "detlef": 171, "weigel": 171, "nir": 171, "ben": 171, "tal": 171, "julian": 171, "echav": 171, "elif": [171, 264], "2023": [171, 264, 268, 269, 271], "e82593": [171, 264], "7554": [171, 264], "82593": [171, 264], "whose": [173, 177, 223, 276, 297], "quotient": [173, 268, 272], "descriptor": [173, 296], "both": [173, 177, 270, 277, 278, 295, 296], "poli__chem": [173, 177, 280, 281], "want": [173, 177, 265, 266, 270, 271, 274, 277, 278, 280, 281, 293, 295, 296], "local": [173, 177, 209, 266, 267, 285, 291, 294], "environemnt": [173, 177], "extra": [173, 177, 265, 289, 294], "interest": [173, 267, 270, 271, 274, 277, 278, 285, 286, 291, 293], "molfromsmil": [174, 178], "known": [174, 178, 280, 289], "silent": [174, 178], "nan": [174, 178], "someth": [174, 178], "than": [174, 178, 252, 295, 296], "continu": [177, 179, 199, 200, 217, 218, 252, 264, 268, 272, 293], "lipinski": [177, 179], "rule": [177, 179, 265], "strongli": 178, "advic": [178, 265], "heurist": 179, "discard": 179, "too": 179, "heavi": 179, "pareto": 180, "front": 180, "accessibl": 182, "sa": [182, 268, 272], "toi": [186, 199, 200, 217, 218, 221, 222, 224, 252, 273, 291, 295, 302], "avout": 186, "super": [186, 265, 266, 272, 290, 296], "mario": [186, 189, 196, 272, 296], "bro": [186, 272, 296], "level": [186, 187, 188, 189, 190, 191, 192, 193, 270, 272], "n_pad": 188, "left": 188, "room": 188, "agent": 188, "land": 188, "clean": [189, 270, 289], "remov": [189, 269, 277, 278, 296], "11": [189, 192, 197, 267, 274, 294], "empti": 189, "level_txt": [190, 191], "n_sprite": [192, 197], "integ": [192, 193, 266, 286, 287, 290, 293, 296], "levels_onehot": 193, "probit": 193, "tensor_level": 194, "torch": [194, 296], "tensor": 194, "level_s": 194, "14": [194, 197], "could": [194, 265, 266, 270, 271, 276, 277, 278, 289, 290, 293, 296, 301], "mariogan": 194, "jar": [194, 265], "prob_matrix": 195, "item": [195, 262], "sentenc": 197, "shape": [197, 265, 266, 267, 273, 285, 286, 287, 290, 293], "z_dim": 197, "devic": 197, "path_to_state_dict": 198, "vaemario": 198, "pretrain": 198, "landscap": 200, "signatur": 200, "sign": [200, 286], "flip": [200, 286], "becaus": [200, 296], "re": [200, 265, 267, 270, 271, 290, 291, 293, 296], "deal": 200, "ali": [200, 264], "roomi": [200, 221, 264, 268, 286], "2015": [200, 264, 268, 286], "unconstrain": [200, 221, 264], "www": [200, 264], "halifax": 200, "nova": 200, "scotia": 200, "canada": 200, "dalhousi": 200, "univers": 200, "electr": 200, "surjanov": [200, 268], "bingham": [200, 268], "virtual": 200, "sfu": 200, "ca": 200, "ssurjano": 200, "linebo": [206, 286, 301], "kirschnj": 206, "xy": [209, 213, 214], "cross": 209, "trai": 209, "maxima": [209, 213], "quilt": 209, "pattern": 209, "2d": [209, 213, 214, 252], "alpha": [212, 267, 297], "veri": 213, "flat": 213, "pi": 213, "egg": 214, "holder": 214, "especi": [214, 265, 268], "difficult": 214, "know": [214, 270], "optima": [214, 221], "squar": 215, "norm": 215, "shift": 215, "awai": [215, 271], "bit": [215, 270], "normal": [216, 264, 294, 298], "903534": 216, "39": [216, 276], "16599": 216, "divid": 216, "dimens": [217, 218, 221, 252, 264, 286, 297], "focu": [217, 270, 289, 293], "ones": [217, 265], "dimension": [217, 252, 264], "function_nam": [218, 286, 297, 298, 301], "n_dimens": [218, 286, 297, 298, 301], "embed_in": [218, 221, 286], "randomli": [218, 266, 286, 289, 290, 293, 302, 303, 304], "embed": [218, 252, 286], "emb": [218, 252, 286], "toycontinuousproblem": 218, "bound": 218, "lower": [218, 252], "upper": 218, "seri": 220, "testb": 220, "wikipedia": 220, "wiki": 220, "test_functions_for_optim": 220, "ackley_function_01": [221, 268, 272, 286, 297, 298, 301], "alpine_01": [221, 286], "alpine_02": [221, 286], "bent_cigar": [221, 286], "brown": [221, 286], "chung_reynold": [221, 286], "cosine_mixtur": [221, 286], "deb_01": [221, 286], "deb_02": [221, 286], "deflected_corrugated_spr": [221, 286], "styblinski_tang": 221, "shifted_spher": [221, 286], "easom": [221, 268, 272, 286], "cross_in_trai": [221, 286], "egg_hold": [221, 286], "camelback_2d": [221, 286], "n_dim": 221, "definit": [221, 265, 286], "white": [222, 223, 257, 268, 272], "vector": 224, "downward": 224, "exemplifi": 248, "Not": 248, "come": [248, 265, 274, 293, 295], "benefit": 248, "intellisens": 248, "spawn": 249, "higher": [252, 270], "afford": 252, "intrins": 252, "actual": [252, 265, 286, 294], "readm": [256, 265], "verbatum": 256, "fullnam": 262, "escap": 262, "underlin": 262, "block": [262, 265], "rubric": 262, "endfor": 262, "endif": 262, "endblock": 262, "ar15": 264, "url": [264, 268], "bkj": 264, "maximilian": 264, "balandat": [264, 297, 301], "brian": 264, "karrer": 264, "daniel": 264, "jiang": 264, "daulton": 264, "benjamin": 264, "letham": 264, "eytan": 264, "bakshi": 264, "botorch": [264, 268, 297, 301], "framework": 264, "effici": [264, 291, 297], "mont": 264, "carlo": 264, "decemb": 264, "2020": [264, 268, 297, 301, 302], "1910": 264, "06403": 264, "cs": 264, "math": 264, "stat": 264, "bkg": 264, "23": [264, 267, 289], "bf17": 264, "je": 264, "frellsen": [264, 271], "spheric": 264, "convolut": 264, "applic": 264, "guyon": 264, "u": [264, 291], "von": 264, "luxburg": 264, "bengio": 264, "wallach": 264, "fergu": 264, "vishwanathan": 264, "garnett": 264, "editor": 264, "advanc": 264, "neural": [264, 271], "system": [264, 269, 270, 294], "volum": 264, "30": [264, 286], "curran": 264, "inc": 264, "proceed": 264, "neurip": 264, "cc": [264, 274], "paper_fil": 264, "1113d7a76ffceca1bb350bfe145467c6": 264, "pdf": 264, "dpam02": 264, "deb": [264, 302], "pratap": 264, "agarw": 264, "meyarivan": 264, "fast": 264, "elitist": 264, "multiobject": 264, "genet": [264, 302], "nsga": 264, "ii": 264, "ieee": 264, "transact": 264, "evolutionari": [264, 266, 268, 290, 298], "182": 264, "197": 264, "april": 264, "2002": [264, 302], "1109": 264, "4235": 264, "996017": 264, "gfsc22": 264, "matter": 264, "practic": 264, "thirti": 264, "sixth": 264, "confer": 264, "openreview": 264, "net": 264, "forum": 264, "yczrdi0y7g": 264, "gost": 264, "22": [264, 270, 289], "dockstr": [264, 267, 268, 272, 289, 293, 294], "gpb": 264, "jacob": 264, "gardner": [264, 297], "geoff": 264, "pleiss": 264, "david": [264, 298], "bindel": 264, "kilian": 264, "weinberg": 264, "gpytorch": [264, 297], "blackbox": 264, "matrix": [264, 298], "infer": 264, "gpu": 264, "2018": [264, 268, 297], "gbwd": 264, "rafael": 264, "bombarelli": [264, 297], "jennif": 264, "wei": 264, "duvenaud": 264, "benjam\u00edn": 264, "s\u00e1nchez": 264, "lengel": 264, "denni": 264, "sheberla": 264, "jorg": 264, "aguilera": 264, "iparraguirr": 264, "timothi": 264, "hirzel": 264, "ryan": 264, "adam": 264, "al\u00e1n": 264, "driven": 264, "central": 264, "268": 264, "276": [264, 289, 294], "februari": 264, "acscentsci": 264, "7b00572": 264, "ho96": 264, "hansen": [264, 298], "ostermei": [264, 298], "arbitrari": [264, 286], "evolut": [264, 302], "strategi": [264, 268, 298], "covari": [264, 298], "312": 264, "317": 264, "1996": [264, 298], "icec": 264, "542381": 264, "hfg": 264, "21": [264, 289, 293], "machin": 264, "drug": [264, 293], "discoveri": 264, "develop": [264, 265, 266, 290], "fifth": 264, "2021": [264, 275, 282], "8nvgnornowr": 264, "jrhernandezgarcia": 264, "moksh": 264, "jain": [264, 269], "sharath": 264, "chandra": 264, "raparthi": 264, "alex": 264, "hern": 264, "\u00e1": 264, "ndez": 264, "garc": 264, "\u0131": 264, "jarrid": 264, "rector": 264, "brook": [264, 268], "yoshua": 264, "santiago": 264, "miret": 264, "emmanuel": 264, "gf": 264, "low": 264, "kraus": 264, "emma": 264, "brunskil": 264, "kyunghyun": 264, "cho": 264, "barbara": 264, "engelhardt": 264, "sivan": 264, "sabato": 264, "jonathan": 264, "scarlett": 264, "40th": 264, "202": 264, "14631": 264, "14653": 264, "pmlr": 264, "29": 264, "jul": 264, "mlr": 264, "press": 264, "v202": 264, "jain23a": 264, "kmh": 264, "19": [264, 289], "johann": 264, "kirschner": [264, 301], "mojmir": 264, "mutni": 264, "nicol": 264, "hiller": 264, "rasmu": 264, "ischebeck": 264, "safe": 264, "high": 264, "subspac": 264, "36th": 264, "3429": 264, "3438": 264, "2019": [264, 268, 301], "v97": 264, "kirschner19a": 264, "ssw": 264, "16": [264, 270], "bobak": 264, "shahriari": [264, 297], "kevin": 264, "swerski": 264, "ziyu": 264, "wang": 264, "nando": 264, "freita": 264, "human": [264, 297], "out": [264, 273, 280, 281, 286, 287, 293, 297], "review": 264, "104": 264, "148": 264, "175": 264, "januari": 264, "jproc": 264, "2494218": 264, "sr73": 264, "shrake": [264, 270], "ruplei": [264, 270], "exposur": 264, "atom": 264, "lysozym": 264, "insulin": 264, "79": 264, "351": [264, 289], "371": 264, "sep": 264, "1973": [264, 270], "1016": 264, "0022": 264, "2836": 264, "73": 264, "90011": 264, "smg": 264, "preprint": 264, "blankdeb20": 264, "blank": [264, 302], "pymoo": [264, 302], "89497": 264, "89509": 264, "tutori": [265, 270, 289, 291, 295, 296, 297], "cover": 265, "what": [265, 274, 289, 295], "look": [265, 266, 290, 296], "poli": [265, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 294, 295, 297, 298, 301, 302, 303, 304], "live": [265, 294], "goe": [265, 270, 296], "exactli": [265, 266, 276, 279, 290], "doesn": [265, 275, 291, 294], "mani": [265, 302], "think": 265, "project": [265, 270, 289, 294], "ll": [265, 269, 270, 293, 295], "carri": 265, "let": [265, 267, 270, 289, 291, 293, 294, 296], "super_mario_bro": [265, 268, 289, 293], "pt": [265, 271], "level_util": 265, "md": [265, 266], "As": [265, 270, 289, 294, 296], "don": [265, 268, 274, 294], "end": [265, 270, 289, 291, 295], "ignor": 265, "altern": 265, "averag": 265, "abstract_black_box": [265, 296], "abstract_problem_factori": [265, 296], "problem_setup_inform": [265, 291, 296], "pythonpath": 265, "runtim": [265, 296], "imagin": 265, "your_local_depend": 265, "yourblackbox": 265, "your_arg": 265, "your_second_arg": 265, "your_kwarg": 265, "yourproblemfactori": 265, "chapter": [265, 266, 267, 268, 270, 289, 290, 291, 293, 295, 296], "your_problem": 265, "problem_info": [265, 285, 289, 291, 293, 296], "__name__": [265, 271, 274, 295, 296], "__main__": [265, 271, 274, 295, 296], "registri": [265, 289, 295], "register_problem": [265, 296], "your_problem_factori": 265, "your_env": 265, "That": [265, 276], "camel_cas": 265, "under": [265, 267, 269, 274, 275, 286, 296], "tell": 265, "though": 265, "sai": [265, 270, 286, 289, 294, 296], "channel": [265, 296], "machinelearninglifesci": [265, 266, 267, 268, 296], "dev": [265, 267, 268, 270], "java": [265, 296], "poli__mario": 265, "forg": 265, "pytorch": 265, "openjdk": 265, "cpuonli": 265, "click": [265, 268, 272, 293], "moreov": [265, 266, 290], "googl": [265, 268], "colab": [265, 268], "put": [265, 270, 302], "describ": [265, 270, 275, 276, 279, 282, 293, 295], "register": 265, "get_problem": [265, 267, 289, 293, 295, 296], "your_arg_1": 265, "mayb": 265, "your_arg_2": 265, "your_factori": 265, "thereof": 265, "At": [265, 270, 291, 293, 296], "point": [265, 270, 291, 293, 296, 297], "wrote": 265, "direct": [265, 301], "life": [265, 271], "debug": [265, 267, 271, 274, 285], "vscode": 265, "available_problem_factori": 265, "importerror": 265, "share": [265, 266, 267], "feel": [265, 266, 270, 293], "contribut": [265, 266], "case": [266, 267, 270, 273, 285, 286, 287, 290, 291, 293, 296], "poli_baselin": [266, 267, 289, 293, 295, 297, 298, 301, 302, 303, 304], "almost": [266, 290], "trivial": [266, 267, 290, 293, 296], "complic": [266, 290], "likewis": [266, 290], "explain": [266, 290, 291], "abstractsolv": [266, 289, 290], "abstract_solv": [266, 289, 290], "black_box": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "histori": [266, 289, 290, 293, 303, 304], "x0_i": 266, "y0_i": 266, "ingredi": [266, 270, 289, 290], "next_candid": [266, 289, 290, 293], "propos": [266, 290, 293], "solv": [266, 289, 290, 293, 295, 296, 297, 298, 301, 302, 303, 304], "max_it": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "next": [266, 268, 270, 289, 290, 291, 293, 295, 296], "solut": [266, 280, 290, 302], "notimplementederror": [266, 290], "subclass": [266, 290], "100": [266, 290, 293, 302, 303, 304], "rang": [266, 267, 290], "callback": 266, "pre_step_callback": 266, "turn": 266, "updat": [266, 291, 293, 298], "_": [266, 267, 297, 298, 301, 302], "post": 266, "post_step_callback": 266, "get_best_perform": [266, 289], "break_at_perform": [266, 295], "break": [266, 295], "leverag": [266, 290], "fact": [266, 290], "simplest": [266, 289, 290], "random_mut": [266, 289, 290, 293, 295], "len": [266, 290], "best_x": [266, 290], "argmax": [266, 290], "alwai": [266, 273, 286, 287, 290, 294, 296], "next_x": [266, 290], "po": [266, 290], "randint": [266, 290], "choic": [266, 290, 302], "pretti": [266, 270, 290], "lean": [266, 290], "notic": [266, 274, 279, 290, 291], "sort": [266, 285, 290, 302], "logic": [266, 290, 291], "noth": [266, 289, 290], "worri": [266, 268, 290, 296], "slightli": [266, 290, 296], "unfortun": [267, 274], "linux": [267, 274, 294], "maco": [267, 274], "top": [267, 268, 293], "therefor": [267, 294], "anaconda": 267, "went": 267, "okai": [267, 271], "anoth": [267, 270, 289, 293], "right": [267, 291], "bleed": 267, "edg": 267, "while": [267, 289], "stabl": [267, 293], "releas": [267, 270], "shell": [267, 296], "home": [267, 269, 270, 276, 277, 278], "poli_object": [267, 271, 296], "phase": 267, "short": [267, 270], "futur": [267, 270], "everyth": [267, 269, 291], "requisit": [267, 274], "openbabel": [267, 274], "white_nois": [267, 287, 289, 293], "minimal_working_exampl": 267, "plenti": 267, "complex": [267, 270, 289], "rasp": [268, 271, 272, 289, 293], "pytdc": 268, "accces": 268, "featur": [268, 271], "clash": [268, 270], "discuss": [268, 291, 293, 295, 296], "baselin": [268, 289, 291, 293, 294, 295, 297, 302], "place": [268, 269, 270], "fresh": 268, "full": [268, 270], "drawn": [268, 272], "unit": [268, 272], "word": [268, 272, 296], "spell": [268, 272], "3pbl": [268, 272, 275], "implmenet": [268, 272], "fluoresc": [268, 270, 272, 289], "On": 268, "focus": 268, "cma": 268, "es": 268, "vanilla": 268, "acquisit": [268, 297, 301], "over": 268, "encourag": 268, "gonzalezduquebartelsmichael": 268, "2024": [268, 270, 289], "gonz\u00e1lez": 268, "duqu": 268, "bartel": 268, "simon": 268, "michael": 268, "richard": 268, "month": 268, "jan": [268, 289], "titl": 268, "libari": 268, "year": 268, "drd3_dock": [268, 275, 289, 293], "graff": 268, "shakhnovich": 268, "foldx_": 268, "gfp_cba": [268, 289, 293], "park": 268, "listgarten": 268, "gfp_select": [268, 289, 293], "penalized_logp_lambo": [268, 279, 289, 293], "rdkit_": 268, "rfp_foldx_": 268, "sa_tdc": [268, 282, 289, 293], "ertl": 268, "schuffenhau": 268, "volz": 268, "toy_continuous_problem": [268, 286, 289, 293, 297, 301], "2013": 268, "coupl": [268, 296], "guid": 268, "subset": [269, 286, 298], "suit": 269, "thing": [269, 270, 289, 296], "dg": 269, "metric": 269, "recent": [269, 289, 294], "academ": 269, "licens": 269, "zip": [269, 294], "auxiliari": 269, "renam": [269, 270, 276, 277, 278], "help": 269, "mac": [269, 294], "warn": [269, 294], "unverifi": 269, "quarantin": 269, "command": [269, 270, 277, 278, 294], "own": 269, "risk": 269, "xattr": 269, "appl": [269, 294], "familiar": 270, "ourselv": 270, "alreadi": [270, 289, 293], "refresh": 270, "essenti": [270, 291], "notebook": 270, "pathlib": [270, 271, 276, 277, 278, 282, 289, 291], "shutil": 270, "path_to_foldx_fil": 270, "this_dir": [270, 271, 291], "resolv": [270, 271, 289, 291], "tmp": 270, "mkdir": [270, 291], "copyfil": 270, "respons": 270, "transport": 270, "oxigen": 270, "sperm": 270, "whale": 270, "101m": 270, "hand": 270, "urllib": 270, "web_address": 270, "rcsb": 270, "urlretriev": 270, "Of": [270, 293], "cours": [270, 293], "long": [270, 289, 296], "aid": 270, "pdb_name": 270, "choos": [270, 286], "repairpdb": [270, 277, 278], "littl": 270, "consumig": 270, "400sec": 270, "build": [270, 293, 296, 297], "101m_repair": 270, "repair_cmd": 270, "water": [270, 277, 278, 280, 289], "crystal": [270, 277, 278], "tree": 270, "fxout": 270, "unrecognized_molecul": 270, "onward": [270, 297], "inspect": [270, 271, 274], "parser": 270, "get_residu": 270, "dive": [270, 293, 295], "first_residu": 270, "resnam": 270, "index": [270, 289], "get_par": 270, "met": [270, 289, 294], "extract": 270, "sequtil": 270, "seq1": 270, "original_residu": 270, "chain_id": 270, "position_in_sequ": 270, "mutant_residu": 270, "glycin": 270, "Be": [270, 271], "care": [270, 289, 294], "fire": 270, "did": 270, "modifi": 270, "mutation_list": 270, "residue_idx": 270, "li": [270, 289], "tranform": 270, "position_in_chain": 270, "content": 270, "indiviual_list": 270, "ma0g": 270, "won": 270, "buildmodel": [270, 289], "gibb": 270, "foldx_cmd": 270, "consortium": [270, 289], "jesper": [270, 289], "freder": [270, 289], "joost": [270, 289], "lui": [270, 289], "peter": [270, 289], "vanhe": [270, 289], "erik": [270, 289], "verschueren": [270, 289], "baeten": [270, 289], "javier": [270, 289], "delgado": [270, 289], "francoi": [270, 289], "permut": [270, 289], "concept": [270, 289], "raphael": [270, 289], "gueroi": [270, 289], "backhbond": [270, 289], "142": 270, "58": 270, "sidehbond": [270, 289], "48": 270, "61": [270, 289], "energy_vdw": [270, 289], "179": 270, "63": 270, "electro": [270, 289], "energy_solvp": [270, 289], "245": 270, "28": [270, 271, 289], "energy_solvh": [270, 289], "238": 270, "89": 270, "energy_vdwclash": [270, 289], "42": [270, 289], "energy_tors": [270, 289], "70": [270, 289], "backbone_vdwclash": [270, 289], "158": 270, "entropy_sidec": [270, 289], "105": 270, "87": 270, "entropy_mainc": [270, 289], "231": 270, "69": 270, "bond": [270, 289], "00": [270, 289], "helix": [270, 289], "dipol": [270, 289], "75": [270, 289], "loop_entropi": [270, 289], "cis_bond": [270, 289], "disulfid": [270, 289], "kn": [270, 289], "electrostat": [270, 289], "partial": [270, 289], "coval": [270, 289], "energy_ionis": [270, 289], "56": 270, "entropi": [270, 289], "32": [270, 289], "meta0": 270, "gly": 270, "ok": [270, 289], "wed": 270, "feb": 270, "44": 270, "52": 270, "spend": [270, 289], "96": 270, "valid": [270, 289], "101m_repair_1": 270, "successfulli": [270, 289], "completedprocess": 270, "sjt972": [270, 289, 293, 294], "understanding_foldx": 270, "01": 270, "returncod": 270, "average_101m_repair": 270, "dif_101m_repair": 270, "pdblist_101m_repair": 270, "raw_101m_repair": 270, "wt_101m_repair_1": 270, "raw_": 270, "_repair": [270, 277, 278], "tabl": 270, "quantiti": 270, "column_nam": 270, "backbon": 270, "hbond": 270, "sidechain": 270, "van": 270, "der": 270, "waal": 270, "solvat": 270, "polar": 270, "hydrophob": 270, "mainchain": 270, "sloop_entropi": 270, "mloop_entropi": 270, "torsion": 270, "bridg": 270, "kon": 270, "ionis": 270, "pd": 270, "readlin": 270, "df": 270, "split": 270, "column": 270, "var": [270, 294], "l3": 270, "qk9dx6g958765kmn_2wn34t00000gn": 270, "ipykernel_25734": 270, "1758354106": 270, "deprecationwarn": 270, "pyarrow": 270, "major": 270, "arrow": 270, "interoper": 270, "caus": 270, "pleas": [270, 293, 294], "issu": 270, "54466": 270, "overal": 270, "31": 270, "7457": 270, "34": 270, "3436": 270, "notat": 270, "stand": [270, 293, 296], "again": 270, "wt_structur": 270, "mut_structur": 270, "pdb1": 270, "shrakeruplei": 270, "attach": [270, 291], "8407": 270, "731560227876": 270, "8439": 270, "063468009845": 270, "impact": 270, "databas": 270, "desir": [270, 289, 293, 294], "lesser": 270, "stabler": 270, "correl": 270, "present": [270, 296], "supervis": 271, "approach": 271, "network": [271, 297], "drawback": 271, "similar": 271, "foldx_stabl": [271, 278, 289, 293], "awar": [271, 297], "scale": [271, 286], "easier": 271, "poli__rasp": 271, "correct": [271, 274, 277, 278, 279, 280, 281, 285, 296], "breakpoint": [271, 274], "satisfi": [271, 274], "root": [271, 274, 276, 279, 294], "3ned": [271, 289], "__file__": 271, "wildtype_pdb_paths_for_rasp": 271, "f_rasp": 271, "wildtype_str": 271, "join": [271, 289], "three": [271, 291, 293], "three_mut": 271, "wildtype_sequ": 271, "ddg": 271, "approx": 271, "03": 271, "07": [271, 289], "clang": 271, "cmake": 271, "reduc": 271, "pin": 271, "hash": 271, "bd23a0bf627ae9b08842102a5c2e9404b4a81924": 271, "cavity_model_15": 271, "ds_model": 271, "3ccebe87e017b6bd737f88e1943557d128c85616": 271, "against": [271, 274], "checksum": 271, "satur": 271, "mutagenesi": 271, "pmo": 272, "jump": 272, "cap": 273, "prepar": 274, "autodock": 274, "vina": 274, "suppos": 274, "batteri": 274, "even": [274, 296], "poli__dockstr": [274, 294], "canon": [274, 275], "risperidon": 274, "dockstringproblemfactori": 274, "drd2": [274, 294], "risperidone_smil": 274, "cc1": 274, "n2ccccc2": 274, "n1": 274, "ccn3ccc": 274, "cc3": 274, "c4": 274, "noc5": 274, "c4c": 274, "c5": 274, "handl": [274, 277, 278, 280, 281], "hood": [274, 275], "abov": [275, 276, 279, 282, 295, 296], "success": 275, "underneath": [275, 276, 279, 282, 293], "poli__tdc": [275, 282], "text": [276, 277, 278, 296], "foldx_rfp_lambo": [276, 279, 289, 293], "poli__lambo": [276, 279], "avali": 276, "skip": 276, "decid": 276, "11189": 276, "00587946": 276, "8155": 276, "acces": [277, 282], "foldx_stability_and_sasa": [277, 278, 289, 293], "v4": [277, 278], "filenam": [277, 278], "cach": [277, 278], "your_fil": [277, 278], "heteroatom": [277, 278], "pdbtool": [277, 278], "Then": [277, 278, 280, 281], "foldx_sasa": [277, 289, 293], "poli__protein": [277, 278, 294], "carefulli": 279, "zinc": 279, "coeffici": 280, "octanol": 280, "rdkit_logp": [280, 289, 293, 294], "carbon": [280, 281], "6361": 280, "rdkit_q": [281, 289, 293], "35978494": 281, "assert": [281, 295], "isclos": 281, "8548": 282, "run_info": [285, 289], "link": 285, "peopl": 286, "sum_": 286, "x_d": 286, "saasbo": 286, "assumpt": 286, "roughli": 286, "speak": 286, "question": 286, "30d": 286, "dimensions_to_embed_in": 286, "mathcal": 287, "But": 288, "idea": [288, 289], "rc": 289, "sit": 289, "rfp_foldx_stability_and_sasa": [289, 293], "stick": 289, "red": 289, "explor": [289, 297], "ls": 289, "3ned_repair": 289, "optimizing_protein_st": 289, "ipynb": 289, "mrogu": 289, "hopefulli": 289, "remind": 289, "forgot": 289, "traceback": [289, 294], "138": 289, "typeerror": 289, "got": 289, "unexpect": 289, "176": [289, 294], "145": [289, 294], "cell": [289, 294], "439": [289, 294], "437": [289, 294], "438": [289, 294], "__create_as_isolated_process": [289, 294], "440": [289, 294], "441": [289, 294], "442": [289, 294], "443": [289, 294], "444": [289, 294], "445": [289, 294], "446": [289, 294], "447": [289, 294], "448": [289, 294], "449": [289, 294], "problem_inform": [289, 294], "451": [289, 294], "278": [289, 294], "tb": [289, 294], "msg": [289, 294], "277": [289, 294], "279": [289, 294], "280": [289, 294], "281": [289, 294], "msg_type": [289, 294], "282": [289, 294], "five": 289, "section": [289, 295, 296], "select": [289, 293, 301], "alter": 289, "special": [289, 293], "n_iter": 289, "178": 289, "76": 289, "267": 289, "80": 289, "13": 289, "374": 289, "65": 289, "17": 289, "146": 289, "340": 289, "27": 289, "77": [289, 294], "41": 289, "na194f": 289, "asna194": 289, "193": 289, "phe": 289, "fri": 289, "09": 289, "51": 289, "54": 289, "3ned_repair_1": 289, "qa114": 289, "glna114": 289, "113": 289, "ser": 289, "da3m": 289, "aspa3": 289, "kei": [289, 295], "get_best_solut": [289, 293, 295, 302, 303, 304], "41639": 289, "0629": 289, "5983": 289, "1298": 289, "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslsdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayftntklditshnedytiveqyernegrhstggmdelyk": 289, "appli": 290, "part": [291, 294], "compar": [291, 294], "qualiti": 291, "save": 291, "json": 291, "mlflow": 291, "weight": 291, "bias": 291, "abstract_observ": 291, "skeleton": 291, "simpleobserv": 291, "init": 291, "servic": 291, "wandb": 291, "adjac": 291, "identifi": 291, "uuid4": 291, "metadata": 291, "uuid": 291, "experiment_path": 291, "as_dict": 291, "recal": 291, "tolist": 291, "dump": 291, "curiou": 291, "rememb": [291, 296], "invent": 291, "wheel": 291, "tensorboard": 291, "fp": 291, "snippet": [291, 295], "scenario": 291, "z": 291, "were": [291, 294], "accordingli": 291, "migu": 291, "flea": [291, 296], "showcas": 291, "behind": 291, "saw": 291, "overwritten": 291, "deeper": [293, 295], "intro": 293, "treat": 293, "anyth": 293, "further": 293, "page": [293, 296], "randommut": [293, 295, 303, 304], "anaconda3": [293, 294], "docs2": [293, 294], "lib": [293, 294], "python3": [293, 294], "tqdm": 293, "auto": 293, "tqdmwarn": 293, "iprogress": 293, "jupyt": 293, "ipywidget": 293, "readthedoc": 293, "io": 293, "user_instal": 293, "autonotebook": 293, "notebook_tqdm": 293, "16173153": 293, "dtype": 293, "u1": 293, "talk": 293, "babel": 294, "No": 294, "freez": 294, "grep": 294, "135": 294, "dynamically_instanti": 294, "102": 294, "92": 294, "exec": 294, "modulenotfounderror": 294, "critic": 294, "opt": 294, "homebrew": 294, "condabin": 294, "autodock_vina_1_1_2_mac_catalina_64bit": 294, "usr": 294, "cryptex": 294, "app": 294, "sbin": 294, "cryptexd": 294, "codex": 294, "bootstrap": 294, "appleintern": 294, "tex": 294, "texbin": 294, "cargo": 294, "using_poli": 294, "the_bas": 294, "python39": 294, "dynload": 294, "externalblackbox": 294, "num_evalu": 294, "dockstringwarn": 294, "although": 294, "perfectli": 294, "match": [294, 296], "platform": 294, "report": 294, "f_logp": 294, "x0_logp": 294, "y0_logp": 294, "logpblackbox": 294, "combin": 295, "optimizing_aloha": 295, "01_a_simple_example_of_optim": 295, "our_aloha": [295, 296], "past": 295, "haven": 295, "realli": 295, "Its": 295, "summari": 295, "less": 295, "conclud": 295, "takeawai": 295, "independ": 295, "why": 295, "registering_aloha": 296, "search": [296, 297], "aloof": 296, "syntax": 296, "ouralohablackbox": 296, "sum": 296, "axi": 296, "keepdim": 296, "get_max_sequence_length": 296, "x_0": 296, "alohablackbox": 296, "ascii_uppercas": 296, "ouralohaproblemfactori": 296, "interpret": 296, "poli_aloha": 296, "poli_aloha_problem": 296, "yourself": 296, "aloha_problem_factori": 296, "somewher": 296, "workhors": 296, "querying_aloha": 296, "emphas": 296, "amaz": 296, "x1": 296, "y1": 296, "subtl": 296, "cheminformat": 296, "mechan": 296, "solver": [296, 297, 298, 301, 302, 303, 304], "approxim": 297, "tild": 297, "boldsymbol": [297, 298], "surrog": 297, "render": 297, "smartli": 297, "balanc": 297, "exploit": 297, "grid": 297, "vanillabayesianoptim": 297, "f_acklei": [297, 301], "randn": [297, 301], "clip": [297, 301], "bo_solv": 297, "great": 297, "mostli": 297, "intent": 297, "adversari": 297, "gan": 297, "maintain": 298, "mu": 298, "sigma": 298, "member": 298, "introduct": 298, "blogpost": 298, "pycma": 298, "cma_e": 298, "toycontinuousproblemfactori": 298, "population_s": [298, 302], "initial_mean": 298, "initial_sigma": 298, "restrict": 301, "coordin": 301, "singletaskgp": 301, "type_of_lin": 301, "non": 302, "domin": 302, "mate": 302, "procedur": 302, "upon": 302, "alohaproblemfactori": [302, 303, 304], "multi_objective_black_box": 302, "multiobjectiveblackbox": 302, "discretensgaii": 302, "hyperparamet": 302, "max_iter": 302, "num_mut": 302, "f_aloha": 302, "togeth": 302, "popul": 302}, "objects": {"": [[0, 0, 0, "-", "poli"]], "poli": [[1, 0, 0, "-", "core"], [88, 0, 0, "-", "objective"], [92, 0, 0, "-", "objective_factory"], [97, 0, 0, "-", "objective_repository"], [226, 0, 0, "-", "registered_objectives"], [227, 0, 0, "-", "tests"]], "poli.core": [[2, 0, 0, "-", "abstract_black_box"], [5, 0, 0, "-", "abstract_problem_factory"], [8, 0, 0, "-", "chemistry"], [11, 0, 0, "-", "exceptions"], [14, 0, 0, "-", "multi_objective_black_box"], [16, 0, 0, "-", "problem_setup_information"], [18, 0, 0, "-", "proteins"], [21, 0, 0, "-", "registry"], [30, 0, 0, "-", "util"]], "poli.core.abstract_black_box": [[3, 1, 1, "", "AbstractBlackBox"], [4, 1, 1, "", "NegativeBlackBox"]], "poli.core.abstract_black_box.AbstractBlackBox": [[3, 2, 1, "", "__call__"], [3, 2, 1, "", "__del__"], [3, 2, 1, "", "__enter__"], [3, 2, 1, "", "__exit__"], [3, 2, 1, "", "__init__"], [3, 2, 1, "", "__neg__"], [3, 2, 1, "", "_black_box"], [3, 3, 1, "", "batch_size"], [3, 3, 1, "", "info"], [3, 3, 1, "", "num_workers"], [3, 3, 1, "", "observer"], [3, 3, 1, "", "observer_info"], [3, 3, 1, "", "parallelize"], [3, 2, 1, "", "reset_evaluation_budget"], [3, 2, 1, "", "set_observer"], [3, 2, 1, "", "terminate"]], "poli.core.abstract_black_box.NegativeBlackBox": [[4, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory": [[6, 1, 1, "", "AbstractProblemFactory"], [7, 1, 1, "", "MetaProblemFactory"]], "poli.core.abstract_problem_factory.AbstractProblemFactory": [[6, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory.MetaProblemFactory": [[7, 2, 1, "", "__init__"]], "poli.core.chemistry": [[9, 0, 0, "-", "tdc_black_box"]], "poli.core.chemistry.tdc_black_box": [[10, 1, 1, "", "TDCBlackBox"]], "poli.core.chemistry.tdc_black_box.TDCBlackBox": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "from_smiles"], [10, 3, 1, "", "oracle"]], "poli.core.exceptions": [[12, 4, 1, "", "BudgetExhaustedException"], [13, 4, 1, "", "PoliException"]], "poli.core.multi_objective_black_box": [[15, 1, 1, "", "MultiObjectiveBlackBox"]], "poli.core.multi_objective_black_box.MultiObjectiveBlackBox": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "_black_box"], [15, 3, 1, "", "objective_functions"]], "poli.core.problem_setup_information": [[17, 1, 1, "", "ProblemSetupInformation"]], "poli.core.problem_setup_information.ProblemSetupInformation": [[17, 2, 1, "", "__init__"]], "poli.core.proteins": [[19, 0, 0, "-", "foldx_black_box"]], "poli.core.proteins.foldx_black_box": [[20, 1, 1, "", "FoldxBlackBox"]], "poli.core.proteins.foldx_black_box.FoldxBlackBox": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "create_working_directory"], [20, 3, 1, "", "experiment_id"], [20, 3, 1, "", "tmp_folder"], [20, 3, 1, "", "wildtype_amino_acids"], [20, 3, 1, "", "wildtype_pdb_paths"], [20, 3, 1, "", "wildtype_residue_strings"], [20, 3, 1, "", "wildtype_residues"]], "poli.core.registry": [[22, 5, 1, "", "delete_observer_run_script"], [23, 5, 1, "", "delete_problem"], [24, 5, 1, "", "get_problem_factories"], [25, 5, 1, "", "get_problems"], [26, 5, 1, "", "register_problem"], [27, 5, 1, "", "register_problem_from_repository"], [28, 5, 1, "", "set_observer"], [29, 5, 1, "", "set_observer_run_script"]], "poli.core.util": [[31, 0, 0, "-", "abstract_observer"], [33, 0, 0, "-", "alignment"], [35, 0, 0, "-", "batch"], [38, 0, 0, "-", "chemistry"], [45, 0, 0, "-", "external_observer"], [47, 0, 0, "-", "files"], [53, 0, 0, "-", "inter_process_communication"], [57, 0, 0, "-", "objective_management"], [61, 0, 0, "-", "observer_wrapper"], [63, 0, 0, "-", "proteins"], [84, 0, 0, "-", "seeding"]], "poli.core.util.abstract_observer": [[32, 1, 1, "", "AbstractObserver"]], "poli.core.util.abstract_observer.AbstractObserver": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "finish"], [32, 2, 1, "", "observe"]], "poli.core.util.alignment": [[34, 0, 0, "-", "is_aligned"]], "poli.core.util.batch": [[36, 0, 0, "-", "batch_input"]], "poli.core.util.batch.batch_input": [[37, 5, 1, "", "batched"]], "poli.core.util.chemistry": [[39, 0, 0, "-", "string_to_molecule"]], "poli.core.util.chemistry.string_to_molecule": [[40, 5, 1, "", "selfies_to_molecules"], [41, 5, 1, "", "smiles_to_molecules"], [42, 5, 1, "", "strings_to_molecules"], [43, 5, 1, "", "translate_selfies_to_smiles"], [44, 5, 1, "", "translate_smiles_to_selfies"]], "poli.core.util.external_observer": [[46, 1, 1, "", "ExternalObserver"]], "poli.core.util.external_observer.ExternalObserver": [[46, 2, 1, "", "__getattr__"], [46, 2, 1, "", "__init__"], [46, 2, 1, "", "finish"], [46, 2, 1, "", "initialize_observer"], [46, 2, 1, "", "observe"]], "poli.core.util.files": [[48, 0, 0, "-", "download_files_from_github"], [51, 0, 0, "-", "integrity"]], "poli.core.util.files.download_files_from_github": [[49, 5, 1, "", "download_file_from_github_repository"], [50, 5, 1, "", "get_sha_for_tag"]], "poli.core.util.files.integrity": [[52, 5, 1, "", "compute_md5_from_filepath"]], "poli.core.util.inter_process_communication": [[54, 0, 0, "-", "process_wrapper"]], "poli.core.util.inter_process_communication.process_wrapper": [[55, 1, 1, "", "ProcessWrapper"], [56, 5, 1, "", "get_connection"]], "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper": [[55, 2, 1, "", "__init__"]], "poli.core.util.objective_management": [[58, 0, 0, "-", "make_run_script"]], "poli.core.util.objective_management.make_run_script": [[59, 5, 1, "", "make_observer_script"], [60, 5, 1, "", "make_run_script"]], "poli.core.util.observer_wrapper": [[62, 5, 1, "", "start_observer_process"]], "poli.core.util.proteins": [[64, 0, 0, "-", "defaults"], [65, 0, 0, "-", "foldx"], [67, 0, 0, "-", "mutations"], [71, 0, 0, "-", "pdb_parsing"], [75, 0, 0, "-", "rasp"]], "poli.core.util.proteins.foldx": [[66, 1, 1, "", "FoldxInterface"]], "poli.core.util.proteins.foldx.FoldxInterface": [[66, 2, 1, "", "__init__"], [66, 2, 1, "", "_compute_sasa"], [66, 2, 1, "", "_read_energy"], [66, 2, 1, "", "_repair_if_necessary_and_provide_path"], [66, 2, 1, "", "_simulate_mutations"], [66, 2, 1, "", "compute_sasa"], [66, 2, 1, "", "compute_stability"], [66, 2, 1, "", "compute_stability_and_sasa"], [66, 2, 1, "", "copy_foldx_files"], [66, 2, 1, "", "repair"], [66, 3, 1, "", "verbose"], [66, 3, 1, "", "working_dir"], [66, 2, 1, "", "write_mutations_to_file"]], "poli.core.util.proteins.mutations": [[68, 5, 1, "", "edits_between_strings"], [69, 5, 1, "", "find_closest_wildtype_pdb_file_to_mutant"], [70, 5, 1, "", "mutations_from_wildtype_residues_and_mutant"]], "poli.core.util.proteins.pdb_parsing": [[72, 5, 1, "", "parse_pdb_as_residue_strings"], [73, 5, 1, "", "parse_pdb_as_residues"], [74, 5, 1, "", "parse_pdb_as_structure"]], "poli.core.util.proteins.rasp": [[76, 0, 0, "-", "inner_rasp"], [82, 6, 1, "", "load_models"], [83, 6, 1, "", "rasp_interface"]], "poli.core.util.proteins.rasp.inner_rasp": [[77, 6, 1, "", "PrismData"], [78, 6, 1, "", "cavity_model"], [79, 6, 1, "", "helpers"], [80, 6, 1, "", "run_pipeline"], [81, 6, 1, "", "visualization"]], "poli.core.util.seeding": [[85, 0, 0, "-", "seeding"]], "poli.core.util.seeding.seeding": [[86, 5, 1, "", "seed_numpy"], [87, 5, 1, "", "seed_python"]], "poli.objective": [[89, 5, 1, "", "dynamically_instantiate"], [90, 5, 1, "", "parse_factory_kwargs"], [91, 5, 1, "", "run"]], "poli.objective_factory": [[93, 1, 1, "", "ExternalBlackBox"], [94, 5, 1, "", "create"], [95, 5, 1, "", "load_config"], [96, 5, 1, "", "start"]], "poli.objective_factory.ExternalBlackBox": [[93, 2, 1, "", "__init__"]], "poli.objective_repository": [[98, 0, 0, "-", "aloha"], [102, 0, 0, "-", "dockstring"], [106, 0, 0, "-", "drd3_docking"], [110, 0, 0, "-", "foldx_rfp_lambo"], [116, 0, 0, "-", "foldx_sasa"], [121, 0, 0, "-", "foldx_stability"], [126, 0, 0, "-", "foldx_stability_and_sasa"], [130, 0, 0, "-", "gfp_cbas"], [162, 0, 0, "-", "gfp_select"], [166, 0, 0, "-", "penalized_logp_lambo"], [170, 0, 0, "-", "rasp"], [172, 0, 0, "-", "rdkit_logp"], [176, 0, 0, "-", "rdkit_qed"], [180, 0, 0, "-", "rfp_foldx_stability_and_sasa"], [182, 0, 0, "-", "sa_tdc"], [186, 0, 0, "-", "super_mario_bros"], [199, 0, 0, "-", "toy_continuous_problem"], [222, 0, 0, "-", "white_noise"]], "poli.objective_repository.aloha": [[99, 0, 0, "-", "register"]], "poli.objective_repository.aloha.register": [[100, 1, 1, "", "AlohaBlackBox"], [101, 1, 1, "", "AlohaProblemFactory"]], "poli.objective_repository.aloha.register.AlohaBlackBox": [[100, 2, 1, "", "__init__"], [100, 2, 1, "", "_black_box"], [100, 3, 1, "", "alphabet"]], "poli.objective_repository.aloha.register.AlohaProblemFactory": [[101, 2, 1, "", "__init__"], [101, 2, 1, "", "create"], [101, 2, 1, "", "get_setup_information"]], "poli.objective_repository.dockstring": [[103, 0, 0, "-", "register"]], "poli.objective_repository.dockstring.register": [[104, 1, 1, "", "DockstringBlackBox"], [105, 1, 1, "", "DockstringProblemFactory"]], "poli.objective_repository.dockstring.register.DockstringBlackBox": [[104, 2, 1, "", "__init__"], [104, 2, 1, "", "_black_box"], [104, 3, 1, "", "alphabet"]], "poli.objective_repository.dockstring.register.DockstringProblemFactory": [[105, 2, 1, "", "__init__"], [105, 2, 1, "", "create"], [105, 2, 1, "", "get_setup_information"]], "poli.objective_repository.drd3_docking": [[107, 0, 0, "-", "register"]], "poli.objective_repository.drd3_docking.register": [[108, 1, 1, "", "DRD3BlackBox"], [109, 1, 1, "", "DRD3ProblemFactory"]], "poli.objective_repository.drd3_docking.register.DRD3BlackBox": [[108, 2, 1, "id0", "__init__"], [108, 3, 1, "", "oracle_name"]], "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory": [[109, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo": [[111, 0, 0, "-", "register"]], "poli.objective_repository.foldx_rfp_lambo.register": [[112, 3, 1, "", "Config"], [113, 1, 1, "", "RFPWrapper"], [114, 1, 1, "", "RFPWrapperFactory"], [115, 5, 1, "", "get_config"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper": [[113, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory": [[114, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa": [[118, 0, 0, "-", "register"]], "poli.objective_repository.foldx_sasa.register": [[119, 1, 1, "", "FoldXSASABlackBox"], [120, 1, 1, "", "FoldXSASAProblemFactory"]], "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox": [[119, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory": [[120, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability": [[123, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability.register": [[124, 1, 1, "", "FoldXStabilityBlackBox"], [125, 1, 1, "", "FoldXStabilityProblemFactory"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox": [[124, 2, 1, "", "__init__"], [124, 2, 1, "", "_black_box"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory": [[125, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa": [[127, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability_and_sasa.register": [[128, 1, 1, "", "FoldXStabilityAndSASABlackBox"], [129, 1, 1, "", "FoldXStabilityAndSASAProblemFactory"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox": [[128, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory": [[129, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas": [[131, 0, 0, "-", "abstract_vae_wrapper"], [133, 0, 0, "-", "cbas_alphabet_preprocessing"], [148, 0, 0, "-", "cbas_wrapper"], [152, 0, 0, "-", "gfp_gp"], [153, 0, 0, "-", "make_vae"], [159, 0, 0, "-", "register"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper": [[132, 1, 1, "", "AbstractVAEWrapper"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper": [[132, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing": [[134, 5, 1, "", "convert_aas_to_idx_array"], [135, 5, 1, "", "convert_idx_array_to_aas"], [136, 5, 1, "", "convert_mutations_to_sequence"], [137, 5, 1, "", "get_argmax"], [138, 5, 1, "", "get_balaji_predictions"], [139, 5, 1, "", "get_experimental_X_y"], [140, 5, 1, "", "get_gfp_X_y_aa"], [141, 5, 1, "", "get_gfp_base_seq"], [142, 5, 1, "", "get_samples"], [143, 5, 1, "", "one_hot_encode_aa"], [144, 5, 1, "", "one_hot_encode_aa_array"], [145, 5, 1, "", "one_hot_encode_dna"], [146, 5, 1, "", "partition_data"], [147, 5, 1, "", "read_gfp_data"]], "poli.objective_repository.gfp_cbas.cbas_wrapper": [[149, 1, 1, "", "CBASVAEWrapper"], [150, 1, 1, "", "ConvertedTorchVaeDecoder"], [151, 1, 1, "", "ConvertedTorchVaeEncoder"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper": [[149, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder": [[150, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder": [[151, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae": [[154, 1, 1, "", "BaseVAE"], [155, 1, 1, "", "SimpleVAE"], [156, 5, 1, "", "build_vae"], [157, 5, 1, "", "identity_loss"], [158, 5, 1, "", "summed_categorical_crossentropy"]], "poli.objective_repository.gfp_cbas.make_vae.BaseVAE": [[154, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE": [[155, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register": [[160, 1, 1, "", "GFPCBasBlackBox"], [161, 1, 1, "", "GFPCBasProblemFactory"]], "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox": [[160, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory": [[161, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select": [[163, 0, 0, "-", "register"]], "poli.objective_repository.gfp_select.register": [[164, 1, 1, "", "GFPBlackBox"], [165, 1, 1, "", "GFPSelectionProblemFactory"]], "poli.objective_repository.gfp_select.register.GFPBlackBox": [[164, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory": [[165, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo": [[167, 0, 0, "-", "register"]], "poli.objective_repository.penalized_logp_lambo.register": [[168, 1, 1, "", "PenalizedLogPLamboBlackBox"], [169, 1, 1, "", "PenalizedLogPLamboProblemFactory"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox": [[168, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory": [[169, 2, 1, "", "__init__"]], "poli.objective_repository.rasp": [[171, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp": [[173, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp.register": [[174, 1, 1, "", "LogPBlackBox"], [175, 1, 1, "", "LogPProblemFactory"]], "poli.objective_repository.rdkit_logp.register.LogPBlackBox": [[174, 2, 1, "", "__init__"], [174, 2, 1, "", "_black_box"], [174, 3, 1, "", "from_selfies"], [174, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_logp.register.LogPProblemFactory": [[175, 2, 1, "", "__init__"]], "poli.objective_repository.rdkit_qed": [[177, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_qed.register": [[178, 1, 1, "", "QEDBlackBox"], [179, 1, 1, "", "QEDProblemFactory"]], "poli.objective_repository.rdkit_qed.register.QEDBlackBox": [[178, 2, 1, "", "__init__"], [178, 2, 1, "", "_black_box"], [178, 3, 1, "", "from_selfies"], [178, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_qed.register.QEDProblemFactory": [[179, 2, 1, "", "__init__"], [179, 2, 1, "", "create"], [179, 2, 1, "", "get_setup_information"]], "poli.objective_repository.rfp_foldx_stability_and_sasa": [[181, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc": [[183, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc.register": [[184, 1, 1, "", "SABlackBox"], [185, 1, 1, "", "SAProblemFactory"]], "poli.objective_repository.sa_tdc.register.SABlackBox": [[184, 2, 1, "", "__init__"]], "poli.objective_repository.sa_tdc.register.SAProblemFactory": [[185, 2, 1, "", "__init__"], [185, 2, 1, "", "create"], [185, 2, 1, "", "get_setup_information"]], "poli.objective_repository.super_mario_bros": [[187, 0, 0, "-", "level_utils"], [196, 0, 0, "-", "model"]], "poli.objective_repository.super_mario_bros.level_utils": [[188, 5, 1, "", "add_padding_to_level"], [189, 5, 1, "", "clean_level"], [190, 5, 1, "", "level_to_array"], [191, 5, 1, "", "level_to_list"], [192, 5, 1, "", "levels_to_onehot"], [193, 5, 1, "", "onehot_to_levels"], [194, 5, 1, "", "tensor_to_sim_level"], [195, 5, 1, "", "vectorized"]], "poli.objective_repository.super_mario_bros.model": [[197, 1, 1, "", "VAEMario"], [198, 5, 1, "", "load_example_model"]], "poli.objective_repository.super_mario_bros.model.VAEMario": [[197, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem": [[200, 0, 0, "-", "definitions"], [217, 0, 0, "-", "register"], [220, 0, 0, "-", "toy_continuous_problem"]], "poli.objective_repository.toy_continuous_problem.definitions": [[201, 5, 1, "", "ackley_function_01"], [202, 5, 1, "", "alpine_01"], [203, 5, 1, "", "alpine_02"], [204, 5, 1, "", "bent_cigar"], [205, 5, 1, "", "brown"], [206, 5, 1, "", "camelback_2d"], [207, 5, 1, "", "chung_reynolds"], [208, 5, 1, "", "cosine_mixture"], [209, 5, 1, "", "cross_in_tray"], [210, 5, 1, "", "deb_01"], [211, 5, 1, "", "deb_02"], [212, 5, 1, "", "deflected_corrugated_spring"], [213, 5, 1, "", "easom"], [214, 5, 1, "", "egg_holder"], [215, 5, 1, "", "shifted_sphere"], [216, 5, 1, "", "styblinski_tang"]], "poli.objective_repository.toy_continuous_problem.register": [[218, 1, 1, "", "ToyContinuousBlackBox"], [219, 1, 1, "", "ToyContinuousProblemFactory"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox": [[218, 2, 1, "", "__init__"], [218, 2, 1, "", "_black_box"], [218, 3, 1, "", "alphabet"], [218, 3, 1, "", "bounds"], [218, 3, 1, "", "embed_in"], [218, 3, 1, "", "function"], [218, 3, 1, "", "function_name"], [218, 3, 1, "", "n_dimensions"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory": [[219, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem": [[221, 1, 1, "", "ToyContinuousProblem"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem": [[221, 2, 1, "", "__init__"]], "poli.objective_repository.white_noise": [[223, 0, 0, "-", "register"]], "poli.objective_repository.white_noise.register": [[224, 1, 1, "", "WhiteNoiseBlackBox"], [225, 1, 1, "", "WhiteNoiseProblemFactory"]], "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox": [[224, 2, 1, "", "__init__"], [224, 2, 1, "", "_black_box"]], "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory": [[225, 2, 1, "", "__init__"]], "poli.tests": [[228, 0, 0, "-", "docs_examples"], [236, 0, 0, "-", "registry"], [255, 0, 0, "-", "test_minimal_working_example"], [257, 0, 0, "-", "test_seeding"], [259, 0, 0, "-", "util"]], "poli.tests.docs_examples": [[229, 0, 0, "-", "test_objective_functions"]], "poli.tests.docs_examples.test_objective_functions": [[230, 5, 1, "", "test_aloha_example"], [231, 5, 1, "", "test_logp_example"], [233, 5, 1, "", "test_qed_example"], [235, 5, 1, "", "test_white_noise_example"]], "poli.tests.registry": [[237, 0, 0, "-", "basic_objectives"], [242, 0, 0, "-", "chemistry"], [244, 0, 0, "-", "proteins"], [248, 0, 0, "-", "test_basic_loop_without_create"], [249, 0, 0, "-", "test_force_isolation"], [251, 0, 0, "-", "toy_continuous_problems"]], "poli.tests.registry.basic_objectives": [[238, 0, 0, "-", "test_basic_objectives"]], "poli.tests.registry.basic_objectives.test_basic_objectives": [[239, 5, 1, "", "test_registering_aloha"], [240, 5, 1, "", "test_registering_white_noise"]], "poli.tests.registry.toy_continuous_problems": [[252, 0, 0, "-", "test_embedding_problems_into_higher_dims"]], "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims": [[253, 5, 1, "", "test_embed_camelback_into_high_dimensions"]], "poli.tests.test_minimal_working_example": [[256, 5, 1, "", "test_minimal_working_example"]], "poli.tests.test_seeding": [[258, 5, 1, "", "test_seeding_in_white_noise"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"poli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, 268, 292, 293, 296], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 291], "abstract_black_box": [2, 3, 4], "abstractblackbox": 3, "negativeblackbox": 4, "abstract_problem_factori": [5, 6, 7], "abstractproblemfactori": 6, "metaproblemfactori": 7, "chemistri": [8, 9, 10, 38, 39, 40, 41, 42, 43, 44, 242, 243], "tdc_black_box": [9, 10], "tdcblackbox": 10, "except": [11, 12, 13], "budgetexhaustedexcept": 12, "poliexcept": 13, "multi_objective_black_box": [14, 15], "multiobjectiveblackbox": 15, "problem_setup_inform": [16, 17], "problemsetupinform": 17, "protein": [18, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 244, 245, 246, 247, 268, 270, 272, 276, 277, 278, 289], "foldx_black_box": [19, 20], "foldxblackbox": 20, "registri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 296], "delete_observer_run_script": 22, "delete_problem": 23, "get_problem_factori": 24, "get_problem": 25, "register_problem": 26, "register_problem_from_repositori": 27, "set_observ": 28, "set_observer_run_script": 29, "util": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 259, 260, 261], "abstract_observ": [31, 32], "abstractobserv": 32, "align": [33, 34], "is_align": 34, "batch": [35, 36, 37, 290], "batch_input": [36, 37], "string_to_molecul": [39, 40, 41, 42, 43, 44], "selfies_to_molecul": 40, "smiles_to_molecul": 41, "strings_to_molecul": 42, "translate_selfies_to_smil": 43, "translate_smiles_to_selfi": 44, "external_observ": [45, 46], "externalobserv": 46, "file": [47, 48, 49, 50, 51, 52, 270, 275, 277, 278], "download_files_from_github": [48, 49, 50], "download_file_from_github_repositori": 49, "get_sha_for_tag": 50, "integr": [51, 52], "compute_md5_from_filepath": 52, "inter_process_commun": [53, 54, 55, 56], "process_wrapp": [54, 55, 56], "processwrapp": 55, "get_connect": 56, "objective_manag": [57, 58, 59, 60], "make_run_script": [58, 59, 60], "make_observer_script": 59, "observer_wrapp": [61, 62], "start_observer_process": 62, "default": 64, "foldx": [65, 66, 269, 276, 277, 278], "foldxinterfac": 66, "mutat": [67, 68, 69, 70, 270, 289, 303], "edits_between_str": 68, "find_closest_wildtype_pdb_file_to_mut": 69, "mutations_from_wildtype_residues_and_mut": 70, "pdb_pars": [71, 72, 73, 74], "parse_pdb_as_residue_str": 72, "parse_pdb_as_residu": 73, "parse_pdb_as_structur": 74, "rasp": [75, 76, 77, 78, 79, 80, 81, 82, 83, 170, 171], "inner_rasp": [76, 77, 78, 79, 80, 81], "prismdata": 77, "cavity_model": 78, "helper": 79, "run_pipelin": 80, "visual": 81, "load_model": 82, "rasp_interfac": 83, "seed": [84, 85, 86, 87], "seed_numpi": 86, "seed_python": 87, "object": [88, 89, 90, 91, 268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "dynamically_instanti": 89, "parse_factory_kwarg": 90, "run": [91, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 288, 294, 297, 298, 301, 302, 303, 304], "objective_factori": [92, 93, 94, 95, 96], "externalblackbox": 93, "creat": [94, 106, 275, 286, 293, 296], "load_config": 95, "start": [96, 267, 268], "objective_repositori": [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "aloha": [98, 99, 100, 101, 273, 291, 295], "regist": [99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 123, 124, 125, 127, 128, 129, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 217, 218, 219, 223, 224, 225, 265, 288, 289, 295, 296], "alohablackbox": 100, "alohaproblemfactori": 101, "dockstr": [102, 103, 104, 105, 274], "dockstringblackbox": 104, "dockstringproblemfactori": 105, "drd3_dock": [106, 107, 108, 109], "prerequisit": [106, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 295], "instal": [106, 265, 267, 269, 275, 276], "autodock": [106, 275], "vina": [106, 275], "adfr": [106, 275], "suit": [106, 275], "poli__lambo": [106, 275], "environ": [106, 265, 275, 276, 279, 296], "drd3blackbox": 108, "drd3problemfactori": 109, "foldx_rfp_lambo": [110, 111, 112, 113, 114, 115], "config": 112, "rfpwrapper": 113, "rfpwrapperfactori": 114, "get_config": 115, "foldx_sasa": [116, 117, 118, 119, 120], "foldx_util": [117, 122], "foldxsasablackbox": 119, "foldxsasaproblemfactori": 120, "foldx_stabl": [121, 122, 123, 124, 125], "foldxstabilityblackbox": 124, "foldxstabilityproblemfactori": 125, "foldx_stability_and_sasa": [126, 127, 128, 129], "foldxstabilityandsasablackbox": 128, "foldxstabilityandsasaproblemfactori": 129, "gfp_cba": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161], "abstract_vae_wrapp": [131, 132], "abstractvaewrapp": 132, "cbas_alphabet_preprocess": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "convert_aas_to_idx_arrai": 134, "convert_idx_array_to_aa": 135, "convert_mutations_to_sequ": 136, "get_argmax": 137, "get_balaji_predict": 138, "get_experimental_x_i": 139, "get_gfp_x_y_aa": 140, "get_gfp_base_seq": 141, "get_sampl": 142, "one_hot_encode_aa": 143, "one_hot_encode_aa_arrai": 144, "one_hot_encode_dna": 145, "partition_data": 146, "read_gfp_data": 147, "cbas_wrapp": [148, 149, 150, 151], "cbasvaewrapp": 149, "convertedtorchvaedecod": 150, "convertedtorchvaeencod": 151, "gfp_gp": 152, "make_va": [153, 154, 155, 156, 157, 158], "baseva": 154, "simpleva": 155, "build_va": 156, "identity_loss": 157, "summed_categorical_crossentropi": 158, "gfpcbasblackbox": 160, "gfpcbasproblemfactori": 161, "gfp_select": [162, 163, 164, 165], "gfpblackbox": 164, "gfpselectionproblemfactori": 165, "penalized_logp_lambo": [166, 167, 168, 169], "penalizedlogplamboblackbox": 168, "penalizedlogplamboproblemfactori": 169, "rdkit_logp": [172, 173, 174, 175], "logpblackbox": 174, "logpproblemfactori": 175, "rdkit_q": [176, 177, 178, 179], "qedblackbox": 178, "qedproblemfactori": 179, "rfp_foldx_stability_and_sasa": [180, 181], "sa_tdc": [182, 183, 184, 185], "sablackbox": 184, "saproblemfactori": 185, "super_mario_bro": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "level_util": [187, 188, 189, 190, 191, 192, 193, 194, 195], "add_padding_to_level": 188, "clean_level": 189, "level_to_arrai": 190, "level_to_list": 191, "levels_to_onehot": 192, "onehot_to_level": 193, "tensor_to_sim_level": 194, "vector": 195, "model": [196, 197, 198], "vaemario": 197, "load_example_model": 198, "toy_continuous_problem": [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 251, 252, 253, 254], "definit": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "ackley_function_01": 201, "alpine_01": 202, "alpine_02": 203, "bent_cigar": 204, "brown": 205, "camelback_2d": 206, "chung_reynold": 207, "cosine_mixtur": 208, "cross_in_trai": 209, "deb_01": 210, "deb_02": 211, "deflected_corrugated_spr": 212, "easom": 213, "egg_hold": 214, "shifted_spher": 215, "styblinski_tang": 216, "toycontinuousblackbox": 218, "toycontinuousproblemfactori": 219, "toycontinuousproblem": 221, "white_nois": [222, 223, 224, 225], "whitenoiseblackbox": 224, "whitenoiseproblemfactori": 225, "registered_object": 226, "test": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 265, 267], "docs_exampl": [228, 229, 230, 231, 232, 233, 234, 235], "test_objective_funct": [229, 230, 231, 232, 233, 234, 235], "test_aloha_exampl": 230, "test_logp_exampl": 231, "test_logp_example_using_str": 232, "test_qed_exampl": 233, "test_qed_example_using_str": 234, "test_white_noise_exampl": 235, "basic_object": [237, 238, 239, 240, 241], "test_basic_object": [238, 239, 240], "test_registering_aloha": 239, "test_registering_white_nois": 240, "test_budget_exhaust": 241, "test_chemistry_object": 243, "test_foldx": 245, "test_foldx_rfp_lambo": 246, "test_rasp": 247, "test_basic_loop_without_cr": 248, "test_force_isol": 249, "test_passing_array_of_str": 250, "test_embedding_problems_into_higher_dim": [252, 253], "test_embed_camelback_into_high_dimens": 253, "test_instancing_of_toy_continuous_problem": 254, "test_minimal_working_exampl": [255, 256], "test_seed": [257, 258], "test_seeding_in_white_nois": 258, "test_foldx_interfac": 260, "test_protein_util": 261, "api": 263, "document": 263, "refer": [264, 304], "ad": [265, 266], "new": [265, 266], "problem": [265, 266, 268, 272, 286, 289, 290, 295, 296], "repositori": 265, "The": [265, 291, 293], "structur": 265, "A": 265, "gener": 265, "py": 265, "yml": [265, 275], "why": [265, 296], "conda": [265, 267, 296], "your": [265, 267, 293, 296], "option": 265, "make": [265, 275], "avail": 265, "depend": [265, 294, 296], "ar": [265, 270], "met": 265, "submit": [265, 266], "pull": [265, 266], "request": [265, 266], "optim": [266, 268, 283, 289, 293, 295, 297, 300, 301, 304], "baselin": [266, 267], "an": [266, 290, 291, 295, 296], "abstract": [266, 290, 291], "solver": [266, 268, 289, 290, 293, 295], "exampl": [266, 290, 291, 296], "randommut": [266, 289, 290], "get": [267, 268], "first": 267, "script": 267, "us": [267, 268, 275, 276, 277, 278, 279, 282, 289, 293], "librari": 268, "discret": [268, 296, 302], "function": [268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "black": [268, 294, 296], "box": [268, 294, 296], "toi": [268, 272, 286], "small": [268, 272], "molecul": [268, 272], "algorithm": [268, 299, 304], "cite": 268, "other": [268, 270, 272, 279], "relev": 268, "work": [268, 292], "contribut": 268, "comput": 270, "energi": 270, "singl": 270, "python": [270, 276, 279, 296], "set": [270, 275], "up": 270, "folder": [270, 275], "download": [270, 275], "pdb": 270, "repair": [270, 277, 278], "what": [270, 290, 293], "pars": 270, "wildtyp": 270, "defin": [270, 289, 290, 291, 296], "s": [270, 296], "sasa": [270, 276], "score": 270, "conclus": [270, 291, 293, 294, 295, 296], "rapid": 271, "stabil": [271, 276, 278, 289], "predict": 271, "how": [271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 292, 297, 298, 301, 302, 303, 304], "warn": 271, "further": 271, "read": [271, 294], "all": [272, 275, 291], "about": [273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 290, 297, 298, 301, 302, 303, 304], "drd3": 275, "dock": 275, "tdc": [275, 282], "add": [275, 296], "binari": 275, "path": [275, 296], "prepare_receptor": 275, "from": 275, "sure": 275, "you": [275, 277, 278, 294], "re": 275, "rfp": 276, "lambo": [276, 279], "we": [276, 277, 278], "can": [276, 277, 278], "automat": 276, "solvent": 277, "access": [277, 282], "penal": 279, "logp": [279, 280], "keyword": 279, "argument": 279, "log": [280, 291], "solubl": 280, "quantit": 281, "estim": 281, "druglik": 281, "qed": 281, "synthet": 282, "jump": 283, "super": 283, "mario": 283, "bro": 283, "therapeut": 284, "data": 284, "common": 284, "oracl": 284, "name": 285, "see": [285, 297, 302], "also": 285, "continu": 286, "low": 286, "intrins": 286, "dimension": 286, "white": 287, "nois": 287, "observ": [288, 291], "isol": [288, 294], "process": 288, "random": [289, 303], "mroug": 289, "check": 289, "result": 289, "poli_baselin": 290, "candid": 290, "want": 291, "more": [291, 294, 296, 297, 302], "complex": 291, "instanc": [291, 295], "simpl": 291, "initi": 291, "put": 291, "togeth": 291, "coupl": 291, "queri": 291, "dive": 292, "deeper": 292, "doe": 292, "under": 292, "hood": 292, "content": [292, 293], "usual": 293, "develop": 293, "loop": 293, "identifi": 293, "own": 293, "when": 294, "have": 294, "right": 294, "Is": 295, "factori": 296, "entir": 296, "need": 296, "where": 296, "thi": 296, "call": 296, "bayesian": [297, 300, 301], "cma": 298, "es": 298, "graph": 299, "genet": 299, "latent": 300, "space": 300, "line": 301, "nsga": 302, "2": 302, "templat": 304}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["_autosummary/poli", "_autosummary/poli.core", "_autosummary/poli.core.abstract_black_box", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox", "_autosummary/poli.core.abstract_problem_factory", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory", "_autosummary/poli.core.chemistry", "_autosummary/poli.core.chemistry.tdc_black_box", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox", "_autosummary/poli.core.exceptions", "_autosummary/poli.core.exceptions.BudgetExhaustedException", "_autosummary/poli.core.exceptions.PoliException", "_autosummary/poli.core.multi_objective_black_box", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "_autosummary/poli.core.problem_setup_information", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation", "_autosummary/poli.core.proteins", "_autosummary/poli.core.proteins.foldx_black_box", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox", "_autosummary/poli.core.registry", "_autosummary/poli.core.registry.delete_observer_run_script", "_autosummary/poli.core.registry.delete_problem", "_autosummary/poli.core.registry.get_problem_factories", "_autosummary/poli.core.registry.get_problems", "_autosummary/poli.core.registry.register_problem", "_autosummary/poli.core.registry.register_problem_from_repository", "_autosummary/poli.core.registry.set_observer", "_autosummary/poli.core.registry.set_observer_run_script", "_autosummary/poli.core.util", "_autosummary/poli.core.util.abstract_observer", "_autosummary/poli.core.util.abstract_observer.AbstractObserver", "_autosummary/poli.core.util.alignment", "_autosummary/poli.core.util.alignment.is_aligned", "_autosummary/poli.core.util.batch", "_autosummary/poli.core.util.batch.batch_input", "_autosummary/poli.core.util.batch.batch_input.batched", "_autosummary/poli.core.util.chemistry", "_autosummary/poli.core.util.chemistry.string_to_molecule", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "_autosummary/poli.core.util.external_observer", "_autosummary/poli.core.util.external_observer.ExternalObserver", "_autosummary/poli.core.util.files", "_autosummary/poli.core.util.files.download_files_from_github", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag", "_autosummary/poli.core.util.files.integrity", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath", "_autosummary/poli.core.util.inter_process_communication", "_autosummary/poli.core.util.inter_process_communication.process_wrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection", "_autosummary/poli.core.util.objective_management", "_autosummary/poli.core.util.objective_management.make_run_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script", "_autosummary/poli.core.util.observer_wrapper", "_autosummary/poli.core.util.observer_wrapper.start_observer_process", "_autosummary/poli.core.util.proteins", "_autosummary/poli.core.util.proteins.defaults", "_autosummary/poli.core.util.proteins.foldx", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface", "_autosummary/poli.core.util.proteins.mutations", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "_autosummary/poli.core.util.proteins.pdb_parsing", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "_autosummary/poli.core.util.proteins.rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization", "_autosummary/poli.core.util.proteins.rasp.load_models", "_autosummary/poli.core.util.proteins.rasp.rasp_interface", "_autosummary/poli.core.util.seeding", "_autosummary/poli.core.util.seeding.seeding", "_autosummary/poli.core.util.seeding.seeding.seed_numpy", "_autosummary/poli.core.util.seeding.seeding.seed_python", "_autosummary/poli.objective", "_autosummary/poli.objective.dynamically_instantiate", "_autosummary/poli.objective.parse_factory_kwargs", "_autosummary/poli.objective.run", "_autosummary/poli.objective_factory", "_autosummary/poli.objective_factory.ExternalBlackBox", "_autosummary/poli.objective_factory.create", "_autosummary/poli.objective_factory.load_config", "_autosummary/poli.objective_factory.start", "_autosummary/poli.objective_repository", "_autosummary/poli.objective_repository.aloha", "_autosummary/poli.objective_repository.aloha.register", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory", "_autosummary/poli.objective_repository.dockstring", "_autosummary/poli.objective_repository.dockstring.register", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory", "_autosummary/poli.objective_repository.drd3_docking", "_autosummary/poli.objective_repository.drd3_docking.register", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config", "_autosummary/poli.objective_repository.foldx_sasa", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils", "_autosummary/poli.objective_repository.foldx_sasa.register", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "_autosummary/poli.objective_repository.foldx_stability", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils", "_autosummary/poli.objective_repository.foldx_stability.register", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "_autosummary/poli.objective_repository.foldx_stability_and_sasa", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "_autosummary/poli.objective_repository.gfp_cbas", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp", "_autosummary/poli.objective_repository.gfp_cbas.make_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "_autosummary/poli.objective_repository.gfp_cbas.register", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "_autosummary/poli.objective_repository.gfp_select", "_autosummary/poli.objective_repository.gfp_select.register", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "_autosummary/poli.objective_repository.penalized_logp_lambo", "_autosummary/poli.objective_repository.penalized_logp_lambo.register", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "_autosummary/poli.objective_repository.rasp", "_autosummary/poli.objective_repository.rasp.register", "_autosummary/poli.objective_repository.rdkit_logp", "_autosummary/poli.objective_repository.rdkit_logp.register", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "_autosummary/poli.objective_repository.rdkit_qed", "_autosummary/poli.objective_repository.rdkit_qed.register", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.sa_tdc", "_autosummary/poli.objective_repository.sa_tdc.register", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory", "_autosummary/poli.objective_repository.super_mario_bros", "_autosummary/poli.objective_repository.super_mario_bros.level_utils", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized", "_autosummary/poli.objective_repository.super_mario_bros.model", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model", "_autosummary/poli.objective_repository.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "_autosummary/poli.objective_repository.toy_continuous_problem.register", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "_autosummary/poli.objective_repository.white_noise", "_autosummary/poli.objective_repository.white_noise.register", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "_autosummary/poli.registered_objectives", "_autosummary/poli.tests", "_autosummary/poli.tests.docs_examples", "_autosummary/poli.tests.docs_examples.test_objective_functions", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "_autosummary/poli.tests.registry", "_autosummary/poli.tests.registry.basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion", "_autosummary/poli.tests.registry.chemistry", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives", "_autosummary/poli.tests.registry.proteins", "_autosummary/poli.tests.registry.proteins.test_foldx", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo", "_autosummary/poli.tests.registry.proteins.test_rasp", "_autosummary/poli.tests.registry.test_basic_loop_without_create", "_autosummary/poli.tests.registry.test_force_isolation", "_autosummary/poli.tests.registry.test_passing_array_of_strings", "_autosummary/poli.tests.registry.toy_continuous_problems", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "_autosummary/poli.tests.test_minimal_working_example", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example", "_autosummary/poli.tests.test_seeding", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise", "_autosummary/poli.tests.util", "_autosummary/poli.tests.util.test_foldx_interface", "_autosummary/poli.tests.util.test_protein_utilities", "_templates/custom-module-template", "api", "bibliography", "contributing/a_new_problem", "contributing/a_new_solver", "getting_started/getting_started", "index", "understanding_foldx/00-installing-foldx", "understanding_foldx/01-single-mutation-using-foldx/index", "using_poli/objective_repository/RaSP", "using_poli/objective_repository/all_objectives", "using_poli/objective_repository/aloha", "using_poli/objective_repository/dockstring", "using_poli/objective_repository/drd3_docking", "using_poli/objective_repository/foldx_rfp_lambo", "using_poli/objective_repository/foldx_sasa", "using_poli/objective_repository/foldx_stability", "using_poli/objective_repository/penalized_logp_lambo", "using_poli/objective_repository/rdkit_logp", "using_poli/objective_repository/rdkit_qed", "using_poli/objective_repository/sa_tdc", "using_poli/objective_repository/super_mario_bros", "using_poli/objective_repository/tdc_oracles", "using_poli/objective_repository/template", "using_poli/objective_repository/toy_continuous_problems", "using_poli/objective_repository/white_noise", "using_poli/observers/registering_an_observer", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability", "using_poli/the_basics/defining_a_problem_solver", "using_poli/the_basics/defining_an_observer", "using_poli/the_basics/diving_deeper", "using_poli/the_basics/intro_to_poli", "using_poli/the_basics/isolation", "using_poli/the_basics/optimizing_an_objective_function", "using_poli/the_basics/registering_an_objective_function", "using_poli_baselines/bayesian_optimization", "using_poli_baselines/cma_es", "using_poli_baselines/graph_ga", "using_poli_baselines/latent_space_bo", "using_poli_baselines/line_bayesian_optimization", "using_poli_baselines/nsga_2", "using_poli_baselines/random_mutations", "using_poli_baselines/template"], "filenames": ["_autosummary/poli.rst", "_autosummary/poli.core.rst", "_autosummary/poli.core.abstract_black_box.rst", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox.rst", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox.rst", "_autosummary/poli.core.abstract_problem_factory.rst", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory.rst", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.rst", "_autosummary/poli.core.chemistry.rst", "_autosummary/poli.core.chemistry.tdc_black_box.rst", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox.rst", "_autosummary/poli.core.exceptions.rst", "_autosummary/poli.core.exceptions.BudgetExhaustedException.rst", "_autosummary/poli.core.exceptions.PoliException.rst", "_autosummary/poli.core.multi_objective_black_box.rst", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.rst", "_autosummary/poli.core.problem_setup_information.rst", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.rst", "_autosummary/poli.core.proteins.rst", "_autosummary/poli.core.proteins.foldx_black_box.rst", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.rst", "_autosummary/poli.core.registry.rst", "_autosummary/poli.core.registry.delete_observer_run_script.rst", "_autosummary/poli.core.registry.delete_problem.rst", "_autosummary/poli.core.registry.get_problem_factories.rst", "_autosummary/poli.core.registry.get_problems.rst", "_autosummary/poli.core.registry.register_problem.rst", "_autosummary/poli.core.registry.register_problem_from_repository.rst", "_autosummary/poli.core.registry.set_observer.rst", "_autosummary/poli.core.registry.set_observer_run_script.rst", "_autosummary/poli.core.util.rst", "_autosummary/poli.core.util.abstract_observer.rst", "_autosummary/poli.core.util.abstract_observer.AbstractObserver.rst", "_autosummary/poli.core.util.alignment.rst", "_autosummary/poli.core.util.alignment.is_aligned.rst", "_autosummary/poli.core.util.batch.rst", "_autosummary/poli.core.util.batch.batch_input.rst", "_autosummary/poli.core.util.batch.batch_input.batched.rst", "_autosummary/poli.core.util.chemistry.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies.rst", "_autosummary/poli.core.util.external_observer.rst", "_autosummary/poli.core.util.external_observer.ExternalObserver.rst", "_autosummary/poli.core.util.files.rst", "_autosummary/poli.core.util.files.download_files_from_github.rst", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.rst", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.rst", "_autosummary/poli.core.util.files.integrity.rst", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath.rst", "_autosummary/poli.core.util.inter_process_communication.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.rst", "_autosummary/poli.core.util.objective_management.rst", "_autosummary/poli.core.util.objective_management.make_run_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.rst", "_autosummary/poli.core.util.observer_wrapper.rst", "_autosummary/poli.core.util.observer_wrapper.start_observer_process.rst", "_autosummary/poli.core.util.proteins.rst", "_autosummary/poli.core.util.proteins.defaults.rst", "_autosummary/poli.core.util.proteins.foldx.rst", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface.rst", "_autosummary/poli.core.util.proteins.mutations.rst", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings.rst", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant.rst", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure.rst", "_autosummary/poli.core.util.proteins.rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization.rst", "_autosummary/poli.core.util.proteins.rasp.load_models.rst", "_autosummary/poli.core.util.proteins.rasp.rasp_interface.rst", "_autosummary/poli.core.util.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.seed_numpy.rst", "_autosummary/poli.core.util.seeding.seeding.seed_python.rst", "_autosummary/poli.objective.rst", "_autosummary/poli.objective.dynamically_instantiate.rst", "_autosummary/poli.objective.parse_factory_kwargs.rst", "_autosummary/poli.objective.run.rst", "_autosummary/poli.objective_factory.rst", "_autosummary/poli.objective_factory.ExternalBlackBox.rst", "_autosummary/poli.objective_factory.create.rst", "_autosummary/poli.objective_factory.load_config.rst", "_autosummary/poli.objective_factory.start.rst", "_autosummary/poli.objective_repository.rst", "_autosummary/poli.objective_repository.aloha.rst", "_autosummary/poli.objective_repository.aloha.register.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.rst", "_autosummary/poli.objective_repository.dockstring.rst", "_autosummary/poli.objective_repository.dockstring.register.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.rst", "_autosummary/poli.objective_repository.drd3_docking.rst", "_autosummary/poli.objective_repository.drd3_docking.register.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.rst", "_autosummary/poli.objective_repository.foldx_sasa.rst", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability.rst", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_stability.register.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_cbas.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_select.rst", "_autosummary/poli.objective_repository.gfp_select.register.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.rst", "_autosummary/poli.objective_repository.rasp.rst", "_autosummary/poli.objective_repository.rasp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.rst", "_autosummary/poli.objective_repository.rdkit_qed.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.sa_tdc.rst", "_autosummary/poli.objective_repository.sa_tdc.register.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory.rst", "_autosummary/poli.objective_repository.super_mario_bros.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem.rst", "_autosummary/poli.objective_repository.white_noise.rst", "_autosummary/poli.objective_repository.white_noise.register.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory.rst", "_autosummary/poli.registered_objectives.rst", "_autosummary/poli.tests.rst", "_autosummary/poli.tests.docs_examples.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example.rst", "_autosummary/poli.tests.registry.rst", "_autosummary/poli.tests.registry.basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise.rst", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion.rst", "_autosummary/poli.tests.registry.chemistry.rst", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives.rst", "_autosummary/poli.tests.registry.proteins.rst", "_autosummary/poli.tests.registry.proteins.test_foldx.rst", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo.rst", "_autosummary/poli.tests.registry.proteins.test_rasp.rst", "_autosummary/poli.tests.registry.test_basic_loop_without_create.rst", "_autosummary/poli.tests.registry.test_force_isolation.rst", "_autosummary/poli.tests.registry.test_passing_array_of_strings.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems.rst", "_autosummary/poli.tests.test_minimal_working_example.rst", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.rst", "_autosummary/poli.tests.test_seeding.rst", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise.rst", "_autosummary/poli.tests.util.rst", "_autosummary/poli.tests.util.test_foldx_interface.rst", "_autosummary/poli.tests.util.test_protein_utilities.rst", "_templates/custom-module-template.rst", "api.rst", "bibliography.md", "contributing/a_new_problem.md", "contributing/a_new_solver.md", "getting_started/getting_started.md", "index.md", "understanding_foldx/00-installing-foldx.md", "understanding_foldx/01-single-mutation-using-foldx/index.ipynb", "using_poli/objective_repository/RaSP.md", "using_poli/objective_repository/all_objectives.md", "using_poli/objective_repository/aloha.md", "using_poli/objective_repository/dockstring.md", "using_poli/objective_repository/drd3_docking.md", "using_poli/objective_repository/foldx_rfp_lambo.md", "using_poli/objective_repository/foldx_sasa.md", "using_poli/objective_repository/foldx_stability.md", "using_poli/objective_repository/penalized_logp_lambo.md", "using_poli/objective_repository/rdkit_logp.md", "using_poli/objective_repository/rdkit_qed.md", "using_poli/objective_repository/sa_tdc.md", "using_poli/objective_repository/super_mario_bros.md", "using_poli/objective_repository/tdc_oracles.md", "using_poli/objective_repository/template.md", "using_poli/objective_repository/toy_continuous_problems.md", "using_poli/objective_repository/white_noise.md", "using_poli/observers/registering_an_observer.md", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb", "using_poli/the_basics/defining_a_problem_solver.md", "using_poli/the_basics/defining_an_observer.ipynb", "using_poli/the_basics/diving_deeper.md", "using_poli/the_basics/intro_to_poli.ipynb", "using_poli/the_basics/isolation.ipynb", "using_poli/the_basics/optimizing_an_objective_function.md", "using_poli/the_basics/registering_an_objective_function.md", "using_poli_baselines/bayesian_optimization.md", "using_poli_baselines/cma_es.md", "using_poli_baselines/graph_ga.md", "using_poli_baselines/latent_space_bo.md", "using_poli_baselines/line_bayesian_optimization.md", "using_poli_baselines/nsga_2.md", "using_poli_baselines/random_mutations.md", "using_poli_baselines/template.md"], "titles": ["poli", "poli.core", "poli.core.abstract_black_box", "poli.core.abstract_black_box.AbstractBlackBox", "poli.core.abstract_black_box.NegativeBlackBox", "poli.core.abstract_problem_factory", "poli.core.abstract_problem_factory.AbstractProblemFactory", "poli.core.abstract_problem_factory.MetaProblemFactory", "poli.core.chemistry", "poli.core.chemistry.tdc_black_box", "poli.core.chemistry.tdc_black_box.TDCBlackBox", "poli.core.exceptions", "poli.core.exceptions.BudgetExhaustedException", "poli.core.exceptions.PoliException", "poli.core.multi_objective_black_box", "poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "poli.core.problem_setup_information", "poli.core.problem_setup_information.ProblemSetupInformation", "poli.core.proteins", "poli.core.proteins.foldx_black_box", "poli.core.proteins.foldx_black_box.FoldxBlackBox", "poli.core.registry", "poli.core.registry.delete_observer_run_script", "poli.core.registry.delete_problem", "poli.core.registry.get_problem_factories", "poli.core.registry.get_problems", "poli.core.registry.register_problem", "poli.core.registry.register_problem_from_repository", "poli.core.registry.set_observer", "poli.core.registry.set_observer_run_script", "poli.core.util", "poli.core.util.abstract_observer", "poli.core.util.abstract_observer.AbstractObserver", "poli.core.util.alignment", "poli.core.util.alignment.is_aligned", "poli.core.util.batch", "poli.core.util.batch.batch_input", "poli.core.util.batch.batch_input.batched", "poli.core.util.chemistry", "poli.core.util.chemistry.string_to_molecule", "poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "poli.core.util.external_observer", "poli.core.util.external_observer.ExternalObserver", "poli.core.util.files", "poli.core.util.files.download_files_from_github", "poli.core.util.files.download_files_from_github.download_file_from_github_repository", "poli.core.util.files.download_files_from_github.get_sha_for_tag", "poli.core.util.files.integrity", "poli.core.util.files.integrity.compute_md5_from_filepath", "poli.core.util.inter_process_communication", "poli.core.util.inter_process_communication.process_wrapper", "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "poli.core.util.inter_process_communication.process_wrapper.get_connection", "poli.core.util.objective_management", "poli.core.util.objective_management.make_run_script", "poli.core.util.objective_management.make_run_script.make_observer_script", "poli.core.util.objective_management.make_run_script.make_run_script", "poli.core.util.observer_wrapper", "poli.core.util.observer_wrapper.start_observer_process", "poli.core.util.proteins", "poli.core.util.proteins.defaults", "poli.core.util.proteins.foldx", "poli.core.util.proteins.foldx.FoldxInterface", "poli.core.util.proteins.mutations", "poli.core.util.proteins.mutations.edits_between_strings", "poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "poli.core.util.proteins.pdb_parsing", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "poli.core.util.proteins.rasp", "poli.core.util.proteins.rasp.inner_rasp", "poli.core.util.proteins.rasp.inner_rasp.PrismData", "poli.core.util.proteins.rasp.inner_rasp.cavity_model", "poli.core.util.proteins.rasp.inner_rasp.helpers", "poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "poli.core.util.proteins.rasp.inner_rasp.visualization", "poli.core.util.proteins.rasp.load_models", "poli.core.util.proteins.rasp.rasp_interface", "poli.core.util.seeding", "poli.core.util.seeding.seeding", "poli.core.util.seeding.seeding.seed_numpy", "poli.core.util.seeding.seeding.seed_python", "poli.objective", "poli.objective.dynamically_instantiate", "poli.objective.parse_factory_kwargs", "poli.objective.run", "poli.objective_factory", "poli.objective_factory.ExternalBlackBox", "poli.objective_factory.create", "poli.objective_factory.load_config", "poli.objective_factory.start", "poli.objective_repository", "poli.objective_repository.aloha", "poli.objective_repository.aloha.register", "poli.objective_repository.aloha.register.AlohaBlackBox", "poli.objective_repository.aloha.register.AlohaProblemFactory", "poli.objective_repository.dockstring", "poli.objective_repository.dockstring.register", "poli.objective_repository.dockstring.register.DockstringBlackBox", "poli.objective_repository.dockstring.register.DockstringProblemFactory", "poli.objective_repository.drd3_docking", "poli.objective_repository.drd3_docking.register", "poli.objective_repository.drd3_docking.register.DRD3BlackBox", "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "poli.objective_repository.foldx_rfp_lambo", "poli.objective_repository.foldx_rfp_lambo.register", "poli.objective_repository.foldx_rfp_lambo.register.Config", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "poli.objective_repository.foldx_rfp_lambo.register.get_config", "poli.objective_repository.foldx_sasa", "poli.objective_repository.foldx_sasa.foldx_utils", "poli.objective_repository.foldx_sasa.register", "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "poli.objective_repository.foldx_stability", "poli.objective_repository.foldx_stability.foldx_utils", "poli.objective_repository.foldx_stability.register", "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "poli.objective_repository.foldx_stability_and_sasa", "poli.objective_repository.foldx_stability_and_sasa.register", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "poli.objective_repository.gfp_cbas", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "poli.objective_repository.gfp_cbas.cbas_wrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "poli.objective_repository.gfp_cbas.gfp_gp", "poli.objective_repository.gfp_cbas.make_vae", "poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "poli.objective_repository.gfp_cbas.make_vae.build_vae", "poli.objective_repository.gfp_cbas.make_vae.identity_loss", "poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "poli.objective_repository.gfp_cbas.register", "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "poli.objective_repository.gfp_select", "poli.objective_repository.gfp_select.register", "poli.objective_repository.gfp_select.register.GFPBlackBox", "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "poli.objective_repository.penalized_logp_lambo", "poli.objective_repository.penalized_logp_lambo.register", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "poli.objective_repository.rasp", "poli.objective_repository.rasp.register", "poli.objective_repository.rdkit_logp", "poli.objective_repository.rdkit_logp.register", "poli.objective_repository.rdkit_logp.register.LogPBlackBox", "poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "poli.objective_repository.rdkit_qed", "poli.objective_repository.rdkit_qed.register", "poli.objective_repository.rdkit_qed.register.QEDBlackBox", "poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "poli.objective_repository.rfp_foldx_stability_and_sasa", "poli.objective_repository.rfp_foldx_stability_and_sasa.register", "poli.objective_repository.sa_tdc", "poli.objective_repository.sa_tdc.register", "poli.objective_repository.sa_tdc.register.SABlackBox", "poli.objective_repository.sa_tdc.register.SAProblemFactory", "poli.objective_repository.super_mario_bros", "poli.objective_repository.super_mario_bros.level_utils", "poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "poli.objective_repository.super_mario_bros.level_utils.clean_level", "poli.objective_repository.super_mario_bros.level_utils.level_to_array", "poli.objective_repository.super_mario_bros.level_utils.level_to_list", "poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "poli.objective_repository.super_mario_bros.level_utils.vectorized", "poli.objective_repository.super_mario_bros.model", "poli.objective_repository.super_mario_bros.model.VAEMario", "poli.objective_repository.super_mario_bros.model.load_example_model", "poli.objective_repository.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.definitions", "poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "poli.objective_repository.toy_continuous_problem.definitions.brown", "poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "poli.objective_repository.toy_continuous_problem.definitions.deb_01", "poli.objective_repository.toy_continuous_problem.definitions.deb_02", "poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "poli.objective_repository.toy_continuous_problem.definitions.easom", "poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "poli.objective_repository.toy_continuous_problem.register", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "poli.objective_repository.white_noise", "poli.objective_repository.white_noise.register", "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "poli.registered_objectives", "poli.tests", "poli.tests.docs_examples", "poli.tests.docs_examples.test_objective_functions", "poli.tests.docs_examples.test_objective_functions.test_aloha_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_qed_example", "poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "poli.tests.registry", "poli.tests.registry.basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "poli.tests.registry.basic_objectives.test_budget_exhaustion", "poli.tests.registry.chemistry", "poli.tests.registry.chemistry.test_chemistry_objectives", "poli.tests.registry.proteins", "poli.tests.registry.proteins.test_foldx", "poli.tests.registry.proteins.test_foldx_rfp_lambo", "poli.tests.registry.proteins.test_rasp", "poli.tests.registry.test_basic_loop_without_create", "poli.tests.registry.test_force_isolation", "poli.tests.registry.test_passing_array_of_strings", "poli.tests.registry.toy_continuous_problems", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "poli.tests.test_minimal_working_example", "poli.tests.test_minimal_working_example.test_minimal_working_example", "poli.tests.test_seeding", "poli.tests.test_seeding.test_seeding_in_white_noise", "poli.tests.util", "poli.tests.util.test_foldx_interface", "poli.tests.util.test_protein_utilities", "<no title>", "API documentation for poli", "References", "Adding a new problem to the repository", "Adding a new optimizer to poli-baselines", "Getting started", "poli \ud83e\uddea: a library of discrete objective functions", "Installing foldx", "Computing the energy of a protein and a single mutation", "Rapid Stability Predictions", "All objective functions", "Aloha objective function", "dockstring", "DRD3 docking (using TDC)", "Protein (RFP) stability and SASA (using foldx,lambo)", "Protein solvent accessibility (using foldx)", "Protein stability (using foldx)", "Penalized logP (using lambo)", "Log-solubility (logP)", "Quantitative Estimate of Druglikeness (QED)", "Synthetic Accessibility (using TDC)", "Optimizing jumps in Super Mario Bros", "Therapeutics Data Commons\u2019 oracles", "Objective function name", "Toy continuous objective functions", "White Noise objective function", "Registering and running observers in isolated processes", "Optimizing protein stability using random mutations", "Defining a problem solver in poli_baselines", "Defining an observer", "Diving deeper: how does poli work under the hood?", "What is poli?", "Isolating black box objective functions", "Optimizing an objective function", "Registering an objective function in poli", "Bayesian Optimization", "CMA-ES", "Graph Genetic Algorithms", "Latent Space Bayesian Optimization", "Line Bayesian Optimization", "Discrete NSGA-2", "Random mutations", "Template: optimization algorithm"], "terms": {"librari": [0, 32, 37, 200, 270, 291, 293, 294], "discret": [0, 99, 100, 101, 131, 266, 289, 290, 293, 295, 297], "black": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 274, 280, 281, 289, 290, 291, 293, 295, 297, 302], "box": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 273, 274, 280, 281, 286, 287, 289, 290, 291, 293, 295, 297, 302], "object": [0, 2, 3, 4, 14, 15, 17, 19, 20, 32, 46, 50, 55, 56, 59, 66, 73, 74, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 106, 111, 113, 118, 119, 121, 123, 124, 127, 128, 160, 164, 168, 173, 177, 178, 179, 181, 183, 184, 200, 216, 217, 218, 221, 223, 229, 248, 249, 252, 264, 265, 266, 267, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 302], "function": [0, 2, 3, 4, 9, 14, 15, 21, 22, 23, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 43, 44, 48, 49, 51, 53, 54, 56, 58, 61, 62, 67, 70, 71, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 100, 102, 103, 104, 106, 108, 111, 113, 115, 116, 119, 121, 124, 128, 133, 153, 160, 164, 167, 168, 173, 174, 177, 178, 179, 184, 187, 196, 199, 200, 216, 217, 218, 220, 221, 223, 224, 229, 238, 248, 249, 252, 255, 257, 264, 265, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 301, 302], "modul": [0, 1, 2, 5, 8, 18, 19, 21, 30, 33, 35, 36, 38, 47, 48, 51, 53, 54, 57, 58, 63, 64, 65, 67, 71, 84, 97, 98, 102, 103, 106, 110, 116, 121, 126, 130, 150, 152, 162, 166, 167, 170, 171, 172, 176, 180, 182, 186, 199, 222, 227, 228, 229, 236, 237, 242, 244, 248, 249, 251, 257, 259, 262, 294], "class": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 28, 31, 32, 45, 46, 54, 55, 65, 66, 92, 93, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 113, 114, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 132, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 196, 197, 217, 218, 219, 220, 221, 223, 224, 225, 265, 266, 290, 291, 296], "util": [1, 21, 115, 124, 152, 187, 291, 294, 297], "insid": [1, 11, 27, 89, 97, 106, 173, 178, 265, 267, 268, 270, 271, 274, 275, 286, 289, 293, 294, 296], "thi": [2, 4, 5, 6, 14, 15, 19, 21, 22, 23, 26, 27, 28, 29, 32, 36, 37, 43, 44, 48, 49, 51, 55, 56, 58, 62, 64, 65, 66, 67, 70, 71, 89, 90, 91, 94, 96, 99, 103, 106, 109, 118, 123, 127, 148, 152, 167, 171, 173, 177, 181, 200, 216, 217, 218, 223, 229, 248, 249, 252, 257, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301, 302, 303, 304], "implement": [2, 4, 5, 8, 9, 14, 15, 16, 18, 19, 36, 65, 100, 103, 104, 107, 119, 124, 128, 131, 148, 154, 166, 167, 171, 183, 184, 218, 266, 268, 272, 274, 276, 279, 286, 289, 290, 293, 294, 295, 296, 297, 298, 302], "abstract": [2, 3, 5, 6, 31, 32, 265, 289, 296], "from": [2, 10, 20, 23, 25, 27, 37, 43, 44, 47, 48, 49, 50, 51, 52, 65, 66, 70, 89, 90, 96, 106, 119, 124, 128, 134, 139, 142, 155, 171, 190, 193, 198, 200, 206, 215, 256, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "which": [2, 3, 7, 16, 20, 45, 52, 66, 70, 74, 95, 103, 168, 177, 179, 217, 218, 224, 265, 266, 270, 271, 274, 275, 276, 279, 282, 286, 289, 290, 291, 293, 294, 295, 296, 297], "all": [2, 92, 94, 97, 99, 100, 101, 106, 148, 200, 224, 229, 265, 266, 267, 270, 271, 273, 274, 281, 289, 290, 293, 296], "should": [2, 55, 106, 265, 266, 267, 269, 273, 275, 280, 281, 286, 287, 289, 290, 291, 294, 295, 296], "inherit": [2, 10, 15, 266, 289, 290, 291, 296], "info": [3, 4, 10, 15, 20, 93, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 266, 290, 291, 293, 294, 296, 302], "problemsetupinform": [3, 4, 10, 15, 20, 32, 93, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 276, 291, 296], "batch_siz": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 144, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294, 296, 302], "option": [3, 4, 10, 15, 17, 20, 22, 26, 27, 28, 29, 40, 42, 43, 44, 46, 49, 52, 59, 60, 66, 68, 69, 72, 73, 74, 86, 87, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 197, 218, 221, 224], "int": [3, 4, 10, 15, 17, 20, 32, 37, 56, 62, 68, 69, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 149, 160, 164, 168, 174, 178, 184, 188, 189, 192, 194, 197, 218, 221, 224, 265, 266, 290, 291, 295, 296], "none": [3, 4, 10, 15, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 59, 60, 66, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 143, 145, 147, 160, 161, 164, 168, 174, 178, 184, 197, 218, 221, 224, 265, 266, 273, 274, 280, 281, 285, 286, 287, 291, 295, 296], "parallel": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "bool": [3, 4, 10, 17, 20, 25, 26, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 140, 160, 164, 168, 174, 178, 184, 216, 218, 224, 265, 279, 295], "fals": [3, 4, 10, 17, 20, 25, 26, 27, 41, 42, 43, 44, 49, 66, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 139, 140, 146, 160, 164, 168, 174, 178, 184, 193, 218, 224, 265, 289, 291, 293, 295], "num_work": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "evaluation_budget": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "inf": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "base": [3, 6, 13, 32, 55, 106, 154, 267, 268, 270, 272, 275, 293, 296, 302], "optim": [3, 17, 32, 65, 110, 166, 167, 199, 200, 217, 220, 252, 264, 269, 270, 272, 286, 290, 291, 296, 302, 303], "problem": [3, 4, 5, 6, 10, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 34, 57, 58, 60, 93, 99, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 173, 174, 177, 178, 179, 180, 184, 185, 186, 200, 217, 218, 222, 223, 224, 252, 267, 270, 276, 291, 293, 302], "paramet": [3, 4, 6, 10, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 37, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 67, 68, 69, 70, 72, 73, 74, 86, 87, 89, 90, 91, 93, 94, 96, 100, 101, 104, 105, 108, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224], "The": [3, 4, 10, 15, 17, 19, 20, 22, 23, 26, 27, 28, 29, 37, 46, 49, 50, 52, 55, 56, 59, 60, 62, 65, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 104, 106, 108, 113, 118, 119, 123, 124, 127, 128, 154, 160, 164, 166, 173, 174, 177, 178, 179, 181, 184, 214, 215, 217, 218, 223, 224, 266, 268, 270, 271, 272, 274, 277, 278, 279, 289, 290, 294, 295, 296, 302], "setup": [3, 4, 6, 10, 15, 16, 20, 46, 62, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224, 275, 276, 279, 282, 294], "inform": [3, 4, 6, 10, 15, 16, 20, 32, 46, 62, 93, 94, 96, 100, 101, 103, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 171, 174, 178, 179, 184, 185, 218, 221, 224, 264, 265, 270, 291, 296], "provid": [3, 15, 46, 92, 109, 119, 124, 178, 268, 269, 270, 291, 293], "detail": [3, 9, 67, 90, 91, 270, 289, 293], "about": [3, 10, 27, 90, 91, 93, 94, 96, 265, 268, 269, 272, 289, 293, 296], "batch": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "size": [3, 4, 10, 15, 20, 37, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296, 298, 302], "evalu": [3, 4, 10, 14, 15, 20, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 179, 184, 218, 224, 266, 267, 279, 289, 290, 291, 294, 296], "default": [3, 4, 10, 15, 17, 20, 22, 27, 28, 29, 46, 49, 52, 66, 68, 69, 72, 73, 74, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 265, 266, 276, 277, 278, 286, 296, 297, 301], "flag": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218], "indic": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 134, 135, 160, 164, 174, 178, 184, 218, 266, 290], "whether": [3, 4, 10, 17, 20, 25, 26, 49, 72, 73, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 249, 257, 270, 279, 280, 281, 291, 293, 296], "number": [3, 4, 10, 20, 37, 56, 62, 84, 85, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 266, 272, 286, 290, 293, 295], "worker": [3, 4, 10, 20, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "us": [3, 4, 7, 10, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 51, 55, 56, 60, 64, 65, 66, 88, 89, 94, 96, 99, 100, 104, 106, 107, 108, 113, 119, 123, 124, 126, 128, 138, 139, 140, 160, 164, 166, 167, 168, 171, 172, 173, 174, 176, 177, 178, 180, 183, 184, 217, 218, 223, 248, 252, 264, 265, 266, 269, 270, 271, 272, 274, 280, 281, 286, 288, 290, 291, 294, 295, 296, 297, 298, 301, 302], "half": [3, 4, 94, 113, 160, 164, 218, 224], "avail": [3, 4, 24, 25, 94, 106, 113, 118, 123, 127, 160, 164, 181, 218, 224, 229, 267, 270, 272, 276, 277, 278, 279, 286, 289, 293, 295, 296], "cpu": [3, 4, 94, 113, 160, 164, 218, 224], "maximum": [3, 4, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296], "allow": [3, 4, 7, 19, 20, 94, 113, 118, 119, 123, 124, 127, 128, 160, 164, 173, 177, 181, 217, 218, 265, 266, 269, 270, 286, 290, 293, 295, 296], "float": [3, 4, 20, 113, 119, 124, 128, 160, 164, 174, 177, 178, 184, 212, 218, 224, 265, 268, 295], "type": [3, 10, 15, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 55, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 95, 100, 104, 108, 136, 141, 174, 178, 218, 265, 270, 294, 296], "observ": [3, 21, 22, 28, 29, 30, 31, 32, 45, 46, 57, 58, 59, 61, 62, 89, 94, 96, 139, 268, 289, 294, 295, 296], "record": 3, "dure": [3, 62, 265, 286], "abstractobserv": [3, 28, 59, 94, 96, 291], "observer_info": 3, "given": [3, 15, 22, 43, 44, 56, 59, 60, 66, 69, 74, 103, 104, 105, 124, 136, 137, 138, 198, 266, 267, 271, 274, 290], "after": [3, 28, 32, 106, 265, 266, 270, 275, 276, 279, 282, 289, 290, 293, 296], "initi": [3, 4, 10, 15, 17, 20, 32, 46, 55, 62, 66, 93, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 266, 270, 289, 290, 293, 296, 302], "set_observ": [3, 288], "set": [3, 26, 28, 29, 32, 55, 74, 106, 138, 140, 146, 152, 174, 178, 265, 266, 271, 274, 290, 291, 293], "reset_evaluation_budget": 3, "reset": [3, 96], "budget": [3, 10, 12, 20, 96, 119, 124, 128], "made": 3, "0": [3, 66, 68, 119, 124, 128, 156, 177, 193, 212, 266, 267, 268, 270, 271, 277, 278, 280, 281, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301], "__call__": [3, 4], "x": [3, 4, 15, 32, 46, 94, 96, 100, 104, 106, 124, 140, 145, 146, 174, 178, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 218, 224, 265, 266, 267, 271, 273, 274, 275, 280, 281, 285, 286, 287, 289, 290, 291, 296, 297], "context": [3, 15, 32, 46, 96, 100, 104, 124, 174, 178, 218, 224, 265, 291, 296], "input": [3, 10, 15, 22, 29, 34, 36, 94, 100, 104, 108, 124, 174, 178, 184, 218, 224, 265, 267, 268, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 296, 297, 301, 302], "_black_box": [3, 4, 15, 100, 104, 124, 174, 178, 218, 224, 265, 296], "method": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 70, 74, 93, 94, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 138, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 270, 276, 277, 278, 289, 290, 291, 293, 294, 295, 296], "termin": [3, 62, 274, 277, 278, 279, 280, 281, 291, 296], "__enter__": 3, "enter": 3, "manag": [3, 49, 96], "__exit__": 3, "exc_typ": 3, "exc_val": 3, "exc_tb": 3, "exit": 3, "__del__": 3, "destructor": 3, "__neg__": 3, "creat": [3, 6, 20, 26, 27, 28, 49, 55, 57, 58, 59, 60, 92, 96, 101, 105, 109, 120, 129, 173, 177, 179, 185, 186, 248, 265, 266, 267, 268, 269, 270, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 287, 289, 291, 294, 295, 297, 298, 301, 302, 303, 304], "new": [3, 108, 173, 177, 268, 270, 290, 296], "neg": [3, 158, 274, 278], "origin": [3, 4, 66, 67, 70, 131, 215, 268, 270], "one": [3, 143, 178, 192, 264, 265, 266, 268, 270, 271, 272, 276, 289, 290, 293, 301], "__init__": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 93, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 290, 291, 296], "execut": [3, 4, 51, 55, 59, 88, 106, 108, 113, 160, 164, 184, 218, 269, 275], "we": [3, 4, 9, 14, 20, 27, 64, 70, 94, 106, 113, 118, 119, 123, 124, 127, 128, 139, 160, 164, 166, 167, 173, 174, 177, 178, 181, 200, 214, 216, 217, 218, 252, 265, 266, 267, 268, 270, 271, 274, 275, 279, 286, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302], "f": [4, 19, 64, 65, 94, 96, 118, 123, 127, 181, 265, 266, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 302, 303, 304], "abstractblackbox": [4, 10, 15, 94, 96, 113, 160, 164, 218, 265, 266, 289, 290, 291, 296], "A": [4, 17, 20, 24, 25, 26, 28, 37, 40, 41, 42, 43, 44, 60, 64, 66, 68, 69, 70, 72, 73, 90, 96, 99, 100, 101, 106, 110, 116, 118, 119, 123, 124, 126, 127, 128, 168, 174, 178, 180, 181, 182, 186, 196, 197, 199, 218, 220, 222, 224, 264, 267, 268, 270, 271, 272, 273, 277, 278, 291, 296], "wrapper": [4, 9, 93, 106, 110, 131, 148, 173, 177, 182, 268, 272, 302], "negat": 4, "If": [4, 15, 22, 25, 27, 28, 29, 32, 37, 40, 41, 42, 43, 44, 46, 49, 50, 56, 62, 65, 66, 68, 69, 70, 74, 86, 87, 94, 96, 173, 177, 216, 218, 265, 266, 267, 268, 269, 270, 274, 275, 276, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "you": [4, 66, 74, 106, 173, 174, 177, 178, 200, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 295, 296], "construct": [4, 155], "maxim": [4, 200, 215, 216, 266, 286], "minim": [4, 200, 256, 266, 272, 274, 290, 302], "latter": [4, 270], "onli": [4, 9, 25, 96, 131, 139, 148, 209, 213, 214, 265, 266, 267, 270, 271, 274, 275, 276, 278, 279, 282, 286, 289, 290, 295, 296], "differ": [4, 19, 68, 118, 123, 127, 181, 229, 265, 266, 267, 270, 271, 290, 291, 296], "return": [4, 6, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 52, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 94, 95, 96, 101, 105, 120, 124, 129, 136, 137, 138, 141, 143, 156, 157, 168, 173, 174, 177, 178, 179, 185, 191, 194, 222, 223, 224, 265, 266, 273, 274, 276, 277, 278, 280, 281, 287, 289, 290, 294, 296], "instead": [4, 173, 200, 266, 277, 278, 290, 294], "same": [4, 69, 70, 166, 167, 168, 265, 267, 271, 293], "factori": [5, 6, 19, 24, 26, 27, 55, 60, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 105, 109, 111, 118, 119, 120, 121, 123, 124, 127, 129, 173, 177, 179, 181, 185, 217, 223, 265, 268, 289], "defin": [6, 28, 67, 180, 200, 252, 265, 266, 286, 293, 295], "interfac": [6, 65, 92, 268, 294], "instanc": [6, 10, 15, 101, 105, 108, 120, 129, 179, 185, 218, 267, 289, 296, 302], "get_setup_inform": [6, 101, 105, 109, 120, 129, 179, 185, 265, 296], "specifi": [6, 49, 50, 94, 101, 105, 120, 129, 137, 142, 150, 154, 179, 185, 217, 265, 270, 280, 281, 295, 296, 302], "metaclass": 7, "abstractproblemfactori": [7, 24, 26, 60, 265, 294, 296], "overrid": 7, "__repr__": 7, "__str__": 7, "arg": [7, 150, 151, 154, 155, 197, 265, 270, 294], "kwarg": [7, 26, 60, 89, 90, 91, 150, 151, 154, 155, 197, 265, 296], "contain": [8, 10, 16, 18, 21, 37, 51, 58, 60, 64, 67, 68, 69, 71, 89, 90, 91, 95, 134, 135, 152, 221, 229, 265, 267, 270, 277, 278, 296], "relat": [8, 18, 38, 63, 269], "around": [9, 106, 110, 173, 177, 182, 268, 272, 302], "therapeut": [9, 10, 107, 183, 264, 268, 272, 275, 282, 296], "data": [9, 10, 35, 49, 100, 104, 106, 139, 140, 146, 147, 152, 264, 268, 270, 272, 275, 276, 282, 296], "common": [9, 10, 92, 264, 268, 270, 272, 275, 282, 296, 302], "tdc": [9, 10, 106, 107, 182, 183, 184, 268, 272], "oracl": [9, 10, 107, 108, 182, 183, 184, 268, 272, 275, 282], "1": [9, 19, 27, 37, 65, 68, 70, 96, 103, 104, 105, 107, 110, 118, 123, 127, 134, 135, 139, 146, 156, 166, 167, 168, 171, 177, 181, 183, 184, 188, 200, 206, 215, 217, 221, 264, 266, 267, 268, 270, 271, 273, 275, 279, 280, 281, 285, 286, 287, 290, 291, 293, 294, 296, 297, 298, 301, 302], "so": [9, 26, 70, 174, 178, 266, 270, 276, 279, 290, 294, 296], "far": [9, 266, 290], "support": [9, 248, 265, 267, 268, 290, 294], "two": [9, 56, 68, 267, 270, 277, 278, 280, 281, 286, 291, 294, 295, 296, 302], "drd3": [9, 106, 108, 109, 268, 272, 274], "synthet": [9, 182, 183, 184, 185, 268, 272], "access": [9, 49, 66, 106, 116, 119, 120, 126, 128, 129, 180, 183, 184, 185, 264, 265, 268, 270, 272, 275, 286], "see": [9, 43, 44, 67, 90, 91, 99, 106, 173, 177, 200, 217, 220, 223, 265, 267, 270, 271, 274, 276, 289, 293, 294, 296], "document": [9, 168, 267, 268, 270, 289, 294], "our": [9, 265, 266, 270, 272, 274, 277, 278, 289, 290, 291, 295, 296, 297, 298, 302], "more": [9, 67, 119, 124, 128, 220, 221, 265, 267, 270, 271, 289, 293], "refer": [9, 19, 65, 103, 104, 105, 106, 107, 110, 166, 167, 183, 268, 276, 279], "artifici": [9, 107, 183, 200], "intellig": [9, 107, 183], "foundat": [9, 107, 183], "scienc": [9, 107, 183, 264], "huang": [9, 107, 183, 264, 268, 275, 282], "kexin": [9, 264], "tianfan": [9, 264], "fu": [9, 107, 183, 264], "wenhao": [9, 264], "gao": [9, 107, 183, 264, 272], "yue": [9, 264], "zhao": [9, 264], "yusuf": [9, 264], "roohani": [9, 264], "jure": [9, 264], "leskovec": [9, 264], "connor": [9, 264], "w": [9, 64, 107, 183, 192, 197, 264, 268, 270, 275, 291], "colei": [9, 264, 268], "cao": [9, 264], "xiao": [9, 264], "jimeng": [9, 264], "sun": [9, 264], "marinka": [9, 264], "zitnik": [9, 264], "natur": 9, "chemic": [9, 103, 104, 105, 264], "biologi": [9, 106, 118, 123, 127, 181, 264, 275], "18": [9, 107, 183, 264], "10": [9, 37, 103, 104, 105, 107, 171, 183, 264, 297, 298, 301, 302], "octob": 9, "2022": [9, 65, 103, 104, 105, 107, 110, 166, 167, 183, 264, 268, 269, 270, 272, 274, 279, 289], "1033": [9, 107, 183], "36": 9, "http": [9, 37, 48, 49, 65, 67, 103, 104, 105, 106, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 265, 267, 268, 269, 270, 276, 279, 289, 293, 296], "doi": [9, 103, 104, 105, 107, 171, 183, 264], "org": [9, 37, 65, 103, 104, 105, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 270], "1038": [9, 107, 183], "s41589": [9, 107, 183], "022": [9, 107, 183], "01131": [9, 107, 183], "2": [9, 27, 37, 65, 68, 107, 118, 123, 127, 134, 135, 181, 183, 197, 200, 216, 218, 221, 264, 267, 270, 282, 285, 286, 287, 293, 294, 297, 301], "oracle_nam": [10, 108], "str": [10, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 94, 96, 104, 108, 119, 124, 128, 161, 178, 190, 191, 197, 218, 265, 270, 277, 278, 279, 291, 296], "from_smil": [10, 108, 168, 174, 178, 184], "true": [10, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 74, 94, 96, 108, 140, 155, 160, 168, 174, 178, 184, 216, 270, 275, 277, 278, 279, 280, 281, 282, 289, 291, 293, 295, 296], "kwargs_for_oracl": [10, 108], "repres": [10, 20, 56, 68, 73, 108, 154, 293], "It": [10, 26, 55, 56, 89, 106, 265, 267, 270, 274, 275, 289, 290, 293], "name": [10, 17, 22, 23, 26, 27, 28, 29, 46, 49, 50, 60, 62, 72, 73, 74, 89, 91, 94, 96, 104, 108, 218, 221, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "comput": [10, 19, 52, 66, 68, 70, 100, 104, 106, 108, 118, 119, 123, 124, 126, 127, 128, 166, 167, 172, 174, 178, 180, 181, 200, 264, 267, 268, 269, 271, 272, 275, 277, 278, 279, 282, 294], "dock": [10, 103, 104, 105, 106, 107, 108, 109, 264, 268, 272, 274, 294], "score": [10, 103, 104, 105, 119, 124, 128, 268, 271, 272, 274, 275, 277, 278, 279, 294], "an": [10, 19, 22, 28, 29, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 49, 56, 61, 62, 65, 70, 89, 91, 93, 94, 96, 118, 123, 127, 134, 135, 173, 178, 181, 192, 249, 265, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 289, 294, 297, 298, 302], "process": [10, 26, 28, 32, 45, 46, 55, 56, 61, 62, 89, 91, 93, 94, 96, 100, 104, 119, 123, 124, 128, 152, 173, 174, 178, 249, 264, 265, 270, 275, 276, 277, 278, 279, 280, 281, 282, 286, 289, 293, 294, 295, 296, 297], "multipl": [10, 100, 104, 174, 178], "infin": [10, 94, 100, 104, 108, 119, 124, 128, 174, 178, 184], "molecul": [10, 39, 40, 41, 42, 103, 104, 105, 168, 174, 178, 179, 264, 267, 270, 274, 275, 282, 293], "ar": [10, 24, 27, 32, 65, 68, 70, 95, 106, 140, 168, 173, 174, 177, 178, 179, 217, 229, 252, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 297], "smile": [10, 41, 42, 43, 44, 104, 108, 173, 174, 177, 178, 184, 268, 274, 279, 280, 281], "format": [10, 55, 67, 70, 136], "represent": [10, 39, 42, 104, 108, 171, 264, 294], "dict": [10, 24, 26, 55, 89, 90, 94, 96, 100, 104, 108, 265, 296], "addit": [10, 26, 46, 55, 59, 94, 96, 108, 271], "keyword": [10, 26, 46, 55, 89, 94, 96, 108, 265, 277, 278, 289, 295], "argument": [10, 22, 26, 28, 29, 46, 55, 89, 94, 96, 108, 277, 278, 289, 295], "custom": [11, 295], "packag": [11, 13, 43, 44, 48, 275, 289, 293, 294, 296], "rais": [12, 15, 40, 41, 43, 44, 49, 50, 56, 65, 68, 69, 266, 269, 290, 294, 295], "when": [12, 55, 94, 96, 265, 271, 274, 291, 293, 295], "exhaust": 12, "multi_object": 14, "version": [14, 46, 66, 93, 106, 166, 177, 179, 266, 267, 268, 269, 270, 271, 275, 286, 290, 291, 301, 302], "mean": [14, 70, 138, 168, 279, 286, 294, 298], "simpli": [14, 266, 267, 274, 275, 276, 279, 282, 290, 291, 293], "concaten": [14, 15, 174, 178], "result": [14, 15, 66, 174, 178, 270, 291, 294], "individu": [14, 15, 67, 191, 270, 289, 291, 294], "objective_funct": [15, 302], "list": [15, 17, 20, 25, 26, 28, 40, 41, 42, 43, 44, 59, 60, 66, 67, 68, 69, 70, 72, 73, 119, 124, 128, 134, 148, 155, 178, 189, 191, 194, 265, 268, 270, 271, 274, 277, 278, 289, 291, 293, 296], "multi": [15, 264, 302], "requir": [15, 20, 48, 49, 106, 173, 177, 265, 266, 268, 270, 271, 274, 289, 290, 291, 293, 294, 295], "valueerror": [15, 50, 69, 294], "e": [16, 49, 64, 70, 96, 100, 106, 134, 135, 139, 171, 174, 178, 179, 216, 224, 264, 266, 267, 268, 270, 271, 272, 274, 276, 277, 278, 279, 287, 290, 291, 294, 295, 296], "g": [16, 64, 70, 134, 135, 179, 266, 267, 268, 270, 272, 277, 278, 287, 290, 291, 295, 296], "alphabet": [16, 17, 20, 100, 104, 119, 124, 128, 178, 218, 265, 266, 276, 277, 278, 281, 289, 290, 291, 293, 296, 302, 303, 304], "sequenc": [16, 17, 65, 99, 100, 101, 110, 134, 135, 136, 137, 141, 142, 143, 166, 167, 264, 266, 268, 270, 273, 287, 289, 290, 293, 296], "length": [16, 17, 37, 68, 69, 145, 270, 296], "max_sequence_length": [17, 265, 289, 291, 296], "align": [17, 265, 291, 296], "log_transform_recommend": [17, 291], "s": [17, 20, 43, 44, 64, 65, 96, 106, 119, 124, 128, 131, 171, 173, 174, 177, 178, 179, 200, 214, 229, 264, 265, 267, 268, 272, 275, 276, 277, 278, 279, 282, 286, 289, 290, 291, 293, 294, 295, 297, 301, 302], "longest": 17, "have": [17, 27, 37, 106, 119, 124, 128, 200, 248, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 290, 293, 295, 296], "been": [17, 200, 269], "charact": 17, "mai": [17, 27, 171, 264], "appear": [17, 265, 267, 270], "recommend": [17, 106, 267, 268, 271, 274, 275, 276, 298], "algorithm": [17, 32, 217, 252, 264, 266, 270, 286, 290, 291, 293, 295, 296, 297, 302], "log": [17, 46, 158, 166, 172, 173, 174, 268, 272, 296], "transform": [17, 39, 187, 192, 193], "target": [17, 100, 104, 294], "foldx": [19, 20, 67, 70, 118, 119, 120, 121, 123, 124, 126, 127, 128, 129, 171, 180, 181, 267, 268, 270, 272, 289, 294, 296], "simul": [19, 20, 65, 66, 118, 119, 123, 124, 127, 128, 181, 194, 200, 265, 267], "free": [19, 118, 123, 127, 181, 265, 266, 269, 270, 293], "energi": [19, 66, 118, 123, 127, 181, 269, 278], "between": [19, 68, 70, 100, 118, 123, 127, 177, 181, 280], "wildtyp": [19, 20, 69, 70, 118, 119, 123, 124, 127, 128, 171, 181, 268, 271, 272, 277, 278], "mutat": [19, 20, 66, 118, 123, 127, 136, 181, 264, 266, 268, 271, 272, 277, 290, 293, 295, 302], "web": [19, 65, 118, 123, 127, 181], "server": [19, 55, 56, 65, 118, 123, 127, 181], "onlin": [19, 65, 118, 123, 127, 181], "forc": [19, 26, 65, 118, 123, 127, 181, 249], "field": [19, 65, 118, 123, 127, 181], "nucleic": [19, 65, 118, 123, 127, 181], "acid": [19, 20, 64, 65, 118, 119, 123, 124, 127, 128, 134, 135, 137, 142, 143, 181], "research": [19, 65, 118, 123, 127, 181, 264], "schymkowitz": [19, 65, 118, 123, 127, 181, 268, 270], "j": [19, 65, 103, 104, 105, 118, 123, 127, 181, 264, 291], "borg": [19, 65, 118, 123, 127, 181, 270], "stricher": [19, 65, 118, 123, 127, 181, 270], "ny": [19, 65, 118, 123, 127, 181], "r": [19, 64, 65, 70, 118, 123, 127, 181, 200, 264, 271, 275, 291], "rousseau": [19, 65, 118, 123, 127, 181, 270], "serrano": [19, 65, 118, 123, 127, 181, 270], "l": [19, 64, 65, 96, 99, 100, 101, 118, 123, 127, 144, 149, 150, 151, 171, 181, 264, 265, 266, 267, 273, 285, 287, 290, 291, 293, 294, 296], "2005": [19, 65, 118, 123, 127, 181, 268], "33": [19, 65, 118, 123, 127, 156, 181, 270], "suppl_2": [19, 65, 118, 123, 127, 181], "w382": [19, 65, 118, 123, 127, 181], "w388": [19, 65, 118, 123, 127, 181], "wildtype_pdb_path": [20, 119, 124, 128, 271, 289], "union": [20, 26, 59, 60, 66, 69, 119, 124, 128], "path": [20, 26, 28, 49, 52, 59, 60, 66, 69, 72, 73, 74, 106, 119, 124, 128, 147, 198, 265, 270, 271, 276, 277, 278, 279, 282, 289, 291, 294], "experiment_id": [20, 119, 124, 128, 291], "tmp_folder": [20, 119, 124, 128], "eager_repair": [20, 119, 124, 128, 277, 278], "verbos": [20, 49, 66, 72, 73, 74, 119, 124, 128, 266, 295], "pdb": [20, 66, 69, 70, 71, 72, 73, 74, 119, 123, 124, 128, 171, 267, 271, 275, 277, 278, 289, 294], "file": [20, 27, 65, 66, 67, 69, 70, 71, 72, 73, 74, 95, 99, 106, 119, 123, 124, 128, 171, 173, 177, 217, 223, 264, 265, 267, 269, 271, 274, 276, 279, 282, 289, 291, 294, 296], "amino": [20, 64, 119, 124, 128, 134, 135, 137, 142, 143], "experi": [20, 119, 124, 128, 139, 200, 291], "id": [20, 67, 119, 124, 128, 189, 248, 264, 265, 270, 291, 296], "temporari": [20, 119, 124, 128], "folder": [20, 27, 49, 99, 106, 119, 124, 128, 173, 177, 217, 223, 265, 267, 269, 282, 291, 296], "eagerli": [20, 119, 124, 128], "repair": [20, 65, 66, 119, 124, 128, 289], "print": [20, 37, 49, 66, 72, 73, 74, 96, 119, 124, 128, 265, 266, 267, 270, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 302, 303, 304], "output": [20, 66, 72, 73, 74, 119, 124, 128, 194, 268, 270, 279, 289, 293, 294], "wildtype_residu": [20, 70], "residu": [20, 67, 69, 70, 72, 73, 270], "each": [20, 32, 37, 68, 70, 137, 142, 268, 270, 291, 294, 295, 298], "wildtype_amino_acid": 20, "wildtype_residue_str": [20, 70], "string": [20, 39, 40, 41, 42, 43, 44, 55, 60, 68, 69, 70, 72, 89, 90, 91, 104, 108, 135, 136, 145, 173, 174, 177, 178, 184, 190, 191, 266, 268, 270, 271, 273, 277, 278, 280, 281, 287, 290, 294, 295, 296, 303, 304], "create_working_directori": 20, "work": [20, 37, 59, 60, 66, 96, 106, 209, 213, 256, 257, 266, 267, 269, 270, 272, 274, 275, 280, 281, 282, 289, 290, 291, 293, 295, 297], "directori": [20, 59, 60, 66, 269, 270, 271, 275, 276, 277, 278, 282, 291], "regist": [21, 25, 26, 27, 28, 29, 94, 95, 96, 106, 267, 271, 274, 277, 278, 280, 281, 293, 294], "observer_nam": [22, 28, 29, 46, 62, 288], "delet": [22, 23, 291], "run": [22, 26, 27, 28, 29, 45, 55, 57, 58, 59, 60, 66, 94, 96, 106, 124, 173, 177, 229, 265, 266, 267, 268, 269, 270, 290, 291, 293, 295, 296], "script": [22, 26, 28, 29, 55, 57, 58, 59, 60, 61, 65, 88, 99, 106, 123, 173, 177, 200, 217, 223, 265, 271, 275, 291, 295, 296], "take": [22, 23, 26, 27, 28, 29, 55, 191, 194, 264, 265, 266, 273, 286, 287, 289, 290, 293, 296, 297], "pass": [22, 26, 28, 29, 46, 55, 70, 74, 89, 90, 94, 265, 270, 276, 277, 278, 289, 296], "locat": [22, 28, 29, 65, 214, 221, 270, 303, 304], "note": [22, 25, 28, 29, 49, 55, 56, 62, 66, 119, 124, 128], "must": [22, 28, 29, 267, 273, 285, 286, 287], "accept": [22, 28, 29, 55], "port": [22, 28, 29, 55, 56, 62, 91, 294], "password": [22, 28, 29, 55, 56, 62, 91, 294], "problem_nam": [23, 265, 285, 289], "configur": [23, 26, 29, 95], "dictionari": [24, 55, 90, 289], "problem_factori": [24, 26, 60, 274, 298, 302, 303, 304], "only_avail": [25, 289, 293], "includ": [25, 106, 265, 267, 268, 271, 274, 275, 286, 289, 291, 294, 295, 296, 297], "can": [25, 26, 27, 28, 37, 45, 55, 62, 74, 106, 155, 171, 174, 178, 196, 265, 266, 267, 269, 270, 271, 274, 275, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 294, 295, 296, 301], "import": [25, 27, 50, 65, 96, 167, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "directli": [25, 173, 206, 270, 271, 274, 294], "problem_list": 25, "repositori": [25, 27, 47, 48, 49, 50, 92, 103, 131, 200, 206, 229, 264, 266, 267, 268, 271, 274, 276, 279, 289, 291, 293, 294], "otherwis": [25, 42, 69, 270, 277, 278], "user": [25, 28, 49, 55, 119, 124, 128, 154, 252, 266, 270, 289, 290, 291, 293, 294, 296], "readili": 25, "conda_environment_nam": [26, 60, 265, 296], "python_path": [26, 28, 59, 60, 296], "conda": [26, 28, 59, 60, 99, 106, 173, 177, 217, 223, 266, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 290, 294], "environ": [26, 27, 28, 49, 59, 60, 99, 173, 177, 217, 223, 264, 266, 267, 268, 270, 271, 274, 277, 278, 280, 281, 282, 285, 290, 294, 295], "python": [26, 28, 37, 59, 60, 64, 87, 96, 106, 118, 123, 127, 181, 264, 265, 267, 268, 275, 277, 278, 294], "With": [26, 28, 295, 296], "instanti": [26, 28, 29, 46, 62, 89, 91, 93, 94, 96, 266, 290, 291, 294, 295, 296], "separ": [26, 28], "also": [26, 89, 106, 123, 265, 267, 268, 271, 276, 277, 278, 279, 286, 289, 291, 293, 295, 296, 301], "later": 26, "append": [26, 28, 60, 290, 291], "overwrit": [26, 49, 66, 94, 96, 291, 296], "exist": [26, 49, 50, 265, 270, 289], "quiet": [27, 94, 270, 294], "correspond": [27, 100, 104, 135, 224, 270], "objective_repositori": [27, 265, 271, 274, 275, 276, 279, 294, 296, 298, 302, 303, 304], "yaml": 27, "said": [27, 265, 266, 276, 290, 296], "enviro": [27, 265, 266, 290, 296], "sinc": [27, 70, 106, 252, 265, 266, 269, 270, 274, 275, 276, 279, 286, 289, 290, 293, 295, 296, 297], "t": [27, 64, 107, 118, 123, 127, 181, 183, 264, 265, 268, 269, 270, 274, 275, 276, 279, 291, 294, 295, 296], "depend": [27, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293], "instal": [27, 48, 119, 124, 128, 173, 177, 268, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294, 295, 296], "squelch": [27, 94], "feedback": [27, 94, 270], "creation": [27, 32, 94, 265, 286, 302], "registr": [27, 94, 96, 99, 173, 177, 217, 223, 265, 295, 296], "conda_environment_loc": 28, "extern": [28, 45, 46, 61, 89, 93, 293], "externalobserv": [28, 288], "relev": [28, 270, 271, 274, 275, 276, 277, 278, 280, 281, 282, 286, 296], "script_file_nam": 29, "run_script": [29, 55, 59, 60], "call": [29, 32, 49, 55, 61, 62, 94, 99, 119, 124, 128, 173, 177, 217, 223, 265, 266, 267, 268, 269, 270, 271, 274, 276, 277, 278, 280, 281, 289, 291, 293, 294], "monitor": 32, "progress": [32, 49, 74, 290], "valu": [32, 64, 86, 87, 94, 96, 139, 140, 146, 216, 270, 276, 279, 286, 289], "decis": 32, "variabl": [32, 49, 174, 178, 270, 276, 286], "iter": [32, 37, 266, 290, 293, 295, 298], "np": [32, 94, 96, 200, 218, 265, 266, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 296, 297, 298, 301, 302, 303, 304], "ndarrai": [32, 94, 144, 188, 189, 190, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 265, 266, 289, 290, 291, 296], "y": [32, 46, 64, 94, 96, 140, 146, 266, 271, 274, 281, 289, 290, 291], "everi": [32, 291], "time": [32, 56, 265, 270, 271, 291, 302], "initialize_observ": [32, 46, 291], "problem_setup_info": [32, 291], "caller_info": [32, 46, 96, 291, 295, 296], "x0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "y0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "seed": [32, 46, 94, 96, 160, 164, 193, 257, 265, 291, 294, 296], "necessari": [32, 66, 265, 276, 277, 278, 296], "finish": [32, 46, 270, 291], "perform": [32, 86, 87, 100, 119, 128, 174, 178, 266, 268, 270, 289, 290, 295, 297, 298], "ani": [32, 55, 94, 96, 150, 151, 197, 265, 270, 287, 289, 291, 293, 295, 296], "cleanup": 32, "final": [32, 291], "step": [32, 266, 276, 289, 295, 296], "complet": [32, 270, 296], "model": [34, 65, 103, 104, 105, 139, 140, 152, 154, 156, 264, 265, 270, 271, 297], "check": [34, 51, 65, 68, 221, 265, 266, 270, 271, 277, 278, 279, 286, 290, 291, 293, 294, 295, 296], "inde": [34, 249, 270, 277, 278, 295, 296], "gener": [36, 37, 55, 59, 60, 84, 85, 86, 87, 94, 96, 224, 270, 289, 297], "chunk_siz": 37, "element": [37, 289], "3": [37, 134, 135, 265, 267, 268, 270, 273, 285, 287, 289, 291, 293, 294, 296, 297, 298], "12": [37, 65, 110, 166, 167, 171, 264], "replac": [37, 68, 70, 171, 189, 271, 289, 303, 304], "built": [37, 90, 91, 138, 267], "itertool": 37, "doc": [37, 49, 270, 294], "html": [37, 200, 264, 289, 293], "yield": [37, 103, 104, 105, 264], "tupl": [37, 68, 69, 94, 218, 265, 296], "equal": [37, 68, 295], "exampl": [37, 50, 52, 68, 70, 96, 99, 220, 256, 257, 265, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 293, 294, 295, 302], "4": [37, 145, 156, 264, 269, 275, 293, 294], "5": [37, 66, 99, 100, 101, 177, 179, 212, 267, 268, 270, 272, 273, 289, 291, 293, 294, 295, 296, 302], "6": [37, 264, 270, 293, 294], "7": [37, 66, 270, 277, 278, 293], "8": [37, 103, 104, 105, 264, 270, 293], "9": [37, 264, 265, 267, 268, 270, 274, 289, 293, 294, 296], "rdkit": [39, 40, 41, 42, 50, 172, 173, 174, 176, 177, 178, 268, 272, 274, 280, 281, 282, 296], "selfies_str": [40, 43], "chem": [40, 41, 42, 107, 174, 177, 178, 183], "mol": [40, 41, 42], "convert": [40, 41, 42, 55, 134, 135, 140, 145], "selfi": [40, 42, 43, 44, 104, 173, 174, 177, 178, 268, 274, 279, 280, 281], "strict": [40, 41, 43, 44, 49, 68], "error": [40, 41, 43, 44, 49, 65, 265, 289, 294], "fail": [40, 174, 178, 295], "decod": [40, 150, 154, 155, 194, 197], "smiles_str": [41, 43, 44], "cannot": [41, 43, 44, 174, 178], "pars": [41, 43, 44, 71, 72, 73, 74, 90, 174, 178, 190], "molecule_str": 42, "from_selfi": [42, 174, 178], "assum": [42, 70, 174, 178, 252, 265, 266, 270, 271, 274, 277, 278, 279, 280, 281, 285, 289, 290, 293], "translat": [43, 44], "els": [43, 44, 265, 294, 296], "those": [43, 44], "aspuru": [43, 44, 264], "guzik": [43, 44, 264], "lab": [43, 44], "group": [43, 44], "isol": [45, 46, 88, 89, 93, 94, 96, 173, 249, 265, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 296], "kwargs_for_observ": 46, "send": [46, 62], "verifi": [46, 51, 291, 294], "wa": [46, 48, 70, 167, 266, 270, 275, 279, 289, 290], "correctli": [46, 269], "setup_info": 46, "start": [46, 55, 61, 62, 91, 171, 270, 271, 289, 291, 293, 294, 295, 296], "close": [46, 96, 280, 281], "__getattr__": 46, "__name": 46, "retriev": [46, 62, 109], "attribut": [46, 62, 150, 151, 197, 270, 289], "underli": 46, "download": [47, 48, 49, 51, 106, 265, 269, 271, 276, 282, 289], "github": [47, 48, 49, 50, 106, 265, 267, 268, 270, 271, 276, 279, 296], "pygithub": [48, 50, 276], "pip": [48, 106, 173, 177, 265, 267, 268, 270, 276, 277, 278, 279, 280, 281, 294, 296], "most": [48, 137, 272, 294], "code": [48, 51, 152, 171, 265, 270, 275, 276, 279, 282, 293, 296], "taken": [48, 206, 271, 294], "adapt": [48, 264, 270, 298], "gist": 48, "com": [48, 49, 106, 265, 267, 268, 269, 270, 276, 279, 294, 296], "pdashford": 48, "2e4bcd4fc2343e2fd03efe4da17f577d": 48, "permalink_comment_id": 48, "4274705": 48, "gistcom": 48, "repository_nam": 49, "file_path_in_repositori": 49, "download_path_for_fil": 49, "tag": [49, 50], "master": [49, 267, 296], "commit_sha": [49, 50], "exist_ok": [49, 270, 291], "parent_folders_exist_ok": 49, "i": [49, 64, 100, 118, 123, 127, 139, 174, 178, 181, 216, 224, 264, 266, 268, 270, 271, 274, 278, 290, 291, 296], "repo": [49, 106, 267, 275], "download_path": 49, "branch": [49, 50, 267], "sha": [49, 50], "commit": [49, 50, 271], "exists_ok": 49, "parent": [49, 265, 270, 271, 291, 302], "thei": [49, 65, 167, 168, 270, 279, 289, 291], "do": [49, 106, 167, 266, 270, 276, 279, 290, 294, 296], "except": [49, 56, 62, 265, 294], "github_token_for_poli": [49, 276], "doe": [49, 167], "try": [49, 265, 277, 278], "without": [49, 94, 96, 173, 177, 248, 265, 266, 290, 293, 295, 296], "rate": 49, "limit": [49, 221, 271, 276], "60": 49, "request": [49, 91, 270], "per": 49, "hour": 49, "anonym": [49, 276], "To": [49, 267, 268, 269, 270, 271, 274, 279, 296], "token": [49, 145, 174, 178, 189, 191, 276, 293, 296, 303, 304], "like": [49, 96, 106, 209, 265, 266, 269, 275, 286, 289, 290, 291, 293, 294, 295, 296, 297], "follow": [49, 64, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 290, 293, 295, 296, 301], "instruct": [49, 229, 265, 266, 293], "here": [49, 265, 268, 270, 276, 289, 296, 302], "en": [49, 220, 289, 293], "authent": [49, 55, 56], "keep": [49, 70, 265, 277, 278], "your": [49, 106, 266, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 294], "account": 49, "secur": [49, 294], "person": [49, 276], "fine": [49, 267], "grain": 49, "get_repo": 50, "release_2023_09": 50, "068441957858f786c227825d90eb2c43f4f2b000": 50, "internet": 51, "reproduc": 51, "purpos": 51, "make": [51, 267, 269, 270, 271, 274, 276, 289, 295, 296, 302], "sure": [51, 267, 269, 270, 271, 274, 276, 291, 295, 296], "malici": 51, "being": [51, 269, 271, 276], "filepath": 52, "read_mod": 52, "rb": 52, "md5": [52, 271], "hex": 52, "digest": 52, "open": [52, 171, 270, 291], "binari": [52, 66, 106, 119, 124, 128, 270, 276, 277, 278], "form": [52, 270], "mode": [52, 67], "read": [52, 66, 147, 270, 291, 295], "hex_digest": 52, "txt": [52, 66, 70, 269, 270, 276, 277, 278, 291], "d41d8cd98f00b204e9800998ecf8427": 52, "wrap": [53, 54, 296], "interprocess": [53, 54], "commun": [53, 54, 55, 93], "kwargs_for_factori": [55, 94, 96, 294], "connect": [55, 56, 62, 91, 154], "inter": 55, "These": [55, 268, 270, 271, 272, 276, 286, 289, 291, 293], "inner": 55, "up": [55, 56, 266, 274, 275, 289, 290, 291, 296], "listen": [55, 91, 294], "random": [55, 84, 85, 86, 87, 94, 96, 266, 268, 290, 293, 295, 297, 298, 301, 302, 304], "subprocess": [55, 270], "expect": [55, 65, 66, 67, 70, 106, 119, 124, 128, 174, 270, 276, 277, 278, 279, 291, 294, 296], "well": [55, 267, 270, 274, 294, 295, 297], "other": [55, 174, 178, 265, 269, 289, 291, 294, 295, 296], "objective_factori": [55, 248, 265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "determin": 55, "client": 56, "get": [56, 61, 74, 265, 266, 270, 271, 272, 290, 291, 293, 295, 296], "eoferror": 56, "host": 56, "readi": [56, 140], "yet": [56, 265, 290], "connectionrefusederror": 56, "refus": 56, "attempt": 56, "establish": [56, 62], "retri": 56, "befor": [56, 59, 289, 295, 296], "conda_environ": 59, "cwd": [59, 60, 270], "activ": [59, 265, 267, 268, 271, 274, 276, 279, 291], "ad": [59, 106, 248, 275, 291, 296], "current": [59, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294], "either": [60, 104, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 301], "mother": [61, 62, 91], "receiv": [62, 294], "wait": [62, 91, 296], "occur": 62, "sent": [62, 194], "back": [62, 187], "quit": [62, 265, 271, 293], "messag": [62, 94, 289], "encod": [64, 143, 144, 154, 155, 178, 276, 277, 278], "For": [64, 70, 106, 139, 166, 171, 221, 252, 265, 268, 270, 275, 276, 279, 286, 289, 291, 293, 294, 296, 298], "amino_acid": 64, "n": [64, 103, 104, 105, 221, 264, 267, 268, 270, 271, 282, 286, 287, 291], "d": [64, 171, 200, 216, 264, 269, 286, 291], "c": [64, 103, 104, 105, 264, 265, 267, 270, 274, 275, 280, 281, 282, 291, 296], "q": [64, 264, 291], "h": [64, 99, 100, 101, 192, 197, 264, 291, 296], "k": [64, 107, 173, 183, 212, 264, 291], "m": [64, 145, 171, 264, 270, 291], "p": [64, 264, 291], "v": [64, 66, 291], "measur": [65, 139, 270, 280, 281], "stabil": [65, 66, 121, 123, 124, 126, 127, 171, 180, 181, 264, 267, 268, 270, 272, 277, 294], "sasa": [65, 66, 116, 118, 119, 120, 126, 127, 128, 129, 180, 181, 268, 272, 277, 278], "foldxinterfac": 65, "queri": [65, 265, 266, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 290, 296], "heavili": [65, 270], "inspir": [65, 270], "wai": [65, 266, 267, 270, 271, 274, 277, 278, 280, 281, 290, 291, 294], "lambo": [65, 106, 110, 113, 115, 166, 167, 168, 268, 270, 272, 275, 289], "automat": [65, 96, 264, 265, 269, 279], "acceler": [65, 110, 166, 167, 264], "bayesian": [65, 110, 166, 167, 252, 264, 266, 268, 290], "biolog": [65, 110, 166, 167, 264], "design": [65, 103, 104, 105, 110, 154, 166, 167, 264, 266, 269, 272, 274, 289, 290, 293, 296], "withdenois": 65, "autoencod": [65, 110, 154, 166, 167, 264, 297], "stanton": [65, 110, 166, 167, 264, 268, 269, 270, 279, 289], "samuel": [65, 110, 166, 167, 264], "weslei": [65, 110, 166, 167, 264], "maddox": [65, 110, 166, 167, 264], "nate": [65, 110, 166, 167, 264], "gruver": [65, 110, 166, 167, 264], "phillip": [65, 110, 166, 167, 264], "maffetton": [65, 110, 166, 167, 264], "emili": [65, 110, 166, 167, 264], "delanei": [65, 110, 166, 167, 264], "peyton": [65, 110, 166, 167, 264], "greensid": [65, 110, 166, 167, 264], "andrew": [65, 110, 166, 167, 264], "gordon": [65, 110, 166, 167, 264], "wilson": [65, 110, 166, 167, 264], "arxiv": [65, 110, 166, 167, 264], "juli": [65, 110, 166, 167], "ab": [65, 110, 166, 167, 264], "2203": [65, 110, 166, 167, 264], "12742": [65, 110, 166, 167, 264], "samuelstanton": [65, 106, 276, 279], "working_dir": [66, 270], "interact": [66, 270], "engin": [66, 200, 297], "softwar": [66, 268, 269], "where": [66, 99, 100, 101, 155, 265, 266, 268, 270, 275, 282, 290, 294], "store": [66, 271, 289], "pdb_file": 66, "remove_and_renam": 66, "ph": [66, 270, 277, 278], "remove_heteroatom": 66, "_repair_if_necessary_and_provide_path": 66, "_simulate_mut": 66, "_read_energi": 66, "_compute_sasa": 66, "solvent": [66, 116, 119, 120, 126, 128, 129, 180, 264, 268, 270, 272], "surfac": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "area": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "compute_st": 66, "structur": [66, 72, 73, 74, 106, 124, 270, 275, 291], "compute_sasa": 66, "compute_stability_and_sasa": 66, "singl": [66, 70, 171, 200, 264, 268, 271, 272, 280, 281, 289, 291, 297, 301], "copy_foldx_fil": 66, "copi": [66, 266, 270, 290, 302], "write_mutations_to_fil": 66, "wildtype_resiud": 66, "output_dir": 66, "write": [66, 106, 265, 267, 270, 275, 283, 284, 288, 291, 292, 296, 299, 300], "stdout": 66, "previou": [66, 94, 96, 270, 291, 295], "reli": [66, 248, 286], "rotabas": [66, 269, 270, 276, 277, 278], "longer": 66, "manipul": [67, 265, 267, 268], "accord": [67, 138, 270, 293, 296], "certain": [67, 265, 268, 270, 274, 295], "first": [67, 68, 70, 265, 270, 271, 273, 289, 290, 295, 296], "letter": [67, 70, 99, 100, 101, 268, 270, 272, 273, 296], "second": [67, 68, 70, 148, 270, 295, 296], "posit": [67, 68, 70, 137, 142, 266, 270, 271, 289, 290, 293], "third": [67, 70], "chain": [67, 70, 270], "fourth": [67, 70], "mutant": [67, 69, 70, 171, 266, 270, 290], "foldxsuit": [67, 269, 270], "crg": [67, 269, 270], "eu": [67, 269, 270], "string_1": 68, "string_2": 68, "edit": [68, 171, 271], "oper": [68, 269, 295], "assertionerror": [68, 295], "abc": 68, "abd": 68, "def": [68, 265, 266, 290, 291, 296], "wildtype_pdb_fil": [69, 277, 278], "mutated_residue_str": [69, 70], "return_hamming_dist": 69, "find": [69, 99, 100, 101, 106, 265, 271, 274, 275, 291, 293, 295], "closest": 69, "ham": 69, "distanc": [69, 70, 100, 271, 273], "along": 69, "best": [69, 266, 289, 290, 298, 302], "candid": [69, 266], "found": [69, 267, 270, 289, 293, 296], "bio": [70, 73, 74, 270], "individual_list": [70, 270], "levenshtein": [70, 277, 278], "track": [70, 264, 265], "written": 70, "line": [70, 268, 270, 294], "ea1r": 70, "still": [70, 294], "need": [70, 106, 265, 269, 270, 275, 276, 277, 278, 279, 289, 291, 295], "dummi": 70, "itself": [70, 265, 267], "ecd": 70, "acd": 70, "would": [70, 270, 271, 274, 291, 296], "ea1a": 70, "load": [71, 95, 131, 139, 148, 198, 270, 289, 291], "them": [71, 106, 252, 265, 266, 267, 270, 271, 272, 275, 290, 293], "path_to_pdb": [72, 73, 74], "structure_nam": [72, 73, 74], "done": [74, 106, 270, 275, 276, 279, 293], "quietli": 74, "some": [74, 152, 168, 252, 267, 268, 270, 276, 279, 286, 291, 293, 296], "get_structur": [74, 270], "pdbparser": [74, 270], "numpi": [86, 190, 265, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 291, 296, 297, 301, 302, 303, 304], "obj": 89, "dynam": 89, "intern": [89, 264, 265, 282, 285, 293, 294], "constructor": 89, "factory_kwarg": [90, 91, 294], "processwrapp": [90, 91, 93], "how": [90, 91, 106, 229, 265, 266, 267, 268, 270, 272, 289, 290, 291, 293, 295, 296], "objective_nam": [91, 294], "loop": [91, 248, 264, 297], "process_wrapp": 93, "observer_init_info": [94, 294], "force_regist": [94, 96, 275, 277, 278, 280, 281, 282, 294], "force_isol": [94, 96, 294], "instantiant": 94, "associ": [94, 264, 289, 294], "caller": [94, 96, 291], "forward": [94, 96, 291], "logger": [94, 96], "ask": [94, 96, 279], "confirm": [94, 96], "By": [94, 124, 174, 178, 218, 266, 277, 278, 295, 297, 301], "onc": [94, 265, 274, 293, 295, 296], "round": [94, 224, 264], "down": 94, "give": [94, 188, 252, 274, 296], "config": [95, 115, 289], "configpars": 95, "just": [96, 276, 277, 278, 279, 289, 291, 295, 296], "One": [96, 269], "aloha": [96, 267, 268, 272, 289, 290, 293, 296, 302], "arrai": [96, 134, 135, 144, 145, 187, 190, 192, 265, 267, 268, 271, 273, 274, 277, 278, 280, 281, 285, 286, 287, 289, 291, 293, 294, 296], "reshap": [96, 266, 280, 281, 296, 297, 301], "simpl": [99, 100, 101, 103, 104, 105, 138, 173, 174, 177, 178, 265, 266, 289, 290, 293, 295, 296], "goal": [99, 100, 101], "o": [99, 100, 101, 273, 274, 291, 296], "among": [99, 100, 101, 269, 270, 295], "poli__bas": [99, 217, 223], "yml": [99, 106, 173, 177, 217, 223, 271, 274, 276, 279, 296], "simultan": [100, 104, 108, 174, 178, 184, 271], "map": [100, 104], "symbol": [100, 104], "main": [100, 174, 178, 266, 267, 268, 269, 270, 290, 291, 296], "api": [103, 104, 105, 267, 276], "assess": [103, 104, 105, 171, 272], "small": [103, 104, 105, 174, 265, 267, 274, 275, 282, 291, 293, 295], "protein": [103, 104, 105, 118, 123, 124, 127, 171, 181, 264, 267, 269, 271, 274, 275, 293, 294], "easi": [103, 104, 105, 264, 265, 270, 293, 295], "molecular": [103, 104, 105, 118, 123, 127, 181, 264], "better": [103, 104, 105, 264, 265, 270], "benchmark": [103, 104, 105, 200, 217, 221, 264, 268, 272], "ligand": [103, 104, 105, 264, 268, 272, 274], "garc\u00eda": [103, 104, 105, 264, 268, 274], "orteg\u00f3n": [103, 104, 105, 264, 268, 274], "miguel": [103, 104, 105, 264, 268], "gregor": [103, 104, 105, 264], "simm": [103, 104, 105, 264], "austin": [103, 104, 105, 264], "tripp": [103, 104, 105, 264], "jos\u00e9": [103, 104, 105, 171, 264], "hern\u00e1ndez": [103, 104, 105, 264], "lobato": [103, 104, 105, 264], "andrea": [103, 104, 105, 264], "bender": [103, 104, 105, 264], "sergio": [103, 104, 105, 264], "bacallado": [103, 104, 105, 264], "journal": [103, 104, 105, 264], "62": [103, 104, 105, 264], "15": [103, 104, 105, 264, 302], "august": [103, 104, 105, 264], "3486": [103, 104, 105, 264], "3502": [103, 104, 105, 264], "1021": [103, 104, 105, 264], "ac": [103, 104, 105, 264], "jcim": [103, 104, 105, 264], "1c01334": [103, 104, 105, 264], "target_nam": [104, 274, 294], "string_represent": [104, 274, 279, 280, 281], "liter": [104, 221, 265], "There": [106, 289, 291, 294], "sever": [106, 200, 209, 217, 270, 271, 295, 296], "prepare_receptor": 106, "rest": [106, 265, 291, 293], "descript": [106, 265, 271, 274, 289, 291, 296], "show": [106, 267, 270, 289, 296], "center": [106, 275], "websit": [106, 275], "scripp": 106, "edu": 106, "uncompress": [106, 275], "add": [106, 139, 188, 265, 276, 277, 278, 279, 290], "export": [106, 275], "autodock_vina": [106, 275], "bin": [106, 275, 294], "bashrc": [106, 275], "zshrc": [106, 275], "bash": 106, "In": [106, 166, 168, 264, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 298, 302], "ccsb": 106, "sh": [106, 275, 296], "thu": [106, 275], "might": [106, 200, 265, 267, 270, 275, 276, 277, 278, 279, 286, 289, 291, 296], "chang": [106, 118, 123, 127, 131, 148, 181, 267, 269, 270, 275, 277, 278, 286], "its": [106, 266, 270, 271, 274, 275, 277, 289, 290, 294, 295, 296], "permiss": [106, 275], "chmod": [106, 275], "abl": [106, 265, 267, 269, 270, 275, 291, 294, 296], "pyscreen": [106, 268, 275], "howev": [106, 271, 275, 294, 296], "sometim": [106, 275], "problemat": [106, 275], "ha": [106, 209, 265, 266, 270, 275, 289, 290, 294, 296, 298], "symlink": [106, 275], "ln": [106, 275], "sf": [106, 275], "easili": [106, 270, 275, 289, 295], "env": [106, 265, 267, 271, 274, 275, 276, 279, 289, 293, 294, 296], "src": [106, 265, 271, 274, 275, 276, 279, 289, 294], "ddr3_dock": 106, "task": [106, 107, 110, 113, 115, 148, 264, 270, 276, 279, 297], "git": [106, 265, 267, 268, 276, 279, 296], "clone": [106, 267, 271, 276, 279, 285], "431b052": [106, 276, 279], "cd": [106, 267, 276, 279], "particular": [106, 168, 180, 275, 276, 286, 291, 294, 295, 296], "proxy_rfp": [106, 113, 276], "proxyrfptask": [106, 113, 276], "rfp": [106, 110, 111, 115, 180, 268, 272], "asset": [106, 276], "fpbase": [106, 276], "And": [106, 289, 296], "now": [106, 265, 267, 270, 293, 294, 296], "py": [106, 221, 266, 267, 270, 289, 290, 291, 293, 294, 295, 296], "query_exampl": 106, "ddr3": 107, "et": [107, 183, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 289, 297, 301, 302], "al": [107, 183, 200, 221, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 286, 289, 297, 301, 302], "nat": [107, 183], "biol": [107, 183], "1036": [107, 183], "self": [108, 265, 266, 271, 290, 291, 296], "tdcblackbox": 108, "denois": [110, 166, 167, 264], "alia": 112, "base_candid": 113, "specifc": 115, "predict": [116, 138, 139, 157, 171, 264, 268, 270, 272, 297], "pair": [118, 127, 181], "biopython": [118, 123, 127, 181, 270, 277, 278, 294], "cock": [118, 123, 127, 181], "pa": [118, 123, 127, 181], "antao": [118, 123, 127, 181], "jt": [118, 123, 127, 181], "chapman": [118, 123, 127, 181], "ba": [118, 123, 127, 181], "cox": [118, 123, 127, 181], "cj": [118, 123, 127, 181], "dalk": [118, 123, 127, 181], "friedberg": [118, 123, 127, 181], "hamelryck": [118, 123, 127, 181], "kauff": [118, 123, 127, 181], "wilczynski": [118, 123, 127, 181], "b": [118, 123, 127, 181, 192, 265, 267, 273, 285, 286, 287, 291, 293, 296], "de": [118, 123, 127, 181, 264], "hoon": [118, 123, 127, 181], "mjl": [118, 123, 127, 181], "2009": [118, 123, 127, 181, 268], "freeli": [118, 123, 127, 181], "tool": [118, 123, 127, 181, 265, 277, 278, 294, 296], "bioinformat": [118, 123, 127, 181], "25": [118, 123, 127, 181], "1422": [118, 123, 127, 181], "1423": [118, 123, 127, 181], "usual": [119, 124, 215, 217, 265, 266, 268, 272, 286, 291, 295, 296, 297], "eager": [119, 128], "v5": [119, 124, 128], "compil": [119, 124, 128, 156, 271, 289], "specif": [119, 124, 128, 286, 293], "foldxblackbox": [119, 124, 128], "pre": [123, 266, 267, 271, 274, 277, 278], "20": [124, 264], "shown": 124, "core": [124, 265, 266, 288, 289, 290, 295, 296, 302], "through": [124, 266, 267, 290, 293], "total": [124, 138, 270], "cba": [131, 148, 150], "vae": [131, 148, 150, 151, 155, 156, 194, 196, 197, 297], "sb": [131, 148], "bo": 131, "minor": [131, 148], "modif": [131, 148], "conduct": [131, 148], "rm": [131, 148], "creator": [131, 148], "last": [131, 148, 270, 294], "x_aa": [134, 135, 144], "aa_idx": 134, "arn": [134, 135], "becom": [134, 135, 270], "row": [134, 135, 270], "base_seq": 136, "wild": [136, 141, 270], "mtuation": 136, "xt_p": [137, 142], "categor": [137, 142, 158, 196, 197], "probabl": [137, 142], "distribut": [137, 142, 158, 197, 264, 298], "pred": 138, "xt": 138, "predictor": 138, "balaji": 138, "lakshminarayanan": 138, "paper": [138, 150, 264, 294], "scalabl": 138, "uncertainti": [138, 297], "estim": [138, 166, 176, 177, 178, 179, 267, 268, 272], "deep": [138, 171, 264, 297], "ensembl": 138, "2017": [138, 264, 271], "varianc": 138, "random_st": [139, 146], "train_siz": [139, 146], "5000": 139, "return_test": [139, 146], "return_al": 139, "gfp": [139, 140, 141, 147], "test": [139, 200, 266, 286, 290], "ground": 139, "truth": 139, "gp": [139, 161], "partit": [139, 146, 280], "below": [139, 271, 274, 277, 278], "20th": 139, "percentil": [139, 146], "nois": [139, 222, 223, 224, 257, 268, 272], "data_df": 140, "panda": [140, 147, 270], "datafram": [140, 147, 270], "functional_onli": [140, 160], "ignore_stop": [140, 160], "return_str": 140, "raw": 140, "sampl": [142, 193, 264, 287, 291, 297, 303, 304], "aa_str": 143, "pad": [143, 145, 188], "hot": [143, 192], "onehot": 144, "alphabet_s": [144, 266, 290], "dna_str": 145, "base_ord": 145, "atcg": 145, "40": 146, "1000": [146, 295], "df_save_fil": 147, "bright": 147, "author": [148, 166, 268], "credit": 148, "herculean": 148, "go": [148, 268, 269, 294, 296], "aa": [149, 150, 151], "mimic": 150, "kera": [150, 154], "latent_dimension": [150, 151], "enc1_unit": [150, 151, 156], "train": [152, 196], "gaussian": [152, 223, 224, 264, 268, 272, 287, 297], "regress": 152, "sarkisyan": 152, "2016": [152, 264, 297], "plu": [152, 302], "constant": [152, 286], "input_shap": [154, 155], "latent_dim": [154, 155, 156], "variat": [154, 297], "via": [154, 264, 291], "latent": [154, 266, 290, 297], "space": [154, 189, 252, 266, 290, 297, 301], "flatten": [155, 266, 289, 290], "basic": [155, 248, 293, 296], "layer": 155, "n_token": 156, "seq_length": 156, "50": [156, 298], "eps_std": 156, "y_true": [157, 158], "y_pred": [157, 158], "likelihood": 158, "uniqu": [160, 291], "problem_typ": 161, "exact": [166, 266, 271, 274, 290, 296], "logp": [166, 167, 168, 172, 173, 174, 268, 272], "jointli": 166, "quantit": [166, 176, 177, 178, 179, 267, 268, 272], "druglik": [166, 176, 177, 178, 179, 267, 268, 272], "qed": [166, 174, 176, 177, 178, 179, 268, 272], "penal": [166, 168, 268, 272], "solubl": [166, 172, 173, 174, 268, 272], "fair": 166, "comparison": [166, 291], "_exactly_": 167, "adjust": 168, "magic": 168, "empir": [168, 279], "standard": [168, 223, 224, 279, 287], "deviat": [168, 279], "dataset": [168, 200, 264, 279], "todo": [168, 270, 283, 284, 288, 292, 299, 300], "rapid": [171, 264, 268, 272], "sourc": [171, 265], "bird": 171, "ey": 171, "view": [171, 270], "collect": [171, 199, 268, 271], "site": [171, 289, 293, 294], "reader": 171, "consid": [171, 271, 286, 296], "drop": [171, 271, 289, 293], "rosetta": [171, 271], "learn": [171, 264, 271], "blaabjerg": [171, 264, 268, 271], "lass": [171, 264], "maher": [171, 264], "kassem": [171, 264], "lydia": [171, 264], "good": [171, 264, 265, 267, 268, 289, 296], "nicola": [171, 264], "jonsson": [171, 264], "matteo": [171, 264], "cagiada": [171, 264], "kristoff": [171, 264], "johansson": [171, 264], "wouter": [171, 264], "boomsma": [171, 264, 271], "ameli": [171, 264], "stein": [171, 264], "kresten": [171, 264], "lindorff": [171, 264], "larsen": [171, 264], "faraldo": 171, "g\u00f3mez": [171, 264, 297], "detlef": 171, "weigel": 171, "nir": 171, "ben": 171, "tal": 171, "julian": 171, "echav": 171, "elif": [171, 264], "2023": [171, 264, 268, 269, 271], "e82593": [171, 264], "7554": [171, 264], "82593": [171, 264], "whose": [173, 177, 223, 276, 297], "quotient": [173, 268, 272], "descriptor": [173, 296], "both": [173, 177, 270, 277, 278, 295, 296], "poli__chem": [173, 177, 280, 281], "want": [173, 177, 265, 266, 270, 271, 274, 277, 278, 280, 281, 293, 295, 296], "local": [173, 177, 209, 266, 267, 285, 291, 294], "environemnt": [173, 177], "extra": [173, 177, 265, 289, 294], "interest": [173, 267, 270, 271, 274, 277, 278, 285, 286, 291, 293], "molfromsmil": [174, 178], "known": [174, 178, 280, 289], "silent": [174, 178], "nan": [174, 178], "someth": [174, 178], "than": [174, 178, 252, 295, 296], "continu": [177, 179, 199, 200, 217, 218, 252, 264, 268, 272, 293], "lipinski": [177, 179], "rule": [177, 179, 265], "strongli": 178, "advic": [178, 265], "heurist": 179, "discard": 179, "too": 179, "heavi": 179, "pareto": 180, "front": 180, "accessibl": 182, "sa": [182, 268, 272], "toi": [186, 199, 200, 217, 218, 221, 222, 224, 252, 273, 291, 295, 302], "avout": 186, "super": [186, 265, 266, 272, 290, 296], "mario": [186, 189, 196, 272, 296], "bro": [186, 272, 296], "level": [186, 187, 188, 189, 190, 191, 192, 193, 270, 272], "n_pad": 188, "left": 188, "room": 188, "agent": 188, "land": 188, "clean": [189, 270], "remov": [189, 269, 277, 278, 296], "11": [189, 192, 197, 267, 274, 294], "empti": 189, "level_txt": [190, 191], "n_sprite": [192, 197], "integ": [192, 193, 266, 286, 287, 290, 293, 296], "levels_onehot": 193, "probit": 193, "tensor_level": 194, "torch": [194, 296], "tensor": 194, "level_s": 194, "14": [194, 197], "could": [194, 265, 266, 270, 271, 276, 277, 278, 289, 290, 293, 296, 301], "mariogan": 194, "jar": [194, 265], "prob_matrix": 195, "item": [195, 262], "sentenc": 197, "shape": [197, 265, 266, 267, 273, 285, 286, 287, 290, 293], "z_dim": 197, "devic": 197, "path_to_state_dict": 198, "vaemario": 198, "pretrain": 198, "landscap": 200, "signatur": 200, "sign": [200, 286], "flip": [200, 286], "becaus": [200, 296], "re": [200, 265, 267, 270, 271, 290, 291, 293, 296], "deal": 200, "ali": [200, 264], "roomi": [200, 221, 264, 268, 286], "2015": [200, 264, 268, 286], "unconstrain": [200, 221, 264], "www": [200, 264], "halifax": 200, "nova": 200, "scotia": 200, "canada": 200, "dalhousi": 200, "univers": 200, "electr": 200, "surjanov": [200, 268], "bingham": [200, 268], "virtual": 200, "sfu": 200, "ca": 200, "ssurjano": 200, "linebo": [206, 286, 301], "kirschnj": 206, "xy": [209, 213, 214], "cross": 209, "trai": 209, "maxima": [209, 213], "quilt": 209, "pattern": 209, "2d": [209, 213, 214, 252], "alpha": [212, 267, 297], "veri": 213, "flat": 213, "pi": 213, "egg": 214, "holder": 214, "especi": [214, 265, 268], "difficult": 214, "know": [214, 270], "optima": [214, 221], "squar": 215, "norm": 215, "shift": 215, "awai": [215, 271], "bit": [215, 270], "normal": [216, 264, 294, 298], "903534": 216, "39": [216, 276], "16599": 216, "divid": 216, "dimens": [217, 218, 221, 252, 264, 286, 297], "focu": [217, 270, 289, 293], "ones": [217, 265], "dimension": [217, 252, 264], "function_nam": [218, 286, 297, 298, 301], "n_dimens": [218, 286, 297, 298, 301], "embed_in": [218, 221, 286], "randomli": [218, 266, 286, 289, 290, 293, 302, 303, 304], "embed": [218, 252, 286], "emb": [218, 252, 286], "toycontinuousproblem": 218, "bound": 218, "lower": [218, 252], "upper": 218, "seri": 220, "testb": 220, "wikipedia": 220, "wiki": 220, "test_functions_for_optim": 220, "ackley_function_01": [221, 268, 272, 286, 297, 298, 301], "alpine_01": [221, 286], "alpine_02": [221, 286], "bent_cigar": [221, 286], "brown": [221, 286], "chung_reynold": [221, 286], "cosine_mixtur": [221, 286], "deb_01": [221, 286], "deb_02": [221, 286], "deflected_corrugated_spr": [221, 286], "styblinski_tang": 221, "shifted_spher": [221, 286], "easom": [221, 268, 272, 286], "cross_in_trai": [221, 286], "egg_hold": [221, 286], "camelback_2d": [221, 286], "n_dim": 221, "definit": [221, 265, 286], "white": [222, 223, 257, 268, 272], "vector": 224, "downward": 224, "exemplifi": 248, "Not": 248, "come": [248, 265, 274, 293, 295], "benefit": 248, "intellisens": 248, "spawn": 249, "higher": [252, 270], "afford": 252, "intrins": 252, "actual": [252, 265, 286, 294], "readm": [256, 265], "verbatum": 256, "fullnam": 262, "escap": 262, "underlin": 262, "block": [262, 265], "rubric": 262, "endfor": 262, "endif": 262, "endblock": 262, "ar15": 264, "url": [264, 268], "bkj": 264, "maximilian": 264, "balandat": [264, 297, 301], "brian": 264, "karrer": 264, "daniel": 264, "jiang": 264, "daulton": 264, "benjamin": 264, "letham": 264, "eytan": 264, "bakshi": 264, "botorch": [264, 268, 297, 301], "framework": 264, "effici": [264, 291, 297], "mont": 264, "carlo": 264, "decemb": 264, "2020": [264, 268, 297, 301, 302], "1910": 264, "06403": 264, "cs": 264, "math": 264, "stat": 264, "bkg": 264, "23": [264, 267], "bf17": 264, "je": 264, "frellsen": [264, 271], "spheric": 264, "convolut": 264, "applic": 264, "guyon": 264, "u": [264, 291], "von": 264, "luxburg": 264, "bengio": 264, "wallach": 264, "fergu": 264, "vishwanathan": 264, "garnett": 264, "editor": 264, "advanc": 264, "neural": [264, 271], "system": [264, 269, 270, 294], "volum": 264, "30": [264, 286], "curran": 264, "inc": 264, "proceed": 264, "neurip": 264, "cc": [264, 274], "paper_fil": 264, "1113d7a76ffceca1bb350bfe145467c6": 264, "pdf": 264, "dpam02": 264, "deb": [264, 302], "pratap": 264, "agarw": 264, "meyarivan": 264, "fast": 264, "elitist": 264, "multiobject": 264, "genet": [264, 302], "nsga": 264, "ii": 264, "ieee": 264, "transact": 264, "evolutionari": [264, 266, 268, 290, 298], "182": 264, "197": 264, "april": 264, "2002": [264, 302], "1109": 264, "4235": 264, "996017": 264, "gfsc22": 264, "matter": 264, "practic": 264, "thirti": 264, "sixth": 264, "confer": 264, "openreview": 264, "net": 264, "forum": 264, "yczrdi0y7g": 264, "gost": 264, "22": [264, 270], "dockstr": [264, 267, 268, 272, 289, 293, 294], "gpb": 264, "jacob": 264, "gardner": [264, 297], "geoff": 264, "pleiss": 264, "david": [264, 298], "bindel": 264, "kilian": 264, "weinberg": 264, "gpytorch": [264, 297], "blackbox": 264, "matrix": [264, 298], "infer": 264, "gpu": 264, "2018": [264, 268, 297], "gbwd": 264, "rafael": 264, "bombarelli": [264, 297], "jennif": 264, "wei": 264, "duvenaud": 264, "benjam\u00edn": 264, "s\u00e1nchez": 264, "lengel": 264, "denni": 264, "sheberla": 264, "jorg": 264, "aguilera": 264, "iparraguirr": 264, "timothi": 264, "hirzel": 264, "ryan": 264, "adam": 264, "al\u00e1n": 264, "driven": 264, "central": 264, "268": 264, "276": [264, 294], "februari": 264, "acscentsci": 264, "7b00572": 264, "ho96": 264, "hansen": [264, 298], "ostermei": [264, 298], "arbitrari": [264, 286], "evolut": [264, 302], "strategi": [264, 268, 298], "covari": [264, 298], "312": 264, "317": 264, "1996": [264, 298], "icec": 264, "542381": 264, "hfg": 264, "21": [264, 289, 293], "machin": 264, "drug": [264, 293], "discoveri": 264, "develop": [264, 265, 266, 290], "fifth": 264, "2021": [264, 275, 282], "8nvgnornowr": 264, "jrhernandezgarcia": 264, "moksh": 264, "jain": [264, 269], "sharath": 264, "chandra": 264, "raparthi": 264, "alex": 264, "hern": 264, "\u00e1": 264, "ndez": 264, "garc": 264, "\u0131": 264, "jarrid": 264, "rector": 264, "brook": [264, 268], "yoshua": 264, "santiago": 264, "miret": 264, "emmanuel": 264, "gf": 264, "low": 264, "kraus": 264, "emma": 264, "brunskil": 264, "kyunghyun": 264, "cho": 264, "barbara": 264, "engelhardt": 264, "sivan": 264, "sabato": 264, "jonathan": 264, "scarlett": 264, "40th": 264, "202": 264, "14631": 264, "14653": 264, "pmlr": 264, "29": 264, "jul": 264, "mlr": 264, "press": 264, "v202": 264, "jain23a": 264, "kmh": 264, "19": 264, "johann": 264, "kirschner": [264, 301], "mojmir": 264, "mutni": 264, "nicol": 264, "hiller": 264, "rasmu": 264, "ischebeck": 264, "safe": 264, "high": 264, "subspac": 264, "36th": 264, "3429": 264, "3438": 264, "2019": [264, 268, 301], "v97": 264, "kirschner19a": 264, "ssw": 264, "16": [264, 270], "bobak": 264, "shahriari": [264, 297], "kevin": 264, "swerski": 264, "ziyu": 264, "wang": 264, "nando": 264, "freita": 264, "human": [264, 297], "out": [264, 273, 280, 281, 286, 287, 293, 297], "review": 264, "104": 264, "148": 264, "175": 264, "januari": 264, "jproc": 264, "2494218": 264, "sr73": 264, "shrake": [264, 270], "ruplei": [264, 270], "exposur": 264, "atom": 264, "lysozym": 264, "insulin": 264, "79": 264, "351": 264, "371": 264, "sep": 264, "1973": [264, 270], "1016": 264, "0022": 264, "2836": 264, "73": 264, "90011": 264, "smg": 264, "preprint": 264, "blankdeb20": 264, "blank": [264, 302], "pymoo": [264, 302], "89497": 264, "89509": 264, "tutori": [265, 270, 289, 291, 295, 296, 297], "cover": 265, "what": [265, 274, 289, 295], "look": [265, 266, 290, 296], "poli": [265, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 294, 295, 297, 298, 301, 302, 303, 304], "live": [265, 294], "goe": [265, 270, 296], "exactli": [265, 266, 276, 279, 290], "doesn": [265, 275, 291, 294], "mani": [265, 302], "think": 265, "project": [265, 270, 294], "ll": [265, 269, 270, 293, 295], "carri": 265, "let": [265, 267, 270, 289, 291, 293, 294, 296], "super_mario_bro": [265, 268, 289, 293], "pt": [265, 271], "level_util": 265, "md": [265, 266], "As": [265, 270, 289, 294, 296], "don": [265, 268, 274, 294], "end": [265, 270, 291, 295], "ignor": 265, "altern": 265, "averag": 265, "abstract_black_box": [265, 296], "abstract_problem_factori": [265, 296], "problem_setup_inform": [265, 291, 296], "pythonpath": 265, "runtim": [265, 296], "imagin": 265, "your_local_depend": 265, "yourblackbox": 265, "your_arg": 265, "your_second_arg": 265, "your_kwarg": 265, "yourproblemfactori": 265, "chapter": [265, 266, 267, 268, 270, 289, 290, 291, 293, 295, 296], "your_problem": 265, "problem_info": [265, 285, 289, 291, 293, 296], "__name__": [265, 271, 274, 295, 296], "__main__": [265, 271, 274, 295, 296], "registri": [265, 289, 295], "register_problem": [265, 296], "your_problem_factori": 265, "your_env": 265, "That": [265, 276], "camel_cas": 265, "under": [265, 267, 269, 274, 275, 286, 296], "tell": 265, "though": 265, "sai": [265, 270, 286, 289, 294, 296], "channel": [265, 296], "machinelearninglifesci": [265, 266, 267, 268, 296], "dev": [265, 267, 268, 270], "java": [265, 296], "poli__mario": 265, "forg": 265, "pytorch": 265, "openjdk": [265, 294], "cpuonli": 265, "click": [265, 268, 272, 293], "moreov": [265, 266, 290], "googl": [265, 268], "colab": [265, 268], "put": [265, 270, 302], "describ": [265, 270, 275, 276, 279, 282, 293, 295], "register": 265, "get_problem": [265, 267, 289, 293, 295, 296], "your_arg_1": 265, "mayb": 265, "your_arg_2": 265, "your_factori": 265, "thereof": 265, "At": [265, 270, 291, 293, 296], "point": [265, 270, 291, 293, 296, 297], "wrote": 265, "direct": [265, 301], "life": [265, 271], "debug": [265, 267, 271, 274, 285], "vscode": 265, "available_problem_factori": 265, "importerror": 265, "share": [265, 266, 267], "feel": [265, 266, 270, 293], "contribut": [265, 266], "case": [266, 267, 270, 273, 285, 286, 287, 290, 291, 293, 296], "poli_baselin": [266, 267, 289, 293, 295, 297, 298, 301, 302, 303, 304], "almost": [266, 290], "trivial": [266, 267, 290, 293, 296], "complic": [266, 290], "likewis": [266, 290], "explain": [266, 290, 291], "abstractsolv": [266, 289, 290], "abstract_solv": [266, 289, 290], "black_box": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "histori": [266, 289, 290, 293, 303, 304], "x0_i": 266, "y0_i": 266, "ingredi": [266, 270, 289, 290], "next_candid": [266, 289, 290, 293], "propos": [266, 290, 293], "solv": [266, 289, 290, 293, 295, 296, 297, 298, 301, 302, 303, 304], "max_it": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "next": [266, 268, 270, 289, 290, 291, 293, 295, 296], "solut": [266, 280, 290, 302], "notimplementederror": [266, 290], "subclass": [266, 290], "100": [266, 290, 293, 302, 303, 304], "rang": [266, 267, 290], "callback": 266, "pre_step_callback": 266, "turn": 266, "updat": [266, 289, 291, 293, 298], "_": [266, 267, 297, 298, 301, 302], "post": 266, "post_step_callback": 266, "get_best_perform": [266, 289], "break_at_perform": [266, 295], "break": [266, 295], "leverag": [266, 290], "fact": [266, 290], "simplest": [266, 289, 290], "random_mut": [266, 289, 290, 293, 295], "len": [266, 290], "best_x": [266, 290], "argmax": [266, 290], "alwai": [266, 273, 286, 287, 290, 294, 296], "next_x": [266, 290], "po": [266, 290], "randint": [266, 290], "choic": [266, 290, 302], "pretti": [266, 270, 290], "lean": [266, 290], "notic": [266, 274, 279, 290, 291], "sort": [266, 285, 290, 302], "logic": [266, 290, 291], "noth": [266, 289, 290], "worri": [266, 268, 290, 296], "slightli": [266, 290, 296], "unfortun": [267, 274], "linux": [267, 274, 294], "maco": [267, 274], "top": [267, 268, 293], "therefor": [267, 294], "anaconda": 267, "went": 267, "okai": [267, 271], "anoth": [267, 270, 289, 293], "right": [267, 291], "bleed": 267, "edg": 267, "while": [267, 289], "stabl": [267, 289, 293], "releas": [267, 270], "shell": [267, 296], "home": [267, 269, 270, 276, 277, 278], "poli_object": [267, 271, 296], "phase": 267, "short": [267, 270], "futur": [267, 270], "everyth": [267, 269, 291], "requisit": [267, 274], "openbabel": [267, 274], "white_nois": [267, 287, 289, 293], "minimal_working_exampl": 267, "plenti": 267, "complex": [267, 270], "rasp": [268, 271, 272, 289, 293], "pytdc": 268, "accces": 268, "featur": [268, 271], "clash": [268, 270], "discuss": [268, 291, 293, 295, 296], "baselin": [268, 289, 291, 293, 294, 295, 297, 302], "place": [268, 269, 270], "fresh": 268, "full": [268, 270], "drawn": [268, 272], "unit": [268, 272], "word": [268, 272, 296], "spell": [268, 272], "3pbl": [268, 272, 275], "implmenet": [268, 272], "fluoresc": [268, 270, 272, 289], "On": 268, "focus": 268, "cma": 268, "es": 268, "vanilla": 268, "acquisit": [268, 297, 301], "over": 268, "encourag": 268, "gonzalezduquebartelsmichael": 268, "2024": [268, 270], "gonz\u00e1lez": 268, "duqu": 268, "bartel": 268, "simon": 268, "michael": 268, "richard": 268, "month": 268, "jan": 268, "titl": 268, "libari": 268, "year": 268, "drd3_dock": [268, 275, 289, 293], "graff": 268, "shakhnovich": 268, "foldx_": 268, "gfp_cba": [268, 289, 293], "park": 268, "listgarten": 268, "gfp_select": [268, 289, 293], "penalized_logp_lambo": [268, 279, 289, 293], "rdkit_": 268, "rfp_foldx_": 268, "sa_tdc": [268, 282, 289, 293], "ertl": 268, "schuffenhau": 268, "volz": 268, "toy_continuous_problem": [268, 286, 289, 293, 297, 301], "2013": 268, "coupl": [268, 296], "guid": 268, "subset": [269, 286, 298], "suit": 269, "thing": [269, 270, 289, 296], "dg": 269, "metric": 269, "recent": [269, 294], "academ": 269, "licens": 269, "zip": [269, 294], "auxiliari": 269, "renam": [269, 270, 276, 277, 278], "help": 269, "mac": [269, 294], "warn": [269, 294], "unverifi": 269, "quarantin": 269, "command": [269, 270, 277, 278, 294], "own": 269, "risk": 269, "xattr": 269, "appl": [269, 294], "familiar": 270, "ourselv": 270, "alreadi": [270, 289, 293], "refresh": 270, "essenti": [270, 291], "notebook": 270, "pathlib": [270, 271, 276, 277, 278, 282, 289, 291], "shutil": 270, "path_to_foldx_fil": 270, "this_dir": [270, 271, 291], "resolv": [270, 271, 289, 291], "tmp": 270, "mkdir": [270, 291], "copyfil": 270, "respons": 270, "transport": 270, "oxigen": 270, "sperm": 270, "whale": 270, "101m": 270, "hand": 270, "urllib": 270, "web_address": 270, "rcsb": 270, "urlretriev": 270, "Of": [270, 293], "cours": [270, 293], "long": [270, 289, 296], "aid": 270, "pdb_name": 270, "choos": [270, 286], "repairpdb": [270, 277, 278], "littl": 270, "consumig": 270, "400sec": 270, "build": [270, 293, 296, 297], "101m_repair": 270, "repair_cmd": 270, "water": [270, 277, 278, 280], "crystal": [270, 277, 278], "tree": 270, "fxout": 270, "unrecognized_molecul": 270, "onward": [270, 297], "inspect": [270, 271, 274], "parser": 270, "get_residu": 270, "dive": [270, 293, 295], "first_residu": 270, "resnam": 270, "index": 270, "get_par": 270, "met": [270, 294], "extract": 270, "sequtil": 270, "seq1": 270, "original_residu": 270, "chain_id": 270, "position_in_sequ": 270, "mutant_residu": 270, "glycin": 270, "Be": [270, 271], "care": [270, 289, 294], "fire": 270, "did": 270, "modifi": 270, "mutation_list": 270, "residue_idx": 270, "li": 270, "tranform": 270, "position_in_chain": 270, "content": 270, "indiviual_list": 270, "ma0g": 270, "won": 270, "buildmodel": 270, "gibb": 270, "foldx_cmd": 270, "consortium": 270, "jesper": 270, "freder": 270, "joost": 270, "lui": 270, "peter": 270, "vanhe": 270, "erik": 270, "verschueren": 270, "baeten": 270, "javier": 270, "delgado": 270, "francoi": 270, "permut": 270, "concept": 270, "raphael": 270, "gueroi": 270, "backhbond": 270, "142": 270, "58": 270, "sidehbond": 270, "48": 270, "61": 270, "energy_vdw": 270, "179": 270, "63": 270, "electro": 270, "energy_solvp": 270, "245": 270, "28": [270, 271], "energy_solvh": 270, "238": 270, "89": 270, "energy_vdwclash": 270, "42": 270, "energy_tors": 270, "70": 270, "backbone_vdwclash": 270, "158": 270, "entropy_sidec": 270, "105": 270, "87": 270, "entropy_mainc": 270, "231": 270, "69": 270, "bond": 270, "00": 270, "helix": 270, "dipol": 270, "75": 270, "loop_entropi": 270, "cis_bond": 270, "disulfid": 270, "kn": 270, "electrostat": 270, "partial": 270, "coval": 270, "energy_ionis": 270, "56": 270, "entropi": 270, "32": 270, "meta0": 270, "gly": 270, "ok": 270, "wed": 270, "feb": 270, "44": 270, "52": 270, "spend": 270, "96": 270, "valid": 270, "101m_repair_1": 270, "successfulli": 270, "completedprocess": 270, "sjt972": [270, 289, 293, 294], "understanding_foldx": 270, "01": 270, "returncod": 270, "average_101m_repair": 270, "dif_101m_repair": 270, "pdblist_101m_repair": 270, "raw_101m_repair": 270, "wt_101m_repair_1": 270, "raw_": 270, "_repair": [270, 277, 278], "tabl": 270, "quantiti": 270, "column_nam": 270, "backbon": 270, "hbond": 270, "sidechain": 270, "van": 270, "der": 270, "waal": 270, "solvat": 270, "polar": 270, "hydrophob": 270, "mainchain": 270, "sloop_entropi": 270, "mloop_entropi": 270, "torsion": 270, "bridg": 270, "kon": 270, "ionis": 270, "pd": 270, "readlin": 270, "df": 270, "split": 270, "column": 270, "var": [270, 294], "l3": 270, "qk9dx6g958765kmn_2wn34t00000gn": 270, "ipykernel_25734": 270, "1758354106": 270, "deprecationwarn": 270, "pyarrow": 270, "major": 270, "arrow": 270, "interoper": 270, "caus": 270, "pleas": [270, 289, 293, 294], "issu": 270, "54466": 270, "overal": 270, "31": 270, "7457": 270, "34": 270, "3436": 270, "notat": 270, "stand": [270, 293, 296], "again": 270, "wt_structur": 270, "mut_structur": 270, "pdb1": 270, "shrakeruplei": 270, "attach": [270, 291], "8407": 270, "731560227876": 270, "8439": 270, "063468009845": 270, "impact": 270, "databas": 270, "desir": [270, 293, 294], "lesser": 270, "stabler": 270, "correl": 270, "present": [270, 296], "supervis": 271, "approach": 271, "network": [271, 297], "drawback": 271, "similar": 271, "foldx_stabl": [271, 278, 289, 293], "awar": [271, 297], "scale": [271, 286], "easier": 271, "poli__rasp": 271, "correct": [271, 274, 277, 278, 279, 280, 281, 285, 296], "breakpoint": [271, 274], "satisfi": [271, 274], "root": [271, 274, 276, 279, 294], "3ned": [271, 289], "__file__": 271, "wildtype_pdb_paths_for_rasp": 271, "f_rasp": 271, "wildtype_str": 271, "join": [271, 289], "three": [271, 291, 293], "three_mut": 271, "wildtype_sequ": 271, "ddg": 271, "approx": 271, "03": 271, "07": 271, "clang": 271, "cmake": 271, "reduc": 271, "pin": 271, "hash": 271, "bd23a0bf627ae9b08842102a5c2e9404b4a81924": 271, "cavity_model_15": 271, "ds_model": 271, "3ccebe87e017b6bd737f88e1943557d128c85616": 271, "against": [271, 274], "checksum": 271, "satur": 271, "mutagenesi": 271, "pmo": 272, "jump": 272, "cap": 273, "prepar": 274, "autodock": 274, "vina": 274, "suppos": 274, "batteri": 274, "even": [274, 296], "poli__dockstr": [274, 294], "canon": [274, 275], "risperidon": 274, "dockstringproblemfactori": 274, "drd2": [274, 294], "risperidone_smil": 274, "cc1": 274, "n2ccccc2": 274, "n1": 274, "ccn3ccc": 274, "cc3": 274, "c4": 274, "noc5": 274, "c4c": 274, "c5": 274, "handl": [274, 277, 278, 280, 281], "hood": [274, 275], "abov": [275, 276, 279, 282, 295, 296], "success": 275, "underneath": [275, 276, 279, 282, 293], "poli__tdc": [275, 282], "text": [276, 277, 278, 296], "foldx_rfp_lambo": [276, 279, 289, 293], "poli__lambo": [276, 279], "avali": 276, "skip": 276, "decid": 276, "11189": 276, "00587946": 276, "8155": 276, "acces": [277, 282], "foldx_stability_and_sasa": [277, 278, 289, 293], "v4": [277, 278], "filenam": [277, 278], "cach": [277, 278], "your_fil": [277, 278], "heteroatom": [277, 278], "pdbtool": [277, 278], "Then": [277, 278, 280, 281], "foldx_sasa": [277, 289, 293], "poli__protein": [277, 278, 294], "carefulli": 279, "zinc": 279, "coeffici": 280, "octanol": 280, "rdkit_logp": [280, 289, 293, 294], "carbon": [280, 281], "6361": 280, "rdkit_q": [281, 289, 293], "35978494": 281, "assert": [281, 295], "isclos": 281, "8548": 282, "run_info": [285, 289], "link": 285, "peopl": 286, "sum_": 286, "x_d": 286, "saasbo": 286, "assumpt": 286, "roughli": 286, "speak": 286, "question": 286, "30d": 286, "dimensions_to_embed_in": 286, "mathcal": 287, "But": 288, "idea": [288, 289], "rc": 289, "sit": 289, "rfp_foldx_stability_and_sasa": [289, 293], "stick": 289, "red": 289, "explor": [289, 297], "ls": 289, "3ned_repair": 289, "optimizing_protein_st": 289, "ipynb": 289, "mrogu": 289, "hopefulli": 289, "remind": 289, "forgot": 289, "traceback": 294, "138": [], "typeerror": [], "got": [], "unexpect": [], "176": 294, "145": 294, "cell": 294, "439": 294, "437": 294, "438": 294, "__create_as_isolated_process": 294, "440": 294, "441": 294, "442": 294, "443": 294, "444": 294, "445": 294, "446": 294, "447": 294, "448": 294, "449": 294, "problem_inform": 294, "451": 294, "278": 294, "tb": 294, "msg": 294, "277": 294, "279": 294, "280": 294, "281": 294, "msg_type": 294, "282": 294, "five": 289, "section": [289, 295, 296], "select": [289, 293, 301], "alter": 289, "special": [289, 293], "n_iter": 289, "178": [], "76": [], "267": [], "80": [], "13": [], "374": [], "65": [], "17": [], "146": [], "340": [], "27": [], "77": 294, "41": [], "na194f": [], "asna194": [], "193": [], "phe": [], "fri": [], "09": [], "51": [], "54": [], "3ned_repair_1": [], "qa114": [], "glna114": [], "113": [], "ser": [], "da3m": [], "aspa3": [], "kei": [289, 295], "get_best_solut": [289, 293, 295, 302, 303, 304], "41639": 289, "0629": [], "5983": [], "1298": [], "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslsdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayftntklditshnedytiveqyernegrhstggmdelyk": [], "appli": 290, "part": [291, 294], "compar": [291, 294], "qualiti": 291, "save": 291, "json": 291, "mlflow": 291, "weight": 291, "bias": 291, "abstract_observ": 291, "skeleton": 291, "simpleobserv": 291, "init": 291, "servic": 291, "wandb": 291, "adjac": 291, "identifi": 291, "uuid4": 291, "metadata": 291, "uuid": 291, "experiment_path": 291, "as_dict": 291, "recal": 291, "tolist": 291, "dump": 291, "curiou": 291, "rememb": [291, 296], "invent": 291, "wheel": 291, "tensorboard": 291, "fp": 291, "snippet": [291, 295], "scenario": 291, "z": 291, "were": [291, 294], "accordingli": 291, "migu": 291, "flea": [291, 296], "showcas": 291, "behind": 291, "saw": 291, "overwritten": 291, "deeper": [293, 295], "intro": 293, "treat": 293, "anyth": 293, "further": 293, "page": [293, 296], "randommut": [293, 295, 303, 304], "anaconda3": [289, 293, 294], "docs2": [289, 293, 294], "lib": [289, 293, 294], "python3": [289, 293, 294], "tqdm": [289, 293], "auto": [289, 293], "tqdmwarn": [289, 293], "iprogress": [289, 293], "jupyt": [289, 293], "ipywidget": [289, 293], "readthedoc": [289, 293], "io": [289, 293], "user_instal": [289, 293], "autonotebook": [289, 293], "notebook_tqdm": [289, 293], "16173153": 293, "dtype": 293, "u1": 293, "talk": 293, "babel": 294, "No": 294, "freez": 294, "grep": 294, "135": 294, "dynamically_instanti": 294, "102": 294, "92": 294, "exec": 294, "modulenotfounderror": 294, "critic": 294, "opt": 294, "homebrew": 294, "condabin": 294, "autodock_vina_1_1_2_mac_catalina_64bit": 294, "usr": 294, "cryptex": 294, "app": 294, "sbin": 294, "cryptexd": 294, "codex": 294, "bootstrap": 294, "appleintern": 294, "tex": 294, "texbin": 294, "cargo": 294, "using_poli": 294, "the_bas": 294, "python39": 294, "dynload": 294, "externalblackbox": 294, "num_evalu": 294, "dockstringwarn": 294, "although": 294, "perfectli": 294, "match": [294, 296], "platform": 294, "report": 294, "f_logp": 294, "x0_logp": 294, "y0_logp": 294, "logpblackbox": 294, "combin": 295, "optimizing_aloha": 295, "01_a_simple_example_of_optim": 295, "our_aloha": [295, 296], "past": 295, "haven": 295, "realli": 295, "Its": 295, "summari": 295, "less": 295, "conclud": 295, "takeawai": 295, "independ": 295, "why": 295, "registering_aloha": 296, "search": [296, 297], "aloof": 296, "syntax": 296, "ouralohablackbox": 296, "sum": 296, "axi": 296, "keepdim": 296, "get_max_sequence_length": 296, "x_0": 296, "alohablackbox": 296, "ascii_uppercas": 296, "ouralohaproblemfactori": 296, "interpret": 296, "poli_aloha": 296, "poli_aloha_problem": 296, "yourself": 296, "aloha_problem_factori": 296, "somewher": 296, "workhors": 296, "querying_aloha": 296, "emphas": 296, "amaz": 296, "x1": 296, "y1": 296, "subtl": 296, "cheminformat": 296, "mechan": 296, "solver": [296, 297, 298, 301, 302, 303, 304], "approxim": 297, "tild": 297, "boldsymbol": [297, 298], "surrog": 297, "render": 297, "smartli": 297, "balanc": 297, "exploit": 297, "grid": 297, "vanillabayesianoptim": 297, "f_acklei": [297, 301], "randn": [297, 301], "clip": [297, 301], "bo_solv": 297, "great": 297, "mostli": 297, "intent": 297, "adversari": 297, "gan": 297, "maintain": 298, "mu": 298, "sigma": 298, "member": 298, "introduct": 298, "blogpost": 298, "pycma": 298, "cma_e": 298, "toycontinuousproblemfactori": 298, "population_s": [298, 302], "initial_mean": 298, "initial_sigma": 298, "restrict": 301, "coordin": 301, "singletaskgp": 301, "type_of_lin": 301, "non": 302, "domin": 302, "mate": 302, "procedur": 302, "upon": 302, "alohaproblemfactori": [302, 303, 304], "multi_objective_black_box": 302, "multiobjectiveblackbox": 302, "discretensgaii": 302, "hyperparamet": 302, "max_iter": 302, "num_mut": 302, "f_aloha": 302, "togeth": 302, "popul": 302, "56267": 289, "846902": 289, "39441": 289, "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslqdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayntntklditshnedytiveqyernegrhstggmdelyk": 289}, "objects": {"": [[0, 0, 0, "-", "poli"]], "poli": [[1, 0, 0, "-", "core"], [88, 0, 0, "-", "objective"], [92, 0, 0, "-", "objective_factory"], [97, 0, 0, "-", "objective_repository"], [226, 0, 0, "-", "registered_objectives"], [227, 0, 0, "-", "tests"]], "poli.core": [[2, 0, 0, "-", "abstract_black_box"], [5, 0, 0, "-", "abstract_problem_factory"], [8, 0, 0, "-", "chemistry"], [11, 0, 0, "-", "exceptions"], [14, 0, 0, "-", "multi_objective_black_box"], [16, 0, 0, "-", "problem_setup_information"], [18, 0, 0, "-", "proteins"], [21, 0, 0, "-", "registry"], [30, 0, 0, "-", "util"]], "poli.core.abstract_black_box": [[3, 1, 1, "", "AbstractBlackBox"], [4, 1, 1, "", "NegativeBlackBox"]], "poli.core.abstract_black_box.AbstractBlackBox": [[3, 2, 1, "", "__call__"], [3, 2, 1, "", "__del__"], [3, 2, 1, "", "__enter__"], [3, 2, 1, "", "__exit__"], [3, 2, 1, "", "__init__"], [3, 2, 1, "", "__neg__"], [3, 2, 1, "", "_black_box"], [3, 3, 1, "", "batch_size"], [3, 3, 1, "", "info"], [3, 3, 1, "", "num_workers"], [3, 3, 1, "", "observer"], [3, 3, 1, "", "observer_info"], [3, 3, 1, "", "parallelize"], [3, 2, 1, "", "reset_evaluation_budget"], [3, 2, 1, "", "set_observer"], [3, 2, 1, "", "terminate"]], "poli.core.abstract_black_box.NegativeBlackBox": [[4, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory": [[6, 1, 1, "", "AbstractProblemFactory"], [7, 1, 1, "", "MetaProblemFactory"]], "poli.core.abstract_problem_factory.AbstractProblemFactory": [[6, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory.MetaProblemFactory": [[7, 2, 1, "", "__init__"]], "poli.core.chemistry": [[9, 0, 0, "-", "tdc_black_box"]], "poli.core.chemistry.tdc_black_box": [[10, 1, 1, "", "TDCBlackBox"]], "poli.core.chemistry.tdc_black_box.TDCBlackBox": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "from_smiles"], [10, 3, 1, "", "oracle"]], "poli.core.exceptions": [[12, 4, 1, "", "BudgetExhaustedException"], [13, 4, 1, "", "PoliException"]], "poli.core.multi_objective_black_box": [[15, 1, 1, "", "MultiObjectiveBlackBox"]], "poli.core.multi_objective_black_box.MultiObjectiveBlackBox": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "_black_box"], [15, 3, 1, "", "objective_functions"]], "poli.core.problem_setup_information": [[17, 1, 1, "", "ProblemSetupInformation"]], "poli.core.problem_setup_information.ProblemSetupInformation": [[17, 2, 1, "", "__init__"]], "poli.core.proteins": [[19, 0, 0, "-", "foldx_black_box"]], "poli.core.proteins.foldx_black_box": [[20, 1, 1, "", "FoldxBlackBox"]], "poli.core.proteins.foldx_black_box.FoldxBlackBox": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "create_working_directory"], [20, 3, 1, "", "experiment_id"], [20, 3, 1, "", "tmp_folder"], [20, 3, 1, "", "wildtype_amino_acids"], [20, 3, 1, "", "wildtype_pdb_paths"], [20, 3, 1, "", "wildtype_residue_strings"], [20, 3, 1, "", "wildtype_residues"]], "poli.core.registry": [[22, 5, 1, "", "delete_observer_run_script"], [23, 5, 1, "", "delete_problem"], [24, 5, 1, "", "get_problem_factories"], [25, 5, 1, "", "get_problems"], [26, 5, 1, "", "register_problem"], [27, 5, 1, "", "register_problem_from_repository"], [28, 5, 1, "", "set_observer"], [29, 5, 1, "", "set_observer_run_script"]], "poli.core.util": [[31, 0, 0, "-", "abstract_observer"], [33, 0, 0, "-", "alignment"], [35, 0, 0, "-", "batch"], [38, 0, 0, "-", "chemistry"], [45, 0, 0, "-", "external_observer"], [47, 0, 0, "-", "files"], [53, 0, 0, "-", "inter_process_communication"], [57, 0, 0, "-", "objective_management"], [61, 0, 0, "-", "observer_wrapper"], [63, 0, 0, "-", "proteins"], [84, 0, 0, "-", "seeding"]], "poli.core.util.abstract_observer": [[32, 1, 1, "", "AbstractObserver"]], "poli.core.util.abstract_observer.AbstractObserver": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "finish"], [32, 2, 1, "", "observe"]], "poli.core.util.alignment": [[34, 0, 0, "-", "is_aligned"]], "poli.core.util.batch": [[36, 0, 0, "-", "batch_input"]], "poli.core.util.batch.batch_input": [[37, 5, 1, "", "batched"]], "poli.core.util.chemistry": [[39, 0, 0, "-", "string_to_molecule"]], "poli.core.util.chemistry.string_to_molecule": [[40, 5, 1, "", "selfies_to_molecules"], [41, 5, 1, "", "smiles_to_molecules"], [42, 5, 1, "", "strings_to_molecules"], [43, 5, 1, "", "translate_selfies_to_smiles"], [44, 5, 1, "", "translate_smiles_to_selfies"]], "poli.core.util.external_observer": [[46, 1, 1, "", "ExternalObserver"]], "poli.core.util.external_observer.ExternalObserver": [[46, 2, 1, "", "__getattr__"], [46, 2, 1, "", "__init__"], [46, 2, 1, "", "finish"], [46, 2, 1, "", "initialize_observer"], [46, 2, 1, "", "observe"]], "poli.core.util.files": [[48, 0, 0, "-", "download_files_from_github"], [51, 0, 0, "-", "integrity"]], "poli.core.util.files.download_files_from_github": [[49, 5, 1, "", "download_file_from_github_repository"], [50, 5, 1, "", "get_sha_for_tag"]], "poli.core.util.files.integrity": [[52, 5, 1, "", "compute_md5_from_filepath"]], "poli.core.util.inter_process_communication": [[54, 0, 0, "-", "process_wrapper"]], "poli.core.util.inter_process_communication.process_wrapper": [[55, 1, 1, "", "ProcessWrapper"], [56, 5, 1, "", "get_connection"]], "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper": [[55, 2, 1, "", "__init__"]], "poli.core.util.objective_management": [[58, 0, 0, "-", "make_run_script"]], "poli.core.util.objective_management.make_run_script": [[59, 5, 1, "", "make_observer_script"], [60, 5, 1, "", "make_run_script"]], "poli.core.util.observer_wrapper": [[62, 5, 1, "", "start_observer_process"]], "poli.core.util.proteins": [[64, 0, 0, "-", "defaults"], [65, 0, 0, "-", "foldx"], [67, 0, 0, "-", "mutations"], [71, 0, 0, "-", "pdb_parsing"], [75, 0, 0, "-", "rasp"]], "poli.core.util.proteins.foldx": [[66, 1, 1, "", "FoldxInterface"]], "poli.core.util.proteins.foldx.FoldxInterface": [[66, 2, 1, "", "__init__"], [66, 2, 1, "", "_compute_sasa"], [66, 2, 1, "", "_read_energy"], [66, 2, 1, "", "_repair_if_necessary_and_provide_path"], [66, 2, 1, "", "_simulate_mutations"], [66, 2, 1, "", "compute_sasa"], [66, 2, 1, "", "compute_stability"], [66, 2, 1, "", "compute_stability_and_sasa"], [66, 2, 1, "", "copy_foldx_files"], [66, 2, 1, "", "repair"], [66, 3, 1, "", "verbose"], [66, 3, 1, "", "working_dir"], [66, 2, 1, "", "write_mutations_to_file"]], "poli.core.util.proteins.mutations": [[68, 5, 1, "", "edits_between_strings"], [69, 5, 1, "", "find_closest_wildtype_pdb_file_to_mutant"], [70, 5, 1, "", "mutations_from_wildtype_residues_and_mutant"]], "poli.core.util.proteins.pdb_parsing": [[72, 5, 1, "", "parse_pdb_as_residue_strings"], [73, 5, 1, "", "parse_pdb_as_residues"], [74, 5, 1, "", "parse_pdb_as_structure"]], "poli.core.util.proteins.rasp": [[76, 0, 0, "-", "inner_rasp"], [82, 6, 1, "", "load_models"], [83, 6, 1, "", "rasp_interface"]], "poli.core.util.proteins.rasp.inner_rasp": [[77, 6, 1, "", "PrismData"], [78, 6, 1, "", "cavity_model"], [79, 6, 1, "", "helpers"], [80, 6, 1, "", "run_pipeline"], [81, 6, 1, "", "visualization"]], "poli.core.util.seeding": [[85, 0, 0, "-", "seeding"]], "poli.core.util.seeding.seeding": [[86, 5, 1, "", "seed_numpy"], [87, 5, 1, "", "seed_python"]], "poli.objective": [[89, 5, 1, "", "dynamically_instantiate"], [90, 5, 1, "", "parse_factory_kwargs"], [91, 5, 1, "", "run"]], "poli.objective_factory": [[93, 1, 1, "", "ExternalBlackBox"], [94, 5, 1, "", "create"], [95, 5, 1, "", "load_config"], [96, 5, 1, "", "start"]], "poli.objective_factory.ExternalBlackBox": [[93, 2, 1, "", "__init__"]], "poli.objective_repository": [[98, 0, 0, "-", "aloha"], [102, 0, 0, "-", "dockstring"], [106, 0, 0, "-", "drd3_docking"], [110, 0, 0, "-", "foldx_rfp_lambo"], [116, 0, 0, "-", "foldx_sasa"], [121, 0, 0, "-", "foldx_stability"], [126, 0, 0, "-", "foldx_stability_and_sasa"], [130, 0, 0, "-", "gfp_cbas"], [162, 0, 0, "-", "gfp_select"], [166, 0, 0, "-", "penalized_logp_lambo"], [170, 0, 0, "-", "rasp"], [172, 0, 0, "-", "rdkit_logp"], [176, 0, 0, "-", "rdkit_qed"], [180, 0, 0, "-", "rfp_foldx_stability_and_sasa"], [182, 0, 0, "-", "sa_tdc"], [186, 0, 0, "-", "super_mario_bros"], [199, 0, 0, "-", "toy_continuous_problem"], [222, 0, 0, "-", "white_noise"]], "poli.objective_repository.aloha": [[99, 0, 0, "-", "register"]], "poli.objective_repository.aloha.register": [[100, 1, 1, "", "AlohaBlackBox"], [101, 1, 1, "", "AlohaProblemFactory"]], "poli.objective_repository.aloha.register.AlohaBlackBox": [[100, 2, 1, "", "__init__"], [100, 2, 1, "", "_black_box"], [100, 3, 1, "", "alphabet"]], "poli.objective_repository.aloha.register.AlohaProblemFactory": [[101, 2, 1, "", "__init__"], [101, 2, 1, "", "create"], [101, 2, 1, "", "get_setup_information"]], "poli.objective_repository.dockstring": [[103, 0, 0, "-", "register"]], "poli.objective_repository.dockstring.register": [[104, 1, 1, "", "DockstringBlackBox"], [105, 1, 1, "", "DockstringProblemFactory"]], "poli.objective_repository.dockstring.register.DockstringBlackBox": [[104, 2, 1, "", "__init__"], [104, 2, 1, "", "_black_box"], [104, 3, 1, "", "alphabet"]], "poli.objective_repository.dockstring.register.DockstringProblemFactory": [[105, 2, 1, "", "__init__"], [105, 2, 1, "", "create"], [105, 2, 1, "", "get_setup_information"]], "poli.objective_repository.drd3_docking": [[107, 0, 0, "-", "register"]], "poli.objective_repository.drd3_docking.register": [[108, 1, 1, "", "DRD3BlackBox"], [109, 1, 1, "", "DRD3ProblemFactory"]], "poli.objective_repository.drd3_docking.register.DRD3BlackBox": [[108, 2, 1, "id0", "__init__"], [108, 3, 1, "", "oracle_name"]], "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory": [[109, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo": [[111, 0, 0, "-", "register"]], "poli.objective_repository.foldx_rfp_lambo.register": [[112, 3, 1, "", "Config"], [113, 1, 1, "", "RFPWrapper"], [114, 1, 1, "", "RFPWrapperFactory"], [115, 5, 1, "", "get_config"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper": [[113, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory": [[114, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa": [[118, 0, 0, "-", "register"]], "poli.objective_repository.foldx_sasa.register": [[119, 1, 1, "", "FoldXSASABlackBox"], [120, 1, 1, "", "FoldXSASAProblemFactory"]], "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox": [[119, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory": [[120, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability": [[123, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability.register": [[124, 1, 1, "", "FoldXStabilityBlackBox"], [125, 1, 1, "", "FoldXStabilityProblemFactory"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox": [[124, 2, 1, "", "__init__"], [124, 2, 1, "", "_black_box"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory": [[125, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa": [[127, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability_and_sasa.register": [[128, 1, 1, "", "FoldXStabilityAndSASABlackBox"], [129, 1, 1, "", "FoldXStabilityAndSASAProblemFactory"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox": [[128, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory": [[129, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas": [[131, 0, 0, "-", "abstract_vae_wrapper"], [133, 0, 0, "-", "cbas_alphabet_preprocessing"], [148, 0, 0, "-", "cbas_wrapper"], [152, 0, 0, "-", "gfp_gp"], [153, 0, 0, "-", "make_vae"], [159, 0, 0, "-", "register"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper": [[132, 1, 1, "", "AbstractVAEWrapper"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper": [[132, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing": [[134, 5, 1, "", "convert_aas_to_idx_array"], [135, 5, 1, "", "convert_idx_array_to_aas"], [136, 5, 1, "", "convert_mutations_to_sequence"], [137, 5, 1, "", "get_argmax"], [138, 5, 1, "", "get_balaji_predictions"], [139, 5, 1, "", "get_experimental_X_y"], [140, 5, 1, "", "get_gfp_X_y_aa"], [141, 5, 1, "", "get_gfp_base_seq"], [142, 5, 1, "", "get_samples"], [143, 5, 1, "", "one_hot_encode_aa"], [144, 5, 1, "", "one_hot_encode_aa_array"], [145, 5, 1, "", "one_hot_encode_dna"], [146, 5, 1, "", "partition_data"], [147, 5, 1, "", "read_gfp_data"]], "poli.objective_repository.gfp_cbas.cbas_wrapper": [[149, 1, 1, "", "CBASVAEWrapper"], [150, 1, 1, "", "ConvertedTorchVaeDecoder"], [151, 1, 1, "", "ConvertedTorchVaeEncoder"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper": [[149, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder": [[150, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder": [[151, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae": [[154, 1, 1, "", "BaseVAE"], [155, 1, 1, "", "SimpleVAE"], [156, 5, 1, "", "build_vae"], [157, 5, 1, "", "identity_loss"], [158, 5, 1, "", "summed_categorical_crossentropy"]], "poli.objective_repository.gfp_cbas.make_vae.BaseVAE": [[154, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE": [[155, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register": [[160, 1, 1, "", "GFPCBasBlackBox"], [161, 1, 1, "", "GFPCBasProblemFactory"]], "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox": [[160, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory": [[161, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select": [[163, 0, 0, "-", "register"]], "poli.objective_repository.gfp_select.register": [[164, 1, 1, "", "GFPBlackBox"], [165, 1, 1, "", "GFPSelectionProblemFactory"]], "poli.objective_repository.gfp_select.register.GFPBlackBox": [[164, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory": [[165, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo": [[167, 0, 0, "-", "register"]], "poli.objective_repository.penalized_logp_lambo.register": [[168, 1, 1, "", "PenalizedLogPLamboBlackBox"], [169, 1, 1, "", "PenalizedLogPLamboProblemFactory"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox": [[168, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory": [[169, 2, 1, "", "__init__"]], "poli.objective_repository.rasp": [[171, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp": [[173, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp.register": [[174, 1, 1, "", "LogPBlackBox"], [175, 1, 1, "", "LogPProblemFactory"]], "poli.objective_repository.rdkit_logp.register.LogPBlackBox": [[174, 2, 1, "", "__init__"], [174, 2, 1, "", "_black_box"], [174, 3, 1, "", "from_selfies"], [174, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_logp.register.LogPProblemFactory": [[175, 2, 1, "", "__init__"]], "poli.objective_repository.rdkit_qed": [[177, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_qed.register": [[178, 1, 1, "", "QEDBlackBox"], [179, 1, 1, "", "QEDProblemFactory"]], "poli.objective_repository.rdkit_qed.register.QEDBlackBox": [[178, 2, 1, "", "__init__"], [178, 2, 1, "", "_black_box"], [178, 3, 1, "", "from_selfies"], [178, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_qed.register.QEDProblemFactory": [[179, 2, 1, "", "__init__"], [179, 2, 1, "", "create"], [179, 2, 1, "", "get_setup_information"]], "poli.objective_repository.rfp_foldx_stability_and_sasa": [[181, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc": [[183, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc.register": [[184, 1, 1, "", "SABlackBox"], [185, 1, 1, "", "SAProblemFactory"]], "poli.objective_repository.sa_tdc.register.SABlackBox": [[184, 2, 1, "", "__init__"]], "poli.objective_repository.sa_tdc.register.SAProblemFactory": [[185, 2, 1, "", "__init__"], [185, 2, 1, "", "create"], [185, 2, 1, "", "get_setup_information"]], "poli.objective_repository.super_mario_bros": [[187, 0, 0, "-", "level_utils"], [196, 0, 0, "-", "model"]], "poli.objective_repository.super_mario_bros.level_utils": [[188, 5, 1, "", "add_padding_to_level"], [189, 5, 1, "", "clean_level"], [190, 5, 1, "", "level_to_array"], [191, 5, 1, "", "level_to_list"], [192, 5, 1, "", "levels_to_onehot"], [193, 5, 1, "", "onehot_to_levels"], [194, 5, 1, "", "tensor_to_sim_level"], [195, 5, 1, "", "vectorized"]], "poli.objective_repository.super_mario_bros.model": [[197, 1, 1, "", "VAEMario"], [198, 5, 1, "", "load_example_model"]], "poli.objective_repository.super_mario_bros.model.VAEMario": [[197, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem": [[200, 0, 0, "-", "definitions"], [217, 0, 0, "-", "register"], [220, 0, 0, "-", "toy_continuous_problem"]], "poli.objective_repository.toy_continuous_problem.definitions": [[201, 5, 1, "", "ackley_function_01"], [202, 5, 1, "", "alpine_01"], [203, 5, 1, "", "alpine_02"], [204, 5, 1, "", "bent_cigar"], [205, 5, 1, "", "brown"], [206, 5, 1, "", "camelback_2d"], [207, 5, 1, "", "chung_reynolds"], [208, 5, 1, "", "cosine_mixture"], [209, 5, 1, "", "cross_in_tray"], [210, 5, 1, "", "deb_01"], [211, 5, 1, "", "deb_02"], [212, 5, 1, "", "deflected_corrugated_spring"], [213, 5, 1, "", "easom"], [214, 5, 1, "", "egg_holder"], [215, 5, 1, "", "shifted_sphere"], [216, 5, 1, "", "styblinski_tang"]], "poli.objective_repository.toy_continuous_problem.register": [[218, 1, 1, "", "ToyContinuousBlackBox"], [219, 1, 1, "", "ToyContinuousProblemFactory"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox": [[218, 2, 1, "", "__init__"], [218, 2, 1, "", "_black_box"], [218, 3, 1, "", "alphabet"], [218, 3, 1, "", "bounds"], [218, 3, 1, "", "embed_in"], [218, 3, 1, "", "function"], [218, 3, 1, "", "function_name"], [218, 3, 1, "", "n_dimensions"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory": [[219, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem": [[221, 1, 1, "", "ToyContinuousProblem"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem": [[221, 2, 1, "", "__init__"]], "poli.objective_repository.white_noise": [[223, 0, 0, "-", "register"]], "poli.objective_repository.white_noise.register": [[224, 1, 1, "", "WhiteNoiseBlackBox"], [225, 1, 1, "", "WhiteNoiseProblemFactory"]], "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox": [[224, 2, 1, "", "__init__"], [224, 2, 1, "", "_black_box"]], "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory": [[225, 2, 1, "", "__init__"]], "poli.tests": [[228, 0, 0, "-", "docs_examples"], [236, 0, 0, "-", "registry"], [255, 0, 0, "-", "test_minimal_working_example"], [257, 0, 0, "-", "test_seeding"], [259, 0, 0, "-", "util"]], "poli.tests.docs_examples": [[229, 0, 0, "-", "test_objective_functions"]], "poli.tests.docs_examples.test_objective_functions": [[230, 5, 1, "", "test_aloha_example"], [231, 5, 1, "", "test_logp_example"], [233, 5, 1, "", "test_qed_example"], [235, 5, 1, "", "test_white_noise_example"]], "poli.tests.registry": [[237, 0, 0, "-", "basic_objectives"], [242, 0, 0, "-", "chemistry"], [244, 0, 0, "-", "proteins"], [248, 0, 0, "-", "test_basic_loop_without_create"], [249, 0, 0, "-", "test_force_isolation"], [251, 0, 0, "-", "toy_continuous_problems"]], "poli.tests.registry.basic_objectives": [[238, 0, 0, "-", "test_basic_objectives"]], "poli.tests.registry.basic_objectives.test_basic_objectives": [[239, 5, 1, "", "test_registering_aloha"], [240, 5, 1, "", "test_registering_white_noise"]], "poli.tests.registry.toy_continuous_problems": [[252, 0, 0, "-", "test_embedding_problems_into_higher_dims"]], "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims": [[253, 5, 1, "", "test_embed_camelback_into_high_dimensions"]], "poli.tests.test_minimal_working_example": [[256, 5, 1, "", "test_minimal_working_example"]], "poli.tests.test_seeding": [[258, 5, 1, "", "test_seeding_in_white_noise"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"poli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, 268, 292, 293, 296], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 291], "abstract_black_box": [2, 3, 4], "abstractblackbox": 3, "negativeblackbox": 4, "abstract_problem_factori": [5, 6, 7], "abstractproblemfactori": 6, "metaproblemfactori": 7, "chemistri": [8, 9, 10, 38, 39, 40, 41, 42, 43, 44, 242, 243], "tdc_black_box": [9, 10], "tdcblackbox": 10, "except": [11, 12, 13], "budgetexhaustedexcept": 12, "poliexcept": 13, "multi_objective_black_box": [14, 15], "multiobjectiveblackbox": 15, "problem_setup_inform": [16, 17], "problemsetupinform": 17, "protein": [18, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 244, 245, 246, 247, 268, 270, 272, 276, 277, 278, 289], "foldx_black_box": [19, 20], "foldxblackbox": 20, "registri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 296], "delete_observer_run_script": 22, "delete_problem": 23, "get_problem_factori": 24, "get_problem": 25, "register_problem": 26, "register_problem_from_repositori": 27, "set_observ": 28, "set_observer_run_script": 29, "util": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 259, 260, 261], "abstract_observ": [31, 32], "abstractobserv": 32, "align": [33, 34], "is_align": 34, "batch": [35, 36, 37, 290], "batch_input": [36, 37], "string_to_molecul": [39, 40, 41, 42, 43, 44], "selfies_to_molecul": 40, "smiles_to_molecul": 41, "strings_to_molecul": 42, "translate_selfies_to_smil": 43, "translate_smiles_to_selfi": 44, "external_observ": [45, 46], "externalobserv": 46, "file": [47, 48, 49, 50, 51, 52, 270, 275, 277, 278], "download_files_from_github": [48, 49, 50], "download_file_from_github_repositori": 49, "get_sha_for_tag": 50, "integr": [51, 52], "compute_md5_from_filepath": 52, "inter_process_commun": [53, 54, 55, 56], "process_wrapp": [54, 55, 56], "processwrapp": 55, "get_connect": 56, "objective_manag": [57, 58, 59, 60], "make_run_script": [58, 59, 60], "make_observer_script": 59, "observer_wrapp": [61, 62], "start_observer_process": 62, "default": 64, "foldx": [65, 66, 269, 276, 277, 278], "foldxinterfac": 66, "mutat": [67, 68, 69, 70, 270, 289, 303], "edits_between_str": 68, "find_closest_wildtype_pdb_file_to_mut": 69, "mutations_from_wildtype_residues_and_mut": 70, "pdb_pars": [71, 72, 73, 74], "parse_pdb_as_residue_str": 72, "parse_pdb_as_residu": 73, "parse_pdb_as_structur": 74, "rasp": [75, 76, 77, 78, 79, 80, 81, 82, 83, 170, 171], "inner_rasp": [76, 77, 78, 79, 80, 81], "prismdata": 77, "cavity_model": 78, "helper": 79, "run_pipelin": 80, "visual": 81, "load_model": 82, "rasp_interfac": 83, "seed": [84, 85, 86, 87], "seed_numpi": 86, "seed_python": 87, "object": [88, 89, 90, 91, 268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "dynamically_instanti": 89, "parse_factory_kwarg": 90, "run": [91, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 288, 294, 297, 298, 301, 302, 303, 304], "objective_factori": [92, 93, 94, 95, 96], "externalblackbox": 93, "creat": [94, 106, 275, 286, 293, 296], "load_config": 95, "start": [96, 267, 268], "objective_repositori": [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "aloha": [98, 99, 100, 101, 273, 291, 295], "regist": [99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 123, 124, 125, 127, 128, 129, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 217, 218, 219, 223, 224, 225, 265, 288, 289, 295, 296], "alohablackbox": 100, "alohaproblemfactori": 101, "dockstr": [102, 103, 104, 105, 274], "dockstringblackbox": 104, "dockstringproblemfactori": 105, "drd3_dock": [106, 107, 108, 109], "prerequisit": [106, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 295], "instal": [106, 265, 267, 269, 275, 276], "autodock": [106, 275], "vina": [106, 275], "adfr": [106, 275], "suit": [106, 275], "poli__lambo": [106, 275], "environ": [106, 265, 275, 276, 279, 296], "drd3blackbox": 108, "drd3problemfactori": 109, "foldx_rfp_lambo": [110, 111, 112, 113, 114, 115], "config": 112, "rfpwrapper": 113, "rfpwrapperfactori": 114, "get_config": 115, "foldx_sasa": [116, 117, 118, 119, 120], "foldx_util": [117, 122], "foldxsasablackbox": 119, "foldxsasaproblemfactori": 120, "foldx_stabl": [121, 122, 123, 124, 125], "foldxstabilityblackbox": 124, "foldxstabilityproblemfactori": 125, "foldx_stability_and_sasa": [126, 127, 128, 129], "foldxstabilityandsasablackbox": 128, "foldxstabilityandsasaproblemfactori": 129, "gfp_cba": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161], "abstract_vae_wrapp": [131, 132], "abstractvaewrapp": 132, "cbas_alphabet_preprocess": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "convert_aas_to_idx_arrai": 134, "convert_idx_array_to_aa": 135, "convert_mutations_to_sequ": 136, "get_argmax": 137, "get_balaji_predict": 138, "get_experimental_x_i": 139, "get_gfp_x_y_aa": 140, "get_gfp_base_seq": 141, "get_sampl": 142, "one_hot_encode_aa": 143, "one_hot_encode_aa_arrai": 144, "one_hot_encode_dna": 145, "partition_data": 146, "read_gfp_data": 147, "cbas_wrapp": [148, 149, 150, 151], "cbasvaewrapp": 149, "convertedtorchvaedecod": 150, "convertedtorchvaeencod": 151, "gfp_gp": 152, "make_va": [153, 154, 155, 156, 157, 158], "baseva": 154, "simpleva": 155, "build_va": 156, "identity_loss": 157, "summed_categorical_crossentropi": 158, "gfpcbasblackbox": 160, "gfpcbasproblemfactori": 161, "gfp_select": [162, 163, 164, 165], "gfpblackbox": 164, "gfpselectionproblemfactori": 165, "penalized_logp_lambo": [166, 167, 168, 169], "penalizedlogplamboblackbox": 168, "penalizedlogplamboproblemfactori": 169, "rdkit_logp": [172, 173, 174, 175], "logpblackbox": 174, "logpproblemfactori": 175, "rdkit_q": [176, 177, 178, 179], "qedblackbox": 178, "qedproblemfactori": 179, "rfp_foldx_stability_and_sasa": [180, 181], "sa_tdc": [182, 183, 184, 185], "sablackbox": 184, "saproblemfactori": 185, "super_mario_bro": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "level_util": [187, 188, 189, 190, 191, 192, 193, 194, 195], "add_padding_to_level": 188, "clean_level": 189, "level_to_arrai": 190, "level_to_list": 191, "levels_to_onehot": 192, "onehot_to_level": 193, "tensor_to_sim_level": 194, "vector": 195, "model": [196, 197, 198], "vaemario": 197, "load_example_model": 198, "toy_continuous_problem": [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 251, 252, 253, 254], "definit": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "ackley_function_01": 201, "alpine_01": 202, "alpine_02": 203, "bent_cigar": 204, "brown": 205, "camelback_2d": 206, "chung_reynold": 207, "cosine_mixtur": 208, "cross_in_trai": 209, "deb_01": 210, "deb_02": 211, "deflected_corrugated_spr": 212, "easom": 213, "egg_hold": 214, "shifted_spher": 215, "styblinski_tang": 216, "toycontinuousblackbox": 218, "toycontinuousproblemfactori": 219, "toycontinuousproblem": 221, "white_nois": [222, 223, 224, 225], "whitenoiseblackbox": 224, "whitenoiseproblemfactori": 225, "registered_object": 226, "test": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 265, 267], "docs_exampl": [228, 229, 230, 231, 232, 233, 234, 235], "test_objective_funct": [229, 230, 231, 232, 233, 234, 235], "test_aloha_exampl": 230, "test_logp_exampl": 231, "test_logp_example_using_str": 232, "test_qed_exampl": 233, "test_qed_example_using_str": 234, "test_white_noise_exampl": 235, "basic_object": [237, 238, 239, 240, 241], "test_basic_object": [238, 239, 240], "test_registering_aloha": 239, "test_registering_white_nois": 240, "test_budget_exhaust": 241, "test_chemistry_object": 243, "test_foldx": 245, "test_foldx_rfp_lambo": 246, "test_rasp": 247, "test_basic_loop_without_cr": 248, "test_force_isol": 249, "test_passing_array_of_str": 250, "test_embedding_problems_into_higher_dim": [252, 253], "test_embed_camelback_into_high_dimens": 253, "test_instancing_of_toy_continuous_problem": 254, "test_minimal_working_exampl": [255, 256], "test_seed": [257, 258], "test_seeding_in_white_nois": 258, "test_foldx_interfac": 260, "test_protein_util": 261, "api": 263, "document": 263, "refer": [264, 304], "ad": [265, 266], "new": [265, 266], "problem": [265, 266, 268, 272, 286, 289, 290, 295, 296], "repositori": 265, "The": [265, 291, 293], "structur": 265, "A": 265, "gener": 265, "py": 265, "yml": [265, 275], "why": [265, 296], "conda": [265, 267, 296], "your": [265, 267, 293, 296], "option": 265, "make": [265, 275], "avail": 265, "depend": [265, 294, 296], "ar": [265, 270], "met": 265, "submit": [265, 266], "pull": [265, 266], "request": [265, 266], "optim": [266, 268, 283, 289, 293, 295, 297, 300, 301, 304], "baselin": [266, 267], "an": [266, 290, 291, 295, 296], "abstract": [266, 290, 291], "solver": [266, 268, 289, 290, 293, 295], "exampl": [266, 290, 291, 296], "randommut": [266, 289, 290], "get": [267, 268], "first": 267, "script": 267, "us": [267, 268, 275, 276, 277, 278, 279, 282, 289, 293], "librari": 268, "discret": [268, 296, 302], "function": [268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "black": [268, 294, 296], "box": [268, 294, 296], "toi": [268, 272, 286], "small": [268, 272], "molecul": [268, 272], "algorithm": [268, 299, 304], "cite": 268, "other": [268, 270, 272, 279], "relev": 268, "work": [268, 292], "contribut": 268, "comput": 270, "energi": 270, "singl": 270, "python": [270, 276, 279, 296], "set": [270, 275], "up": 270, "folder": [270, 275], "download": [270, 275], "pdb": 270, "repair": [270, 277, 278], "what": [270, 290, 293], "pars": 270, "wildtyp": 270, "defin": [270, 289, 290, 291, 296], "s": [270, 296], "sasa": [270, 276], "score": 270, "conclus": [270, 291, 293, 294, 295, 296], "rapid": 271, "stabil": [271, 276, 278, 289], "predict": 271, "how": [271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 292, 297, 298, 301, 302, 303, 304], "warn": 271, "further": 271, "read": [271, 294], "all": [272, 275, 291], "about": [273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 290, 297, 298, 301, 302, 303, 304], "drd3": 275, "dock": 275, "tdc": [275, 282], "add": [275, 296], "binari": 275, "path": [275, 296], "prepare_receptor": 275, "from": 275, "sure": 275, "you": [275, 277, 278, 294], "re": 275, "rfp": 276, "lambo": [276, 279], "we": [276, 277, 278], "can": [276, 277, 278], "automat": 276, "solvent": 277, "access": [277, 282], "penal": 279, "logp": [279, 280], "keyword": 279, "argument": 279, "log": [280, 291], "solubl": 280, "quantit": 281, "estim": 281, "druglik": 281, "qed": 281, "synthet": 282, "jump": 283, "super": 283, "mario": 283, "bro": 283, "therapeut": 284, "data": 284, "common": 284, "oracl": 284, "name": 285, "see": [285, 297, 302], "also": 285, "continu": 286, "low": 286, "intrins": 286, "dimension": 286, "white": 287, "nois": 287, "observ": [288, 291], "isol": [288, 294], "process": 288, "random": [289, 303], "mroug": 289, "check": 289, "result": 289, "poli_baselin": 290, "candid": 290, "want": 291, "more": [291, 294, 296, 297, 302], "complex": 291, "instanc": [291, 295], "simpl": 291, "initi": 291, "put": 291, "togeth": 291, "coupl": 291, "queri": 291, "dive": 292, "deeper": 292, "doe": 292, "under": 292, "hood": 292, "content": [292, 293], "usual": 293, "develop": 293, "loop": 293, "identifi": 293, "own": 293, "when": 294, "have": 294, "right": 294, "Is": 295, "factori": 296, "entir": 296, "need": 296, "where": 296, "thi": 296, "call": 296, "bayesian": [297, 300, 301], "cma": 298, "es": 298, "graph": 299, "genet": 299, "latent": 300, "space": 300, "line": 301, "nsga": 302, "2": 302, "templat": 304}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html b/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html index 03ac5f18..b83af0ec 100644 --- a/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html +++ b/docs/poli-docs/_build/html/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.html @@ -645,8 +645,6 @@

      Defining the objective functionf, x0, y0 = objective_factory.create( name="foldx_stability", - caller_info=None, - observer=None, wildtype_pdb_path=wildtype_pdb_path )

      @@ -662,61 +660,6 @@

      Defining the objective function
      Traceback (most recent call last):
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 138, in run
      -    f, x0, y0 = objective_factory.create(**kwargs)
      -TypeError: create() got an unexpected keyword argument 'caller_info'
      -
      -

      -
      Traceback (most recent call last):
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 176, in <module>
      -    run(factory_kwargs[0], args.objective_name, args.port, args.password)
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 145, in run
      -    raise e
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 138, in run
      -    f, x0, y0 = objective_factory.create(**kwargs)
      -TypeError: create() got an unexpected keyword argument 'caller_info'
      -
      -
      -
      ---------------------------------------------------------------------------
      -TypeError                                 Traceback (most recent call last)
      -Cell In[5], line 3
      -      1 from poli import objective_factory
      -----> 3 f, x0, y0 = objective_factory.create(
      -      4     name="foldx_stability",
      -      5     caller_info=None,
      -      6     observer=None,
      -      7     wildtype_pdb_path=wildtype_pdb_path
      -      8 )
      -
      -File ~/Projects/poli/src/poli/objective_factory.py:439, in create(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      -    437 if not quiet:
      -    438     print(f"poli 🧪: creating an isolated black box function.")
      ---> 439 f, x0, y0 = __create_as_isolated_process(
      -    440     name,
      -    441     seed=seed,
      -    442     batch_size=batch_size,
      -    443     parallelize=parallelize,
      -    444     num_workers=num_workers,
      -    445     evaluation_budget=evaluation_budget,
      -    446     quiet=quiet,
      -    447     **kwargs_for_factory,
      -    448 )
      -    449 problem_information = f.info
      -    451 # instantiate observer (if desired)
      -
      -File ~/Projects/poli/src/poli/objective_factory.py:278, in __create_as_isolated_process(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      -    276     e, tb = msg
      -    277     print(tb)
      ---> 278     raise e
      -    279 else:
      -    280     raise ValueError(
      -    281         f"Internal error: received {msg_type} when expecting SETUP or EXCEPTION"
      -    282     )
      -
      -TypeError: create() got an unexpected keyword argument 'caller_info'
      -
      -
      @@ -753,255 +696,20 @@

      Optimizing using a +
      /Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
      +  from .autonotebook import tqdm as notebook_tqdm
      +
      +
      +

      And that’s it! You can optimize the objective function passed as black_box by just calling the .solve(n_iters) method: (be careful, this might take a while)

      -
      +
      solver.solve(max_iter=3)
       
      -
      - - -Hide code cell output - -
      -
         ********************************************
      -   ***                                      ***
      -   ***             FoldX 5 (c)            ***
      -   ***                                      ***
      -   ***     code by the FoldX Consortium     ***
      -   ***                                      ***
      -   ***     Jesper Borg, Frederic Rousseau   ***
      -   ***    Joost Schymkowitz, Luis Serrano   ***
      -   ***    Peter Vanhee, Erik Verschueren    ***
      -   ***     Lies Baeten, Javier Delgado      ***
      -   ***       and Francois Stricher          ***
      -   *** and any other of the 9! permutations ***
      -   ***   based on an original concept by    ***
      -   ***   Raphael Guerois and Luis Serrano   ***
      -   ********************************************
      -
      -1 models read: 3ned_Repair.pdb
      -1 models read: 3ned_Repair.pdb
      -
      -BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -
      -BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -Starting BuildModel
      -Reading NA194F;
      -Residue to Mutate ASNA194 has residue index 193
      -Mutating residue = ASNA194 into PHE
      -Your file run OK
      -End time of FoldX: Fri Jan 19 09:51:22 2024
      -Total time spend: 6.54 seconds.
      -validated file "3ned_Repair_1.pdb" => successfully finished
      -Cleaning BuildModel...DONE
      -   ********************************************
      -   ***                                      ***
      -   ***             FoldX 5 (c)            ***
      -   ***                                      ***
      -   ***     code by the FoldX Consortium     ***
      -   ***                                      ***
      -   ***     Jesper Borg, Frederic Rousseau   ***
      -   ***    Joost Schymkowitz, Luis Serrano   ***
      -   ***    Peter Vanhee, Erik Verschueren    ***
      -   ***     Lies Baeten, Javier Delgado      ***
      -   ***       and Francois Stricher          ***
      -   *** and any other of the 9! permutations ***
      -   ***   based on an original concept by    ***
      -   ***   Raphael Guerois and Luis Serrano   ***
      -   ********************************************
      -
      -1 models read: 3ned_Repair.pdb
      -1 models read: 3ned_Repair.pdb
      -
      -BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -
      -BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -Starting BuildModel
      -Reading QA114S,NA194F;
      -Residue to Mutate GLNA114 has residue index 113
      -Residue to Mutate ASNA194 has residue index 193
      -Mutating residue = ASNA194 into PHE
      -Mutating residue = GLNA114 into SER
      -Your file run OK
      -End time of FoldX: Fri Jan 19 09:51:32 2024
      -Total time spend: 8.65 seconds.
      -validated file "3ned_Repair_1.pdb" => successfully finished
      -Cleaning BuildModel...DONE
      -   ********************************************
      -   ***                                      ***
      -   ***             FoldX 5 (c)            ***
      -   ***                                      ***
      -   ***     code by the FoldX Consortium     ***
      -   ***                                      ***
      -   ***     Jesper Borg, Frederic Rousseau   ***
      -   ***    Joost Schymkowitz, Luis Serrano   ***
      -   ***    Peter Vanhee, Erik Verschueren    ***
      -   ***     Lies Baeten, Javier Delgado      ***
      -   ***       and Francois Stricher          ***
      -   *** and any other of the 9! permutations ***
      -   ***   based on an original concept by    ***
      -   ***   Raphael Guerois and Luis Serrano   ***
      -   ********************************************
      -
      -1 models read: 3ned_Repair.pdb
      -1 models read: 3ned_Repair.pdb
      -
      -BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -
      -BackHbond       =               -178.70
      -SideHbond       =               -76.61
      -Energy_VdW      =               -267.80
      -Electro         =               -13.75
      -Energy_SolvP    =               374.21
      -Energy_SolvH    =               -351.07
      -Energy_vdwclash =               6.28
      -energy_torsion  =               7.33
      -backbone_vdwclash=              65.17
      -Entropy_sidec   =               146.42
      -Entropy_mainc   =               340.27
      -water bonds     =               0.00
      -helix dipole    =               0.00
      -loop_entropy    =               0.00
      -cis_bond        =               2.25
      -disulfide       =               0.00
      -kn electrostatic=               0.00
      -partial covalent interactions = 0.00
      -Energy_Ionisation =             1.77
      -Entropy Complex =               0.00
      ------------------------------------------------------------
      -Total          = 				  -9.41
      -
      -Starting BuildModel
      -Reading DA3M,QA114S,NA194F;
      -Residue to Mutate ASPA3 has residue index 2
      -Residue to Mutate GLNA114 has residue index 113
      -Residue to Mutate ASNA194 has residue index 193
      -Mutating residue = ASPA3 into MET
      -Mutating residue = ASNA194 into PHE
      -Mutating residue = GLNA114 into SER
      -Your file run OK
      -End time of FoldX: Fri Jan 19 09:51:42 2024
      -Total time spend: 9.23 seconds.
      -validated file "3ned_Repair_1.pdb" => successfully finished
      -Cleaning BuildModel...DONE
      -
      -
      -
      -

      @@ -1016,9 +724,9 @@

      Checking the results
      -
      All y values: [array([[9.41639]]), array([[13.0629]]), array([[13.5983]]), array([[13.1298]])]
      -best stability: [13.5983]
      -Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLSDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYFTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK
      +
      All y values: [array([[9.41639]]), array([[5.56267]]), array([[0.846902]]), array([[9.39441]])]
      +best stability: [9.41639]
      +Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLQDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYNTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK
       
      diff --git a/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html b/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html index 6237f52e..3e770aaa 100644 --- a/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html +++ b/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html @@ -599,7 +599,7 @@

      Running objective functions in isolation
      CRITICAL:root:Path: /opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin:/opt/homebrew/bin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/Users/sjt972/.cargo/bin:/Users/sjt972/anaconda3/bin
      +
      CRITICAL:root:Path: /opt/homebrew/opt/openjdk/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin
       CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring']
       CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring
       CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring
      diff --git a/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb b/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb
      index 291a008d..226d1b9f 100644
      --- a/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb
      +++ b/docs/poli-docs/_build/jupyter_execute/understanding_foldx/01-single-mutation-using-foldx/index.ipynb
      @@ -59,7 +59,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 1,
      +   "execution_count": 3,
          "metadata": {
           "tags": [
            "remove-output"
      @@ -69,10 +69,10 @@
           {
            "data": {
             "text/plain": [
      -       "PosixPath('/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/rotabase.txt')"
      +       "PosixPath('/Users/migd/Projects/protein-opt/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/rotabase.txt')"
             ]
            },
      -     "execution_count": 1,
      +     "execution_count": 3,
            "metadata": {},
            "output_type": "execute_result"
           }
      @@ -111,7 +111,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 2,
      +   "execution_count": 4,
          "metadata": {
           "tags": [
            "remove-output"
      @@ -121,11 +121,11 @@
           {
            "data": {
             "text/plain": [
      -       "(PosixPath('/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/101m.pdb'),\n",
      -       " )"
      +       "(PosixPath('/Users/migd/Projects/protein-opt/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/101m.pdb'),\n",
      +       " )"
             ]
            },
      -     "execution_count": 2,
      +     "execution_count": 4,
            "metadata": {},
            "output_type": "execute_result"
           }
      @@ -150,7 +150,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 3,
      +   "execution_count": 5,
          "metadata": {},
          "outputs": [],
          "source": [
      @@ -181,7 +181,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 4,
      +   "execution_count": 6,
          "metadata": {
           "tags": [
            "hide-output"
      @@ -256,7 +256,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 5,
      +   "execution_count": 7,
          "metadata": {
           "tags": [
            "remove-output"
      @@ -267,77 +267,77 @@
            "name": "stderr",
            "output_type": "stream",
            "text": [
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=N) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=N) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CA) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CA) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=C) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=C) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=O) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=O) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CB) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CB) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'S' for Atom (name=SD) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'S' for Atom (name=SD) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CG2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CD) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OE2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE3) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE3) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ3) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ3) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CH2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CH2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CE1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NZ) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NZ) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OD2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NE) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'C' for Atom (name=CZ) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=NH2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG1) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OG1) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OH) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OH) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND2) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'N' for Atom (name=ND2) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n",
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OXT) with given element ''\n",
      +      "/Users/migd/anaconda3/envs/poli-dev/lib/python3.9/site-packages/Bio/PDB/Atom.py:232: PDBConstructionWarning: Used element 'O' for Atom (name=OXT) with given element ''\n",
             "  warnings.warn(msg, PDBConstructionWarning)\n"
            ]
           }
      @@ -359,7 +359,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 6,
      +   "execution_count": 8,
          "metadata": {},
          "outputs": [
           {
      @@ -388,7 +388,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 7,
      +   "execution_count": 9,
          "metadata": {},
          "outputs": [
           {
      @@ -446,7 +446,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 8,
      +   "execution_count": 10,
          "metadata": {},
          "outputs": [],
          "source": [
      @@ -467,7 +467,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 9,
      +   "execution_count": 11,
          "metadata": {},
          "outputs": [],
          "source": [
      @@ -531,7 +531,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 10,
      +   "execution_count": 12,
          "metadata": {},
          "outputs": [],
          "source": [
      @@ -559,7 +559,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 11,
      +   "execution_count": 13,
          "metadata": {
           "tags": [
            "hide-output"
      @@ -572,7 +572,7 @@
            "text": [
             "   ********************************************\n",
             "   ***                                      ***\n",
      -      "   ***             FoldX 5 (c)            ***\n",
      +      "   ***             FoldX 4 (c)              ***\n",
             "   ***                                      ***\n",
             "   ***     code by the FoldX Consortium     ***\n",
             "   ***                                      ***\n",
      @@ -587,43 +587,6 @@
             "   ********************************************\n",
             "\n",
             "1 models read: 101m_Repair.pdb\n",
      -      "1 models read: 101m_Repair.pdb\n"
      -     ]
      -    },
      -    {
      -     "name": "stdout",
      -     "output_type": "stream",
      -     "text": [
      -      "\n",
      -      "BackHbond       =               -142.58\n",
      -      "SideHbond       =               -48.61\n",
      -      "Energy_VdW      =               -179.63\n",
      -      "Electro         =               -8.33\n",
      -      "Energy_SolvP    =               245.28\n",
      -      "Energy_SolvH    =               -238.89\n",
      -      "Energy_vdwclash =               3.42\n",
      -      "energy_torsion  =               6.70\n",
      -      "backbone_vdwclash=              158.16\n",
      -      "Entropy_sidec   =               105.87\n",
      -      "Entropy_mainc   =               231.69\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               -8.75\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               0.00\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.56\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -32.28\n",
      -      "\n"
      -     ]
      -    },
      -    {
      -     "name": "stdout",
      -     "output_type": "stream",
      -     "text": [
             "\n",
             "BackHbond       =               -142.58\n",
             "SideHbond       =               -48.61\n",
      @@ -651,16 +614,10 @@
             "Starting BuildModel\n",
             "Reading MA0G;\n",
             "Residue to Mutate META0 has residue index 0\n",
      -      "Mutating residue = META0 into GLY\n"
      -     ]
      -    },
      -    {
      -     "name": "stdout",
      -     "output_type": "stream",
      -     "text": [
      +      "Mutating residue = META0 into GLY\n",
             "Your file run OK\n",
      -      "End time of FoldX: Wed Feb  7 16:44:52 2024\n",
      -      "Total time spend: 22.96 seconds.\n",
      +      "End time of FoldX: Mon Aug  7 10:34:55 2023\n",
      +      "Total time spend: 54.97 seconds.\n",
             "validated file \"101m_Repair_1.pdb\" => successfully finished\n",
             "Cleaning BuildModel...DONE\n"
            ]
      @@ -668,10 +625,10 @@
           {
            "data": {
             "text/plain": [
      -       "CompletedProcess(args=['/Users/sjt972/foldx/foldx', '--pdb', '101m_Repair.pdb', '--command', 'BuildModel', '--mutant-file', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/understanding_foldx/01-single-mutation-using-foldx/tmp/individual_list.txt', '--water', '-CRYSTAL', '--pH', '7.0'], returncode=0)"
      +       "CompletedProcess(args=['/Users/migd/foldx/foldx', '--pdb', '101m_Repair.pdb', '--command', 'BuildModel', '--mutant-file', '/Users/migd/Projects/protein-opt/docs/protein-optimization/understanding_foldx/01-single-mutation-using-foldx/tmp/individual_list.txt', '--water', '-CRYSTAL', '--pH', '7.0'], returncode=0)"
             ]
            },
      -     "execution_count": 11,
      +     "execution_count": 13,
            "metadata": {},
            "output_type": "execute_result"
           }
      @@ -707,7 +664,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 12,
      +   "execution_count": 14,
          "metadata": {},
          "outputs": [],
          "source": [
      @@ -743,24 +700,9 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 13,
      +   "execution_count": 15,
          "metadata": {},
      -   "outputs": [
      -    {
      -     "name": "stderr",
      -     "output_type": "stream",
      -     "text": [
      -      "/var/folders/l3/qk9dx6g958765kmn_2wn34t00000gn/T/ipykernel_25734/1758354106.py:1: DeprecationWarning: \n",
      -      "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",
      -      "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",
      -      "but was not found to be installed on your system.\n",
      -      "If this would cause problems for you,\n",
      -      "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",
      -      "        \n",
      -      "  import pandas as pd\n"
      -     ]
      -    }
      -   ],
      +   "outputs": [],
          "source": [
           "import pandas as pd\n",
           "\n",
      @@ -783,7 +725,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 14,
      +   "execution_count": 16,
          "metadata": {},
          "outputs": [
           {
      @@ -832,7 +774,7 @@
              "1  WT_101m_Repair_1.pdb     -34.3436"
             ]
            },
      -     "execution_count": 14,
      +     "execution_count": 16,
            "metadata": {},
            "output_type": "execute_result"
           }
      @@ -871,7 +813,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 15,
      +   "execution_count": 21,
          "metadata": {},
          "outputs": [
           {
      @@ -940,7 +882,7 @@
          "name": "python",
          "nbconvert_exporter": "python",
          "pygments_lexer": "ipython3",
      -   "version": "3.9.18"
      +   "version": "3.9.17"
         }
        },
        "nbformat": 4,
      diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb
      index b8fae11c..c2cd2a07 100644
      --- a/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb
      +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb
      @@ -171,44 +171,6 @@
             "poli 🧪: creating an isolated black box function.\n",
             "poli 🧪: starting the isolated objective process.\n"
            ]
      -    },
      -    {
      -     "name": "stdout",
      -     "output_type": "stream",
      -     "text": [
      -      "Traceback (most recent call last):\n",
      -      "  File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 138, in run\n",
      -      "    f, x0, y0 = objective_factory.create(**kwargs)\n",
      -      "TypeError: create() got an unexpected keyword argument 'caller_info'\n",
      -      "\n"
      -     ]
      -    },
      -    {
      -     "name": "stderr",
      -     "output_type": "stream",
      -     "text": [
      -      "Traceback (most recent call last):\n",
      -      "  File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 176, in \n",
      -      "    run(factory_kwargs[0], args.objective_name, args.port, args.password)\n",
      -      "  File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 145, in run\n",
      -      "    raise e\n",
      -      "  File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 138, in run\n",
      -      "    f, x0, y0 = objective_factory.create(**kwargs)\n",
      -      "TypeError: create() got an unexpected keyword argument 'caller_info'\n"
      -     ]
      -    },
      -    {
      -     "ename": "TypeError",
      -     "evalue": "create() got an unexpected keyword argument 'caller_info'",
      -     "output_type": "error",
      -     "traceback": [
      -      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      -      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      -      "Cell \u001b[0;32mIn[5], line 3\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpoli\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m objective_factory\n\u001b[0;32m----> 3\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43mobjective_factory\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m      4\u001b[0m \u001b[43m    \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfoldx_stability\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m      5\u001b[0m \u001b[43m    \u001b[49m\u001b[43mcaller_info\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m      6\u001b[0m \u001b[43m    \u001b[49m\u001b[43mobserver\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m      7\u001b[0m \u001b[43m    \u001b[49m\u001b[43mwildtype_pdb_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwildtype_pdb_path\u001b[49m\n\u001b[1;32m      8\u001b[0m \u001b[43m)\u001b[49m\n",
      -      "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:439\u001b[0m, in \u001b[0;36mcreate\u001b[0;34m(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m    437\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m quiet:\n\u001b[1;32m    438\u001b[0m     \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpoli 🧪: creating an isolated black box function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 439\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43m__create_as_isolated_process\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    440\u001b[0m \u001b[43m    \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    441\u001b[0m \u001b[43m    \u001b[49m\u001b[43mseed\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    442\u001b[0m \u001b[43m    \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    443\u001b[0m \u001b[43m    \u001b[49m\u001b[43mparallelize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparallelize\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    444\u001b[0m \u001b[43m    \u001b[49m\u001b[43mnum_workers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_workers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    445\u001b[0m \u001b[43m    \u001b[49m\u001b[43mevaluation_budget\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mevaluation_budget\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    446\u001b[0m \u001b[43m    \u001b[49m\u001b[43mquiet\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    447\u001b[0m \u001b[43m    \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs_for_factory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    448\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    449\u001b[0m problem_information \u001b[38;5;241m=\u001b[39m f\u001b[38;5;241m.\u001b[39minfo\n\u001b[1;32m    451\u001b[0m \u001b[38;5;66;03m# instantiate observer (if desired)\u001b[39;00m\n",
      -      "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:278\u001b[0m, in \u001b[0;36m__create_as_isolated_process\u001b[0;34m(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m    276\u001b[0m     e, tb \u001b[38;5;241m=\u001b[39m msg\n\u001b[1;32m    277\u001b[0m     \u001b[38;5;28mprint\u001b[39m(tb)\n\u001b[0;32m--> 278\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m    279\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m    280\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m    281\u001b[0m         \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInternal error: received \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmsg_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m when expecting SETUP or EXCEPTION\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m    282\u001b[0m     )\n",
      -      "\u001b[0;31mTypeError\u001b[0m: create() got an unexpected keyword argument 'caller_info'"
      -     ]
           }
          ],
          "source": [
      @@ -216,8 +178,6 @@
           "\n",
           "f, x0, y0 = objective_factory.create(\n",
           "    name=\"foldx_stability\",\n",
      -    "    caller_info=None,\n",
      -    "    observer=None,\n",
           "    wildtype_pdb_path=wildtype_pdb_path\n",
           ")"
          ]
      @@ -271,7 +231,16 @@
          "cell_type": "code",
          "execution_count": 6,
          "metadata": {},
      -   "outputs": [],
      +   "outputs": [
      +    {
      +     "name": "stderr",
      +     "output_type": "stream",
      +     "text": [
      +      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      +      "  from .autonotebook import tqdm as notebook_tqdm\n"
      +     ]
      +    }
      +   ],
          "source": [
           "from poli_baselines.solvers.simple.random_mutation import RandomMutation\n",
           "solver = RandomMutation(\n",
      @@ -296,245 +265,7 @@
            "hide-output"
           ]
          },
      -   "outputs": [
      -    {
      -     "name": "stdout",
      -     "output_type": "stream",
      -     "text": [
      -      "   ********************************************\n",
      -      "   ***                                      ***\n",
      -      "   ***             FoldX 5 (c)            ***\n",
      -      "   ***                                      ***\n",
      -      "   ***     code by the FoldX Consortium     ***\n",
      -      "   ***                                      ***\n",
      -      "   ***     Jesper Borg, Frederic Rousseau   ***\n",
      -      "   ***    Joost Schymkowitz, Luis Serrano   ***\n",
      -      "   ***    Peter Vanhee, Erik Verschueren    ***\n",
      -      "   ***     Lies Baeten, Javier Delgado      ***\n",
      -      "   ***       and Francois Stricher          ***\n",
      -      "   *** and any other of the 9! permutations ***\n",
      -      "   ***   based on an original concept by    ***\n",
      -      "   ***   Raphael Guerois and Luis Serrano   ***\n",
      -      "   ********************************************\n",
      -      "\n",
      -      "1 models read: 3ned_Repair.pdb\n",
      -      "1 models read: 3ned_Repair.pdb\n",
      -      "\n",
      -      "BackHbond       =               -178.70\n",
      -      "SideHbond       =               -76.61\n",
      -      "Energy_VdW      =               -267.80\n",
      -      "Electro         =               -13.75\n",
      -      "Energy_SolvP    =               374.21\n",
      -      "Energy_SolvH    =               -351.07\n",
      -      "Energy_vdwclash =               6.28\n",
      -      "energy_torsion  =               7.33\n",
      -      "backbone_vdwclash=              65.17\n",
      -      "Entropy_sidec   =               146.42\n",
      -      "Entropy_mainc   =               340.27\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               0.00\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               2.25\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.77\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -9.41\n",
      -      "\n",
      -      "\n",
      -      "BackHbond       =               -178.70\n",
      -      "SideHbond       =               -76.61\n",
      -      "Energy_VdW      =               -267.80\n",
      -      "Electro         =               -13.75\n",
      -      "Energy_SolvP    =               374.21\n",
      -      "Energy_SolvH    =               -351.07\n",
      -      "Energy_vdwclash =               6.28\n",
      -      "energy_torsion  =               7.33\n",
      -      "backbone_vdwclash=              65.17\n",
      -      "Entropy_sidec   =               146.42\n",
      -      "Entropy_mainc   =               340.27\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               0.00\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               2.25\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.77\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -9.41\n",
      -      "\n",
      -      "Starting BuildModel\n",
      -      "Reading NA194F;\n",
      -      "Residue to Mutate ASNA194 has residue index 193\n",
      -      "Mutating residue = ASNA194 into PHE\n",
      -      "Your file run OK\n",
      -      "End time of FoldX: Fri Jan 19 09:51:22 2024\n",
      -      "Total time spend: 6.54 seconds.\n",
      -      "validated file \"3ned_Repair_1.pdb\" => successfully finished\n",
      -      "Cleaning BuildModel...DONE\n",
      -      "   ********************************************\n",
      -      "   ***                                      ***\n",
      -      "   ***             FoldX 5 (c)            ***\n",
      -      "   ***                                      ***\n",
      -      "   ***     code by the FoldX Consortium     ***\n",
      -      "   ***                                      ***\n",
      -      "   ***     Jesper Borg, Frederic Rousseau   ***\n",
      -      "   ***    Joost Schymkowitz, Luis Serrano   ***\n",
      -      "   ***    Peter Vanhee, Erik Verschueren    ***\n",
      -      "   ***     Lies Baeten, Javier Delgado      ***\n",
      -      "   ***       and Francois Stricher          ***\n",
      -      "   *** and any other of the 9! permutations ***\n",
      -      "   ***   based on an original concept by    ***\n",
      -      "   ***   Raphael Guerois and Luis Serrano   ***\n",
      -      "   ********************************************\n",
      -      "\n",
      -      "1 models read: 3ned_Repair.pdb\n",
      -      "1 models read: 3ned_Repair.pdb\n",
      -      "\n",
      -      "BackHbond       =               -178.70\n",
      -      "SideHbond       =               -76.61\n",
      -      "Energy_VdW      =               -267.80\n",
      -      "Electro         =               -13.75\n",
      -      "Energy_SolvP    =               374.21\n",
      -      "Energy_SolvH    =               -351.07\n",
      -      "Energy_vdwclash =               6.28\n",
      -      "energy_torsion  =               7.33\n",
      -      "backbone_vdwclash=              65.17\n",
      -      "Entropy_sidec   =               146.42\n",
      -      "Entropy_mainc   =               340.27\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               0.00\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               2.25\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.77\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -9.41\n",
      -      "\n",
      -      "\n",
      -      "BackHbond       =               -178.70\n",
      -      "SideHbond       =               -76.61\n",
      -      "Energy_VdW      =               -267.80\n",
      -      "Electro         =               -13.75\n",
      -      "Energy_SolvP    =               374.21\n",
      -      "Energy_SolvH    =               -351.07\n",
      -      "Energy_vdwclash =               6.28\n",
      -      "energy_torsion  =               7.33\n",
      -      "backbone_vdwclash=              65.17\n",
      -      "Entropy_sidec   =               146.42\n",
      -      "Entropy_mainc   =               340.27\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               0.00\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               2.25\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.77\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -9.41\n",
      -      "\n",
      -      "Starting BuildModel\n",
      -      "Reading QA114S,NA194F;\n",
      -      "Residue to Mutate GLNA114 has residue index 113\n",
      -      "Residue to Mutate ASNA194 has residue index 193\n",
      -      "Mutating residue = ASNA194 into PHE\n",
      -      "Mutating residue = GLNA114 into SER\n",
      -      "Your file run OK\n",
      -      "End time of FoldX: Fri Jan 19 09:51:32 2024\n",
      -      "Total time spend: 8.65 seconds.\n",
      -      "validated file \"3ned_Repair_1.pdb\" => successfully finished\n",
      -      "Cleaning BuildModel...DONE\n",
      -      "   ********************************************\n",
      -      "   ***                                      ***\n",
      -      "   ***             FoldX 5 (c)            ***\n",
      -      "   ***                                      ***\n",
      -      "   ***     code by the FoldX Consortium     ***\n",
      -      "   ***                                      ***\n",
      -      "   ***     Jesper Borg, Frederic Rousseau   ***\n",
      -      "   ***    Joost Schymkowitz, Luis Serrano   ***\n",
      -      "   ***    Peter Vanhee, Erik Verschueren    ***\n",
      -      "   ***     Lies Baeten, Javier Delgado      ***\n",
      -      "   ***       and Francois Stricher          ***\n",
      -      "   *** and any other of the 9! permutations ***\n",
      -      "   ***   based on an original concept by    ***\n",
      -      "   ***   Raphael Guerois and Luis Serrano   ***\n",
      -      "   ********************************************\n",
      -      "\n",
      -      "1 models read: 3ned_Repair.pdb\n",
      -      "1 models read: 3ned_Repair.pdb\n",
      -      "\n",
      -      "BackHbond       =               -178.70\n",
      -      "SideHbond       =               -76.61\n",
      -      "Energy_VdW      =               -267.80\n",
      -      "Electro         =               -13.75\n",
      -      "Energy_SolvP    =               374.21\n",
      -      "Energy_SolvH    =               -351.07\n",
      -      "Energy_vdwclash =               6.28\n",
      -      "energy_torsion  =               7.33\n",
      -      "backbone_vdwclash=              65.17\n",
      -      "Entropy_sidec   =               146.42\n",
      -      "Entropy_mainc   =               340.27\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               0.00\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               2.25\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.77\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -9.41\n",
      -      "\n",
      -      "\n",
      -      "BackHbond       =               -178.70\n",
      -      "SideHbond       =               -76.61\n",
      -      "Energy_VdW      =               -267.80\n",
      -      "Electro         =               -13.75\n",
      -      "Energy_SolvP    =               374.21\n",
      -      "Energy_SolvH    =               -351.07\n",
      -      "Energy_vdwclash =               6.28\n",
      -      "energy_torsion  =               7.33\n",
      -      "backbone_vdwclash=              65.17\n",
      -      "Entropy_sidec   =               146.42\n",
      -      "Entropy_mainc   =               340.27\n",
      -      "water bonds     =               0.00\n",
      -      "helix dipole    =               0.00\n",
      -      "loop_entropy    =               0.00\n",
      -      "cis_bond        =               2.25\n",
      -      "disulfide       =               0.00\n",
      -      "kn electrostatic=               0.00\n",
      -      "partial covalent interactions = 0.00\n",
      -      "Energy_Ionisation =             1.77\n",
      -      "Entropy Complex =               0.00\n",
      -      "-----------------------------------------------------------\n",
      -      "Total          = \t\t\t\t  -9.41\n",
      -      "\n",
      -      "Starting BuildModel\n",
      -      "Reading DA3M,QA114S,NA194F;\n",
      -      "Residue to Mutate ASPA3 has residue index 2\n",
      -      "Residue to Mutate GLNA114 has residue index 113\n",
      -      "Residue to Mutate ASNA194 has residue index 193\n",
      -      "Mutating residue = ASPA3 into MET\n",
      -      "Mutating residue = ASNA194 into PHE\n",
      -      "Mutating residue = GLNA114 into SER\n",
      -      "Your file run OK\n",
      -      "End time of FoldX: Fri Jan 19 09:51:42 2024\n",
      -      "Total time spend: 9.23 seconds.\n",
      -      "validated file \"3ned_Repair_1.pdb\" => successfully finished\n",
      -      "Cleaning BuildModel...DONE\n"
      -     ]
      -    }
      -   ],
      +   "outputs": [],
          "source": [
           "solver.solve(max_iter=3)"
          ]
      @@ -562,9 +293,9 @@
            "name": "stdout",
            "output_type": "stream",
            "text": [
      -      "All y values: [array([[9.41639]]), array([[13.0629]]), array([[13.5983]]), array([[13.1298]])]\n",
      -      "best stability: [13.5983]\n",
      -      "Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLSDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYFTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK\n"
      +      "All y values: [array([[9.41639]]), array([[5.56267]]), array([[0.846902]]), array([[9.39441]])]\n",
      +      "best stability: [9.41639]\n",
      +      "Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLQDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYNTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK\n"
            ]
           }
          ],
      diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb
      index e4c42fc7..7f194a72 100644
      --- a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb
      +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/defining_an_observer.ipynb
      @@ -304,7 +304,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 5,
      +   "execution_count": 6,
          "metadata": {
           "tags": [
            "hide-output"
      @@ -318,6 +318,17 @@
             "poli 🧪: Creating the objective from the repository.\n",
             "poli 🧪: initializing the observer.\n"
            ]
      +    },
      +    {
      +     "ename": "ValueError",
      +     "evalue": "too many values to unpack (expected 3)",
      +     "output_type": "error",
      +     "traceback": [
      +      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      +      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      +      "Cell \u001b[0;32mIn[6], line 7\u001b[0m\n\u001b[1;32m      4\u001b[0m observer \u001b[38;5;241m=\u001b[39m SimpleObserver()\n\u001b[1;32m      6\u001b[0m \u001b[38;5;66;03m# We instantiate the objective function\u001b[39;00m\n\u001b[0;32m----> 7\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m objective_factory\u001b[38;5;241m.\u001b[39mcreate(\n\u001b[1;32m      8\u001b[0m     name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124maloha\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m      9\u001b[0m     observer\u001b[38;5;241m=\u001b[39mobserver,\n\u001b[1;32m     10\u001b[0m )\n",
      +      "\u001b[0;31mValueError\u001b[0m: too many values to unpack (expected 3)"
      +     ]
           }
          ],
          "source": [
      @@ -342,7 +353,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 6,
      +   "execution_count": 8,
          "metadata": {},
          "outputs": [
           {
      @@ -367,7 +378,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 7,
      +   "execution_count": 10,
          "metadata": {},
          "outputs": [
           {
      @@ -395,7 +406,7 @@
         },
         {
          "cell_type": "code",
      -   "execution_count": 8,
      +   "execution_count": 11,
          "metadata": {},
          "outputs": [
           {
      diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb
      index d2a04e19..011b30bb 100644
      --- a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb
      +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/intro_to_poli.ipynb
      @@ -66,7 +66,7 @@
            "name": "stdout",
            "output_type": "stream",
            "text": [
      -      "['aloha', 'dockstring', 'foldx_stability', 'gfp_select', 'rdkit_logp', 'rdkit_qed', 'toy_continuous_problem', 'white_noise']\n"
      +      "['aloha', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_select', 'penalized_logp_lambo', 'rdkit_logp', 'rdkit_qed', 'toy_continuous_problem', 'white_noise']\n"
            ]
           }
          ],
      @@ -91,7 +91,7 @@
            "name": "stdout",
            "output_type": "stream",
            "text": [
      -      "['aloha', 'dockstring', 'drd3_docking', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_cbas', 'gfp_select', 'penalized_logp_lambo', 'rasp', 'rdkit_logp', 'rdkit_qed', 'rfp_foldx_stability_and_sasa', 'sa_tdc', 'super_mario_bros', 'toy_continuous_problem', 'white_noise']\n"
      +      "['aloha', 'dockstring', 'drd3_docking', 'foldx_rfp_lambo', 'foldx_sasa', 'foldx_stability', 'foldx_stability_and_sasa', 'gfp_cbas', 'gfp_select', 'penalized_logp_lambo', 'rasp', 'rdkit_logp', 'rdkit_qed', 'sa_tdc', 'super_mario_bros', 'toy_continuous_problem', 'white_noise']\n"
            ]
           }
          ],
      @@ -159,20 +159,12 @@
          "execution_count": 4,
          "metadata": {},
          "outputs": [
      -    {
      -     "name": "stderr",
      -     "output_type": "stream",
      -     "text": [
      -      "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      -      "  from .autonotebook import tqdm as notebook_tqdm\n"
      -     ]
      -    },
           {
            "name": "stdout",
            "output_type": "stream",
            "text": [
             "x0: [['1' '2' '3']]\n",
      -      "y0: [[-1.16173153]]\n"
      +      "y0: [[0.24476048]]\n"
            ]
           }
          ],
      @@ -204,7 +196,7 @@
           {
            "data": {
             "text/plain": [
      -       "array([['1', '2', '6']], dtype='
      Date: Wed, 21 Feb 2024 16:26:01 +0100
      Subject: [PATCH 4/4] Adds a small tag for continuous and discrete optimizers
      
      ---
       .../_build/.doctrees/environment.pickle       | Bin 1398398 -> 1391469 bytes
       docs/poli-docs/_build/.doctrees/index.doctree | Bin 60209 -> 61016 bytes
       .../optimizing_protein_stability.doctree      | Bin 30511 -> 30500 bytes
       .../using_poli/the_basics/isolation.doctree   | Bin 28462 -> 22595 bytes
       .../base.ipynb                                | 189 ++++++++++
       .../poli-docs/_build/.jupyter_cache/global.db | Bin 40960 -> 40960 bytes
       docs/poli-docs/_build/html/_sources/index.md  |   9 +
       docs/poli-docs/_build/html/index.html         |  14 +
       docs/poli-docs/_build/html/searchindex.js     |   2 +-
       .../html/using_poli/the_basics/isolation.html |  76 +---
       .../optimizing_protein_stability.ipynb        | 337 +++++++++++++++++-
       .../using_poli/the_basics/isolation.ipynb     |  71 ++--
       docs/poli-docs/index.md                       |   9 +
       13 files changed, 581 insertions(+), 126 deletions(-)
       create mode 100644 docs/poli-docs/_build/.jupyter_cache/executed/446bf9e357d4c8f4d26df02b81ac5e1a/base.ipynb
      
      diff --git a/docs/poli-docs/_build/.doctrees/environment.pickle b/docs/poli-docs/_build/.doctrees/environment.pickle
      index f55d2dafd6a46c0e3cd695ff0c4f541296f4063c..934633f12fea862a12c87b30d3e40323436d0c1c 100644
      GIT binary patch
      literal 1391469
      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

      -L?S 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 delta 6251 zcmbuDdsGzn6~~>yMR!pAB$Pt9RU$RVoVEauzIAZ z+%;-AsECgw)(WnO5K)v$)tDITqdlft^;i@27@O9UwCCiQ{_bz)x4Zmy({tSAk2}oo z-rx7$&z;}S%y0hsH@}7(ews4PwpSiEXly00VeUFeT$LnlkYJ4=0q&G`6U!xto;*`n z3;$VFC+@=WFj$b^N2;)dTM{gx@>&Vb%wO!kk^EaK!PERK*tvQ*Jv~l>H^qu%bnEO8 zXxpR&y@z@s@Mgt&ag_wiGZw<{N`ECjaVC636N+C;Fs5vS;0LDiaGJ16O-LM=a5G7G zUrBg=O(H!F4WJ3hC`*Vzcij^1UpH2mN_6{Ez{~&&m9?-MNn@Mf~ z)f>`<3yz99XhmXs0KBvDlJIv&2X?8o5C`U~CQ@zAe0chUl8=nCd^p6cC-Yml`7nAyRM-hcyOHw| z?PeW}t_=nK2Lr`xPLV5IAd2+*84;Kg9obv9D;erNP5gu63{T)g)#n@^Enx9JDP>Q5LL6pAr}=$ z<-!9yx7?MMmqXftjP`r?T>pos`onB7Q{g$T@}w#SO!QCy<4NIs4j%idYLh^g7y;5U zyw={yqpg_a@_o{pwY(A|I*!PZ) z7QUg_r&R3w3ie$O`5E?Y&ga0k|GOzt5VUZmg+8<-rm4|WZgN2G*5()?jK=f}?#IRG zHF|CZ7ql!C29W4H*GTM;$Va+71NjPl=uqF23xqi&e=L;s3DBNayEFq#P4W6{4<)cB zWpO@7lOVhGmarNIo?0L=wGyR2uG5h`ha#+@GJ8iUkDoUH4*;8XfQy`*iq z(CnaYQ>hy%^-&KcFzO?m&q@8!ncKomN|jclg_CCoNlf*ILQf93IuhHng(ozwzI~W$ z4ANiaMwhI4}ql{grYYFFEWyND7a zEIDVEG{u&9i-emMNREiB>X)5H~RGYJ8l1OGmmOj-VdgaY*Nw#{gw>H^IL1 zlf=0O@}8pXcxM^thHyH(cVVZv9LMR77lO}s7pEKO*6TBZG1Wk~ddANN_~YqD5=eHt zWRz{aa5NLOl&xNxf$nynUYa1bIg_>0WMYc}IzInUyy3_uT~li$9^C9*A!1ER#`%|D zrKjI28ObQih(X6XWyH;`!%{Xd)7)GqQg9Kyo5^4}uk#W^NRB<``I=hDjkZWcPza>F0&QOAvpi|MP<89IQn7?ci9hadR zE2=@W8%-^mIyC#y97OXmnnP#~qd9`60gas)w+m;?%#qEDimWTmQHzW7$v?~T8U1mb zq+G#-7r2C#ZultVEk1mIv)Ms^5i7cc<_k1m65|FWWfl}!^Q`Zh3mL~%jD6vi*h*%p zD-o(MYdc*}RP+wWJf2LQXOq=c$o-16nK>)Wg)5zUdW$xec`3nvlnC z13zLx&xvvCyKd~V{Gvi@PH~Yne~Eez5RBe*{;6B}sN-GvrAoguD*Q|ZR@-`;iFN)Z zBI)+~4;-B}DXP%C*j#ANUu0GxdV2-Y9ZSwJLCmcn!R7XaVm^}Sa;!PI)@4fyO$C-! zu1E={(ZgYO; zBi|{Blo9H?b%nBrk>Uv>)IJOsn~l)+@D<^r!}t7QH2R_+4GC=`sVWR5%L?CKw5&M4 zsDGX{zqkmWD;JDV@F>=Q1`~ae8Sg%JMn+hL8HY0 diff --git a/docs/poli-docs/_build/.doctrees/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.doctree b/docs/poli-docs/_build/.doctrees/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.doctree index feaf20cdfe2fa387a69c694da528e1d6b0e4896b..644a0712fbda18d4d9df69de66592e21f00c4034 100644 GIT binary patch delta 2255 zcmZuyX>3$g6y~1UAa91YbfHtHo#}L?(`5!a?X(@}l2A(_GhL(wT9~%9^)a?m%T!UQ zfTlk*)c|Kmpo)r$7>PlAX~c*u1qzZNQP4EazrY#5@?0&}q@}?aV9zu& zE=w248I;m80@#DJLijTrbEhw)5r@(#kMwW)EdW7AGqW)^D}tz`w5&t|S{XXa@^F>u zW5{Hn8NbXGNGjH6*HT-Sn}7$iOQ1L$vgH(zWL%jutkcRSP3mhC;|3wu;2rR8@b-H% zMTMvopK)txZV9+Td0PB7w~5IePB&{#oF$XQL@}ENs${sSJ_%b&t3MTf;utqfEPRlLwK5m@Z2-{@1A#(cWS!U9YmRXPa z-hDt$;^}-l8AY|#0;60VS6T%MuCd-Gw|Rwc6j^U>{Ipb8?2V3>Z?Ww6nd3;bfT=U%{`80rw*%% zI-y9;yZS>>DU{3k_7@imqzEgEjXtax>VtmfdB>)s@D960b1g(&AZL|7AsmKI5H6jq z#xF{q1&>c$ZMVW&E~363;`HD;douA*DLcG0kv}Z*Dg2GF-N(ImwiR}AZq1DlHw9T8 z+j$*f{-KFFVdw;%OLKmOlfH$Ihsa0qe(7S`a7P)!MTY9|zp@l^9#hIkU{sFXm5CH( zI~bO9B&Zw{Xk8e3mCn<2bj?xYhZW}ND-&8fB3-FS1&CGfW?pbwNh0P|+DR;W=Nba; z({o)U&+qQ4Ok!?&6mWkf8^#lr524PNu5nn&5{#&_lR8{bl|pS#l^vW4wB$!ihpR*a zy}>|uO~Hp|ceOxz@tf+e8OB)On=cTjv}^u+fUTkEk9f2?ZfkHTx8iz7BMV_kQ=Ed% zt6)dk{X4C3M(8}NmU=V!)FK=R773$1ac!+Y4q$DKE`ZTW;kR%st=7OWcJkvx+TYQT z9Dec>{HG-h+~-@zI3B9q0{{3ld+HVfJ(2X1(r8086pUzyXECe>N4)?KgT&E(;;`_2 zxUt@3j-vE~%AVei&K0Y@qS75rzuhrRQ#85#4Gvq4SNfygL?D-m^Kk+bea$JuZ3{gl z1E)45b-;Ha2t=Fgcb7ClpVD`crQzF698c`3z;jJj{}5nG^Y>&3FE=;CCu~8c821h(zinn-4>ooP zUtj8kAtj&4@uemhW}#;F6Ct(BEP;^i%L?K6Q$nV>s#yrz+IL+7TS1Me#gh>U_@iqc zTnkjBn^K{Xu~M)23ftBqz(rO@9PV#vqvN4(jY~Mp4$dj}2z|JZFmsfdW7OcLmT2O{ z<*oN1Mum~7W=&l_rSttEqEu}3aaY^lU{vvXhL>9*OU3HJQ|$sVVrF|$09)Ix2YWbn zu01(`#dhey5svkCG%}1;_ozbvs#K%Tm+YMb1iEM(ZB7oLIZ433Ru#}+M!F}7XmPG5gJe-pJPvpa z)ccvoDxW@??m(U=mdwBho~(7lD!MCQG4mXurk0t5K+S$;7O+X3$IMg~A~3U?na`=| z8=UfDYj=m|)t-)3>}Tv|Tn^6T;2aK~@8G!(p6BQjlUXDa6xCF17JcUUv>KW8d1j6> b!&OJvBDkuPErO}KqwuG`2jnIme_8w=boHkm delta 2321 zcmZWqeN0nV6z86n7JcPIKx|7vDAo^3fhr&JEhI38v9wl%fyjqcpAS%^tx7f&buQb& zADV;96g8W1ZcE%2eT&Hw5hG5vnK{{<$udpYR8*$UnYbmIEW7u;LSM!|r?2OC?(cWb zx#!+{@(KCk2~qcj9$Iil&6zP(7c1(`e-O9=_*Yt5R3x8Rb@nq7!YA-)e7rD%r3)UC z8+hGf#Bz%TZn3CLJZj;n^ApP=339;`rMqci4cq|SQ<15=bR)Y` zKeG9V5sm3aM!{mM)00WF6l=uK(;JwZ=79wnoH|Su5`tq9^JfVf`o(G!yEAqWcvGf} z3ga-LE_&9FFKNp0!X6d=mQ;xCb`Ew?jyf|Qu}{uE##Sa)(HQ)*UXQ1i=D-n(M$N6E1QQ!%kC4_x>(H1dY4?K3E6eOn_;S}qe!ytFe>Gy^p9Xy_9J*Km$DkdoQAh`QsN!#M%N#$vk_8P? zoDQ~4540OgD^rM@hTEhYL;*R)6P0fe@CKK^F3WsS#St%_t~yI?UxghHtmKGOJi2lv zz~Nx{2RHk0Xh?{^m5=K$!L6%S-~~qnIV`RG*TIDyl0e}u&Z&+eY;;XnTD=2? zgO!iUOc5?lJxqh~K)HdzQ^o%>4U=Isx{|16S#`KLavrPQDaOEI(Z4@k^;fc{tTyKA zffq8JXLSvLM(XpU)tveTQ%fq2BQF@E&JZN{hY`mGh!uWDOs^_aVSkusi@(#?)8!cu zqN%fA)79kswqKFlA#vPoC6K}LkfsaLG=Y2bJ@sOZoDwY7 zNK@um%c)rh<@*uo7rg?V;{LUr1e)b#^8IKajp%AF(wT>+yHGFo)p>yQ;6!}`*-lZt zbQ$h$;GkZEXUt`Its$E@QN3=A4C2jo>)<5I$r>x1pjpt{bm_!2*C2Wut6@+h?aJ*& zE1Z+t_;Ni**H)~z%a{>yeGYu1#I#LS3}Z)C!RHL6SGNJbi!|a$)2lF{EG0UuEL_Fv zyhC%YB;(Ywi@OA$Hm9Ty)8o`Q(9iLk+dQ_deqWd0H_+l0F0oVgy)Z(5gv-o)&CC@n zZHc25*0nq%bMauC4R^Lil4$YmRxKeZcwj>{u~K&-{Z44hqxNZ=3B7Fzq$uFM)|M=J z^GJ2Tv&mBnDOzc7o_aWlrk{0sJZdtD_Ko`qbZVuo47^!*v0V#-mOWVE-Fs0K4c&sB^MQ({dZH-bxd>Cbp! zMEbnu`xb#!cK7&_se90uP4qbC)00%3^rh}Tr=?9e!^|2&jft>l}VQnME=|UPslI(O;Xa iRm-GrF>{$2Np*xJA*ni95=>Qy#w-5kWD?JB=l=uPebLka diff --git a/docs/poli-docs/_build/.doctrees/using_poli/the_basics/isolation.doctree b/docs/poli-docs/_build/.doctrees/using_poli/the_basics/isolation.doctree index b863209f0d27923a5e19bddc06b2cd95385e94ed..19eff8b8d96320a830a91e27a401e64cfa595414 100644 GIT binary patch delta 2830 zcmeHJYiv_x7~c1_-K{Gfm(AU}oozNSS-Wv{9UF|zPAJfAj9p-ZQo7Tf9@=xZ?i6SM z#|ZF42b#Pkffykp5EB)HR0aq-g^(qZU^M(7M%4L(IDZh(L?nXq`_5@gWr;w7|NQf| zeXq~+yze>bhu@>ir;uis=3qtpN1B3+{-z$$>tXI3efPae#^q<7l1J!fSYeCDFA6?Z zkQf?wIJ!jF=03?!gKod*V;=o3i%T{Kecsd%m$W{_Wez@7=hA0s4G%L8_YV#|cf@fG z{Q*IsB>il+hwvqGhyo+JAMx#v2oT45l0-2H{sXA?N9%eb)~A39`*Pk;|A7(`pm(;h z-zEClvIzB{xhGgTcR@uZ)6&QK+nj!?OC@9dx6^QX$pv)<8Fm{Hug}c1dAwdm5GCcZ zSjHonQyFHf(yPx*zszzM#ahlM=eC^)>kynib|>=`-HJ+5De&&ez!zE`1HL-4S&3sA zx9IhXTj`!%qR;0Py2$N|LYI>vk}@V?(n6V@pu~|wAhXO+mY>-f5sCE^k<82_PDM`` zW+d7aF~;chlIX#-|G$Z6+(g53-UJ*eJpjcSzrbG=#c)2SJ$$2nT!k@)Q>BG)%T@_` zQ+haPxsI?A!x#E&;1(4k6O7c&feVYY$Oxm0J|lLldJdeeI)tpySiJzPqH&!x6(w*6 zu9VB=tr$|*Mrz!f)Tivh z2?<=jZFdEj8rtOi0h<2;o`K=6#elNGS(8l*do7u8+cGyjX)u-D#=0CXF(62x6)GsN z%!4~MKjRY$_TQFT&`E-=3Y`GHc3sr{L#+{wMBKG?v!d?3br$q>#QmVIgw#-$ZLe&> z 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 diff --git a/docs/poli-docs/_build/.jupyter_cache/executed/446bf9e357d4c8f4d26df02b81ac5e1a/base.ipynb b/docs/poli-docs/_build/.jupyter_cache/executed/446bf9e357d4c8f4d26df02b81ac5e1a/base.ipynb new file mode 100644 index 00000000..d81cc6f3 --- /dev/null +++ b/docs/poli-docs/_build/.jupyter_cache/executed/446bf9e357d4c8f4d26df02b81ac5e1a/base.ipynb @@ -0,0 +1,189 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# No output: we don't have it installed.\n", + "!pip freeze | grep dockstring" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: creating environment poli__dockstring from dockstring/environment.yml\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: creating environment poli__dockstring from dockstring/environment.yml\n", + "poli 🧪: running registration of dockstring from environment poli__dockstring\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sjt972/Projects/poli/src/poli/core/registry.py:258: UserWarning: Environment poli__dockstring already exists. Will not create it.\n", + " warnings.warn(f\"Environment {env_name} already exists. Will not create it.\")\n", + "/Users/sjt972/Projects/poli/src/poli/core/registry.py:269: UserWarning: Running the following command: conda run -n poli__dockstring python /Users/sjt972/Projects/poli/src/poli/objective_repository/dockstring/register.py. \n", + " warnings.warn(\"Running the following command: %s. \" % command)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: creating an isolated black box function.\n", + "poli 🧪: starting the isolated objective process.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from poli import create\n", + "\n", + "f, x0, y0 = create(\n", + " name=\"dockstring\",\n", + " target_name=\"drd2\" # The target protein.\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ExternalBlackBox(L=inf, num_evaluations=0)\n" + ] + } + ], + "source": [ + "print(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[11.9]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f(x0)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ExternalBlackBox(L=inf, num_evaluations=1)\n" + ] + } + ], + "source": [ + "print(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: Creating the objective from the repository.\n" + ] + } + ], + "source": [ + "f_logp, x0_logp, y0_logp = create(\n", + " name=\"rdkit_logp\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LogPBlackBox(L=inf, num_evaluations=1)\n" + ] + } + ], + "source": [ + "print(f_logp)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "poli-docs", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/docs/poli-docs/_build/.jupyter_cache/global.db b/docs/poli-docs/_build/.jupyter_cache/global.db index ffc38b8913933f1cf718a584576959da59c819e6..eda52574f7bd5431389eca989074f2aa68564b45 100644 GIT binary patch delta 402 zcmZoTz|?SnX@WGbJOcv*7Z7s-G2=uHb4K}%2}}I>Sh+(O`1$$Nd0lyoxI;EJI&teX zMzeA<_%@pJ#ydKin3yG{S*9ABnx~i~Tcnw!7@4J{85kv57$zp0rWz(rE{t`be5O!f z^42(!U}H-?Q!`UbQwviIV*?N{sWmb%GSM|K(ls(vFf_F?GO;o>(la$TGdDEDC1YgJ zB)|f+ze$-l*3oftVZOrTxR|R#a03jD^eoKG3=B;syT)EX5w)7iQj{NJAW?!oy~#*X8fuu%)X3-{LVT#H-82z ve=Gxk?8e3dMkc-vpx%ePJdFy#@M|=W6l8E@fQC;1Q06`V#0i3nCI|okLaAf# literal 40960 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 Contents

    7. Black-box optimization algorithms
    8. +
    9. Discrete
    10. +
    11. Continuous
    12. Cite us and other relevant work
    13. Contribute problems or solvers
    14. @@ -724,6 +726,9 @@

      Proteins

      Black-box optimization algorithms#

      On top of poli, we provide poli-baselines, a collection of black-box optimization algorithms (focusing especially on discrete sequences). Examples include

      +

      +
      +

      Discrete#

      @@ -735,6 +740,13 @@

      Black-box optimization algorithms

      +
      + +
      +
      +

      Continuous#

      +
      +
      @@ -936,6 +948,8 @@

      Contribute problems or solversBlack-box optimization algorithms +
    15. Discrete
    16. +
    17. Continuous
    18. Cite us and other relevant work
    19. Contribute problems or solvers
    20. diff --git a/docs/poli-docs/_build/html/searchindex.js b/docs/poli-docs/_build/html/searchindex.js index 1ef09fec..0778181c 100644 --- a/docs/poli-docs/_build/html/searchindex.js +++ b/docs/poli-docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_autosummary/poli", "_autosummary/poli.core", "_autosummary/poli.core.abstract_black_box", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox", "_autosummary/poli.core.abstract_problem_factory", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory", "_autosummary/poli.core.chemistry", "_autosummary/poli.core.chemistry.tdc_black_box", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox", "_autosummary/poli.core.exceptions", "_autosummary/poli.core.exceptions.BudgetExhaustedException", "_autosummary/poli.core.exceptions.PoliException", "_autosummary/poli.core.multi_objective_black_box", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "_autosummary/poli.core.problem_setup_information", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation", "_autosummary/poli.core.proteins", "_autosummary/poli.core.proteins.foldx_black_box", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox", "_autosummary/poli.core.registry", "_autosummary/poli.core.registry.delete_observer_run_script", "_autosummary/poli.core.registry.delete_problem", "_autosummary/poli.core.registry.get_problem_factories", "_autosummary/poli.core.registry.get_problems", "_autosummary/poli.core.registry.register_problem", "_autosummary/poli.core.registry.register_problem_from_repository", "_autosummary/poli.core.registry.set_observer", "_autosummary/poli.core.registry.set_observer_run_script", "_autosummary/poli.core.util", "_autosummary/poli.core.util.abstract_observer", "_autosummary/poli.core.util.abstract_observer.AbstractObserver", "_autosummary/poli.core.util.alignment", "_autosummary/poli.core.util.alignment.is_aligned", "_autosummary/poli.core.util.batch", "_autosummary/poli.core.util.batch.batch_input", "_autosummary/poli.core.util.batch.batch_input.batched", "_autosummary/poli.core.util.chemistry", "_autosummary/poli.core.util.chemistry.string_to_molecule", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "_autosummary/poli.core.util.external_observer", "_autosummary/poli.core.util.external_observer.ExternalObserver", "_autosummary/poli.core.util.files", "_autosummary/poli.core.util.files.download_files_from_github", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag", "_autosummary/poli.core.util.files.integrity", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath", "_autosummary/poli.core.util.inter_process_communication", "_autosummary/poli.core.util.inter_process_communication.process_wrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection", "_autosummary/poli.core.util.objective_management", "_autosummary/poli.core.util.objective_management.make_run_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script", "_autosummary/poli.core.util.observer_wrapper", "_autosummary/poli.core.util.observer_wrapper.start_observer_process", "_autosummary/poli.core.util.proteins", "_autosummary/poli.core.util.proteins.defaults", "_autosummary/poli.core.util.proteins.foldx", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface", "_autosummary/poli.core.util.proteins.mutations", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "_autosummary/poli.core.util.proteins.pdb_parsing", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "_autosummary/poli.core.util.proteins.rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization", "_autosummary/poli.core.util.proteins.rasp.load_models", "_autosummary/poli.core.util.proteins.rasp.rasp_interface", "_autosummary/poli.core.util.seeding", "_autosummary/poli.core.util.seeding.seeding", "_autosummary/poli.core.util.seeding.seeding.seed_numpy", "_autosummary/poli.core.util.seeding.seeding.seed_python", "_autosummary/poli.objective", "_autosummary/poli.objective.dynamically_instantiate", "_autosummary/poli.objective.parse_factory_kwargs", "_autosummary/poli.objective.run", "_autosummary/poli.objective_factory", "_autosummary/poli.objective_factory.ExternalBlackBox", "_autosummary/poli.objective_factory.create", "_autosummary/poli.objective_factory.load_config", "_autosummary/poli.objective_factory.start", "_autosummary/poli.objective_repository", "_autosummary/poli.objective_repository.aloha", "_autosummary/poli.objective_repository.aloha.register", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory", "_autosummary/poli.objective_repository.dockstring", "_autosummary/poli.objective_repository.dockstring.register", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory", "_autosummary/poli.objective_repository.drd3_docking", "_autosummary/poli.objective_repository.drd3_docking.register", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config", "_autosummary/poli.objective_repository.foldx_sasa", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils", "_autosummary/poli.objective_repository.foldx_sasa.register", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "_autosummary/poli.objective_repository.foldx_stability", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils", "_autosummary/poli.objective_repository.foldx_stability.register", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "_autosummary/poli.objective_repository.foldx_stability_and_sasa", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "_autosummary/poli.objective_repository.gfp_cbas", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp", "_autosummary/poli.objective_repository.gfp_cbas.make_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "_autosummary/poli.objective_repository.gfp_cbas.register", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "_autosummary/poli.objective_repository.gfp_select", "_autosummary/poli.objective_repository.gfp_select.register", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "_autosummary/poli.objective_repository.penalized_logp_lambo", "_autosummary/poli.objective_repository.penalized_logp_lambo.register", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "_autosummary/poli.objective_repository.rasp", "_autosummary/poli.objective_repository.rasp.register", "_autosummary/poli.objective_repository.rdkit_logp", "_autosummary/poli.objective_repository.rdkit_logp.register", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "_autosummary/poli.objective_repository.rdkit_qed", "_autosummary/poli.objective_repository.rdkit_qed.register", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.sa_tdc", "_autosummary/poli.objective_repository.sa_tdc.register", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory", "_autosummary/poli.objective_repository.super_mario_bros", "_autosummary/poli.objective_repository.super_mario_bros.level_utils", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized", "_autosummary/poli.objective_repository.super_mario_bros.model", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model", "_autosummary/poli.objective_repository.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "_autosummary/poli.objective_repository.toy_continuous_problem.register", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "_autosummary/poli.objective_repository.white_noise", "_autosummary/poli.objective_repository.white_noise.register", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "_autosummary/poli.registered_objectives", "_autosummary/poli.tests", "_autosummary/poli.tests.docs_examples", "_autosummary/poli.tests.docs_examples.test_objective_functions", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "_autosummary/poli.tests.registry", "_autosummary/poli.tests.registry.basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion", "_autosummary/poli.tests.registry.chemistry", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives", "_autosummary/poli.tests.registry.proteins", "_autosummary/poli.tests.registry.proteins.test_foldx", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo", "_autosummary/poli.tests.registry.proteins.test_rasp", "_autosummary/poli.tests.registry.test_basic_loop_without_create", "_autosummary/poli.tests.registry.test_force_isolation", "_autosummary/poli.tests.registry.test_passing_array_of_strings", "_autosummary/poli.tests.registry.toy_continuous_problems", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "_autosummary/poli.tests.test_minimal_working_example", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example", "_autosummary/poli.tests.test_seeding", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise", "_autosummary/poli.tests.util", "_autosummary/poli.tests.util.test_foldx_interface", "_autosummary/poli.tests.util.test_protein_utilities", "_templates/custom-module-template", "api", "bibliography", "contributing/a_new_problem", "contributing/a_new_solver", "getting_started/getting_started", "index", "understanding_foldx/00-installing-foldx", "understanding_foldx/01-single-mutation-using-foldx/index", "using_poli/objective_repository/RaSP", "using_poli/objective_repository/all_objectives", "using_poli/objective_repository/aloha", "using_poli/objective_repository/dockstring", "using_poli/objective_repository/drd3_docking", "using_poli/objective_repository/foldx_rfp_lambo", "using_poli/objective_repository/foldx_sasa", "using_poli/objective_repository/foldx_stability", "using_poli/objective_repository/penalized_logp_lambo", "using_poli/objective_repository/rdkit_logp", "using_poli/objective_repository/rdkit_qed", "using_poli/objective_repository/sa_tdc", "using_poli/objective_repository/super_mario_bros", "using_poli/objective_repository/tdc_oracles", "using_poli/objective_repository/template", "using_poli/objective_repository/toy_continuous_problems", "using_poli/objective_repository/white_noise", "using_poli/observers/registering_an_observer", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability", "using_poli/the_basics/defining_a_problem_solver", "using_poli/the_basics/defining_an_observer", "using_poli/the_basics/diving_deeper", "using_poli/the_basics/intro_to_poli", "using_poli/the_basics/isolation", "using_poli/the_basics/optimizing_an_objective_function", "using_poli/the_basics/registering_an_objective_function", "using_poli_baselines/bayesian_optimization", "using_poli_baselines/cma_es", "using_poli_baselines/graph_ga", "using_poli_baselines/latent_space_bo", "using_poli_baselines/line_bayesian_optimization", "using_poli_baselines/nsga_2", "using_poli_baselines/random_mutations", "using_poli_baselines/template"], "filenames": ["_autosummary/poli.rst", "_autosummary/poli.core.rst", "_autosummary/poli.core.abstract_black_box.rst", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox.rst", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox.rst", "_autosummary/poli.core.abstract_problem_factory.rst", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory.rst", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.rst", "_autosummary/poli.core.chemistry.rst", "_autosummary/poli.core.chemistry.tdc_black_box.rst", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox.rst", "_autosummary/poli.core.exceptions.rst", "_autosummary/poli.core.exceptions.BudgetExhaustedException.rst", "_autosummary/poli.core.exceptions.PoliException.rst", "_autosummary/poli.core.multi_objective_black_box.rst", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.rst", "_autosummary/poli.core.problem_setup_information.rst", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.rst", "_autosummary/poli.core.proteins.rst", "_autosummary/poli.core.proteins.foldx_black_box.rst", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.rst", "_autosummary/poli.core.registry.rst", "_autosummary/poli.core.registry.delete_observer_run_script.rst", "_autosummary/poli.core.registry.delete_problem.rst", "_autosummary/poli.core.registry.get_problem_factories.rst", "_autosummary/poli.core.registry.get_problems.rst", "_autosummary/poli.core.registry.register_problem.rst", "_autosummary/poli.core.registry.register_problem_from_repository.rst", "_autosummary/poli.core.registry.set_observer.rst", "_autosummary/poli.core.registry.set_observer_run_script.rst", "_autosummary/poli.core.util.rst", "_autosummary/poli.core.util.abstract_observer.rst", "_autosummary/poli.core.util.abstract_observer.AbstractObserver.rst", "_autosummary/poli.core.util.alignment.rst", "_autosummary/poli.core.util.alignment.is_aligned.rst", "_autosummary/poli.core.util.batch.rst", "_autosummary/poli.core.util.batch.batch_input.rst", "_autosummary/poli.core.util.batch.batch_input.batched.rst", "_autosummary/poli.core.util.chemistry.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies.rst", "_autosummary/poli.core.util.external_observer.rst", "_autosummary/poli.core.util.external_observer.ExternalObserver.rst", "_autosummary/poli.core.util.files.rst", "_autosummary/poli.core.util.files.download_files_from_github.rst", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.rst", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.rst", "_autosummary/poli.core.util.files.integrity.rst", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath.rst", "_autosummary/poli.core.util.inter_process_communication.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.rst", "_autosummary/poli.core.util.objective_management.rst", "_autosummary/poli.core.util.objective_management.make_run_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.rst", "_autosummary/poli.core.util.observer_wrapper.rst", "_autosummary/poli.core.util.observer_wrapper.start_observer_process.rst", "_autosummary/poli.core.util.proteins.rst", "_autosummary/poli.core.util.proteins.defaults.rst", "_autosummary/poli.core.util.proteins.foldx.rst", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface.rst", "_autosummary/poli.core.util.proteins.mutations.rst", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings.rst", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant.rst", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure.rst", "_autosummary/poli.core.util.proteins.rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization.rst", "_autosummary/poli.core.util.proteins.rasp.load_models.rst", "_autosummary/poli.core.util.proteins.rasp.rasp_interface.rst", "_autosummary/poli.core.util.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.seed_numpy.rst", "_autosummary/poli.core.util.seeding.seeding.seed_python.rst", "_autosummary/poli.objective.rst", "_autosummary/poli.objective.dynamically_instantiate.rst", "_autosummary/poli.objective.parse_factory_kwargs.rst", "_autosummary/poli.objective.run.rst", "_autosummary/poli.objective_factory.rst", "_autosummary/poli.objective_factory.ExternalBlackBox.rst", "_autosummary/poli.objective_factory.create.rst", "_autosummary/poli.objective_factory.load_config.rst", "_autosummary/poli.objective_factory.start.rst", "_autosummary/poli.objective_repository.rst", "_autosummary/poli.objective_repository.aloha.rst", "_autosummary/poli.objective_repository.aloha.register.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.rst", "_autosummary/poli.objective_repository.dockstring.rst", "_autosummary/poli.objective_repository.dockstring.register.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.rst", "_autosummary/poli.objective_repository.drd3_docking.rst", "_autosummary/poli.objective_repository.drd3_docking.register.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.rst", "_autosummary/poli.objective_repository.foldx_sasa.rst", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability.rst", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_stability.register.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_cbas.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_select.rst", "_autosummary/poli.objective_repository.gfp_select.register.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.rst", "_autosummary/poli.objective_repository.rasp.rst", "_autosummary/poli.objective_repository.rasp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.rst", "_autosummary/poli.objective_repository.rdkit_qed.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.sa_tdc.rst", "_autosummary/poli.objective_repository.sa_tdc.register.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory.rst", "_autosummary/poli.objective_repository.super_mario_bros.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem.rst", "_autosummary/poli.objective_repository.white_noise.rst", "_autosummary/poli.objective_repository.white_noise.register.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory.rst", "_autosummary/poli.registered_objectives.rst", "_autosummary/poli.tests.rst", "_autosummary/poli.tests.docs_examples.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example.rst", "_autosummary/poli.tests.registry.rst", "_autosummary/poli.tests.registry.basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise.rst", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion.rst", "_autosummary/poli.tests.registry.chemistry.rst", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives.rst", "_autosummary/poli.tests.registry.proteins.rst", "_autosummary/poli.tests.registry.proteins.test_foldx.rst", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo.rst", "_autosummary/poli.tests.registry.proteins.test_rasp.rst", "_autosummary/poli.tests.registry.test_basic_loop_without_create.rst", "_autosummary/poli.tests.registry.test_force_isolation.rst", "_autosummary/poli.tests.registry.test_passing_array_of_strings.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems.rst", "_autosummary/poli.tests.test_minimal_working_example.rst", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.rst", "_autosummary/poli.tests.test_seeding.rst", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise.rst", "_autosummary/poli.tests.util.rst", "_autosummary/poli.tests.util.test_foldx_interface.rst", "_autosummary/poli.tests.util.test_protein_utilities.rst", "_templates/custom-module-template.rst", "api.rst", "bibliography.md", "contributing/a_new_problem.md", "contributing/a_new_solver.md", "getting_started/getting_started.md", "index.md", "understanding_foldx/00-installing-foldx.md", "understanding_foldx/01-single-mutation-using-foldx/index.ipynb", "using_poli/objective_repository/RaSP.md", "using_poli/objective_repository/all_objectives.md", "using_poli/objective_repository/aloha.md", "using_poli/objective_repository/dockstring.md", "using_poli/objective_repository/drd3_docking.md", "using_poli/objective_repository/foldx_rfp_lambo.md", "using_poli/objective_repository/foldx_sasa.md", "using_poli/objective_repository/foldx_stability.md", "using_poli/objective_repository/penalized_logp_lambo.md", "using_poli/objective_repository/rdkit_logp.md", "using_poli/objective_repository/rdkit_qed.md", "using_poli/objective_repository/sa_tdc.md", "using_poli/objective_repository/super_mario_bros.md", "using_poli/objective_repository/tdc_oracles.md", "using_poli/objective_repository/template.md", "using_poli/objective_repository/toy_continuous_problems.md", "using_poli/objective_repository/white_noise.md", "using_poli/observers/registering_an_observer.md", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb", "using_poli/the_basics/defining_a_problem_solver.md", "using_poli/the_basics/defining_an_observer.ipynb", "using_poli/the_basics/diving_deeper.md", "using_poli/the_basics/intro_to_poli.ipynb", "using_poli/the_basics/isolation.ipynb", "using_poli/the_basics/optimizing_an_objective_function.md", "using_poli/the_basics/registering_an_objective_function.md", "using_poli_baselines/bayesian_optimization.md", "using_poli_baselines/cma_es.md", "using_poli_baselines/graph_ga.md", "using_poli_baselines/latent_space_bo.md", "using_poli_baselines/line_bayesian_optimization.md", "using_poli_baselines/nsga_2.md", "using_poli_baselines/random_mutations.md", "using_poli_baselines/template.md"], "titles": ["poli", "poli.core", "poli.core.abstract_black_box", "poli.core.abstract_black_box.AbstractBlackBox", "poli.core.abstract_black_box.NegativeBlackBox", "poli.core.abstract_problem_factory", "poli.core.abstract_problem_factory.AbstractProblemFactory", "poli.core.abstract_problem_factory.MetaProblemFactory", "poli.core.chemistry", "poli.core.chemistry.tdc_black_box", "poli.core.chemistry.tdc_black_box.TDCBlackBox", "poli.core.exceptions", "poli.core.exceptions.BudgetExhaustedException", "poli.core.exceptions.PoliException", "poli.core.multi_objective_black_box", "poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "poli.core.problem_setup_information", "poli.core.problem_setup_information.ProblemSetupInformation", "poli.core.proteins", "poli.core.proteins.foldx_black_box", "poli.core.proteins.foldx_black_box.FoldxBlackBox", "poli.core.registry", "poli.core.registry.delete_observer_run_script", "poli.core.registry.delete_problem", "poli.core.registry.get_problem_factories", "poli.core.registry.get_problems", "poli.core.registry.register_problem", "poli.core.registry.register_problem_from_repository", "poli.core.registry.set_observer", "poli.core.registry.set_observer_run_script", "poli.core.util", "poli.core.util.abstract_observer", "poli.core.util.abstract_observer.AbstractObserver", "poli.core.util.alignment", "poli.core.util.alignment.is_aligned", "poli.core.util.batch", "poli.core.util.batch.batch_input", "poli.core.util.batch.batch_input.batched", "poli.core.util.chemistry", "poli.core.util.chemistry.string_to_molecule", "poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "poli.core.util.external_observer", "poli.core.util.external_observer.ExternalObserver", "poli.core.util.files", "poli.core.util.files.download_files_from_github", "poli.core.util.files.download_files_from_github.download_file_from_github_repository", "poli.core.util.files.download_files_from_github.get_sha_for_tag", "poli.core.util.files.integrity", "poli.core.util.files.integrity.compute_md5_from_filepath", "poli.core.util.inter_process_communication", "poli.core.util.inter_process_communication.process_wrapper", "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "poli.core.util.inter_process_communication.process_wrapper.get_connection", "poli.core.util.objective_management", "poli.core.util.objective_management.make_run_script", "poli.core.util.objective_management.make_run_script.make_observer_script", "poli.core.util.objective_management.make_run_script.make_run_script", "poli.core.util.observer_wrapper", "poli.core.util.observer_wrapper.start_observer_process", "poli.core.util.proteins", "poli.core.util.proteins.defaults", "poli.core.util.proteins.foldx", "poli.core.util.proteins.foldx.FoldxInterface", "poli.core.util.proteins.mutations", "poli.core.util.proteins.mutations.edits_between_strings", "poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "poli.core.util.proteins.pdb_parsing", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "poli.core.util.proteins.rasp", "poli.core.util.proteins.rasp.inner_rasp", "poli.core.util.proteins.rasp.inner_rasp.PrismData", "poli.core.util.proteins.rasp.inner_rasp.cavity_model", "poli.core.util.proteins.rasp.inner_rasp.helpers", "poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "poli.core.util.proteins.rasp.inner_rasp.visualization", "poli.core.util.proteins.rasp.load_models", "poli.core.util.proteins.rasp.rasp_interface", "poli.core.util.seeding", "poli.core.util.seeding.seeding", "poli.core.util.seeding.seeding.seed_numpy", "poli.core.util.seeding.seeding.seed_python", "poli.objective", "poli.objective.dynamically_instantiate", "poli.objective.parse_factory_kwargs", "poli.objective.run", "poli.objective_factory", "poli.objective_factory.ExternalBlackBox", "poli.objective_factory.create", "poli.objective_factory.load_config", "poli.objective_factory.start", "poli.objective_repository", "poli.objective_repository.aloha", "poli.objective_repository.aloha.register", "poli.objective_repository.aloha.register.AlohaBlackBox", "poli.objective_repository.aloha.register.AlohaProblemFactory", "poli.objective_repository.dockstring", "poli.objective_repository.dockstring.register", "poli.objective_repository.dockstring.register.DockstringBlackBox", "poli.objective_repository.dockstring.register.DockstringProblemFactory", "poli.objective_repository.drd3_docking", "poli.objective_repository.drd3_docking.register", "poli.objective_repository.drd3_docking.register.DRD3BlackBox", "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "poli.objective_repository.foldx_rfp_lambo", "poli.objective_repository.foldx_rfp_lambo.register", "poli.objective_repository.foldx_rfp_lambo.register.Config", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "poli.objective_repository.foldx_rfp_lambo.register.get_config", "poli.objective_repository.foldx_sasa", "poli.objective_repository.foldx_sasa.foldx_utils", "poli.objective_repository.foldx_sasa.register", "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "poli.objective_repository.foldx_stability", "poli.objective_repository.foldx_stability.foldx_utils", "poli.objective_repository.foldx_stability.register", "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "poli.objective_repository.foldx_stability_and_sasa", "poli.objective_repository.foldx_stability_and_sasa.register", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "poli.objective_repository.gfp_cbas", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "poli.objective_repository.gfp_cbas.cbas_wrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "poli.objective_repository.gfp_cbas.gfp_gp", "poli.objective_repository.gfp_cbas.make_vae", "poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "poli.objective_repository.gfp_cbas.make_vae.build_vae", "poli.objective_repository.gfp_cbas.make_vae.identity_loss", "poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "poli.objective_repository.gfp_cbas.register", "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "poli.objective_repository.gfp_select", "poli.objective_repository.gfp_select.register", "poli.objective_repository.gfp_select.register.GFPBlackBox", "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "poli.objective_repository.penalized_logp_lambo", "poli.objective_repository.penalized_logp_lambo.register", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "poli.objective_repository.rasp", "poli.objective_repository.rasp.register", "poli.objective_repository.rdkit_logp", "poli.objective_repository.rdkit_logp.register", "poli.objective_repository.rdkit_logp.register.LogPBlackBox", "poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "poli.objective_repository.rdkit_qed", "poli.objective_repository.rdkit_qed.register", "poli.objective_repository.rdkit_qed.register.QEDBlackBox", "poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "poli.objective_repository.rfp_foldx_stability_and_sasa", "poli.objective_repository.rfp_foldx_stability_and_sasa.register", "poli.objective_repository.sa_tdc", "poli.objective_repository.sa_tdc.register", "poli.objective_repository.sa_tdc.register.SABlackBox", "poli.objective_repository.sa_tdc.register.SAProblemFactory", "poli.objective_repository.super_mario_bros", "poli.objective_repository.super_mario_bros.level_utils", "poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "poli.objective_repository.super_mario_bros.level_utils.clean_level", "poli.objective_repository.super_mario_bros.level_utils.level_to_array", "poli.objective_repository.super_mario_bros.level_utils.level_to_list", "poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "poli.objective_repository.super_mario_bros.level_utils.vectorized", "poli.objective_repository.super_mario_bros.model", "poli.objective_repository.super_mario_bros.model.VAEMario", "poli.objective_repository.super_mario_bros.model.load_example_model", "poli.objective_repository.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.definitions", "poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "poli.objective_repository.toy_continuous_problem.definitions.brown", "poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "poli.objective_repository.toy_continuous_problem.definitions.deb_01", "poli.objective_repository.toy_continuous_problem.definitions.deb_02", "poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "poli.objective_repository.toy_continuous_problem.definitions.easom", "poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "poli.objective_repository.toy_continuous_problem.register", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "poli.objective_repository.white_noise", "poli.objective_repository.white_noise.register", "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "poli.registered_objectives", "poli.tests", "poli.tests.docs_examples", "poli.tests.docs_examples.test_objective_functions", "poli.tests.docs_examples.test_objective_functions.test_aloha_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_qed_example", "poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "poli.tests.registry", "poli.tests.registry.basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "poli.tests.registry.basic_objectives.test_budget_exhaustion", "poli.tests.registry.chemistry", "poli.tests.registry.chemistry.test_chemistry_objectives", "poli.tests.registry.proteins", "poli.tests.registry.proteins.test_foldx", "poli.tests.registry.proteins.test_foldx_rfp_lambo", "poli.tests.registry.proteins.test_rasp", "poli.tests.registry.test_basic_loop_without_create", "poli.tests.registry.test_force_isolation", "poli.tests.registry.test_passing_array_of_strings", "poli.tests.registry.toy_continuous_problems", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "poli.tests.test_minimal_working_example", "poli.tests.test_minimal_working_example.test_minimal_working_example", "poli.tests.test_seeding", "poli.tests.test_seeding.test_seeding_in_white_noise", "poli.tests.util", "poli.tests.util.test_foldx_interface", "poli.tests.util.test_protein_utilities", "<no title>", "API documentation for poli", "References", "Adding a new problem to the repository", "Adding a new optimizer to poli-baselines", "Getting started", "poli \ud83e\uddea: a library of discrete objective functions", "Installing foldx", "Computing the energy of a protein and a single mutation", "Rapid Stability Predictions", "All objective functions", "Aloha objective function", "dockstring", "DRD3 docking (using TDC)", "Protein (RFP) stability and SASA (using foldx,lambo)", "Protein solvent accessibility (using foldx)", "Protein stability (using foldx)", "Penalized logP (using lambo)", "Log-solubility (logP)", "Quantitative Estimate of Druglikeness (QED)", "Synthetic Accessibility (using TDC)", "Optimizing jumps in Super Mario Bros", "Therapeutics Data Commons\u2019 oracles", "Objective function name", "Toy continuous objective functions", "White Noise objective function", "Registering and running observers in isolated processes", "Optimizing protein stability using random mutations", "Defining a problem solver in poli_baselines", "Defining an observer", "Diving deeper: how does poli work under the hood?", "What is poli?", "Isolating black box objective functions", "Optimizing an objective function", "Registering an objective function in poli", "Bayesian Optimization", "CMA-ES", "Graph Genetic Algorithms", "Latent Space Bayesian Optimization", "Line Bayesian Optimization", "Discrete NSGA-2", "Random mutations", "Template: optimization algorithm"], "terms": {"librari": [0, 32, 37, 200, 270, 291, 293, 294], "discret": [0, 99, 100, 101, 131, 266, 289, 290, 293, 295, 297], "black": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 274, 280, 281, 289, 290, 291, 293, 295, 297, 302], "box": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 273, 274, 280, 281, 286, 287, 289, 290, 291, 293, 295, 297, 302], "object": [0, 2, 3, 4, 14, 15, 17, 19, 20, 32, 46, 50, 55, 56, 59, 66, 73, 74, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 106, 111, 113, 118, 119, 121, 123, 124, 127, 128, 160, 164, 168, 173, 177, 178, 179, 181, 183, 184, 200, 216, 217, 218, 221, 223, 229, 248, 249, 252, 264, 265, 266, 267, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 302], "function": [0, 2, 3, 4, 9, 14, 15, 21, 22, 23, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 43, 44, 48, 49, 51, 53, 54, 56, 58, 61, 62, 67, 70, 71, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 100, 102, 103, 104, 106, 108, 111, 113, 115, 116, 119, 121, 124, 128, 133, 153, 160, 164, 167, 168, 173, 174, 177, 178, 179, 184, 187, 196, 199, 200, 216, 217, 218, 220, 221, 223, 224, 229, 238, 248, 249, 252, 255, 257, 264, 265, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 301, 302], "modul": [0, 1, 2, 5, 8, 18, 19, 21, 30, 33, 35, 36, 38, 47, 48, 51, 53, 54, 57, 58, 63, 64, 65, 67, 71, 84, 97, 98, 102, 103, 106, 110, 116, 121, 126, 130, 150, 152, 162, 166, 167, 170, 171, 172, 176, 180, 182, 186, 199, 222, 227, 228, 229, 236, 237, 242, 244, 248, 249, 251, 257, 259, 262, 294], "class": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 28, 31, 32, 45, 46, 54, 55, 65, 66, 92, 93, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 113, 114, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 132, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 196, 197, 217, 218, 219, 220, 221, 223, 224, 225, 265, 266, 290, 291, 296], "util": [1, 21, 115, 124, 152, 187, 291, 294, 297], "insid": [1, 11, 27, 89, 97, 106, 173, 178, 265, 267, 268, 270, 271, 274, 275, 286, 289, 293, 294, 296], "thi": [2, 4, 5, 6, 14, 15, 19, 21, 22, 23, 26, 27, 28, 29, 32, 36, 37, 43, 44, 48, 49, 51, 55, 56, 58, 62, 64, 65, 66, 67, 70, 71, 89, 90, 91, 94, 96, 99, 103, 106, 109, 118, 123, 127, 148, 152, 167, 171, 173, 177, 181, 200, 216, 217, 218, 223, 229, 248, 249, 252, 257, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301, 302, 303, 304], "implement": [2, 4, 5, 8, 9, 14, 15, 16, 18, 19, 36, 65, 100, 103, 104, 107, 119, 124, 128, 131, 148, 154, 166, 167, 171, 183, 184, 218, 266, 268, 272, 274, 276, 279, 286, 289, 290, 293, 294, 295, 296, 297, 298, 302], "abstract": [2, 3, 5, 6, 31, 32, 265, 289, 296], "from": [2, 10, 20, 23, 25, 27, 37, 43, 44, 47, 48, 49, 50, 51, 52, 65, 66, 70, 89, 90, 96, 106, 119, 124, 128, 134, 139, 142, 155, 171, 190, 193, 198, 200, 206, 215, 256, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "which": [2, 3, 7, 16, 20, 45, 52, 66, 70, 74, 95, 103, 168, 177, 179, 217, 218, 224, 265, 266, 270, 271, 274, 275, 276, 279, 282, 286, 289, 290, 291, 293, 294, 295, 296, 297], "all": [2, 92, 94, 97, 99, 100, 101, 106, 148, 200, 224, 229, 265, 266, 267, 270, 271, 273, 274, 281, 289, 290, 293, 296], "should": [2, 55, 106, 265, 266, 267, 269, 273, 275, 280, 281, 286, 287, 289, 290, 291, 294, 295, 296], "inherit": [2, 10, 15, 266, 289, 290, 291, 296], "info": [3, 4, 10, 15, 20, 93, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 266, 290, 291, 293, 294, 296, 302], "problemsetupinform": [3, 4, 10, 15, 20, 32, 93, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 276, 291, 296], "batch_siz": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 144, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294, 296, 302], "option": [3, 4, 10, 15, 17, 20, 22, 26, 27, 28, 29, 40, 42, 43, 44, 46, 49, 52, 59, 60, 66, 68, 69, 72, 73, 74, 86, 87, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 197, 218, 221, 224], "int": [3, 4, 10, 15, 17, 20, 32, 37, 56, 62, 68, 69, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 149, 160, 164, 168, 174, 178, 184, 188, 189, 192, 194, 197, 218, 221, 224, 265, 266, 290, 291, 295, 296], "none": [3, 4, 10, 15, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 59, 60, 66, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 143, 145, 147, 160, 161, 164, 168, 174, 178, 184, 197, 218, 221, 224, 265, 266, 273, 274, 280, 281, 285, 286, 287, 291, 295, 296], "parallel": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "bool": [3, 4, 10, 17, 20, 25, 26, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 140, 160, 164, 168, 174, 178, 184, 216, 218, 224, 265, 279, 295], "fals": [3, 4, 10, 17, 20, 25, 26, 27, 41, 42, 43, 44, 49, 66, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 139, 140, 146, 160, 164, 168, 174, 178, 184, 193, 218, 224, 265, 289, 291, 293, 295], "num_work": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "evaluation_budget": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "inf": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "base": [3, 6, 13, 32, 55, 106, 154, 267, 268, 270, 272, 275, 293, 296, 302], "optim": [3, 17, 32, 65, 110, 166, 167, 199, 200, 217, 220, 252, 264, 269, 270, 272, 286, 290, 291, 296, 302, 303], "problem": [3, 4, 5, 6, 10, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 34, 57, 58, 60, 93, 99, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 173, 174, 177, 178, 179, 180, 184, 185, 186, 200, 217, 218, 222, 223, 224, 252, 267, 270, 276, 291, 293, 302], "paramet": [3, 4, 6, 10, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 37, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 67, 68, 69, 70, 72, 73, 74, 86, 87, 89, 90, 91, 93, 94, 96, 100, 101, 104, 105, 108, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224], "The": [3, 4, 10, 15, 17, 19, 20, 22, 23, 26, 27, 28, 29, 37, 46, 49, 50, 52, 55, 56, 59, 60, 62, 65, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 104, 106, 108, 113, 118, 119, 123, 124, 127, 128, 154, 160, 164, 166, 173, 174, 177, 178, 179, 181, 184, 214, 215, 217, 218, 223, 224, 266, 268, 270, 271, 272, 274, 277, 278, 279, 289, 290, 294, 295, 296, 302], "setup": [3, 4, 6, 10, 15, 16, 20, 46, 62, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224, 275, 276, 279, 282, 294], "inform": [3, 4, 6, 10, 15, 16, 20, 32, 46, 62, 93, 94, 96, 100, 101, 103, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 171, 174, 178, 179, 184, 185, 218, 221, 224, 264, 265, 270, 291, 296], "provid": [3, 15, 46, 92, 109, 119, 124, 178, 268, 269, 270, 291, 293], "detail": [3, 9, 67, 90, 91, 270, 289, 293], "about": [3, 10, 27, 90, 91, 93, 94, 96, 265, 268, 269, 272, 289, 293, 296], "batch": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "size": [3, 4, 10, 15, 20, 37, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296, 298, 302], "evalu": [3, 4, 10, 14, 15, 20, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 179, 184, 218, 224, 266, 267, 279, 289, 290, 291, 294, 296], "default": [3, 4, 10, 15, 17, 20, 22, 27, 28, 29, 46, 49, 52, 66, 68, 69, 72, 73, 74, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 265, 266, 276, 277, 278, 286, 296, 297, 301], "flag": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218], "indic": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 134, 135, 160, 164, 174, 178, 184, 218, 266, 290], "whether": [3, 4, 10, 17, 20, 25, 26, 49, 72, 73, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 249, 257, 270, 279, 280, 281, 291, 293, 296], "number": [3, 4, 10, 20, 37, 56, 62, 84, 85, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 266, 272, 286, 290, 293, 295], "worker": [3, 4, 10, 20, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "us": [3, 4, 7, 10, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 51, 55, 56, 60, 64, 65, 66, 88, 89, 94, 96, 99, 100, 104, 106, 107, 108, 113, 119, 123, 124, 126, 128, 138, 139, 140, 160, 164, 166, 167, 168, 171, 172, 173, 174, 176, 177, 178, 180, 183, 184, 217, 218, 223, 248, 252, 264, 265, 266, 269, 270, 271, 272, 274, 280, 281, 286, 288, 290, 291, 294, 295, 296, 297, 298, 301, 302], "half": [3, 4, 94, 113, 160, 164, 218, 224], "avail": [3, 4, 24, 25, 94, 106, 113, 118, 123, 127, 160, 164, 181, 218, 224, 229, 267, 270, 272, 276, 277, 278, 279, 286, 289, 293, 295, 296], "cpu": [3, 4, 94, 113, 160, 164, 218, 224], "maximum": [3, 4, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296], "allow": [3, 4, 7, 19, 20, 94, 113, 118, 119, 123, 124, 127, 128, 160, 164, 173, 177, 181, 217, 218, 265, 266, 269, 270, 286, 290, 293, 295, 296], "float": [3, 4, 20, 113, 119, 124, 128, 160, 164, 174, 177, 178, 184, 212, 218, 224, 265, 268, 295], "type": [3, 10, 15, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 55, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 95, 100, 104, 108, 136, 141, 174, 178, 218, 265, 270, 294, 296], "observ": [3, 21, 22, 28, 29, 30, 31, 32, 45, 46, 57, 58, 59, 61, 62, 89, 94, 96, 139, 268, 289, 294, 295, 296], "record": 3, "dure": [3, 62, 265, 286], "abstractobserv": [3, 28, 59, 94, 96, 291], "observer_info": 3, "given": [3, 15, 22, 43, 44, 56, 59, 60, 66, 69, 74, 103, 104, 105, 124, 136, 137, 138, 198, 266, 267, 271, 274, 290], "after": [3, 28, 32, 106, 265, 266, 270, 275, 276, 279, 282, 289, 290, 293, 296], "initi": [3, 4, 10, 15, 17, 20, 32, 46, 55, 62, 66, 93, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 266, 270, 289, 290, 293, 296, 302], "set_observ": [3, 288], "set": [3, 26, 28, 29, 32, 55, 74, 106, 138, 140, 146, 152, 174, 178, 265, 266, 271, 274, 290, 291, 293], "reset_evaluation_budget": 3, "reset": [3, 96], "budget": [3, 10, 12, 20, 96, 119, 124, 128], "made": 3, "0": [3, 66, 68, 119, 124, 128, 156, 177, 193, 212, 266, 267, 268, 270, 271, 277, 278, 280, 281, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301], "__call__": [3, 4], "x": [3, 4, 15, 32, 46, 94, 96, 100, 104, 106, 124, 140, 145, 146, 174, 178, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 218, 224, 265, 266, 267, 271, 273, 274, 275, 280, 281, 285, 286, 287, 289, 290, 291, 296, 297], "context": [3, 15, 32, 46, 96, 100, 104, 124, 174, 178, 218, 224, 265, 291, 296], "input": [3, 10, 15, 22, 29, 34, 36, 94, 100, 104, 108, 124, 174, 178, 184, 218, 224, 265, 267, 268, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 296, 297, 301, 302], "_black_box": [3, 4, 15, 100, 104, 124, 174, 178, 218, 224, 265, 296], "method": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 70, 74, 93, 94, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 138, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 270, 276, 277, 278, 289, 290, 291, 293, 294, 295, 296], "termin": [3, 62, 274, 277, 278, 279, 280, 281, 291, 296], "__enter__": 3, "enter": 3, "manag": [3, 49, 96], "__exit__": 3, "exc_typ": 3, "exc_val": 3, "exc_tb": 3, "exit": 3, "__del__": 3, "destructor": 3, "__neg__": 3, "creat": [3, 6, 20, 26, 27, 28, 49, 55, 57, 58, 59, 60, 92, 96, 101, 105, 109, 120, 129, 173, 177, 179, 185, 186, 248, 265, 266, 267, 268, 269, 270, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 287, 289, 291, 294, 295, 297, 298, 301, 302, 303, 304], "new": [3, 108, 173, 177, 268, 270, 290, 296], "neg": [3, 158, 274, 278], "origin": [3, 4, 66, 67, 70, 131, 215, 268, 270], "one": [3, 143, 178, 192, 264, 265, 266, 268, 270, 271, 272, 276, 289, 290, 293, 301], "__init__": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 93, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 290, 291, 296], "execut": [3, 4, 51, 55, 59, 88, 106, 108, 113, 160, 164, 184, 218, 269, 275], "we": [3, 4, 9, 14, 20, 27, 64, 70, 94, 106, 113, 118, 119, 123, 124, 127, 128, 139, 160, 164, 166, 167, 173, 174, 177, 178, 181, 200, 214, 216, 217, 218, 252, 265, 266, 267, 268, 270, 271, 274, 275, 279, 286, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302], "f": [4, 19, 64, 65, 94, 96, 118, 123, 127, 181, 265, 266, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 302, 303, 304], "abstractblackbox": [4, 10, 15, 94, 96, 113, 160, 164, 218, 265, 266, 289, 290, 291, 296], "A": [4, 17, 20, 24, 25, 26, 28, 37, 40, 41, 42, 43, 44, 60, 64, 66, 68, 69, 70, 72, 73, 90, 96, 99, 100, 101, 106, 110, 116, 118, 119, 123, 124, 126, 127, 128, 168, 174, 178, 180, 181, 182, 186, 196, 197, 199, 218, 220, 222, 224, 264, 267, 268, 270, 271, 272, 273, 277, 278, 291, 296], "wrapper": [4, 9, 93, 106, 110, 131, 148, 173, 177, 182, 268, 272, 302], "negat": 4, "If": [4, 15, 22, 25, 27, 28, 29, 32, 37, 40, 41, 42, 43, 44, 46, 49, 50, 56, 62, 65, 66, 68, 69, 70, 74, 86, 87, 94, 96, 173, 177, 216, 218, 265, 266, 267, 268, 269, 270, 274, 275, 276, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "you": [4, 66, 74, 106, 173, 174, 177, 178, 200, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 295, 296], "construct": [4, 155], "maxim": [4, 200, 215, 216, 266, 286], "minim": [4, 200, 256, 266, 272, 274, 290, 302], "latter": [4, 270], "onli": [4, 9, 25, 96, 131, 139, 148, 209, 213, 214, 265, 266, 267, 270, 271, 274, 275, 276, 278, 279, 282, 286, 289, 290, 295, 296], "differ": [4, 19, 68, 118, 123, 127, 181, 229, 265, 266, 267, 270, 271, 290, 291, 296], "return": [4, 6, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 52, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 94, 95, 96, 101, 105, 120, 124, 129, 136, 137, 138, 141, 143, 156, 157, 168, 173, 174, 177, 178, 179, 185, 191, 194, 222, 223, 224, 265, 266, 273, 274, 276, 277, 278, 280, 281, 287, 289, 290, 294, 296], "instead": [4, 173, 200, 266, 277, 278, 290, 294], "same": [4, 69, 70, 166, 167, 168, 265, 267, 271, 293], "factori": [5, 6, 19, 24, 26, 27, 55, 60, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 105, 109, 111, 118, 119, 120, 121, 123, 124, 127, 129, 173, 177, 179, 181, 185, 217, 223, 265, 268, 289], "defin": [6, 28, 67, 180, 200, 252, 265, 266, 286, 293, 295], "interfac": [6, 65, 92, 268, 294], "instanc": [6, 10, 15, 101, 105, 108, 120, 129, 179, 185, 218, 267, 289, 296, 302], "get_setup_inform": [6, 101, 105, 109, 120, 129, 179, 185, 265, 296], "specifi": [6, 49, 50, 94, 101, 105, 120, 129, 137, 142, 150, 154, 179, 185, 217, 265, 270, 280, 281, 295, 296, 302], "metaclass": 7, "abstractproblemfactori": [7, 24, 26, 60, 265, 294, 296], "overrid": 7, "__repr__": 7, "__str__": 7, "arg": [7, 150, 151, 154, 155, 197, 265, 270, 294], "kwarg": [7, 26, 60, 89, 90, 91, 150, 151, 154, 155, 197, 265, 296], "contain": [8, 10, 16, 18, 21, 37, 51, 58, 60, 64, 67, 68, 69, 71, 89, 90, 91, 95, 134, 135, 152, 221, 229, 265, 267, 270, 277, 278, 296], "relat": [8, 18, 38, 63, 269], "around": [9, 106, 110, 173, 177, 182, 268, 272, 302], "therapeut": [9, 10, 107, 183, 264, 268, 272, 275, 282, 296], "data": [9, 10, 35, 49, 100, 104, 106, 139, 140, 146, 147, 152, 264, 268, 270, 272, 275, 276, 282, 296], "common": [9, 10, 92, 264, 268, 270, 272, 275, 282, 296, 302], "tdc": [9, 10, 106, 107, 182, 183, 184, 268, 272], "oracl": [9, 10, 107, 108, 182, 183, 184, 268, 272, 275, 282], "1": [9, 19, 27, 37, 65, 68, 70, 96, 103, 104, 105, 107, 110, 118, 123, 127, 134, 135, 139, 146, 156, 166, 167, 168, 171, 177, 181, 183, 184, 188, 200, 206, 215, 217, 221, 264, 266, 267, 268, 270, 271, 273, 275, 279, 280, 281, 285, 286, 287, 290, 291, 293, 294, 296, 297, 298, 301, 302], "so": [9, 26, 70, 174, 178, 266, 270, 276, 279, 290, 294, 296], "far": [9, 266, 290], "support": [9, 248, 265, 267, 268, 290, 294], "two": [9, 56, 68, 267, 270, 277, 278, 280, 281, 286, 291, 294, 295, 296, 302], "drd3": [9, 106, 108, 109, 268, 272, 274], "synthet": [9, 182, 183, 184, 185, 268, 272], "access": [9, 49, 66, 106, 116, 119, 120, 126, 128, 129, 180, 183, 184, 185, 264, 265, 268, 270, 272, 275, 286], "see": [9, 43, 44, 67, 90, 91, 99, 106, 173, 177, 200, 217, 220, 223, 265, 267, 270, 271, 274, 276, 289, 293, 294, 296], "document": [9, 168, 267, 268, 270, 289, 294], "our": [9, 265, 266, 270, 272, 274, 277, 278, 289, 290, 291, 295, 296, 297, 298, 302], "more": [9, 67, 119, 124, 128, 220, 221, 265, 267, 270, 271, 289, 293], "refer": [9, 19, 65, 103, 104, 105, 106, 107, 110, 166, 167, 183, 268, 276, 279], "artifici": [9, 107, 183, 200], "intellig": [9, 107, 183], "foundat": [9, 107, 183], "scienc": [9, 107, 183, 264], "huang": [9, 107, 183, 264, 268, 275, 282], "kexin": [9, 264], "tianfan": [9, 264], "fu": [9, 107, 183, 264], "wenhao": [9, 264], "gao": [9, 107, 183, 264, 272], "yue": [9, 264], "zhao": [9, 264], "yusuf": [9, 264], "roohani": [9, 264], "jure": [9, 264], "leskovec": [9, 264], "connor": [9, 264], "w": [9, 64, 107, 183, 192, 197, 264, 268, 270, 275, 291], "colei": [9, 264, 268], "cao": [9, 264], "xiao": [9, 264], "jimeng": [9, 264], "sun": [9, 264], "marinka": [9, 264], "zitnik": [9, 264], "natur": 9, "chemic": [9, 103, 104, 105, 264], "biologi": [9, 106, 118, 123, 127, 181, 264, 275], "18": [9, 107, 183, 264], "10": [9, 37, 103, 104, 105, 107, 171, 183, 264, 297, 298, 301, 302], "octob": 9, "2022": [9, 65, 103, 104, 105, 107, 110, 166, 167, 183, 264, 268, 269, 270, 272, 274, 279, 289], "1033": [9, 107, 183], "36": 9, "http": [9, 37, 48, 49, 65, 67, 103, 104, 105, 106, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 265, 267, 268, 269, 270, 276, 279, 289, 293, 296], "doi": [9, 103, 104, 105, 107, 171, 183, 264], "org": [9, 37, 65, 103, 104, 105, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 270], "1038": [9, 107, 183], "s41589": [9, 107, 183], "022": [9, 107, 183], "01131": [9, 107, 183], "2": [9, 27, 37, 65, 68, 107, 118, 123, 127, 134, 135, 181, 183, 197, 200, 216, 218, 221, 264, 267, 270, 282, 285, 286, 287, 293, 294, 297, 301], "oracle_nam": [10, 108], "str": [10, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 94, 96, 104, 108, 119, 124, 128, 161, 178, 190, 191, 197, 218, 265, 270, 277, 278, 279, 291, 296], "from_smil": [10, 108, 168, 174, 178, 184], "true": [10, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 74, 94, 96, 108, 140, 155, 160, 168, 174, 178, 184, 216, 270, 275, 277, 278, 279, 280, 281, 282, 289, 291, 293, 295, 296], "kwargs_for_oracl": [10, 108], "repres": [10, 20, 56, 68, 73, 108, 154, 293], "It": [10, 26, 55, 56, 89, 106, 265, 267, 270, 274, 275, 289, 290, 293], "name": [10, 17, 22, 23, 26, 27, 28, 29, 46, 49, 50, 60, 62, 72, 73, 74, 89, 91, 94, 96, 104, 108, 218, 221, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "comput": [10, 19, 52, 66, 68, 70, 100, 104, 106, 108, 118, 119, 123, 124, 126, 127, 128, 166, 167, 172, 174, 178, 180, 181, 200, 264, 267, 268, 269, 271, 272, 275, 277, 278, 279, 282, 294], "dock": [10, 103, 104, 105, 106, 107, 108, 109, 264, 268, 272, 274, 294], "score": [10, 103, 104, 105, 119, 124, 128, 268, 271, 272, 274, 275, 277, 278, 279, 294], "an": [10, 19, 22, 28, 29, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 49, 56, 61, 62, 65, 70, 89, 91, 93, 94, 96, 118, 123, 127, 134, 135, 173, 178, 181, 192, 249, 265, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 289, 294, 297, 298, 302], "process": [10, 26, 28, 32, 45, 46, 55, 56, 61, 62, 89, 91, 93, 94, 96, 100, 104, 119, 123, 124, 128, 152, 173, 174, 178, 249, 264, 265, 270, 275, 276, 277, 278, 279, 280, 281, 282, 286, 289, 293, 294, 295, 296, 297], "multipl": [10, 100, 104, 174, 178], "infin": [10, 94, 100, 104, 108, 119, 124, 128, 174, 178, 184], "molecul": [10, 39, 40, 41, 42, 103, 104, 105, 168, 174, 178, 179, 264, 267, 270, 274, 275, 282, 293], "ar": [10, 24, 27, 32, 65, 68, 70, 95, 106, 140, 168, 173, 174, 177, 178, 179, 217, 229, 252, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 297], "smile": [10, 41, 42, 43, 44, 104, 108, 173, 174, 177, 178, 184, 268, 274, 279, 280, 281], "format": [10, 55, 67, 70, 136], "represent": [10, 39, 42, 104, 108, 171, 264, 294], "dict": [10, 24, 26, 55, 89, 90, 94, 96, 100, 104, 108, 265, 296], "addit": [10, 26, 46, 55, 59, 94, 96, 108, 271], "keyword": [10, 26, 46, 55, 89, 94, 96, 108, 265, 277, 278, 289, 295], "argument": [10, 22, 26, 28, 29, 46, 55, 89, 94, 96, 108, 277, 278, 289, 295], "custom": [11, 295], "packag": [11, 13, 43, 44, 48, 275, 289, 293, 294, 296], "rais": [12, 15, 40, 41, 43, 44, 49, 50, 56, 65, 68, 69, 266, 269, 290, 294, 295], "when": [12, 55, 94, 96, 265, 271, 274, 291, 293, 295], "exhaust": 12, "multi_object": 14, "version": [14, 46, 66, 93, 106, 166, 177, 179, 266, 267, 268, 269, 270, 271, 275, 286, 290, 291, 301, 302], "mean": [14, 70, 138, 168, 279, 286, 294, 298], "simpli": [14, 266, 267, 274, 275, 276, 279, 282, 290, 291, 293], "concaten": [14, 15, 174, 178], "result": [14, 15, 66, 174, 178, 270, 291, 294], "individu": [14, 15, 67, 191, 270, 289, 291, 294], "objective_funct": [15, 302], "list": [15, 17, 20, 25, 26, 28, 40, 41, 42, 43, 44, 59, 60, 66, 67, 68, 69, 70, 72, 73, 119, 124, 128, 134, 148, 155, 178, 189, 191, 194, 265, 268, 270, 271, 274, 277, 278, 289, 291, 293, 296], "multi": [15, 264, 302], "requir": [15, 20, 48, 49, 106, 173, 177, 265, 266, 268, 270, 271, 274, 289, 290, 291, 293, 294, 295], "valueerror": [15, 50, 69, 294], "e": [16, 49, 64, 70, 96, 100, 106, 134, 135, 139, 171, 174, 178, 179, 216, 224, 264, 266, 267, 268, 270, 271, 272, 274, 276, 277, 278, 279, 287, 290, 291, 294, 295, 296], "g": [16, 64, 70, 134, 135, 179, 266, 267, 268, 270, 272, 277, 278, 287, 290, 291, 295, 296], "alphabet": [16, 17, 20, 100, 104, 119, 124, 128, 178, 218, 265, 266, 276, 277, 278, 281, 289, 290, 291, 293, 296, 302, 303, 304], "sequenc": [16, 17, 65, 99, 100, 101, 110, 134, 135, 136, 137, 141, 142, 143, 166, 167, 264, 266, 268, 270, 273, 287, 289, 290, 293, 296], "length": [16, 17, 37, 68, 69, 145, 270, 296], "max_sequence_length": [17, 265, 289, 291, 296], "align": [17, 265, 291, 296], "log_transform_recommend": [17, 291], "s": [17, 20, 43, 44, 64, 65, 96, 106, 119, 124, 128, 131, 171, 173, 174, 177, 178, 179, 200, 214, 229, 264, 265, 267, 268, 272, 275, 276, 277, 278, 279, 282, 286, 289, 290, 291, 293, 294, 295, 297, 301, 302], "longest": 17, "have": [17, 27, 37, 106, 119, 124, 128, 200, 248, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 290, 293, 295, 296], "been": [17, 200, 269], "charact": 17, "mai": [17, 27, 171, 264], "appear": [17, 265, 267, 270], "recommend": [17, 106, 267, 268, 271, 274, 275, 276, 298], "algorithm": [17, 32, 217, 252, 264, 266, 270, 286, 290, 291, 293, 295, 296, 297, 302], "log": [17, 46, 158, 166, 172, 173, 174, 268, 272, 296], "transform": [17, 39, 187, 192, 193], "target": [17, 100, 104, 294], "foldx": [19, 20, 67, 70, 118, 119, 120, 121, 123, 124, 126, 127, 128, 129, 171, 180, 181, 267, 268, 270, 272, 289, 294, 296], "simul": [19, 20, 65, 66, 118, 119, 123, 124, 127, 128, 181, 194, 200, 265, 267], "free": [19, 118, 123, 127, 181, 265, 266, 269, 270, 293], "energi": [19, 66, 118, 123, 127, 181, 269, 278], "between": [19, 68, 70, 100, 118, 123, 127, 177, 181, 280], "wildtyp": [19, 20, 69, 70, 118, 119, 123, 124, 127, 128, 171, 181, 268, 271, 272, 277, 278], "mutat": [19, 20, 66, 118, 123, 127, 136, 181, 264, 266, 268, 271, 272, 277, 290, 293, 295, 302], "web": [19, 65, 118, 123, 127, 181], "server": [19, 55, 56, 65, 118, 123, 127, 181], "onlin": [19, 65, 118, 123, 127, 181], "forc": [19, 26, 65, 118, 123, 127, 181, 249], "field": [19, 65, 118, 123, 127, 181], "nucleic": [19, 65, 118, 123, 127, 181], "acid": [19, 20, 64, 65, 118, 119, 123, 124, 127, 128, 134, 135, 137, 142, 143, 181], "research": [19, 65, 118, 123, 127, 181, 264], "schymkowitz": [19, 65, 118, 123, 127, 181, 268, 270], "j": [19, 65, 103, 104, 105, 118, 123, 127, 181, 264, 291], "borg": [19, 65, 118, 123, 127, 181, 270], "stricher": [19, 65, 118, 123, 127, 181, 270], "ny": [19, 65, 118, 123, 127, 181], "r": [19, 64, 65, 70, 118, 123, 127, 181, 200, 264, 271, 275, 291], "rousseau": [19, 65, 118, 123, 127, 181, 270], "serrano": [19, 65, 118, 123, 127, 181, 270], "l": [19, 64, 65, 96, 99, 100, 101, 118, 123, 127, 144, 149, 150, 151, 171, 181, 264, 265, 266, 267, 273, 285, 287, 290, 291, 293, 294, 296], "2005": [19, 65, 118, 123, 127, 181, 268], "33": [19, 65, 118, 123, 127, 156, 181, 270], "suppl_2": [19, 65, 118, 123, 127, 181], "w382": [19, 65, 118, 123, 127, 181], "w388": [19, 65, 118, 123, 127, 181], "wildtype_pdb_path": [20, 119, 124, 128, 271, 289], "union": [20, 26, 59, 60, 66, 69, 119, 124, 128], "path": [20, 26, 28, 49, 52, 59, 60, 66, 69, 72, 73, 74, 106, 119, 124, 128, 147, 198, 265, 270, 271, 276, 277, 278, 279, 282, 289, 291, 294], "experiment_id": [20, 119, 124, 128, 291], "tmp_folder": [20, 119, 124, 128], "eager_repair": [20, 119, 124, 128, 277, 278], "verbos": [20, 49, 66, 72, 73, 74, 119, 124, 128, 266, 295], "pdb": [20, 66, 69, 70, 71, 72, 73, 74, 119, 123, 124, 128, 171, 267, 271, 275, 277, 278, 289, 294], "file": [20, 27, 65, 66, 67, 69, 70, 71, 72, 73, 74, 95, 99, 106, 119, 123, 124, 128, 171, 173, 177, 217, 223, 264, 265, 267, 269, 271, 274, 276, 279, 282, 289, 291, 294, 296], "amino": [20, 64, 119, 124, 128, 134, 135, 137, 142, 143], "experi": [20, 119, 124, 128, 139, 200, 291], "id": [20, 67, 119, 124, 128, 189, 248, 264, 265, 270, 291, 296], "temporari": [20, 119, 124, 128], "folder": [20, 27, 49, 99, 106, 119, 124, 128, 173, 177, 217, 223, 265, 267, 269, 282, 291, 296], "eagerli": [20, 119, 124, 128], "repair": [20, 65, 66, 119, 124, 128, 289], "print": [20, 37, 49, 66, 72, 73, 74, 96, 119, 124, 128, 265, 266, 267, 270, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 302, 303, 304], "output": [20, 66, 72, 73, 74, 119, 124, 128, 194, 268, 270, 279, 289, 293, 294], "wildtype_residu": [20, 70], "residu": [20, 67, 69, 70, 72, 73, 270], "each": [20, 32, 37, 68, 70, 137, 142, 268, 270, 291, 294, 295, 298], "wildtype_amino_acid": 20, "wildtype_residue_str": [20, 70], "string": [20, 39, 40, 41, 42, 43, 44, 55, 60, 68, 69, 70, 72, 89, 90, 91, 104, 108, 135, 136, 145, 173, 174, 177, 178, 184, 190, 191, 266, 268, 270, 271, 273, 277, 278, 280, 281, 287, 290, 294, 295, 296, 303, 304], "create_working_directori": 20, "work": [20, 37, 59, 60, 66, 96, 106, 209, 213, 256, 257, 266, 267, 269, 270, 272, 274, 275, 280, 281, 282, 289, 290, 291, 293, 295, 297], "directori": [20, 59, 60, 66, 269, 270, 271, 275, 276, 277, 278, 282, 291], "regist": [21, 25, 26, 27, 28, 29, 94, 95, 96, 106, 267, 271, 274, 277, 278, 280, 281, 293, 294], "observer_nam": [22, 28, 29, 46, 62, 288], "delet": [22, 23, 291], "run": [22, 26, 27, 28, 29, 45, 55, 57, 58, 59, 60, 66, 94, 96, 106, 124, 173, 177, 229, 265, 266, 267, 268, 269, 270, 290, 291, 293, 295, 296], "script": [22, 26, 28, 29, 55, 57, 58, 59, 60, 61, 65, 88, 99, 106, 123, 173, 177, 200, 217, 223, 265, 271, 275, 291, 295, 296], "take": [22, 23, 26, 27, 28, 29, 55, 191, 194, 264, 265, 266, 273, 286, 287, 289, 290, 293, 296, 297], "pass": [22, 26, 28, 29, 46, 55, 70, 74, 89, 90, 94, 265, 270, 276, 277, 278, 289, 296], "locat": [22, 28, 29, 65, 214, 221, 270, 303, 304], "note": [22, 25, 28, 29, 49, 55, 56, 62, 66, 119, 124, 128], "must": [22, 28, 29, 267, 273, 285, 286, 287], "accept": [22, 28, 29, 55], "port": [22, 28, 29, 55, 56, 62, 91, 294], "password": [22, 28, 29, 55, 56, 62, 91, 294], "problem_nam": [23, 265, 285, 289], "configur": [23, 26, 29, 95], "dictionari": [24, 55, 90, 289], "problem_factori": [24, 26, 60, 274, 298, 302, 303, 304], "only_avail": [25, 289, 293], "includ": [25, 106, 265, 267, 268, 271, 274, 275, 286, 289, 291, 294, 295, 296, 297], "can": [25, 26, 27, 28, 37, 45, 55, 62, 74, 106, 155, 171, 174, 178, 196, 265, 266, 267, 269, 270, 271, 274, 275, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 294, 295, 296, 301], "import": [25, 27, 50, 65, 96, 167, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "directli": [25, 173, 206, 270, 271, 274, 294], "problem_list": 25, "repositori": [25, 27, 47, 48, 49, 50, 92, 103, 131, 200, 206, 229, 264, 266, 267, 268, 271, 274, 276, 279, 289, 291, 293, 294], "otherwis": [25, 42, 69, 270, 277, 278], "user": [25, 28, 49, 55, 119, 124, 128, 154, 252, 266, 270, 289, 290, 291, 293, 294, 296], "readili": 25, "conda_environment_nam": [26, 60, 265, 296], "python_path": [26, 28, 59, 60, 296], "conda": [26, 28, 59, 60, 99, 106, 173, 177, 217, 223, 266, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 290, 294], "environ": [26, 27, 28, 49, 59, 60, 99, 173, 177, 217, 223, 264, 266, 267, 268, 270, 271, 274, 277, 278, 280, 281, 282, 285, 290, 294, 295], "python": [26, 28, 37, 59, 60, 64, 87, 96, 106, 118, 123, 127, 181, 264, 265, 267, 268, 275, 277, 278, 294], "With": [26, 28, 295, 296], "instanti": [26, 28, 29, 46, 62, 89, 91, 93, 94, 96, 266, 290, 291, 294, 295, 296], "separ": [26, 28], "also": [26, 89, 106, 123, 265, 267, 268, 271, 276, 277, 278, 279, 286, 289, 291, 293, 295, 296, 301], "later": 26, "append": [26, 28, 60, 290, 291], "overwrit": [26, 49, 66, 94, 96, 291, 296], "exist": [26, 49, 50, 265, 270, 289], "quiet": [27, 94, 270, 294], "correspond": [27, 100, 104, 135, 224, 270], "objective_repositori": [27, 265, 271, 274, 275, 276, 279, 294, 296, 298, 302, 303, 304], "yaml": 27, "said": [27, 265, 266, 276, 290, 296], "enviro": [27, 265, 266, 290, 296], "sinc": [27, 70, 106, 252, 265, 266, 269, 270, 274, 275, 276, 279, 286, 289, 290, 293, 295, 296, 297], "t": [27, 64, 107, 118, 123, 127, 181, 183, 264, 265, 268, 269, 270, 274, 275, 276, 279, 291, 294, 295, 296], "depend": [27, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293], "instal": [27, 48, 119, 124, 128, 173, 177, 268, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294, 295, 296], "squelch": [27, 94], "feedback": [27, 94, 270], "creation": [27, 32, 94, 265, 286, 302], "registr": [27, 94, 96, 99, 173, 177, 217, 223, 265, 295, 296], "conda_environment_loc": 28, "extern": [28, 45, 46, 61, 89, 93, 293], "externalobserv": [28, 288], "relev": [28, 270, 271, 274, 275, 276, 277, 278, 280, 281, 282, 286, 296], "script_file_nam": 29, "run_script": [29, 55, 59, 60], "call": [29, 32, 49, 55, 61, 62, 94, 99, 119, 124, 128, 173, 177, 217, 223, 265, 266, 267, 268, 269, 270, 271, 274, 276, 277, 278, 280, 281, 289, 291, 293, 294], "monitor": 32, "progress": [32, 49, 74, 290], "valu": [32, 64, 86, 87, 94, 96, 139, 140, 146, 216, 270, 276, 279, 286, 289], "decis": 32, "variabl": [32, 49, 174, 178, 270, 276, 286], "iter": [32, 37, 266, 290, 293, 295, 298], "np": [32, 94, 96, 200, 218, 265, 266, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 296, 297, 298, 301, 302, 303, 304], "ndarrai": [32, 94, 144, 188, 189, 190, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 265, 266, 289, 290, 291, 296], "y": [32, 46, 64, 94, 96, 140, 146, 266, 271, 274, 281, 289, 290, 291], "everi": [32, 291], "time": [32, 56, 265, 270, 271, 291, 302], "initialize_observ": [32, 46, 291], "problem_setup_info": [32, 291], "caller_info": [32, 46, 96, 291, 295, 296], "x0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "y0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "seed": [32, 46, 94, 96, 160, 164, 193, 257, 265, 291, 294, 296], "necessari": [32, 66, 265, 276, 277, 278, 296], "finish": [32, 46, 270, 291], "perform": [32, 86, 87, 100, 119, 128, 174, 178, 266, 268, 270, 289, 290, 295, 297, 298], "ani": [32, 55, 94, 96, 150, 151, 197, 265, 270, 287, 289, 291, 293, 295, 296], "cleanup": 32, "final": [32, 291], "step": [32, 266, 276, 289, 295, 296], "complet": [32, 270, 296], "model": [34, 65, 103, 104, 105, 139, 140, 152, 154, 156, 264, 265, 270, 271, 297], "check": [34, 51, 65, 68, 221, 265, 266, 270, 271, 277, 278, 279, 286, 290, 291, 293, 294, 295, 296], "inde": [34, 249, 270, 277, 278, 295, 296], "gener": [36, 37, 55, 59, 60, 84, 85, 86, 87, 94, 96, 224, 270, 289, 297], "chunk_siz": 37, "element": [37, 289], "3": [37, 134, 135, 265, 267, 268, 270, 273, 285, 287, 289, 291, 293, 294, 296, 297, 298], "12": [37, 65, 110, 166, 167, 171, 264], "replac": [37, 68, 70, 171, 189, 271, 289, 303, 304], "built": [37, 90, 91, 138, 267], "itertool": 37, "doc": [37, 49, 270, 294], "html": [37, 200, 264, 289, 293], "yield": [37, 103, 104, 105, 264], "tupl": [37, 68, 69, 94, 218, 265, 296], "equal": [37, 68, 295], "exampl": [37, 50, 52, 68, 70, 96, 99, 220, 256, 257, 265, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 293, 294, 295, 302], "4": [37, 145, 156, 264, 269, 275, 293, 294], "5": [37, 66, 99, 100, 101, 177, 179, 212, 267, 268, 270, 272, 273, 289, 291, 293, 294, 295, 296, 302], "6": [37, 264, 270, 293, 294], "7": [37, 66, 270, 277, 278, 293], "8": [37, 103, 104, 105, 264, 270, 293], "9": [37, 264, 265, 267, 268, 270, 274, 289, 293, 294, 296], "rdkit": [39, 40, 41, 42, 50, 172, 173, 174, 176, 177, 178, 268, 272, 274, 280, 281, 282, 296], "selfies_str": [40, 43], "chem": [40, 41, 42, 107, 174, 177, 178, 183], "mol": [40, 41, 42], "convert": [40, 41, 42, 55, 134, 135, 140, 145], "selfi": [40, 42, 43, 44, 104, 173, 174, 177, 178, 268, 274, 279, 280, 281], "strict": [40, 41, 43, 44, 49, 68], "error": [40, 41, 43, 44, 49, 65, 265, 289, 294], "fail": [40, 174, 178, 295], "decod": [40, 150, 154, 155, 194, 197], "smiles_str": [41, 43, 44], "cannot": [41, 43, 44, 174, 178], "pars": [41, 43, 44, 71, 72, 73, 74, 90, 174, 178, 190], "molecule_str": 42, "from_selfi": [42, 174, 178], "assum": [42, 70, 174, 178, 252, 265, 266, 270, 271, 274, 277, 278, 279, 280, 281, 285, 289, 290, 293], "translat": [43, 44], "els": [43, 44, 265, 294, 296], "those": [43, 44], "aspuru": [43, 44, 264], "guzik": [43, 44, 264], "lab": [43, 44], "group": [43, 44], "isol": [45, 46, 88, 89, 93, 94, 96, 173, 249, 265, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 296], "kwargs_for_observ": 46, "send": [46, 62], "verifi": [46, 51, 291, 294], "wa": [46, 48, 70, 167, 266, 270, 275, 279, 289, 290], "correctli": [46, 269], "setup_info": 46, "start": [46, 55, 61, 62, 91, 171, 270, 271, 289, 291, 293, 294, 295, 296], "close": [46, 96, 280, 281], "__getattr__": 46, "__name": 46, "retriev": [46, 62, 109], "attribut": [46, 62, 150, 151, 197, 270, 289], "underli": 46, "download": [47, 48, 49, 51, 106, 265, 269, 271, 276, 282, 289], "github": [47, 48, 49, 50, 106, 265, 267, 268, 270, 271, 276, 279, 296], "pygithub": [48, 50, 276], "pip": [48, 106, 173, 177, 265, 267, 268, 270, 276, 277, 278, 279, 280, 281, 294, 296], "most": [48, 137, 272, 294], "code": [48, 51, 152, 171, 265, 270, 275, 276, 279, 282, 293, 296], "taken": [48, 206, 271, 294], "adapt": [48, 264, 270, 298], "gist": 48, "com": [48, 49, 106, 265, 267, 268, 269, 270, 276, 279, 294, 296], "pdashford": 48, "2e4bcd4fc2343e2fd03efe4da17f577d": 48, "permalink_comment_id": 48, "4274705": 48, "gistcom": 48, "repository_nam": 49, "file_path_in_repositori": 49, "download_path_for_fil": 49, "tag": [49, 50], "master": [49, 267, 296], "commit_sha": [49, 50], "exist_ok": [49, 270, 291], "parent_folders_exist_ok": 49, "i": [49, 64, 100, 118, 123, 127, 139, 174, 178, 181, 216, 224, 264, 266, 268, 270, 271, 274, 278, 290, 291, 296], "repo": [49, 106, 267, 275], "download_path": 49, "branch": [49, 50, 267], "sha": [49, 50], "commit": [49, 50, 271], "exists_ok": 49, "parent": [49, 265, 270, 271, 291, 302], "thei": [49, 65, 167, 168, 270, 279, 289, 291], "do": [49, 106, 167, 266, 270, 276, 279, 290, 294, 296], "except": [49, 56, 62, 265, 294], "github_token_for_poli": [49, 276], "doe": [49, 167], "try": [49, 265, 277, 278], "without": [49, 94, 96, 173, 177, 248, 265, 266, 290, 293, 295, 296], "rate": 49, "limit": [49, 221, 271, 276], "60": 49, "request": [49, 91, 270], "per": 49, "hour": 49, "anonym": [49, 276], "To": [49, 267, 268, 269, 270, 271, 274, 279, 296], "token": [49, 145, 174, 178, 189, 191, 276, 293, 296, 303, 304], "like": [49, 96, 106, 209, 265, 266, 269, 275, 286, 289, 290, 291, 293, 294, 295, 296, 297], "follow": [49, 64, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 290, 293, 295, 296, 301], "instruct": [49, 229, 265, 266, 293], "here": [49, 265, 268, 270, 276, 289, 296, 302], "en": [49, 220, 289, 293], "authent": [49, 55, 56], "keep": [49, 70, 265, 277, 278], "your": [49, 106, 266, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 294], "account": 49, "secur": [49, 294], "person": [49, 276], "fine": [49, 267], "grain": 49, "get_repo": 50, "release_2023_09": 50, "068441957858f786c227825d90eb2c43f4f2b000": 50, "internet": 51, "reproduc": 51, "purpos": 51, "make": [51, 267, 269, 270, 271, 274, 276, 289, 295, 296, 302], "sure": [51, 267, 269, 270, 271, 274, 276, 291, 295, 296], "malici": 51, "being": [51, 269, 271, 276], "filepath": 52, "read_mod": 52, "rb": 52, "md5": [52, 271], "hex": 52, "digest": 52, "open": [52, 171, 270, 291], "binari": [52, 66, 106, 119, 124, 128, 270, 276, 277, 278], "form": [52, 270], "mode": [52, 67], "read": [52, 66, 147, 270, 291, 295], "hex_digest": 52, "txt": [52, 66, 70, 269, 270, 276, 277, 278, 291], "d41d8cd98f00b204e9800998ecf8427": 52, "wrap": [53, 54, 296], "interprocess": [53, 54], "commun": [53, 54, 55, 93], "kwargs_for_factori": [55, 94, 96, 294], "connect": [55, 56, 62, 91, 154], "inter": 55, "These": [55, 268, 270, 271, 272, 276, 286, 289, 291, 293], "inner": 55, "up": [55, 56, 266, 274, 275, 289, 290, 291, 296], "listen": [55, 91, 294], "random": [55, 84, 85, 86, 87, 94, 96, 266, 268, 290, 293, 295, 297, 298, 301, 302, 304], "subprocess": [55, 270], "expect": [55, 65, 66, 67, 70, 106, 119, 124, 128, 174, 270, 276, 277, 278, 279, 291, 294, 296], "well": [55, 267, 270, 274, 294, 295, 297], "other": [55, 174, 178, 265, 269, 289, 291, 294, 295, 296], "objective_factori": [55, 248, 265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "determin": 55, "client": 56, "get": [56, 61, 74, 265, 266, 270, 271, 272, 290, 291, 293, 295, 296], "eoferror": 56, "host": 56, "readi": [56, 140], "yet": [56, 265, 290], "connectionrefusederror": 56, "refus": 56, "attempt": 56, "establish": [56, 62], "retri": 56, "befor": [56, 59, 289, 295, 296], "conda_environ": 59, "cwd": [59, 60, 270], "activ": [59, 265, 267, 268, 271, 274, 276, 279, 291], "ad": [59, 106, 248, 275, 291, 296], "current": [59, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294], "either": [60, 104, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 301], "mother": [61, 62, 91], "receiv": [62, 294], "wait": [62, 91, 296], "occur": 62, "sent": [62, 194], "back": [62, 187], "quit": [62, 265, 271, 293], "messag": [62, 94, 289], "encod": [64, 143, 144, 154, 155, 178, 276, 277, 278], "For": [64, 70, 106, 139, 166, 171, 221, 252, 265, 268, 270, 275, 276, 279, 286, 289, 291, 293, 294, 296, 298], "amino_acid": 64, "n": [64, 103, 104, 105, 221, 264, 267, 268, 270, 271, 282, 286, 287, 291], "d": [64, 171, 200, 216, 264, 269, 286, 291], "c": [64, 103, 104, 105, 264, 265, 267, 270, 274, 275, 280, 281, 282, 291, 296], "q": [64, 264, 291], "h": [64, 99, 100, 101, 192, 197, 264, 291, 296], "k": [64, 107, 173, 183, 212, 264, 291], "m": [64, 145, 171, 264, 270, 291], "p": [64, 264, 291], "v": [64, 66, 291], "measur": [65, 139, 270, 280, 281], "stabil": [65, 66, 121, 123, 124, 126, 127, 171, 180, 181, 264, 267, 268, 270, 272, 277, 294], "sasa": [65, 66, 116, 118, 119, 120, 126, 127, 128, 129, 180, 181, 268, 272, 277, 278], "foldxinterfac": 65, "queri": [65, 265, 266, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 290, 296], "heavili": [65, 270], "inspir": [65, 270], "wai": [65, 266, 267, 270, 271, 274, 277, 278, 280, 281, 290, 291, 294], "lambo": [65, 106, 110, 113, 115, 166, 167, 168, 268, 270, 272, 275, 289], "automat": [65, 96, 264, 265, 269, 279], "acceler": [65, 110, 166, 167, 264], "bayesian": [65, 110, 166, 167, 252, 264, 266, 268, 290], "biolog": [65, 110, 166, 167, 264], "design": [65, 103, 104, 105, 110, 154, 166, 167, 264, 266, 269, 272, 274, 289, 290, 293, 296], "withdenois": 65, "autoencod": [65, 110, 154, 166, 167, 264, 297], "stanton": [65, 110, 166, 167, 264, 268, 269, 270, 279, 289], "samuel": [65, 110, 166, 167, 264], "weslei": [65, 110, 166, 167, 264], "maddox": [65, 110, 166, 167, 264], "nate": [65, 110, 166, 167, 264], "gruver": [65, 110, 166, 167, 264], "phillip": [65, 110, 166, 167, 264], "maffetton": [65, 110, 166, 167, 264], "emili": [65, 110, 166, 167, 264], "delanei": [65, 110, 166, 167, 264], "peyton": [65, 110, 166, 167, 264], "greensid": [65, 110, 166, 167, 264], "andrew": [65, 110, 166, 167, 264], "gordon": [65, 110, 166, 167, 264], "wilson": [65, 110, 166, 167, 264], "arxiv": [65, 110, 166, 167, 264], "juli": [65, 110, 166, 167], "ab": [65, 110, 166, 167, 264], "2203": [65, 110, 166, 167, 264], "12742": [65, 110, 166, 167, 264], "samuelstanton": [65, 106, 276, 279], "working_dir": [66, 270], "interact": [66, 270], "engin": [66, 200, 297], "softwar": [66, 268, 269], "where": [66, 99, 100, 101, 155, 265, 266, 268, 270, 275, 282, 290, 294], "store": [66, 271, 289], "pdb_file": 66, "remove_and_renam": 66, "ph": [66, 270, 277, 278], "remove_heteroatom": 66, "_repair_if_necessary_and_provide_path": 66, "_simulate_mut": 66, "_read_energi": 66, "_compute_sasa": 66, "solvent": [66, 116, 119, 120, 126, 128, 129, 180, 264, 268, 270, 272], "surfac": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "area": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "compute_st": 66, "structur": [66, 72, 73, 74, 106, 124, 270, 275, 291], "compute_sasa": 66, "compute_stability_and_sasa": 66, "singl": [66, 70, 171, 200, 264, 268, 271, 272, 280, 281, 289, 291, 297, 301], "copy_foldx_fil": 66, "copi": [66, 266, 270, 290, 302], "write_mutations_to_fil": 66, "wildtype_resiud": 66, "output_dir": 66, "write": [66, 106, 265, 267, 270, 275, 283, 284, 288, 291, 292, 296, 299, 300], "stdout": 66, "previou": [66, 94, 96, 270, 291, 295], "reli": [66, 248, 286], "rotabas": [66, 269, 270, 276, 277, 278], "longer": 66, "manipul": [67, 265, 267, 268], "accord": [67, 138, 270, 293, 296], "certain": [67, 265, 268, 270, 274, 295], "first": [67, 68, 70, 265, 270, 271, 273, 289, 290, 295, 296], "letter": [67, 70, 99, 100, 101, 268, 270, 272, 273, 296], "second": [67, 68, 70, 148, 270, 295, 296], "posit": [67, 68, 70, 137, 142, 266, 270, 271, 289, 290, 293], "third": [67, 70], "chain": [67, 70, 270], "fourth": [67, 70], "mutant": [67, 69, 70, 171, 266, 270, 290], "foldxsuit": [67, 269, 270], "crg": [67, 269, 270], "eu": [67, 269, 270], "string_1": 68, "string_2": 68, "edit": [68, 171, 271], "oper": [68, 269, 295], "assertionerror": [68, 295], "abc": 68, "abd": 68, "def": [68, 265, 266, 290, 291, 296], "wildtype_pdb_fil": [69, 277, 278], "mutated_residue_str": [69, 70], "return_hamming_dist": 69, "find": [69, 99, 100, 101, 106, 265, 271, 274, 275, 291, 293, 295], "closest": 69, "ham": 69, "distanc": [69, 70, 100, 271, 273], "along": 69, "best": [69, 266, 289, 290, 298, 302], "candid": [69, 266], "found": [69, 267, 270, 289, 293, 296], "bio": [70, 73, 74, 270], "individual_list": [70, 270], "levenshtein": [70, 277, 278], "track": [70, 264, 265], "written": 70, "line": [70, 268, 270, 294], "ea1r": 70, "still": [70, 294], "need": [70, 106, 265, 269, 270, 275, 276, 277, 278, 279, 289, 291, 295], "dummi": 70, "itself": [70, 265, 267], "ecd": 70, "acd": 70, "would": [70, 270, 271, 274, 291, 296], "ea1a": 70, "load": [71, 95, 131, 139, 148, 198, 270, 289, 291], "them": [71, 106, 252, 265, 266, 267, 270, 271, 272, 275, 290, 293], "path_to_pdb": [72, 73, 74], "structure_nam": [72, 73, 74], "done": [74, 106, 270, 275, 276, 279, 293], "quietli": 74, "some": [74, 152, 168, 252, 267, 268, 270, 276, 279, 286, 291, 293, 296], "get_structur": [74, 270], "pdbparser": [74, 270], "numpi": [86, 190, 265, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 291, 296, 297, 301, 302, 303, 304], "obj": 89, "dynam": 89, "intern": [89, 264, 265, 282, 285, 293, 294], "constructor": 89, "factory_kwarg": [90, 91, 294], "processwrapp": [90, 91, 93], "how": [90, 91, 106, 229, 265, 266, 267, 268, 270, 272, 289, 290, 291, 293, 295, 296], "objective_nam": [91, 294], "loop": [91, 248, 264, 297], "process_wrapp": 93, "observer_init_info": [94, 294], "force_regist": [94, 96, 275, 277, 278, 280, 281, 282, 294], "force_isol": [94, 96, 294], "instantiant": 94, "associ": [94, 264, 289, 294], "caller": [94, 96, 291], "forward": [94, 96, 291], "logger": [94, 96], "ask": [94, 96, 279], "confirm": [94, 96], "By": [94, 124, 174, 178, 218, 266, 277, 278, 295, 297, 301], "onc": [94, 265, 274, 293, 295, 296], "round": [94, 224, 264], "down": 94, "give": [94, 188, 252, 274, 296], "config": [95, 115, 289], "configpars": 95, "just": [96, 276, 277, 278, 279, 289, 291, 295, 296], "One": [96, 269], "aloha": [96, 267, 268, 272, 289, 290, 293, 296, 302], "arrai": [96, 134, 135, 144, 145, 187, 190, 192, 265, 267, 268, 271, 273, 274, 277, 278, 280, 281, 285, 286, 287, 289, 291, 293, 294, 296], "reshap": [96, 266, 280, 281, 296, 297, 301], "simpl": [99, 100, 101, 103, 104, 105, 138, 173, 174, 177, 178, 265, 266, 289, 290, 293, 295, 296], "goal": [99, 100, 101], "o": [99, 100, 101, 273, 274, 291, 296], "among": [99, 100, 101, 269, 270, 295], "poli__bas": [99, 217, 223], "yml": [99, 106, 173, 177, 217, 223, 271, 274, 276, 279, 296], "simultan": [100, 104, 108, 174, 178, 184, 271], "map": [100, 104], "symbol": [100, 104], "main": [100, 174, 178, 266, 267, 268, 269, 270, 290, 291, 296], "api": [103, 104, 105, 267, 276], "assess": [103, 104, 105, 171, 272], "small": [103, 104, 105, 174, 265, 267, 274, 275, 282, 291, 293, 295], "protein": [103, 104, 105, 118, 123, 124, 127, 171, 181, 264, 267, 269, 271, 274, 275, 293, 294], "easi": [103, 104, 105, 264, 265, 270, 293, 295], "molecular": [103, 104, 105, 118, 123, 127, 181, 264], "better": [103, 104, 105, 264, 265, 270], "benchmark": [103, 104, 105, 200, 217, 221, 264, 268, 272], "ligand": [103, 104, 105, 264, 268, 272, 274], "garc\u00eda": [103, 104, 105, 264, 268, 274], "orteg\u00f3n": [103, 104, 105, 264, 268, 274], "miguel": [103, 104, 105, 264, 268], "gregor": [103, 104, 105, 264], "simm": [103, 104, 105, 264], "austin": [103, 104, 105, 264], "tripp": [103, 104, 105, 264], "jos\u00e9": [103, 104, 105, 171, 264], "hern\u00e1ndez": [103, 104, 105, 264], "lobato": [103, 104, 105, 264], "andrea": [103, 104, 105, 264], "bender": [103, 104, 105, 264], "sergio": [103, 104, 105, 264], "bacallado": [103, 104, 105, 264], "journal": [103, 104, 105, 264], "62": [103, 104, 105, 264], "15": [103, 104, 105, 264, 302], "august": [103, 104, 105, 264], "3486": [103, 104, 105, 264], "3502": [103, 104, 105, 264], "1021": [103, 104, 105, 264], "ac": [103, 104, 105, 264], "jcim": [103, 104, 105, 264], "1c01334": [103, 104, 105, 264], "target_nam": [104, 274, 294], "string_represent": [104, 274, 279, 280, 281], "liter": [104, 221, 265], "There": [106, 289, 291, 294], "sever": [106, 200, 209, 217, 270, 271, 295, 296], "prepare_receptor": 106, "rest": [106, 265, 291, 293], "descript": [106, 265, 271, 274, 289, 291, 296], "show": [106, 267, 270, 289, 296], "center": [106, 275], "websit": [106, 275], "scripp": 106, "edu": 106, "uncompress": [106, 275], "add": [106, 139, 188, 265, 276, 277, 278, 279, 290], "export": [106, 275], "autodock_vina": [106, 275], "bin": [106, 275, 294], "bashrc": [106, 275], "zshrc": [106, 275], "bash": 106, "In": [106, 166, 168, 264, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 298, 302], "ccsb": 106, "sh": [106, 275, 296], "thu": [106, 275], "might": [106, 200, 265, 267, 270, 275, 276, 277, 278, 279, 286, 289, 291, 296], "chang": [106, 118, 123, 127, 131, 148, 181, 267, 269, 270, 275, 277, 278, 286], "its": [106, 266, 270, 271, 274, 275, 277, 289, 290, 294, 295, 296], "permiss": [106, 275], "chmod": [106, 275], "abl": [106, 265, 267, 269, 270, 275, 291, 294, 296], "pyscreen": [106, 268, 275], "howev": [106, 271, 275, 294, 296], "sometim": [106, 275], "problemat": [106, 275], "ha": [106, 209, 265, 266, 270, 275, 289, 290, 294, 296, 298], "symlink": [106, 275], "ln": [106, 275], "sf": [106, 275], "easili": [106, 270, 275, 289, 295], "env": [106, 265, 267, 271, 274, 275, 276, 279, 289, 293, 294, 296], "src": [106, 265, 271, 274, 275, 276, 279, 289, 294], "ddr3_dock": 106, "task": [106, 107, 110, 113, 115, 148, 264, 270, 276, 279, 297], "git": [106, 265, 267, 268, 276, 279, 296], "clone": [106, 267, 271, 276, 279, 285], "431b052": [106, 276, 279], "cd": [106, 267, 276, 279], "particular": [106, 168, 180, 275, 276, 286, 291, 294, 295, 296], "proxy_rfp": [106, 113, 276], "proxyrfptask": [106, 113, 276], "rfp": [106, 110, 111, 115, 180, 268, 272], "asset": [106, 276], "fpbase": [106, 276], "And": [106, 289, 296], "now": [106, 265, 267, 270, 293, 294, 296], "py": [106, 221, 266, 267, 270, 289, 290, 291, 293, 294, 295, 296], "query_exampl": 106, "ddr3": 107, "et": [107, 183, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 289, 297, 301, 302], "al": [107, 183, 200, 221, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 286, 289, 297, 301, 302], "nat": [107, 183], "biol": [107, 183], "1036": [107, 183], "self": [108, 265, 266, 271, 290, 291, 296], "tdcblackbox": 108, "denois": [110, 166, 167, 264], "alia": 112, "base_candid": 113, "specifc": 115, "predict": [116, 138, 139, 157, 171, 264, 268, 270, 272, 297], "pair": [118, 127, 181], "biopython": [118, 123, 127, 181, 270, 277, 278, 294], "cock": [118, 123, 127, 181], "pa": [118, 123, 127, 181], "antao": [118, 123, 127, 181], "jt": [118, 123, 127, 181], "chapman": [118, 123, 127, 181], "ba": [118, 123, 127, 181], "cox": [118, 123, 127, 181], "cj": [118, 123, 127, 181], "dalk": [118, 123, 127, 181], "friedberg": [118, 123, 127, 181], "hamelryck": [118, 123, 127, 181], "kauff": [118, 123, 127, 181], "wilczynski": [118, 123, 127, 181], "b": [118, 123, 127, 181, 192, 265, 267, 273, 285, 286, 287, 291, 293, 296], "de": [118, 123, 127, 181, 264], "hoon": [118, 123, 127, 181], "mjl": [118, 123, 127, 181], "2009": [118, 123, 127, 181, 268], "freeli": [118, 123, 127, 181], "tool": [118, 123, 127, 181, 265, 277, 278, 294, 296], "bioinformat": [118, 123, 127, 181], "25": [118, 123, 127, 181], "1422": [118, 123, 127, 181], "1423": [118, 123, 127, 181], "usual": [119, 124, 215, 217, 265, 266, 268, 272, 286, 291, 295, 296, 297], "eager": [119, 128], "v5": [119, 124, 128], "compil": [119, 124, 128, 156, 271, 289], "specif": [119, 124, 128, 286, 293], "foldxblackbox": [119, 124, 128], "pre": [123, 266, 267, 271, 274, 277, 278], "20": [124, 264], "shown": 124, "core": [124, 265, 266, 288, 289, 290, 295, 296, 302], "through": [124, 266, 267, 290, 293], "total": [124, 138, 270], "cba": [131, 148, 150], "vae": [131, 148, 150, 151, 155, 156, 194, 196, 197, 297], "sb": [131, 148], "bo": 131, "minor": [131, 148], "modif": [131, 148], "conduct": [131, 148], "rm": [131, 148], "creator": [131, 148], "last": [131, 148, 270, 294], "x_aa": [134, 135, 144], "aa_idx": 134, "arn": [134, 135], "becom": [134, 135, 270], "row": [134, 135, 270], "base_seq": 136, "wild": [136, 141, 270], "mtuation": 136, "xt_p": [137, 142], "categor": [137, 142, 158, 196, 197], "probabl": [137, 142], "distribut": [137, 142, 158, 197, 264, 298], "pred": 138, "xt": 138, "predictor": 138, "balaji": 138, "lakshminarayanan": 138, "paper": [138, 150, 264, 294], "scalabl": 138, "uncertainti": [138, 297], "estim": [138, 166, 176, 177, 178, 179, 267, 268, 272], "deep": [138, 171, 264, 297], "ensembl": 138, "2017": [138, 264, 271], "varianc": 138, "random_st": [139, 146], "train_siz": [139, 146], "5000": 139, "return_test": [139, 146], "return_al": 139, "gfp": [139, 140, 141, 147], "test": [139, 200, 266, 286, 290], "ground": 139, "truth": 139, "gp": [139, 161], "partit": [139, 146, 280], "below": [139, 271, 274, 277, 278], "20th": 139, "percentil": [139, 146], "nois": [139, 222, 223, 224, 257, 268, 272], "data_df": 140, "panda": [140, 147, 270], "datafram": [140, 147, 270], "functional_onli": [140, 160], "ignore_stop": [140, 160], "return_str": 140, "raw": 140, "sampl": [142, 193, 264, 287, 291, 297, 303, 304], "aa_str": 143, "pad": [143, 145, 188], "hot": [143, 192], "onehot": 144, "alphabet_s": [144, 266, 290], "dna_str": 145, "base_ord": 145, "atcg": 145, "40": 146, "1000": [146, 295], "df_save_fil": 147, "bright": 147, "author": [148, 166, 268], "credit": 148, "herculean": 148, "go": [148, 268, 269, 294, 296], "aa": [149, 150, 151], "mimic": 150, "kera": [150, 154], "latent_dimension": [150, 151], "enc1_unit": [150, 151, 156], "train": [152, 196], "gaussian": [152, 223, 224, 264, 268, 272, 287, 297], "regress": 152, "sarkisyan": 152, "2016": [152, 264, 297], "plu": [152, 302], "constant": [152, 286], "input_shap": [154, 155], "latent_dim": [154, 155, 156], "variat": [154, 297], "via": [154, 264, 291], "latent": [154, 266, 290, 297], "space": [154, 189, 252, 266, 290, 297, 301], "flatten": [155, 266, 289, 290], "basic": [155, 248, 293, 296], "layer": 155, "n_token": 156, "seq_length": 156, "50": [156, 298], "eps_std": 156, "y_true": [157, 158], "y_pred": [157, 158], "likelihood": 158, "uniqu": [160, 291], "problem_typ": 161, "exact": [166, 266, 271, 274, 290, 296], "logp": [166, 167, 168, 172, 173, 174, 268, 272], "jointli": 166, "quantit": [166, 176, 177, 178, 179, 267, 268, 272], "druglik": [166, 176, 177, 178, 179, 267, 268, 272], "qed": [166, 174, 176, 177, 178, 179, 268, 272], "penal": [166, 168, 268, 272], "solubl": [166, 172, 173, 174, 268, 272], "fair": 166, "comparison": [166, 291], "_exactly_": 167, "adjust": 168, "magic": 168, "empir": [168, 279], "standard": [168, 223, 224, 279, 287], "deviat": [168, 279], "dataset": [168, 200, 264, 279], "todo": [168, 270, 283, 284, 288, 292, 299, 300], "rapid": [171, 264, 268, 272], "sourc": [171, 265], "bird": 171, "ey": 171, "view": [171, 270], "collect": [171, 199, 268, 271], "site": [171, 289, 293, 294], "reader": 171, "consid": [171, 271, 286, 296], "drop": [171, 271, 289, 293], "rosetta": [171, 271], "learn": [171, 264, 271], "blaabjerg": [171, 264, 268, 271], "lass": [171, 264], "maher": [171, 264], "kassem": [171, 264], "lydia": [171, 264], "good": [171, 264, 265, 267, 268, 289, 296], "nicola": [171, 264], "jonsson": [171, 264], "matteo": [171, 264], "cagiada": [171, 264], "kristoff": [171, 264], "johansson": [171, 264], "wouter": [171, 264], "boomsma": [171, 264, 271], "ameli": [171, 264], "stein": [171, 264], "kresten": [171, 264], "lindorff": [171, 264], "larsen": [171, 264], "faraldo": 171, "g\u00f3mez": [171, 264, 297], "detlef": 171, "weigel": 171, "nir": 171, "ben": 171, "tal": 171, "julian": 171, "echav": 171, "elif": [171, 264], "2023": [171, 264, 268, 269, 271], "e82593": [171, 264], "7554": [171, 264], "82593": [171, 264], "whose": [173, 177, 223, 276, 297], "quotient": [173, 268, 272], "descriptor": [173, 296], "both": [173, 177, 270, 277, 278, 295, 296], "poli__chem": [173, 177, 280, 281], "want": [173, 177, 265, 266, 270, 271, 274, 277, 278, 280, 281, 293, 295, 296], "local": [173, 177, 209, 266, 267, 285, 291, 294], "environemnt": [173, 177], "extra": [173, 177, 265, 289, 294], "interest": [173, 267, 270, 271, 274, 277, 278, 285, 286, 291, 293], "molfromsmil": [174, 178], "known": [174, 178, 280, 289], "silent": [174, 178], "nan": [174, 178], "someth": [174, 178], "than": [174, 178, 252, 295, 296], "continu": [177, 179, 199, 200, 217, 218, 252, 264, 268, 272, 293], "lipinski": [177, 179], "rule": [177, 179, 265], "strongli": 178, "advic": [178, 265], "heurist": 179, "discard": 179, "too": 179, "heavi": 179, "pareto": 180, "front": 180, "accessibl": 182, "sa": [182, 268, 272], "toi": [186, 199, 200, 217, 218, 221, 222, 224, 252, 273, 291, 295, 302], "avout": 186, "super": [186, 265, 266, 272, 290, 296], "mario": [186, 189, 196, 272, 296], "bro": [186, 272, 296], "level": [186, 187, 188, 189, 190, 191, 192, 193, 270, 272], "n_pad": 188, "left": 188, "room": 188, "agent": 188, "land": 188, "clean": [189, 270], "remov": [189, 269, 277, 278, 296], "11": [189, 192, 197, 267, 274, 294], "empti": 189, "level_txt": [190, 191], "n_sprite": [192, 197], "integ": [192, 193, 266, 286, 287, 290, 293, 296], "levels_onehot": 193, "probit": 193, "tensor_level": 194, "torch": [194, 296], "tensor": 194, "level_s": 194, "14": [194, 197], "could": [194, 265, 266, 270, 271, 276, 277, 278, 289, 290, 293, 296, 301], "mariogan": 194, "jar": [194, 265], "prob_matrix": 195, "item": [195, 262], "sentenc": 197, "shape": [197, 265, 266, 267, 273, 285, 286, 287, 290, 293], "z_dim": 197, "devic": 197, "path_to_state_dict": 198, "vaemario": 198, "pretrain": 198, "landscap": 200, "signatur": 200, "sign": [200, 286], "flip": [200, 286], "becaus": [200, 296], "re": [200, 265, 267, 270, 271, 290, 291, 293, 296], "deal": 200, "ali": [200, 264], "roomi": [200, 221, 264, 268, 286], "2015": [200, 264, 268, 286], "unconstrain": [200, 221, 264], "www": [200, 264], "halifax": 200, "nova": 200, "scotia": 200, "canada": 200, "dalhousi": 200, "univers": 200, "electr": 200, "surjanov": [200, 268], "bingham": [200, 268], "virtual": 200, "sfu": 200, "ca": 200, "ssurjano": 200, "linebo": [206, 286, 301], "kirschnj": 206, "xy": [209, 213, 214], "cross": 209, "trai": 209, "maxima": [209, 213], "quilt": 209, "pattern": 209, "2d": [209, 213, 214, 252], "alpha": [212, 267, 297], "veri": 213, "flat": 213, "pi": 213, "egg": 214, "holder": 214, "especi": [214, 265, 268], "difficult": 214, "know": [214, 270], "optima": [214, 221], "squar": 215, "norm": 215, "shift": 215, "awai": [215, 271], "bit": [215, 270], "normal": [216, 264, 294, 298], "903534": 216, "39": [216, 276], "16599": 216, "divid": 216, "dimens": [217, 218, 221, 252, 264, 286, 297], "focu": [217, 270, 289, 293], "ones": [217, 265], "dimension": [217, 252, 264], "function_nam": [218, 286, 297, 298, 301], "n_dimens": [218, 286, 297, 298, 301], "embed_in": [218, 221, 286], "randomli": [218, 266, 286, 289, 290, 293, 302, 303, 304], "embed": [218, 252, 286], "emb": [218, 252, 286], "toycontinuousproblem": 218, "bound": 218, "lower": [218, 252], "upper": 218, "seri": 220, "testb": 220, "wikipedia": 220, "wiki": 220, "test_functions_for_optim": 220, "ackley_function_01": [221, 268, 272, 286, 297, 298, 301], "alpine_01": [221, 286], "alpine_02": [221, 286], "bent_cigar": [221, 286], "brown": [221, 286], "chung_reynold": [221, 286], "cosine_mixtur": [221, 286], "deb_01": [221, 286], "deb_02": [221, 286], "deflected_corrugated_spr": [221, 286], "styblinski_tang": 221, "shifted_spher": [221, 286], "easom": [221, 268, 272, 286], "cross_in_trai": [221, 286], "egg_hold": [221, 286], "camelback_2d": [221, 286], "n_dim": 221, "definit": [221, 265, 286], "white": [222, 223, 257, 268, 272], "vector": 224, "downward": 224, "exemplifi": 248, "Not": 248, "come": [248, 265, 274, 293, 295], "benefit": 248, "intellisens": 248, "spawn": 249, "higher": [252, 270], "afford": 252, "intrins": 252, "actual": [252, 265, 286, 294], "readm": [256, 265], "verbatum": 256, "fullnam": 262, "escap": 262, "underlin": 262, "block": [262, 265], "rubric": 262, "endfor": 262, "endif": 262, "endblock": 262, "ar15": 264, "url": [264, 268], "bkj": 264, "maximilian": 264, "balandat": [264, 297, 301], "brian": 264, "karrer": 264, "daniel": 264, "jiang": 264, "daulton": 264, "benjamin": 264, "letham": 264, "eytan": 264, "bakshi": 264, "botorch": [264, 268, 297, 301], "framework": 264, "effici": [264, 291, 297], "mont": 264, "carlo": 264, "decemb": 264, "2020": [264, 268, 297, 301, 302], "1910": 264, "06403": 264, "cs": 264, "math": 264, "stat": 264, "bkg": 264, "23": [264, 267], "bf17": 264, "je": 264, "frellsen": [264, 271], "spheric": 264, "convolut": 264, "applic": 264, "guyon": 264, "u": [264, 291], "von": 264, "luxburg": 264, "bengio": 264, "wallach": 264, "fergu": 264, "vishwanathan": 264, "garnett": 264, "editor": 264, "advanc": 264, "neural": [264, 271], "system": [264, 269, 270, 294], "volum": 264, "30": [264, 286], "curran": 264, "inc": 264, "proceed": 264, "neurip": 264, "cc": [264, 274], "paper_fil": 264, "1113d7a76ffceca1bb350bfe145467c6": 264, "pdf": 264, "dpam02": 264, "deb": [264, 302], "pratap": 264, "agarw": 264, "meyarivan": 264, "fast": 264, "elitist": 264, "multiobject": 264, "genet": [264, 302], "nsga": 264, "ii": 264, "ieee": 264, "transact": 264, "evolutionari": [264, 266, 268, 290, 298], "182": 264, "197": 264, "april": 264, "2002": [264, 302], "1109": 264, "4235": 264, "996017": 264, "gfsc22": 264, "matter": 264, "practic": 264, "thirti": 264, "sixth": 264, "confer": 264, "openreview": 264, "net": 264, "forum": 264, "yczrdi0y7g": 264, "gost": 264, "22": [264, 270], "dockstr": [264, 267, 268, 272, 289, 293, 294], "gpb": 264, "jacob": 264, "gardner": [264, 297], "geoff": 264, "pleiss": 264, "david": [264, 298], "bindel": 264, "kilian": 264, "weinberg": 264, "gpytorch": [264, 297], "blackbox": 264, "matrix": [264, 298], "infer": 264, "gpu": 264, "2018": [264, 268, 297], "gbwd": 264, "rafael": 264, "bombarelli": [264, 297], "jennif": 264, "wei": 264, "duvenaud": 264, "benjam\u00edn": 264, "s\u00e1nchez": 264, "lengel": 264, "denni": 264, "sheberla": 264, "jorg": 264, "aguilera": 264, "iparraguirr": 264, "timothi": 264, "hirzel": 264, "ryan": 264, "adam": 264, "al\u00e1n": 264, "driven": 264, "central": 264, "268": 264, "276": [264, 294], "februari": 264, "acscentsci": 264, "7b00572": 264, "ho96": 264, "hansen": [264, 298], "ostermei": [264, 298], "arbitrari": [264, 286], "evolut": [264, 302], "strategi": [264, 268, 298], "covari": [264, 298], "312": 264, "317": 264, "1996": [264, 298], "icec": 264, "542381": 264, "hfg": 264, "21": [264, 289, 293], "machin": 264, "drug": [264, 293], "discoveri": 264, "develop": [264, 265, 266, 290], "fifth": 264, "2021": [264, 275, 282], "8nvgnornowr": 264, "jrhernandezgarcia": 264, "moksh": 264, "jain": [264, 269], "sharath": 264, "chandra": 264, "raparthi": 264, "alex": 264, "hern": 264, "\u00e1": 264, "ndez": 264, "garc": 264, "\u0131": 264, "jarrid": 264, "rector": 264, "brook": [264, 268], "yoshua": 264, "santiago": 264, "miret": 264, "emmanuel": 264, "gf": 264, "low": 264, "kraus": 264, "emma": 264, "brunskil": 264, "kyunghyun": 264, "cho": 264, "barbara": 264, "engelhardt": 264, "sivan": 264, "sabato": 264, "jonathan": 264, "scarlett": 264, "40th": 264, "202": 264, "14631": 264, "14653": 264, "pmlr": 264, "29": 264, "jul": 264, "mlr": 264, "press": 264, "v202": 264, "jain23a": 264, "kmh": 264, "19": 264, "johann": 264, "kirschner": [264, 301], "mojmir": 264, "mutni": 264, "nicol": 264, "hiller": 264, "rasmu": 264, "ischebeck": 264, "safe": 264, "high": 264, "subspac": 264, "36th": 264, "3429": 264, "3438": 264, "2019": [264, 268, 301], "v97": 264, "kirschner19a": 264, "ssw": 264, "16": [264, 270], "bobak": 264, "shahriari": [264, 297], "kevin": 264, "swerski": 264, "ziyu": 264, "wang": 264, "nando": 264, "freita": 264, "human": [264, 297], "out": [264, 273, 280, 281, 286, 287, 293, 297], "review": 264, "104": 264, "148": 264, "175": 264, "januari": 264, "jproc": 264, "2494218": 264, "sr73": 264, "shrake": [264, 270], "ruplei": [264, 270], "exposur": 264, "atom": 264, "lysozym": 264, "insulin": 264, "79": 264, "351": 264, "371": 264, "sep": 264, "1973": [264, 270], "1016": 264, "0022": 264, "2836": 264, "73": 264, "90011": 264, "smg": 264, "preprint": 264, "blankdeb20": 264, "blank": [264, 302], "pymoo": [264, 302], "89497": 264, "89509": 264, "tutori": [265, 270, 289, 291, 295, 296, 297], "cover": 265, "what": [265, 274, 289, 295], "look": [265, 266, 290, 296], "poli": [265, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 294, 295, 297, 298, 301, 302, 303, 304], "live": [265, 294], "goe": [265, 270, 296], "exactli": [265, 266, 276, 279, 290], "doesn": [265, 275, 291, 294], "mani": [265, 302], "think": 265, "project": [265, 270, 294], "ll": [265, 269, 270, 293, 295], "carri": 265, "let": [265, 267, 270, 289, 291, 293, 294, 296], "super_mario_bro": [265, 268, 289, 293], "pt": [265, 271], "level_util": 265, "md": [265, 266], "As": [265, 270, 289, 294, 296], "don": [265, 268, 274, 294], "end": [265, 270, 291, 295], "ignor": 265, "altern": 265, "averag": 265, "abstract_black_box": [265, 296], "abstract_problem_factori": [265, 296], "problem_setup_inform": [265, 291, 296], "pythonpath": 265, "runtim": [265, 296], "imagin": 265, "your_local_depend": 265, "yourblackbox": 265, "your_arg": 265, "your_second_arg": 265, "your_kwarg": 265, "yourproblemfactori": 265, "chapter": [265, 266, 267, 268, 270, 289, 290, 291, 293, 295, 296], "your_problem": 265, "problem_info": [265, 285, 289, 291, 293, 296], "__name__": [265, 271, 274, 295, 296], "__main__": [265, 271, 274, 295, 296], "registri": [265, 289, 295], "register_problem": [265, 296], "your_problem_factori": 265, "your_env": 265, "That": [265, 276], "camel_cas": 265, "under": [265, 267, 269, 274, 275, 286, 296], "tell": 265, "though": 265, "sai": [265, 270, 286, 289, 294, 296], "channel": [265, 296], "machinelearninglifesci": [265, 266, 267, 268, 296], "dev": [265, 267, 268, 270], "java": [265, 296], "poli__mario": 265, "forg": 265, "pytorch": 265, "openjdk": [265, 294], "cpuonli": 265, "click": [265, 268, 272, 293], "moreov": [265, 266, 290], "googl": [265, 268], "colab": [265, 268], "put": [265, 270, 302], "describ": [265, 270, 275, 276, 279, 282, 293, 295], "register": 265, "get_problem": [265, 267, 289, 293, 295, 296], "your_arg_1": 265, "mayb": 265, "your_arg_2": 265, "your_factori": 265, "thereof": 265, "At": [265, 270, 291, 293, 296], "point": [265, 270, 291, 293, 296, 297], "wrote": 265, "direct": [265, 301], "life": [265, 271], "debug": [265, 267, 271, 274, 285], "vscode": 265, "available_problem_factori": 265, "importerror": 265, "share": [265, 266, 267], "feel": [265, 266, 270, 293], "contribut": [265, 266], "case": [266, 267, 270, 273, 285, 286, 287, 290, 291, 293, 296], "poli_baselin": [266, 267, 289, 293, 295, 297, 298, 301, 302, 303, 304], "almost": [266, 290], "trivial": [266, 267, 290, 293, 296], "complic": [266, 290], "likewis": [266, 290], "explain": [266, 290, 291], "abstractsolv": [266, 289, 290], "abstract_solv": [266, 289, 290], "black_box": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "histori": [266, 289, 290, 293, 303, 304], "x0_i": 266, "y0_i": 266, "ingredi": [266, 270, 289, 290], "next_candid": [266, 289, 290, 293], "propos": [266, 290, 293], "solv": [266, 289, 290, 293, 295, 296, 297, 298, 301, 302, 303, 304], "max_it": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "next": [266, 268, 270, 289, 290, 291, 293, 295, 296], "solut": [266, 280, 290, 302], "notimplementederror": [266, 290], "subclass": [266, 290], "100": [266, 290, 293, 302, 303, 304], "rang": [266, 267, 290], "callback": 266, "pre_step_callback": 266, "turn": 266, "updat": [266, 289, 291, 293, 298], "_": [266, 267, 297, 298, 301, 302], "post": 266, "post_step_callback": 266, "get_best_perform": [266, 289], "break_at_perform": [266, 295], "break": [266, 295], "leverag": [266, 290], "fact": [266, 290], "simplest": [266, 289, 290], "random_mut": [266, 289, 290, 293, 295], "len": [266, 290], "best_x": [266, 290], "argmax": [266, 290], "alwai": [266, 273, 286, 287, 290, 294, 296], "next_x": [266, 290], "po": [266, 290], "randint": [266, 290], "choic": [266, 290, 302], "pretti": [266, 270, 290], "lean": [266, 290], "notic": [266, 274, 279, 290, 291], "sort": [266, 285, 290, 302], "logic": [266, 290, 291], "noth": [266, 289, 290], "worri": [266, 268, 290, 296], "slightli": [266, 290, 296], "unfortun": [267, 274], "linux": [267, 274, 294], "maco": [267, 274], "top": [267, 268, 293], "therefor": [267, 294], "anaconda": 267, "went": 267, "okai": [267, 271], "anoth": [267, 270, 289, 293], "right": [267, 291], "bleed": 267, "edg": 267, "while": [267, 289], "stabl": [267, 289, 293], "releas": [267, 270], "shell": [267, 296], "home": [267, 269, 270, 276, 277, 278], "poli_object": [267, 271, 296], "phase": 267, "short": [267, 270], "futur": [267, 270], "everyth": [267, 269, 291], "requisit": [267, 274], "openbabel": [267, 274], "white_nois": [267, 287, 289, 293], "minimal_working_exampl": 267, "plenti": 267, "complex": [267, 270], "rasp": [268, 271, 272, 289, 293], "pytdc": 268, "accces": 268, "featur": [268, 271], "clash": [268, 270], "discuss": [268, 291, 293, 295, 296], "baselin": [268, 289, 291, 293, 294, 295, 297, 302], "place": [268, 269, 270], "fresh": 268, "full": [268, 270], "drawn": [268, 272], "unit": [268, 272], "word": [268, 272, 296], "spell": [268, 272], "3pbl": [268, 272, 275], "implmenet": [268, 272], "fluoresc": [268, 270, 272, 289], "On": 268, "focus": 268, "cma": 268, "es": 268, "vanilla": 268, "acquisit": [268, 297, 301], "over": 268, "encourag": 268, "gonzalezduquebartelsmichael": 268, "2024": [268, 270], "gonz\u00e1lez": 268, "duqu": 268, "bartel": 268, "simon": 268, "michael": 268, "richard": 268, "month": 268, "jan": 268, "titl": 268, "libari": 268, "year": 268, "drd3_dock": [268, 275, 289, 293], "graff": 268, "shakhnovich": 268, "foldx_": 268, "gfp_cba": [268, 289, 293], "park": 268, "listgarten": 268, "gfp_select": [268, 289, 293], "penalized_logp_lambo": [268, 279, 289, 293], "rdkit_": 268, "rfp_foldx_": 268, "sa_tdc": [268, 282, 289, 293], "ertl": 268, "schuffenhau": 268, "volz": 268, "toy_continuous_problem": [268, 286, 289, 293, 297, 301], "2013": 268, "coupl": [268, 296], "guid": 268, "subset": [269, 286, 298], "suit": 269, "thing": [269, 270, 289, 296], "dg": 269, "metric": 269, "recent": [269, 294], "academ": 269, "licens": 269, "zip": [269, 294], "auxiliari": 269, "renam": [269, 270, 276, 277, 278], "help": 269, "mac": [269, 294], "warn": [269, 294], "unverifi": 269, "quarantin": 269, "command": [269, 270, 277, 278, 294], "own": 269, "risk": 269, "xattr": 269, "appl": [269, 294], "familiar": 270, "ourselv": 270, "alreadi": [270, 289, 293], "refresh": 270, "essenti": [270, 291], "notebook": 270, "pathlib": [270, 271, 276, 277, 278, 282, 289, 291], "shutil": 270, "path_to_foldx_fil": 270, "this_dir": [270, 271, 291], "resolv": [270, 271, 289, 291], "tmp": 270, "mkdir": [270, 291], "copyfil": 270, "respons": 270, "transport": 270, "oxigen": 270, "sperm": 270, "whale": 270, "101m": 270, "hand": 270, "urllib": 270, "web_address": 270, "rcsb": 270, "urlretriev": 270, "Of": [270, 293], "cours": [270, 293], "long": [270, 289, 296], "aid": 270, "pdb_name": 270, "choos": [270, 286], "repairpdb": [270, 277, 278], "littl": 270, "consumig": 270, "400sec": 270, "build": [270, 293, 296, 297], "101m_repair": 270, "repair_cmd": 270, "water": [270, 277, 278, 280], "crystal": [270, 277, 278], "tree": 270, "fxout": 270, "unrecognized_molecul": 270, "onward": [270, 297], "inspect": [270, 271, 274], "parser": 270, "get_residu": 270, "dive": [270, 293, 295], "first_residu": 270, "resnam": 270, "index": 270, "get_par": 270, "met": [270, 294], "extract": 270, "sequtil": 270, "seq1": 270, "original_residu": 270, "chain_id": 270, "position_in_sequ": 270, "mutant_residu": 270, "glycin": 270, "Be": [270, 271], "care": [270, 289, 294], "fire": 270, "did": 270, "modifi": 270, "mutation_list": 270, "residue_idx": 270, "li": 270, "tranform": 270, "position_in_chain": 270, "content": 270, "indiviual_list": 270, "ma0g": 270, "won": 270, "buildmodel": 270, "gibb": 270, "foldx_cmd": 270, "consortium": 270, "jesper": 270, "freder": 270, "joost": 270, "lui": 270, "peter": 270, "vanhe": 270, "erik": 270, "verschueren": 270, "baeten": 270, "javier": 270, "delgado": 270, "francoi": 270, "permut": 270, "concept": 270, "raphael": 270, "gueroi": 270, "backhbond": 270, "142": 270, "58": 270, "sidehbond": 270, "48": 270, "61": 270, "energy_vdw": 270, "179": 270, "63": 270, "electro": 270, "energy_solvp": 270, "245": 270, "28": [270, 271], "energy_solvh": 270, "238": 270, "89": 270, "energy_vdwclash": 270, "42": 270, "energy_tors": 270, "70": 270, "backbone_vdwclash": 270, "158": 270, "entropy_sidec": 270, "105": 270, "87": 270, "entropy_mainc": 270, "231": 270, "69": 270, "bond": 270, "00": 270, "helix": 270, "dipol": 270, "75": 270, "loop_entropi": 270, "cis_bond": 270, "disulfid": 270, "kn": 270, "electrostat": 270, "partial": 270, "coval": 270, "energy_ionis": 270, "56": 270, "entropi": 270, "32": 270, "meta0": 270, "gly": 270, "ok": 270, "wed": 270, "feb": 270, "44": 270, "52": 270, "spend": 270, "96": 270, "valid": 270, "101m_repair_1": 270, "successfulli": 270, "completedprocess": 270, "sjt972": [270, 289, 293, 294], "understanding_foldx": 270, "01": 270, "returncod": 270, "average_101m_repair": 270, "dif_101m_repair": 270, "pdblist_101m_repair": 270, "raw_101m_repair": 270, "wt_101m_repair_1": 270, "raw_": 270, "_repair": [270, 277, 278], "tabl": 270, "quantiti": 270, "column_nam": 270, "backbon": 270, "hbond": 270, "sidechain": 270, "van": 270, "der": 270, "waal": 270, "solvat": 270, "polar": 270, "hydrophob": 270, "mainchain": 270, "sloop_entropi": 270, "mloop_entropi": 270, "torsion": 270, "bridg": 270, "kon": 270, "ionis": 270, "pd": 270, "readlin": 270, "df": 270, "split": 270, "column": 270, "var": [270, 294], "l3": 270, "qk9dx6g958765kmn_2wn34t00000gn": 270, "ipykernel_25734": 270, "1758354106": 270, "deprecationwarn": 270, "pyarrow": 270, "major": 270, "arrow": 270, "interoper": 270, "caus": 270, "pleas": [270, 289, 293, 294], "issu": 270, "54466": 270, "overal": 270, "31": 270, "7457": 270, "34": 270, "3436": 270, "notat": 270, "stand": [270, 293, 296], "again": 270, "wt_structur": 270, "mut_structur": 270, "pdb1": 270, "shrakeruplei": 270, "attach": [270, 291], "8407": 270, "731560227876": 270, "8439": 270, "063468009845": 270, "impact": 270, "databas": 270, "desir": [270, 293, 294], "lesser": 270, "stabler": 270, "correl": 270, "present": [270, 296], "supervis": 271, "approach": 271, "network": [271, 297], "drawback": 271, "similar": 271, "foldx_stabl": [271, 278, 289, 293], "awar": [271, 297], "scale": [271, 286], "easier": 271, "poli__rasp": 271, "correct": [271, 274, 277, 278, 279, 280, 281, 285, 296], "breakpoint": [271, 274], "satisfi": [271, 274], "root": [271, 274, 276, 279, 294], "3ned": [271, 289], "__file__": 271, "wildtype_pdb_paths_for_rasp": 271, "f_rasp": 271, "wildtype_str": 271, "join": [271, 289], "three": [271, 291, 293], "three_mut": 271, "wildtype_sequ": 271, "ddg": 271, "approx": 271, "03": 271, "07": 271, "clang": 271, "cmake": 271, "reduc": 271, "pin": 271, "hash": 271, "bd23a0bf627ae9b08842102a5c2e9404b4a81924": 271, "cavity_model_15": 271, "ds_model": 271, "3ccebe87e017b6bd737f88e1943557d128c85616": 271, "against": [271, 274], "checksum": 271, "satur": 271, "mutagenesi": 271, "pmo": 272, "jump": 272, "cap": 273, "prepar": 274, "autodock": 274, "vina": 274, "suppos": 274, "batteri": 274, "even": [274, 296], "poli__dockstr": [274, 294], "canon": [274, 275], "risperidon": 274, "dockstringproblemfactori": 274, "drd2": [274, 294], "risperidone_smil": 274, "cc1": 274, "n2ccccc2": 274, "n1": 274, "ccn3ccc": 274, "cc3": 274, "c4": 274, "noc5": 274, "c4c": 274, "c5": 274, "handl": [274, 277, 278, 280, 281], "hood": [274, 275], "abov": [275, 276, 279, 282, 295, 296], "success": 275, "underneath": [275, 276, 279, 282, 293], "poli__tdc": [275, 282], "text": [276, 277, 278, 296], "foldx_rfp_lambo": [276, 279, 289, 293], "poli__lambo": [276, 279], "avali": 276, "skip": 276, "decid": 276, "11189": 276, "00587946": 276, "8155": 276, "acces": [277, 282], "foldx_stability_and_sasa": [277, 278, 289, 293], "v4": [277, 278], "filenam": [277, 278], "cach": [277, 278], "your_fil": [277, 278], "heteroatom": [277, 278], "pdbtool": [277, 278], "Then": [277, 278, 280, 281], "foldx_sasa": [277, 289, 293], "poli__protein": [277, 278, 294], "carefulli": 279, "zinc": 279, "coeffici": 280, "octanol": 280, "rdkit_logp": [280, 289, 293, 294], "carbon": [280, 281], "6361": 280, "rdkit_q": [281, 289, 293], "35978494": 281, "assert": [281, 295], "isclos": 281, "8548": 282, "run_info": [285, 289], "link": 285, "peopl": 286, "sum_": 286, "x_d": 286, "saasbo": 286, "assumpt": 286, "roughli": 286, "speak": 286, "question": 286, "30d": 286, "dimensions_to_embed_in": 286, "mathcal": 287, "But": 288, "idea": [288, 289], "rc": 289, "sit": 289, "rfp_foldx_stability_and_sasa": [289, 293], "stick": 289, "red": 289, "explor": [289, 297], "ls": 289, "3ned_repair": 289, "optimizing_protein_st": 289, "ipynb": 289, "mrogu": 289, "hopefulli": 289, "remind": 289, "forgot": 289, "traceback": 294, "138": [], "typeerror": [], "got": [], "unexpect": [], "176": 294, "145": 294, "cell": 294, "439": 294, "437": 294, "438": 294, "__create_as_isolated_process": 294, "440": 294, "441": 294, "442": 294, "443": 294, "444": 294, "445": 294, "446": 294, "447": 294, "448": 294, "449": 294, "problem_inform": 294, "451": 294, "278": 294, "tb": 294, "msg": 294, "277": 294, "279": 294, "280": 294, "281": 294, "msg_type": 294, "282": 294, "five": 289, "section": [289, 295, 296], "select": [289, 293, 301], "alter": 289, "special": [289, 293], "n_iter": 289, "178": [], "76": [], "267": [], "80": [], "13": [], "374": [], "65": [], "17": [], "146": [], "340": [], "27": [], "77": 294, "41": [], "na194f": [], "asna194": [], "193": [], "phe": [], "fri": [], "09": [], "51": [], "54": [], "3ned_repair_1": [], "qa114": [], "glna114": [], "113": [], "ser": [], "da3m": [], "aspa3": [], "kei": [289, 295], "get_best_solut": [289, 293, 295, 302, 303, 304], "41639": 289, "0629": [], "5983": [], "1298": [], "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslsdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayftntklditshnedytiveqyernegrhstggmdelyk": [], "appli": 290, "part": [291, 294], "compar": [291, 294], "qualiti": 291, "save": 291, "json": 291, "mlflow": 291, "weight": 291, "bias": 291, "abstract_observ": 291, "skeleton": 291, "simpleobserv": 291, "init": 291, "servic": 291, "wandb": 291, "adjac": 291, "identifi": 291, "uuid4": 291, "metadata": 291, "uuid": 291, "experiment_path": 291, "as_dict": 291, "recal": 291, "tolist": 291, "dump": 291, "curiou": 291, "rememb": [291, 296], "invent": 291, "wheel": 291, "tensorboard": 291, "fp": 291, "snippet": [291, 295], "scenario": 291, "z": 291, "were": [291, 294], "accordingli": 291, "migu": 291, "flea": [291, 296], "showcas": 291, "behind": 291, "saw": 291, "overwritten": 291, "deeper": [293, 295], "intro": 293, "treat": 293, "anyth": 293, "further": 293, "page": [293, 296], "randommut": [293, 295, 303, 304], "anaconda3": [289, 293, 294], "docs2": [289, 293, 294], "lib": [289, 293, 294], "python3": [289, 293, 294], "tqdm": [289, 293], "auto": [289, 293], "tqdmwarn": [289, 293], "iprogress": [289, 293], "jupyt": [289, 293], "ipywidget": [289, 293], "readthedoc": [289, 293], "io": [289, 293], "user_instal": [289, 293], "autonotebook": [289, 293], "notebook_tqdm": [289, 293], "16173153": 293, "dtype": 293, "u1": 293, "talk": 293, "babel": 294, "No": 294, "freez": 294, "grep": 294, "135": 294, "dynamically_instanti": 294, "102": 294, "92": 294, "exec": 294, "modulenotfounderror": 294, "critic": 294, "opt": 294, "homebrew": 294, "condabin": 294, "autodock_vina_1_1_2_mac_catalina_64bit": 294, "usr": 294, "cryptex": 294, "app": 294, "sbin": 294, "cryptexd": 294, "codex": 294, "bootstrap": 294, "appleintern": 294, "tex": 294, "texbin": 294, "cargo": 294, "using_poli": 294, "the_bas": 294, "python39": 294, "dynload": 294, "externalblackbox": 294, "num_evalu": 294, "dockstringwarn": 294, "although": 294, "perfectli": 294, "match": [294, 296], "platform": 294, "report": 294, "f_logp": 294, "x0_logp": 294, "y0_logp": 294, "logpblackbox": 294, "combin": 295, "optimizing_aloha": 295, "01_a_simple_example_of_optim": 295, "our_aloha": [295, 296], "past": 295, "haven": 295, "realli": 295, "Its": 295, "summari": 295, "less": 295, "conclud": 295, "takeawai": 295, "independ": 295, "why": 295, "registering_aloha": 296, "search": [296, 297], "aloof": 296, "syntax": 296, "ouralohablackbox": 296, "sum": 296, "axi": 296, "keepdim": 296, "get_max_sequence_length": 296, "x_0": 296, "alohablackbox": 296, "ascii_uppercas": 296, "ouralohaproblemfactori": 296, "interpret": 296, "poli_aloha": 296, "poli_aloha_problem": 296, "yourself": 296, "aloha_problem_factori": 296, "somewher": 296, "workhors": 296, "querying_aloha": 296, "emphas": 296, "amaz": 296, "x1": 296, "y1": 296, "subtl": 296, "cheminformat": 296, "mechan": 296, "solver": [296, 297, 298, 301, 302, 303, 304], "approxim": 297, "tild": 297, "boldsymbol": [297, 298], "surrog": 297, "render": 297, "smartli": 297, "balanc": 297, "exploit": 297, "grid": 297, "vanillabayesianoptim": 297, "f_acklei": [297, 301], "randn": [297, 301], "clip": [297, 301], "bo_solv": 297, "great": 297, "mostli": 297, "intent": 297, "adversari": 297, "gan": 297, "maintain": 298, "mu": 298, "sigma": 298, "member": 298, "introduct": 298, "blogpost": 298, "pycma": 298, "cma_e": 298, "toycontinuousproblemfactori": 298, "population_s": [298, 302], "initial_mean": 298, "initial_sigma": 298, "restrict": 301, "coordin": 301, "singletaskgp": 301, "type_of_lin": 301, "non": 302, "domin": 302, "mate": 302, "procedur": 302, "upon": 302, "alohaproblemfactori": [302, 303, 304], "multi_objective_black_box": 302, "multiobjectiveblackbox": 302, "discretensgaii": 302, "hyperparamet": 302, "max_iter": 302, "num_mut": 302, "f_aloha": 302, "togeth": 302, "popul": 302, "56267": 289, "846902": 289, "39441": 289, "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslqdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayntntklditshnedytiveqyernegrhstggmdelyk": 289}, "objects": {"": [[0, 0, 0, "-", "poli"]], "poli": [[1, 0, 0, "-", "core"], [88, 0, 0, "-", "objective"], [92, 0, 0, "-", "objective_factory"], [97, 0, 0, "-", "objective_repository"], [226, 0, 0, "-", "registered_objectives"], [227, 0, 0, "-", "tests"]], "poli.core": [[2, 0, 0, "-", "abstract_black_box"], [5, 0, 0, "-", "abstract_problem_factory"], [8, 0, 0, "-", "chemistry"], [11, 0, 0, "-", "exceptions"], [14, 0, 0, "-", "multi_objective_black_box"], [16, 0, 0, "-", "problem_setup_information"], [18, 0, 0, "-", "proteins"], [21, 0, 0, "-", "registry"], [30, 0, 0, "-", "util"]], "poli.core.abstract_black_box": [[3, 1, 1, "", "AbstractBlackBox"], [4, 1, 1, "", "NegativeBlackBox"]], "poli.core.abstract_black_box.AbstractBlackBox": [[3, 2, 1, "", "__call__"], [3, 2, 1, "", "__del__"], [3, 2, 1, "", "__enter__"], [3, 2, 1, "", "__exit__"], [3, 2, 1, "", "__init__"], [3, 2, 1, "", "__neg__"], [3, 2, 1, "", "_black_box"], [3, 3, 1, "", "batch_size"], [3, 3, 1, "", "info"], [3, 3, 1, "", "num_workers"], [3, 3, 1, "", "observer"], [3, 3, 1, "", "observer_info"], [3, 3, 1, "", "parallelize"], [3, 2, 1, "", "reset_evaluation_budget"], [3, 2, 1, "", "set_observer"], [3, 2, 1, "", "terminate"]], "poli.core.abstract_black_box.NegativeBlackBox": [[4, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory": [[6, 1, 1, "", "AbstractProblemFactory"], [7, 1, 1, "", "MetaProblemFactory"]], "poli.core.abstract_problem_factory.AbstractProblemFactory": [[6, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory.MetaProblemFactory": [[7, 2, 1, "", "__init__"]], "poli.core.chemistry": [[9, 0, 0, "-", "tdc_black_box"]], "poli.core.chemistry.tdc_black_box": [[10, 1, 1, "", "TDCBlackBox"]], "poli.core.chemistry.tdc_black_box.TDCBlackBox": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "from_smiles"], [10, 3, 1, "", "oracle"]], "poli.core.exceptions": [[12, 4, 1, "", "BudgetExhaustedException"], [13, 4, 1, "", "PoliException"]], "poli.core.multi_objective_black_box": [[15, 1, 1, "", "MultiObjectiveBlackBox"]], "poli.core.multi_objective_black_box.MultiObjectiveBlackBox": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "_black_box"], [15, 3, 1, "", "objective_functions"]], "poli.core.problem_setup_information": [[17, 1, 1, "", "ProblemSetupInformation"]], "poli.core.problem_setup_information.ProblemSetupInformation": [[17, 2, 1, "", "__init__"]], "poli.core.proteins": [[19, 0, 0, "-", "foldx_black_box"]], "poli.core.proteins.foldx_black_box": [[20, 1, 1, "", "FoldxBlackBox"]], "poli.core.proteins.foldx_black_box.FoldxBlackBox": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "create_working_directory"], [20, 3, 1, "", "experiment_id"], [20, 3, 1, "", "tmp_folder"], [20, 3, 1, "", "wildtype_amino_acids"], [20, 3, 1, "", "wildtype_pdb_paths"], [20, 3, 1, "", "wildtype_residue_strings"], [20, 3, 1, "", "wildtype_residues"]], "poli.core.registry": [[22, 5, 1, "", "delete_observer_run_script"], [23, 5, 1, "", "delete_problem"], [24, 5, 1, "", "get_problem_factories"], [25, 5, 1, "", "get_problems"], [26, 5, 1, "", "register_problem"], [27, 5, 1, "", "register_problem_from_repository"], [28, 5, 1, "", "set_observer"], [29, 5, 1, "", "set_observer_run_script"]], "poli.core.util": [[31, 0, 0, "-", "abstract_observer"], [33, 0, 0, "-", "alignment"], [35, 0, 0, "-", "batch"], [38, 0, 0, "-", "chemistry"], [45, 0, 0, "-", "external_observer"], [47, 0, 0, "-", "files"], [53, 0, 0, "-", "inter_process_communication"], [57, 0, 0, "-", "objective_management"], [61, 0, 0, "-", "observer_wrapper"], [63, 0, 0, "-", "proteins"], [84, 0, 0, "-", "seeding"]], "poli.core.util.abstract_observer": [[32, 1, 1, "", "AbstractObserver"]], "poli.core.util.abstract_observer.AbstractObserver": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "finish"], [32, 2, 1, "", "observe"]], "poli.core.util.alignment": [[34, 0, 0, "-", "is_aligned"]], "poli.core.util.batch": [[36, 0, 0, "-", "batch_input"]], "poli.core.util.batch.batch_input": [[37, 5, 1, "", "batched"]], "poli.core.util.chemistry": [[39, 0, 0, "-", "string_to_molecule"]], "poli.core.util.chemistry.string_to_molecule": [[40, 5, 1, "", "selfies_to_molecules"], [41, 5, 1, "", "smiles_to_molecules"], [42, 5, 1, "", "strings_to_molecules"], [43, 5, 1, "", "translate_selfies_to_smiles"], [44, 5, 1, "", "translate_smiles_to_selfies"]], "poli.core.util.external_observer": [[46, 1, 1, "", "ExternalObserver"]], "poli.core.util.external_observer.ExternalObserver": [[46, 2, 1, "", "__getattr__"], [46, 2, 1, "", "__init__"], [46, 2, 1, "", "finish"], [46, 2, 1, "", "initialize_observer"], [46, 2, 1, "", "observe"]], "poli.core.util.files": [[48, 0, 0, "-", "download_files_from_github"], [51, 0, 0, "-", "integrity"]], "poli.core.util.files.download_files_from_github": [[49, 5, 1, "", "download_file_from_github_repository"], [50, 5, 1, "", "get_sha_for_tag"]], "poli.core.util.files.integrity": [[52, 5, 1, "", "compute_md5_from_filepath"]], "poli.core.util.inter_process_communication": [[54, 0, 0, "-", "process_wrapper"]], "poli.core.util.inter_process_communication.process_wrapper": [[55, 1, 1, "", "ProcessWrapper"], [56, 5, 1, "", "get_connection"]], "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper": [[55, 2, 1, "", "__init__"]], "poli.core.util.objective_management": [[58, 0, 0, "-", "make_run_script"]], "poli.core.util.objective_management.make_run_script": [[59, 5, 1, "", "make_observer_script"], [60, 5, 1, "", "make_run_script"]], "poli.core.util.observer_wrapper": [[62, 5, 1, "", "start_observer_process"]], "poli.core.util.proteins": [[64, 0, 0, "-", "defaults"], [65, 0, 0, "-", "foldx"], [67, 0, 0, "-", "mutations"], [71, 0, 0, "-", "pdb_parsing"], [75, 0, 0, "-", "rasp"]], "poli.core.util.proteins.foldx": [[66, 1, 1, "", "FoldxInterface"]], "poli.core.util.proteins.foldx.FoldxInterface": [[66, 2, 1, "", "__init__"], [66, 2, 1, "", "_compute_sasa"], [66, 2, 1, "", "_read_energy"], [66, 2, 1, "", "_repair_if_necessary_and_provide_path"], [66, 2, 1, "", "_simulate_mutations"], [66, 2, 1, "", "compute_sasa"], [66, 2, 1, "", "compute_stability"], [66, 2, 1, "", "compute_stability_and_sasa"], [66, 2, 1, "", "copy_foldx_files"], [66, 2, 1, "", "repair"], [66, 3, 1, "", "verbose"], [66, 3, 1, "", "working_dir"], [66, 2, 1, "", "write_mutations_to_file"]], "poli.core.util.proteins.mutations": [[68, 5, 1, "", "edits_between_strings"], [69, 5, 1, "", "find_closest_wildtype_pdb_file_to_mutant"], [70, 5, 1, "", "mutations_from_wildtype_residues_and_mutant"]], "poli.core.util.proteins.pdb_parsing": [[72, 5, 1, "", "parse_pdb_as_residue_strings"], [73, 5, 1, "", "parse_pdb_as_residues"], [74, 5, 1, "", "parse_pdb_as_structure"]], "poli.core.util.proteins.rasp": [[76, 0, 0, "-", "inner_rasp"], [82, 6, 1, "", "load_models"], [83, 6, 1, "", "rasp_interface"]], "poli.core.util.proteins.rasp.inner_rasp": [[77, 6, 1, "", "PrismData"], [78, 6, 1, "", "cavity_model"], [79, 6, 1, "", "helpers"], [80, 6, 1, "", "run_pipeline"], [81, 6, 1, "", "visualization"]], "poli.core.util.seeding": [[85, 0, 0, "-", "seeding"]], "poli.core.util.seeding.seeding": [[86, 5, 1, "", "seed_numpy"], [87, 5, 1, "", "seed_python"]], "poli.objective": [[89, 5, 1, "", "dynamically_instantiate"], [90, 5, 1, "", "parse_factory_kwargs"], [91, 5, 1, "", "run"]], "poli.objective_factory": [[93, 1, 1, "", "ExternalBlackBox"], [94, 5, 1, "", "create"], [95, 5, 1, "", "load_config"], [96, 5, 1, "", "start"]], "poli.objective_factory.ExternalBlackBox": [[93, 2, 1, "", "__init__"]], "poli.objective_repository": [[98, 0, 0, "-", "aloha"], [102, 0, 0, "-", "dockstring"], [106, 0, 0, "-", "drd3_docking"], [110, 0, 0, "-", "foldx_rfp_lambo"], [116, 0, 0, "-", "foldx_sasa"], [121, 0, 0, "-", "foldx_stability"], [126, 0, 0, "-", "foldx_stability_and_sasa"], [130, 0, 0, "-", "gfp_cbas"], [162, 0, 0, "-", "gfp_select"], [166, 0, 0, "-", "penalized_logp_lambo"], [170, 0, 0, "-", "rasp"], [172, 0, 0, "-", "rdkit_logp"], [176, 0, 0, "-", "rdkit_qed"], [180, 0, 0, "-", "rfp_foldx_stability_and_sasa"], [182, 0, 0, "-", "sa_tdc"], [186, 0, 0, "-", "super_mario_bros"], [199, 0, 0, "-", "toy_continuous_problem"], [222, 0, 0, "-", "white_noise"]], "poli.objective_repository.aloha": [[99, 0, 0, "-", "register"]], "poli.objective_repository.aloha.register": [[100, 1, 1, "", "AlohaBlackBox"], [101, 1, 1, "", "AlohaProblemFactory"]], "poli.objective_repository.aloha.register.AlohaBlackBox": [[100, 2, 1, "", "__init__"], [100, 2, 1, "", "_black_box"], [100, 3, 1, "", "alphabet"]], "poli.objective_repository.aloha.register.AlohaProblemFactory": [[101, 2, 1, "", "__init__"], [101, 2, 1, "", "create"], [101, 2, 1, "", "get_setup_information"]], "poli.objective_repository.dockstring": [[103, 0, 0, "-", "register"]], "poli.objective_repository.dockstring.register": [[104, 1, 1, "", "DockstringBlackBox"], [105, 1, 1, "", "DockstringProblemFactory"]], "poli.objective_repository.dockstring.register.DockstringBlackBox": [[104, 2, 1, "", "__init__"], [104, 2, 1, "", "_black_box"], [104, 3, 1, "", "alphabet"]], "poli.objective_repository.dockstring.register.DockstringProblemFactory": [[105, 2, 1, "", "__init__"], [105, 2, 1, "", "create"], [105, 2, 1, "", "get_setup_information"]], "poli.objective_repository.drd3_docking": [[107, 0, 0, "-", "register"]], "poli.objective_repository.drd3_docking.register": [[108, 1, 1, "", "DRD3BlackBox"], [109, 1, 1, "", "DRD3ProblemFactory"]], "poli.objective_repository.drd3_docking.register.DRD3BlackBox": [[108, 2, 1, "id0", "__init__"], [108, 3, 1, "", "oracle_name"]], "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory": [[109, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo": [[111, 0, 0, "-", "register"]], "poli.objective_repository.foldx_rfp_lambo.register": [[112, 3, 1, "", "Config"], [113, 1, 1, "", "RFPWrapper"], [114, 1, 1, "", "RFPWrapperFactory"], [115, 5, 1, "", "get_config"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper": [[113, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory": [[114, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa": [[118, 0, 0, "-", "register"]], "poli.objective_repository.foldx_sasa.register": [[119, 1, 1, "", "FoldXSASABlackBox"], [120, 1, 1, "", "FoldXSASAProblemFactory"]], "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox": [[119, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory": [[120, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability": [[123, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability.register": [[124, 1, 1, "", "FoldXStabilityBlackBox"], [125, 1, 1, "", "FoldXStabilityProblemFactory"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox": [[124, 2, 1, "", "__init__"], [124, 2, 1, "", "_black_box"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory": [[125, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa": [[127, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability_and_sasa.register": [[128, 1, 1, "", "FoldXStabilityAndSASABlackBox"], [129, 1, 1, "", "FoldXStabilityAndSASAProblemFactory"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox": [[128, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory": [[129, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas": [[131, 0, 0, "-", "abstract_vae_wrapper"], [133, 0, 0, "-", "cbas_alphabet_preprocessing"], [148, 0, 0, "-", "cbas_wrapper"], [152, 0, 0, "-", "gfp_gp"], [153, 0, 0, "-", "make_vae"], [159, 0, 0, "-", "register"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper": [[132, 1, 1, "", "AbstractVAEWrapper"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper": [[132, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing": [[134, 5, 1, "", "convert_aas_to_idx_array"], [135, 5, 1, "", "convert_idx_array_to_aas"], [136, 5, 1, "", "convert_mutations_to_sequence"], [137, 5, 1, "", "get_argmax"], [138, 5, 1, "", "get_balaji_predictions"], [139, 5, 1, "", "get_experimental_X_y"], [140, 5, 1, "", "get_gfp_X_y_aa"], [141, 5, 1, "", "get_gfp_base_seq"], [142, 5, 1, "", "get_samples"], [143, 5, 1, "", "one_hot_encode_aa"], [144, 5, 1, "", "one_hot_encode_aa_array"], [145, 5, 1, "", "one_hot_encode_dna"], [146, 5, 1, "", "partition_data"], [147, 5, 1, "", "read_gfp_data"]], "poli.objective_repository.gfp_cbas.cbas_wrapper": [[149, 1, 1, "", "CBASVAEWrapper"], [150, 1, 1, "", "ConvertedTorchVaeDecoder"], [151, 1, 1, "", "ConvertedTorchVaeEncoder"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper": [[149, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder": [[150, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder": [[151, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae": [[154, 1, 1, "", "BaseVAE"], [155, 1, 1, "", "SimpleVAE"], [156, 5, 1, "", "build_vae"], [157, 5, 1, "", "identity_loss"], [158, 5, 1, "", "summed_categorical_crossentropy"]], "poli.objective_repository.gfp_cbas.make_vae.BaseVAE": [[154, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE": [[155, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register": [[160, 1, 1, "", "GFPCBasBlackBox"], [161, 1, 1, "", "GFPCBasProblemFactory"]], "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox": [[160, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory": [[161, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select": [[163, 0, 0, "-", "register"]], "poli.objective_repository.gfp_select.register": [[164, 1, 1, "", "GFPBlackBox"], [165, 1, 1, "", "GFPSelectionProblemFactory"]], "poli.objective_repository.gfp_select.register.GFPBlackBox": [[164, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory": [[165, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo": [[167, 0, 0, "-", "register"]], "poli.objective_repository.penalized_logp_lambo.register": [[168, 1, 1, "", "PenalizedLogPLamboBlackBox"], [169, 1, 1, "", "PenalizedLogPLamboProblemFactory"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox": [[168, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory": [[169, 2, 1, "", "__init__"]], "poli.objective_repository.rasp": [[171, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp": [[173, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp.register": [[174, 1, 1, "", "LogPBlackBox"], [175, 1, 1, "", "LogPProblemFactory"]], "poli.objective_repository.rdkit_logp.register.LogPBlackBox": [[174, 2, 1, "", "__init__"], [174, 2, 1, "", "_black_box"], [174, 3, 1, "", "from_selfies"], [174, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_logp.register.LogPProblemFactory": [[175, 2, 1, "", "__init__"]], "poli.objective_repository.rdkit_qed": [[177, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_qed.register": [[178, 1, 1, "", "QEDBlackBox"], [179, 1, 1, "", "QEDProblemFactory"]], "poli.objective_repository.rdkit_qed.register.QEDBlackBox": [[178, 2, 1, "", "__init__"], [178, 2, 1, "", "_black_box"], [178, 3, 1, "", "from_selfies"], [178, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_qed.register.QEDProblemFactory": [[179, 2, 1, "", "__init__"], [179, 2, 1, "", "create"], [179, 2, 1, "", "get_setup_information"]], "poli.objective_repository.rfp_foldx_stability_and_sasa": [[181, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc": [[183, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc.register": [[184, 1, 1, "", "SABlackBox"], [185, 1, 1, "", "SAProblemFactory"]], "poli.objective_repository.sa_tdc.register.SABlackBox": [[184, 2, 1, "", "__init__"]], "poli.objective_repository.sa_tdc.register.SAProblemFactory": [[185, 2, 1, "", "__init__"], [185, 2, 1, "", "create"], [185, 2, 1, "", "get_setup_information"]], "poli.objective_repository.super_mario_bros": [[187, 0, 0, "-", "level_utils"], [196, 0, 0, "-", "model"]], "poli.objective_repository.super_mario_bros.level_utils": [[188, 5, 1, "", "add_padding_to_level"], [189, 5, 1, "", "clean_level"], [190, 5, 1, "", "level_to_array"], [191, 5, 1, "", "level_to_list"], [192, 5, 1, "", "levels_to_onehot"], [193, 5, 1, "", "onehot_to_levels"], [194, 5, 1, "", "tensor_to_sim_level"], [195, 5, 1, "", "vectorized"]], "poli.objective_repository.super_mario_bros.model": [[197, 1, 1, "", "VAEMario"], [198, 5, 1, "", "load_example_model"]], "poli.objective_repository.super_mario_bros.model.VAEMario": [[197, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem": [[200, 0, 0, "-", "definitions"], [217, 0, 0, "-", "register"], [220, 0, 0, "-", "toy_continuous_problem"]], "poli.objective_repository.toy_continuous_problem.definitions": [[201, 5, 1, "", "ackley_function_01"], [202, 5, 1, "", "alpine_01"], [203, 5, 1, "", "alpine_02"], [204, 5, 1, "", "bent_cigar"], [205, 5, 1, "", "brown"], [206, 5, 1, "", "camelback_2d"], [207, 5, 1, "", "chung_reynolds"], [208, 5, 1, "", "cosine_mixture"], [209, 5, 1, "", "cross_in_tray"], [210, 5, 1, "", "deb_01"], [211, 5, 1, "", "deb_02"], [212, 5, 1, "", "deflected_corrugated_spring"], [213, 5, 1, "", "easom"], [214, 5, 1, "", "egg_holder"], [215, 5, 1, "", "shifted_sphere"], [216, 5, 1, "", "styblinski_tang"]], "poli.objective_repository.toy_continuous_problem.register": [[218, 1, 1, "", "ToyContinuousBlackBox"], [219, 1, 1, "", "ToyContinuousProblemFactory"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox": [[218, 2, 1, "", "__init__"], [218, 2, 1, "", "_black_box"], [218, 3, 1, "", "alphabet"], [218, 3, 1, "", "bounds"], [218, 3, 1, "", "embed_in"], [218, 3, 1, "", "function"], [218, 3, 1, "", "function_name"], [218, 3, 1, "", "n_dimensions"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory": [[219, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem": [[221, 1, 1, "", "ToyContinuousProblem"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem": [[221, 2, 1, "", "__init__"]], "poli.objective_repository.white_noise": [[223, 0, 0, "-", "register"]], "poli.objective_repository.white_noise.register": [[224, 1, 1, "", "WhiteNoiseBlackBox"], [225, 1, 1, "", "WhiteNoiseProblemFactory"]], "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox": [[224, 2, 1, "", "__init__"], [224, 2, 1, "", "_black_box"]], "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory": [[225, 2, 1, "", "__init__"]], "poli.tests": [[228, 0, 0, "-", "docs_examples"], [236, 0, 0, "-", "registry"], [255, 0, 0, "-", "test_minimal_working_example"], [257, 0, 0, "-", "test_seeding"], [259, 0, 0, "-", "util"]], "poli.tests.docs_examples": [[229, 0, 0, "-", "test_objective_functions"]], "poli.tests.docs_examples.test_objective_functions": [[230, 5, 1, "", "test_aloha_example"], [231, 5, 1, "", "test_logp_example"], [233, 5, 1, "", "test_qed_example"], [235, 5, 1, "", "test_white_noise_example"]], "poli.tests.registry": [[237, 0, 0, "-", "basic_objectives"], [242, 0, 0, "-", "chemistry"], [244, 0, 0, "-", "proteins"], [248, 0, 0, "-", "test_basic_loop_without_create"], [249, 0, 0, "-", "test_force_isolation"], [251, 0, 0, "-", "toy_continuous_problems"]], "poli.tests.registry.basic_objectives": [[238, 0, 0, "-", "test_basic_objectives"]], "poli.tests.registry.basic_objectives.test_basic_objectives": [[239, 5, 1, "", "test_registering_aloha"], [240, 5, 1, "", "test_registering_white_noise"]], "poli.tests.registry.toy_continuous_problems": [[252, 0, 0, "-", "test_embedding_problems_into_higher_dims"]], "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims": [[253, 5, 1, "", "test_embed_camelback_into_high_dimensions"]], "poli.tests.test_minimal_working_example": [[256, 5, 1, "", "test_minimal_working_example"]], "poli.tests.test_seeding": [[258, 5, 1, "", "test_seeding_in_white_noise"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"poli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, 268, 292, 293, 296], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 291], "abstract_black_box": [2, 3, 4], "abstractblackbox": 3, "negativeblackbox": 4, "abstract_problem_factori": [5, 6, 7], "abstractproblemfactori": 6, "metaproblemfactori": 7, "chemistri": [8, 9, 10, 38, 39, 40, 41, 42, 43, 44, 242, 243], "tdc_black_box": [9, 10], "tdcblackbox": 10, "except": [11, 12, 13], "budgetexhaustedexcept": 12, "poliexcept": 13, "multi_objective_black_box": [14, 15], "multiobjectiveblackbox": 15, "problem_setup_inform": [16, 17], "problemsetupinform": 17, "protein": [18, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 244, 245, 246, 247, 268, 270, 272, 276, 277, 278, 289], "foldx_black_box": [19, 20], "foldxblackbox": 20, "registri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 296], "delete_observer_run_script": 22, "delete_problem": 23, "get_problem_factori": 24, "get_problem": 25, "register_problem": 26, "register_problem_from_repositori": 27, "set_observ": 28, "set_observer_run_script": 29, "util": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 259, 260, 261], "abstract_observ": [31, 32], "abstractobserv": 32, "align": [33, 34], "is_align": 34, "batch": [35, 36, 37, 290], "batch_input": [36, 37], "string_to_molecul": [39, 40, 41, 42, 43, 44], "selfies_to_molecul": 40, "smiles_to_molecul": 41, "strings_to_molecul": 42, "translate_selfies_to_smil": 43, "translate_smiles_to_selfi": 44, "external_observ": [45, 46], "externalobserv": 46, "file": [47, 48, 49, 50, 51, 52, 270, 275, 277, 278], "download_files_from_github": [48, 49, 50], "download_file_from_github_repositori": 49, "get_sha_for_tag": 50, "integr": [51, 52], "compute_md5_from_filepath": 52, "inter_process_commun": [53, 54, 55, 56], "process_wrapp": [54, 55, 56], "processwrapp": 55, "get_connect": 56, "objective_manag": [57, 58, 59, 60], "make_run_script": [58, 59, 60], "make_observer_script": 59, "observer_wrapp": [61, 62], "start_observer_process": 62, "default": 64, "foldx": [65, 66, 269, 276, 277, 278], "foldxinterfac": 66, "mutat": [67, 68, 69, 70, 270, 289, 303], "edits_between_str": 68, "find_closest_wildtype_pdb_file_to_mut": 69, "mutations_from_wildtype_residues_and_mut": 70, "pdb_pars": [71, 72, 73, 74], "parse_pdb_as_residue_str": 72, "parse_pdb_as_residu": 73, "parse_pdb_as_structur": 74, "rasp": [75, 76, 77, 78, 79, 80, 81, 82, 83, 170, 171], "inner_rasp": [76, 77, 78, 79, 80, 81], "prismdata": 77, "cavity_model": 78, "helper": 79, "run_pipelin": 80, "visual": 81, "load_model": 82, "rasp_interfac": 83, "seed": [84, 85, 86, 87], "seed_numpi": 86, "seed_python": 87, "object": [88, 89, 90, 91, 268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "dynamically_instanti": 89, "parse_factory_kwarg": 90, "run": [91, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 288, 294, 297, 298, 301, 302, 303, 304], "objective_factori": [92, 93, 94, 95, 96], "externalblackbox": 93, "creat": [94, 106, 275, 286, 293, 296], "load_config": 95, "start": [96, 267, 268], "objective_repositori": [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "aloha": [98, 99, 100, 101, 273, 291, 295], "regist": [99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 123, 124, 125, 127, 128, 129, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 217, 218, 219, 223, 224, 225, 265, 288, 289, 295, 296], "alohablackbox": 100, "alohaproblemfactori": 101, "dockstr": [102, 103, 104, 105, 274], "dockstringblackbox": 104, "dockstringproblemfactori": 105, "drd3_dock": [106, 107, 108, 109], "prerequisit": [106, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 295], "instal": [106, 265, 267, 269, 275, 276], "autodock": [106, 275], "vina": [106, 275], "adfr": [106, 275], "suit": [106, 275], "poli__lambo": [106, 275], "environ": [106, 265, 275, 276, 279, 296], "drd3blackbox": 108, "drd3problemfactori": 109, "foldx_rfp_lambo": [110, 111, 112, 113, 114, 115], "config": 112, "rfpwrapper": 113, "rfpwrapperfactori": 114, "get_config": 115, "foldx_sasa": [116, 117, 118, 119, 120], "foldx_util": [117, 122], "foldxsasablackbox": 119, "foldxsasaproblemfactori": 120, "foldx_stabl": [121, 122, 123, 124, 125], "foldxstabilityblackbox": 124, "foldxstabilityproblemfactori": 125, "foldx_stability_and_sasa": [126, 127, 128, 129], "foldxstabilityandsasablackbox": 128, "foldxstabilityandsasaproblemfactori": 129, "gfp_cba": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161], "abstract_vae_wrapp": [131, 132], "abstractvaewrapp": 132, "cbas_alphabet_preprocess": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "convert_aas_to_idx_arrai": 134, "convert_idx_array_to_aa": 135, "convert_mutations_to_sequ": 136, "get_argmax": 137, "get_balaji_predict": 138, "get_experimental_x_i": 139, "get_gfp_x_y_aa": 140, "get_gfp_base_seq": 141, "get_sampl": 142, "one_hot_encode_aa": 143, "one_hot_encode_aa_arrai": 144, "one_hot_encode_dna": 145, "partition_data": 146, "read_gfp_data": 147, "cbas_wrapp": [148, 149, 150, 151], "cbasvaewrapp": 149, "convertedtorchvaedecod": 150, "convertedtorchvaeencod": 151, "gfp_gp": 152, "make_va": [153, 154, 155, 156, 157, 158], "baseva": 154, "simpleva": 155, "build_va": 156, "identity_loss": 157, "summed_categorical_crossentropi": 158, "gfpcbasblackbox": 160, "gfpcbasproblemfactori": 161, "gfp_select": [162, 163, 164, 165], "gfpblackbox": 164, "gfpselectionproblemfactori": 165, "penalized_logp_lambo": [166, 167, 168, 169], "penalizedlogplamboblackbox": 168, "penalizedlogplamboproblemfactori": 169, "rdkit_logp": [172, 173, 174, 175], "logpblackbox": 174, "logpproblemfactori": 175, "rdkit_q": [176, 177, 178, 179], "qedblackbox": 178, "qedproblemfactori": 179, "rfp_foldx_stability_and_sasa": [180, 181], "sa_tdc": [182, 183, 184, 185], "sablackbox": 184, "saproblemfactori": 185, "super_mario_bro": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "level_util": [187, 188, 189, 190, 191, 192, 193, 194, 195], "add_padding_to_level": 188, "clean_level": 189, "level_to_arrai": 190, "level_to_list": 191, "levels_to_onehot": 192, "onehot_to_level": 193, "tensor_to_sim_level": 194, "vector": 195, "model": [196, 197, 198], "vaemario": 197, "load_example_model": 198, "toy_continuous_problem": [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 251, 252, 253, 254], "definit": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "ackley_function_01": 201, "alpine_01": 202, "alpine_02": 203, "bent_cigar": 204, "brown": 205, "camelback_2d": 206, "chung_reynold": 207, "cosine_mixtur": 208, "cross_in_trai": 209, "deb_01": 210, "deb_02": 211, "deflected_corrugated_spr": 212, "easom": 213, "egg_hold": 214, "shifted_spher": 215, "styblinski_tang": 216, "toycontinuousblackbox": 218, "toycontinuousproblemfactori": 219, "toycontinuousproblem": 221, "white_nois": [222, 223, 224, 225], "whitenoiseblackbox": 224, "whitenoiseproblemfactori": 225, "registered_object": 226, "test": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 265, 267], "docs_exampl": [228, 229, 230, 231, 232, 233, 234, 235], "test_objective_funct": [229, 230, 231, 232, 233, 234, 235], "test_aloha_exampl": 230, "test_logp_exampl": 231, "test_logp_example_using_str": 232, "test_qed_exampl": 233, "test_qed_example_using_str": 234, "test_white_noise_exampl": 235, "basic_object": [237, 238, 239, 240, 241], "test_basic_object": [238, 239, 240], "test_registering_aloha": 239, "test_registering_white_nois": 240, "test_budget_exhaust": 241, "test_chemistry_object": 243, "test_foldx": 245, "test_foldx_rfp_lambo": 246, "test_rasp": 247, "test_basic_loop_without_cr": 248, "test_force_isol": 249, "test_passing_array_of_str": 250, "test_embedding_problems_into_higher_dim": [252, 253], "test_embed_camelback_into_high_dimens": 253, "test_instancing_of_toy_continuous_problem": 254, "test_minimal_working_exampl": [255, 256], "test_seed": [257, 258], "test_seeding_in_white_nois": 258, "test_foldx_interfac": 260, "test_protein_util": 261, "api": 263, "document": 263, "refer": [264, 304], "ad": [265, 266], "new": [265, 266], "problem": [265, 266, 268, 272, 286, 289, 290, 295, 296], "repositori": 265, "The": [265, 291, 293], "structur": 265, "A": 265, "gener": 265, "py": 265, "yml": [265, 275], "why": [265, 296], "conda": [265, 267, 296], "your": [265, 267, 293, 296], "option": 265, "make": [265, 275], "avail": 265, "depend": [265, 294, 296], "ar": [265, 270], "met": 265, "submit": [265, 266], "pull": [265, 266], "request": [265, 266], "optim": [266, 268, 283, 289, 293, 295, 297, 300, 301, 304], "baselin": [266, 267], "an": [266, 290, 291, 295, 296], "abstract": [266, 290, 291], "solver": [266, 268, 289, 290, 293, 295], "exampl": [266, 290, 291, 296], "randommut": [266, 289, 290], "get": [267, 268], "first": 267, "script": 267, "us": [267, 268, 275, 276, 277, 278, 279, 282, 289, 293], "librari": 268, "discret": [268, 296, 302], "function": [268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "black": [268, 294, 296], "box": [268, 294, 296], "toi": [268, 272, 286], "small": [268, 272], "molecul": [268, 272], "algorithm": [268, 299, 304], "cite": 268, "other": [268, 270, 272, 279], "relev": 268, "work": [268, 292], "contribut": 268, "comput": 270, "energi": 270, "singl": 270, "python": [270, 276, 279, 296], "set": [270, 275], "up": 270, "folder": [270, 275], "download": [270, 275], "pdb": 270, "repair": [270, 277, 278], "what": [270, 290, 293], "pars": 270, "wildtyp": 270, "defin": [270, 289, 290, 291, 296], "s": [270, 296], "sasa": [270, 276], "score": 270, "conclus": [270, 291, 293, 294, 295, 296], "rapid": 271, "stabil": [271, 276, 278, 289], "predict": 271, "how": [271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 292, 297, 298, 301, 302, 303, 304], "warn": 271, "further": 271, "read": [271, 294], "all": [272, 275, 291], "about": [273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 290, 297, 298, 301, 302, 303, 304], "drd3": 275, "dock": 275, "tdc": [275, 282], "add": [275, 296], "binari": 275, "path": [275, 296], "prepare_receptor": 275, "from": 275, "sure": 275, "you": [275, 277, 278, 294], "re": 275, "rfp": 276, "lambo": [276, 279], "we": [276, 277, 278], "can": [276, 277, 278], "automat": 276, "solvent": 277, "access": [277, 282], "penal": 279, "logp": [279, 280], "keyword": 279, "argument": 279, "log": [280, 291], "solubl": 280, "quantit": 281, "estim": 281, "druglik": 281, "qed": 281, "synthet": 282, "jump": 283, "super": 283, "mario": 283, "bro": 283, "therapeut": 284, "data": 284, "common": 284, "oracl": 284, "name": 285, "see": [285, 297, 302], "also": 285, "continu": 286, "low": 286, "intrins": 286, "dimension": 286, "white": 287, "nois": 287, "observ": [288, 291], "isol": [288, 294], "process": 288, "random": [289, 303], "mroug": 289, "check": 289, "result": 289, "poli_baselin": 290, "candid": 290, "want": 291, "more": [291, 294, 296, 297, 302], "complex": 291, "instanc": [291, 295], "simpl": 291, "initi": 291, "put": 291, "togeth": 291, "coupl": 291, "queri": 291, "dive": 292, "deeper": 292, "doe": 292, "under": 292, "hood": 292, "content": [292, 293], "usual": 293, "develop": 293, "loop": 293, "identifi": 293, "own": 293, "when": 294, "have": 294, "right": 294, "Is": 295, "factori": 296, "entir": 296, "need": 296, "where": 296, "thi": 296, "call": 296, "bayesian": [297, 300, 301], "cma": 298, "es": 298, "graph": 299, "genet": 299, "latent": 300, "space": 300, "line": 301, "nsga": 302, "2": 302, "templat": 304}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["_autosummary/poli", "_autosummary/poli.core", "_autosummary/poli.core.abstract_black_box", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox", "_autosummary/poli.core.abstract_problem_factory", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory", "_autosummary/poli.core.chemistry", "_autosummary/poli.core.chemistry.tdc_black_box", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox", "_autosummary/poli.core.exceptions", "_autosummary/poli.core.exceptions.BudgetExhaustedException", "_autosummary/poli.core.exceptions.PoliException", "_autosummary/poli.core.multi_objective_black_box", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "_autosummary/poli.core.problem_setup_information", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation", "_autosummary/poli.core.proteins", "_autosummary/poli.core.proteins.foldx_black_box", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox", "_autosummary/poli.core.registry", "_autosummary/poli.core.registry.delete_observer_run_script", "_autosummary/poli.core.registry.delete_problem", "_autosummary/poli.core.registry.get_problem_factories", "_autosummary/poli.core.registry.get_problems", "_autosummary/poli.core.registry.register_problem", "_autosummary/poli.core.registry.register_problem_from_repository", "_autosummary/poli.core.registry.set_observer", "_autosummary/poli.core.registry.set_observer_run_script", "_autosummary/poli.core.util", "_autosummary/poli.core.util.abstract_observer", "_autosummary/poli.core.util.abstract_observer.AbstractObserver", "_autosummary/poli.core.util.alignment", "_autosummary/poli.core.util.alignment.is_aligned", "_autosummary/poli.core.util.batch", "_autosummary/poli.core.util.batch.batch_input", "_autosummary/poli.core.util.batch.batch_input.batched", "_autosummary/poli.core.util.chemistry", "_autosummary/poli.core.util.chemistry.string_to_molecule", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "_autosummary/poli.core.util.external_observer", "_autosummary/poli.core.util.external_observer.ExternalObserver", "_autosummary/poli.core.util.files", "_autosummary/poli.core.util.files.download_files_from_github", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag", "_autosummary/poli.core.util.files.integrity", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath", "_autosummary/poli.core.util.inter_process_communication", "_autosummary/poli.core.util.inter_process_communication.process_wrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection", "_autosummary/poli.core.util.objective_management", "_autosummary/poli.core.util.objective_management.make_run_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script", "_autosummary/poli.core.util.observer_wrapper", "_autosummary/poli.core.util.observer_wrapper.start_observer_process", "_autosummary/poli.core.util.proteins", "_autosummary/poli.core.util.proteins.defaults", "_autosummary/poli.core.util.proteins.foldx", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface", "_autosummary/poli.core.util.proteins.mutations", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "_autosummary/poli.core.util.proteins.pdb_parsing", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "_autosummary/poli.core.util.proteins.rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization", "_autosummary/poli.core.util.proteins.rasp.load_models", "_autosummary/poli.core.util.proteins.rasp.rasp_interface", "_autosummary/poli.core.util.seeding", "_autosummary/poli.core.util.seeding.seeding", "_autosummary/poli.core.util.seeding.seeding.seed_numpy", "_autosummary/poli.core.util.seeding.seeding.seed_python", "_autosummary/poli.objective", "_autosummary/poli.objective.dynamically_instantiate", "_autosummary/poli.objective.parse_factory_kwargs", "_autosummary/poli.objective.run", "_autosummary/poli.objective_factory", "_autosummary/poli.objective_factory.ExternalBlackBox", "_autosummary/poli.objective_factory.create", "_autosummary/poli.objective_factory.load_config", "_autosummary/poli.objective_factory.start", "_autosummary/poli.objective_repository", "_autosummary/poli.objective_repository.aloha", "_autosummary/poli.objective_repository.aloha.register", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory", "_autosummary/poli.objective_repository.dockstring", "_autosummary/poli.objective_repository.dockstring.register", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory", "_autosummary/poli.objective_repository.drd3_docking", "_autosummary/poli.objective_repository.drd3_docking.register", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config", "_autosummary/poli.objective_repository.foldx_sasa", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils", "_autosummary/poli.objective_repository.foldx_sasa.register", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "_autosummary/poli.objective_repository.foldx_stability", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils", "_autosummary/poli.objective_repository.foldx_stability.register", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "_autosummary/poli.objective_repository.foldx_stability_and_sasa", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "_autosummary/poli.objective_repository.gfp_cbas", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp", "_autosummary/poli.objective_repository.gfp_cbas.make_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "_autosummary/poli.objective_repository.gfp_cbas.register", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "_autosummary/poli.objective_repository.gfp_select", "_autosummary/poli.objective_repository.gfp_select.register", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "_autosummary/poli.objective_repository.penalized_logp_lambo", "_autosummary/poli.objective_repository.penalized_logp_lambo.register", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "_autosummary/poli.objective_repository.rasp", "_autosummary/poli.objective_repository.rasp.register", "_autosummary/poli.objective_repository.rdkit_logp", "_autosummary/poli.objective_repository.rdkit_logp.register", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "_autosummary/poli.objective_repository.rdkit_qed", "_autosummary/poli.objective_repository.rdkit_qed.register", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register", "_autosummary/poli.objective_repository.sa_tdc", "_autosummary/poli.objective_repository.sa_tdc.register", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory", "_autosummary/poli.objective_repository.super_mario_bros", "_autosummary/poli.objective_repository.super_mario_bros.level_utils", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized", "_autosummary/poli.objective_repository.super_mario_bros.model", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model", "_autosummary/poli.objective_repository.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "_autosummary/poli.objective_repository.toy_continuous_problem.register", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "_autosummary/poli.objective_repository.white_noise", "_autosummary/poli.objective_repository.white_noise.register", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "_autosummary/poli.registered_objectives", "_autosummary/poli.tests", "_autosummary/poli.tests.docs_examples", "_autosummary/poli.tests.docs_examples.test_objective_functions", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "_autosummary/poli.tests.registry", "_autosummary/poli.tests.registry.basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion", "_autosummary/poli.tests.registry.chemistry", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives", "_autosummary/poli.tests.registry.proteins", "_autosummary/poli.tests.registry.proteins.test_foldx", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo", "_autosummary/poli.tests.registry.proteins.test_rasp", "_autosummary/poli.tests.registry.test_basic_loop_without_create", "_autosummary/poli.tests.registry.test_force_isolation", "_autosummary/poli.tests.registry.test_passing_array_of_strings", "_autosummary/poli.tests.registry.toy_continuous_problems", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "_autosummary/poli.tests.test_minimal_working_example", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example", "_autosummary/poli.tests.test_seeding", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise", "_autosummary/poli.tests.util", "_autosummary/poli.tests.util.test_foldx_interface", "_autosummary/poli.tests.util.test_protein_utilities", "_templates/custom-module-template", "api", "bibliography", "contributing/a_new_problem", "contributing/a_new_solver", "getting_started/getting_started", "index", "understanding_foldx/00-installing-foldx", "understanding_foldx/01-single-mutation-using-foldx/index", "using_poli/objective_repository/RaSP", "using_poli/objective_repository/all_objectives", "using_poli/objective_repository/aloha", "using_poli/objective_repository/dockstring", "using_poli/objective_repository/drd3_docking", "using_poli/objective_repository/foldx_rfp_lambo", "using_poli/objective_repository/foldx_sasa", "using_poli/objective_repository/foldx_stability", "using_poli/objective_repository/penalized_logp_lambo", "using_poli/objective_repository/rdkit_logp", "using_poli/objective_repository/rdkit_qed", "using_poli/objective_repository/sa_tdc", "using_poli/objective_repository/super_mario_bros", "using_poli/objective_repository/tdc_oracles", "using_poli/objective_repository/template", "using_poli/objective_repository/toy_continuous_problems", "using_poli/objective_repository/white_noise", "using_poli/observers/registering_an_observer", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability", "using_poli/the_basics/defining_a_problem_solver", "using_poli/the_basics/defining_an_observer", "using_poli/the_basics/diving_deeper", "using_poli/the_basics/intro_to_poli", "using_poli/the_basics/isolation", "using_poli/the_basics/optimizing_an_objective_function", "using_poli/the_basics/registering_an_objective_function", "using_poli_baselines/bayesian_optimization", "using_poli_baselines/cma_es", "using_poli_baselines/graph_ga", "using_poli_baselines/latent_space_bo", "using_poli_baselines/line_bayesian_optimization", "using_poli_baselines/nsga_2", "using_poli_baselines/random_mutations", "using_poli_baselines/template"], "filenames": ["_autosummary/poli.rst", "_autosummary/poli.core.rst", "_autosummary/poli.core.abstract_black_box.rst", "_autosummary/poli.core.abstract_black_box.AbstractBlackBox.rst", "_autosummary/poli.core.abstract_black_box.NegativeBlackBox.rst", "_autosummary/poli.core.abstract_problem_factory.rst", "_autosummary/poli.core.abstract_problem_factory.AbstractProblemFactory.rst", "_autosummary/poli.core.abstract_problem_factory.MetaProblemFactory.rst", "_autosummary/poli.core.chemistry.rst", "_autosummary/poli.core.chemistry.tdc_black_box.rst", "_autosummary/poli.core.chemistry.tdc_black_box.TDCBlackBox.rst", "_autosummary/poli.core.exceptions.rst", "_autosummary/poli.core.exceptions.BudgetExhaustedException.rst", "_autosummary/poli.core.exceptions.PoliException.rst", "_autosummary/poli.core.multi_objective_black_box.rst", "_autosummary/poli.core.multi_objective_black_box.MultiObjectiveBlackBox.rst", "_autosummary/poli.core.problem_setup_information.rst", "_autosummary/poli.core.problem_setup_information.ProblemSetupInformation.rst", "_autosummary/poli.core.proteins.rst", "_autosummary/poli.core.proteins.foldx_black_box.rst", "_autosummary/poli.core.proteins.foldx_black_box.FoldxBlackBox.rst", "_autosummary/poli.core.registry.rst", "_autosummary/poli.core.registry.delete_observer_run_script.rst", "_autosummary/poli.core.registry.delete_problem.rst", "_autosummary/poli.core.registry.get_problem_factories.rst", "_autosummary/poli.core.registry.get_problems.rst", "_autosummary/poli.core.registry.register_problem.rst", "_autosummary/poli.core.registry.register_problem_from_repository.rst", "_autosummary/poli.core.registry.set_observer.rst", "_autosummary/poli.core.registry.set_observer_run_script.rst", "_autosummary/poli.core.util.rst", "_autosummary/poli.core.util.abstract_observer.rst", "_autosummary/poli.core.util.abstract_observer.AbstractObserver.rst", "_autosummary/poli.core.util.alignment.rst", "_autosummary/poli.core.util.alignment.is_aligned.rst", "_autosummary/poli.core.util.batch.rst", "_autosummary/poli.core.util.batch.batch_input.rst", "_autosummary/poli.core.util.batch.batch_input.batched.rst", "_autosummary/poli.core.util.chemistry.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.selfies_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.smiles_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.strings_to_molecules.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles.rst", "_autosummary/poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies.rst", "_autosummary/poli.core.util.external_observer.rst", "_autosummary/poli.core.util.external_observer.ExternalObserver.rst", "_autosummary/poli.core.util.files.rst", "_autosummary/poli.core.util.files.download_files_from_github.rst", "_autosummary/poli.core.util.files.download_files_from_github.download_file_from_github_repository.rst", "_autosummary/poli.core.util.files.download_files_from_github.get_sha_for_tag.rst", "_autosummary/poli.core.util.files.integrity.rst", "_autosummary/poli.core.util.files.integrity.compute_md5_from_filepath.rst", "_autosummary/poli.core.util.inter_process_communication.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper.rst", "_autosummary/poli.core.util.inter_process_communication.process_wrapper.get_connection.rst", "_autosummary/poli.core.util.objective_management.rst", "_autosummary/poli.core.util.objective_management.make_run_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_observer_script.rst", "_autosummary/poli.core.util.objective_management.make_run_script.make_run_script.rst", "_autosummary/poli.core.util.observer_wrapper.rst", "_autosummary/poli.core.util.observer_wrapper.start_observer_process.rst", "_autosummary/poli.core.util.proteins.rst", "_autosummary/poli.core.util.proteins.defaults.rst", "_autosummary/poli.core.util.proteins.foldx.rst", "_autosummary/poli.core.util.proteins.foldx.FoldxInterface.rst", "_autosummary/poli.core.util.proteins.mutations.rst", "_autosummary/poli.core.util.proteins.mutations.edits_between_strings.rst", "_autosummary/poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant.rst", "_autosummary/poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues.rst", "_autosummary/poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure.rst", "_autosummary/poli.core.util.proteins.rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.PrismData.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.cavity_model.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.helpers.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.run_pipeline.rst", "_autosummary/poli.core.util.proteins.rasp.inner_rasp.visualization.rst", "_autosummary/poli.core.util.proteins.rasp.load_models.rst", "_autosummary/poli.core.util.proteins.rasp.rasp_interface.rst", "_autosummary/poli.core.util.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.rst", "_autosummary/poli.core.util.seeding.seeding.seed_numpy.rst", "_autosummary/poli.core.util.seeding.seeding.seed_python.rst", "_autosummary/poli.objective.rst", "_autosummary/poli.objective.dynamically_instantiate.rst", "_autosummary/poli.objective.parse_factory_kwargs.rst", "_autosummary/poli.objective.run.rst", "_autosummary/poli.objective_factory.rst", "_autosummary/poli.objective_factory.ExternalBlackBox.rst", "_autosummary/poli.objective_factory.create.rst", "_autosummary/poli.objective_factory.load_config.rst", "_autosummary/poli.objective_factory.start.rst", "_autosummary/poli.objective_repository.rst", "_autosummary/poli.objective_repository.aloha.rst", "_autosummary/poli.objective_repository.aloha.register.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaBlackBox.rst", "_autosummary/poli.objective_repository.aloha.register.AlohaProblemFactory.rst", "_autosummary/poli.objective_repository.dockstring.rst", "_autosummary/poli.objective_repository.dockstring.register.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringBlackBox.rst", "_autosummary/poli.objective_repository.dockstring.register.DockstringProblemFactory.rst", "_autosummary/poli.objective_repository.drd3_docking.rst", "_autosummary/poli.objective_repository.drd3_docking.register.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3BlackBox.rst", "_autosummary/poli.objective_repository.drd3_docking.register.DRD3ProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.Config.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory.rst", "_autosummary/poli.objective_repository.foldx_rfp_lambo.register.get_config.rst", "_autosummary/poli.objective_repository.foldx_sasa.rst", "_autosummary/poli.objective_repository.foldx_sasa.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability.rst", "_autosummary/poli.objective_repository.foldx_stability.foldx_utils.rst", "_autosummary/poli.objective_repository.foldx_stability.register.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox.rst", "_autosummary/poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_cbas.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder.rst", "_autosummary/poli.objective_repository.gfp_cbas.gfp_gp.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.BaseVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.SimpleVAE.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.build_vae.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.identity_loss.rst", "_autosummary/poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox.rst", "_autosummary/poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory.rst", "_autosummary/poli.objective_repository.gfp_select.rst", "_autosummary/poli.objective_repository.gfp_select.register.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPBlackBox.rst", "_autosummary/poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox.rst", "_autosummary/poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory.rst", "_autosummary/poli.objective_repository.rasp.rst", "_autosummary/poli.objective_repository.rasp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_logp.register.LogPProblemFactory.rst", "_autosummary/poli.objective_repository.rdkit_qed.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDBlackBox.rst", "_autosummary/poli.objective_repository.rdkit_qed.register.QEDProblemFactory.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.rst", "_autosummary/poli.objective_repository.rfp_foldx_stability_and_sasa.register.rst", "_autosummary/poli.objective_repository.sa_tdc.rst", "_autosummary/poli.objective_repository.sa_tdc.register.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SABlackBox.rst", "_autosummary/poli.objective_repository.sa_tdc.register.SAProblemFactory.rst", "_autosummary/poli.objective_repository.super_mario_bros.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.clean_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_array.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.level_to_list.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level.rst", "_autosummary/poli.objective_repository.super_mario_bros.level_utils.vectorized.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.VAEMario.rst", "_autosummary/poli.objective_repository.super_mario_bros.model.load_example_model.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.alpine_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.bent_cigar.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.brown.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.camelback_2d.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_01.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deb_02.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.easom.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.egg_holder.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.rst", "_autosummary/poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem.rst", "_autosummary/poli.objective_repository.white_noise.rst", "_autosummary/poli.objective_repository.white_noise.register.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseBlackBox.rst", "_autosummary/poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory.rst", "_autosummary/poli.registered_objectives.rst", "_autosummary/poli.tests.rst", "_autosummary/poli.tests.docs_examples.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_aloha_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings.rst", "_autosummary/poli.tests.docs_examples.test_objective_functions.test_white_noise_example.rst", "_autosummary/poli.tests.registry.rst", "_autosummary/poli.tests.registry.basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha.rst", "_autosummary/poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise.rst", "_autosummary/poli.tests.registry.basic_objectives.test_budget_exhaustion.rst", "_autosummary/poli.tests.registry.chemistry.rst", "_autosummary/poli.tests.registry.chemistry.test_chemistry_objectives.rst", "_autosummary/poli.tests.registry.proteins.rst", "_autosummary/poli.tests.registry.proteins.test_foldx.rst", "_autosummary/poli.tests.registry.proteins.test_foldx_rfp_lambo.rst", "_autosummary/poli.tests.registry.proteins.test_rasp.rst", "_autosummary/poli.tests.registry.test_basic_loop_without_create.rst", "_autosummary/poli.tests.registry.test_force_isolation.rst", "_autosummary/poli.tests.registry.test_passing_array_of_strings.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions.rst", "_autosummary/poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems.rst", "_autosummary/poli.tests.test_minimal_working_example.rst", "_autosummary/poli.tests.test_minimal_working_example.test_minimal_working_example.rst", "_autosummary/poli.tests.test_seeding.rst", "_autosummary/poli.tests.test_seeding.test_seeding_in_white_noise.rst", "_autosummary/poli.tests.util.rst", "_autosummary/poli.tests.util.test_foldx_interface.rst", "_autosummary/poli.tests.util.test_protein_utilities.rst", "_templates/custom-module-template.rst", "api.rst", "bibliography.md", "contributing/a_new_problem.md", "contributing/a_new_solver.md", "getting_started/getting_started.md", "index.md", "understanding_foldx/00-installing-foldx.md", "understanding_foldx/01-single-mutation-using-foldx/index.ipynb", "using_poli/objective_repository/RaSP.md", "using_poli/objective_repository/all_objectives.md", "using_poli/objective_repository/aloha.md", "using_poli/objective_repository/dockstring.md", "using_poli/objective_repository/drd3_docking.md", "using_poli/objective_repository/foldx_rfp_lambo.md", "using_poli/objective_repository/foldx_sasa.md", "using_poli/objective_repository/foldx_stability.md", "using_poli/objective_repository/penalized_logp_lambo.md", "using_poli/objective_repository/rdkit_logp.md", "using_poli/objective_repository/rdkit_qed.md", "using_poli/objective_repository/sa_tdc.md", "using_poli/objective_repository/super_mario_bros.md", "using_poli/objective_repository/tdc_oracles.md", "using_poli/objective_repository/template.md", "using_poli/objective_repository/toy_continuous_problems.md", "using_poli/objective_repository/white_noise.md", "using_poli/observers/registering_an_observer.md", "using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb", "using_poli/the_basics/defining_a_problem_solver.md", "using_poli/the_basics/defining_an_observer.ipynb", "using_poli/the_basics/diving_deeper.md", "using_poli/the_basics/intro_to_poli.ipynb", "using_poli/the_basics/isolation.ipynb", "using_poli/the_basics/optimizing_an_objective_function.md", "using_poli/the_basics/registering_an_objective_function.md", "using_poli_baselines/bayesian_optimization.md", "using_poli_baselines/cma_es.md", "using_poli_baselines/graph_ga.md", "using_poli_baselines/latent_space_bo.md", "using_poli_baselines/line_bayesian_optimization.md", "using_poli_baselines/nsga_2.md", "using_poli_baselines/random_mutations.md", "using_poli_baselines/template.md"], "titles": ["poli", "poli.core", "poli.core.abstract_black_box", "poli.core.abstract_black_box.AbstractBlackBox", "poli.core.abstract_black_box.NegativeBlackBox", "poli.core.abstract_problem_factory", "poli.core.abstract_problem_factory.AbstractProblemFactory", "poli.core.abstract_problem_factory.MetaProblemFactory", "poli.core.chemistry", "poli.core.chemistry.tdc_black_box", "poli.core.chemistry.tdc_black_box.TDCBlackBox", "poli.core.exceptions", "poli.core.exceptions.BudgetExhaustedException", "poli.core.exceptions.PoliException", "poli.core.multi_objective_black_box", "poli.core.multi_objective_black_box.MultiObjectiveBlackBox", "poli.core.problem_setup_information", "poli.core.problem_setup_information.ProblemSetupInformation", "poli.core.proteins", "poli.core.proteins.foldx_black_box", "poli.core.proteins.foldx_black_box.FoldxBlackBox", "poli.core.registry", "poli.core.registry.delete_observer_run_script", "poli.core.registry.delete_problem", "poli.core.registry.get_problem_factories", "poli.core.registry.get_problems", "poli.core.registry.register_problem", "poli.core.registry.register_problem_from_repository", "poli.core.registry.set_observer", "poli.core.registry.set_observer_run_script", "poli.core.util", "poli.core.util.abstract_observer", "poli.core.util.abstract_observer.AbstractObserver", "poli.core.util.alignment", "poli.core.util.alignment.is_aligned", "poli.core.util.batch", "poli.core.util.batch.batch_input", "poli.core.util.batch.batch_input.batched", "poli.core.util.chemistry", "poli.core.util.chemistry.string_to_molecule", "poli.core.util.chemistry.string_to_molecule.selfies_to_molecules", "poli.core.util.chemistry.string_to_molecule.smiles_to_molecules", "poli.core.util.chemistry.string_to_molecule.strings_to_molecules", "poli.core.util.chemistry.string_to_molecule.translate_selfies_to_smiles", "poli.core.util.chemistry.string_to_molecule.translate_smiles_to_selfies", "poli.core.util.external_observer", "poli.core.util.external_observer.ExternalObserver", "poli.core.util.files", "poli.core.util.files.download_files_from_github", "poli.core.util.files.download_files_from_github.download_file_from_github_repository", "poli.core.util.files.download_files_from_github.get_sha_for_tag", "poli.core.util.files.integrity", "poli.core.util.files.integrity.compute_md5_from_filepath", "poli.core.util.inter_process_communication", "poli.core.util.inter_process_communication.process_wrapper", "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper", "poli.core.util.inter_process_communication.process_wrapper.get_connection", "poli.core.util.objective_management", "poli.core.util.objective_management.make_run_script", "poli.core.util.objective_management.make_run_script.make_observer_script", "poli.core.util.objective_management.make_run_script.make_run_script", "poli.core.util.observer_wrapper", "poli.core.util.observer_wrapper.start_observer_process", "poli.core.util.proteins", "poli.core.util.proteins.defaults", "poli.core.util.proteins.foldx", "poli.core.util.proteins.foldx.FoldxInterface", "poli.core.util.proteins.mutations", "poli.core.util.proteins.mutations.edits_between_strings", "poli.core.util.proteins.mutations.find_closest_wildtype_pdb_file_to_mutant", "poli.core.util.proteins.mutations.mutations_from_wildtype_residues_and_mutant", "poli.core.util.proteins.pdb_parsing", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residue_strings", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_residues", "poli.core.util.proteins.pdb_parsing.parse_pdb_as_structure", "poli.core.util.proteins.rasp", "poli.core.util.proteins.rasp.inner_rasp", "poli.core.util.proteins.rasp.inner_rasp.PrismData", "poli.core.util.proteins.rasp.inner_rasp.cavity_model", "poli.core.util.proteins.rasp.inner_rasp.helpers", "poli.core.util.proteins.rasp.inner_rasp.run_pipeline", "poli.core.util.proteins.rasp.inner_rasp.visualization", "poli.core.util.proteins.rasp.load_models", "poli.core.util.proteins.rasp.rasp_interface", "poli.core.util.seeding", "poli.core.util.seeding.seeding", "poli.core.util.seeding.seeding.seed_numpy", "poli.core.util.seeding.seeding.seed_python", "poli.objective", "poli.objective.dynamically_instantiate", "poli.objective.parse_factory_kwargs", "poli.objective.run", "poli.objective_factory", "poli.objective_factory.ExternalBlackBox", "poli.objective_factory.create", "poli.objective_factory.load_config", "poli.objective_factory.start", "poli.objective_repository", "poli.objective_repository.aloha", "poli.objective_repository.aloha.register", "poli.objective_repository.aloha.register.AlohaBlackBox", "poli.objective_repository.aloha.register.AlohaProblemFactory", "poli.objective_repository.dockstring", "poli.objective_repository.dockstring.register", "poli.objective_repository.dockstring.register.DockstringBlackBox", "poli.objective_repository.dockstring.register.DockstringProblemFactory", "poli.objective_repository.drd3_docking", "poli.objective_repository.drd3_docking.register", "poli.objective_repository.drd3_docking.register.DRD3BlackBox", "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory", "poli.objective_repository.foldx_rfp_lambo", "poli.objective_repository.foldx_rfp_lambo.register", "poli.objective_repository.foldx_rfp_lambo.register.Config", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper", "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory", "poli.objective_repository.foldx_rfp_lambo.register.get_config", "poli.objective_repository.foldx_sasa", "poli.objective_repository.foldx_sasa.foldx_utils", "poli.objective_repository.foldx_sasa.register", "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox", "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory", "poli.objective_repository.foldx_stability", "poli.objective_repository.foldx_stability.foldx_utils", "poli.objective_repository.foldx_stability.register", "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox", "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory", "poli.objective_repository.foldx_stability_and_sasa", "poli.objective_repository.foldx_stability_and_sasa.register", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox", "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory", "poli.objective_repository.gfp_cbas", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper", "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_aas_to_idx_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_idx_array_to_aas", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.convert_mutations_to_sequence", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_argmax", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_balaji_predictions", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_experimental_X_y", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_X_y_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_gfp_base_seq", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.get_samples", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_aa_array", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.one_hot_encode_dna", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.partition_data", "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing.read_gfp_data", "poli.objective_repository.gfp_cbas.cbas_wrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder", "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder", "poli.objective_repository.gfp_cbas.gfp_gp", "poli.objective_repository.gfp_cbas.make_vae", "poli.objective_repository.gfp_cbas.make_vae.BaseVAE", "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE", "poli.objective_repository.gfp_cbas.make_vae.build_vae", "poli.objective_repository.gfp_cbas.make_vae.identity_loss", "poli.objective_repository.gfp_cbas.make_vae.summed_categorical_crossentropy", "poli.objective_repository.gfp_cbas.register", "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox", "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory", "poli.objective_repository.gfp_select", "poli.objective_repository.gfp_select.register", "poli.objective_repository.gfp_select.register.GFPBlackBox", "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory", "poli.objective_repository.penalized_logp_lambo", "poli.objective_repository.penalized_logp_lambo.register", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox", "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory", "poli.objective_repository.rasp", "poli.objective_repository.rasp.register", "poli.objective_repository.rdkit_logp", "poli.objective_repository.rdkit_logp.register", "poli.objective_repository.rdkit_logp.register.LogPBlackBox", "poli.objective_repository.rdkit_logp.register.LogPProblemFactory", "poli.objective_repository.rdkit_qed", "poli.objective_repository.rdkit_qed.register", "poli.objective_repository.rdkit_qed.register.QEDBlackBox", "poli.objective_repository.rdkit_qed.register.QEDProblemFactory", "poli.objective_repository.rfp_foldx_stability_and_sasa", "poli.objective_repository.rfp_foldx_stability_and_sasa.register", "poli.objective_repository.sa_tdc", "poli.objective_repository.sa_tdc.register", "poli.objective_repository.sa_tdc.register.SABlackBox", "poli.objective_repository.sa_tdc.register.SAProblemFactory", "poli.objective_repository.super_mario_bros", "poli.objective_repository.super_mario_bros.level_utils", "poli.objective_repository.super_mario_bros.level_utils.add_padding_to_level", "poli.objective_repository.super_mario_bros.level_utils.clean_level", "poli.objective_repository.super_mario_bros.level_utils.level_to_array", "poli.objective_repository.super_mario_bros.level_utils.level_to_list", "poli.objective_repository.super_mario_bros.level_utils.levels_to_onehot", "poli.objective_repository.super_mario_bros.level_utils.onehot_to_levels", "poli.objective_repository.super_mario_bros.level_utils.tensor_to_sim_level", "poli.objective_repository.super_mario_bros.level_utils.vectorized", "poli.objective_repository.super_mario_bros.model", "poli.objective_repository.super_mario_bros.model.VAEMario", "poli.objective_repository.super_mario_bros.model.load_example_model", "poli.objective_repository.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.definitions", "poli.objective_repository.toy_continuous_problem.definitions.ackley_function_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_01", "poli.objective_repository.toy_continuous_problem.definitions.alpine_02", "poli.objective_repository.toy_continuous_problem.definitions.bent_cigar", "poli.objective_repository.toy_continuous_problem.definitions.brown", "poli.objective_repository.toy_continuous_problem.definitions.camelback_2d", "poli.objective_repository.toy_continuous_problem.definitions.chung_reynolds", "poli.objective_repository.toy_continuous_problem.definitions.cosine_mixture", "poli.objective_repository.toy_continuous_problem.definitions.cross_in_tray", "poli.objective_repository.toy_continuous_problem.definitions.deb_01", "poli.objective_repository.toy_continuous_problem.definitions.deb_02", "poli.objective_repository.toy_continuous_problem.definitions.deflected_corrugated_spring", "poli.objective_repository.toy_continuous_problem.definitions.easom", "poli.objective_repository.toy_continuous_problem.definitions.egg_holder", "poli.objective_repository.toy_continuous_problem.definitions.shifted_sphere", "poli.objective_repository.toy_continuous_problem.definitions.styblinski_tang", "poli.objective_repository.toy_continuous_problem.register", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox", "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem", "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem", "poli.objective_repository.white_noise", "poli.objective_repository.white_noise.register", "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox", "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory", "poli.registered_objectives", "poli.tests", "poli.tests.docs_examples", "poli.tests.docs_examples.test_objective_functions", "poli.tests.docs_examples.test_objective_functions.test_aloha_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example", "poli.tests.docs_examples.test_objective_functions.test_logp_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_qed_example", "poli.tests.docs_examples.test_objective_functions.test_qed_example_using_strings", "poli.tests.docs_examples.test_objective_functions.test_white_noise_example", "poli.tests.registry", "poli.tests.registry.basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_aloha", "poli.tests.registry.basic_objectives.test_basic_objectives.test_registering_white_noise", "poli.tests.registry.basic_objectives.test_budget_exhaustion", "poli.tests.registry.chemistry", "poli.tests.registry.chemistry.test_chemistry_objectives", "poli.tests.registry.proteins", "poli.tests.registry.proteins.test_foldx", "poli.tests.registry.proteins.test_foldx_rfp_lambo", "poli.tests.registry.proteins.test_rasp", "poli.tests.registry.test_basic_loop_without_create", "poli.tests.registry.test_force_isolation", "poli.tests.registry.test_passing_array_of_strings", "poli.tests.registry.toy_continuous_problems", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims", "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims.test_embed_camelback_into_high_dimensions", "poli.tests.registry.toy_continuous_problems.test_instancing_of_toy_continuous_problems", "poli.tests.test_minimal_working_example", "poli.tests.test_minimal_working_example.test_minimal_working_example", "poli.tests.test_seeding", "poli.tests.test_seeding.test_seeding_in_white_noise", "poli.tests.util", "poli.tests.util.test_foldx_interface", "poli.tests.util.test_protein_utilities", "<no title>", "API documentation for poli", "References", "Adding a new problem to the repository", "Adding a new optimizer to poli-baselines", "Getting started", "poli \ud83e\uddea: a library of discrete objective functions", "Installing foldx", "Computing the energy of a protein and a single mutation", "Rapid Stability Predictions", "All objective functions", "Aloha objective function", "dockstring", "DRD3 docking (using TDC)", "Protein (RFP) stability and SASA (using foldx,lambo)", "Protein solvent accessibility (using foldx)", "Protein stability (using foldx)", "Penalized logP (using lambo)", "Log-solubility (logP)", "Quantitative Estimate of Druglikeness (QED)", "Synthetic Accessibility (using TDC)", "Optimizing jumps in Super Mario Bros", "Therapeutics Data Commons\u2019 oracles", "Objective function name", "Toy continuous objective functions", "White Noise objective function", "Registering and running observers in isolated processes", "Optimizing protein stability using random mutations", "Defining a problem solver in poli_baselines", "Defining an observer", "Diving deeper: how does poli work under the hood?", "What is poli?", "Isolating black box objective functions", "Optimizing an objective function", "Registering an objective function in poli", "Bayesian Optimization", "CMA-ES", "Graph Genetic Algorithms", "Latent Space Bayesian Optimization", "Line Bayesian Optimization", "Discrete NSGA-2", "Random mutations", "Template: optimization algorithm"], "terms": {"librari": [0, 32, 37, 200, 270, 291, 293, 294], "discret": [0, 99, 100, 101, 131, 266, 289, 290, 293, 295, 297], "black": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 274, 280, 281, 289, 290, 291, 293, 295, 297, 302], "box": [0, 2, 3, 4, 8, 9, 10, 14, 15, 18, 19, 20, 38, 63, 93, 94, 96, 97, 99, 100, 101, 103, 104, 108, 111, 113, 116, 118, 119, 121, 123, 124, 126, 127, 128, 160, 164, 168, 171, 173, 174, 177, 178, 180, 181, 184, 218, 223, 224, 249, 265, 266, 269, 271, 273, 274, 280, 281, 286, 287, 289, 290, 291, 293, 295, 297, 302], "object": [0, 2, 3, 4, 14, 15, 17, 19, 20, 32, 46, 50, 55, 56, 59, 66, 73, 74, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 106, 111, 113, 118, 119, 121, 123, 124, 127, 128, 160, 164, 168, 173, 177, 178, 179, 181, 183, 184, 200, 216, 217, 218, 221, 223, 229, 248, 249, 252, 264, 265, 266, 267, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 302], "function": [0, 2, 3, 4, 9, 14, 15, 21, 22, 23, 26, 27, 28, 29, 32, 34, 35, 36, 37, 39, 43, 44, 48, 49, 51, 53, 54, 56, 58, 61, 62, 67, 70, 71, 85, 88, 89, 90, 91, 92, 93, 94, 96, 98, 99, 100, 102, 103, 104, 106, 108, 111, 113, 115, 116, 119, 121, 124, 128, 133, 153, 160, 164, 167, 168, 173, 174, 177, 178, 179, 184, 187, 196, 199, 200, 216, 217, 218, 220, 221, 223, 224, 229, 238, 248, 249, 252, 255, 257, 264, 265, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 290, 291, 297, 301, 302], "modul": [0, 1, 2, 5, 8, 18, 19, 21, 30, 33, 35, 36, 38, 47, 48, 51, 53, 54, 57, 58, 63, 64, 65, 67, 71, 84, 97, 98, 102, 103, 106, 110, 116, 121, 126, 130, 150, 152, 162, 166, 167, 170, 171, 172, 176, 180, 182, 186, 199, 222, 227, 228, 229, 236, 237, 242, 244, 248, 249, 251, 257, 259, 262], "class": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19, 20, 28, 31, 32, 45, 46, 54, 55, 65, 66, 92, 93, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 113, 114, 118, 119, 120, 123, 124, 125, 127, 128, 129, 131, 132, 148, 149, 150, 151, 152, 153, 154, 155, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 196, 197, 217, 218, 219, 220, 221, 223, 224, 225, 265, 266, 290, 291, 296], "util": [1, 21, 115, 124, 152, 187, 291, 294, 297], "insid": [1, 11, 27, 89, 97, 106, 173, 178, 265, 267, 268, 270, 271, 274, 275, 286, 289, 293, 294, 296], "thi": [2, 4, 5, 6, 14, 15, 19, 21, 22, 23, 26, 27, 28, 29, 32, 36, 37, 43, 44, 48, 49, 51, 55, 56, 58, 62, 64, 65, 66, 67, 70, 71, 89, 90, 91, 94, 96, 99, 103, 106, 109, 118, 123, 127, 148, 152, 167, 171, 173, 177, 181, 200, 216, 217, 218, 223, 229, 248, 249, 252, 257, 265, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301, 302, 303, 304], "implement": [2, 4, 5, 8, 9, 14, 15, 16, 18, 19, 36, 65, 100, 103, 104, 107, 119, 124, 128, 131, 148, 154, 166, 167, 171, 183, 184, 218, 266, 268, 272, 274, 276, 279, 286, 289, 290, 293, 294, 295, 296, 297, 298, 302], "abstract": [2, 3, 5, 6, 31, 32, 265, 289, 296], "from": [2, 10, 20, 23, 25, 27, 37, 43, 44, 47, 48, 49, 50, 51, 52, 65, 66, 70, 89, 90, 96, 106, 119, 124, 128, 134, 139, 142, 155, 171, 190, 193, 198, 200, 206, 215, 256, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "which": [2, 3, 7, 16, 20, 45, 52, 66, 70, 74, 95, 103, 168, 177, 179, 217, 218, 224, 265, 266, 270, 271, 274, 275, 276, 279, 282, 286, 289, 290, 291, 293, 294, 295, 296, 297], "all": [2, 92, 94, 97, 99, 100, 101, 106, 148, 200, 224, 229, 265, 266, 267, 270, 271, 273, 274, 281, 289, 290, 293, 296], "should": [2, 55, 106, 265, 266, 267, 269, 273, 275, 280, 281, 286, 287, 289, 290, 291, 294, 295, 296], "inherit": [2, 10, 15, 266, 289, 290, 291, 296], "info": [3, 4, 10, 15, 20, 93, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 266, 290, 291, 293, 296, 302], "problemsetupinform": [3, 4, 10, 15, 20, 32, 93, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 276, 291, 296], "batch_siz": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 144, 160, 164, 168, 174, 178, 184, 218, 224, 265, 296, 302], "option": [3, 4, 10, 15, 17, 20, 22, 26, 27, 28, 29, 40, 42, 43, 44, 46, 49, 52, 59, 60, 66, 68, 69, 72, 73, 74, 86, 87, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 197, 218, 221, 224], "int": [3, 4, 10, 15, 17, 20, 32, 37, 56, 62, 68, 69, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 149, 160, 164, 168, 174, 178, 184, 188, 189, 192, 194, 197, 218, 221, 224, 265, 266, 290, 291, 295, 296], "none": [3, 4, 10, 15, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 59, 60, 66, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 143, 145, 147, 160, 161, 164, 168, 174, 178, 184, 197, 218, 221, 224, 265, 266, 273, 274, 280, 281, 285, 286, 287, 291, 295, 296], "parallel": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265], "bool": [3, 4, 10, 17, 20, 25, 26, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 140, 160, 164, 168, 174, 178, 184, 216, 218, 224, 265, 279, 295], "fals": [3, 4, 10, 17, 20, 25, 26, 27, 41, 42, 43, 44, 49, 66, 69, 72, 73, 74, 94, 96, 100, 104, 108, 113, 119, 124, 128, 139, 140, 146, 160, 164, 168, 174, 178, 184, 193, 218, 224, 265, 289, 291, 293, 295], "num_work": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265], "evaluation_budget": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265], "inf": [3, 4, 10, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 265, 294], "base": [3, 6, 13, 32, 55, 106, 154, 267, 268, 270, 272, 275, 293, 296, 302], "optim": [3, 17, 32, 65, 110, 166, 167, 199, 200, 217, 220, 252, 264, 269, 270, 272, 286, 290, 291, 296, 302, 303], "problem": [3, 4, 5, 6, 10, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 34, 57, 58, 60, 93, 99, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 173, 174, 177, 178, 179, 180, 184, 185, 186, 200, 217, 218, 222, 223, 224, 252, 267, 270, 276, 291, 293, 302], "paramet": [3, 4, 6, 10, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 37, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 67, 68, 69, 70, 72, 73, 74, 86, 87, 89, 90, 91, 93, 94, 96, 100, 101, 104, 105, 108, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224], "The": [3, 4, 10, 15, 17, 19, 20, 22, 23, 26, 27, 28, 29, 37, 46, 49, 50, 52, 55, 56, 59, 60, 62, 65, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 104, 106, 108, 113, 118, 119, 123, 124, 127, 128, 154, 160, 164, 166, 173, 174, 177, 178, 179, 181, 184, 214, 215, 217, 218, 223, 224, 266, 268, 270, 271, 272, 274, 277, 278, 279, 289, 290, 294, 295, 296, 302], "setup": [3, 4, 6, 10, 15, 16, 20, 46, 62, 100, 101, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 174, 178, 179, 184, 185, 218, 224, 275, 276, 279, 282], "inform": [3, 4, 6, 10, 15, 16, 20, 32, 46, 62, 93, 94, 96, 100, 101, 103, 104, 105, 108, 109, 113, 119, 120, 124, 128, 129, 160, 164, 171, 174, 178, 179, 184, 185, 218, 221, 224, 264, 265, 270, 291, 296], "provid": [3, 15, 46, 92, 109, 119, 124, 178, 268, 269, 270, 291, 293], "detail": [3, 9, 67, 90, 91, 270, 289, 293], "about": [3, 10, 27, 90, 91, 93, 94, 96, 265, 268, 269, 272, 289, 293, 296], "batch": [3, 4, 10, 15, 20, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "size": [3, 4, 10, 15, 20, 37, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296, 298, 302], "evalu": [3, 4, 10, 14, 15, 20, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 179, 184, 218, 224, 266, 267, 279, 289, 290, 291, 294, 296], "default": [3, 4, 10, 15, 17, 20, 22, 27, 28, 29, 46, 49, 52, 66, 68, 69, 72, 73, 74, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 265, 266, 276, 277, 278, 286, 296, 297, 301], "flag": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218], "indic": [3, 4, 10, 20, 26, 100, 104, 108, 113, 119, 124, 128, 134, 135, 160, 164, 174, 178, 184, 218, 266, 290], "whether": [3, 4, 10, 17, 20, 25, 26, 49, 72, 73, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 249, 257, 270, 279, 280, 281, 291, 293, 296], "number": [3, 4, 10, 20, 37, 56, 62, 84, 85, 86, 87, 91, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 168, 174, 178, 184, 218, 224, 266, 272, 286, 290, 293, 295], "worker": [3, 4, 10, 20, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224], "us": [3, 4, 7, 10, 20, 22, 26, 28, 29, 32, 43, 44, 46, 49, 51, 55, 56, 60, 64, 65, 66, 88, 89, 94, 96, 99, 100, 104, 106, 107, 108, 113, 119, 123, 124, 126, 128, 138, 139, 140, 160, 164, 166, 167, 168, 171, 172, 173, 174, 176, 177, 178, 180, 183, 184, 217, 218, 223, 248, 252, 264, 265, 266, 269, 270, 271, 272, 274, 280, 281, 286, 288, 290, 291, 294, 295, 296, 297, 298, 301, 302], "half": [3, 4, 94, 113, 160, 164, 218, 224], "avail": [3, 4, 24, 25, 94, 106, 113, 118, 123, 127, 160, 164, 181, 218, 224, 229, 267, 270, 272, 276, 277, 278, 279, 286, 289, 293, 295, 296], "cpu": [3, 4, 94, 113, 160, 164, 218, 224], "maximum": [3, 4, 94, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 296], "allow": [3, 4, 7, 19, 20, 94, 113, 118, 119, 123, 124, 127, 128, 160, 164, 173, 177, 181, 217, 218, 265, 266, 269, 270, 286, 290, 293, 295, 296], "float": [3, 4, 20, 113, 119, 124, 128, 160, 164, 174, 177, 178, 184, 212, 218, 224, 265, 268, 295], "type": [3, 10, 15, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 55, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 95, 100, 104, 108, 136, 141, 174, 178, 218, 265, 270, 294, 296], "observ": [3, 21, 22, 28, 29, 30, 31, 32, 45, 46, 57, 58, 59, 61, 62, 89, 94, 96, 139, 268, 289, 295, 296], "record": 3, "dure": [3, 62, 265, 286], "abstractobserv": [3, 28, 59, 94, 96, 291], "observer_info": 3, "given": [3, 15, 22, 43, 44, 56, 59, 60, 66, 69, 74, 103, 104, 105, 124, 136, 137, 138, 198, 266, 267, 271, 274, 290], "after": [3, 28, 32, 106, 265, 266, 270, 275, 276, 279, 282, 289, 290, 293, 296], "initi": [3, 4, 10, 15, 17, 20, 32, 46, 55, 62, 66, 93, 94, 96, 100, 104, 108, 113, 119, 124, 128, 160, 164, 174, 178, 184, 218, 224, 266, 270, 289, 290, 293, 296, 302], "set_observ": [3, 288], "set": [3, 26, 28, 29, 32, 55, 74, 106, 138, 140, 146, 152, 174, 178, 265, 266, 271, 274, 290, 291, 293], "reset_evaluation_budget": 3, "reset": [3, 96], "budget": [3, 10, 12, 20, 96, 119, 124, 128], "made": 3, "0": [3, 66, 68, 119, 124, 128, 156, 177, 193, 212, 266, 267, 268, 270, 271, 277, 278, 280, 281, 286, 287, 289, 290, 291, 293, 294, 295, 297, 298, 301], "__call__": [3, 4], "x": [3, 4, 15, 32, 46, 94, 96, 100, 104, 106, 124, 140, 145, 146, 174, 178, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 215, 216, 218, 224, 265, 266, 267, 271, 273, 274, 275, 280, 281, 285, 286, 287, 289, 290, 291, 296, 297], "context": [3, 15, 32, 46, 96, 100, 104, 124, 174, 178, 218, 224, 265, 291, 296], "input": [3, 10, 15, 22, 29, 34, 36, 94, 100, 104, 108, 124, 174, 178, 184, 218, 224, 265, 267, 268, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 296, 297, 301, 302], "_black_box": [3, 4, 15, 100, 104, 124, 174, 178, 218, 224, 265, 296], "method": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 70, 74, 93, 94, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 138, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 270, 276, 277, 278, 289, 290, 291, 293, 294, 295, 296], "termin": [3, 62, 274, 277, 278, 279, 280, 281, 291, 296], "__enter__": 3, "enter": 3, "manag": [3, 49, 96], "__exit__": 3, "exc_typ": 3, "exc_val": 3, "exc_tb": 3, "exit": 3, "__del__": 3, "destructor": 3, "__neg__": 3, "creat": [3, 6, 20, 26, 27, 28, 49, 55, 57, 58, 59, 60, 92, 96, 101, 105, 109, 120, 129, 173, 177, 179, 185, 186, 248, 265, 266, 267, 268, 269, 270, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 287, 289, 291, 294, 295, 297, 298, 301, 302, 303, 304], "new": [3, 108, 173, 177, 268, 270, 290, 296], "neg": [3, 158, 274, 278], "origin": [3, 4, 66, 67, 70, 131, 215, 268, 270], "one": [3, 143, 178, 192, 264, 265, 266, 268, 270, 271, 272, 276, 289, 290, 293, 301], "__init__": [3, 4, 6, 7, 10, 15, 17, 20, 32, 46, 55, 66, 93, 100, 101, 104, 105, 108, 109, 113, 114, 119, 120, 124, 125, 128, 129, 132, 149, 150, 151, 154, 155, 160, 161, 164, 165, 168, 169, 174, 175, 178, 179, 184, 185, 197, 218, 219, 221, 224, 225, 265, 266, 290, 291, 296], "execut": [3, 4, 51, 55, 59, 88, 106, 108, 113, 160, 164, 184, 218, 269, 275], "we": [3, 4, 9, 14, 20, 27, 64, 70, 94, 106, 113, 118, 119, 123, 124, 127, 128, 139, 160, 164, 166, 167, 173, 174, 177, 178, 181, 200, 214, 216, 217, 218, 252, 265, 266, 267, 268, 270, 271, 274, 275, 279, 286, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302], "f": [4, 19, 64, 65, 94, 96, 118, 123, 127, 181, 265, 266, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 302, 303, 304], "abstractblackbox": [4, 10, 15, 94, 96, 113, 160, 164, 218, 265, 266, 289, 290, 291, 296], "A": [4, 17, 20, 24, 25, 26, 28, 37, 40, 41, 42, 43, 44, 60, 64, 66, 68, 69, 70, 72, 73, 90, 96, 99, 100, 101, 106, 110, 116, 118, 119, 123, 124, 126, 127, 128, 168, 174, 178, 180, 181, 182, 186, 196, 197, 199, 218, 220, 222, 224, 264, 267, 268, 270, 271, 272, 273, 277, 278, 291, 296], "wrapper": [4, 9, 93, 106, 110, 131, 148, 173, 177, 182, 268, 272, 302], "negat": 4, "If": [4, 15, 22, 25, 27, 28, 29, 32, 37, 40, 41, 42, 43, 44, 46, 49, 50, 56, 62, 65, 66, 68, 69, 70, 74, 86, 87, 94, 96, 173, 177, 216, 218, 265, 266, 267, 268, 269, 270, 274, 275, 276, 277, 278, 279, 280, 281, 285, 291, 293, 294, 295, 296], "you": [4, 66, 74, 106, 173, 174, 177, 178, 200, 265, 266, 267, 268, 269, 270, 271, 274, 276, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 295, 296], "construct": [4, 155], "maxim": [4, 200, 215, 216, 266, 286], "minim": [4, 200, 256, 266, 272, 274, 290, 302], "latter": [4, 270], "onli": [4, 9, 25, 96, 131, 139, 148, 209, 213, 214, 265, 266, 267, 270, 271, 274, 275, 276, 278, 279, 282, 286, 289, 290, 295, 296], "differ": [4, 19, 68, 118, 123, 127, 181, 229, 265, 266, 267, 270, 271, 290, 291, 296], "return": [4, 6, 20, 22, 24, 25, 40, 41, 42, 43, 44, 50, 52, 56, 59, 60, 66, 68, 69, 70, 72, 73, 74, 90, 94, 95, 96, 101, 105, 120, 124, 129, 136, 137, 138, 141, 143, 156, 157, 168, 173, 174, 177, 178, 179, 185, 191, 194, 222, 223, 224, 265, 266, 273, 274, 276, 277, 278, 280, 281, 287, 289, 290, 294, 296], "instead": [4, 173, 200, 266, 277, 278, 290, 294], "same": [4, 69, 70, 166, 167, 168, 265, 267, 271, 293], "factori": [5, 6, 19, 24, 26, 27, 55, 60, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 105, 109, 111, 118, 119, 120, 121, 123, 124, 127, 129, 173, 177, 179, 181, 185, 217, 223, 265, 268, 289], "defin": [6, 28, 67, 180, 200, 252, 265, 266, 286, 293, 295], "interfac": [6, 65, 92, 268, 294], "instanc": [6, 10, 15, 101, 105, 108, 120, 129, 179, 185, 218, 267, 289, 296, 302], "get_setup_inform": [6, 101, 105, 109, 120, 129, 179, 185, 265, 296], "specifi": [6, 49, 50, 94, 101, 105, 120, 129, 137, 142, 150, 154, 179, 185, 217, 265, 270, 280, 281, 295, 296, 302], "metaclass": 7, "abstractproblemfactori": [7, 24, 26, 60, 265, 296], "overrid": 7, "__repr__": 7, "__str__": 7, "arg": [7, 150, 151, 154, 155, 197, 265, 270], "kwarg": [7, 26, 60, 89, 90, 91, 150, 151, 154, 155, 197, 265, 296], "contain": [8, 10, 16, 18, 21, 37, 51, 58, 60, 64, 67, 68, 69, 71, 89, 90, 91, 95, 134, 135, 152, 221, 229, 265, 267, 270, 277, 278, 296], "relat": [8, 18, 38, 63, 269], "around": [9, 106, 110, 173, 177, 182, 268, 272, 302], "therapeut": [9, 10, 107, 183, 264, 268, 272, 275, 282, 296], "data": [9, 10, 35, 49, 100, 104, 106, 139, 140, 146, 147, 152, 264, 268, 270, 272, 275, 276, 282, 296], "common": [9, 10, 92, 264, 268, 270, 272, 275, 282, 296, 302], "tdc": [9, 10, 106, 107, 182, 183, 184, 268, 272], "oracl": [9, 10, 107, 108, 182, 183, 184, 268, 272, 275, 282], "1": [9, 19, 27, 37, 65, 68, 70, 96, 103, 104, 105, 107, 110, 118, 123, 127, 134, 135, 139, 146, 156, 166, 167, 168, 171, 177, 181, 183, 184, 188, 200, 206, 215, 217, 221, 264, 266, 267, 268, 270, 271, 273, 275, 279, 280, 281, 285, 286, 287, 290, 291, 293, 294, 296, 297, 298, 301, 302], "so": [9, 26, 70, 174, 178, 266, 270, 276, 279, 290, 294, 296], "far": [9, 266, 290], "support": [9, 248, 265, 267, 268, 290, 294], "two": [9, 56, 68, 267, 270, 277, 278, 280, 281, 286, 291, 294, 295, 296, 302], "drd3": [9, 106, 108, 109, 268, 272, 274], "synthet": [9, 182, 183, 184, 185, 268, 272], "access": [9, 49, 66, 106, 116, 119, 120, 126, 128, 129, 180, 183, 184, 185, 264, 265, 268, 270, 272, 275, 286], "see": [9, 43, 44, 67, 90, 91, 99, 106, 173, 177, 200, 217, 220, 223, 265, 267, 270, 271, 274, 276, 289, 293, 294, 296], "document": [9, 168, 267, 268, 270, 289, 294], "our": [9, 265, 266, 270, 272, 274, 277, 278, 289, 290, 291, 295, 296, 297, 298, 302], "more": [9, 67, 119, 124, 128, 220, 221, 265, 267, 270, 271, 289, 293], "refer": [9, 19, 65, 103, 104, 105, 106, 107, 110, 166, 167, 183, 268, 276, 279], "artifici": [9, 107, 183, 200], "intellig": [9, 107, 183], "foundat": [9, 107, 183], "scienc": [9, 107, 183, 264], "huang": [9, 107, 183, 264, 268, 275, 282], "kexin": [9, 264], "tianfan": [9, 264], "fu": [9, 107, 183, 264], "wenhao": [9, 264], "gao": [9, 107, 183, 264, 272], "yue": [9, 264], "zhao": [9, 264], "yusuf": [9, 264], "roohani": [9, 264], "jure": [9, 264], "leskovec": [9, 264], "connor": [9, 264], "w": [9, 64, 107, 183, 192, 197, 264, 268, 270, 275, 291], "colei": [9, 264, 268], "cao": [9, 264], "xiao": [9, 264], "jimeng": [9, 264], "sun": [9, 264], "marinka": [9, 264], "zitnik": [9, 264], "natur": 9, "chemic": [9, 103, 104, 105, 264], "biologi": [9, 106, 118, 123, 127, 181, 264, 275], "18": [9, 107, 183, 264], "10": [9, 37, 103, 104, 105, 107, 171, 183, 264, 297, 298, 301, 302], "octob": 9, "2022": [9, 65, 103, 104, 105, 107, 110, 166, 167, 183, 264, 268, 269, 270, 272, 274, 279, 289], "1033": [9, 107, 183], "36": 9, "http": [9, 37, 48, 49, 65, 67, 103, 104, 105, 106, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 265, 267, 268, 269, 270, 276, 279, 289, 293, 296], "doi": [9, 103, 104, 105, 107, 171, 183, 264], "org": [9, 37, 65, 103, 104, 105, 107, 110, 166, 167, 171, 183, 200, 220, 221, 264, 270], "1038": [9, 107, 183], "s41589": [9, 107, 183], "022": [9, 107, 183], "01131": [9, 107, 183], "2": [9, 27, 37, 65, 68, 107, 118, 123, 127, 134, 135, 181, 183, 197, 200, 216, 218, 221, 264, 267, 270, 282, 285, 286, 287, 293, 297, 301], "oracle_nam": [10, 108], "str": [10, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 40, 41, 42, 43, 44, 46, 49, 50, 52, 55, 56, 59, 60, 62, 66, 68, 69, 70, 72, 73, 74, 89, 90, 91, 94, 96, 104, 108, 119, 124, 128, 161, 178, 190, 191, 197, 218, 265, 270, 277, 278, 279, 291, 296], "from_smil": [10, 108, 168, 174, 178, 184], "true": [10, 27, 40, 41, 42, 43, 44, 49, 66, 68, 69, 74, 94, 96, 108, 140, 155, 160, 168, 174, 178, 184, 216, 270, 275, 277, 278, 279, 280, 281, 282, 289, 291, 293, 295, 296], "kwargs_for_oracl": [10, 108], "repres": [10, 20, 56, 68, 73, 108, 154, 293], "It": [10, 26, 55, 56, 89, 106, 265, 267, 270, 274, 275, 289, 290, 293], "name": [10, 17, 22, 23, 26, 27, 28, 29, 46, 49, 50, 60, 62, 72, 73, 74, 89, 91, 94, 96, 104, 108, 218, 221, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 286, 287, 289, 291, 293, 294, 295, 296, 297, 301], "comput": [10, 19, 52, 66, 68, 70, 100, 104, 106, 108, 118, 119, 123, 124, 126, 127, 128, 166, 167, 172, 174, 178, 180, 181, 200, 264, 267, 268, 269, 271, 272, 275, 277, 278, 279, 282, 294], "dock": [10, 103, 104, 105, 106, 107, 108, 109, 264, 268, 272, 274, 294], "score": [10, 103, 104, 105, 119, 124, 128, 268, 271, 272, 274, 275, 277, 278, 279, 294], "an": [10, 19, 22, 28, 29, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 49, 56, 61, 62, 65, 70, 89, 91, 93, 94, 96, 118, 123, 127, 134, 135, 173, 178, 181, 192, 249, 265, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 289, 294, 297, 298, 302], "process": [10, 26, 28, 32, 45, 46, 55, 56, 61, 62, 89, 91, 93, 94, 96, 100, 104, 119, 123, 124, 128, 152, 173, 174, 178, 249, 264, 265, 270, 275, 276, 277, 278, 279, 280, 281, 282, 286, 289, 293, 294, 295, 296, 297], "multipl": [10, 100, 104, 174, 178], "infin": [10, 94, 100, 104, 108, 119, 124, 128, 174, 178, 184], "molecul": [10, 39, 40, 41, 42, 103, 104, 105, 168, 174, 178, 179, 264, 267, 270, 274, 275, 282, 293], "ar": [10, 24, 27, 32, 65, 68, 70, 95, 106, 140, 168, 173, 174, 177, 178, 179, 217, 229, 252, 266, 267, 268, 269, 271, 272, 274, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 297], "smile": [10, 41, 42, 43, 44, 104, 108, 173, 174, 177, 178, 184, 268, 274, 279, 280, 281], "format": [10, 55, 67, 70, 136], "represent": [10, 39, 42, 104, 108, 171, 264, 294], "dict": [10, 24, 26, 55, 89, 90, 94, 96, 100, 104, 108, 265, 296], "addit": [10, 26, 46, 55, 59, 94, 96, 108, 271], "keyword": [10, 26, 46, 55, 89, 94, 96, 108, 265, 277, 278, 289, 295], "argument": [10, 22, 26, 28, 29, 46, 55, 89, 94, 96, 108, 277, 278, 289, 295], "custom": [11, 295], "packag": [11, 13, 43, 44, 48, 275, 289, 293, 294, 296], "rais": [12, 15, 40, 41, 43, 44, 49, 50, 56, 65, 68, 69, 266, 269, 290, 295], "when": [12, 55, 94, 96, 265, 271, 274, 291, 293, 295], "exhaust": 12, "multi_object": 14, "version": [14, 46, 66, 93, 106, 166, 177, 179, 266, 267, 268, 269, 270, 271, 275, 286, 290, 291, 301, 302], "mean": [14, 70, 138, 168, 279, 286, 294, 298], "simpli": [14, 266, 267, 274, 275, 276, 279, 282, 290, 291, 293], "concaten": [14, 15, 174, 178], "result": [14, 15, 66, 174, 178, 270, 291, 294], "individu": [14, 15, 67, 191, 270, 289, 291, 294], "objective_funct": [15, 302], "list": [15, 17, 20, 25, 26, 28, 40, 41, 42, 43, 44, 59, 60, 66, 67, 68, 69, 70, 72, 73, 119, 124, 128, 134, 148, 155, 178, 189, 191, 194, 265, 268, 270, 271, 274, 277, 278, 289, 291, 293, 296], "multi": [15, 264, 302], "requir": [15, 20, 48, 49, 106, 173, 177, 265, 266, 268, 270, 271, 274, 289, 290, 291, 293, 294, 295], "valueerror": [15, 50, 69], "e": [16, 49, 64, 70, 96, 100, 106, 134, 135, 139, 171, 174, 178, 179, 216, 224, 264, 266, 267, 268, 270, 271, 272, 274, 276, 277, 278, 279, 287, 290, 291, 295, 296], "g": [16, 64, 70, 134, 135, 179, 266, 267, 268, 270, 272, 277, 278, 287, 290, 291, 295, 296], "alphabet": [16, 17, 20, 100, 104, 119, 124, 128, 178, 218, 265, 266, 276, 277, 278, 281, 289, 290, 291, 293, 296, 302, 303, 304], "sequenc": [16, 17, 65, 99, 100, 101, 110, 134, 135, 136, 137, 141, 142, 143, 166, 167, 264, 266, 268, 270, 273, 287, 289, 290, 293, 296], "length": [16, 17, 37, 68, 69, 145, 270, 296], "max_sequence_length": [17, 265, 289, 291, 296], "align": [17, 265, 291, 296], "log_transform_recommend": [17, 291], "s": [17, 20, 43, 44, 64, 65, 96, 106, 119, 124, 128, 131, 171, 173, 174, 177, 178, 179, 200, 214, 229, 264, 265, 267, 268, 272, 275, 276, 277, 278, 279, 282, 286, 289, 290, 291, 293, 294, 295, 297, 301, 302], "longest": 17, "have": [17, 27, 37, 106, 119, 124, 128, 200, 248, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 290, 293, 295, 296], "been": [17, 200, 269], "charact": 17, "mai": [17, 27, 171, 264], "appear": [17, 265, 267, 270], "recommend": [17, 106, 267, 268, 271, 274, 275, 276, 298], "algorithm": [17, 32, 217, 252, 264, 266, 270, 286, 290, 291, 293, 295, 296, 297, 302], "log": [17, 46, 158, 166, 172, 173, 174, 268, 272, 296], "transform": [17, 39, 187, 192, 193], "target": [17, 100, 104, 294], "foldx": [19, 20, 67, 70, 118, 119, 120, 121, 123, 124, 126, 127, 128, 129, 171, 180, 181, 267, 268, 270, 272, 289, 294, 296], "simul": [19, 20, 65, 66, 118, 119, 123, 124, 127, 128, 181, 194, 200, 265, 267], "free": [19, 118, 123, 127, 181, 265, 266, 269, 270, 293], "energi": [19, 66, 118, 123, 127, 181, 269, 278], "between": [19, 68, 70, 100, 118, 123, 127, 177, 181, 280], "wildtyp": [19, 20, 69, 70, 118, 119, 123, 124, 127, 128, 171, 181, 268, 271, 272, 277, 278], "mutat": [19, 20, 66, 118, 123, 127, 136, 181, 264, 266, 268, 271, 272, 277, 290, 293, 295, 302], "web": [19, 65, 118, 123, 127, 181], "server": [19, 55, 56, 65, 118, 123, 127, 181], "onlin": [19, 65, 118, 123, 127, 181], "forc": [19, 26, 65, 118, 123, 127, 181, 249], "field": [19, 65, 118, 123, 127, 181], "nucleic": [19, 65, 118, 123, 127, 181], "acid": [19, 20, 64, 65, 118, 119, 123, 124, 127, 128, 134, 135, 137, 142, 143, 181], "research": [19, 65, 118, 123, 127, 181, 264], "schymkowitz": [19, 65, 118, 123, 127, 181, 268, 270], "j": [19, 65, 103, 104, 105, 118, 123, 127, 181, 264, 291], "borg": [19, 65, 118, 123, 127, 181, 270], "stricher": [19, 65, 118, 123, 127, 181, 270], "ny": [19, 65, 118, 123, 127, 181], "r": [19, 64, 65, 70, 118, 123, 127, 181, 200, 264, 271, 275, 291], "rousseau": [19, 65, 118, 123, 127, 181, 270], "serrano": [19, 65, 118, 123, 127, 181, 270], "l": [19, 64, 65, 96, 99, 100, 101, 118, 123, 127, 144, 149, 150, 151, 171, 181, 264, 265, 266, 267, 273, 285, 287, 290, 291, 293, 294, 296], "2005": [19, 65, 118, 123, 127, 181, 268], "33": [19, 65, 118, 123, 127, 156, 181, 270], "suppl_2": [19, 65, 118, 123, 127, 181], "w382": [19, 65, 118, 123, 127, 181], "w388": [19, 65, 118, 123, 127, 181], "wildtype_pdb_path": [20, 119, 124, 128, 271, 289], "union": [20, 26, 59, 60, 66, 69, 119, 124, 128], "path": [20, 26, 28, 49, 52, 59, 60, 66, 69, 72, 73, 74, 106, 119, 124, 128, 147, 198, 265, 270, 271, 276, 277, 278, 279, 282, 289, 291], "experiment_id": [20, 119, 124, 128, 291], "tmp_folder": [20, 119, 124, 128], "eager_repair": [20, 119, 124, 128, 277, 278], "verbos": [20, 49, 66, 72, 73, 74, 119, 124, 128, 266, 295], "pdb": [20, 66, 69, 70, 71, 72, 73, 74, 119, 123, 124, 128, 171, 267, 271, 275, 277, 278, 289, 294], "file": [20, 27, 65, 66, 67, 69, 70, 71, 72, 73, 74, 95, 99, 106, 119, 123, 124, 128, 171, 173, 177, 217, 223, 264, 265, 267, 269, 271, 274, 276, 279, 282, 289, 291, 296], "amino": [20, 64, 119, 124, 128, 134, 135, 137, 142, 143], "experi": [20, 119, 124, 128, 139, 200, 291], "id": [20, 67, 119, 124, 128, 189, 248, 264, 265, 270, 291, 296], "temporari": [20, 119, 124, 128], "folder": [20, 27, 49, 99, 106, 119, 124, 128, 173, 177, 217, 223, 265, 267, 269, 282, 291, 296], "eagerli": [20, 119, 124, 128], "repair": [20, 65, 66, 119, 124, 128, 289], "print": [20, 37, 49, 66, 72, 73, 74, 96, 119, 124, 128, 265, 266, 267, 270, 273, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 302, 303, 304], "output": [20, 66, 72, 73, 74, 119, 124, 128, 194, 268, 270, 279, 289, 293, 294], "wildtype_residu": [20, 70], "residu": [20, 67, 69, 70, 72, 73, 270], "each": [20, 32, 37, 68, 70, 137, 142, 268, 270, 291, 294, 295, 298], "wildtype_amino_acid": 20, "wildtype_residue_str": [20, 70], "string": [20, 39, 40, 41, 42, 43, 44, 55, 60, 68, 69, 70, 72, 89, 90, 91, 104, 108, 135, 136, 145, 173, 174, 177, 178, 184, 190, 191, 266, 268, 270, 271, 273, 277, 278, 280, 281, 287, 290, 295, 296, 303, 304], "create_working_directori": 20, "work": [20, 37, 59, 60, 66, 96, 106, 209, 213, 256, 257, 266, 267, 269, 270, 272, 274, 275, 280, 281, 282, 289, 290, 291, 293, 295, 297], "directori": [20, 59, 60, 66, 269, 270, 271, 275, 276, 277, 278, 282, 291], "regist": [21, 25, 26, 27, 28, 29, 94, 95, 96, 106, 267, 271, 274, 277, 278, 280, 281, 293, 294], "observer_nam": [22, 28, 29, 46, 62, 288], "delet": [22, 23, 291], "run": [22, 26, 27, 28, 29, 45, 55, 57, 58, 59, 60, 66, 94, 96, 106, 124, 173, 177, 229, 265, 266, 267, 268, 269, 270, 290, 291, 293, 295, 296], "script": [22, 26, 28, 29, 55, 57, 58, 59, 60, 61, 65, 88, 99, 106, 123, 173, 177, 200, 217, 223, 265, 271, 275, 291, 295, 296], "take": [22, 23, 26, 27, 28, 29, 55, 191, 194, 264, 265, 266, 273, 286, 287, 289, 290, 293, 296, 297], "pass": [22, 26, 28, 29, 46, 55, 70, 74, 89, 90, 94, 265, 270, 276, 277, 278, 289, 296], "locat": [22, 28, 29, 65, 214, 221, 270, 303, 304], "note": [22, 25, 28, 29, 49, 55, 56, 62, 66, 119, 124, 128], "must": [22, 28, 29, 267, 273, 285, 286, 287], "accept": [22, 28, 29, 55], "port": [22, 28, 29, 55, 56, 62, 91], "password": [22, 28, 29, 55, 56, 62, 91], "problem_nam": [23, 265, 285, 289], "configur": [23, 26, 29, 95], "dictionari": [24, 55, 90, 289], "problem_factori": [24, 26, 60, 274, 298, 302, 303, 304], "only_avail": [25, 289, 293], "includ": [25, 106, 265, 267, 268, 271, 274, 275, 286, 289, 291, 294, 295, 296, 297], "can": [25, 26, 27, 28, 37, 45, 55, 62, 74, 106, 155, 171, 174, 178, 196, 265, 266, 267, 269, 270, 271, 274, 275, 279, 280, 281, 282, 285, 286, 289, 290, 291, 293, 294, 295, 296, 301], "import": [25, 27, 50, 65, 96, 167, 265, 267, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "directli": [25, 173, 206, 270, 271, 274, 294], "problem_list": 25, "repositori": [25, 27, 47, 48, 49, 50, 92, 103, 131, 200, 206, 229, 264, 266, 267, 268, 271, 274, 276, 279, 289, 291, 293, 294], "otherwis": [25, 42, 69, 270, 277, 278], "user": [25, 28, 49, 55, 119, 124, 128, 154, 252, 266, 270, 289, 290, 291, 293, 294, 296], "readili": 25, "conda_environment_nam": [26, 60, 265, 296], "python_path": [26, 28, 59, 60, 296], "conda": [26, 28, 59, 60, 99, 106, 173, 177, 217, 223, 266, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 290, 294], "environ": [26, 27, 28, 49, 59, 60, 99, 173, 177, 217, 223, 264, 266, 267, 268, 270, 271, 274, 277, 278, 280, 281, 282, 285, 290, 294, 295], "python": [26, 28, 37, 59, 60, 64, 87, 96, 106, 118, 123, 127, 181, 264, 265, 267, 268, 275, 277, 278, 294], "With": [26, 28, 295, 296], "instanti": [26, 28, 29, 46, 62, 89, 91, 93, 94, 96, 266, 290, 291, 294, 295, 296], "separ": [26, 28], "also": [26, 89, 106, 123, 265, 267, 268, 271, 276, 277, 278, 279, 286, 289, 291, 293, 295, 296, 301], "later": 26, "append": [26, 28, 60, 290, 291], "overwrit": [26, 49, 66, 94, 96, 291, 296], "exist": [26, 49, 50, 265, 270, 289, 294], "quiet": [27, 94, 270], "correspond": [27, 100, 104, 135, 224, 270], "objective_repositori": [27, 265, 271, 274, 275, 276, 279, 294, 296, 298, 302, 303, 304], "yaml": 27, "said": [27, 265, 266, 276, 290, 296], "enviro": [27, 265, 266, 290, 296], "sinc": [27, 70, 106, 252, 265, 266, 269, 270, 274, 275, 276, 279, 286, 289, 290, 293, 295, 296, 297], "t": [27, 64, 107, 118, 123, 127, 181, 183, 264, 265, 268, 269, 270, 274, 275, 276, 279, 291, 294, 295, 296], "depend": [27, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293], "instal": [27, 48, 119, 124, 128, 173, 177, 268, 270, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294, 295, 296], "squelch": [27, 94], "feedback": [27, 94, 270], "creation": [27, 32, 94, 265, 286, 302], "registr": [27, 94, 96, 99, 173, 177, 217, 223, 265, 294, 295, 296], "conda_environment_loc": 28, "extern": [28, 45, 46, 61, 89, 93, 293], "externalobserv": [28, 288], "relev": [28, 270, 271, 274, 275, 276, 277, 278, 280, 281, 282, 286, 296], "script_file_nam": 29, "run_script": [29, 55, 59, 60], "call": [29, 32, 49, 55, 61, 62, 94, 99, 119, 124, 128, 173, 177, 217, 223, 265, 266, 267, 268, 269, 270, 271, 274, 276, 277, 278, 280, 281, 289, 291, 293], "monitor": 32, "progress": [32, 49, 74, 290], "valu": [32, 64, 86, 87, 94, 96, 139, 140, 146, 216, 270, 276, 279, 286, 289], "decis": 32, "variabl": [32, 49, 174, 178, 270, 276, 286], "iter": [32, 37, 266, 290, 293, 295, 298], "np": [32, 94, 96, 200, 218, 265, 266, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 296, 297, 298, 301, 302, 303, 304], "ndarrai": [32, 94, 144, 188, 189, 190, 192, 193, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 265, 266, 289, 290, 291, 296], "y": [32, 46, 64, 94, 96, 140, 146, 266, 271, 274, 281, 289, 290, 291], "everi": [32, 291], "time": [32, 56, 265, 270, 271, 291, 302], "initialize_observ": [32, 46, 291], "problem_setup_info": [32, 291], "caller_info": [32, 46, 96, 291, 295, 296], "x0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "y0": [32, 46, 94, 265, 266, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 293, 294, 295, 296, 297, 298, 301, 302, 303, 304], "seed": [32, 46, 94, 96, 160, 164, 193, 257, 265, 291, 296], "necessari": [32, 66, 265, 276, 277, 278, 296], "finish": [32, 46, 270, 291], "perform": [32, 86, 87, 100, 119, 128, 174, 178, 266, 268, 270, 289, 290, 295, 297, 298], "ani": [32, 55, 94, 96, 150, 151, 197, 265, 270, 287, 289, 291, 293, 295, 296], "cleanup": 32, "final": [32, 291], "step": [32, 266, 276, 289, 295, 296], "complet": [32, 270, 296], "model": [34, 65, 103, 104, 105, 139, 140, 152, 154, 156, 264, 265, 270, 271, 297], "check": [34, 51, 65, 68, 221, 265, 266, 270, 271, 277, 278, 279, 286, 290, 291, 293, 294, 295, 296], "inde": [34, 249, 270, 277, 278, 295, 296], "gener": [36, 37, 55, 59, 60, 84, 85, 86, 87, 94, 96, 224, 270, 289, 297], "chunk_siz": 37, "element": [37, 289], "3": [37, 134, 135, 265, 267, 268, 270, 273, 285, 287, 289, 291, 293, 296, 297, 298], "12": [37, 65, 110, 166, 167, 171, 264], "replac": [37, 68, 70, 171, 189, 271, 289, 303, 304], "built": [37, 90, 91, 138, 267], "itertool": 37, "doc": [37, 49, 270], "html": [37, 200, 264, 289, 293], "yield": [37, 103, 104, 105, 264], "tupl": [37, 68, 69, 94, 218, 265, 296], "equal": [37, 68, 295], "exampl": [37, 50, 52, 68, 70, 96, 99, 220, 256, 257, 265, 267, 268, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 293, 294, 295, 302], "4": [37, 145, 156, 264, 269, 275, 293], "5": [37, 66, 99, 100, 101, 177, 179, 212, 267, 268, 270, 272, 273, 289, 291, 293, 295, 296, 302], "6": [37, 264, 270, 293], "7": [37, 66, 270, 277, 278, 293], "8": [37, 103, 104, 105, 264, 270, 293], "9": [37, 264, 265, 267, 268, 270, 274, 289, 293, 294, 296], "rdkit": [39, 40, 41, 42, 50, 172, 173, 174, 176, 177, 178, 268, 272, 274, 280, 281, 282, 296], "selfies_str": [40, 43], "chem": [40, 41, 42, 107, 174, 177, 178, 183], "mol": [40, 41, 42], "convert": [40, 41, 42, 55, 134, 135, 140, 145], "selfi": [40, 42, 43, 44, 104, 173, 174, 177, 178, 268, 274, 279, 280, 281], "strict": [40, 41, 43, 44, 49, 68], "error": [40, 41, 43, 44, 49, 65, 265, 289], "fail": [40, 174, 178, 295], "decod": [40, 150, 154, 155, 194, 197], "smiles_str": [41, 43, 44], "cannot": [41, 43, 44, 174, 178], "pars": [41, 43, 44, 71, 72, 73, 74, 90, 174, 178, 190], "molecule_str": 42, "from_selfi": [42, 174, 178], "assum": [42, 70, 174, 178, 252, 265, 266, 270, 271, 274, 277, 278, 279, 280, 281, 285, 289, 290, 293], "translat": [43, 44], "els": [43, 44, 265, 296], "those": [43, 44], "aspuru": [43, 44, 264], "guzik": [43, 44, 264], "lab": [43, 44], "group": [43, 44], "isol": [45, 46, 88, 89, 93, 94, 96, 173, 249, 265, 268, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 289, 291, 296], "kwargs_for_observ": 46, "send": [46, 62], "verifi": [46, 51, 291, 294], "wa": [46, 48, 70, 167, 266, 270, 275, 279, 289, 290], "correctli": [46, 269], "setup_info": 46, "start": [46, 55, 61, 62, 91, 171, 270, 271, 289, 291, 293, 294, 295, 296], "close": [46, 96, 280, 281], "__getattr__": 46, "__name": 46, "retriev": [46, 62, 109], "attribut": [46, 62, 150, 151, 197, 270, 289], "underli": 46, "download": [47, 48, 49, 51, 106, 265, 269, 271, 276, 282, 289], "github": [47, 48, 49, 50, 106, 265, 267, 268, 270, 271, 276, 279, 296], "pygithub": [48, 50, 276], "pip": [48, 106, 173, 177, 265, 267, 268, 270, 276, 277, 278, 279, 280, 281, 294, 296], "most": [48, 137, 272], "code": [48, 51, 152, 171, 265, 270, 275, 276, 279, 282, 293, 296], "taken": [48, 206, 271, 294], "adapt": [48, 264, 270, 298], "gist": 48, "com": [48, 49, 106, 265, 267, 268, 269, 270, 276, 279, 296], "pdashford": 48, "2e4bcd4fc2343e2fd03efe4da17f577d": 48, "permalink_comment_id": 48, "4274705": 48, "gistcom": 48, "repository_nam": 49, "file_path_in_repositori": 49, "download_path_for_fil": 49, "tag": [49, 50], "master": [49, 267, 296], "commit_sha": [49, 50], "exist_ok": [49, 270, 291], "parent_folders_exist_ok": 49, "i": [49, 64, 100, 118, 123, 127, 139, 174, 178, 181, 216, 224, 264, 266, 268, 270, 271, 274, 278, 290, 291, 296], "repo": [49, 106, 267, 275], "download_path": 49, "branch": [49, 50, 267], "sha": [49, 50], "commit": [49, 50, 271], "exists_ok": 49, "parent": [49, 265, 270, 271, 291, 302], "thei": [49, 65, 167, 168, 270, 279, 289, 291], "do": [49, 106, 167, 266, 270, 276, 279, 290, 294, 296], "except": [49, 56, 62, 265], "github_token_for_poli": [49, 276], "doe": [49, 167], "try": [49, 265, 277, 278], "without": [49, 94, 96, 173, 177, 248, 265, 266, 290, 293, 295, 296], "rate": 49, "limit": [49, 221, 271, 276], "60": 49, "request": [49, 91, 270], "per": 49, "hour": 49, "anonym": [49, 276], "To": [49, 267, 268, 269, 270, 271, 274, 279, 296], "token": [49, 145, 174, 178, 189, 191, 276, 293, 296, 303, 304], "like": [49, 96, 106, 209, 265, 266, 269, 275, 286, 289, 290, 291, 293, 294, 295, 296, 297], "follow": [49, 64, 265, 266, 267, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 290, 293, 294, 295, 296, 301], "instruct": [49, 229, 265, 266, 293], "here": [49, 265, 268, 270, 276, 289, 296, 302], "en": [49, 220, 289, 293], "authent": [49, 55, 56], "keep": [49, 70, 265, 277, 278], "your": [49, 106, 266, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 294], "account": 49, "secur": 49, "person": [49, 276], "fine": [49, 267], "grain": 49, "get_repo": 50, "release_2023_09": 50, "068441957858f786c227825d90eb2c43f4f2b000": 50, "internet": 51, "reproduc": 51, "purpos": 51, "make": [51, 267, 269, 270, 271, 274, 276, 289, 295, 296, 302], "sure": [51, 267, 269, 270, 271, 274, 276, 291, 295, 296], "malici": 51, "being": [51, 269, 271, 276], "filepath": 52, "read_mod": 52, "rb": 52, "md5": [52, 271], "hex": 52, "digest": 52, "open": [52, 171, 270, 291], "binari": [52, 66, 106, 119, 124, 128, 270, 276, 277, 278], "form": [52, 270], "mode": [52, 67], "read": [52, 66, 147, 270, 291, 295], "hex_digest": 52, "txt": [52, 66, 70, 269, 270, 276, 277, 278, 291], "d41d8cd98f00b204e9800998ecf8427": 52, "wrap": [53, 54, 296], "interprocess": [53, 54], "commun": [53, 54, 55, 93], "kwargs_for_factori": [55, 94, 96], "connect": [55, 56, 62, 91, 154], "inter": 55, "These": [55, 268, 270, 271, 272, 276, 286, 289, 291, 293], "inner": 55, "up": [55, 56, 266, 274, 275, 289, 290, 291, 296], "listen": [55, 91, 294], "random": [55, 84, 85, 86, 87, 94, 96, 266, 268, 290, 293, 295, 297, 298, 301, 302, 304], "subprocess": [55, 270], "expect": [55, 65, 66, 67, 70, 106, 119, 124, 128, 174, 270, 276, 277, 278, 279, 291, 296], "well": [55, 267, 270, 274, 294, 295, 297], "other": [55, 174, 178, 265, 269, 289, 291, 294, 295, 296], "objective_factori": [55, 248, 265, 267, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 291, 293, 295, 296, 297, 301], "determin": 55, "client": 56, "get": [56, 61, 74, 265, 266, 270, 271, 272, 290, 291, 293, 295, 296], "eoferror": 56, "host": 56, "readi": [56, 140], "yet": [56, 265, 290], "connectionrefusederror": 56, "refus": 56, "attempt": 56, "establish": [56, 62], "retri": 56, "befor": [56, 59, 289, 295, 296], "conda_environ": 59, "cwd": [59, 60, 270], "activ": [59, 265, 267, 268, 271, 274, 276, 279, 291], "ad": [59, 106, 248, 275, 291, 296], "current": [59, 271, 274, 277, 278, 279, 280, 281, 285, 293, 294], "either": [60, 104, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 291, 301], "mother": [61, 62, 91], "receiv": 62, "wait": [62, 91, 296], "occur": 62, "sent": [62, 194], "back": [62, 187], "quit": [62, 265, 271, 293], "messag": [62, 94, 289], "encod": [64, 143, 144, 154, 155, 178, 276, 277, 278], "For": [64, 70, 106, 139, 166, 171, 221, 252, 265, 268, 270, 275, 276, 279, 286, 289, 291, 293, 294, 296, 298], "amino_acid": 64, "n": [64, 103, 104, 105, 221, 264, 267, 268, 270, 271, 282, 286, 287, 291, 294], "d": [64, 171, 200, 216, 264, 269, 286, 291], "c": [64, 103, 104, 105, 264, 265, 267, 270, 274, 275, 280, 281, 282, 291, 296], "q": [64, 264, 291], "h": [64, 99, 100, 101, 192, 197, 264, 291, 296], "k": [64, 107, 173, 183, 212, 264, 291], "m": [64, 145, 171, 264, 270, 291], "p": [64, 264, 291], "v": [64, 66, 291], "measur": [65, 139, 270, 280, 281], "stabil": [65, 66, 121, 123, 124, 126, 127, 171, 180, 181, 264, 267, 268, 270, 272, 277, 294], "sasa": [65, 66, 116, 118, 119, 120, 126, 127, 128, 129, 180, 181, 268, 272, 277, 278], "foldxinterfac": 65, "queri": [65, 265, 266, 273, 275, 276, 277, 278, 280, 281, 282, 285, 286, 287, 290, 296], "heavili": [65, 270], "inspir": [65, 270], "wai": [65, 266, 267, 270, 271, 274, 277, 278, 280, 281, 290, 291, 294], "lambo": [65, 106, 110, 113, 115, 166, 167, 168, 268, 270, 272, 275, 289], "automat": [65, 96, 264, 265, 269, 279], "acceler": [65, 110, 166, 167, 264], "bayesian": [65, 110, 166, 167, 252, 264, 266, 268, 290], "biolog": [65, 110, 166, 167, 264], "design": [65, 103, 104, 105, 110, 154, 166, 167, 264, 266, 269, 272, 274, 289, 290, 293, 296], "withdenois": 65, "autoencod": [65, 110, 154, 166, 167, 264, 297], "stanton": [65, 110, 166, 167, 264, 268, 269, 270, 279, 289], "samuel": [65, 110, 166, 167, 264], "weslei": [65, 110, 166, 167, 264], "maddox": [65, 110, 166, 167, 264], "nate": [65, 110, 166, 167, 264], "gruver": [65, 110, 166, 167, 264], "phillip": [65, 110, 166, 167, 264], "maffetton": [65, 110, 166, 167, 264], "emili": [65, 110, 166, 167, 264], "delanei": [65, 110, 166, 167, 264], "peyton": [65, 110, 166, 167, 264], "greensid": [65, 110, 166, 167, 264], "andrew": [65, 110, 166, 167, 264], "gordon": [65, 110, 166, 167, 264], "wilson": [65, 110, 166, 167, 264], "arxiv": [65, 110, 166, 167, 264], "juli": [65, 110, 166, 167], "ab": [65, 110, 166, 167, 264], "2203": [65, 110, 166, 167, 264], "12742": [65, 110, 166, 167, 264], "samuelstanton": [65, 106, 276, 279], "working_dir": [66, 270], "interact": [66, 270], "engin": [66, 200, 297], "softwar": [66, 268, 269], "where": [66, 99, 100, 101, 155, 265, 266, 268, 270, 275, 282, 290, 294], "store": [66, 271, 289], "pdb_file": 66, "remove_and_renam": 66, "ph": [66, 270, 277, 278], "remove_heteroatom": 66, "_repair_if_necessary_and_provide_path": 66, "_simulate_mut": 66, "_read_energi": 66, "_compute_sasa": 66, "solvent": [66, 116, 119, 120, 126, 128, 129, 180, 264, 268, 270, 272], "surfac": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "area": [66, 116, 119, 120, 126, 128, 129, 180, 268, 270, 272, 277], "compute_st": 66, "structur": [66, 72, 73, 74, 106, 124, 270, 275, 291], "compute_sasa": 66, "compute_stability_and_sasa": 66, "singl": [66, 70, 171, 200, 264, 268, 271, 272, 280, 281, 289, 291, 297, 301], "copy_foldx_fil": 66, "copi": [66, 266, 270, 290, 302], "write_mutations_to_fil": 66, "wildtype_resiud": 66, "output_dir": 66, "write": [66, 106, 265, 267, 270, 275, 283, 284, 288, 291, 292, 296, 299, 300], "stdout": 66, "previou": [66, 94, 96, 270, 291, 295], "reli": [66, 248, 286], "rotabas": [66, 269, 270, 276, 277, 278], "longer": 66, "manipul": [67, 265, 267, 268], "accord": [67, 138, 270, 293, 296], "certain": [67, 265, 268, 270, 274, 295], "first": [67, 68, 70, 265, 270, 271, 273, 289, 290, 295, 296], "letter": [67, 70, 99, 100, 101, 268, 270, 272, 273, 296], "second": [67, 68, 70, 148, 270, 295, 296], "posit": [67, 68, 70, 137, 142, 266, 270, 271, 289, 290, 293], "third": [67, 70], "chain": [67, 70, 270], "fourth": [67, 70], "mutant": [67, 69, 70, 171, 266, 270, 290], "foldxsuit": [67, 269, 270], "crg": [67, 269, 270], "eu": [67, 269, 270], "string_1": 68, "string_2": 68, "edit": [68, 171, 271], "oper": [68, 269, 295], "assertionerror": [68, 295], "abc": 68, "abd": 68, "def": [68, 265, 266, 290, 291, 296], "wildtype_pdb_fil": [69, 277, 278], "mutated_residue_str": [69, 70], "return_hamming_dist": 69, "find": [69, 99, 100, 101, 106, 265, 271, 274, 275, 291, 293, 295], "closest": 69, "ham": 69, "distanc": [69, 70, 100, 271, 273], "along": 69, "best": [69, 266, 289, 290, 298, 302], "candid": [69, 266], "found": [69, 267, 270, 289, 293, 296], "bio": [70, 73, 74, 270], "individual_list": [70, 270], "levenshtein": [70, 277, 278], "track": [70, 264, 265], "written": 70, "line": [70, 268, 270], "ea1r": 70, "still": [70, 294], "need": [70, 106, 265, 269, 270, 275, 276, 277, 278, 279, 289, 291, 295], "dummi": 70, "itself": [70, 265, 267], "ecd": 70, "acd": 70, "would": [70, 270, 271, 274, 291, 296], "ea1a": 70, "load": [71, 95, 131, 139, 148, 198, 270, 289, 291], "them": [71, 106, 252, 265, 266, 267, 270, 271, 272, 275, 290, 293], "path_to_pdb": [72, 73, 74], "structure_nam": [72, 73, 74], "done": [74, 106, 270, 275, 276, 279, 293], "quietli": 74, "some": [74, 152, 168, 252, 267, 268, 270, 276, 279, 286, 291, 293, 296], "get_structur": [74, 270], "pdbparser": [74, 270], "numpi": [86, 190, 265, 267, 268, 271, 273, 274, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 291, 296, 297, 301, 302, 303, 304], "obj": 89, "dynam": 89, "intern": [89, 264, 265, 282, 285, 293], "constructor": 89, "factory_kwarg": [90, 91], "processwrapp": [90, 91, 93], "how": [90, 91, 106, 229, 265, 266, 267, 268, 270, 272, 289, 290, 291, 293, 295, 296], "objective_nam": 91, "loop": [91, 248, 264, 297], "process_wrapp": 93, "observer_init_info": 94, "force_regist": [94, 96, 275, 277, 278, 280, 281, 282], "force_isol": [94, 96], "instantiant": 94, "associ": [94, 264, 289, 294], "caller": [94, 96, 291], "forward": [94, 96, 291], "logger": [94, 96], "ask": [94, 96, 279], "confirm": [94, 96], "By": [94, 124, 174, 178, 218, 266, 277, 278, 295, 297, 301], "onc": [94, 265, 274, 293, 295, 296], "round": [94, 224, 264], "down": 94, "give": [94, 188, 252, 274, 296], "config": [95, 115, 289], "configpars": 95, "just": [96, 276, 277, 278, 279, 289, 291, 295, 296], "One": [96, 269], "aloha": [96, 267, 268, 272, 289, 290, 293, 296, 302], "arrai": [96, 134, 135, 144, 145, 187, 190, 192, 265, 267, 268, 271, 273, 274, 277, 278, 280, 281, 285, 286, 287, 289, 291, 293, 294, 296], "reshap": [96, 266, 280, 281, 296, 297, 301], "simpl": [99, 100, 101, 103, 104, 105, 138, 173, 174, 177, 178, 265, 266, 289, 290, 293, 295, 296], "goal": [99, 100, 101], "o": [99, 100, 101, 273, 274, 291, 296], "among": [99, 100, 101, 269, 270, 295], "poli__bas": [99, 217, 223], "yml": [99, 106, 173, 177, 217, 223, 271, 274, 276, 279, 294, 296], "simultan": [100, 104, 108, 174, 178, 184, 271], "map": [100, 104], "symbol": [100, 104], "main": [100, 174, 178, 266, 267, 268, 269, 270, 290, 291, 296], "api": [103, 104, 105, 267, 276], "assess": [103, 104, 105, 171, 272], "small": [103, 104, 105, 174, 265, 267, 274, 275, 282, 291, 293, 295], "protein": [103, 104, 105, 118, 123, 124, 127, 171, 181, 264, 267, 269, 271, 274, 275, 293, 294], "easi": [103, 104, 105, 264, 265, 270, 293, 295], "molecular": [103, 104, 105, 118, 123, 127, 181, 264], "better": [103, 104, 105, 264, 265, 270], "benchmark": [103, 104, 105, 200, 217, 221, 264, 268, 272], "ligand": [103, 104, 105, 264, 268, 272, 274], "garc\u00eda": [103, 104, 105, 264, 268, 274], "orteg\u00f3n": [103, 104, 105, 264, 268, 274], "miguel": [103, 104, 105, 264, 268], "gregor": [103, 104, 105, 264], "simm": [103, 104, 105, 264], "austin": [103, 104, 105, 264], "tripp": [103, 104, 105, 264], "jos\u00e9": [103, 104, 105, 171, 264], "hern\u00e1ndez": [103, 104, 105, 264], "lobato": [103, 104, 105, 264], "andrea": [103, 104, 105, 264], "bender": [103, 104, 105, 264], "sergio": [103, 104, 105, 264], "bacallado": [103, 104, 105, 264], "journal": [103, 104, 105, 264], "62": [103, 104, 105, 264], "15": [103, 104, 105, 264, 302], "august": [103, 104, 105, 264], "3486": [103, 104, 105, 264], "3502": [103, 104, 105, 264], "1021": [103, 104, 105, 264], "ac": [103, 104, 105, 264], "jcim": [103, 104, 105, 264], "1c01334": [103, 104, 105, 264], "target_nam": [104, 274, 294], "string_represent": [104, 274, 279, 280, 281], "liter": [104, 221, 265], "There": [106, 289, 291, 294], "sever": [106, 200, 209, 217, 270, 271, 295, 296], "prepare_receptor": 106, "rest": [106, 265, 291, 293], "descript": [106, 265, 271, 274, 289, 291, 296], "show": [106, 267, 270, 289, 296], "center": [106, 275], "websit": [106, 275], "scripp": 106, "edu": 106, "uncompress": [106, 275], "add": [106, 139, 188, 265, 276, 277, 278, 279, 290], "export": [106, 275], "autodock_vina": [106, 275], "bin": [106, 275], "bashrc": [106, 275], "zshrc": [106, 275], "bash": 106, "In": [106, 166, 168, 264, 266, 267, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, 285, 286, 289, 290, 291, 293, 294, 295, 296, 298, 302], "ccsb": 106, "sh": [106, 275, 296], "thu": [106, 275], "might": [106, 200, 265, 267, 270, 275, 276, 277, 278, 279, 286, 289, 291, 296], "chang": [106, 118, 123, 127, 131, 148, 181, 267, 269, 270, 275, 277, 278, 286], "its": [106, 266, 270, 271, 274, 275, 277, 289, 290, 294, 295, 296], "permiss": [106, 275], "chmod": [106, 275], "abl": [106, 265, 267, 269, 270, 275, 291, 294, 296], "pyscreen": [106, 268, 275], "howev": [106, 271, 275, 294, 296], "sometim": [106, 275], "problemat": [106, 275], "ha": [106, 209, 265, 266, 270, 275, 289, 290, 294, 296, 298], "symlink": [106, 275], "ln": [106, 275], "sf": [106, 275], "easili": [106, 270, 275, 289, 295], "env": [106, 265, 267, 271, 274, 275, 276, 279, 289, 293, 294, 296], "src": [106, 265, 271, 274, 275, 276, 279, 289, 294], "ddr3_dock": 106, "task": [106, 107, 110, 113, 115, 148, 264, 270, 276, 279, 297], "git": [106, 265, 267, 268, 276, 279, 296], "clone": [106, 267, 271, 276, 279, 285], "431b052": [106, 276, 279], "cd": [106, 267, 276, 279], "particular": [106, 168, 180, 275, 276, 286, 291, 294, 295, 296], "proxy_rfp": [106, 113, 276], "proxyrfptask": [106, 113, 276], "rfp": [106, 110, 111, 115, 180, 268, 272], "asset": [106, 276], "fpbase": [106, 276], "And": [106, 289, 296], "now": [106, 265, 267, 270, 293, 294, 296], "py": [106, 221, 266, 267, 270, 289, 290, 291, 293, 294, 295, 296], "query_exampl": 106, "ddr3": 107, "et": [107, 183, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 289, 297, 301, 302], "al": [107, 183, 200, 221, 264, 268, 269, 270, 271, 272, 274, 275, 279, 282, 286, 289, 297, 301, 302], "nat": [107, 183], "biol": [107, 183], "1036": [107, 183], "self": [108, 265, 266, 271, 290, 291, 296], "tdcblackbox": 108, "denois": [110, 166, 167, 264], "alia": 112, "base_candid": 113, "specifc": 115, "predict": [116, 138, 139, 157, 171, 264, 268, 270, 272, 297], "pair": [118, 127, 181], "biopython": [118, 123, 127, 181, 270, 277, 278, 294], "cock": [118, 123, 127, 181], "pa": [118, 123, 127, 181], "antao": [118, 123, 127, 181], "jt": [118, 123, 127, 181], "chapman": [118, 123, 127, 181], "ba": [118, 123, 127, 181], "cox": [118, 123, 127, 181], "cj": [118, 123, 127, 181], "dalk": [118, 123, 127, 181], "friedberg": [118, 123, 127, 181], "hamelryck": [118, 123, 127, 181], "kauff": [118, 123, 127, 181], "wilczynski": [118, 123, 127, 181], "b": [118, 123, 127, 181, 192, 265, 267, 273, 285, 286, 287, 291, 293, 296], "de": [118, 123, 127, 181, 264], "hoon": [118, 123, 127, 181], "mjl": [118, 123, 127, 181], "2009": [118, 123, 127, 181, 268], "freeli": [118, 123, 127, 181], "tool": [118, 123, 127, 181, 265, 277, 278, 294, 296], "bioinformat": [118, 123, 127, 181], "25": [118, 123, 127, 181], "1422": [118, 123, 127, 181], "1423": [118, 123, 127, 181], "usual": [119, 124, 215, 217, 265, 266, 268, 272, 286, 291, 295, 296, 297], "eager": [119, 128], "v5": [119, 124, 128], "compil": [119, 124, 128, 156, 271, 289], "specif": [119, 124, 128, 286, 293], "foldxblackbox": [119, 124, 128], "pre": [123, 266, 267, 271, 274, 277, 278], "20": [124, 264], "shown": 124, "core": [124, 265, 266, 288, 289, 290, 294, 295, 296, 302], "through": [124, 266, 267, 290, 293], "total": [124, 138, 270], "cba": [131, 148, 150], "vae": [131, 148, 150, 151, 155, 156, 194, 196, 197, 297], "sb": [131, 148], "bo": 131, "minor": [131, 148], "modif": [131, 148], "conduct": [131, 148], "rm": [131, 148], "creator": [131, 148], "last": [131, 148, 270], "x_aa": [134, 135, 144], "aa_idx": 134, "arn": [134, 135], "becom": [134, 135, 270], "row": [134, 135, 270], "base_seq": 136, "wild": [136, 141, 270], "mtuation": 136, "xt_p": [137, 142], "categor": [137, 142, 158, 196, 197], "probabl": [137, 142], "distribut": [137, 142, 158, 197, 264, 298], "pred": 138, "xt": 138, "predictor": 138, "balaji": 138, "lakshminarayanan": 138, "paper": [138, 150, 264, 294], "scalabl": 138, "uncertainti": [138, 297], "estim": [138, 166, 176, 177, 178, 179, 267, 268, 272], "deep": [138, 171, 264, 297], "ensembl": 138, "2017": [138, 264, 271], "varianc": 138, "random_st": [139, 146], "train_siz": [139, 146], "5000": 139, "return_test": [139, 146], "return_al": 139, "gfp": [139, 140, 141, 147], "test": [139, 200, 266, 286, 290], "ground": 139, "truth": 139, "gp": [139, 161], "partit": [139, 146, 280], "below": [139, 271, 274, 277, 278], "20th": 139, "percentil": [139, 146], "nois": [139, 222, 223, 224, 257, 268, 272], "data_df": 140, "panda": [140, 147, 270], "datafram": [140, 147, 270], "functional_onli": [140, 160], "ignore_stop": [140, 160], "return_str": 140, "raw": 140, "sampl": [142, 193, 264, 287, 291, 297, 303, 304], "aa_str": 143, "pad": [143, 145, 188], "hot": [143, 192], "onehot": 144, "alphabet_s": [144, 266, 290], "dna_str": 145, "base_ord": 145, "atcg": 145, "40": 146, "1000": [146, 295], "df_save_fil": 147, "bright": 147, "author": [148, 166, 268], "credit": 148, "herculean": 148, "go": [148, 268, 269, 296], "aa": [149, 150, 151], "mimic": 150, "kera": [150, 154], "latent_dimension": [150, 151], "enc1_unit": [150, 151, 156], "train": [152, 196], "gaussian": [152, 223, 224, 264, 268, 272, 287, 297], "regress": 152, "sarkisyan": 152, "2016": [152, 264, 297], "plu": [152, 302], "constant": [152, 286], "input_shap": [154, 155], "latent_dim": [154, 155, 156], "variat": [154, 297], "via": [154, 264, 291], "latent": [154, 266, 290, 297], "space": [154, 189, 252, 266, 290, 297, 301], "flatten": [155, 266, 289, 290], "basic": [155, 248, 293, 296], "layer": 155, "n_token": 156, "seq_length": 156, "50": [156, 298], "eps_std": 156, "y_true": [157, 158], "y_pred": [157, 158], "likelihood": 158, "uniqu": [160, 291], "problem_typ": 161, "exact": [166, 266, 271, 274, 290, 296], "logp": [166, 167, 168, 172, 173, 174, 268, 272], "jointli": 166, "quantit": [166, 176, 177, 178, 179, 267, 268, 272], "druglik": [166, 176, 177, 178, 179, 267, 268, 272], "qed": [166, 174, 176, 177, 178, 179, 268, 272], "penal": [166, 168, 268, 272], "solubl": [166, 172, 173, 174, 268, 272], "fair": 166, "comparison": [166, 291], "_exactly_": 167, "adjust": 168, "magic": 168, "empir": [168, 279], "standard": [168, 223, 224, 279, 287], "deviat": [168, 279], "dataset": [168, 200, 264, 279], "todo": [168, 270, 283, 284, 288, 292, 299, 300], "rapid": [171, 264, 268, 272], "sourc": [171, 265], "bird": 171, "ey": 171, "view": [171, 270], "collect": [171, 199, 268, 271], "site": [171, 289, 293, 294], "reader": 171, "consid": [171, 271, 286, 296], "drop": [171, 271, 289, 293], "rosetta": [171, 271], "learn": [171, 264, 271], "blaabjerg": [171, 264, 268, 271], "lass": [171, 264], "maher": [171, 264], "kassem": [171, 264], "lydia": [171, 264], "good": [171, 264, 265, 267, 268, 289, 296], "nicola": [171, 264], "jonsson": [171, 264], "matteo": [171, 264], "cagiada": [171, 264], "kristoff": [171, 264], "johansson": [171, 264], "wouter": [171, 264], "boomsma": [171, 264, 271], "ameli": [171, 264], "stein": [171, 264], "kresten": [171, 264], "lindorff": [171, 264], "larsen": [171, 264], "faraldo": 171, "g\u00f3mez": [171, 264, 297], "detlef": 171, "weigel": 171, "nir": 171, "ben": 171, "tal": 171, "julian": 171, "echav": 171, "elif": [171, 264], "2023": [171, 264, 268, 269, 271], "e82593": [171, 264], "7554": [171, 264], "82593": [171, 264], "whose": [173, 177, 223, 276, 297], "quotient": [173, 268, 272], "descriptor": [173, 296], "both": [173, 177, 270, 277, 278, 295, 296], "poli__chem": [173, 177, 280, 281], "want": [173, 177, 265, 266, 270, 271, 274, 277, 278, 280, 281, 293, 295, 296], "local": [173, 177, 209, 266, 267, 285, 291], "environemnt": [173, 177], "extra": [173, 177, 265, 289, 294], "interest": [173, 267, 270, 271, 274, 277, 278, 285, 286, 291, 293], "molfromsmil": [174, 178], "known": [174, 178, 280, 289], "silent": [174, 178], "nan": [174, 178], "someth": [174, 178], "than": [174, 178, 252, 295, 296], "continu": [177, 179, 199, 200, 217, 218, 252, 264, 272, 293], "lipinski": [177, 179], "rule": [177, 179, 265], "strongli": 178, "advic": [178, 265], "heurist": 179, "discard": 179, "too": 179, "heavi": 179, "pareto": 180, "front": 180, "accessibl": 182, "sa": [182, 268, 272], "toi": [186, 199, 200, 217, 218, 221, 222, 224, 252, 273, 291, 295, 302], "avout": 186, "super": [186, 265, 266, 272, 290, 296], "mario": [186, 189, 196, 272, 296], "bro": [186, 272, 296], "level": [186, 187, 188, 189, 190, 191, 192, 193, 270, 272], "n_pad": 188, "left": 188, "room": 188, "agent": 188, "land": 188, "clean": [189, 270], "remov": [189, 269, 277, 278, 296], "11": [189, 192, 197, 267, 274, 294], "empti": 189, "level_txt": [190, 191], "n_sprite": [192, 197], "integ": [192, 193, 266, 286, 287, 290, 293, 296], "levels_onehot": 193, "probit": 193, "tensor_level": 194, "torch": [194, 296], "tensor": 194, "level_s": 194, "14": [194, 197], "could": [194, 265, 266, 270, 271, 276, 277, 278, 289, 290, 293, 296, 301], "mariogan": 194, "jar": [194, 265], "prob_matrix": 195, "item": [195, 262], "sentenc": 197, "shape": [197, 265, 266, 267, 273, 285, 286, 287, 290, 293], "z_dim": 197, "devic": 197, "path_to_state_dict": 198, "vaemario": 198, "pretrain": 198, "landscap": 200, "signatur": 200, "sign": [200, 286], "flip": [200, 286], "becaus": [200, 296], "re": [200, 265, 267, 270, 271, 290, 291, 293, 296], "deal": 200, "ali": [200, 264], "roomi": [200, 221, 264, 268, 286], "2015": [200, 264, 268, 286], "unconstrain": [200, 221, 264], "www": [200, 264], "halifax": 200, "nova": 200, "scotia": 200, "canada": 200, "dalhousi": 200, "univers": 200, "electr": 200, "surjanov": [200, 268], "bingham": [200, 268], "virtual": 200, "sfu": 200, "ca": 200, "ssurjano": 200, "linebo": [206, 286, 301], "kirschnj": 206, "xy": [209, 213, 214], "cross": 209, "trai": 209, "maxima": [209, 213], "quilt": 209, "pattern": 209, "2d": [209, 213, 214, 252], "alpha": [212, 267, 297], "veri": 213, "flat": 213, "pi": 213, "egg": 214, "holder": 214, "especi": [214, 265, 268], "difficult": 214, "know": [214, 270], "optima": [214, 221], "squar": 215, "norm": 215, "shift": 215, "awai": [215, 271], "bit": [215, 270], "normal": [216, 264, 294, 298], "903534": 216, "39": [216, 276], "16599": 216, "divid": 216, "dimens": [217, 218, 221, 252, 264, 286, 297], "focu": [217, 270, 289, 293], "ones": [217, 265], "dimension": [217, 252, 264], "function_nam": [218, 286, 297, 298, 301], "n_dimens": [218, 286, 297, 298, 301], "embed_in": [218, 221, 286], "randomli": [218, 266, 286, 289, 290, 293, 302, 303, 304], "embed": [218, 252, 286], "emb": [218, 252, 286], "toycontinuousproblem": 218, "bound": 218, "lower": [218, 252], "upper": 218, "seri": 220, "testb": 220, "wikipedia": 220, "wiki": 220, "test_functions_for_optim": 220, "ackley_function_01": [221, 268, 272, 286, 297, 298, 301], "alpine_01": [221, 286], "alpine_02": [221, 286], "bent_cigar": [221, 286], "brown": [221, 286], "chung_reynold": [221, 286], "cosine_mixtur": [221, 286], "deb_01": [221, 286], "deb_02": [221, 286], "deflected_corrugated_spr": [221, 286], "styblinski_tang": 221, "shifted_spher": [221, 286], "easom": [221, 268, 272, 286], "cross_in_trai": [221, 286], "egg_hold": [221, 286], "camelback_2d": [221, 286], "n_dim": 221, "definit": [221, 265, 286], "white": [222, 223, 257, 268, 272], "vector": 224, "downward": 224, "exemplifi": 248, "Not": 248, "come": [248, 265, 274, 293, 295], "benefit": 248, "intellisens": 248, "spawn": 249, "higher": [252, 270], "afford": 252, "intrins": 252, "actual": [252, 265, 286, 294], "readm": [256, 265], "verbatum": 256, "fullnam": 262, "escap": 262, "underlin": 262, "block": [262, 265], "rubric": 262, "endfor": 262, "endif": 262, "endblock": 262, "ar15": 264, "url": [264, 268], "bkj": 264, "maximilian": 264, "balandat": [264, 297, 301], "brian": 264, "karrer": 264, "daniel": 264, "jiang": 264, "daulton": 264, "benjamin": 264, "letham": 264, "eytan": 264, "bakshi": 264, "botorch": [264, 268, 297, 301], "framework": 264, "effici": [264, 291, 297], "mont": 264, "carlo": 264, "decemb": 264, "2020": [264, 268, 297, 301, 302], "1910": 264, "06403": 264, "cs": 264, "math": 264, "stat": 264, "bkg": 264, "23": [264, 267], "bf17": 264, "je": 264, "frellsen": [264, 271], "spheric": 264, "convolut": 264, "applic": 264, "guyon": 264, "u": [264, 291], "von": 264, "luxburg": 264, "bengio": 264, "wallach": 264, "fergu": 264, "vishwanathan": 264, "garnett": 264, "editor": 264, "advanc": 264, "neural": [264, 271], "system": [264, 269, 270], "volum": 264, "30": [264, 286], "curran": 264, "inc": 264, "proceed": 264, "neurip": 264, "cc": [264, 274], "paper_fil": 264, "1113d7a76ffceca1bb350bfe145467c6": 264, "pdf": 264, "dpam02": 264, "deb": [264, 302], "pratap": 264, "agarw": 264, "meyarivan": 264, "fast": 264, "elitist": 264, "multiobject": 264, "genet": [264, 302], "nsga": 264, "ii": 264, "ieee": 264, "transact": 264, "evolutionari": [264, 266, 268, 290, 298], "182": 264, "197": 264, "april": 264, "2002": [264, 302], "1109": 264, "4235": 264, "996017": 264, "gfsc22": 264, "matter": 264, "practic": 264, "thirti": 264, "sixth": 264, "confer": 264, "openreview": 264, "net": 264, "forum": 264, "yczrdi0y7g": 264, "gost": 264, "22": [264, 270], "dockstr": [264, 267, 268, 272, 289, 293, 294], "gpb": 264, "jacob": 264, "gardner": [264, 297], "geoff": 264, "pleiss": 264, "david": [264, 298], "bindel": 264, "kilian": 264, "weinberg": 264, "gpytorch": [264, 297], "blackbox": 264, "matrix": [264, 298], "infer": 264, "gpu": 264, "2018": [264, 268, 297], "gbwd": 264, "rafael": 264, "bombarelli": [264, 297], "jennif": 264, "wei": 264, "duvenaud": 264, "benjam\u00edn": 264, "s\u00e1nchez": 264, "lengel": 264, "denni": 264, "sheberla": 264, "jorg": 264, "aguilera": 264, "iparraguirr": 264, "timothi": 264, "hirzel": 264, "ryan": 264, "adam": 264, "al\u00e1n": 264, "driven": 264, "central": 264, "268": 264, "276": 264, "februari": 264, "acscentsci": 264, "7b00572": 264, "ho96": 264, "hansen": [264, 298], "ostermei": [264, 298], "arbitrari": [264, 286], "evolut": [264, 302], "strategi": [264, 268, 298], "covari": [264, 298], "312": 264, "317": 264, "1996": [264, 298], "icec": 264, "542381": 264, "hfg": 264, "21": [264, 289, 293], "machin": 264, "drug": [264, 293], "discoveri": 264, "develop": [264, 265, 266, 290], "fifth": 264, "2021": [264, 275, 282], "8nvgnornowr": 264, "jrhernandezgarcia": 264, "moksh": 264, "jain": [264, 269], "sharath": 264, "chandra": 264, "raparthi": 264, "alex": 264, "hern": 264, "\u00e1": 264, "ndez": 264, "garc": 264, "\u0131": 264, "jarrid": 264, "rector": 264, "brook": [264, 268], "yoshua": 264, "santiago": 264, "miret": 264, "emmanuel": 264, "gf": 264, "low": 264, "kraus": 264, "emma": 264, "brunskil": 264, "kyunghyun": 264, "cho": 264, "barbara": 264, "engelhardt": 264, "sivan": 264, "sabato": 264, "jonathan": 264, "scarlett": 264, "40th": 264, "202": 264, "14631": 264, "14653": 264, "pmlr": 264, "29": 264, "jul": 264, "mlr": 264, "press": 264, "v202": 264, "jain23a": 264, "kmh": 264, "19": 264, "johann": 264, "kirschner": [264, 301], "mojmir": 264, "mutni": 264, "nicol": 264, "hiller": 264, "rasmu": 264, "ischebeck": 264, "safe": 264, "high": 264, "subspac": 264, "36th": 264, "3429": 264, "3438": 264, "2019": [264, 268, 301], "v97": 264, "kirschner19a": 264, "ssw": 264, "16": [264, 270], "bobak": 264, "shahriari": [264, 297], "kevin": 264, "swerski": 264, "ziyu": 264, "wang": 264, "nando": 264, "freita": 264, "human": [264, 297], "out": [264, 273, 280, 281, 286, 287, 293, 297], "review": 264, "104": 264, "148": 264, "175": 264, "januari": 264, "jproc": 264, "2494218": 264, "sr73": 264, "shrake": [264, 270], "ruplei": [264, 270], "exposur": 264, "atom": 264, "lysozym": 264, "insulin": 264, "79": 264, "351": 264, "371": 264, "sep": 264, "1973": [264, 270], "1016": 264, "0022": 264, "2836": 264, "73": 264, "90011": 264, "smg": 264, "preprint": 264, "blankdeb20": 264, "blank": [264, 302], "pymoo": [264, 302], "89497": 264, "89509": 264, "tutori": [265, 270, 289, 291, 295, 296, 297], "cover": 265, "what": [265, 274, 289, 295], "look": [265, 266, 290, 296], "poli": [265, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 289, 290, 291, 294, 295, 297, 298, 301, 302, 303, 304], "live": [265, 294], "goe": [265, 270, 296], "exactli": [265, 266, 276, 279, 290], "doesn": [265, 275, 291, 294], "mani": [265, 302], "think": 265, "project": [265, 270, 294], "ll": [265, 269, 270, 293, 295], "carri": 265, "let": [265, 267, 270, 289, 291, 293, 294, 296], "super_mario_bro": [265, 268, 289, 293], "pt": [265, 271], "level_util": 265, "md": [265, 266], "As": [265, 270, 289, 294, 296], "don": [265, 268, 274, 294], "end": [265, 270, 291, 295], "ignor": 265, "altern": 265, "averag": 265, "abstract_black_box": [265, 296], "abstract_problem_factori": [265, 296], "problem_setup_inform": [265, 291, 296], "pythonpath": 265, "runtim": [265, 296], "imagin": 265, "your_local_depend": 265, "yourblackbox": 265, "your_arg": 265, "your_second_arg": 265, "your_kwarg": 265, "yourproblemfactori": 265, "chapter": [265, 266, 267, 268, 270, 289, 290, 291, 293, 295, 296], "your_problem": 265, "problem_info": [265, 285, 289, 291, 293, 296], "__name__": [265, 271, 274, 295, 296], "__main__": [265, 271, 274, 295, 296], "registri": [265, 289, 294, 295], "register_problem": [265, 296], "your_problem_factori": 265, "your_env": 265, "That": [265, 276], "camel_cas": 265, "under": [265, 267, 269, 274, 275, 286, 296], "tell": 265, "though": 265, "sai": [265, 270, 286, 289, 294, 296], "channel": [265, 296], "machinelearninglifesci": [265, 266, 267, 268, 296], "dev": [265, 267, 268, 270], "java": [265, 296], "poli__mario": 265, "forg": 265, "pytorch": 265, "openjdk": 265, "cpuonli": 265, "click": [265, 268, 272, 293], "moreov": [265, 266, 290], "googl": [265, 268], "colab": [265, 268], "put": [265, 270, 302], "describ": [265, 270, 275, 276, 279, 282, 293, 295], "register": 265, "get_problem": [265, 267, 289, 293, 295, 296], "your_arg_1": 265, "mayb": 265, "your_arg_2": 265, "your_factori": 265, "thereof": 265, "At": [265, 270, 291, 293, 296], "point": [265, 270, 291, 293, 296, 297], "wrote": 265, "direct": [265, 301], "life": [265, 271], "debug": [265, 267, 271, 274, 285], "vscode": 265, "available_problem_factori": 265, "importerror": 265, "share": [265, 266, 267], "feel": [265, 266, 270, 293], "contribut": [265, 266], "case": [266, 267, 270, 273, 285, 286, 287, 290, 291, 293, 296], "poli_baselin": [266, 267, 289, 293, 295, 297, 298, 301, 302, 303, 304], "almost": [266, 290], "trivial": [266, 267, 290, 293, 296], "complic": [266, 290], "likewis": [266, 290], "explain": [266, 290, 291], "abstractsolv": [266, 289, 290], "abstract_solv": [266, 289, 290], "black_box": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "histori": [266, 289, 290, 293, 303, 304], "x0_i": 266, "y0_i": 266, "ingredi": [266, 270, 289, 290], "next_candid": [266, 289, 290, 293], "propos": [266, 290, 293], "solv": [266, 289, 290, 293, 295, 296, 297, 298, 301, 302, 303, 304], "max_it": [266, 289, 290, 293, 295, 297, 298, 301, 302, 303, 304], "next": [266, 268, 270, 289, 290, 291, 293, 295, 296], "solut": [266, 280, 290, 302], "notimplementederror": [266, 290], "subclass": [266, 290], "100": [266, 290, 293, 302, 303, 304], "rang": [266, 267, 290], "callback": 266, "pre_step_callback": 266, "turn": 266, "updat": [266, 289, 291, 293, 298], "_": [266, 267, 297, 298, 301, 302], "post": 266, "post_step_callback": 266, "get_best_perform": [266, 289], "break_at_perform": [266, 295], "break": [266, 295], "leverag": [266, 290], "fact": [266, 290], "simplest": [266, 289, 290], "random_mut": [266, 289, 290, 293, 295], "len": [266, 290], "best_x": [266, 290], "argmax": [266, 290], "alwai": [266, 273, 286, 287, 290, 294, 296], "next_x": [266, 290], "po": [266, 290], "randint": [266, 290], "choic": [266, 290, 302], "pretti": [266, 270, 290], "lean": [266, 290], "notic": [266, 274, 279, 290, 291], "sort": [266, 285, 290, 302], "logic": [266, 290, 291], "noth": [266, 289, 290], "worri": [266, 268, 290, 296], "slightli": [266, 290, 296], "unfortun": [267, 274], "linux": [267, 274, 294], "maco": [267, 274], "top": [267, 268, 293], "therefor": [267, 294], "anaconda": 267, "went": 267, "okai": [267, 271], "anoth": [267, 270, 289, 293], "right": [267, 291], "bleed": 267, "edg": 267, "while": [267, 289], "stabl": [267, 289, 293], "releas": [267, 270], "shell": [267, 296], "home": [267, 269, 270, 276, 277, 278], "poli_object": [267, 271, 296], "phase": 267, "short": [267, 270], "futur": [267, 270], "everyth": [267, 269, 291], "requisit": [267, 274], "openbabel": [267, 274], "white_nois": [267, 287, 289, 293], "minimal_working_exampl": 267, "plenti": 267, "complex": [267, 270], "rasp": [268, 271, 272, 289, 293], "pytdc": 268, "accces": 268, "featur": [268, 271], "clash": [268, 270], "discuss": [268, 291, 293, 295, 296], "baselin": [268, 289, 291, 293, 294, 295, 297, 302], "place": [268, 269, 270], "fresh": 268, "full": [268, 270], "drawn": [268, 272], "unit": [268, 272], "word": [268, 272, 296], "spell": [268, 272], "3pbl": [268, 272, 275], "implmenet": [268, 272], "fluoresc": [268, 270, 272, 289], "On": 268, "focus": 268, "cma": 268, "es": 268, "vanilla": 268, "acquisit": [268, 297, 301], "over": 268, "encourag": 268, "gonzalezduquebartelsmichael": 268, "2024": [268, 270], "gonz\u00e1lez": 268, "duqu": 268, "bartel": 268, "simon": 268, "michael": 268, "richard": 268, "month": 268, "jan": 268, "titl": 268, "libari": 268, "year": 268, "drd3_dock": [268, 275, 289, 293], "graff": 268, "shakhnovich": 268, "foldx_": 268, "gfp_cba": [268, 289, 293], "park": 268, "listgarten": 268, "gfp_select": [268, 289, 293], "penalized_logp_lambo": [268, 279, 289, 293], "rdkit_": 268, "rfp_foldx_": 268, "sa_tdc": [268, 282, 289, 293], "ertl": 268, "schuffenhau": 268, "volz": 268, "toy_continuous_problem": [268, 286, 289, 293, 297, 301], "2013": 268, "coupl": [268, 296], "guid": 268, "subset": [269, 286, 298], "suit": 269, "thing": [269, 270, 289, 296], "dg": 269, "metric": 269, "recent": 269, "academ": 269, "licens": 269, "zip": 269, "auxiliari": 269, "renam": [269, 270, 276, 277, 278], "help": 269, "mac": [269, 294], "warn": [269, 294], "unverifi": 269, "quarantin": 269, "command": [269, 270, 277, 278, 294], "own": 269, "risk": 269, "xattr": 269, "appl": 269, "familiar": 270, "ourselv": 270, "alreadi": [270, 289, 293, 294], "refresh": 270, "essenti": [270, 291], "notebook": 270, "pathlib": [270, 271, 276, 277, 278, 282, 289, 291], "shutil": 270, "path_to_foldx_fil": 270, "this_dir": [270, 271, 291], "resolv": [270, 271, 289, 291], "tmp": 270, "mkdir": [270, 291], "copyfil": 270, "respons": 270, "transport": 270, "oxigen": 270, "sperm": 270, "whale": 270, "101m": 270, "hand": 270, "urllib": 270, "web_address": 270, "rcsb": 270, "urlretriev": 270, "Of": [270, 293], "cours": [270, 293], "long": [270, 289, 296], "aid": 270, "pdb_name": 270, "choos": [270, 286], "repairpdb": [270, 277, 278], "littl": 270, "consumig": 270, "400sec": 270, "build": [270, 293, 296, 297], "101m_repair": 270, "repair_cmd": 270, "water": [270, 277, 278, 280], "crystal": [270, 277, 278], "tree": 270, "fxout": 270, "unrecognized_molecul": 270, "onward": [270, 297], "inspect": [270, 271, 274], "parser": 270, "get_residu": 270, "dive": [270, 293, 295], "first_residu": 270, "resnam": 270, "index": 270, "get_par": 270, "met": [270, 294], "extract": 270, "sequtil": 270, "seq1": 270, "original_residu": 270, "chain_id": 270, "position_in_sequ": 270, "mutant_residu": 270, "glycin": 270, "Be": [270, 271], "care": [270, 289, 294], "fire": 270, "did": 270, "modifi": 270, "mutation_list": 270, "residue_idx": 270, "li": 270, "tranform": 270, "position_in_chain": 270, "content": 270, "indiviual_list": 270, "ma0g": 270, "won": 270, "buildmodel": 270, "gibb": 270, "foldx_cmd": 270, "consortium": 270, "jesper": 270, "freder": 270, "joost": 270, "lui": 270, "peter": 270, "vanhe": 270, "erik": 270, "verschueren": 270, "baeten": 270, "javier": 270, "delgado": 270, "francoi": 270, "permut": 270, "concept": 270, "raphael": 270, "gueroi": 270, "backhbond": 270, "142": 270, "58": 270, "sidehbond": 270, "48": 270, "61": 270, "energy_vdw": 270, "179": 270, "63": 270, "electro": 270, "energy_solvp": 270, "245": 270, "28": [270, 271], "energy_solvh": 270, "238": 270, "89": 270, "energy_vdwclash": 270, "42": 270, "energy_tors": 270, "70": 270, "backbone_vdwclash": 270, "158": 270, "entropy_sidec": 270, "105": 270, "87": 270, "entropy_mainc": 270, "231": 270, "69": 270, "bond": 270, "00": 270, "helix": 270, "dipol": 270, "75": 270, "loop_entropi": 270, "cis_bond": 270, "disulfid": 270, "kn": 270, "electrostat": 270, "partial": 270, "coval": 270, "energy_ionis": 270, "56": 270, "entropi": 270, "32": 270, "meta0": 270, "gly": 270, "ok": 270, "wed": 270, "feb": 270, "44": 270, "52": 270, "spend": 270, "96": 270, "valid": 270, "101m_repair_1": 270, "successfulli": 270, "completedprocess": 270, "sjt972": [270, 289, 293, 294], "understanding_foldx": 270, "01": 270, "returncod": 270, "average_101m_repair": 270, "dif_101m_repair": 270, "pdblist_101m_repair": 270, "raw_101m_repair": 270, "wt_101m_repair_1": 270, "raw_": 270, "_repair": [270, 277, 278], "tabl": 270, "quantiti": 270, "column_nam": 270, "backbon": 270, "hbond": 270, "sidechain": 270, "van": 270, "der": 270, "waal": 270, "solvat": 270, "polar": 270, "hydrophob": 270, "mainchain": 270, "sloop_entropi": 270, "mloop_entropi": 270, "torsion": 270, "bridg": 270, "kon": 270, "ionis": 270, "pd": 270, "readlin": 270, "df": 270, "split": 270, "column": 270, "var": 270, "l3": 270, "qk9dx6g958765kmn_2wn34t00000gn": 270, "ipykernel_25734": 270, "1758354106": 270, "deprecationwarn": 270, "pyarrow": 270, "major": 270, "arrow": 270, "interoper": 270, "caus": 270, "pleas": [270, 289, 293, 294], "issu": 270, "54466": 270, "overal": 270, "31": 270, "7457": 270, "34": 270, "3436": 270, "notat": 270, "stand": [270, 293, 296], "again": 270, "wt_structur": 270, "mut_structur": 270, "pdb1": 270, "shrakeruplei": 270, "attach": [270, 291], "8407": 270, "731560227876": 270, "8439": 270, "063468009845": 270, "impact": 270, "databas": 270, "desir": [270, 293], "lesser": 270, "stabler": 270, "correl": 270, "present": [270, 296], "supervis": 271, "approach": 271, "network": [271, 297], "drawback": 271, "similar": 271, "foldx_stabl": [271, 278, 289, 293], "awar": [271, 297], "scale": [271, 286], "easier": 271, "poli__rasp": 271, "correct": [271, 274, 277, 278, 279, 280, 281, 285, 296], "breakpoint": [271, 274], "satisfi": [271, 274], "root": [271, 274, 276, 279], "3ned": [271, 289], "__file__": 271, "wildtype_pdb_paths_for_rasp": 271, "f_rasp": 271, "wildtype_str": 271, "join": [271, 289], "three": [271, 291, 293], "three_mut": 271, "wildtype_sequ": 271, "ddg": 271, "approx": 271, "03": 271, "07": 271, "clang": 271, "cmake": 271, "reduc": 271, "pin": 271, "hash": 271, "bd23a0bf627ae9b08842102a5c2e9404b4a81924": 271, "cavity_model_15": 271, "ds_model": 271, "3ccebe87e017b6bd737f88e1943557d128c85616": 271, "against": [271, 274], "checksum": 271, "satur": 271, "mutagenesi": 271, "pmo": 272, "jump": 272, "cap": 273, "prepar": 274, "autodock": 274, "vina": 274, "suppos": 274, "batteri": 274, "even": [274, 296], "poli__dockstr": [274, 294], "canon": [274, 275], "risperidon": 274, "dockstringproblemfactori": 274, "drd2": [274, 294], "risperidone_smil": 274, "cc1": 274, "n2ccccc2": 274, "n1": 274, "ccn3ccc": 274, "cc3": 274, "c4": 274, "noc5": 274, "c4c": 274, "c5": 274, "handl": [274, 277, 278, 280, 281], "hood": [274, 275], "abov": [275, 276, 279, 282, 295, 296], "success": 275, "underneath": [275, 276, 279, 282, 293], "poli__tdc": [275, 282], "text": [276, 277, 278, 296], "foldx_rfp_lambo": [276, 279, 289, 293], "poli__lambo": [276, 279], "avali": 276, "skip": 276, "decid": 276, "11189": 276, "00587946": 276, "8155": 276, "acces": [277, 282], "foldx_stability_and_sasa": [277, 278, 289, 293], "v4": [277, 278], "filenam": [277, 278], "cach": [277, 278], "your_fil": [277, 278], "heteroatom": [277, 278], "pdbtool": [277, 278], "Then": [277, 278, 280, 281], "foldx_sasa": [277, 289, 293], "poli__protein": [277, 278, 294], "carefulli": 279, "zinc": 279, "coeffici": 280, "octanol": 280, "rdkit_logp": [280, 289, 293, 294], "carbon": [280, 281], "6361": 280, "rdkit_q": [281, 289, 293], "35978494": 281, "assert": [281, 295], "isclos": 281, "8548": 282, "run_info": [285, 289], "link": 285, "peopl": 286, "sum_": 286, "x_d": 286, "saasbo": 286, "assumpt": 286, "roughli": 286, "speak": 286, "question": 286, "30d": 286, "dimensions_to_embed_in": 286, "mathcal": 287, "But": 288, "idea": [288, 289], "rc": 289, "sit": 289, "rfp_foldx_stability_and_sasa": [289, 293], "stick": 289, "red": 289, "explor": [289, 297], "ls": 289, "3ned_repair": 289, "optimizing_protein_st": 289, "ipynb": 289, "mrogu": 289, "hopefulli": 289, "remind": 289, "forgot": 289, "traceback": [], "138": [], "typeerror": [], "got": [], "unexpect": [], "176": [], "145": [], "cell": [], "439": [], "437": [], "438": [], "__create_as_isolated_process": [], "440": [], "441": [], "442": [], "443": [], "444": [], "445": [], "446": [], "447": [], "448": [], "449": [], "problem_inform": [], "451": [], "278": [], "tb": [], "msg": [], "277": [], "279": [], "280": [], "281": [], "msg_type": [], "282": [], "five": 289, "section": [289, 295, 296], "select": [289, 293, 301], "alter": 289, "special": [289, 293], "n_iter": 289, "178": [], "76": [], "267": [], "80": [], "13": [], "374": [], "65": [], "17": [], "146": [], "340": [], "27": [], "77": 294, "41": [], "na194f": [], "asna194": [], "193": [], "phe": [], "fri": [], "09": [], "51": [], "54": [], "3ned_repair_1": [], "qa114": [], "glna114": [], "113": [], "ser": [], "da3m": [], "aspa3": [], "kei": [289, 295], "get_best_solut": [289, 293, 295, 302, 303, 304], "41639": 289, "0629": [], "5983": [], "1298": [], "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslsdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayftntklditshnedytiveqyernegrhstggmdelyk": [], "appli": 290, "part": [291, 294], "compar": [291, 294], "qualiti": 291, "save": 291, "json": 291, "mlflow": 291, "weight": 291, "bias": 291, "abstract_observ": 291, "skeleton": 291, "simpleobserv": 291, "init": 291, "servic": 291, "wandb": 291, "adjac": 291, "identifi": 291, "uuid4": 291, "metadata": 291, "uuid": 291, "experiment_path": 291, "as_dict": 291, "recal": 291, "tolist": 291, "dump": 291, "curiou": 291, "rememb": [291, 296], "invent": 291, "wheel": 291, "tensorboard": 291, "fp": 291, "snippet": [291, 295], "scenario": 291, "z": 291, "were": [291, 294], "accordingli": 291, "migu": 291, "flea": [291, 296], "showcas": 291, "behind": 291, "saw": 291, "overwritten": 291, "deeper": [293, 295], "intro": 293, "treat": 293, "anyth": 293, "further": 293, "page": [293, 296], "randommut": [293, 295, 303, 304], "anaconda3": [289, 293, 294], "docs2": [289, 293], "lib": [289, 293, 294], "python3": [289, 293, 294], "tqdm": [289, 293], "auto": [289, 293], "tqdmwarn": [289, 293], "iprogress": [289, 293], "jupyt": [289, 293], "ipywidget": [289, 293], "readthedoc": [289, 293], "io": [289, 293], "user_instal": [289, 293], "autonotebook": [289, 293], "notebook_tqdm": [289, 293], "16173153": 293, "dtype": 293, "u1": 293, "talk": 293, "babel": 294, "No": 294, "freez": 294, "grep": 294, "135": [], "dynamically_instanti": [], "102": [], "92": [], "exec": [], "modulenotfounderror": [], "critic": [], "opt": [], "homebrew": [], "condabin": [], "autodock_vina_1_1_2_mac_catalina_64bit": [], "usr": [], "cryptex": [], "app": [], "sbin": [], "cryptexd": [], "codex": [], "bootstrap": [], "appleintern": [], "tex": [], "texbin": [], "cargo": [], "using_poli": [], "the_bas": [], "python39": [], "dynload": [], "externalblackbox": 294, "num_evalu": 294, "dockstringwarn": 294, "although": 294, "perfectli": 294, "match": [294, 296], "platform": 294, "report": 294, "f_logp": 294, "x0_logp": 294, "y0_logp": 294, "logpblackbox": 294, "combin": 295, "optimizing_aloha": 295, "01_a_simple_example_of_optim": 295, "our_aloha": [295, 296], "past": 295, "haven": 295, "realli": 295, "Its": 295, "summari": 295, "less": 295, "conclud": 295, "takeawai": 295, "independ": 295, "why": 295, "registering_aloha": 296, "search": [296, 297], "aloof": 296, "syntax": 296, "ouralohablackbox": 296, "sum": 296, "axi": 296, "keepdim": 296, "get_max_sequence_length": 296, "x_0": 296, "alohablackbox": 296, "ascii_uppercas": 296, "ouralohaproblemfactori": 296, "interpret": 296, "poli_aloha": 296, "poli_aloha_problem": 296, "yourself": 296, "aloha_problem_factori": 296, "somewher": 296, "workhors": 296, "querying_aloha": 296, "emphas": 296, "amaz": 296, "x1": 296, "y1": 296, "subtl": 296, "cheminformat": 296, "mechan": 296, "solver": [296, 297, 298, 301, 302, 303, 304], "approxim": 297, "tild": 297, "boldsymbol": [297, 298], "surrog": 297, "render": 297, "smartli": 297, "balanc": 297, "exploit": 297, "grid": 297, "vanillabayesianoptim": 297, "f_acklei": [297, 301], "randn": [297, 301], "clip": [297, 301], "bo_solv": 297, "great": 297, "mostli": 297, "intent": 297, "adversari": 297, "gan": 297, "maintain": 298, "mu": 298, "sigma": 298, "member": 298, "introduct": 298, "blogpost": 298, "pycma": 298, "cma_e": 298, "toycontinuousproblemfactori": 298, "population_s": [298, 302], "initial_mean": 298, "initial_sigma": 298, "restrict": 301, "coordin": 301, "singletaskgp": 301, "type_of_lin": 301, "non": 302, "domin": 302, "mate": 302, "procedur": 302, "upon": 302, "alohaproblemfactori": [302, 303, 304], "multi_objective_black_box": 302, "multiobjectiveblackbox": 302, "discretensgaii": 302, "hyperparamet": 302, "max_iter": 302, "num_mut": 302, "f_aloha": 302, "togeth": 302, "popul": 302, "56267": 289, "846902": 289, "39441": 289, "eednmaiikefmrfkthmegsvnghefeiegegegrpyegtqtaklkvtkggplpfawdilspqfskayvkhpadipdylklsfpegfkwervmnfedggvvtvtqdsslqdgefiykvklrgtnfpsdgpvmqkktmgweacsermypedgalkgemkmrlklkdgghydaevkttykakkpvqlpgayntntklditshnedytiveqyernegrhstggmdelyk": 289, "258": 294, "userwarn": 294, "Will": 294, "env_nam": 294, "269": 294}, "objects": {"": [[0, 0, 0, "-", "poli"]], "poli": [[1, 0, 0, "-", "core"], [88, 0, 0, "-", "objective"], [92, 0, 0, "-", "objective_factory"], [97, 0, 0, "-", "objective_repository"], [226, 0, 0, "-", "registered_objectives"], [227, 0, 0, "-", "tests"]], "poli.core": [[2, 0, 0, "-", "abstract_black_box"], [5, 0, 0, "-", "abstract_problem_factory"], [8, 0, 0, "-", "chemistry"], [11, 0, 0, "-", "exceptions"], [14, 0, 0, "-", "multi_objective_black_box"], [16, 0, 0, "-", "problem_setup_information"], [18, 0, 0, "-", "proteins"], [21, 0, 0, "-", "registry"], [30, 0, 0, "-", "util"]], "poli.core.abstract_black_box": [[3, 1, 1, "", "AbstractBlackBox"], [4, 1, 1, "", "NegativeBlackBox"]], "poli.core.abstract_black_box.AbstractBlackBox": [[3, 2, 1, "", "__call__"], [3, 2, 1, "", "__del__"], [3, 2, 1, "", "__enter__"], [3, 2, 1, "", "__exit__"], [3, 2, 1, "", "__init__"], [3, 2, 1, "", "__neg__"], [3, 2, 1, "", "_black_box"], [3, 3, 1, "", "batch_size"], [3, 3, 1, "", "info"], [3, 3, 1, "", "num_workers"], [3, 3, 1, "", "observer"], [3, 3, 1, "", "observer_info"], [3, 3, 1, "", "parallelize"], [3, 2, 1, "", "reset_evaluation_budget"], [3, 2, 1, "", "set_observer"], [3, 2, 1, "", "terminate"]], "poli.core.abstract_black_box.NegativeBlackBox": [[4, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory": [[6, 1, 1, "", "AbstractProblemFactory"], [7, 1, 1, "", "MetaProblemFactory"]], "poli.core.abstract_problem_factory.AbstractProblemFactory": [[6, 2, 1, "", "__init__"]], "poli.core.abstract_problem_factory.MetaProblemFactory": [[7, 2, 1, "", "__init__"]], "poli.core.chemistry": [[9, 0, 0, "-", "tdc_black_box"]], "poli.core.chemistry.tdc_black_box": [[10, 1, 1, "", "TDCBlackBox"]], "poli.core.chemistry.tdc_black_box.TDCBlackBox": [[10, 2, 1, "", "__init__"], [10, 3, 1, "", "from_smiles"], [10, 3, 1, "", "oracle"]], "poli.core.exceptions": [[12, 4, 1, "", "BudgetExhaustedException"], [13, 4, 1, "", "PoliException"]], "poli.core.multi_objective_black_box": [[15, 1, 1, "", "MultiObjectiveBlackBox"]], "poli.core.multi_objective_black_box.MultiObjectiveBlackBox": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "_black_box"], [15, 3, 1, "", "objective_functions"]], "poli.core.problem_setup_information": [[17, 1, 1, "", "ProblemSetupInformation"]], "poli.core.problem_setup_information.ProblemSetupInformation": [[17, 2, 1, "", "__init__"]], "poli.core.proteins": [[19, 0, 0, "-", "foldx_black_box"]], "poli.core.proteins.foldx_black_box": [[20, 1, 1, "", "FoldxBlackBox"]], "poli.core.proteins.foldx_black_box.FoldxBlackBox": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "create_working_directory"], [20, 3, 1, "", "experiment_id"], [20, 3, 1, "", "tmp_folder"], [20, 3, 1, "", "wildtype_amino_acids"], [20, 3, 1, "", "wildtype_pdb_paths"], [20, 3, 1, "", "wildtype_residue_strings"], [20, 3, 1, "", "wildtype_residues"]], "poli.core.registry": [[22, 5, 1, "", "delete_observer_run_script"], [23, 5, 1, "", "delete_problem"], [24, 5, 1, "", "get_problem_factories"], [25, 5, 1, "", "get_problems"], [26, 5, 1, "", "register_problem"], [27, 5, 1, "", "register_problem_from_repository"], [28, 5, 1, "", "set_observer"], [29, 5, 1, "", "set_observer_run_script"]], "poli.core.util": [[31, 0, 0, "-", "abstract_observer"], [33, 0, 0, "-", "alignment"], [35, 0, 0, "-", "batch"], [38, 0, 0, "-", "chemistry"], [45, 0, 0, "-", "external_observer"], [47, 0, 0, "-", "files"], [53, 0, 0, "-", "inter_process_communication"], [57, 0, 0, "-", "objective_management"], [61, 0, 0, "-", "observer_wrapper"], [63, 0, 0, "-", "proteins"], [84, 0, 0, "-", "seeding"]], "poli.core.util.abstract_observer": [[32, 1, 1, "", "AbstractObserver"]], "poli.core.util.abstract_observer.AbstractObserver": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "finish"], [32, 2, 1, "", "observe"]], "poli.core.util.alignment": [[34, 0, 0, "-", "is_aligned"]], "poli.core.util.batch": [[36, 0, 0, "-", "batch_input"]], "poli.core.util.batch.batch_input": [[37, 5, 1, "", "batched"]], "poli.core.util.chemistry": [[39, 0, 0, "-", "string_to_molecule"]], "poli.core.util.chemistry.string_to_molecule": [[40, 5, 1, "", "selfies_to_molecules"], [41, 5, 1, "", "smiles_to_molecules"], [42, 5, 1, "", "strings_to_molecules"], [43, 5, 1, "", "translate_selfies_to_smiles"], [44, 5, 1, "", "translate_smiles_to_selfies"]], "poli.core.util.external_observer": [[46, 1, 1, "", "ExternalObserver"]], "poli.core.util.external_observer.ExternalObserver": [[46, 2, 1, "", "__getattr__"], [46, 2, 1, "", "__init__"], [46, 2, 1, "", "finish"], [46, 2, 1, "", "initialize_observer"], [46, 2, 1, "", "observe"]], "poli.core.util.files": [[48, 0, 0, "-", "download_files_from_github"], [51, 0, 0, "-", "integrity"]], "poli.core.util.files.download_files_from_github": [[49, 5, 1, "", "download_file_from_github_repository"], [50, 5, 1, "", "get_sha_for_tag"]], "poli.core.util.files.integrity": [[52, 5, 1, "", "compute_md5_from_filepath"]], "poli.core.util.inter_process_communication": [[54, 0, 0, "-", "process_wrapper"]], "poli.core.util.inter_process_communication.process_wrapper": [[55, 1, 1, "", "ProcessWrapper"], [56, 5, 1, "", "get_connection"]], "poli.core.util.inter_process_communication.process_wrapper.ProcessWrapper": [[55, 2, 1, "", "__init__"]], "poli.core.util.objective_management": [[58, 0, 0, "-", "make_run_script"]], "poli.core.util.objective_management.make_run_script": [[59, 5, 1, "", "make_observer_script"], [60, 5, 1, "", "make_run_script"]], "poli.core.util.observer_wrapper": [[62, 5, 1, "", "start_observer_process"]], "poli.core.util.proteins": [[64, 0, 0, "-", "defaults"], [65, 0, 0, "-", "foldx"], [67, 0, 0, "-", "mutations"], [71, 0, 0, "-", "pdb_parsing"], [75, 0, 0, "-", "rasp"]], "poli.core.util.proteins.foldx": [[66, 1, 1, "", "FoldxInterface"]], "poli.core.util.proteins.foldx.FoldxInterface": [[66, 2, 1, "", "__init__"], [66, 2, 1, "", "_compute_sasa"], [66, 2, 1, "", "_read_energy"], [66, 2, 1, "", "_repair_if_necessary_and_provide_path"], [66, 2, 1, "", "_simulate_mutations"], [66, 2, 1, "", "compute_sasa"], [66, 2, 1, "", "compute_stability"], [66, 2, 1, "", "compute_stability_and_sasa"], [66, 2, 1, "", "copy_foldx_files"], [66, 2, 1, "", "repair"], [66, 3, 1, "", "verbose"], [66, 3, 1, "", "working_dir"], [66, 2, 1, "", "write_mutations_to_file"]], "poli.core.util.proteins.mutations": [[68, 5, 1, "", "edits_between_strings"], [69, 5, 1, "", "find_closest_wildtype_pdb_file_to_mutant"], [70, 5, 1, "", "mutations_from_wildtype_residues_and_mutant"]], "poli.core.util.proteins.pdb_parsing": [[72, 5, 1, "", "parse_pdb_as_residue_strings"], [73, 5, 1, "", "parse_pdb_as_residues"], [74, 5, 1, "", "parse_pdb_as_structure"]], "poli.core.util.proteins.rasp": [[76, 0, 0, "-", "inner_rasp"], [82, 6, 1, "", "load_models"], [83, 6, 1, "", "rasp_interface"]], "poli.core.util.proteins.rasp.inner_rasp": [[77, 6, 1, "", "PrismData"], [78, 6, 1, "", "cavity_model"], [79, 6, 1, "", "helpers"], [80, 6, 1, "", "run_pipeline"], [81, 6, 1, "", "visualization"]], "poli.core.util.seeding": [[85, 0, 0, "-", "seeding"]], "poli.core.util.seeding.seeding": [[86, 5, 1, "", "seed_numpy"], [87, 5, 1, "", "seed_python"]], "poli.objective": [[89, 5, 1, "", "dynamically_instantiate"], [90, 5, 1, "", "parse_factory_kwargs"], [91, 5, 1, "", "run"]], "poli.objective_factory": [[93, 1, 1, "", "ExternalBlackBox"], [94, 5, 1, "", "create"], [95, 5, 1, "", "load_config"], [96, 5, 1, "", "start"]], "poli.objective_factory.ExternalBlackBox": [[93, 2, 1, "", "__init__"]], "poli.objective_repository": [[98, 0, 0, "-", "aloha"], [102, 0, 0, "-", "dockstring"], [106, 0, 0, "-", "drd3_docking"], [110, 0, 0, "-", "foldx_rfp_lambo"], [116, 0, 0, "-", "foldx_sasa"], [121, 0, 0, "-", "foldx_stability"], [126, 0, 0, "-", "foldx_stability_and_sasa"], [130, 0, 0, "-", "gfp_cbas"], [162, 0, 0, "-", "gfp_select"], [166, 0, 0, "-", "penalized_logp_lambo"], [170, 0, 0, "-", "rasp"], [172, 0, 0, "-", "rdkit_logp"], [176, 0, 0, "-", "rdkit_qed"], [180, 0, 0, "-", "rfp_foldx_stability_and_sasa"], [182, 0, 0, "-", "sa_tdc"], [186, 0, 0, "-", "super_mario_bros"], [199, 0, 0, "-", "toy_continuous_problem"], [222, 0, 0, "-", "white_noise"]], "poli.objective_repository.aloha": [[99, 0, 0, "-", "register"]], "poli.objective_repository.aloha.register": [[100, 1, 1, "", "AlohaBlackBox"], [101, 1, 1, "", "AlohaProblemFactory"]], "poli.objective_repository.aloha.register.AlohaBlackBox": [[100, 2, 1, "", "__init__"], [100, 2, 1, "", "_black_box"], [100, 3, 1, "", "alphabet"]], "poli.objective_repository.aloha.register.AlohaProblemFactory": [[101, 2, 1, "", "__init__"], [101, 2, 1, "", "create"], [101, 2, 1, "", "get_setup_information"]], "poli.objective_repository.dockstring": [[103, 0, 0, "-", "register"]], "poli.objective_repository.dockstring.register": [[104, 1, 1, "", "DockstringBlackBox"], [105, 1, 1, "", "DockstringProblemFactory"]], "poli.objective_repository.dockstring.register.DockstringBlackBox": [[104, 2, 1, "", "__init__"], [104, 2, 1, "", "_black_box"], [104, 3, 1, "", "alphabet"]], "poli.objective_repository.dockstring.register.DockstringProblemFactory": [[105, 2, 1, "", "__init__"], [105, 2, 1, "", "create"], [105, 2, 1, "", "get_setup_information"]], "poli.objective_repository.drd3_docking": [[107, 0, 0, "-", "register"]], "poli.objective_repository.drd3_docking.register": [[108, 1, 1, "", "DRD3BlackBox"], [109, 1, 1, "", "DRD3ProblemFactory"]], "poli.objective_repository.drd3_docking.register.DRD3BlackBox": [[108, 2, 1, "id0", "__init__"], [108, 3, 1, "", "oracle_name"]], "poli.objective_repository.drd3_docking.register.DRD3ProblemFactory": [[109, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo": [[111, 0, 0, "-", "register"]], "poli.objective_repository.foldx_rfp_lambo.register": [[112, 3, 1, "", "Config"], [113, 1, 1, "", "RFPWrapper"], [114, 1, 1, "", "RFPWrapperFactory"], [115, 5, 1, "", "get_config"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapper": [[113, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_rfp_lambo.register.RFPWrapperFactory": [[114, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa": [[118, 0, 0, "-", "register"]], "poli.objective_repository.foldx_sasa.register": [[119, 1, 1, "", "FoldXSASABlackBox"], [120, 1, 1, "", "FoldXSASAProblemFactory"]], "poli.objective_repository.foldx_sasa.register.FoldXSASABlackBox": [[119, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_sasa.register.FoldXSASAProblemFactory": [[120, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability": [[123, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability.register": [[124, 1, 1, "", "FoldXStabilityBlackBox"], [125, 1, 1, "", "FoldXStabilityProblemFactory"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityBlackBox": [[124, 2, 1, "", "__init__"], [124, 2, 1, "", "_black_box"]], "poli.objective_repository.foldx_stability.register.FoldXStabilityProblemFactory": [[125, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa": [[127, 0, 0, "-", "register"]], "poli.objective_repository.foldx_stability_and_sasa.register": [[128, 1, 1, "", "FoldXStabilityAndSASABlackBox"], [129, 1, 1, "", "FoldXStabilityAndSASAProblemFactory"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASABlackBox": [[128, 2, 1, "", "__init__"]], "poli.objective_repository.foldx_stability_and_sasa.register.FoldXStabilityAndSASAProblemFactory": [[129, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas": [[131, 0, 0, "-", "abstract_vae_wrapper"], [133, 0, 0, "-", "cbas_alphabet_preprocessing"], [148, 0, 0, "-", "cbas_wrapper"], [152, 0, 0, "-", "gfp_gp"], [153, 0, 0, "-", "make_vae"], [159, 0, 0, "-", "register"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper": [[132, 1, 1, "", "AbstractVAEWrapper"]], "poli.objective_repository.gfp_cbas.abstract_vae_wrapper.AbstractVAEWrapper": [[132, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_alphabet_preprocessing": [[134, 5, 1, "", "convert_aas_to_idx_array"], [135, 5, 1, "", "convert_idx_array_to_aas"], [136, 5, 1, "", "convert_mutations_to_sequence"], [137, 5, 1, "", "get_argmax"], [138, 5, 1, "", "get_balaji_predictions"], [139, 5, 1, "", "get_experimental_X_y"], [140, 5, 1, "", "get_gfp_X_y_aa"], [141, 5, 1, "", "get_gfp_base_seq"], [142, 5, 1, "", "get_samples"], [143, 5, 1, "", "one_hot_encode_aa"], [144, 5, 1, "", "one_hot_encode_aa_array"], [145, 5, 1, "", "one_hot_encode_dna"], [146, 5, 1, "", "partition_data"], [147, 5, 1, "", "read_gfp_data"]], "poli.objective_repository.gfp_cbas.cbas_wrapper": [[149, 1, 1, "", "CBASVAEWrapper"], [150, 1, 1, "", "ConvertedTorchVaeDecoder"], [151, 1, 1, "", "ConvertedTorchVaeEncoder"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.CBASVAEWrapper": [[149, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeDecoder": [[150, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.cbas_wrapper.ConvertedTorchVaeEncoder": [[151, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae": [[154, 1, 1, "", "BaseVAE"], [155, 1, 1, "", "SimpleVAE"], [156, 5, 1, "", "build_vae"], [157, 5, 1, "", "identity_loss"], [158, 5, 1, "", "summed_categorical_crossentropy"]], "poli.objective_repository.gfp_cbas.make_vae.BaseVAE": [[154, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.make_vae.SimpleVAE": [[155, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register": [[160, 1, 1, "", "GFPCBasBlackBox"], [161, 1, 1, "", "GFPCBasProblemFactory"]], "poli.objective_repository.gfp_cbas.register.GFPCBasBlackBox": [[160, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_cbas.register.GFPCBasProblemFactory": [[161, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select": [[163, 0, 0, "-", "register"]], "poli.objective_repository.gfp_select.register": [[164, 1, 1, "", "GFPBlackBox"], [165, 1, 1, "", "GFPSelectionProblemFactory"]], "poli.objective_repository.gfp_select.register.GFPBlackBox": [[164, 2, 1, "", "__init__"]], "poli.objective_repository.gfp_select.register.GFPSelectionProblemFactory": [[165, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo": [[167, 0, 0, "-", "register"]], "poli.objective_repository.penalized_logp_lambo.register": [[168, 1, 1, "", "PenalizedLogPLamboBlackBox"], [169, 1, 1, "", "PenalizedLogPLamboProblemFactory"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboBlackBox": [[168, 2, 1, "", "__init__"]], "poli.objective_repository.penalized_logp_lambo.register.PenalizedLogPLamboProblemFactory": [[169, 2, 1, "", "__init__"]], "poli.objective_repository.rasp": [[171, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp": [[173, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_logp.register": [[174, 1, 1, "", "LogPBlackBox"], [175, 1, 1, "", "LogPProblemFactory"]], "poli.objective_repository.rdkit_logp.register.LogPBlackBox": [[174, 2, 1, "", "__init__"], [174, 2, 1, "", "_black_box"], [174, 3, 1, "", "from_selfies"], [174, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_logp.register.LogPProblemFactory": [[175, 2, 1, "", "__init__"]], "poli.objective_repository.rdkit_qed": [[177, 0, 0, "-", "register"]], "poli.objective_repository.rdkit_qed.register": [[178, 1, 1, "", "QEDBlackBox"], [179, 1, 1, "", "QEDProblemFactory"]], "poli.objective_repository.rdkit_qed.register.QEDBlackBox": [[178, 2, 1, "", "__init__"], [178, 2, 1, "", "_black_box"], [178, 3, 1, "", "from_selfies"], [178, 3, 1, "", "from_smiles"]], "poli.objective_repository.rdkit_qed.register.QEDProblemFactory": [[179, 2, 1, "", "__init__"], [179, 2, 1, "", "create"], [179, 2, 1, "", "get_setup_information"]], "poli.objective_repository.rfp_foldx_stability_and_sasa": [[181, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc": [[183, 0, 0, "-", "register"]], "poli.objective_repository.sa_tdc.register": [[184, 1, 1, "", "SABlackBox"], [185, 1, 1, "", "SAProblemFactory"]], "poli.objective_repository.sa_tdc.register.SABlackBox": [[184, 2, 1, "", "__init__"]], "poli.objective_repository.sa_tdc.register.SAProblemFactory": [[185, 2, 1, "", "__init__"], [185, 2, 1, "", "create"], [185, 2, 1, "", "get_setup_information"]], "poli.objective_repository.super_mario_bros": [[187, 0, 0, "-", "level_utils"], [196, 0, 0, "-", "model"]], "poli.objective_repository.super_mario_bros.level_utils": [[188, 5, 1, "", "add_padding_to_level"], [189, 5, 1, "", "clean_level"], [190, 5, 1, "", "level_to_array"], [191, 5, 1, "", "level_to_list"], [192, 5, 1, "", "levels_to_onehot"], [193, 5, 1, "", "onehot_to_levels"], [194, 5, 1, "", "tensor_to_sim_level"], [195, 5, 1, "", "vectorized"]], "poli.objective_repository.super_mario_bros.model": [[197, 1, 1, "", "VAEMario"], [198, 5, 1, "", "load_example_model"]], "poli.objective_repository.super_mario_bros.model.VAEMario": [[197, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem": [[200, 0, 0, "-", "definitions"], [217, 0, 0, "-", "register"], [220, 0, 0, "-", "toy_continuous_problem"]], "poli.objective_repository.toy_continuous_problem.definitions": [[201, 5, 1, "", "ackley_function_01"], [202, 5, 1, "", "alpine_01"], [203, 5, 1, "", "alpine_02"], [204, 5, 1, "", "bent_cigar"], [205, 5, 1, "", "brown"], [206, 5, 1, "", "camelback_2d"], [207, 5, 1, "", "chung_reynolds"], [208, 5, 1, "", "cosine_mixture"], [209, 5, 1, "", "cross_in_tray"], [210, 5, 1, "", "deb_01"], [211, 5, 1, "", "deb_02"], [212, 5, 1, "", "deflected_corrugated_spring"], [213, 5, 1, "", "easom"], [214, 5, 1, "", "egg_holder"], [215, 5, 1, "", "shifted_sphere"], [216, 5, 1, "", "styblinski_tang"]], "poli.objective_repository.toy_continuous_problem.register": [[218, 1, 1, "", "ToyContinuousBlackBox"], [219, 1, 1, "", "ToyContinuousProblemFactory"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousBlackBox": [[218, 2, 1, "", "__init__"], [218, 2, 1, "", "_black_box"], [218, 3, 1, "", "alphabet"], [218, 3, 1, "", "bounds"], [218, 3, 1, "", "embed_in"], [218, 3, 1, "", "function"], [218, 3, 1, "", "function_name"], [218, 3, 1, "", "n_dimensions"]], "poli.objective_repository.toy_continuous_problem.register.ToyContinuousProblemFactory": [[219, 2, 1, "", "__init__"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem": [[221, 1, 1, "", "ToyContinuousProblem"]], "poli.objective_repository.toy_continuous_problem.toy_continuous_problem.ToyContinuousProblem": [[221, 2, 1, "", "__init__"]], "poli.objective_repository.white_noise": [[223, 0, 0, "-", "register"]], "poli.objective_repository.white_noise.register": [[224, 1, 1, "", "WhiteNoiseBlackBox"], [225, 1, 1, "", "WhiteNoiseProblemFactory"]], "poli.objective_repository.white_noise.register.WhiteNoiseBlackBox": [[224, 2, 1, "", "__init__"], [224, 2, 1, "", "_black_box"]], "poli.objective_repository.white_noise.register.WhiteNoiseProblemFactory": [[225, 2, 1, "", "__init__"]], "poli.tests": [[228, 0, 0, "-", "docs_examples"], [236, 0, 0, "-", "registry"], [255, 0, 0, "-", "test_minimal_working_example"], [257, 0, 0, "-", "test_seeding"], [259, 0, 0, "-", "util"]], "poli.tests.docs_examples": [[229, 0, 0, "-", "test_objective_functions"]], "poli.tests.docs_examples.test_objective_functions": [[230, 5, 1, "", "test_aloha_example"], [231, 5, 1, "", "test_logp_example"], [233, 5, 1, "", "test_qed_example"], [235, 5, 1, "", "test_white_noise_example"]], "poli.tests.registry": [[237, 0, 0, "-", "basic_objectives"], [242, 0, 0, "-", "chemistry"], [244, 0, 0, "-", "proteins"], [248, 0, 0, "-", "test_basic_loop_without_create"], [249, 0, 0, "-", "test_force_isolation"], [251, 0, 0, "-", "toy_continuous_problems"]], "poli.tests.registry.basic_objectives": [[238, 0, 0, "-", "test_basic_objectives"]], "poli.tests.registry.basic_objectives.test_basic_objectives": [[239, 5, 1, "", "test_registering_aloha"], [240, 5, 1, "", "test_registering_white_noise"]], "poli.tests.registry.toy_continuous_problems": [[252, 0, 0, "-", "test_embedding_problems_into_higher_dims"]], "poli.tests.registry.toy_continuous_problems.test_embedding_problems_into_higher_dims": [[253, 5, 1, "", "test_embed_camelback_into_high_dimensions"]], "poli.tests.test_minimal_working_example": [[256, 5, 1, "", "test_minimal_working_example"]], "poli.tests.test_seeding": [[258, 5, 1, "", "test_seeding_in_white_noise"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"poli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 263, 266, 267, 268, 292, 293, 296], "core": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 291], "abstract_black_box": [2, 3, 4], "abstractblackbox": 3, "negativeblackbox": 4, "abstract_problem_factori": [5, 6, 7], "abstractproblemfactori": 6, "metaproblemfactori": 7, "chemistri": [8, 9, 10, 38, 39, 40, 41, 42, 43, 44, 242, 243], "tdc_black_box": [9, 10], "tdcblackbox": 10, "except": [11, 12, 13], "budgetexhaustedexcept": 12, "poliexcept": 13, "multi_objective_black_box": [14, 15], "multiobjectiveblackbox": 15, "problem_setup_inform": [16, 17], "problemsetupinform": 17, "protein": [18, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 244, 245, 246, 247, 268, 270, 272, 276, 277, 278, 289], "foldx_black_box": [19, 20], "foldxblackbox": 20, "registri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 296], "delete_observer_run_script": 22, "delete_problem": 23, "get_problem_factori": 24, "get_problem": 25, "register_problem": 26, "register_problem_from_repositori": 27, "set_observ": 28, "set_observer_run_script": 29, "util": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 259, 260, 261], "abstract_observ": [31, 32], "abstractobserv": 32, "align": [33, 34], "is_align": 34, "batch": [35, 36, 37, 290], "batch_input": [36, 37], "string_to_molecul": [39, 40, 41, 42, 43, 44], "selfies_to_molecul": 40, "smiles_to_molecul": 41, "strings_to_molecul": 42, "translate_selfies_to_smil": 43, "translate_smiles_to_selfi": 44, "external_observ": [45, 46], "externalobserv": 46, "file": [47, 48, 49, 50, 51, 52, 270, 275, 277, 278], "download_files_from_github": [48, 49, 50], "download_file_from_github_repositori": 49, "get_sha_for_tag": 50, "integr": [51, 52], "compute_md5_from_filepath": 52, "inter_process_commun": [53, 54, 55, 56], "process_wrapp": [54, 55, 56], "processwrapp": 55, "get_connect": 56, "objective_manag": [57, 58, 59, 60], "make_run_script": [58, 59, 60], "make_observer_script": 59, "observer_wrapp": [61, 62], "start_observer_process": 62, "default": 64, "foldx": [65, 66, 269, 276, 277, 278], "foldxinterfac": 66, "mutat": [67, 68, 69, 70, 270, 289, 303], "edits_between_str": 68, "find_closest_wildtype_pdb_file_to_mut": 69, "mutations_from_wildtype_residues_and_mut": 70, "pdb_pars": [71, 72, 73, 74], "parse_pdb_as_residue_str": 72, "parse_pdb_as_residu": 73, "parse_pdb_as_structur": 74, "rasp": [75, 76, 77, 78, 79, 80, 81, 82, 83, 170, 171], "inner_rasp": [76, 77, 78, 79, 80, 81], "prismdata": 77, "cavity_model": 78, "helper": 79, "run_pipelin": 80, "visual": 81, "load_model": 82, "rasp_interfac": 83, "seed": [84, 85, 86, 87], "seed_numpi": 86, "seed_python": 87, "object": [88, 89, 90, 91, 268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "dynamically_instanti": 89, "parse_factory_kwarg": 90, "run": [91, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 288, 294, 297, 298, 301, 302, 303, 304], "objective_factori": [92, 93, 94, 95, 96], "externalblackbox": 93, "creat": [94, 106, 275, 286, 293, 296], "load_config": 95, "start": [96, 267, 268], "objective_repositori": [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225], "aloha": [98, 99, 100, 101, 273, 291, 295], "regist": [99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 114, 115, 118, 119, 120, 123, 124, 125, 127, 128, 129, 159, 160, 161, 163, 164, 165, 167, 168, 169, 171, 173, 174, 175, 177, 178, 179, 181, 183, 184, 185, 217, 218, 219, 223, 224, 225, 265, 288, 289, 295, 296], "alohablackbox": 100, "alohaproblemfactori": 101, "dockstr": [102, 103, 104, 105, 274], "dockstringblackbox": 104, "dockstringproblemfactori": 105, "drd3_dock": [106, 107, 108, 109], "prerequisit": [106, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 295], "instal": [106, 265, 267, 269, 275, 276], "autodock": [106, 275], "vina": [106, 275], "adfr": [106, 275], "suit": [106, 275], "poli__lambo": [106, 275], "environ": [106, 265, 275, 276, 279, 296], "drd3blackbox": 108, "drd3problemfactori": 109, "foldx_rfp_lambo": [110, 111, 112, 113, 114, 115], "config": 112, "rfpwrapper": 113, "rfpwrapperfactori": 114, "get_config": 115, "foldx_sasa": [116, 117, 118, 119, 120], "foldx_util": [117, 122], "foldxsasablackbox": 119, "foldxsasaproblemfactori": 120, "foldx_stabl": [121, 122, 123, 124, 125], "foldxstabilityblackbox": 124, "foldxstabilityproblemfactori": 125, "foldx_stability_and_sasa": [126, 127, 128, 129], "foldxstabilityandsasablackbox": 128, "foldxstabilityandsasaproblemfactori": 129, "gfp_cba": [130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161], "abstract_vae_wrapp": [131, 132], "abstractvaewrapp": 132, "cbas_alphabet_preprocess": [133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "convert_aas_to_idx_arrai": 134, "convert_idx_array_to_aa": 135, "convert_mutations_to_sequ": 136, "get_argmax": 137, "get_balaji_predict": 138, "get_experimental_x_i": 139, "get_gfp_x_y_aa": 140, "get_gfp_base_seq": 141, "get_sampl": 142, "one_hot_encode_aa": 143, "one_hot_encode_aa_arrai": 144, "one_hot_encode_dna": 145, "partition_data": 146, "read_gfp_data": 147, "cbas_wrapp": [148, 149, 150, 151], "cbasvaewrapp": 149, "convertedtorchvaedecod": 150, "convertedtorchvaeencod": 151, "gfp_gp": 152, "make_va": [153, 154, 155, 156, 157, 158], "baseva": 154, "simpleva": 155, "build_va": 156, "identity_loss": 157, "summed_categorical_crossentropi": 158, "gfpcbasblackbox": 160, "gfpcbasproblemfactori": 161, "gfp_select": [162, 163, 164, 165], "gfpblackbox": 164, "gfpselectionproblemfactori": 165, "penalized_logp_lambo": [166, 167, 168, 169], "penalizedlogplamboblackbox": 168, "penalizedlogplamboproblemfactori": 169, "rdkit_logp": [172, 173, 174, 175], "logpblackbox": 174, "logpproblemfactori": 175, "rdkit_q": [176, 177, 178, 179], "qedblackbox": 178, "qedproblemfactori": 179, "rfp_foldx_stability_and_sasa": [180, 181], "sa_tdc": [182, 183, 184, 185], "sablackbox": 184, "saproblemfactori": 185, "super_mario_bro": [186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198], "level_util": [187, 188, 189, 190, 191, 192, 193, 194, 195], "add_padding_to_level": 188, "clean_level": 189, "level_to_arrai": 190, "level_to_list": 191, "levels_to_onehot": 192, "onehot_to_level": 193, "tensor_to_sim_level": 194, "vector": 195, "model": [196, 197, 198], "vaemario": 197, "load_example_model": 198, "toy_continuous_problem": [199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 251, 252, 253, 254], "definit": [200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216], "ackley_function_01": 201, "alpine_01": 202, "alpine_02": 203, "bent_cigar": 204, "brown": 205, "camelback_2d": 206, "chung_reynold": 207, "cosine_mixtur": 208, "cross_in_trai": 209, "deb_01": 210, "deb_02": 211, "deflected_corrugated_spr": 212, "easom": 213, "egg_hold": 214, "shifted_spher": 215, "styblinski_tang": 216, "toycontinuousblackbox": 218, "toycontinuousproblemfactori": 219, "toycontinuousproblem": 221, "white_nois": [222, 223, 224, 225], "whitenoiseblackbox": 224, "whitenoiseproblemfactori": 225, "registered_object": 226, "test": [227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 265, 267], "docs_exampl": [228, 229, 230, 231, 232, 233, 234, 235], "test_objective_funct": [229, 230, 231, 232, 233, 234, 235], "test_aloha_exampl": 230, "test_logp_exampl": 231, "test_logp_example_using_str": 232, "test_qed_exampl": 233, "test_qed_example_using_str": 234, "test_white_noise_exampl": 235, "basic_object": [237, 238, 239, 240, 241], "test_basic_object": [238, 239, 240], "test_registering_aloha": 239, "test_registering_white_nois": 240, "test_budget_exhaust": 241, "test_chemistry_object": 243, "test_foldx": 245, "test_foldx_rfp_lambo": 246, "test_rasp": 247, "test_basic_loop_without_cr": 248, "test_force_isol": 249, "test_passing_array_of_str": 250, "test_embedding_problems_into_higher_dim": [252, 253], "test_embed_camelback_into_high_dimens": 253, "test_instancing_of_toy_continuous_problem": 254, "test_minimal_working_exampl": [255, 256], "test_seed": [257, 258], "test_seeding_in_white_nois": 258, "test_foldx_interfac": 260, "test_protein_util": 261, "api": 263, "document": 263, "refer": [264, 304], "ad": [265, 266], "new": [265, 266], "problem": [265, 266, 268, 272, 286, 289, 290, 295, 296], "repositori": 265, "The": [265, 291, 293], "structur": 265, "A": 265, "gener": 265, "py": 265, "yml": [265, 275], "why": [265, 296], "conda": [265, 267, 296], "your": [265, 267, 293, 296], "option": 265, "make": [265, 275], "avail": 265, "depend": [265, 294, 296], "ar": [265, 270], "met": 265, "submit": [265, 266], "pull": [265, 266], "request": [265, 266], "optim": [266, 268, 283, 289, 293, 295, 297, 300, 301, 304], "baselin": [266, 267], "an": [266, 290, 291, 295, 296], "abstract": [266, 290, 291], "solver": [266, 268, 289, 290, 293, 295], "exampl": [266, 290, 291, 296], "randommut": [266, 289, 290], "get": [267, 268], "first": 267, "script": 267, "us": [267, 268, 275, 276, 277, 278, 279, 282, 289, 293], "librari": 268, "discret": [268, 296, 302], "function": [268, 272, 273, 285, 286, 287, 289, 293, 294, 295, 296], "black": [268, 294, 296], "box": [268, 294, 296], "toi": [268, 272, 286], "small": [268, 272], "molecul": [268, 272], "algorithm": [268, 299, 304], "cite": 268, "other": [268, 270, 272, 279], "relev": 268, "work": [268, 292], "contribut": 268, "comput": 270, "energi": 270, "singl": 270, "python": [270, 276, 279, 296], "set": [270, 275], "up": 270, "folder": [270, 275], "download": [270, 275], "pdb": 270, "repair": [270, 277, 278], "what": [270, 290, 293], "pars": 270, "wildtyp": 270, "defin": [270, 289, 290, 291, 296], "s": [270, 296], "sasa": [270, 276], "score": 270, "conclus": [270, 291, 293, 294, 295, 296], "rapid": 271, "stabil": [271, 276, 278, 289], "predict": 271, "how": [271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 292, 297, 298, 301, 302, 303, 304], "warn": 271, "further": 271, "read": [271, 294], "all": [272, 275, 291], "about": [273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 285, 286, 287, 290, 297, 298, 301, 302, 303, 304], "drd3": 275, "dock": 275, "tdc": [275, 282], "add": [275, 296], "binari": 275, "path": [275, 296], "prepare_receptor": 275, "from": 275, "sure": 275, "you": [275, 277, 278, 294], "re": 275, "rfp": 276, "lambo": [276, 279], "we": [276, 277, 278], "can": [276, 277, 278], "automat": 276, "solvent": 277, "access": [277, 282], "penal": 279, "logp": [279, 280], "keyword": 279, "argument": 279, "log": [280, 291], "solubl": 280, "quantit": 281, "estim": 281, "druglik": 281, "qed": 281, "synthet": 282, "jump": 283, "super": 283, "mario": 283, "bro": 283, "therapeut": 284, "data": 284, "common": 284, "oracl": 284, "name": 285, "see": [285, 297, 302], "also": 285, "continu": [268, 286], "low": 286, "intrins": 286, "dimension": 286, "white": 287, "nois": 287, "observ": [288, 291], "isol": [288, 294], "process": 288, "random": [289, 303], "mroug": 289, "check": 289, "result": 289, "poli_baselin": 290, "candid": 290, "want": 291, "more": [291, 294, 296, 297, 302], "complex": 291, "instanc": [291, 295], "simpl": 291, "initi": 291, "put": 291, "togeth": 291, "coupl": 291, "queri": 291, "dive": 292, "deeper": 292, "doe": 292, "under": 292, "hood": 292, "content": [292, 293], "usual": 293, "develop": 293, "loop": 293, "identifi": 293, "own": 293, "when": 294, "have": 294, "right": 294, "Is": 295, "factori": 296, "entir": 296, "need": 296, "where": 296, "thi": 296, "call": 296, "bayesian": [297, 300, 301], "cma": 298, "es": 298, "graph": 299, "genet": 299, "latent": 300, "space": 300, "line": 301, "nsga": 302, "2": 302, "templat": 304}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html b/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html index 3e770aaa..0311505a 100644 --- a/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html +++ b/docs/poli-docs/_build/html/using_poli/the_basics/isolation.html @@ -584,75 +584,25 @@

      Running objective functions in isolation -
      poli 🧪: creating an isolated black box function.
      -poli 🧪: starting the isolated objective process.
      +
      poli 🧪: creating environment poli__dockstring from dockstring/environment.yml
      +
      +
      +
      poli 🧪: creating environment poli__dockstring from dockstring/environment.yml
      +poli 🧪: running registration of dockstring from environment poli__dockstring
       
      -
      Traceback (most recent call last):
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 135, in run
      -    objective_factory: AbstractProblemFactory = dynamically_instantiate(
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 102, in dynamically_instantiate
      -    raise e
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 92, in dynamically_instantiate
      -    exec(command)
      -  File "<string>", line 1, in <module>
      -ModuleNotFoundError: No module named 'register'
      +
      /Users/sjt972/Projects/poli/src/poli/core/registry.py:258: UserWarning: Environment poli__dockstring already exists. Will not create it.
      +  warnings.warn(f"Environment {env_name} already exists. Will not create it.")
      +/Users/sjt972/Projects/poli/src/poli/core/registry.py:269: UserWarning: Running the following command: conda run -n poli__dockstring python /Users/sjt972/Projects/poli/src/poli/objective_repository/dockstring/register.py. 
      +  warnings.warn("Running the following command: %s. " % command)
       
      -
      CRITICAL:root:Path: /opt/homebrew/opt/openjdk/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin
      -CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring']
      -CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring
      -CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring
      -Traceback (most recent call last):
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 176, in <module>
      -    run(factory_kwargs[0], args.objective_name, args.port, args.password)
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 145, in run
      -    raise e
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 135, in run
      -    objective_factory: AbstractProblemFactory = dynamically_instantiate(
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 102, in dynamically_instantiate
      -    raise e
      -  File "/Users/sjt972/Projects/poli/src/poli/objective.py", line 92, in dynamically_instantiate
      -    exec(command)
      -  File "<string>", line 1, in <module>
      -ModuleNotFoundError: No module named 'register'
      +
      poli 🧪: creating an isolated black box function.
      +poli 🧪: starting the isolated objective process.
       
      -
      ---------------------------------------------------------------------------
      -ModuleNotFoundError                       Traceback (most recent call last)
      -Cell In[2], line 3
      -      1 from poli import create
      -----> 3 f, x0, y0 = create(
      -      4     name="dockstring",
      -      5     target_name="drd2"  # The target protein.
      -      6 )
      -
      -File ~/Projects/poli/src/poli/objective_factory.py:439, in create(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      -    437 if not quiet:
      -    438     print(f"poli 🧪: creating an isolated black box function.")
      ---> 439 f, x0, y0 = __create_as_isolated_process(
      -    440     name,
      -    441     seed=seed,
      -    442     batch_size=batch_size,
      -    443     parallelize=parallelize,
      -    444     num_workers=num_workers,
      -    445     evaluation_budget=evaluation_budget,
      -    446     quiet=quiet,
      -    447     **kwargs_for_factory,
      -    448 )
      -    449 problem_information = f.info
      -    451 # instantiate observer (if desired)
      -
      -File ~/Projects/poli/src/poli/objective_factory.py:278, in __create_as_isolated_process(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)
      -    276     e, tb = msg
      -    277     print(tb)
      ---> 278     raise e
      -    279 else:
      -    280     raise ValueError(
      -    281         f"Internal error: received {msg_type} when expecting SETUP or EXCEPTION"
      -    282     )
      -
      -ModuleNotFoundError: No module named 'register'
      +
      /Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.
      +  warnings.warn(
       
      diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb index c2cd2a07..a5738d28 100644 --- a/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/optimization_examples/protein-stability-foldx/optimizing_protein_stability.ipynb @@ -102,7 +102,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "3ned_Repair.pdb optimizing_protein_stability.ipynb\r\n" + "3ned_Repair.pdb optimizing_protein_stability.ipynb\n" ] } ], @@ -168,8 +168,82 @@ "name": "stdout", "output_type": "stream", "text": [ - "poli 🧪: creating an isolated black box function.\n", - "poli 🧪: starting the isolated objective process.\n" + "poli 🧪: Creating the objective from the repository.\n", + " ********************************************\n", + " *** ***\n", + " *** FoldX 5 (c) ***\n", + " *** ***\n", + " *** code by the FoldX Consortium ***\n", + " *** ***\n", + " *** Jesper Borg, Frederic Rousseau ***\n", + " *** Joost Schymkowitz, Luis Serrano ***\n", + " *** Peter Vanhee, Erik Verschueren ***\n", + " *** Lies Baeten, Javier Delgado ***\n", + " *** and Francois Stricher ***\n", + " *** and any other of the 9! permutations ***\n", + " *** based on an original concept by ***\n", + " *** Raphael Guerois and Luis Serrano ***\n", + " ********************************************\n", + "\n", + "1 models read: 3ned_Repair.pdb\n", + "1 models read: 3ned_Repair.pdb\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "Starting BuildModel\n", + "Reading EA1E;\n", + "Residue to Mutate GLUA1 has residue index 0\n", + "Mutating residue = GLUA1 into GLU\n", + "Your file run OK\n", + "End time of FoldX: Fri Jan 19 09:51:02 2024\n", + "Total time spend: 2.64 seconds.\n", + "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", + "Cleaning BuildModel...DONE\n" ] } ], @@ -231,16 +305,7 @@ "cell_type": "code", "execution_count": 6, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], + "outputs": [], "source": [ "from poli_baselines.solvers.simple.random_mutation import RandomMutation\n", "solver = RandomMutation(\n", @@ -265,7 +330,245 @@ "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ********************************************\n", + " *** ***\n", + " *** FoldX 5 (c) ***\n", + " *** ***\n", + " *** code by the FoldX Consortium ***\n", + " *** ***\n", + " *** Jesper Borg, Frederic Rousseau ***\n", + " *** Joost Schymkowitz, Luis Serrano ***\n", + " *** Peter Vanhee, Erik Verschueren ***\n", + " *** Lies Baeten, Javier Delgado ***\n", + " *** and Francois Stricher ***\n", + " *** and any other of the 9! permutations ***\n", + " *** based on an original concept by ***\n", + " *** Raphael Guerois and Luis Serrano ***\n", + " ********************************************\n", + "\n", + "1 models read: 3ned_Repair.pdb\n", + "1 models read: 3ned_Repair.pdb\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "Starting BuildModel\n", + "Reading NA194F;\n", + "Residue to Mutate ASNA194 has residue index 193\n", + "Mutating residue = ASNA194 into PHE\n", + "Your file run OK\n", + "End time of FoldX: Fri Jan 19 09:51:22 2024\n", + "Total time spend: 6.54 seconds.\n", + "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", + "Cleaning BuildModel...DONE\n", + " ********************************************\n", + " *** ***\n", + " *** FoldX 5 (c) ***\n", + " *** ***\n", + " *** code by the FoldX Consortium ***\n", + " *** ***\n", + " *** Jesper Borg, Frederic Rousseau ***\n", + " *** Joost Schymkowitz, Luis Serrano ***\n", + " *** Peter Vanhee, Erik Verschueren ***\n", + " *** Lies Baeten, Javier Delgado ***\n", + " *** and Francois Stricher ***\n", + " *** and any other of the 9! permutations ***\n", + " *** based on an original concept by ***\n", + " *** Raphael Guerois and Luis Serrano ***\n", + " ********************************************\n", + "\n", + "1 models read: 3ned_Repair.pdb\n", + "1 models read: 3ned_Repair.pdb\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "Starting BuildModel\n", + "Reading QA114S,NA194F;\n", + "Residue to Mutate GLNA114 has residue index 113\n", + "Residue to Mutate ASNA194 has residue index 193\n", + "Mutating residue = ASNA194 into PHE\n", + "Mutating residue = GLNA114 into SER\n", + "Your file run OK\n", + "End time of FoldX: Fri Jan 19 09:51:32 2024\n", + "Total time spend: 8.65 seconds.\n", + "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", + "Cleaning BuildModel...DONE\n", + " ********************************************\n", + " *** ***\n", + " *** FoldX 5 (c) ***\n", + " *** ***\n", + " *** code by the FoldX Consortium ***\n", + " *** ***\n", + " *** Jesper Borg, Frederic Rousseau ***\n", + " *** Joost Schymkowitz, Luis Serrano ***\n", + " *** Peter Vanhee, Erik Verschueren ***\n", + " *** Lies Baeten, Javier Delgado ***\n", + " *** and Francois Stricher ***\n", + " *** and any other of the 9! permutations ***\n", + " *** based on an original concept by ***\n", + " *** Raphael Guerois and Luis Serrano ***\n", + " ********************************************\n", + "\n", + "1 models read: 3ned_Repair.pdb\n", + "1 models read: 3ned_Repair.pdb\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "\n", + "BackHbond = -178.70\n", + "SideHbond = -76.61\n", + "Energy_VdW = -267.80\n", + "Electro = -13.75\n", + "Energy_SolvP = 374.21\n", + "Energy_SolvH = -351.07\n", + "Energy_vdwclash = 6.28\n", + "energy_torsion = 7.33\n", + "backbone_vdwclash= 65.17\n", + "Entropy_sidec = 146.42\n", + "Entropy_mainc = 340.27\n", + "water bonds = 0.00\n", + "helix dipole = 0.00\n", + "loop_entropy = 0.00\n", + "cis_bond = 2.25\n", + "disulfide = 0.00\n", + "kn electrostatic= 0.00\n", + "partial covalent interactions = 0.00\n", + "Energy_Ionisation = 1.77\n", + "Entropy Complex = 0.00\n", + "-----------------------------------------------------------\n", + "Total = \t\t\t\t -9.41\n", + "\n", + "Starting BuildModel\n", + "Reading DA3M,QA114S,NA194F;\n", + "Residue to Mutate ASPA3 has residue index 2\n", + "Residue to Mutate GLNA114 has residue index 113\n", + "Residue to Mutate ASNA194 has residue index 193\n", + "Mutating residue = ASPA3 into MET\n", + "Mutating residue = ASNA194 into PHE\n", + "Mutating residue = GLNA114 into SER\n", + "Your file run OK\n", + "End time of FoldX: Fri Jan 19 09:51:42 2024\n", + "Total time spend: 9.23 seconds.\n", + "validated file \"3ned_Repair_1.pdb\" => successfully finished\n", + "Cleaning BuildModel...DONE\n" + ] + } + ], "source": [ "solver.solve(max_iter=3)" ] @@ -293,9 +596,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "All y values: [array([[9.41639]]), array([[5.56267]]), array([[0.846902]]), array([[9.39441]])]\n", - "best stability: [9.41639]\n", - "Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLQDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYNTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK\n" + "All y values: [array([[9.41639]]), array([[13.0629]]), array([[13.5983]]), array([[13.1298]])]\n", + "best stability: [13.5983]\n", + "Associated sequence: EEDNMAIIKEFMRFKTHMEGSVNGHEFEIEGEGEGRPYEGTQTAKLKVTKGGPLPFAWDILSPQFSKAYVKHPADIPDYLKLSFPEGFKWERVMNFEDGGVVTVTQDSSLSDGEFIYKVKLRGTNFPSDGPVMQKKTMGWEACSERMYPEDGALKGEMKMRLKLKDGGHYDAEVKTTYKAKKPVQLPGAYFTNTKLDITSHNEDYTIVEQYERNEGRHSTGGMDELYK\n" ] } ], diff --git a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/isolation.ipynb b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/isolation.ipynb index 2260932f..9ba570e7 100644 --- a/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/isolation.ipynb +++ b/docs/poli-docs/_build/jupyter_execute/using_poli/the_basics/isolation.ipynb @@ -55,60 +55,41 @@ "name": "stdout", "output_type": "stream", "text": [ - "poli 🧪: creating an isolated black box function.\n", - "poli 🧪: starting the isolated objective process.\n" + "poli 🧪: creating environment poli__dockstring from dockstring/environment.yml\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "Traceback (most recent call last):\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 135, in run\n", - " objective_factory: AbstractProblemFactory = dynamically_instantiate(\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 102, in dynamically_instantiate\n", - " raise e\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 92, in dynamically_instantiate\n", - " exec(command)\n", - " File \"\", line 1, in \n", - "ModuleNotFoundError: No module named 'register'\n", - "\n" + "poli 🧪: creating environment poli__dockstring from dockstring/environment.yml\n", + "poli 🧪: running registration of dockstring from environment poli__dockstring\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "CRITICAL:root:Path: /opt/homebrew/opt/openjdk/bin:/opt/homebrew/bin:/Users/sjt972/anaconda3/envs/poli__dockstring/bin:/Users/sjt972/anaconda3/condabin:/Users/sjt972/autodock_vina_1_1_2_mac_catalina_64bit/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/usr/local/go/bin:/Users/sjt972/.cargo/bin\n", - "CRITICAL:root:Python path: ['/Users/sjt972/Projects/poli/src/poli', '/Users/sjt972/Projects/poli-docs/docs/poli-docs/using_poli/the_basics', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python39.zip', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/lib-dynload', '/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages', '/Users/sjt972/Projects/poli/src', '', '/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring']\n", - "CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring\n", - "CRITICAL:root:Path: :/Users/sjt972/anaconda3/envs/poli-docs2/lib/python3.9/site-packages/poli/objective_repository/dockstring\n", - "Traceback (most recent call last):\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 176, in \n", - " run(factory_kwargs[0], args.objective_name, args.port, args.password)\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 145, in run\n", - " raise e\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 135, in run\n", - " objective_factory: AbstractProblemFactory = dynamically_instantiate(\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 102, in dynamically_instantiate\n", - " raise e\n", - " File \"/Users/sjt972/Projects/poli/src/poli/objective.py\", line 92, in dynamically_instantiate\n", - " exec(command)\n", - " File \"\", line 1, in \n", - "ModuleNotFoundError: No module named 'register'\n" + "/Users/sjt972/Projects/poli/src/poli/core/registry.py:258: UserWarning: Environment poli__dockstring already exists. Will not create it.\n", + " warnings.warn(f\"Environment {env_name} already exists. Will not create it.\")\n", + "/Users/sjt972/Projects/poli/src/poli/core/registry.py:269: UserWarning: Running the following command: conda run -n poli__dockstring python /Users/sjt972/Projects/poli/src/poli/objective_repository/dockstring/register.py. \n", + " warnings.warn(\"Running the following command: %s. \" % command)\n" ] }, { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'register'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[2], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpoli\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m create\n\u001b[0;32m----> 3\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdockstring\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mtarget_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdrd2\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# The target protein.\u001b[39;49;00m\n\u001b[1;32m 6\u001b[0m \u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:439\u001b[0m, in \u001b[0;36mcreate\u001b[0;34m(name, seed, observer_init_info, observer, force_register, force_isolation, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m quiet:\n\u001b[1;32m 438\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpoli 🧪: creating an isolated black box function.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 439\u001b[0m f, x0, y0 \u001b[38;5;241m=\u001b[39m \u001b[43m__create_as_isolated_process\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 440\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 441\u001b[0m \u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 442\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 443\u001b[0m \u001b[43m \u001b[49m\u001b[43mparallelize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparallelize\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 444\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_workers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_workers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 445\u001b[0m \u001b[43m \u001b[49m\u001b[43mevaluation_budget\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mevaluation_budget\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 446\u001b[0m \u001b[43m \u001b[49m\u001b[43mquiet\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 447\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs_for_factory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 448\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 449\u001b[0m problem_information \u001b[38;5;241m=\u001b[39m f\u001b[38;5;241m.\u001b[39minfo\n\u001b[1;32m 451\u001b[0m \u001b[38;5;66;03m# instantiate observer (if desired)\u001b[39;00m\n", - "File \u001b[0;32m~/Projects/poli/src/poli/objective_factory.py:278\u001b[0m, in \u001b[0;36m__create_as_isolated_process\u001b[0;34m(name, seed, batch_size, parallelize, num_workers, evaluation_budget, quiet, **kwargs_for_factory)\u001b[0m\n\u001b[1;32m 276\u001b[0m e, tb \u001b[38;5;241m=\u001b[39m msg\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28mprint\u001b[39m(tb)\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 279\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 281\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInternal error: received \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmsg_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m when expecting SETUP or EXCEPTION\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 282\u001b[0m )\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'register'" + "name": "stdout", + "output_type": "stream", + "text": [ + "poli 🧪: creating an isolated black box function.\n", + "poli 🧪: starting the isolated objective process.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/sjt972/anaconda3/envs/poli__dockstring/lib/python3.9/site-packages/dockstring/utils.py:77: DockstringWarning: Although Mac use is supported, docking scores on Mac do not always perfectly match scores from Linux. Therefore, extra care should be taken when comparing results to other platforms. In particular, the baselines in the DOCKSTRING paper were computed on Linux, so please do not directly compare your docking scores to the scores reported on the paper.\n", + " warnings.warn(\n" ] } ], @@ -132,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -163,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -180,7 +161,7 @@ "array([[11.9]])" ] }, - "execution_count": 10, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -191,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -222,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -248,7 +229,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 7, "metadata": {}, "outputs": [ { diff --git a/docs/poli-docs/index.md b/docs/poli-docs/index.md index 518990da..caf94a9e 100644 --- a/docs/poli-docs/index.md +++ b/docs/poli-docs/index.md @@ -130,6 +130,8 @@ LaMBO Fluorescence (RFP) by stability and solvent-accessible surface area. On top of `poli`, we provide `poli-baselines`, a collection of **black-box optimization algorithms** (focusing especially on *discrete* sequences). Examples include +## Discrete + ::::{grid} :gutter: 3 @@ -139,6 +141,13 @@ On top of `poli`, we provide `poli-baselines`, a collection of **black-box optim Optimizing a discrete sequence by performing random mutations ::: +:::: + +## Continuous + +::::{grid} +:gutter: 3 + :::{grid-item-card} CMA-ES :link: ./using_poli_baselines/cma_es.html :columns: 6

      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 )gyt!Pq{S>33jE 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 A-~a#s diff --git a/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2 b/docs/poli-docs/_build/html/_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2 deleted file mode 100644 index 4a7f96652ca9a7f6c7106cc548515ba3d7281af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154840 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