diff --git a/docs/sphinx-builddir/doctrees/README.doctree b/docs/sphinx-builddir/doctrees/README.doctree index 27d0338..9335a3c 100644 Binary files a/docs/sphinx-builddir/doctrees/README.doctree and b/docs/sphinx-builddir/doctrees/README.doctree differ diff --git a/docs/sphinx-builddir/doctrees/environment.pickle b/docs/sphinx-builddir/doctrees/environment.pickle index bf8198b..c40c51b 100644 Binary files a/docs/sphinx-builddir/doctrees/environment.pickle and b/docs/sphinx-builddir/doctrees/environment.pickle differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_101_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_101_0.png new file mode 100644 index 0000000..44e9906 Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_101_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_110_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_110_0.png new file mode 100644 index 0000000..69ff963 Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_110_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_133_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_133_0.png new file mode 100644 index 0000000..9fef1ba Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_133_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_21_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_21_0.png new file mode 100644 index 0000000..871c3da Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_21_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_23_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_23_0.png new file mode 100644 index 0000000..9b2bfda Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_23_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_35_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_35_0.png new file mode 100644 index 0000000..540a452 Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_35_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_56_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_56_0.png new file mode 100644 index 0000000..5190bd8 Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_56_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_67_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_67_0.png new file mode 100644 index 0000000..69a8c36 Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_67_0.png differ diff --git a/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_71_0.png b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_71_0.png new file mode 100644 index 0000000..9b20630 Binary files /dev/null and b/docs/sphinx-builddir/doctrees/nbsphinx/notebooks_QSARtuna_Tutorial_71_0.png differ diff --git a/docs/sphinx-builddir/doctrees/notebooks/QSARtuna_Tutorial.doctree b/docs/sphinx-builddir/doctrees/notebooks/QSARtuna_Tutorial.doctree index e65a7df..ad07e31 100644 Binary files a/docs/sphinx-builddir/doctrees/notebooks/QSARtuna_Tutorial.doctree and b/docs/sphinx-builddir/doctrees/notebooks/QSARtuna_Tutorial.doctree differ diff --git a/docs/sphinx-builddir/html/README.html b/docs/sphinx-builddir/html/README.html index 88045a9..ed97a6f 100644 --- a/docs/sphinx-builddir/html/README.html +++ b/docs/sphinx-builddir/html/README.html @@ -136,6 +136,7 @@

Backgroundhere.

+

QSARtuna Publication available here.

The three-step process

QSARtuna is structured around three steps:

@@ -357,7 +358,7 @@

Run from Python/Jupyter Notebook activate my_env_with_qsartuna module purge # Just in case. which python # Check. Should output path that contains "my_env_with_qsartuna". -python -m pip install https://github.com/MolecularAI/QSARtuna/files/14742594/qsartuna-3.0.0.1.tar.gz +python -m pip install https://github.com/MolecularAI/QSARtuna/releases/download/3.1.0/qsartuna-3.1.0.tar.gz

Then you can use QSARtuna inside your Notebook:

diff --git a/docs/sphinx-builddir/html/_images/mlflow-inspecting-trials.png b/docs/sphinx-builddir/html/_images/mlflow-inspecting-trials.png new file mode 100644 index 0000000..90060e0 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/mlflow-inspecting-trials.png differ diff --git a/docs/sphinx-builddir/html/_images/mlflow-select-experiment.png b/docs/sphinx-builddir/html/_images/mlflow-select-experiment.png new file mode 100644 index 0000000..f4169d3 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/mlflow-select-experiment.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_101_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_101_0.png new file mode 100644 index 0000000..44e9906 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_101_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_110_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_110_0.png new file mode 100644 index 0000000..69ff963 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_110_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_133_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_133_0.png new file mode 100644 index 0000000..9fef1ba Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_133_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_21_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_21_0.png new file mode 100644 index 0000000..871c3da Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_21_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_23_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_23_0.png new file mode 100644 index 0000000..9b2bfda Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_23_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_35_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_35_0.png new file mode 100644 index 0000000..540a452 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_35_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_56_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_56_0.png new file mode 100644 index 0000000..5190bd8 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_56_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_67_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_67_0.png new file mode 100644 index 0000000..69a8c36 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_67_0.png differ diff --git a/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_71_0.png b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_71_0.png new file mode 100644 index 0000000..9b20630 Binary files /dev/null and b/docs/sphinx-builddir/html/_images/notebooks_QSARtuna_Tutorial_71_0.png differ diff --git a/docs/sphinx-builddir/html/_sources/README.md.txt b/docs/sphinx-builddir/html/_sources/README.md.txt index f13382f..b836e94 100644 --- a/docs/sphinx-builddir/html/_sources/README.md.txt +++ b/docs/sphinx-builddir/html/_sources/README.md.txt @@ -21,6 +21,8 @@ explainability python packages Further documentation in the GitHub pages [here](https://molecularai.github.io/QSARtuna/). +QSARtuna Publication available [here](https://doi.org/10.1021/acs.jcim.4c00457). + ### The three-step process QSARtuna is structured around three steps: @@ -266,7 +268,7 @@ conda create --name my_env_with_qsartuna python=3.10.10 jupyter pip conda activate my_env_with_qsartuna module purge # Just in case. which python # Check. Should output path that contains "my_env_with_qsartuna". -python -m pip install https://github.com/MolecularAI/QSARtuna/files/14742594/qsartuna-3.0.0.1.tar.gz +python -m pip install https://github.com/MolecularAI/QSARtuna/releases/download/3.1.0/qsartuna-3.1.0.tar.gz ``` Then you can use QSARtuna inside your Notebook: diff --git a/docs/sphinx-builddir/html/_sources/notebooks/QSARtuna_Tutorial.ipynb.txt b/docs/sphinx-builddir/html/_sources/notebooks/QSARtuna_Tutorial.ipynb.txt new file mode 100644 index 0000000..ba84fe3 --- /dev/null +++ b/docs/sphinx-builddir/html/_sources/notebooks/QSARtuna_Tutorial.ipynb.txt @@ -0,0 +1,11486 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# QSARtuna CLI Tutorial" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## This tutorial" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tutorial is intended to provide a new user with the necessary background to start using QSARtuna through a command line interface (CLI).\n", + "\n", + "A separate tutorial is available describing the use of the QSARtuna GUI." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Background" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna is a python package to automate the model building process for *REINVENT*. These models can use a variety of algorithms to fit to your input data and most of them have one or more so-called hyper-parameters (e.g. the maximum number of trees using a *Random Forest* or the C parameter in SVRs, controlling the influence of every support vector).\n", + "\n", + "For both regression and classification tasks, QSARtuna allows you to specify input data for which the optimal hyper-parameters and a model can obtained automatically. If you want to get an idea on how the package is structured, read on otherwise you might want to skip it and The following examples should give you an idea how.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The three-step process" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna is structured around three steps:\n", + "1. **Hyperparameter Optimization:** \n", + " Train many models with different parameters using Optuna.\n", + " Only the training dataset is used here. \n", + " Training is usually done with cross-validation.\n", + "2. **Build (Training):**\n", + " Pick the best model from Optimization, \n", + " re-train it without cross-validation,\n", + " and optionally evaluate its performance on the test dataset.\n", + "3. **Prod-build (or build merged):** \n", + " Re-train the best-performing model on the merged training and test datasets. \n", + " This step has a drawback that there is no data left to evaluate the resulting model, \n", + " but it has a big benefit that this final model is trained on the all available data. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Preparation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To use QSARtuna from Jupyter Notebook, install it with:\n", + "```\n", + "python -m pip install https://github.com/MolecularAI/QSARtuna/releases/download/3.1.0/qsartuna-3.1.0.tar.gz\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regression example\n", + "This is a toy example of training a model that will predict molecular weight for a subset of DRD2 molecules. This example was chosen so that the whole run would take less than a minute.\n", + "\n", + "Training dataset is a CSV file. It has SMILES strings in a column named \"canonical\". It has the value that we will try to predict in column \"molwt\".\n", + "\n", + "This example has train and test (holdout) dataset ready. If you have single dataset and would like QSARtuna to split it into train and test (holdout) datasets, see the next section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are a few lines from the input file:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "pycharm": { + "is_executing": true + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "canonical,activity,molwt,molwt_gt_330\r\n", + "Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1,0,387.233,True\r\n", + "O=C(Nc1ccc(F)cc1F)Nc1sccc1-c1nc2ccccc2s1,0,387.4360000000001,True\r\n", + "COC(=O)c1ccccc1NC(=O)c1cc([N+](=O)[O-])nn1Cc1ccccc1,0,380.36000000000007,True\r\n", + "CCOC(=O)C(C)Sc1nc(-c2ccccc2)ccc1C#N,0,312.39400000000006,False\r\n", + "CCC(CC)NC(=O)c1nn(Cc2ccccc2)c(=O)c2ccccc12,0,349.4340000000001,True\r\n", + "Brc1ccccc1OCCCOc1cccc2cccnc12,0,358.235,True\r\n", + "CCCCn1c(COc2cccc(OC)c2)nc2ccccc21,0,310.39700000000005,False\r\n", + "CCOc1cccc(NC(=O)c2sc3nc(-c4ccc(F)cc4)ccc3c2N)c1,0,407.4700000000001,True\r\n", + "COc1ccc(S(=O)(=O)N(CC(=O)Nc2ccc(C)cc2)c2ccc(C)cc2)cc1OC,0,454.54800000000023,True\r\n" + ] + } + ], + "source": [ + "!head ../tests/data/DRD2/subset-50/train.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create configuration" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna configuration can be read from a JSON file or created in Python. Here we create it in Python." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append(\"..\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/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": [ + "# Start with the imports.\n", + "import sklearn\n", + "from optunaz.three_step_opt_build_merge import (\n", + " optimize,\n", + " buildconfig_best,\n", + " build_best,\n", + " build_merged,\n", + ")\n", + "from optunaz.config import ModelMode, OptimizationDirection\n", + "from optunaz.config.optconfig import (\n", + " OptimizationConfig,\n", + " SVR,\n", + " RandomForestRegressor,\n", + " Ridge,\n", + " Lasso,\n", + " PLSRegression,\n", + " KNeighborsRegressor\n", + ")\n", + "from optunaz.datareader import Dataset\n", + "from optunaz.descriptors import ECFP, MACCS_keys, ECFP_counts, PathFP" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Prepare hyperparameter optimization configuration.\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\", # Typical names are \"SMILES\" and \"smiles\".\n", + " response_column=\"molwt\", # Often a specific name (like here), or just \"activity\".\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\",\n", + " test_dataset_file=\"../tests/data/DRD2/subset-50/test.csv\" # Hidden during optimization.\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(),\n", + " ECFP_counts.new(),\n", + " MACCS_keys.new(),\n", + " PathFP.new()\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " KNeighborsRegressor.new()\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=100, # Total number of trials.\n", + " n_startup_trials=50, # Number of startup (\"random\") trials.\n", + " random_seed=42, # Seed for reproducability\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ") " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run optimization" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Setup basic logging.\n", + "import logging\n", + "from importlib import reload\n", + "reload(logging)\n", + "logging.basicConfig(level=logging.INFO)\n", + "logging.getLogger(\"train\").disabled = True # Prevent ChemProp from logging\n", + "import numpy as np\n", + "np.seterr(divide=\"ignore\")\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\", category=FutureWarning)\n", + "warnings.filterwarnings(\"ignore\", category=RuntimeWarning)\n", + "\n", + "import tqdm\n", + "from functools import partialmethod, partial\n", + "tqdm.__init__ = partialmethod(tqdm.__init__, disable=True) # Prevent tqdm in ChemProp from flooding log\n", + "\n", + "# Avoid decpreciated warnings from packages etc\n", + "import warnings\n", + "warnings.simplefilter(\"ignore\")\n", + "def warn(*args, **kwargs):\n", + " pass\n", + "warnings.warn = warn" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:26,561] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:17:26,714] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:17:27,022] Trial 0 finished with value: -3594.2228073972638 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 3, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 0 with value: -3594.2228073972638.\n", + "[I 2024-07-02 13:17:27,171] Trial 1 finished with value: -5029.734616310275 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.039054412752107935, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 3.1242780840717016e-07, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -3594.2228073972638.\n", + "[I 2024-07-02 13:17:27,429] Trial 2 finished with value: -4242.092751193529 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 20, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 0 with value: -3594.2228073972638.\n", + "[I 2024-07-02 13:17:27,579] Trial 3 finished with value: -3393.577488426015 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.06877704223043679, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 3 with value: -3393.577488426015.\n", + "[I 2024-07-02 13:17:27,644] Trial 4 finished with value: -427.45250420148204 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:27,698] Trial 5 finished with value: -3387.245629616474 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:27,853] Trial 6 finished with value: -5029.734620250011 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 2.3661540064603184, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.1799882524170321, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,029] Trial 7 finished with value: -9650.026568221794 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 7, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,070] Trial 8 finished with value: -5437.151635569594 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.05083825348819038, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,336] Trial 9 finished with value: -2669.8534551928174 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 4, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,373] Trial 10 finished with value: -4341.586120152291 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.7921825998469865, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,532] Trial 11 finished with value: -5514.404088878843 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,680] Trial 12 finished with value: -5431.634989239215 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,722] Trial 13 finished with value: -3530.5496618991288 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,765] Trial 14 finished with value: -3497.6833185436312 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,793] Trial 15 finished with value: -4382.16208862162 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,831] Trial 16 finished with value: -5029.734620031822 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.002825619931800395, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 1.309885135051862e-09, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,870] Trial 17 finished with value: -679.3109044887755 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.16827992999009767, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:28,932] Trial 18 finished with value: -2550.114129318373 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 7, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:28,974] Trial 19 finished with value: -4847.085792360169 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.735431606118867, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,016] Trial 20 finished with value: -5029.268760278916 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0014840820994557746, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.04671166881768783, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,096] Trial 21 finished with value: -4783.0470154796785 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 15, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,135] Trial 22 finished with value: -3905.0064899852296 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,259] Trial 23 finished with value: -4030.45773791647 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 11, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,340] Trial 24 finished with value: -4681.602145939593 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 4, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,381] Trial 25 finished with value: -4398.544034028325 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6452011213193165, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,474] Trial 26 finished with value: -4454.143979828408 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 21, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,503] Trial 27 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:29,533] Trial 28 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:29,600] Trial 29 finished with value: -4397.330360587512 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 8, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,617] Trial 30 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:29,682] Trial 31 finished with value: -2602.7561184287083 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 6, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -427.45250420148204.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}, return [-3530.5496618991288]\n", + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}, return [-3530.5496618991288]\n", + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-3387.245629616474]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:29,715] Trial 32 finished with value: -5267.388279961089 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.2015560027548533, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,794] Trial 33 finished with value: -4863.581760751052 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 23, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -427.45250420148204.\n", + "[I 2024-07-02 13:17:29,836] Trial 34 finished with value: -388.96473594016675 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.5528259214839937, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:29,906] Trial 35 finished with value: -5539.698232987626 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6400992020612235, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:29,962] Trial 36 finished with value: -5180.5533034102455 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8968910439566395, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,005] Trial 37 finished with value: -4989.929984864281 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.04458440839692226, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 4.492108041427977, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,034] Trial 38 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:30,103] Trial 39 finished with value: -6528.215066535042 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.16700143339733753, 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 8, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-4397.330360587512]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:30,240] Trial 40 finished with value: -4168.7955967552625 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,311] Trial 41 finished with value: -6177.060727800014 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 1, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,401] Trial 42 finished with value: -3963.906954658343 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 21, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,435] Trial 43 finished with value: -5029.6805334166565 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.013186009009851564, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.001008958590140135, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,501] Trial 44 finished with value: -9300.86840721566 and parameters: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 9, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,547] Trial 45 finished with value: -5029.734620250011 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 83.87968210939489, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.382674443425525e-09, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,565] Trial 46 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:30,594] Trial 47 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:30,626] Trial 48 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:30,717] Trial 49 finished with value: -3660.9359502556 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 2, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"PathFP\", \"parameters\": {\"maxPath\": 3, \"fpSize\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 9, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}, return [-9300.86840721566]\n", + "Duplicated trial: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 7, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-2550.114129318373]\n", + "Duplicated trial: {'algorithm_name': 'KNeighborsRegressor', 'KNeighborsRegressor_algorithm_hash': '1709d2c39117ae29f6c9debe7241287b', 'metric__1709d2c39117ae29f6c9debe7241287b': , 'n_neighbors__1709d2c39117ae29f6c9debe7241287b': 6, 'weights__1709d2c39117ae29f6c9debe7241287b': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-2602.7561184287083]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:30,767] Trial 50 finished with value: -688.5244070398325 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.5267860995545326, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,813] Trial 51 finished with value: -690.6494438072099 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.8458809314722497, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,848] Trial 52 finished with value: -691.1197058420935 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.9167866889210807, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,898] Trial 53 finished with value: -691.3111710449325 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.945685900574672, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,934] Trial 54 finished with value: -690.9665592812149 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.8936837761725833, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:30,970] Trial 55 finished with value: -688.4682747008223 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.5183865279530455, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:31,030] Trial 56 finished with value: -687.5230947231512 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.3771771681361766, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:31,078] Trial 57 finished with value: -687.4503442069594 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.3663259819415374, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:31,127] Trial 58 finished with value: -686.9553733616618 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.2925652230875628, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 34 with value: -388.96473594016675.\n", + "[I 2024-07-02 13:17:31,174] Trial 59 finished with value: -370.2038330506566 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.3962903248948568, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,222] Trial 60 finished with value: -377.25988028857313 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.45237513161879, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,270] Trial 61 finished with value: -379.8933285317637 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4741161933311207, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,319] Trial 62 finished with value: -374.50897467366013 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4290962207409417, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,356] Trial 63 finished with value: -376.5588572940058 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4464295711264585, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,416] Trial 64 finished with value: -379.237448916406 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4687500034684213, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,454] Trial 65 finished with value: -375.7474776359051 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4395650011783436, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 59 with value: -370.2038330506566.\n", + "[I 2024-07-02 13:17:31,504] Trial 66 finished with value: -362.2834906299732 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.3326755354190032, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 66 with value: -362.2834906299732.\n", + "[I 2024-07-02 13:17:31,542] Trial 67 finished with value: -357.3474880122588 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2887212943233457, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -357.3474880122588.\n", + "[I 2024-07-02 13:17:31,591] Trial 68 finished with value: -354.279045046449 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2577677164664005, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 68 with value: -354.279045046449.\n", + "[I 2024-07-02 13:17:31,642] Trial 69 finished with value: -347.36894395697703 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1672928587680225, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 69 with value: -347.36894395697703.\n", + "[I 2024-07-02 13:17:31,706] Trial 70 finished with value: -345.17697390093394 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1242367255308854, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 70 with value: -345.17697390093394.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:31,757] Trial 71 finished with value: -347.74610809299037 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1728352983905301, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 70 with value: -345.17697390093394.\n", + "[I 2024-07-02 13:17:31,807] Trial 72 finished with value: -345.23464281634324 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1265380781508565, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 70 with value: -345.17697390093394.\n", + "[I 2024-07-02 13:17:31,856] Trial 73 finished with value: -344.6848312222365 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.0829896313820404, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 73 with value: -344.6848312222365.\n", + "[I 2024-07-02 13:17:31,902] Trial 74 finished with value: -344.9111966504334 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1070414661080543, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 73 with value: -344.6848312222365.\n", + "[I 2024-07-02 13:17:31,966] Trial 75 finished with value: -344.70116419828565 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.0875643695329498, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 73 with value: -344.6848312222365.\n", + "[I 2024-07-02 13:17:32,026] Trial 76 finished with value: -344.62647974688133 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.0716281620790837, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 76 with value: -344.62647974688133.\n", + "[I 2024-07-02 13:17:32,089] Trial 77 finished with value: -344.6759429204596 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.0456289319914898, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 76 with value: -344.62647974688133.\n", + "[I 2024-07-02 13:17:32,141] Trial 78 finished with value: -343.58131497761616 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.0010195360522613, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 78 with value: -343.58131497761616.\n", + "[I 2024-07-02 13:17:32,193] Trial 79 finished with value: -342.7290581014813 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9073210715005748, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 79 with value: -342.7290581014813.\n", + "[I 2024-07-02 13:17:32,254] Trial 80 finished with value: -342.67866114080107 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9166305667100072, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 80 with value: -342.67866114080107.\n", + "[I 2024-07-02 13:17:32,317] Trial 81 finished with value: -342.6440308445311 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9248722692093634, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,367] Trial 82 finished with value: -343.02085648448934 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8776928646870886, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,416] Trial 83 finished with value: -343.1662266300702 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.867592364677856, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,457] Trial 84 finished with value: -343.30158716569775 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8599491178327108, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,497] Trial 85 finished with value: -344.2803074848341 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8396948389352923, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,547] Trial 86 finished with value: -344.28301101884045 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8396651775801683, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,587] Trial 87 finished with value: -344.6781906268143 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8356021935129933, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,639] Trial 88 finished with value: -354.0405418264898 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7430046191126949, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,677] Trial 89 finished with value: -342.77203208258476 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9015965341429055, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,717] Trial 90 finished with value: -363.1622720320929 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6746575663752555, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n", + "[I 2024-07-02 13:17:32,757] Trial 91 finished with value: -342.7403796626193 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9057564666836629, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -342.6440308445311.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:32,797] Trial 92 finished with value: -342.63579667712696 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9332275205203372, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 92 with value: -342.63579667712696.\n", + "[I 2024-07-02 13:17:32,848] Trial 93 finished with value: -342.6886425884964 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9433063264508291, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 92 with value: -342.63579667712696.\n", + "[I 2024-07-02 13:17:32,898] Trial 94 finished with value: -342.9341048659705 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.884739221967487, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 92 with value: -342.63579667712696.\n", + "[I 2024-07-02 13:17:32,935] Trial 95 finished with value: -342.63507445779743 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9381000493689634, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 95 with value: -342.63507445779743.\n", + "[I 2024-07-02 13:17:32,986] Trial 96 finished with value: -343.06021011302374 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.963138023068903, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 95 with value: -342.63507445779743.\n", + "[I 2024-07-02 13:17:33,026] Trial 97 finished with value: -342.9990546212019 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9601651093867907, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 95 with value: -342.63507445779743.\n", + "[I 2024-07-02 13:17:33,066] Trial 98 finished with value: -3821.2267845437514 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 95 with value: -342.63507445779743.\n", + "[I 2024-07-02 13:17:33,117] Trial 99 finished with value: -356.6786067133016 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.721603508336166, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 95 with value: -342.63507445779743.\n" + ] + } + ], + "source": [ + "# Run Optuna Study.\n", + "study = optimize(config, study_name=\"my_study\")\n", + "# Optuna will log it's progress to sys.stderr\n", + "# (usually rendered in red in Jupyter Notebooks)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize optimization progress" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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13tryyQIKPsDb+810myZPFTEFp/rytanq87rkMsaZRUpr43WijUTtVpEjomaPXtMHE1tThy4jlrNde+9tV4vjzWSmZqMn2vpSJ2osUuDbEIQRUwYFlzmPv/94wCIBFGE2kmB+h4uUDsp+LmoQQRRhKebEgHNfVDHVQmFTmf0XkMUjd5/lVJRpXP4maGajiN2yWaUoohJw4Jl371NREQkV+xRI5uqTT0mXNyXbKEqG0zb6hwpNu8mImPsUSOyAi7uS7bw4OdKbntU6vGzTmQ77FEjqiYu7ku2YOpzZa2tl6pyTnnHAH7WiWyJiRpRNXFxX7IFU58rue1ReT9+1olsg4kaUTVxOySyBVOfG7ntUfkgftaJrI+JGlE1cTsksgVTnxu57VH5IH7WiayPiRpRNVW2L5zKWdp94ahmMPW5ktselffjZ53INpioEVUTF/clWzD1ubLVJtxV3eBaj591ItvhFlI1gBy3kKqNqrodEmMtLUeLd2X7Ldp7j8qKPuuOFmtHxlhLR+otpDiggMhK9Iv7qj1c7h3gv4HICkx9rgTA+Nhf2ypJck45x4jINnjrk4iIiEimmKgRERERyRQTNSIiIiKZYqJGREREJFNM1IiIiIhkiokaERERkUwxUSMiIiKSKSZqRERERDLFRI2IiIhIppioEREREckUEzUiIiIimWKiRkRERCRTTNSIiIiIZIqJGhEREZFMMVEjIiIikikmakREREQyxUSNiIiISKaYqBERERHJFBM1IiIiIpliokZEREQkU0zUiIiIiGSKiRoRERGRTDFRIyIiIpIpJmpEREREMsVEjYiIiEimmKgRERERyRQTNSIiIiKZYqJGREREJFNM1IiIiIhkiokaERERkUwxUSMiIiKSKSZqRERERDLFRI2IiIhIppioEREREckUEzUiIiIimWKiRkRERCRTTNTuc+PGDcyYMQNdu3ZFeHg4xo4di19//dXonC+//BIDBgxAcHAwhgwZgsTERKPy7OxszJw5E+Hh4YiIiMCSJUtQUFBgUR1EREREABM1g+LiYrzwwgu4efMmNm/ejPfffx/u7u549tlncfv2bQDAiRMnMHv2bDz11FP49NNPERkZiRdeeAFpaWmGeqZMmYJr165h+/bteP3113H06FG8+uqrhnJz6iAiIiICmKgZJCcn4+LFi4iNjUVQUBBat26NNWvW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ihAUFIQ5c+YgMDDQcM6xY8ewZs0aXL16FU2bNsXkyZMxYMAAQ7lGo0FMTAy++uorAECPHj2wcOFCeHt7m12HpbRaHW7fzq/y9aY4OSng7e2O7Ox8dqPbGGMtLcZbOoy1dBhr6Vgr1j4+7maNUWOiVgMwUXNsjLW0GG/pMNbSYaylI3WixlufRERERDLFRI2IiIhIppioEREREckUEzUiIiIimWKiRkRERCRTTNSIiIiIZIqJGhEREZFMMVEjIiIikikmakREREQyxUSNiIiISKaYqBERERHJFBM1IiIiIpliokZEREQkU0zUiIiIiGSKiRoRERGRTDFRIyIiIpIpJmpEREREMsVEjYiIiEimmKgRERERyRQTNSIiIiKZYqJGREREJFNM1IiIiIhkiokaERERkUwxUSMiIiKSKSZqRERERDLFRI2IiIhIppioEREREckUEzUiIiIimWKiRkRERCRTTNSIiIiIZIqJGhEREZFMMVEjIiIikikmakREREQyxUSNiIiISKaYqBERERHJFBM1IiIiIpliokZEZCFREKAp1eHW3WJoSnUQBcHeTSKiGsrJ3g0gInIkWkHAxj2nkXrxpuFYSEADTBgWDKUo2rFlRFQTsUeNiMhMookkDQBSL9zExr2n2bNGRFbHRI2IyEwFJdoySZpe6oWbKCjRStwiIqrpmKgREZlJU1harXIiIksxUSMiMpPareJhvZWVExFZiokaEZGZVM5KhAQ0MFkWEtAAKmelxC0iopqOiRoRkZkEUcSEYcFlkjX9rE+Bsz6JyMrYT09EZAGlKGLSsGAUlGihKSyF2s0JKmclkzQisgkmakREFhJEEWonBdQeLvcOMEkjIhvhrU8iIiIimWKiRkRERCRTTNRIdriPIhER0T0co0aywn0UiYiI/sYeNZIN7qNIRERkjIkayQb3USQiIjLGRI1kg/soEhERGWOiRrLBfRSJiIiMMVEj2eA+ikRERMaYqJFscB9FIiIiY7yXRLLCfRSJiIj+xkSNZIf7KBIREd3DW59EREREMsVEjYiIiEimamWitmjRIsybN6/M8cTERAwbNgwdOnRAVFQUvvjiC6PyoqIiLFmyBJGRkQgJCcHMmTNx+/Ztq9dBREREBNSyRE2n02HdunXYvXt3mbK0tDSMHz8e3bt3x969e/Hkk09izpw5SExMNJzz6quv4vvv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "sns.set_theme(style=\"darkgrid\")\n", + "default_reg_scoring= config.settings.scoring\n", + "ax = sns.scatterplot(data=study.trials_dataframe(), x=\"number\", y=\"value\");\n", + "ax.set(xlabel=\"Trial number\", ylabel=f\"Ojbective value\\n({default_reg_scoring})\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sometimes it might be interesting to look at individual CV scores instead of aggregated score (mean CV score by default). Here we can plot all 3 cross validation scores (neg_mean_squared_error) for each trial (folds highlighted using different colors)." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cv_test = study.trials_dataframe()[\"user_attrs_test_scores\"].map(lambda d: d[default_reg_scoring])\n", + "x = []\n", + "y = []\n", + "fold = []\n", + "for i, vs in cv_test.items():\n", + " for idx, v in enumerate(vs):\n", + " x.append(i)\n", + " y.append(v)\n", + " fold.append(idx)\n", + "ax = sns.scatterplot(x=x, y=y, hue=fold, style=fold, palette='Set1')\n", + "ax.set(xlabel=\"Trial number\", ylabel=f\"Ojbective value\\n({default_reg_scoring})\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pick the best trial and build a model for it" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We pick the best trial, inspect its configuration, build the best model, and save it as a pickled file." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the best Trial from the Study and make a Build (Training) configuration for it.\n", + "buildconfig = buildconfig_best(study)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Optional: write out JSON of the best configuration." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"data\": {\n", + " \"training_dataset_file\": \"../tests/data/DRD2/subset-50/train.csv\",\n", + " \"input_column\": \"canonical\",\n", + " \"response_column\": \"molwt\",\n", + " \"response_type\": \"regression\",\n", + " \"deduplication_strategy\": {\n", + " \"name\": \"KeepMedian\"\n", + " },\n", + " \"split_strategy\": {\n", + " \"name\": \"NoSplitting\"\n", + " },\n", + " \"test_dataset_file\": \"../tests/data/DRD2/subset-50/test.csv\",\n", + " \"save_intermediate_files\": false,\n", + " \"log_transform\": false,\n", + " \"log_transform_base\": null,\n", + " \"log_transform_negative\": null,\n", + " \"log_transform_unit_conversion\": null,\n", + " \"probabilistic_threshold_representation\": false,\n", + " \"probabilistic_threshold_representation_threshold\": null,\n", + " \"probabilistic_threshold_representation_std\": null\n", + " },\n", + " \"metadata\": {\n", + " \"name\": \"\",\n", + " \"cross_validation\": 3,\n", + " \"shuffle\": false,\n", + " \"best_trial\": 95,\n", + " \"best_value\": -342.63507445779743,\n", + " \"n_trials\": 100,\n", + " \"visualization\": null\n", + " },\n", + " \"descriptor\": {\n", + " \"name\": \"ECFP_counts\",\n", + " \"parameters\": {\n", + " \"radius\": 3,\n", + " \"useFeatures\": true,\n", + " \"nBits\": 2048\n", + " }\n", + " },\n", + " \"settings\": {\n", + " \"mode\": \"regression\",\n", + " \"scoring\": \"neg_mean_squared_error\",\n", + " \"direction\": \"maximize\",\n", + " \"n_trials\": 100,\n", + " \"tracking_rest_endpoint\": null\n", + " },\n", + " \"algorithm\": {\n", + " \"name\": \"Lasso\",\n", + " \"parameters\": {\n", + " \"alpha\": 0.9381000493689634\n", + " }\n", + " },\n", + " \"task\": \"building\"\n", + "}\n" + ] + } + ], + "source": [ + "import apischema\n", + "buildconfig_as_dict = apischema.serialize(buildconfig)\n", + "\n", + "import json\n", + "print(json.dumps(buildconfig_as_dict, indent=2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Build (re-Train) and save the best model. This time training uses all training data, without splitting it into cross-validation folds." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "best_build = build_best(buildconfig, \"../target/best.pkl\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the best (or merged) model as following" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 67.43103985, 177.99850936])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pickle\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " model = pickle.load(f)\n", + "model.predict_from_smiles([\"CCC\", \"CC(=O)Nc1ccc(O)cc1\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can explore how good the best model performs on the test (holdout) set." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.read_csv(config.data.test_dataset_file) # Load test data.\n", + "\n", + "expected = df[config.data.response_column]\n", + "predicted = model.predict_from_smiles(df[config.data.input_column])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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S5cuxg6DiEivOOxFRFq5ePEiOnTogDfeeEN9LDs7G3369MGkSZMgiiJ27tyJ0NBQnDt3DmPGjEFERASio6Oxf//+ap+lUCiwePFiDBgwAB07dkR0dDT27t1b7RpRFLFx40aMGDECERERGDJkCNavXw9RFLFy5Up1T1VoaChWrlwJABAEAWvWrMGQIUPQsWNHDBs2DJs3b67xLF9//TWGDRuGiIgIxMTE4Pbt2w0+/4QJEzBv3jysWrUK/fr1Q+fOnREbG4usrCzs2LEDQ4YMQWRkJCZOnIibN29Wu3fv3r144oknEBkZib59+2LevHnIz8+v9fuMGTMGL7/8crVjgwcPxsCBA6sdmzp1KiZPnowJEybgxIkTOHHihFGH7ojMAXt+iKgapVJZ63GZTAaJRIKOHTsiNjYWn332GR5//HH06dMH8+bNgyAIWLRoESQSifqel156CTExMXj11Vfx3XffYcaMGVi9ejUGDBgAURQxbdo0nD59GtOnT0dgYCB+/vlnvPrqqygvL8fo0aMBAIsXL8amTZswadIk9O3bFxcuXMDSpUuhVCrx9NNPIyMjA9999x22b98OPz8/AMD8+fOxc+dOvPTSS4iMjERCQgI++OADFBQUYNq0aQCALVu24L333sPzzz+P/v374+jRo5g7d65GbbR792506NABCxcuREZGBhYsWICYmBjY29tj9uzZKC0txbx587BgwQKsWbMGALBq1SqsWLEC48aNw6uvvor09HT897//xdmzZ/HNN9/AwcGh2vcYMGAANm/eDJVKBZlMhps3byI9PR0AkJ6eDn9/f1RUVODo0aOYOXMm+vTpg9dffx0A8M477yAoKEjD/+NEVsh4e6oSkSmZPXu2GBISUuevdevWqa8tLy8Xo6OjxWHDhok7duwQQ0JCxH379qnPVx375JNP1McEQRAff/xx8emnnxZFURQPHTokhoSEiHv27KkWx2uvvSb27dtXrKioEPPz88Xw8HBx4cKF1a557733xMmTJ4uiKIorVqwQQ0JC1OeuXLkihoaGiqtXr652z/Lly8VOnTqJOTk5oiAIYp8+fcQZM2ZUu2bevHliSEiIeOzYsTrbKSYmRuzUqZOYl5enPjZ58mQxJCREvHHjhvrYggULxG7duomiKIp5eXlix44dxblz51b7rISEBDEkJETcsmWLKIqV/w8GDRok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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot expected vs predicted values for the best model.\n", + "import matplotlib.pyplot as plt\n", + "ax = plt.scatter(expected, predicted)\n", + "lims = [expected.min(), expected.max()]\n", + "plt.plot(lims, lims) # Diagonal line.\n", + "plt.xlabel(f\"Expected {config.data.response_column}\");\n", + "plt.ylabel(f\"Predicted {config.data.response_column}\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also calculate custom metrics for the best model:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R2: 0.8566354978126369, RMSE: 26.204909888075044, Mean absolute error: 19.298453946973815\n" + ] + } + ], + "source": [ + "from sklearn.metrics import (r2_score, mean_squared_error, mean_absolute_error)\n", + "import numpy as np\n", + "\n", + "# R2\n", + "r2 = r2_score(y_true=expected, y_pred=predicted)\n", + "\n", + "# RMSE. sklearn 0.24 added squared=False to get RMSE, here we use np.sqrt().\n", + "rmse = np.sqrt(mean_squared_error(y_true=expected, y_pred=predicted)) \n", + "\n", + "# MAE\n", + "mae = mean_absolute_error(y_true=expected, y_pred=predicted)\n", + "\n", + "print(f\"R2: {r2}, RMSE: {rmse}, Mean absolute error: {mae}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If the metrics look acceptable, the model is ready for use." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Build merged model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can merge train and test data, and build (train) the model again. We will have no more holdout data to evaluate the model, but hopefully the model will be a little better by seeing a little more data." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Build (Train) and save the model on the merged train+test data.\n", + "build_merged(buildconfig, \"../target/merged.pkl\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Preprocessing: splitting data into train and test sets, and removing duplicates " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Splitting into train and test dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna can split data into train and test (holdout) datasets. To do so, send all data in as training_dataset_file, and choose a splitting strategy. Currently QSARtuna supports three splitting strategies: random, temporal and stratified. \n", + "\n", + "Random strategy splits data randomly, taking a specified fraction of observations to be test dataset. \n", + "\n", + "Temporal strategy takes the first observations as training dataset, and the last specified fraction of observations as test dataset. The input dataset must be already sorted, from oldest in the beginning to newest and the end. This sorting can be done in any external tool (e.g. Excel). \n", + "\n", + "Stratified strategy splits data into bins first, and then takes a fraction from each bin to be the test dataset. This ensures that the distributions in the train and test data are similar. This is a better strategy if dataset is unballanced." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Removing duplicates" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All the algorithms QSARtuna supports do not work with duplicates. Duplicates can come from multiple measurements for the same compound, or from the fact that the molecular descriptors we use are all disregard stereochemistry, so even if compounds are different, descriptors make them into duplicates. QSARtuna provides several strategies to remove duplicates:\n", + "* keep median - factors experimental deviation using all replicates into one median value (robust to outliers - recommended)\n", + "* keep average - use all experimental data acorss all replicates (less robust to outliers vs. median)\n", + "* keep first / keep last - when the first or the last measurement is the trusted one\n", + "* keep max / keep min - when we want to keep the most extreme value out of many\n", + "* keep random - when we are agnostic to which replicate kept" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Configuration example" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "from optunaz.utils.preprocessing.splitter import Stratified\n", + "from optunaz.utils.preprocessing.deduplicator import KeepMedian\n", + "# Prepare hyperparameter optimization configuration.\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-100/train.csv\", # This will be split into train and test.\n", + " split_strategy=Stratified(fraction=0.2),\n", + " deduplication_strategy=KeepMedian(),\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=100,\n", + " n_startup_trials=50,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " ),\n", + ") " + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:36,922] A new study created in memory with name: my_study_stratified_split\n", + "[I 2024-07-02 13:17:36,963] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:17:37,046] Trial 0 finished with value: -1856.4459752935309 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 0 with value: -1856.4459752935309.\n", + "[I 2024-07-02 13:17:37,123] Trial 1 finished with value: -1692.0451328577294 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.2918844591266672, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 1 with value: -1692.0451328577294.\n", + "[I 2024-07-02 13:17:37,592] Trial 2 finished with value: -1378.9731014410709 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.471164936778079, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 2 with value: -1378.9731014410709.\n", + "[I 2024-07-02 13:17:37,688] Trial 3 finished with value: -2658.13214897931 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 2 with value: -1378.9731014410709.\n", + "[I 2024-07-02 13:17:37,804] Trial 4 finished with value: -2059.3079659969176 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 27, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 2 with value: -1378.9731014410709.\n", + "[I 2024-07-02 13:17:38,330] Trial 5 finished with value: -280.17777558722315 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7001901522391756, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -280.17777558722315.\n", + "[I 2024-07-02 13:17:38,422] Trial 6 finished with value: -3551.475476217507 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 31, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -280.17777558722315.\n", + "[I 2024-07-02 13:17:38,466] Trial 7 finished with value: -2124.9660426577593 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -280.17777558722315.\n", + "[I 2024-07-02 13:17:38,509] Trial 8 finished with value: -1686.5737716985532 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.9841058851292832, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -280.17777558722315.\n", + "[I 2024-07-02 13:17:38,552] Trial 9 finished with value: -1702.174704715547 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.861494545249233, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -280.17777558722315.\n", + "[I 2024-07-02 13:17:38,578] Trial 10 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:38,621] Trial 11 finished with value: -1204.636967895143 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5238298142840006, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -280.17777558722315.\n", + "[I 2024-07-02 13:17:38,676] Trial 12 finished with value: -228.44505332657158 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.9836853549192415, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:38,729] Trial 13 finished with value: -3949.499774068696 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.04535826280986047, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.012999584021838e-09, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-2124.9660426577593]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:38,829] Trial 14 finished with value: -2856.917927507731 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 13, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.306e+01, tolerance: 3.824e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:38,882] Trial 15 finished with value: -2554.2079198900733 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.10588223712643852, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:38,922] Trial 16 finished with value: -1261.484274761188 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.0950442632698256, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:38,965] Trial 17 finished with value: -282.6478019258886 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.2920636100136971, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,004] Trial 18 finished with value: -1814.6019641143478 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,048] Trial 19 finished with value: -1284.7430070920798 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1729012287538991, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,103] Trial 20 finished with value: -237.98783693000647 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1721667984096773, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,192] Trial 21 finished with value: -2129.55317061882 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 12, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,235] Trial 22 finished with value: -3949.4997740833423 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 3.779895470793612, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 4.260941957410989e-09, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,279] Trial 23 finished with value: -1740.8894369939983 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.02841448247455669, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.698e+02, tolerance: 3.824e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.280e+02, tolerance: 3.820e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.352e+02, tolerance: 3.770e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:39,373] Trial 24 finished with value: -3317.417858905051 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.003050380617617421, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,404] Trial 25 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:39,448] Trial 26 finished with value: -1256.7270466276807 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.1594144041655936, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,491] Trial 27 finished with value: -1245.1399766270456 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.336730512398918, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,583] Trial 28 finished with value: -2908.3563960057677 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 14, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}, return [-2658.13214897931]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:39,628] Trial 29 finished with value: -1775.55204856041 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,721] Trial 30 finished with value: -2059.3079659969176 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 19, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,765] Trial 31 finished with value: -1257.9288888831513 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.1441514794000534, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,808] Trial 32 finished with value: -280.98174313112844 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.1939105579414777, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,900] Trial 33 finished with value: -3054.7066202193805 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 23, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,944] Trial 34 finished with value: -1227.082986184029 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.909508127148669, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:39,988] Trial 35 finished with value: -1676.7481962719485 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.4307837873914335, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,079] Trial 36 finished with value: -2059.307965996918 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,168] Trial 37 finished with value: -3441.9109103644514 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 12, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,211] Trial 38 finished with value: -1670.5213862925175 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.07945856808433427, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,264] Trial 39 finished with value: -2756.046839500092 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,320] Trial 40 finished with value: -3949.4997735530674 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.022099719935614482, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 1.4657380646234507e-08, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,376] Trial 41 finished with value: -3949.4997740833423 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 1.0862402902634642, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.12519632281925502, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,467] Trial 42 finished with value: -3438.566583971217 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,524] Trial 43 finished with value: -254.4422556954731 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.19967589906728334, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.016e+01, tolerance: 3.820e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:40,618] Trial 44 finished with value: -359.7639743940817 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.059252880514551576, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,662] Trial 45 finished with value: -1246.7813032646238 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.3074782262329858, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,755] Trial 46 finished with value: -2224.3845873049813 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 17, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:40,810] Trial 47 finished with value: -1673.9639799911165 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.2737740844660712, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,896] Trial 48 finished with value: -3163.129883232068 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 32, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:40,987] Trial 49 finished with value: -2753.414173913392 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,057] Trial 50 finished with value: -263.1352845182604 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.627030918721665, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,105] Trial 51 finished with value: -271.2979718788249 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.8548903728617034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,165] Trial 52 finished with value: -277.86441431259567 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.9605867591283856, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,227] Trial 53 finished with value: -277.4329099850367 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.9537398361705693, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,274] Trial 54 finished with value: -274.3838070241422 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.9045589309769144, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,334] Trial 55 finished with value: -260.4460398258507 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.5589021326002044, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,383] Trial 56 finished with value: -257.95032410206767 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.5053759377103249, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,444] Trial 57 finished with value: -256.5958038666581 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4789082433356577, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,495] Trial 58 finished with value: -253.4269973575198 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4281024602273042, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,560] Trial 59 finished with value: -249.40822811603962 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.3546313579812586, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,620] Trial 60 finished with value: -245.71101688809983 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2913960369109012, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,675] Trial 61 finished with value: -247.88538215472033 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.3274897484709072, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,737] Trial 62 finished with value: -244.23847775159297 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2647865635312279, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,803] Trial 63 finished with value: -247.59033004585282 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.3228443521984092, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,863] Trial 64 finished with value: -243.40694430653753 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2489205103047292, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 12 with value: -228.44505332657158.\n", + "[I 2024-07-02 13:17:41,928] Trial 65 finished with value: -223.85145692792733 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8934822741396387, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 65 with value: -223.85145692792733.\n", + "[I 2024-07-02 13:17:41,990] Trial 66 finished with value: -221.94026043724057 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8552798675517863, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 66 with value: -221.94026043724057.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:42,048] Trial 67 finished with value: -219.60947928367543 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8149866573467666, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,108] Trial 68 finished with value: -221.84441955310717 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8531301788095305, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,170] Trial 69 finished with value: -221.24134912135943 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8418420411160932, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,232] Trial 70 finished with value: -223.34805357903284 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.883998932301903, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,293] Trial 71 finished with value: -221.99342925522842 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8564564664338091, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,353] Trial 72 finished with value: -222.50886633416462 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8672069097403997, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,415] Trial 73 finished with value: -221.61235541906441 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8482856353268698, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -219.60947928367543.\n", + "[I 2024-07-02 13:17:42,479] Trial 74 finished with value: -217.7749814513912 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7823980442129331, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 74 with value: -217.7749814513912.\n", + "[I 2024-07-02 13:17:42,538] Trial 75 finished with value: -216.00225784039503 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7113129125761161, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 75 with value: -216.00225784039503.\n", + "[I 2024-07-02 13:17:42,601] Trial 76 finished with value: -216.8736767409489 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6250904023479531, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 75 with value: -216.00225784039503.\n", + "[I 2024-07-02 13:17:42,666] Trial 77 finished with value: -216.94414119442342 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6227757503715069, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 75 with value: -216.00225784039503.\n", + "[I 2024-07-02 13:17:42,731] Trial 78 finished with value: -216.45936690929625 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6343056785694773, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 75 with value: -216.00225784039503.\n", + "[I 2024-07-02 13:17:42,797] Trial 79 finished with value: -216.63861804615567 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6302707941523814, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 75 with value: -216.00225784039503.\n", + "[I 2024-07-02 13:17:42,860] Trial 80 finished with value: -1969.3749442111905 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00019861806798724335, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 89.586529041453, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 75 with value: -216.00225784039503.\n", + "[I 2024-07-02 13:17:42,923] Trial 81 finished with value: -215.82051598778696 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6518244359516081, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:42,987] Trial 82 finished with value: -216.06387687700067 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6440087841656821, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:43,041] Trial 83 finished with value: -216.24994687849525 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6393212787552464, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:43,106] Trial 84 finished with value: -216.92984604804667 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6232144947646524, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:43,170] Trial 85 finished with value: -217.25506613319246 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.603388647930941, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:43,223] Trial 86 finished with value: -2733.5772576431627 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:43,287] Trial 87 finished with value: -217.29854648789728 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5873312673596333, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:43,347] Trial 88 finished with value: -221.16592450348784 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.4337907998582289, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 81 with value: -215.82051598778696.\n", + "[I 2024-07-02 13:17:43,410] Trial 89 finished with value: -215.68514116107337 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6695836226711808, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,475] Trial 90 finished with value: -220.8939514172608 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.4420925048614356, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,535] Trial 91 finished with value: -215.72299797702155 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6960582933068138, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,601] Trial 92 finished with value: -215.69285146262294 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.69078828949453, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,665] Trial 93 finished with value: -216.0538787714827 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7144357045239296, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,728] Trial 94 finished with value: -216.4213281391621 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7353090312302926, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,794] Trial 95 finished with value: -3949.4997740833423 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 50.74724725664498, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 8.92653950485437e-05, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,858] Trial 96 finished with value: -216.12287184152592 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7183304951103088, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,922] Trial 97 finished with value: -216.22186485689846 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.7234233661662641, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:43,977] Trial 98 finished with value: -2720.793752592223 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n", + "[I 2024-07-02 13:17:44,042] Trial 99 finished with value: -219.3855763846717 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.4726201914486088, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 89 with value: -215.68514116107337.\n" + ] + } + ], + "source": [ + "study = optimize(config, study_name=\"my_study_stratified_split\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Choosing scoring function " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, QSARtuna uses `neg_mean_squared_error` for regression and `roc_auc` for classification. It is possible to change to other scoring functions that supported by scikit-learn (https://scikit-learn.org/stable/modules/model_evaluation.html) amongst others:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['explained_variance',\n", + " 'max_error',\n", + " 'neg_mean_absolute_error',\n", + " 'neg_mean_squared_error',\n", + " 'neg_median_absolute_error',\n", + " 'r2',\n", + " 'accuracy',\n", + " 'average_precision',\n", + " 'balanced_accuracy',\n", + " 'f1',\n", + " 'f1_macro',\n", + " 'f1_micro',\n", + " 'f1_weighted',\n", + " 'jaccard',\n", + " 'jaccard_macro',\n", + " 'jaccard_micro',\n", + " 'jaccard_weighted',\n", + " 'neg_brier_score',\n", + " 'precision',\n", + " 'precision_macro',\n", + " 'precision_micro',\n", + " 'precision_weighted',\n", + " 'recall',\n", + " 'recall_macro',\n", + " 'recall_micro',\n", + " 'recall_weighted',\n", + " 'roc_auc',\n", + " 'auc_pr_cal',\n", + " 'bedroc',\n", + " 'concordance_index']" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from optunaz import objective\n", + "list(objective.regression_scores) + list(objective.classification_scores)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This value can be set using `settings.scoring`:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-100/train.csv\",\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=100,\n", + " n_startup_trials=50,\n", + " random_seed=42,\n", + " scoring=\"r2\", # Scoring function name from scikit-learn.\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " ),\n", + ") " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:44,945] A new study created in memory with name: my_study_r2\n", + "[I 2024-07-02 13:17:44,947] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:17:45,072] Trial 0 finished with value: -0.011171868665159623 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.011171868665159623.\n", + "[I 2024-07-02 13:17:45,197] Trial 1 finished with value: -0.08689402230378174 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.011171868665159623.\n", + "[I 2024-07-02 13:17:45,283] Trial 2 finished with value: -0.12553701248394863 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 5.141096648805748, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.4893466963980463e-08, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 0 with value: -0.011171868665159623.\n", + "[I 2024-07-02 13:17:45,358] Trial 3 finished with value: 0.3039309544203818 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 3 with value: 0.3039309544203818.\n", + "[I 2024-07-02 13:17:45,410] Trial 4 finished with value: 0.20182749628697164 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 3 with value: 0.3039309544203818.\n", + "[I 2024-07-02 13:17:45,485] Trial 5 finished with value: 0.8187194367176578 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: 0.8187194367176578.\n", + "[I 2024-07-02 13:17:45,558] Trial 6 finished with value: 0.4647239019719945 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6574750183038587, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: 0.8187194367176578.\n", + "[I 2024-07-02 13:17:45,611] Trial 7 finished with value: 0.8614818478547979 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3974313630683448, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 7 with value: 0.8614818478547979.\n", + "[I 2024-07-02 13:17:45,705] Trial 8 finished with value: -0.12769795082909816 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 28, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 7 with value: 0.8614818478547979.\n", + "[I 2024-07-02 13:17:45,773] Trial 9 finished with value: 0.8639946428338224 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2391884918766034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:45,838] Trial 10 finished with value: -0.12553701248377633 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00044396482429275296, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.3831436879125245e-10, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:45,892] Trial 11 finished with value: -0.12553700871203702 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00028965395242758657, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.99928292425642e-07, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:45,934] Trial 12 finished with value: 0.2935582042429075 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:45,976] Trial 13 finished with value: 0.18476333152695587 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,029] Trial 14 finished with value: 0.8190707459213998 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.4060379177903557, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,118] Trial 15 finished with value: 0.12206148974315871 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 20, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,174] Trial 16 finished with value: 0.3105263811279067 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.344271094811757, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,215] Trial 17 finished with value: 0.3562469062424869 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.670604991178476, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,316] Trial 18 finished with value: 0.045959695906983344 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:46,381] Trial 19 finished with value: 0.8583939656024446 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5158832554303112, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,433] Trial 20 finished with value: 0.3062574078515544 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,487] Trial 21 finished with value: -0.11657354998283716 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0009327650919528738, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.062479210472502, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,586] Trial 22 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:46,629] Trial 23 finished with value: 0.8498478905829554 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1366172066709432, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,733] Trial 24 finished with value: -0.1276979508290982 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,786] Trial 25 finished with value: -0.13519830637607919 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 43.92901911959232, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 27.999026012594694, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [0.2935582042429075]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:46,839] Trial 26 finished with value: 0.8198078293055633 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.5888977841391714, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,878] Trial 27 finished with value: 0.8201573964824842 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.19435298754153707, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:46,958] Trial 28 finished with value: 0.045959695906983344 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 13, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,013] Trial 29 finished with value: -0.12553701248394863 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 1.6285506249643193, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.35441495011256785, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,103] Trial 30 finished with value: 0.11934070343348298 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,145] Trial 31 finished with value: 0.4374125584543907 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2457809516380005, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,213] Trial 32 finished with value: 0.3625576518621392 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6459129458824919, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,254] Trial 33 finished with value: 0.36175556871883746 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8179058888285398, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,285] Trial 34 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:47,330] Trial 35 finished with value: 0.8202473217121523 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0920052840435055, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,372] Trial 36 finished with value: 0.3672927879319306 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8677032984759461, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,402] Trial 37 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:47,445] Trial 38 finished with value: 0.40076792599874356 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.2865764368847064, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [0.2935582042429075]\n", + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [0.3062574078515544]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:47,535] Trial 39 finished with value: 0.26560316846701765 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,632] Trial 40 finished with value: 0.41215254857081174 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,671] Trial 41 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:17:47,763] Trial 42 finished with value: -0.00461414372160085 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 25, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,808] Trial 43 finished with value: 0.27282533524183633 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [0.3039309544203818]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:47,919] Trial 44 finished with value: -0.10220127407364991 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:47,975] Trial 45 finished with value: 0.30323404130582854 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:48,030] Trial 46 finished with value: 0.3044553805553568 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6437201185807124, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:48,076] Trial 47 finished with value: -0.12553701248394863 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 82.41502276709562, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.10978379088847677, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:48,120] Trial 48 finished with value: 0.36160209098547913 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.022707289534838138, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:48,175] Trial 49 finished with value: 0.2916101445983833 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.936e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.434e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:48,276] Trial 50 finished with value: 0.8609413020928532 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.04987590926279814, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.794e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.830e+02, tolerance: 4.906e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.578e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:48,387] Trial 51 finished with value: 0.8610289662757457 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.019211413400468974, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.754e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.843e+02, tolerance: 4.906e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.507e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:48,493] Trial 52 finished with value: 0.8610070549049179 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.018492644772509947, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.840e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.513e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.924e+02, tolerance: 4.906e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:48,600] Trial 53 finished with value: 0.8569771623635769 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.008783442408928633, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.243e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.014e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:48,700] Trial 54 finished with value: 0.8624781673814641 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.05782221001517797, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.113e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.935e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.122e+02, tolerance: 4.906e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:48,798] Trial 55 finished with value: 0.8618589507037001 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.02487072255316275, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 9 with value: 0.8639946428338224.\n", + "[I 2024-07-02 13:17:48,886] Trial 56 finished with value: 0.864754359721037 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2079910754941946, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:48,946] Trial 57 finished with value: 0.8622236413326235 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.333215560931422, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,009] Trial 58 finished with value: 0.861832165638517 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3628098560209365, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,068] Trial 59 finished with value: 0.8620108533993581 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.34240779695521706, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,142] Trial 60 finished with value: 0.8638540565650902 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.26493714991266293, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,217] Trial 61 finished with value: 0.8629799500771645 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.30596394512914815, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,276] Trial 62 finished with value: 0.8621408609583922 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.33648829357762355, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,351] Trial 63 finished with value: 0.8638132124078156 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2679814646317183, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,424] Trial 64 finished with value: 0.863983758876634 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.24062119162159595, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,500] Trial 65 finished with value: 0.8627356047945115 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3141728910335158, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,583] Trial 66 finished with value: 0.8639203054085788 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.23391390640786494, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,644] Trial 67 finished with value: 0.8570103863991635 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6124885145996103, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: 0.864754359721037.\n", + "[I 2024-07-02 13:17:49,742] Trial 68 finished with value: 0.8647961976727571 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2059976546070975, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 68 with value: 0.8647961976727571.\n", + "[I 2024-07-02 13:17:49,830] Trial 69 finished with value: 0.8648312544921793 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.20266060662750784, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 69 with value: 0.8648312544921793.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:49,926] Trial 70 finished with value: 0.8648431452862716 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.20027647978240445, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 70 with value: 0.8648431452862716.\n", + "[I 2024-07-02 13:17:50,010] Trial 71 finished with value: 0.8648491459660418 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1968919999787333, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: 0.8648491459660418.\n", + "[I 2024-07-02 13:17:50,106] Trial 72 finished with value: 0.8650873115156988 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.174598921162764, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:50,204] Trial 73 finished with value: 0.8650350577921149 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.16468002989641095, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:50,300] Trial 74 finished with value: 0.8649412283687147 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1606717091615047, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.986e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:50,396] Trial 75 finished with value: 0.8649537211609554 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.14694925097689848, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:50,506] Trial 76 finished with value: 0.8649734575435447 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.147612713300643, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.446e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:50,620] Trial 77 finished with value: 0.8648761002838515 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.14440434705706803, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.398e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:50,775] Trial 78 finished with value: 0.8639826593122782 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1265357179513065, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.690e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:50,875] Trial 79 finished with value: 0.864435565531768 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1374245525868926, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:50,938] Trial 80 finished with value: 0.8590221951825531 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.49890830155012533, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:51,042] Trial 81 finished with value: 0.8649098880804443 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1573428812070292, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.405e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:51,142] Trial 82 finished with value: 0.864536410656637 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.13886104722511608, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:51,208] Trial 83 finished with value: 0.8597401050431873 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.47746341180045787, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:51,259] Trial 84 finished with value: 0.8537465461603838 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8599491178327108, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.050e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:51,388] Trial 85 finished with value: 0.8642643827090003 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.13446778921611002, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.175e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:51,524] Trial 86 finished with value: 0.8641621818665252 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1286796719653316, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.446e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:51,625] Trial 87 finished with value: 0.864182755916388 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.13303218726548235, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:51,693] Trial 88 finished with value: -0.1255357440899417 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.021711452917433944, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 5.559714273835951e-05, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:51,758] Trial 89 finished with value: 0.8604596648091501 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.43644874418279245, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.463e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:51,861] Trial 90 finished with value: 0.8635689909135862 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.10940922083495383, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:51,951] Trial 91 finished with value: 0.8648544336551733 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1912756875742137, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:52,042] Trial 92 finished with value: 0.8648496595672595 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.19628449928540487, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:52,096] Trial 93 finished with value: 0.8452625121122099 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.4324661283995224, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:52,149] Trial 94 finished with value: 0.8378670635846416 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.839206620815206, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.002e+01, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.082e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:52,249] Trial 95 finished with value: 0.8649365368153895 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.07270781179126021, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 72 with value: 0.8650873115156988.\n", + "[I 2024-07-02 13:17:52,374] Trial 96 finished with value: 0.8875676754699953 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.0006995169897945908, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: 0.8875676754699953.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.586e+01, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.618e+01, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.234e+01, tolerance: 4.906e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:52,484] Trial 97 finished with value: 0.8730555131061773 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.0018186269840273495, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: 0.8875676754699953.\n", + "[I 2024-07-02 13:17:52,552] Trial 98 finished with value: -0.12553508835019533 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.04867556317570456, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0011658455138452, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: 0.8875676754699953.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.284e+02, tolerance: 4.782e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.016e+02, tolerance: 4.906e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.177e+02, tolerance: 4.977e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 13:17:52,664] Trial 99 finished with value: 0.8586292788613132 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.005078762921098462, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: 0.8875676754699953.\n" + ] + } + ], + "source": [ + "study = optimize(config, study_name=\"my_study_r2\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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a+uQa2uRb+sEK9etWqX41Ok7ZlqYAAAAQoWCCQAAwAQFEwAAgAkKJgAAABMUTAAAACYomAAAAExQMAEAAJigYAIAADBBwQQAAGCCggkAAMAEBRMAAIAJCiYAAAATFEwAAAAmKJgAAABMUDABAACYoGACAAAwQcEEAABggoIJAADABAUTAACACQomAAAAExRMAAAAJiiYAAAATFAwAQAAmKBgAgAAMEHBBAAAYIKCCQAAwAQFEwAAgAkKJgAAABMUTAAAACYomAAAAExQMAEAAJigYAIAADBBwQQAAGCCggkAAMAEBRMAAIAJCiYAAAATFEwAAAAmKJgAAABMUDABAACYoGACAAAwQcEEAABggoIJAADABAUTAACACQomAAAAExRMAAAAJiiYAAAATFAwAQAAmKBgAgAAMEHBBAAAYIKCCQAAwAQFEwAAgAkKJgAAABMUTAAAACYomAAAAEzETMHkcrmUl5enIUOGqFevXpo0aZL27t3b4PJVVVVasGCBe/kJEyZo69atFkYMAACiRcwUTAUFBXrxxRd1//3366WXXpLL5dLEiRNVWVnpdfl77rlHq1at0oMPPqiVK1eqVatWmjRpko4dO2Zx5AAAINLFRMFUWVmppUuXaurUqRo2bJgyMzO1cOFCFRYWau3atfWW37t3r1auXKkHHnhAQ4YMUZcuXTR37lwlJCToH//4Rxj2AAAARLKYKJi2bdumkpISDRw40D0tLS1N3bp10/r16+st//e//10tW7bUeeed57H8+++/77ENAAAASXKEO4BgKCwslCS1b9/eY3rbtm3d82rbvXu3Tj/9dK1du1bPPPOMDhw4oG7duunOO+9Uly5dmhSLwxHcGtRuj/P4H6FDrq1Drq1Drq1Fvq1jda5jomAqKyuTJCUkJHhMb9GihY4ePVpv+ePHj2vPnj0qKCjQHXfcobS0ND311FMaP3681qxZo9atWwcUR1ycTenpKQGtayYtLSkk20V95No65No65Npa5Ns6VuU6JgqmxMRESSf6MtX8LEkVFRVKSqqfSIfDoePHj2vhwoXuFqWFCxdq6NCheu211zRx4sSA4nC5DBUXlwa0bkPs9jilpSWpuLhMTqcrqNuGJ3JtHXJtHXJtLfJtnWDlOi0tyadWqpgomGouxRUVFaljx47u6UVFRcrIyKi3fLt27eRwODwuvyUmJur0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SouPC/5jTQAglHwqmHJyckIdB4AY5f1SGgUTgOjiU8GUn5+vyy67TKeeeqry8/NNl09OTlbHjh01bNgwORyMkQIAAKKbzwXTeeed53PBJJ3oy3TRRRfpkUceaVKAAAAA4eZTwbRt2zavPzeksrJSixcvpu8TAACICQFfLzt27JgMw1BaWlq9eQkJCRo0aJC2b9/epOAAAAAigV8F065du/T73/9ef/nLX3T8+HFJUkpKis4//3xdd911HoNW9unTR3369AlutAAAAGHgc8G0Zs0azZo1S3FxcfrpT3+qjh07yuFwaO/evXr//ff19ttv68EHH1Rubm4o4wUAALCcTwXTrl27NGvWLA0dOlT333+/TjrpJI/5x48f1913363Zs2frnHPOUZcuXUISLAAAQDj49PDd559/XmeddZYWLlxYr1iSpNTUVD366KPKzMzU//3f/wU9SAAAgHDyqWD69NNPNX78eNnt9oY3FBenK664Qp988knQggMAAIgEPhVMRUVF6tSpk+lyp512mg4erP+gTQAAgGjmU8GUlpamoqIi0+WKiorUqlWrJgcVCJfLpby8PA0ZMkS9evXSpEmTtHfv3gaX/9e//qUbbrhB/fv318CBAzV16lR9//33FkYMAACihU8FU+/evfX666+bLrdq1Sr17t27qTEFpKCgQC+++KLuv/9+vfTSS3K5XJo4caIqKyvrLXv48GFde+21SkxM1PLly/X73/9ehw4d0sSJE1VRURGG6EPLsNlUWu3SD8crVVrtkmHjOV4AAPjDp4Lp6quv1t/+9jcVFBQ0uMyCBQv06aef6uqrrw5acL6qrKzU0qVLNXXqVA0bNkyZmZlauHChCgsLtXbt2nrLv/feeyotLdUjjzyirl27qkePHnr00Ue1a9cuffnll5bHH0pOm035Kzdryvy/6o78jzVl/l+Vv2qznBRNAAD4zKdhBfr06aNp06bpscce01tvvaXhw4erQ4cOcjgc+u6777R27Vrt3r1bM2fOVFZWVqhjrmfbtm0qKSnRwIED3dPS0tLUrVs3rV+/vt7YUAMHDlRBQYESExPd0+LiTtSOxcXF1gRtAcNmU8HKzdq4w7Nf2cbtB1WwarOmjM2SzTDCFB0AANHD54Erb7jhBp199tnKz8/Xs88+6zGvV69e+v3vf6/BgwcHPUBfFBYWSpLat2/vMb1t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3323Jk6cqHbt2nnNtSSOcT/V5Ktr164e08866yzt27ePXAfZpk2bVFVV5dEXUpLOPfdc7dmzh3yHkFluQ3nupGCKUJmZmUpNTdW6devc04qLi7Vlyxb169cvjJFFvxdffFH333+/fvWrX+mxxx7zaLrt27evPv/8c4/lP/vsM/Xu3Vtxcbxd/DF//nytWbNGr7/+uvufJE2dOlUPPPCA+vXrpy+++MJjLKDPPvtMZ555plq3bh2mqKNT9+7dlZKSok2bNnlM37Fjhzp27Kh+/fppy5Yt7kt30olcp6SkKDMz0+pwo15NH5rt27d7TN+xY4fOOOMMju0QMsttSM+dTbrHDiH12GOPGTk5OcZ7773nMZZEZWVluEOLWt98843RvXt345ZbbjGKioo8/hUXFxs7duwwunfvbjz66KPGzp07jSVLljAOUxDVHlbghx9+MPr162fMnDnT+Ne//mWsXLnS6Nmzp7Fq1aowRxmdnnzySSM7O9tYvXq1xzhMn332mVFeXm6MHDnSuP76642tW7e6x2FatGhRuMOOSk6n07jyyiuN0aNHG59++qmxe/duY+HChcY555xjfPXVVxzbQTRz5kyPYQV8yW2ozp0UTBGsurraeOSRR4wBAwYYvXr1MiZNmmTs3bs33GFFtaeeesro2rWr138zZ840DMMwPvzwQyM3N9fo0aOHMXr0aOOtt94Kc9Sxo3bBZBiGsWnTJuPyyy83evToYQwfPtxYvnx5GKOLfkuXLjVGjBhhdO/e3RgzZozx7rvvuud9++23xrXXXmv07NnTGDx4sPH4448bTqczjNFGtyNHjhj33HOPMWzYMCM7O9v45S9/aaxbt849n2M7OOoWTIZhnttQnTtthsHgMgAAAI2hUwYAAIAJCiYAAAATFEwAAAAmKJgAAABMUDABAACYoGACAAAwQcEEAABggofvArDMnXfeqddee63RZXJycrR8+XKv86666ipJanC+NyNGjFBOTo7mzZvne6AWy8jI0JQpU3TrrbeGOxQADaBgAmCZyZMn64orrnD/XlBQoC1btig/P989LTU1tcH177777pDGBwANoWACYJmOHTuqY8eO7t9btWqlhIQE9erVy6f1zzrrrBBFBgCNow8TgIizatUqdevWTa+88ooGDRqknJwc7dy5U1dddZX7spwkHTp0SPfee6+GDx+uHj16KCcnR7fccov27dvn82stWrRIP/vZz/TXv/5VF110kXr06KH/+Z//0euvv+4RT0ZGRr3tjhgxQnfeeaf794yMDP3hD3/QnXfeqT59+ignJ0dz585VeXm5Hn74YQ0YMED9+/fXXXfdpYqKCo9tHT9+XNOnT1d2drYGDhyouXPnqqyszGOZ9957T2PHjlXPnj01aNAgzZ07V6WlpfX2JT8/Xzk5ORo8eLCOHj3qcy4ANIwWJgARyel0aunSpXrggQd0+PBhdenSxWO+YRi68cYbdfToUU2fPl2nnHKKtm/frscff1x33323lixZ4vNrHTx4UPfdd59uvvlmdejQQUuWLNHMmTPVs2fPeq9r5tFHH1Vubq7y8/P1wQcf6P/+7//08ccfKzMzU/Pnz9dXX32lRYsW6cwzz9TEiRPd6y1fvlxDhw7V448/rt27d2vhwoXav3+/nnzySUnS6tWrNX36dF100UX6zW9+o++++04LFy7Uzp079dxzz8lms0mSvv/+e3344YdauHChjhw5opNOOsmv+AF4R8EEIGLddNNNGjZsmNd5RUVFSkpK0syZM9W3b19JUv/+/fXvf/9bL7/8sl+vU1ZWpgceeEADBw6UJJ1xxhkaPny4PvzwQ78LprPOOkv33XefpBMd2F955RVVVVVp/vz5cjgcGjx4sN555x19+eWXHut16dJFTz75pOLi4jR06FDZbDY9+OCD2rFjh84++2zNnz9fQ4YM0fz5893rnHHGGbrmmmv04YcfuvNUXV3tkRMAwcElOQAR65xzzmlw3qmnnqply5apT58+2rdvn/7+979r+fLl+vLLL1VZWen3a9XuR9WuXTtJ8rjc5avs7Gz3z3a7Xenp6erevbscjv9+Pz355JN17Ngxj/VGjx6tuLj/fiSPGjVKkrR+/Xp98803Kiws1IgRI1RdXe3+169fP6Wmpurvf/+7x7YayxuAwNDCBCBiJScnNzr/zTff1GOPPab9+/fr5JNP1jnnnKPExMSAXispKcn9c03hYhiG39vxdpef2X5IUps2bTx+b926tSSpuLhYR44ckSTde++9uvfee+utW1RU5PF7SkqKr+EC8BEFE4CotGHDBs2cOVNXXXWVrr/+ep166qmSpEceeURffPFFUF+rpn+Qy+XymF5SUhK016gpimocPHhQ0onCKS0tTZJ0xx13KCcnp9669FMCQo9LcgCi0saNG+VyuXTrrbe6iyWn06lPPvlEUv3ipilqWo0KCwvd03bt2lWvyGmKjz76yOP3t956SzabTTk5OercubNat26tffv2qWfPnu5/p556qhYsWKAtW7YELQ4A3tHCBCAqZWVlSZLuu+8+/eIXv9DRo0f1wgsvaNu2bZJO9D9qbBBMf/Tv31+JiYmaN2+ebrvtNpWUlCgvL08nn3xyULYvSV9//bXuuusu5ebm6uuvv1ZeXp7GjRunM844Q5I0bdo0zZkzR3a7XcOHD1dxcbEKCgp04MABde/ePWhxAPCOgglAVOrfv7/mzJmj5557Tn/+8591yimnqH///srPz9ctt9yiL774QkOHDg3Ka6WlpWnRokVasGCBbrnlFnXo0EFTpkzxGKupqW655Rb94x//0E033aSWLVtq4sSJmjJlinv+ZZddppSUFD377LN6+eWXlZycrN69e2v+/Pk6/fTTgxYHAO9sRiC9GgEAAJoR+jABAACYoGACAAAwQcEEAABggoIJAADABAUTAACACQomAAAAExRMAAAAJiiYAAAATFAwAQAAmKBgAgAAMEHBBAAAYIKCCQAAwMT/A490AK+hxNO5AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax = sns.scatterplot(data=study.trials_dataframe(), x=\"number\", y=\"value\")\n", + "ax.set(xlabel=\"Trial number\", ylabel=\"Ojbective value\\n(r2)\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Advanced functoinaility: algorithms & runs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Various algorithms are available in QSARtuna:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(optunaz.config.optconfig.Lasso,\n", + " optunaz.config.optconfig.PLSRegression,\n", + " optunaz.config.optconfig.RandomForestRegressor,\n", + " optunaz.config.optconfig.Ridge,\n", + " optunaz.config.optconfig.KNeighborsRegressor,\n", + " optunaz.config.optconfig.SVR,\n", + " optunaz.config.optconfig.XGBRegressor,\n", + " optunaz.config.optconfig.PRFClassifier,\n", + " optunaz.config.optconfig.ChemPropRegressor,\n", + " optunaz.config.optconfig.ChemPropRegressorPretrained,\n", + " optunaz.config.optconfig.ChemPropHyperoptRegressor,\n", + " optunaz.config.optconfig.AdaBoostClassifier,\n", + " optunaz.config.optconfig.KNeighborsClassifier,\n", + " optunaz.config.optconfig.LogisticRegression,\n", + " optunaz.config.optconfig.RandomForestClassifier,\n", + " optunaz.config.optconfig.SVC,\n", + " optunaz.config.optconfig.ChemPropClassifier,\n", + " optunaz.config.optconfig.ChemPropHyperoptClassifier,\n", + " optunaz.config.optconfig.CalibratedClassifierCVWithVA,\n", + " optunaz.config.optconfig.Mapie)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from optunaz.config.optconfig import AnyAlgorithm\n", + "AnyAlgorithm.__args__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tutorial will now look at more complex considerations that should be factored for more advanced functionaility such as the PRF and ChemProp algorithms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Probabilistic Random Forest (PRF)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PRF is a modification of the long-established Random Forest (RF) algorithm and takes into account uncertainties in features and/or labels (though only uncertainty in labels are currently implemented in QSARtuna), which was first described in[1]. It can be seen as a probabilistic method to factor experimental uncertainty during training, and is considered a hybrid between regression and classification algorithms.\n", + "\n", + "In more detail; PRF treats labels as probability distribution functions [PDFs] (denoted as `∆y`), rather than deterministic quantities. In comparison, the traditional RF uses discrete variables for activity (binary y-labels, also referred to as `y`) from the discretised bioactivity scale defining active/inactive sets. \n", + "\n", + "PTR integration was added to QSARtuna to afford this probabilistic approach towards modelling, and is particularly useful combined with the PTR (See the preprocessing notebook for details). In this combination, PRF takes as input real-valued probabilities (similar to regression), from a Probabilistic Threshold Representation (PTR). However, similar to classification algorithms, PRF outputs the probability of activity for the active class.\n", + "\n", + "Note that QSARtuna runs the PRFClassifier in a regression setting, since the model only outputs class liklihood membership based on `∆y`\n", + "\n", + "[1] https://iopscience.iop.org/article/10.3847/1538-3881/aaf101/meta\n", + "\n", + "The following code imports the PRFClassifier and sets up a config to use the PRF with PTR:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "from optunaz.config.optconfig import PRFClassifier\n", + "\n", + "# Prepare hyperparameter optimization configuration.\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"Measurement\",\n", + " training_dataset_file=\"../tests/data/pxc50/P24863.csv\",\n", + " probabilistic_threshold_representation=True, # This enables PTR\n", + " probabilistic_threshold_representation_threshold=8, # This defines the activity threshold\n", + " probabilistic_threshold_representation_std=0.6, # This captures the deviation/uncertainty in the dataset\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(),\n", + " ECFP_counts.new(),\n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " PRFClassifier.new(n_estimators={\"low\": 20, \"high\": 20}), #n_estimators set low for the example to run fast\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=15,\n", + " random_seed=42,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that QSARtuna is run in regression mode (`ModelMode.REGRESSION`), as outputs from the algorithm are always continuous values.\n", + "\n", + "Next we can run the PRF/PTR study:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:17:53,733] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:17:53,734] A new study created in memory with name: study_name_0\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:180)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:180)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:180)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:180)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:180)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "[I 2024-07-02 13:18:00,764] Trial 0 finished with value: -0.08099580623289632 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 13, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 5, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.08099580623289632.\n", + "[I 2024-07-02 13:18:05,408] Trial 1 finished with value: -0.07261454017489567 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 6, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 1 with value: -0.07261454017489567.\n", + "[I 2024-07-02 13:18:07,780] Trial 2 finished with value: -0.08791063872794351 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 2, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 5, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 1 with value: -0.07261454017489567.\n", + "[I 2024-07-02 13:18:11,911] Trial 3 finished with value: -0.07114663955819509 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 7, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 2, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 3 with value: -0.07114663955819509.\n", + "[I 2024-07-02 13:18:15,879] Trial 4 finished with value: -0.06537440628140882 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -0.06537440628140882.\n", + "[I 2024-07-02 13:18:28,446] Trial 5 finished with value: -0.05680450487193368 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 26, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:29,968] Trial 6 pruned. Duplicate parameter set\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-0.06537440628140882]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:18:33,543] Trial 7 finished with value: -0.0656836821774901 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 27, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 2, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:37,333] Trial 8 finished with value: -0.07863564862376404 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 5, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 3, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:42,329] Trial 9 finished with value: -0.0648840199215795 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 22, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 2, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:46,014] Trial 10 finished with value: -0.07861037073288182 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 32, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 4, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:50,608] Trial 11 finished with value: -0.06669924317660021 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 30, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:54,997] Trial 12 finished with value: -0.06734611679947522 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 14, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 2, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:18:59,526] Trial 13 finished with value: -0.06810559387741143 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 18, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -0.05680450487193368.\n", + "[I 2024-07-02 13:19:11,856] Trial 14 finished with value: -0.0528189695245453 and parameters: {'algorithm_name': 'PRFClassifier', 'PRFClassifier_algorithm_hash': 'efe0ba9870529a6cde0dd3ad22447cbb', 'max_depth__efe0ba9870529a6cde0dd3ad22447cbb': 25, 'n_estimators__efe0ba9870529a6cde0dd3ad22447cbb': 20, 'max_features__efe0ba9870529a6cde0dd3ad22447cbb': , 'min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb': 1, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.0528189695245453.\n" + ] + } + ], + "source": [ + "# Run the PRF/PTR Optuna Study.\n", + "study = optimize(config, study_name=\"my_study\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now plot obtained performance across the Optuna trials." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmYAAAG1CAYAAABTbjiWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdzklEQVR4nO3deVxWZf7/8dfNDhqIhmiWuZRQJooL6rhv5aSOudTMmNqklvtumemoWKKZ4oKpzdfMTMtsMtOiKMeyzQWMyWlUqNwiBUwFRHbu+/eHP+7xDlBA4L7hvJ+PR4/yLNe5PpdLb8+5znVMFovFgoiIiIjYnZO9OyAiIiIi1yiYiYiIiDgIBTMRERERB6FgJiIiIuIgFMxEREREHISCmYiIiIiDUDATERERcRAKZiIiIiIOQsFMRERExEG42LsDUnoWiwWzufw/2ODkZKqQdqsSo4+B6jd2/aAxMHr9oDGoqPqdnEyYTKabHqdgVgWZzRYuXbparm26uDjh61uDtLQM8vLM5dp2VWH0MVD9xq4fNAZGrx80BhVZf+3aNXB2vnkw06NMEREREQehYCYiIiLiIBTMRERERByEgpmIiIiIg1AwExEREXEQCmYiIiIiDkLBTERERMRBKJiJiIiIOAgFMxEREREHoWAmIiIi4iD0SSYRERExPIvJRFpWPslnLuHp7oKHixMmS+V/M1TBTERERAwt32Ri3XtHiY2/YN0WHODHhMFBOFdyONOjTBERETEsSxGhDCA27gLrdh7FYrr5h8fLk4KZiIiIGFZmbn6hUFYgNu4Cmbn5ldofBTMRERExrIysvFvaX94UzERERMSwvDxuPN3+ZvvLm4KZiIiIGJanqzPBAX5F7gsO8MPT1blS+6NgJiIiIoZlsliYMDioUDgreCuzspfM0HIZIiIiYmjOFguTBgeRmWsmKycPDzcXPF3ts46Z7piJiIiI4ZksFrw9nAm4uzbeHs52CWWgYCYiIiLiMBTMRERERByEgpmIiIiIg1AwExEREXEQCmYiIiIiDkLBTERERMRBKJiJiIiIOAgFMxEREREHoWAmIiIi4iAUzEREREQchGGCWXZ2NqGhoXTs2JHg4GBmzpzJpUuXbnhOQkICY8eOpXXr1nTu3JlVq1aRn59v3Z+fn09QUBABAQE2/0RERFiPWb9+faH9AQEBFVaniIiIVF2G+Yj5woULiYmJISIiAjc3NxYsWMCUKVPYunVrkcfn5uYyevRoGjVqxPbt2zl79ixz587FycmJKVOmAHD69Gmys7P54IMPqFOnjvVcLy8v63/HxcUxcOBAnnnmmYotUERERKo8QwSzpKQkdu3axYYNG2jbti0A4eHh9O3bl9jYWIKDgwudExUVxblz59ixYwc+Pj40a9aMixcvsmzZMsaNG4ebmxtxcXHUrFmTwMDAYq8dHx/PY489hp+fX4XVJyIiItWDIR5lHjlyBIAOHTpYtzVu3Bh/f3+io6OLPCcmJobmzZvj4+Nj3dahQwfS09M5fvw4cO1uWNOmTYu9bk5ODqdPn6ZJkyblUYaIiIhUc4a5Y+br64u7u7vN9rp165KYmFjkOYmJidSrV6/Q8QDnz5+nZcuWxMfHk5eXx+jRozlx4gT+/v488cQTDBw4EICffvqJ/Px8oqKiWLx4MdnZ2bRr145nnnnG2lZZubiUb6Z2dnay+bcRGX0MVL+x6weNgdHrB42BI9RfLYJZQkICvXr1Knb/1KlTcXNzK7Td3d2d7OzsIs/JysrC29u70PGA9Zwff/wRs9nMlClTqFevHvv372fOnDnk5uYydOhQ4uPjAfD09GT16tVcvHiR8PBwRo4cya5du/Dw8ChTvU5OJnx9a5Tp3Jvx9vaskHarEqOPgeo3dv2gMTB6/aAxsGf91SKY+fv7ExkZWez+/fv3k5OTU2h7dnY2np5FD76Hh0ehcwoCWcHk/g8//JD8/Hxq1LgWkgIDAzl37hyvvfYaQ4cO5ZFHHqFr167Url3b2sa9995L165d2bdvHw8//HDpCv3/zGYLaWkZZTq3OM7OTnh7e5KWlkl+vrlc264qjD4Gqt/Y9YPGwOj1g8agIuv39vYs0Z24ahHMXF1dbzjXKy4ujpSUFHJycmzunCUnJ+Pv71/kOfXq1bPe8br+eMB6TlF3vJo1a8bu3butP74+lMG1x6G1atUq9hFqSeXlVcxvmPx8c4W1XVUYfQxUv7HrB42B0esHjYE96zfEQ+Q2bdpgNputLwEAnDp1iqSkJNq1a1fkOe3atePYsWOkp6dbtx08eJAaNWoQGBhIWloaISEh7Ny50+a8//znP9x7770ArFy5koceegiLxWLdn5CQwOXLl7nnnnvKs0QRERGpBgwRzPz9/enXrx/z5s3j0KFDHD16lBkzZhASEkKrVq2Aa29QXrhwwfr4snfv3vj5+TFt2jROnDjB3r17CQ8PZ9SoUbi5ueHt7U2HDh1YuXIl+/fv5/Tp0/zjH/9g9+7dTJ48GYA+ffrw66+/snDhQk6dOkV0dDSTJ0+mdevWdOnSxV7DISIiIg7KZLn+dk41lpGRQVhYGFFRUQB07dqVefPm4evrC8ChQ4cYOXIkW7ZsoX379gCcOXOG0NBQYmJi8PHxYejQoUyePBknp2t5Nj09nYiICKKiorh48SJNmzZl0qRJ9O7d23rdAwcOsHr1auLi4nBzc6NXr17Mnj3bZhmO0srPN3Pp0tUyn18UFxcnfH1rcPnyVcPevjb6GKh+Y9cPGgOj1w8ag4qsv3btGiWaY2aYYFadKJhVDKOPgeo3dv2gMTB6/aAxcIRgZohHmSIiIiJVgYKZiIiIiINQMBMRERFxEApmIiIiIg5CwUxERETEQSiYiYiIiDgIBTMRERERB6FgJiJ2ZzGZyMgz81t6Dhl5Ziwmk727JCJiF9XiI+YiUnXlm0yse+8osfEXrNuCA/yYMDgIZ61/LSIGoztmImI3liJCGUBs3AXW7TyqO2ciYjgKZiJiN5m5+YVCWYHYuAtk5uZXco9EROxLwUxE7CYjK++W9ouIVDcKZiJiN14eN57merP9IiLVjYKZiNiNp6szwQF+Re4LDvDD09W5knskImJfCmYiYjcmi4UJg4MKhbOCtzJNeitTRAxGzwlExK6cLRYmDQ4iMzefjKw8vDxc8HR1VigTEUNSMBMRuzNZLHi5OOFV0+3aBoUyETEoPcoUERERcRAKZiIiIiIOQsFMRERExEEomImIiIg4CAUzEREREQehYCYiIiLiIBTMRERERByEgpmIiIiIg1AwExEREXEQCmYiIiIiDkLBTERERMRBKJiJiIiIOAgFMxEREREHoWAmIiIi4iAUzEREREQchIKZiIiIiINQMBMRERFxEApmIiIiIg5CwUxERETEQRgmmGVnZxMaGkrHjh0JDg5m5syZXLp06YbnJCQkMHbsWFq3bk3nzp1ZtWoV+fn5Nsfs37+fwYMH06JFC3r37s22bdts9l++fJmZM2fSrl07QkJCCA0NJTMzs9zrExERkarPMMFs4cKFfP3110RERPDGG29w8uRJpkyZUuzxubm5jB49GoDt27ezcOFC3n77bV555RXrMYcPH2b8+PF0796djz76iLFjx7J48WIiIyOtx0yZMoUzZ86wefNmVq9ezf79+1m4cGGF1SkiIiJVl4u9O1AZkpKS2LVrFxs2bKBt27YAhIeH07dvX2JjYwkODi50TlRUFOfOnWPHjh34+PjQrFkzLl68yLJlyxg3bhxubm5ERETQu3dva8Br2LAhsbGxxMTE8PDDDxMbG8vhw4eJjIykadOmACxatIgxY8YwY8YM/P39K28QRERExOEZ4o7ZkSNHAOjQoYN1W+PGjfH39yc6OrrIc2JiYmjevDk+Pj7WbR06dCA9PZ3jx4+TmZlJTEwMAwYMsDkvLCyM+fPnW9vw8/OzhjKAkJAQTCaTtU8iIiIiBQxzx8zX1xd3d3eb7XXr1iUxMbHIcxITE6lXr16h4wHOnz+Pu7s7ZrMZZ2dnpkyZQnR0NHXr1mX48OE8+uij1uvWr1/fpg03Nzdq1arF+fPnb6kmF5fyzdTOzk42/zYio4+B6jd2/aAxMHr9oDFwhPodIpidPHmShIQE0tPT8fX15Y477uDuu+8u8fkJCQn06tWr2P1Tp07Fzc2t0HZ3d3eys7OLPCcrKwtvb+9Cx8O1FwnS09MBmD9/Pk8//TTjx4/n0KFDhIaGAvDoo4+SmZlZ6uuWhJOTCV/fGmU+/0a8vT0rpN2qxOhjoPqNXT9oDIxeP2gM7Fm/3YLZb7/9xuuvv86HH35IcnIyFovFus9kMnHnnXfyxz/+kZEjR3L77bffsC1/f3+bCfe/t3//fnJycgptz87OxtOz6MH38PAodE5BmPLy8sLV1RWAgQMHMnLkSADuu+8+60T/Rx99tMg2Ctrx8vK6YU03YjZbSEvLKPP5RXF2dsLb25O0tEzy883l2nZVYfQxUP3Grh80BkavHzQGFVm/t7dnie7EVXowy8/P55VXXmHjxo3ccccdDBo0iBYtWtCgQQO8vLxITU0lKSmJI0eOsG/fPrZs2cITTzzBpEmTrGHo91xdXW3mcf1eXFwcKSkp5OTk2NzBSk5OLnYCfr169YiPj7fZlpycDFwLggXnNWvWzOaYe+65h507d1rb2Lt3r83+nJwcUlJSrI9Fyyovr2J+w+Tnmyus7arC6GOg+o1dP2gMjF4/aAzsWX+lP0QdMmQI8fHxvPXWW3zyySdMmzaNXr16ERgYSMOGDa3rgc2ePZsPP/yQjRs3EhcXZ523VRZt2rTBbDbbTLg/deoUSUlJtGvXrshz2rVrx7Fjx6yPLAEOHjxIjRo1CAwMxN/fn4YNG/L999/bnBcfH0/Dhg2tbSQmJnLmzBnr/sOHD1v7JCIiInK9Sg9mzz33HGvXruWBBx4o0fFt27Zlw4YNzJ49u8zX9Pf3p1+/fsybN49Dhw5x9OhRZsyYQUhICK1atQKu3cm6cOGC9dFj79698fPzY9q0aZw4cYK9e/cSHh7OqFGjrHfdJk2axDvvvMO2bdv45Zdf2L59O++99551/bOWLVvSunVrpk+fztGjRzl48CDz58/nkUce0VIZIiIiUojJcv3krkq2bt06HnrooRs+hiwvGRkZhIWFERUVBUDXrl2ZN28evr6+ABw6dIiRI0eyZcsW2rdvD8CZM2cIDQ0lJiYGHx8fhg4dyuTJk3Fy+l+e/eCDD3j11Vc5e/YsDRo0YMyYMTZ39y5evEhoaChfffUV7u7u9O3blzlz5hR6Q7Q08vPNXLp0tcznF8XFxQlf3xpcvnzVsLevjT4Gqt/Y9YPGwOj1g8agIuuvXbtGieaY2TWYtWzZkjVr1tCtWzd7daFKUjCrGEYfA9Vv7PpBY2D0+kFj4AjBzK4Lldxzzz2cOnXKnl0QERERcRh2XcesR48ehIeH89VXXxEQEFBoCQmTycTEiRPt1DsRERGRymXXYLZ27VoAvvnmG7755ptC+xXMRERExEjsGsxOnDhhz8uLiIiIOBSH+CQTwM8//8yVK1eoXbu2dR0wERERESOxezD78MMPeemll/jtt9+s226//XZmzpzJI488Yr+OiYiIiFQyuwazffv28cwzz9ChQwdmzJjB7bffTnJyMrt372bOnDnUqlWL7t2727OLIiIiIpXGrsFs/fr19O3bl5UrV9psHzJkCNOnT+fVV19VMBMRERHDsOs6ZvHx8QwaNKjIfYMGDdLLASIiImIodg1mvr6+pKamFrkvJSXF+k1KERERESOwazDr2LEja9euJTEx0Wb7+fPneeWVV+jUqZOdeiYiIiJS+ew6x2zGjBkMGTKEBx98kODgYG6//XZ+++03YmNj8fHxYebMmfbsnoiIiEilsusdMz8/P95//31GjBhBZmYmP/zwA5mZmYwYMYL333+fBg0a2LN7IiIiIpXKrnfM/v73vzN06FCeeeYZe3ZDRERExCHY9Y7Z7t27uXr1qj27ICIiIuIw7BrMgoODOXTokD27ICIiIuIw7PooMyAggNdee41PPvmEwMBAvLy8bPabTCbCwsLs1DsRERGRymXXYPbZZ59Rt25dcnNz+c9//lNov8lkskOvREREROzDrsFs165deHt727MLIiIiIg7DrnPM+vXrR2RkpD27ICIiIuIw7BrMcnJy8PX1tWcXRERERByGXR9ljhw5klWrVuHh4UFgYCCenp727I6IiIiIXdk1mH3wwQecO3eOYcOGFbnfZDJx7NixSu6ViIiIiH3YNZj96U9/suflRURERByKXYPZpEmT7Hl5EREREYdi12BWYP/+/Xz77bdcuHCB6dOnc/z4cZo3b66PmIuIiIih2DWYZWZmMnHiRL799ltq1qzJ1atXGT16NG+//TbHjh1j69at3HvvvfbsooiIiEilsetyGeHh4fz3v/9l8+bNHDx4EIvFAsBLL72Ev78/q1evtmf3RERERCqVXYPZxx9/zIwZM+jQoYPN55fq1q3L+PHjOXLkiB17JyIiIlK57BrM0tLSip1H5uPjQ0ZGRiX3SERERMR+7BrM7r33Xvbs2VPkvn379ml+mYiIiBiKXSf/jx8/nkmTJpGSkkKPHj0wmUxER0ezc+dOtm/fzooVK+zZPREREZFKZddg1rt3b15++WVWrFjB/v37AVi6dCl16tRh4cKF9O3b157dExEREalUdl/HbMCAAQwYMICTJ0+SkpKCt7c3TZo0wcnJ9ilrdHQ0zZs3x8vLy049FREREalYdp1jdr0mTZrQunVr7rnnnkKhLD8/n5EjR3Lq1Ck79U5ERESk4jlMMLuZgjXORERERKqrKhPMblV2djahoaF07NiR4OBgZs6cyaVLl254TkJCAmPHjqV169Z07tyZVatWkZ+fb3PM/v37GTx4MC1atKB3795s27bNZv/u3bsJCAgo9E9CQkK51ygiUlVZTCYy8sz8lp5DRp4Zy3VrW4oYyS3PMcvOzsbNzc1mgVhHtHDhQmJiYoiIiMDNzY0FCxYwZcoUtm7dWuTxubm5jB49mkaNGrF9+3bOnj3L3LlzcXJyYsqUKQAcPnyY8ePHM27cOFatWsWhQ4dYsGABvr6+PPzwwwDExcUREhJCeHi4Tfu1a9eu2IJFRKqIfJOJde8dJTb+gnVbcIAfEwYH4aynJWIwZQpmJ0+eZM2aNXz77bekp6fz7rvv8s9//pMmTZowYsSI8u7jLUtKSmLXrl1s2LCBtm3bAtc+B9W3b19iY2MJDg4udE5UVBTnzp1jx44d+Pj40KxZMy5evMiyZcsYN24cbm5uRERE0Lt3b2tQa9iwIbGxscTExFiDWXx8PAEBAfj5+VVewSIiVYSliFAGEBt3gXU7jzJpcBAmhTMxkFI/yjx+/DhDhw7lv//9LwMGDLDO/XJ2diYsLIz333+/3Dt5qwo+7dShQwfrtsaNG+Pv7090dHSR58TExNC8eXN8fHys2zp06EB6ejrHjx8nMzOTmJgYBgwYYHNeWFgY8+fPt/44Li6Opk2blmc5IiLVRmZufqFQViA27gKZuflF7hOprkp9x+yll17igQceYNOmTQDWOVXz5s0jOzubLVu2MGjQoPLt5S1KSkrC19cXd3d3m+1169YlMTGxyHMSExOpV69eoeMBzp8/j7u7O2azGWdnZ6ZMmUJ0dDR169Zl+PDhPProowCkpqaSlJRETEwMb731FpcvXyYoKIhnnnmGxo0b31JNLi7lOz3Q2dnJ5t9GZPQxUP3Grh/sMwYZ6Tk33p+Vh3ctj0rpi34NaAwcof5SB7N///vfhIeH4+LiUmgi/MMPP8yHH35Ybp0rqYSEBHr16lXs/qlTp+Lm5lZou7u7O9nZ2UWek5WVhbe3d6Hj4dq8uvT0dADmz5/P008/zfjx4zl06BChoaEAPProo/z444/AtTdKlyxZQlZWFuvXr2fYsGHs2bOH22+/vfTFAk5OJnx9a5Tp3Jvx9vaskHarEiOOwZWMHFLTszl/+RI1PF3xqenObV6Ff88YgRF//n+vMsfgaq75hvtvq+FWYX/eFUe/BjQG9qy/1MHM3d2drKysIvelpKQUGYAqmr+/P5GRkcXu379/Pzk5hf9Wlp2djadn0YPv4eFR6JyCEOfl5YWrqysAAwcOZOTIkQDcd999nDlzhs2bN/Poo4/Stm1bDhw4gK+vr/XliLVr19K9e3d27tzJ008/XfpiAbPZQlpa+X7g3dnZCW9vT9LSMsnPv/EflNWVUccgO99S7MRrd2fHfqmnPBn15/969hgDDxcnggP8iI0r/DgzOMAPDxcnLl++Wil90a8BjUFF1u/t7VmiO3GlDmadOnVizZo1tG7d2jqh3WQycfXqVTZt2sQf/vCH0vf2JpydnVmyZAl33nlnkftdXV1vOI8rLi6OlJQUcnJybIJjcnIy/v7+RZ5Tr1494uPjbbYlJycD14JgwXnNmjWzOeaee+5h586d1h///u1LT09P7rzzTpKSkortb0nk5VXMb5j8fHOFtV1VGGkMNPG6MCP9/BenssdgwuAg1u08ahPOCv5yYMk3k1dpPblGvwY0Bvasv9TB7JlnnuHPf/4zffv2JTAwEJPJxNKlSzl16hQWi6XQshC/N2fOnFJdb8mSJQC3NG+tTZs2mM1mjhw5QseOHQE4deoUSUlJtGvXrshz2rVrx65du0hPT6dmzZoAHDx4kBo1ahAYGIibmxsNGzbk+++/Z+DAgdbz4uPjadiwIQDvvPMO4eHhfP7559ZPSaWnp3P69GmGDh1a5npEyktJJl57lfN8RimaxWQiMzefjKw8vDxc8HR1NkwodrZYmDQ4yLD1i1yv1MGsfv36fPDBB2zevJmDBw/SsGFDMjIy6N+/P08++aR1gnxxDh06ZPPj5ORk8vLyuOOOO/Dz8yMlJYVffvkFNzc3AgMDS9u9Ivn7+9OvXz/mzZtHWFgYnp6eLFiwgJCQEFq1agVATk4Oqamp+Pj44ObmRu/evVm1ahXTpk1j1qxZJCQkEB4ezqhRo6x33SZNmsTzzz9P06ZN6dq1K9988w3vvfceL774IgBdu3Zl+fLlPPvss0ydOpWsrCzCw8OpXbs2gwcPLpfaRG5FRtaN70VkZOXhVdOYc80qk9bxApPFgpeL0/9+vRmkbpHfM1ns+K2jPXv2sHz5ciIiIggKCrJu/+mnn5gwYQKPP/44TzzxRLlcKyMjg7CwMKKiooBroWnevHn4+voC1wLjyJEj2bJlC+3btwfgzJkzhIaGEhMTg4+PD0OHDmXy5Mk23/L84IMPePXVVzl79iwNGjRgzJgx1rcyAf773/+yYsUKjh49isVioVOnTsyZM4f69euXuZb8fDOXLpXvnAsXFyd8fWtw+fJVw96+NuIYZOSZmbT8i2L3r53V3TB3zOz1828xmVhbxONkuBbOKvNxshF/D1zP6PWDxqAi669du0aJ5piVOpgVt+7X9Yp7PPh7PXv2ZOrUqTaPAgtERkayZMkSvvrqq9J0zxAUzCqGEcfAYjKx9ndzewpUdiiwN3v9/DtSODbi74HrGb1+0Bg4QjAr9aPMESNGYDKZbD4q/vvPMR0/frxEbV2+fLnQkhTWjrm4kJFRvm8eiogtk8Vyw4nXRgll9qTHySJyvVIHsy1bthTalpGRQUxMDB988AERERElbqtVq1asX7+e1q1b26ywn5ycTEREhPWRoohUnP9NvDaTlZOHh5sLnq5OCmWVxMvjxn8M32y/iFQvpf4dHxISUuT27t274+Xlxfr163n11VdL1Nbs2bMZMWIEPXr0IDg4mFq1anHx4kViY2Px8fFh/fr1pe2eiJSByWLB28OZu+t7G/YRhr14ujrfcB0vT1dnTYQXMZBynbjQtm1bDh8+XOLjAwMD+fDDD/nzn/9Meno6P/zwA1lZWYwaNYrdu3cXu26ZiEh1UfA4OTjAz2a7HieLGFO53iPft28fNWqU7tMZ/v7+zJ49uzy7ISJSpWgdLxEpUOpgVvD5oeuZzWYSExP59ddfeeqpp0rVXk5ODv/85z/59ttvuXDhAmFhYRw+fJjmzZvbLKEhIlKdaR0vMfIiw/I/pQ5mRa2u4eTkRLNmzRg7dixDhgwpcVuXLl3iiSee4OTJkzRp0oSffvqJrKwsvvjiC5YuXcrmzZsJDg4ubRdFRESqFC0yLAVKHczefPPNcrv4smXLuHr1KpGRkTRo0IAHHngAgDVr1jB69GjWrFnD66+/Xm7XExERcTT6Zq1cr0TB7Ny5c6Vq9I477ijRcZ9//jnPP/88d999N/n5+dbt7u7ujBo1iueee65U1xUREalq9M1auV6JglnPnj0LLSJ7IyVdYDY7O5tatWoVuc/Z2Znc3NwSX1NERKQq0iLDcr0SBbOwsLBSBbOSatGiBW+99RbdunUrtG/Pnj3WR5siIiLVlRYZluuV6Gd78ODBFXLxqVOn8re//Y2BAwfSrVs3TCYTH374IREREXz99dds3LixQq4rIiLiKLTIsFyv1B8xBzh69CiHDh0iJyfH+pamxWIhIyODI0eOsGPHjhK3FR0dzYoVKzh69ChmsxmTycT999/PjBkz6NSpU2m7Zgj6iHnFMPoYqH5j1w8aA3vWn28yFfvN2sp6K/Pach3XPs3m6e6Ch4vxPs1WJT9ivm3bNl588cVil83o3Llzids6cOAAwcHBbN++naysLFJTU6lZs2apF6kVERGpyuy9yLCW63AcpX7NY+vWrXTt2pVDhw4xatQoHnvsMf7973+zevVq3N3d+dOf/lTitiZPnsynn34KgIeHB/7+/gplIiJiSAWLDN9e0w2vSrxbdbPlOiwVMMdcilfqYJaQkMCwYcPw8fHhgQce4MiRI3h4ePDQQw/x9NNPs2XLlhK35e3tjYeHR2m7ICIiIuWkJMt1SOUp9aNMV1dXa5i6++67OXPmDLm5ubi6utKmTZtSLQg7duxYXnzxRU6dOkVgYCBeXl6FjmnXrl1puygiIiIlpOU6HEupg9l9993H559/Tvv27WncuDFms5nvv/+etm3bkpiYWKq2FixYAMDKlSsBbJbksFgsmEymEq+JJiIiIqWn5TocS6lH+8knn2TSpEmkpaURFhZGr169ePbZZ3nwwQfZs2cPbdq0KXFbpXnsKSIiIuVPy3U4llIHs969e7NhwwZ+/vlnABYtWsTMmTPZvn07LVq0YP78+SVuKyQkpLSXFxERkXJksliYMDio2OU6KvMlBHu9lepISr2OWX5+Ps7OzuXWgfJcE80otI5ZxTD6GKh+Y9cPGgOj13/9OmYebi54ulbem6GOslxHlVzHrHPnzvTr14+BAwfSokWLMnWuQHmuiSYiIiJlZ7JY8PZw5u763pUaTm+2XMekSrxr5whKvVxG//79iYqK4rHHHqNv375s2LCBX3/9tUwXL8810URERKTq0XIdtkodzObOncuXX37Jpk2baNu2La+//jp9+vRh+PDhvPvuu1y5cqXEbZXnmmgiIiJS9ZRkuQ4jKXUwg2vLWnTs2JEXX3yRr7/+mnXr1lG/fn1CQ0Pp0qVLidspbk00gDZt2nD69OmydE9ERESqCC3XYatMwaxAXl4eX3/9NZGRkXz55ZcAdOzYscTnF6yJBtisiQaUek00ERERqXoKlusoinW5DgMpdQy1WCwcPHiQjz76iM8++4zU1FSCgoKYMmUKDz/8ML6+viVuqzzXRBMREZGqx1GW63AUpQ5mXbp04eLFi9xxxx0MGzaMgQMH0qhRozJdvDzXRBMREZGqydliYdLgIK1jRhmCWc+ePfnTn/5E27Zty6UD3bt3p3v37gD4+vqyadOmcmlXREREqg6TxYKXi9P/vstpwFAGZQhmixYtKreLnzt37qbH3HHHHeV2PRERERFHZtdXHXr27Gnz4fKi6CPmIiIiYhR2DWZhYWGFgllGRgYxMTEcOnSIsLAwO/VMREREpPLZNZgNHjy4yO2PP/44S5YsYc+ePdb5ZyIiIiLV3S2tY1aRevbsyRdffGHvboiIiIhUmjLfMdu/fz/ffvstycnJzJgxg+PHj9O8eXMaNGhQLh37/vvvcXEx1mq/IiIiYmylTj6ZmZlMnDiRb7/9lpo1a3L16lXGjBnD22+/zbFjx9i6dSv33ntvidqaM2dOoW1ms5nExESio6MZOnRoabsnIiIiUmWVOpiFh4fz3//+l82bN9O2bVseeOABAF566SXGjBnD6tWrWbt2bYnaOnToUKFtJpOJmjVr8tRTTzFu3LjSdq9Y2dnZLF26lE8++YSsrCx69uzJ3LlzqV27drHnJCQk8MILLxAdHY2XlxdDhw5l8uTJODs7k5CQQK9evYo8z2QyceLECQAuX77Miy++yJdffonJZKJfv348++yzeHp6llttIiIiUj2UOph9/PHHzJgxgw4dOpCfn2/dXrduXcaPH1+qdc727dtX2suX2cKFC4mJiSEiIgI3NzcWLFjAlClT2Lp1a5HH5+bmMnr0aBo1asT27ds5e/Ysc+fOxcnJiSlTplC/fn2+/vprm3POnj3Lk08+yZgxY6zbpkyZQmZmJps3byYtLY25c+eSkZHBSy+9VKH1ioiISNVT6mCWlpZW7DwyHx8fMjIybrlT5S0pKYldu3axYcMG6xcLwsPD6du3L7GxsQQHBxc6JyoqinPnzrFjxw58fHxo1qwZFy9eZNmyZYwbNw43Nzf8/P730VWz2cz48eMJDg5m8uTJAMTGxnL48GEiIyNp2rQpcG2B3jFjxjBjxgz8/f0roXoRERGpKkodzO6991727NlD586dC+3bt29fieeXQckWmC1gMpnYu3dvidu+3pEjRwDo0KGDdVvjxo3x9/cnOjq6yGAWExND8+bN8fHxsW7r0KED6enpHD9+nJYtW9oc/+677xIfH8/u3butNcXExODn52cNZQAhISGYTCaOHDnCww8/XKZ6REREpHoqdTAbP348kyZNIiUlhR49emAymYiOjmbnzp1s376dFStWlLitQYMGWR8l9uzZE39/f1JSUvjqq684d+4cffv2xcPDo7RdLCQpKQlfX1/c3d1tttetW5fExMQiz0lMTKRevXqFjgc4f/68TTDLyckhIiKCv/zlLzYfdE9KSqJ+/fo2bbi5uVGrVi3Onz9/KyXh4lK+K504OzvZ/NuIjD4Gqt/Y9YPGwOj1g8bAEeovdTDr3bs3L7/8MitWrGD//v0ALF26lDp16rBw4UL69u1b4rbS09Np3Lgxr732GjVq1LBuz8vLY8KECdx2220lmrN2o4n4AFOnTsXNza3Qdnd3d7Kzs4s8JysrC29v70LHA4XOiYyMJDU11WZuGVx7g7W01y0JJycTvr41bn5gGXh766UEo4+B6jd2/aAxMHr9oDGwZ/1lWihswIABDBgwgJMnT5KSkoK3tzdNmjTByal0CXPXrl0sWbLEJpQBuLi4MHz4cKZPn16iYObv709kZGSx+/fv309OTk6h7dnZ2cW+Henh4VHonIIw5eXlZbP9/fffp1evXtY7ajdqo6Cd37dRGmazhbS08p3L5+zshLe3J2lpmeTnm8u17arC6GOg+o1dP2gMjF4/aAwqsn5vb88S3YkrdTCbOHEijzzyCN27d6dJkyZl6tz1UlJSityekJBQ6NFjcVxdXW3mcf1eXFwcKSkp5OTk2NzBSk5OLnYCfr169YiPj7fZlpycDGBzTkpKCtHR0URERBTZxu/nxeXk5JCSklIoxJVWXl7F/IbJzzdXWNtVhdHHQPUbu37QGBi9ftAY2LP+Uj9ETUhIYPLkyXTu3JkFCxbw3Xfflfni3bt3Z8WKFXz55ZfWbRaLhc8++4zVq1czYMCAMrd9vTZt2mA2m60vAQCcOnWKpKQk2rVrV+Q57dq149ixY6Snp1u3HTx4kBo1ahAYGGjdFhsbi8VisXmx4Po2EhMTOXPmjHXb4cOHrX0SERERuV6pg9kHH3zARx99xLBhwzh48CDDhg2jd+/erFmzxiaAlMTzzz9P/fr1efrpp2nRogVdunShRYsWTJkyhVatWjFz5szSdq9I/v7+9OvXj3nz5nHo0CGOHj3KjBkzCAkJoVWrVsC1O1kXLlywPnrs3bs3fn5+TJs2jRMnTrB3717Cw8MZNWqUzV23Y8eOcddddxV6HAvQsmVLWrduzfTp0zl69CgHDx5k/vz5PPLII1oqQ0RERAoxWSwWy6008J///IfIyEiioqI4f/48QUFBvPPOOyU+32Kx8MUXX3DkyBFSU1Px9fWlY8eOdOzY8Va6VUhGRgZhYWFERUUB0LVrV+bNm4evry9w7SsEI0eOZMuWLbRv3x6AM2fOEBoaSkxMDD4+PtaV/6+fS7dw4UKOHTvGjh07irzuxYsXCQ0N5auvvsLd3Z2+ffsyZ86cEj+mLUp+vplLl66W+fyiuLg44etbg8uXrxr29rXRx0D1G7t+0BgYvX7QGFRk/bVr1yjRHLNbDmapqal89tln/Otf/+LLL7/E29ubAwcOlLm9vLw80tPTqVWr1q10q1pTMKsYRh8D1W/s+kFjYPT6QWPgCMGsTAt1ZGRksHv3bsaNG0fnzp154YUXcHV1Zc2aNXz11VclbicvL4+1a9eyZ88e4Npdq06dOtGxY0eeeOIJUlNTy9I9kSrHYjKRkWfmt/QcMvLMWEq48LKIiFQvpX4rc+rUqXz55ZdkZWXRunVr/v73v/PHP/6R2267rdQXX7NmDa+99hrPP/88AC+++CK1atVi4sSJvP7666xYsaJU394UqYryTSbWvXeU2PgL1m3BAX5MGByE863d0BYRkSqm1HfM4uLieOqpp/jss8/Ytm0bjz32WJlCGcBHH33EjBkzePzxx/n555/58ccfGT9+PCNHjmT69OmV+pFzEXuwFBHKAGLjLrBu51HdORMRMZhS3zH75JNPyu3iycnJ1k8bffHFFzg5OdG1a1fg2hpgV65cKbdriTiizNz8QqGsQGzcBTJz8/Eq589viYiI4ypRMJszZw4TJkzgrrvuYs6cOTc81mQyERYWVqKL161bl4SEBNq2bcu+ffu47777qF27NnBtfbDff6tSpLrJyMq76X6vmoU/6yUiItVTiYLZoUOHeOKJJ6z/XV769+/PkiVL2LNnD0eOHGH+/PkALF68mLfffptx48aV27VEHJGXx41/C95sv4iIVC8l+lP/+rle5Tnva9q0aXh5eREdHc3MmTMZNmwYcG1ttFGjRjFhwoRyu5aII/J0dSY4wI/YuMKPM4MD/PB0dQa9ACAiYhilnrwyZ84cfvnllyL3nTx5slR3uUwmE2PHjmXjxo089dRT1u3bt29nxowZ1oVcLRYLc+bM4dy5c6XtrohDM1ksTBgcRHCAn832grcyTQplIiKGUqI7ZtcHovfff5/evXvj7Oxc6Lgvv/ySb7/9tvx69/+ZzWZ27drF8OHDueOOO8q9fRF7crZYmDQ4iMzc/Gtzyjxc8HR1VigTETGgEgWz0NBQ64fGTSYTkyZNKvI4i8VCp06dyq93v2tbpLoyWSx4uTj9b6K/fr2LiBhSiYLZokWL+Pbbb7FYLDz//POMHz+ehg0b2hzj5OSEt7e39TuTIiIiIlI6JQpm/v7+DBo0CLh2x6x79+54e3tbH2dmZWWRm5tb5oVmRURERKQMk//79+/PqlWreOyxx6zbvvvuOzp27MhLL72E2Wy8j56KiIiIlIdSB7OIiAh2795N//79rdvuv/9+Zs2axY4dO9i4cWO5dlBERETEKEq9euWePXuYPXs2f/nLX6zbatWqxd/+9jdcXFzYsmULTz/9dLl2Uqo3i8mkNxJFREQoQzC7fPkyd911V5H7mjRpQmJi4i13qigmfcy5Wsov4iPeBWt4OSuciYiIwZT6UWaTJk2Iiooqct++ffu4++67b7lTRdFyGdWPpYhQBtc+3r1u51EsCuMiImIwpb5jNnLkSJ577jlSUlLo3bs3derU4dKlS3z++ed8/PHHLFmypNSdSE1NJTMzs8gXB+644w6cnZ05ceJEqdsVx5aZm18olBWIjbtAZm4+Xi6l/ruDiIhIlVXqYPbII49w9epV1q1bx6effmrd7uvry9///nceeeSRErd15swZZs+ezffff1/sMcePHy9tF6WKyMjKu+l+64KrIiIiBlDqYAbw+OOPM2zYME6dOkVKSgre3t40adLE+m3LknrhhRc4ffo0kyZNol69eqU+X6o2L48b//K72X4REZHqpsz/50tLS+PUqVMkJyfz0EMPcfr0aRo3blyqSfrR0dEsXrzYZukNMQ5PV2eCA/yIjSv8ODM4wA9PV2d9mkhERAylTMFs/fr1vPrqq2RlZWEymQgKCmLVqlVcvnyZTZs24e3tXaJ2atasiY+PT1m6INWAyWJhwuAg1u08ahPOCt7K1JIZIiJiNKV+drh161YiIiJ48skn2bFjh/VtyeHDh/PLL7+wevXqErc1cOBAtm3bpjcuDczZYmHS4CDWzurOskmdWTurO5O0VIaIiBhUqe+Yvfnmmzz99NNMnTqV/Px86/Zu3boxbdo0/vGPf/D3v/+9RG15enpy5MgR+vTpQ4sWLfDw8LDZbzKZCAsLK20XpYoxWSx4uTj9b6K/QpmIiBhUqYPZuXPnCAkJKXJfkyZN+O2330rc1vvvv89tt92G2Wwu8s1MLSorIiIiRlLqYFa/fn1iY2P5wx/+UGjfDz/8QP369Uvc1r59+0p7eREREZFqq9TBbOjQoURERODh4UH37t0ByMjIICoqildffZUnn3yy3Dp38uRJmjRpUm7tiYiIiDiyUgezp556ioSEBJYvX87y5cuBa18DABgwYABjx44tcVspKSmsWrWKw4cPk5OTY30JwGKxkJGRQWpqqhaYFREREcModTAzmUwsWrSIJ598kkOHDpGSksJtt91Gu3btaNasWanaWrJkCR999BFdunTh5MmTeHp60qhRI44cOUJaWhqLFi0qbfdEREREqqwyLzDbuHFjzGYzaWlp1KlTh4YNG5a6ja+++orJkyczduxYNm3axOHDh1m1ahVXr15l+PDh/PTTT2XtnoiIiEiVU6ZvIL355pt07tyZ/v37M2zYMB566CF69uzJhx9+WKp20tLSCA4OBqBp06b88MMPANSoUYNRo0bxxRdflKV7IiIiIlVSqe+Ybd26lcWLF9O7d2/69OlDnTp1uHDhAh999BHPPPMMzs7O/PGPfyxRW76+vly5cgWARo0acfHiRVJSUqhVqxb+/v4kJSWVtnsiIiIiVVap75ht2bKF4cOHs3btWgYOHEjnzp0ZNGgQGzduZPDgwaxdu7bEbXXs2JENGzbw66+/0rBhQ3x8fHj//fcB+Pzzz/H19S1t90RERESqrFIHs8TERHr27Fnkvv79+/PLL7+UuK2pU6dy8eJFZs+ejclkYuzYsbz00ku0b9+ezZs3M2TIkNJ2T0RERKTKKvWjzBYtWnDgwIEiF5g9duwYAQEBJW6rQYMGREZGcvr0aQCefPJJbr/9dr777juCgoIYNGhQabsnIiIiUmWVKJhFR0db/7tfv34sWbKEzMxM/vjHP+Ln50dKSgr79+/nzTff5MUXXyxVBzw8PAgMDAQgOzub/v37M2DAgFK1ISIiIlIdmCyWm38xOjAw0Oa7lQWnFLetNIvCnjx5kjVr1vDtt9+Snp7Ou+++yz//+U+aNGnCiBEjStzOzWRnZ7N06VI++eQTsrKy6NmzJ3PnzqV27drFnpOQkMALL7xAdHQ0Xl5eDB06lMmTJ+Ps7ExCQgK9evUq8jyTycSJEycA2L17N88880yhY/71r39x5513lqmW/Hwzly5dLdO5xXFxccLXtwaXL18lL89crm1XFUYfA9Vv7PpBY2D0+kFjUJH1165dA2fnm88gK9Edsy1bttxyh4py/PhxHn/8cerUqcOAAQN46623AHB2diYsLIyaNWuW2+PMhQsXEhMTQ0REBG5ubixYsIApU6awdevWIo/Pzc1l9OjRNGrUiO3bt3P27Fnmzp2Lk5MTU6ZMoX79+nz99dc255w9e5Ynn3ySMWPGWLfFxcUREhJCeHi4zbE3CoQiIiJiTCUKZiEhIRVy8ZdeeokHHniATZs2AbBt2zYA5s2bR3Z2Nlu2bCmXYJaUlMSuXbvYsGEDbdu2BSA8PJy+ffsSGxtrXUvtelFRUZw7d44dO3bg4+NDs2bNuHjxIsuWLWPcuHG4ubnh5+dnPd5sNjN+/HiCg4OZPHmydXt8fDwBAQE2x4qIiIgUpUTBbO3atTz66KP4+/uXaDkMLy8vGjZsSPfu3XFxKf4S//73vwkPD8fFxYX8/HybfQ8//HCpF6wtzpEjRwDo0KGDdVvjxo3x9/cnOjq6yGAWExND8+bN8fHxsW7r0KED6enpHD9+nJYtW9oc/+677xIfH8/u3bttHvHGxcUV+xariIiIyPVKHMy6du1a4mAG1+ZZDRgwgGXLlhV7jLu7O1lZWUXuS0lJwc3NrUTXupmkpCR8fX1xd3e32V63bl0SExOLPCcxMZF69eoVOh7g/PnzNsEsJyeHiIgI/vKXv9CoUSPr9tTUVJKSkoiJieGtt97i8uXLBAUF8cwzz9C4ceNbqsnFpUwfbShWwXPvkjz/rq6MPgaq39j1g8bA6PWDxsAR6i9RMCuYyP77/y5OTk4OGzZsuOnctE6dOrFmzRpat25tfdRnMpm4evUqmzZtKnJJjqLcaCI+XFsvraiQ5+7uTnZ2dpHnZGVl4e3tXeh4oNA5kZGRpKam2swtA/jxxx+Bay9GLFmyhKysLNavX8+wYcPYs2cPt99++82LK4KTkwlf3xplOvdmvL09K6TdqsToY6D6jV0/aAyMXj9oDOxZf5k/Yn7lyhUsFkuh8ALg5uZGp06diIuLu2EbzzzzDH/+85/p27ev9c3PpUuXcurUKSwWS6EJ88Xx9/cnMjKy2P379+8nJyen0Pbs7Gw8PYsefA8Pj0LnFAQyLy8vm+3vv/8+vXr1st5RK9C2bVsOHDiAr6+v9fHm2rVr6d69Ozt37uTpp5++eXFFMJstpKVllOnc4jg7O+Ht7UlaWib5+cZ7Ewc0Bqrf2PWDxsDo9YPGoCLr9/b2LL+3Mgv8/PPP/N///R//+te/SE9PB659cLxXr16MGjXKZnHZNm3a0KZNmxu2V79+fT744AM2b97MwYMHadiwIRkZGfTv358nn3yyUNApjqurK02bNi12f1xcHCkpKeTk5NjcOUtOTsbf37/Ic+rVq0d8fLzNtuTkZACbc1JSUoiOjiYiIqLIdn7/9qWnpyd33nnnLX8HtKJeY87PNxvyFenrGX0MVL+x6weNgdHrB42BPesvcTCLjIxkzpw5ODk58Yc//IGGDRvi4uLCL7/8wr59+/j4448JCwujf//+peqAr68v06dPL3XHS6NNmzaYzWaOHDlCx44dATh16hRJSUm0a9euyHPatWvHrl27SE9Pp2bNmgAcPHiQGjVqWBfEBYiNjcVisdi8WFDgnXfeITw8nM8//9x6ly09PZ3Tp08zdOjQ8i5TREREqrgSBbOff/6ZOXPm0K1bN1544QWbNxXhWthYsGAB8+bN47777rvh3avfS0pK4ocffuDKlStF7n/kkUdK3FZx/P396devH/PmzSMsLAxPT08WLFhASEgIrVq1Aq7Ni0tNTcXHxwc3Nzd69+7NqlWrmDZtGrNmzSIhIYHw8HBGjRplc9ft2LFj3HXXXdSoUXjOV9euXVm+fDnPPvssU6dOJSsri/DwcGrXrs3gwYNvuS4RERGpXkoUzDZv3sw999zDypUrcXZ2LrS/Zs2avPzyywwbNow33niDRYsWlejikZGRPPfcc0XO/4JrLwKURzADeOGFFwgLC2PSpEnAtdA0b9486/7Y2FhGjhzJli1baN++Pe7u7mzcuJHQ0FAee+wxfHx8GDZsGBMmTLBp98KFC9SqVavIa9avX5/NmzezYsUK/vrXv2KxWOjUqRNbtmwp9IaoiIiISIk+ydS7d2/Gjx/PkCFDbnjcrl27WLt2LXv37i3RxR988EHq1q3LnDlzig03DRo0KFFbRqJPMlUMo4+B6jd2/aAxMHr9oDGoMp9kSk5O5u67777pcXfeeScXLlwoSZPWdhctWkTz5s1LfI6IiIhIdVWiFdS8vb2tbyTeSHJycqm+AdmqVasSrYsmIiIiYgQlumPWunVrdu3axcMPP3zD43bu3Enr1q1LfPEFCxYwbtw40tPTadGiRaH1wYBi35oUERERqW5KFMyeeOIJhg8fzrp16wpNfi+wYsUKDhw4wNtvv13ii58+fZrffvvN+pmn678xabFYMJlMHD9+vMTtiYiIiFRlJQpmbdq0Yfr06YSHh/PRRx/Ro0cPGjRogIuLC7/++iuffvopp06dYvbs2QQFBZX44i+99BINGzbkqaeeKvPniURERESqixIvMPv0009z7733snbtWjZu3Gizr1WrVvzf//0fnTt3LtXFz507x4YNG0r8TUwRERGR6qxUn2Tq0aMHPXr04PLly/z6669YLBYaNGhQqgn/12vWrBnnz58v07kiIiIi1U2ZPmLu6+uLr6/vLV98zpw5zJo1i/z8fFq1amX99NH17rjjjlu+joiIiEhVUKZgVl6efPJJ8vLymD9/vs3E/+tp8r+IiIgYhV2DWWhoqD0vLyIiIuJQ7BrMBg0aVKLjLBYLzz//PJMnT9ajTREREam2SrTyv72ZzWZ27drF5cuX7d0VERERkQpTJYIZXLtrJiIiIlKdVZlgJiIiIlLdKZiJiIiIOAgFMxEREREHoWAmIiIi4iAUzEREREQcRJUJZsV9GUBERESkuqgywUzLZYiIiEh1Z9eV/8+dO1fsPicnJ7y8vPD29sbZ2ZkTJ05UYs9EREREKp9dg1nPnj1v+ojSx8eHkSNHMmHChErqlYiIiIh92DWYLV26lPnz5xMSEkL//v2pU6cOFy9e5NNPP+WLL75gwoQJXL16lQ0bNlCrVi2GDRtmz+6KiIiIVCi7BrOPPvqIfv36sWTJEpvtjzzyCAsWLOCHH36whrK3335bwUxERCqExWQiLSuf5DOX8HR3wcPFCZPmNosd2DWYHT58mHXr1hW578EHH2TixIkABAcHs379+srsmoiIoRg5mOSbTKx77yix8Res24ID/JgwOAhng4yBOA67BrNatWpx4sQJOnXqVGjfiRMnqFmzJgAZGRl4enpWdvdERAzByMHEUkTtALFxF1i38yiTBgcZJqCKY7DrchkDBgxgzZo1vPHGGyQlJZGbm0tiYiJvvvkma9euZcCAAaSmpvLGG2/QsmVLe3ZVRKRaulkwsVTzNSQzc/ML1V4gNu4Cmbn5ldwjMTq73jGbNm0aFy9eZOnSpSxdutS63cnJiSFDhjB9+nSioqI4duwYb7zxhh17KiJSPZUkmHi5VJklL0stIyvvpvu9arpVUm9E7BzMXFxcWLJkCePHj+fQoUNcvnwZf39/WrduzV133QVA165d+eqrr3Bz028MEZHyZvRg4uVx4/8N3my/SHlziF9xd955JxkZGSQnJ9O6dWvy8v73B4WPj48deyYiUr0ZPZh4ujoTHOBHbFzhu4bBAX54ujqD5phJJbL7/ekPPviA7t27M2jQIMaNG8eZM2d47rnnmDx5Mjk5OfbunohItVYQTIpiDSbVmMliYcLgoEJjUPDygyb+S2Wz61+FIiMjmT17Nn/605/o0aMH06dPB6BPnz6Ehoaybt06pk2bZs8uiohUawXBZN3OozZ3jYwUTJwtFiYNDiIz10xWTh4ebi54uhpnuRBxLHYNZhs2bOAvf/kLCxcuJD//f2++DBkyhEuXLrFjxw4FMxGRCqZgci2gens4c3d9by5fvkpentneXRKDsuujzFOnTtGnT58i97Vs2ZKkpKRK7pGIiDEVBJOAu2vj7eFsqFAm4kjsGszq1KnDzz//XOS+n3/+mTp16lRyj0RERETsx67B7OGHH2bNmjV88skn1on+JpOJH374gXXr1tG3b197dk9ERESkUtk1mE2bNo1WrVoxbdo02rRpA8CIESN49NFHadSoEVOnTi23a2VnZxMaGkrHjh0JDg5m5syZXLp06YbnJCQkMHbsWFq3bk3nzp1ZtWqVzVw4gC1bttCnTx9atWrF4MGD2b9/f6nbEBEREQE7T/53c3Nj48aNfPPNNxw4cIDU1FRuu+02QkJC6NatG6Zy/BTIwoULiYmJISIiAjc3NxYsWMCUKVPYunVrkcfn5uYyevRoGjVqxPbt2zl79ixz587FycmJKVOmALBz505WrlzJkiVLaN68OTt37mTixIn885//JDAwsERtiIiIiBRwiJUDO3XqVOSHzMtLUlISu3btYsOGDbRt2xaA8PBw+vbtS2xsLMHBwYXOiYqK4ty5c+zYsQMfHx+aNWvGxYsXWbZsGePGjcPNzY29e/fSuXNn6yPXqVOnsm3bNg4cOEBgYGCJ2hAREREpYPdg9s033/D555+TmZmJ2Wz7erLJZCIsLOyWr3HkyBEAOnToYN3WuHFj/P39iY6OLjKYxcTE0Lx5c5svD3To0IH09HSOHz9Oy5YtqVOnDp999hknTpwgICCAjz/+mCtXrtCiRYsStyEiIiJSwK7BbNOmTSxbtgx3d3dq165d6NFleT3KTEpKwtfXF3d3d5vtdevWJTExschzEhMTqVevXqHjAc6fP0/Lli2ZPHkyP/30EwMHDsTZ2Rmz2czChQutd+VK0kZZuZTzR4WdnZ1s/m1ERh8D1W/s+kFjYPT6QWPgCPXbNZht3bqVAQMGsHjx4lt6rJeQkECvXr2K3T916tQi23d3dyc7O7vIc7KysvD29i50PGA95+zZs5jNZpYtW8a9997Lp59+yuLFi2nQoAFdunQpURtl4eRkwte3RpnPvxFvb88KabcqMfoYqH5j1w8aA6PXDxoDe9Zv12D222+/MXTo0Fuea+Xv709kZGSx+/fv31/kdzezs7Px9Cx68D08PAqdUxCmvLy8yMjIYOLEicyZM4eBAwcCcP/99/Prr7+yfPlyunTpctM2yspstpCWllHm84vi7OyEt7cnaWmZ5Ocbc8Vro4+B6jd2/aAxMHr9oDGoyPq9vT1LdCfOrsHs/vvv58cff6R9+/a31I6rqytNmzYtdn9cXBwpKSnk5OTYhMDk5GT8/f2LPKdevXrEx8fbbEtOTgauBcGff/6ZlJQU63yyAq1ateKzzz4rURu3oqI+F5Kfbzb8p0iMPgaq39j1g8bA6PWDxsCe9dv1IfLzzz/Ppk2b2LlzJz///DPnzp0r9E95aNOmDWaz2foSAFz7HFRSUhLt2rUr8px27dpx7Ngx0tPTrdsOHjxIjRo1CAwMtM4di4uLszkvLi6ORo0alagNERERkevZ9Y7ZX//6V8xmM88//3yxE/2PHz9+y9fx9/enX79+zJs3j7CwMDw9PVmwYAEhISG0atUKgJycHFJTU/Hx8cHNzY3evXuzatUqpk2bxqxZs0hISCA8PJxRo0bh5uaGn58f/fv3JywsDHd3d5o1a8bnn3/Oe++9x4oVKwBu2oaIiIjI9UwWi/2+VPv+++/f9JhBgwaVy7UyMjIICwsjKioKgK5duzJv3jx8fX0BOHToECNHjmTLli3WR6tnzpwhNDSUmJgYfHx8GDp0KJMnT8bJ6dqNxqysLNavX09kZCS//fYbjRs3ZuzYsTz00EPW696sjbLIzzdz6dLVMp//exaTicxcM1k5eXi6u+Dh4mTIDxi7uDjh61uDy5evGvIWvuo3dv2gMTB6/aAxqMj6a9euUaI5ZnYNZlI25RnM8k0m1r13lNj4C9ZtwQF+TBgchLPBfmnoDyTVb+T6QWNg9PpBY+AIwazS55g9++yz/Pbbb6U6JzExkZkzZ1ZQj4zLUkQoA4iNu8C6nUexlOMnsUREROTmKj2YBQYG0r9/f1588UWOHj16w2OPHj3K3LlzGTBgAPfdd18l9dA4MnPzC4WyArFxF8jM1cfWRUREKlOlT/4fNWoU3bp1Y/ny5fz5z3+mbt26tGjRgjvvvBNPT0+uXLnC+fPniY2N5fLly3Tv3p1t27bRrFmzyu5qtZeRlXfT/V419ZKCiIhIZbHLW5lNmzZl/fr1xMfHs2fPHg4dOsSRI0e4cuUKvr6+NGjQgL/+9a88+OCDBAQE2KOLhuDlceOf/pvtFxERkfJl1//zNmvWTHPH7MjT1ZngAD9i4wo/zgwO8MPT1RkM9gKAiIiIPRnzK6UCgMliYcLgIIID/Gy2F7yVacQlM0REROxJz6oMztliYdLgIOs6Zh5uLni6GnMdMxEREXvTHTPBZLHg7eFMwN218fZwVigTERGxEwUzEREREQehYCYiIiLiIBTMRERERByEgpmIiIiIg1AwExEREXEQCmYiIiIiDkLBTERERMRBKJiJiIiIOAgFMxEREREHoWAmIiIi4iAUzEREREQchIKZiIiIiINQMBMRERFxEApmIiIiIg5CwUxERETEQSiYiYiIiDgIBTMRERERB6FgJiIiIuIgFMxEREREHISCmYiIiIiDUDATERERcRAKZiIiIiIOQsFMRERExEEomImIiIg4CAUzEREREQehYCYiIiLiIBTMRERERByEYYJZdnY2oaGhdOzYkeDgYGbOnMmlS5dueE5CQgJjx46ldevWdO7cmVWrVpGfn29zzJYtW+jTpw+tWrVi8ODB7N+/32b/+vXrCQgIKPSPiIiIyO8ZJpgtXLiQr7/+moiICN544w1OnjzJlClTij0+NzeX0aNHA7B9+3YWLlzI22+/zSuvvGI9ZufOnaxcuZKZM2eyZ88eunXrxsSJEzlx4oT1mLi4OAYOHMjXX39t84+IiIjI7xkimCUlJbFr1y7mzZtH27ZtCQoKIjw8nOjoaGJjY4s8JyoqinPnzrFs2TKaNWtG7969mTFjBm+88QY5OTkA7N27l86dO9O3b1/uuusupk6dipeXFwcOHLC2Ex8fz/3334+fn5/NPyIiIiK/Z4hgduTIEQA6dOhg3da4cWP8/f2Jjo4u8pyYmBiaN2+Oj4+PdVuHDh1IT0/n+PHjANSpU4fo6GhOnDiBxWIhMjKSK1eu0KJFCwBycnI4ffo0TZo0qajSREREpBpxsXcHKkNSUhK+vr64u7vbbK9bty6JiYlFnpOYmEi9evUKHQ9w/vx5WrZsyeTJk/npp58YOHAgzs7OmM1mFi5cSNu2bQH46aefyM/PJyoqisWLF5OdnU27du145plnrG2JiIiIFKgWwSwhIYFevXoVu3/q1Km4ubkV2u7u7k52dnaR52RlZeHt7V3oeMB6ztmzZzGbzSxbtox7772XTz/9lMWLF9OgQQO6dOlCfHw8AJ6enqxevZqLFy8SHh7OyJEj2bVrFx4eHmWqF8DFpXxvdjo7O9n824iMPgaq39j1g8bA6PWDxsAR6q8Wwczf35/IyMhi9+/fv986L+x62dnZeHp6FnmOh4dHoXMKApmXlxcZGRlMnDiROXPmMHDgQADuv/9+fv31V5YvX06XLl145JFH6Nq1K7Vr17a2ce+999K1a1f27dvHww8/XOpaAZycTPj61ijTuTfj7V30eBiJ0cdA9Ru7ftAYGL1+0BjYs/5qEcxcXV1p2rRpsfvj4uJISUkhJyfH5s5ZcnIy/v7+RZ5Tr1496x2v64+Ha0Hw559/JiUlxTqfrECrVq347LPPrD++PpTBtcehtWrVKvYRakmYzRbS0jLKfH5RnJ2d8Pb2JC0tk/x8c7m2XVUYfQxUv7HrB42B0esHjUFF1u/t7VmiO3HVIpjdTJs2bTCbzRw5coSOHTsCcOrUKZKSkmjXrl2R57Rr145du3aRnp5OzZo1ATh48CA1atQgMDCQ1NRU4Frouz4UxsXF0ahRIwBWrlzJJ598wieffILJZAKuPXa9fPky99xzzy3VlJdXMb9h8vPNFdZ2VWH0MVD9xq4fNAZGrx80Bvas3xAPkf39/enXrx/z5s3j0KFDHD16lBkzZhASEkKrVq2Aa29QXrhwwfr4snfv3vj5+TFt2jROnDjB3r17CQ8PZ9SoUbi5ueHn50f//v0JCwvjX//6F7/88gtbtmzhvffeY9y4cQD06dOHX3/9lYULF3Lq1Cmio6OZPHkyrVu3pkuXLvYaDhEREXFQJovFYrF3JypDRkYGYWFhREVFAdC1a1fmzZuHr68vAIcOHWLkyJFs2bKF9u3bA3DmzBlCQ0OJiYnBx8eHoUOHMnnyZJycruXZrKws1q9fT2RkJL/99huNGzdm7NixPPTQQ9brHjhwgNWrVxMXF4ebmxu9evVi9uzZNstwlFZ+vplLl66W+fyiuLg44etbg8uXrxr2b0lGHwPVb+z6QWNg9PpBY1CR9deuXaNEjzINE8yqEwWzimH0MVD9xq4fNAZGrx80Bo4QzAzxKFNERESkKlAwExEREXEQCmYiIiIiDkLBTERERMRBKJiJiIiIOAgFMxEREREHoWAmIiIi4iAUzEREREQchIKZiIiIiINQMBMRERFxEApmIiIiIg5CwUxERETEQSiYiYiIiDgIBTMRERERB6FgJiIiIuIgFMxEREREHISCmYiIiIiDcLF3B0QcgcVkIi0rn+Qzl/B0d8HDxQmTxWLvbomIiMEomInh5ZtMrHvvKLHxF6zbggP8mDA4CGeFMxERqUR6lCmGZikilAHExl1g3c6jWEwmO/VMRESMSMFMDC0zN79QKCsQG3eBzNz8Su6RiIgYmYKZGFpGVt4t7RcRESlPCmZiaF4eN55mebP9IiIi5UnBTAzN09WZ4AC/IvcFB/jh6epcyT0SEREjUzATQzNZLEwYHFQonBW8laklM0REpDLpOY0YnrPFwqTBQWTmmsnKycPDzQVPV61jJiIilU93zES4dufM28OZgLtr4+3hrFAmIiJ2oWAmIiIi4iAUzEREREQchIKZiIiIiINQMBMRERFxEApmIiIiIg5CwUxERETEQSiYiYiIiDgIBTMRERERB6FgJiIiIuIgFMxEREREHITJYtG3Z6oai8WC2Vz+P23Ozk7k55vLvd2qxOhjoPqNXT9oDIxeP2gMKqp+JycTJpPppscpmImIiIg4CD3KFBEREXEQCmYiIiIiDkLBTERERMRBKJiJiIiIOAgFMxEREREHoWAmIiIi4iAUzEREREQchIKZiIiIiINQMBMRERFxEApmIiIiIg5CwUxERETEQSiYiYiIiDgIBTMRERERB6FgJpjNZtasWUOXLl1o1aoVTz31FL/88ou9u1VpUlJSmD9/Pl27dqV169b89a9/JSYmxt7dsotTp04RHBzMzp077d2VSrdr1y4efvhhWrRoQb9+/fj444/t3aVKk5eXx+rVq+nRowfBwcE8/vjj/Pvf/7Z3tyrFq6++yogRI2y2HT9+nOHDh9OqVSt69uzJli1b7NS7ylHUGOzbt48hQ4YQHBxMz549eemll8jKyrJTDytWUfVfb968efTs2bPS+qNgJqxbt4633nqLF154ge3bt2M2mxkzZgw5OTn27lqlmDFjBrGxsYSHh/Pee+9x3333MXr0aE6ePGnvrlWq3Nxc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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set_theme(style=\"darkgrid\")\n", + "default_reg_scoring = config.settings.scoring\n", + "ax = sns.scatterplot(data=study.trials_dataframe(), x=\"number\", y=\"value\")\n", + "ax.set(xlabel=\"Trial number\", ylabel=f\"Ojbective value\\n({default_reg_scoring})\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Build the best PRF model:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "buildconfig = buildconfig_best(study)\n", + "best_built = build_best(buildconfig, \"../target/best.pkl\")\n", + "\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot predictions from the merged model for the (seen) train data for demonstration purposes" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#predict the input from the trained model (transductive evaluation of the model)\n", + "example_smiles=config.data.get_sets()[0]\n", + "expected = config.data.get_sets()[1]\n", + "predicted = model.predict_from_smiles(example_smiles)\n", + "\n", + "# Plot expected vs predicted values for the best model.\n", + "ax = plt.scatter(expected, predicted)\n", + "lims = [expected.min(), expected.max()]\n", + "plt.plot(lims, lims) # Diagonal line.\n", + "plt.xlabel(f\"Expected {config.data.response_column} (PTR)\");\n", + "plt.ylabel(f\"Predicted {config.data.response_column}\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Interlude: Cautionary advice for PRF ∆y (response column) validity" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "N.B It is not possible to train on response column values outside the likelihood for y-label memberships (ranging from 0-1), as expected for `∆y`. Doing so will result in the following error from QSARtuna:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:19:17,760] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:19:17,800] A new study created in memory with name: study_name_0\n", + "[W 2024-07-02 13:19:17,801] Trial 0 failed with parameters: {} because of the following error: ValueError('PRFClassifier supplied but response column outside [0.0-1.0] acceptable range. Response max: 9.7, response min: 5.3 ').\n", + "Traceback (most recent call last):\n", + " File \"/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optuna/study/_optimize.py\", line 196, in _run_trial\n", + " value_or_values = func(trial)\n", + " File \"/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/objective.py\", line 128, in __call__\n", + " self._validate_algos()\n", + " File \"/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/objective.py\", line 264, in _validate_algos\n", + " raise ValueError(\n", + "ValueError: PRFClassifier supplied but response column outside [0.0-1.0] acceptable range. Response max: 9.7, response min: 5.3 \n", + "[W 2024-07-02 13:19:17,807] Trial 0 failed with value None.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "As expected, training the PRF on the raw pXC50 values resulted in the following error:\n", + "\n", + "\"PRFClassifier supplied but response column outside [0.0-1.0] acceptable range. Response max: 9.7, response min: 5.3 \n" + ] + } + ], + "source": [ + "# Prepare problematic hyperparameter optimization configuration without PTR.\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"Measurement\",\n", + " training_dataset_file=\"../tests/data/pxc50/P24863.csv\"),\n", + " descriptors=[\n", + " ECFP.new(),\n", + " ],\n", + " algorithms=[\n", + " PRFClassifier.new(n_estimators={\"low\": 5, \"high\": 10}), #n_estimators set low for the example to run fast\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=2,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "try:\n", + " study = optimize(config, study_name=\"my_study\")\n", + "except ValueError as e:\n", + " print(f'As expected, training the PRF on the raw pXC50 values resulted in the following error:\\n\\n\"{e}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To summarise:\n", + "1. PRF handles probability of `y` or `∆y` labels, which range between [`0-1`]\n", + "2. PRF is evaluated in a probabilistic setting via conventional regression metrics (e.g. `RMSE`, `R2` etc.), despite the fact that PRF can be considered a modification to the classic Random Forest classifier\n", + "3. Probabilistic output is the probability of activity at a relevant cutoff, similar to a classification algorithm\n", + "4. Ouputs reflect liklihoods for a molecular property to be above a relevant threshold, given experimental uncertainty (and arguably a more useful component for within a REINVENT MPO score)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ChemProp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna has the functionaility to train `ChemProp` deep learning models. These are message passing neural networks (MPNNs) based on a graph representation of training molecules. They are considered by many to offer the state-of-the-art approach for property prediction.\n", + "\n", + "`ChemProp` was first described in the paper Analyzing Learned Molecular Representations for Property Prediction: https://pubs.acs.org/doi/full/10.1021/acs.jcim.9b00237\n", + "\n", + "More information is available in their slides: https://docs.google.com/presentation/d/14pbd9LTXzfPSJHyXYkfLxnK8Q80LhVnjImg8a3WqCRM/edit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `ChemProp` package expects SMILES as molecule inputs, since it calcaultes a molecule graph directly from these and so expects SMILES as descriptors. The `SmilesFromFile` and `SmilesAndSideInfoFromFile` descriptors (more about this later) are available for this purpose and are _only_ supported by the `ChemProp` algorithms:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Smiles based descriptors:\n", + "(, )\n" + ] + } + ], + "source": [ + "from optunaz.config.optconfig import ChemPropRegressor\n", + "from optunaz.descriptors import SmilesBasedDescriptor, SmilesFromFile\n", + "print(f\"Smiles based descriptors:\\n{SmilesBasedDescriptor.__args__}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Simple ChemProp example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following is an example of the most basic ChemProp run, which will train the algorithm using the recommended (sensible) defaults for the MPNN architecture:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:19:17,867] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:19:17,868] A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__668a7428ff5cdb271b01c0925e8fea45': 'ReLU', 'aggregation__668a7428ff5cdb271b01c0925e8fea45': 'mean', 'aggregation_norm__668a7428ff5cdb271b01c0925e8fea45': 100, 'batch_size__668a7428ff5cdb271b01c0925e8fea45': 50, 'depth__668a7428ff5cdb271b01c0925e8fea45': 3, 'dropout__668a7428ff5cdb271b01c0925e8fea45': 0.0, 'features_generator__668a7428ff5cdb271b01c0925e8fea45': 'none', 'ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300, 'ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45': 2, 'final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300, 'init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'max_lr_exp__668a7428ff5cdb271b01c0925e8fea45': -3, 'warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45': 0.1, 'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': '668a7428ff5cdb271b01c0925e8fea45'}\n", + "[I 2024-07-02 13:20:11,301] Trial 0 finished with value: -6833.034983241957 and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': '668a7428ff5cdb271b01c0925e8fea45', 'activation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation_norm__668a7428ff5cdb271b01c0925e8fea45': 100.0, 'batch_size__668a7428ff5cdb271b01c0925e8fea45': 50.0, 'depth__668a7428ff5cdb271b01c0925e8fea45': 3.0, 'dropout__668a7428ff5cdb271b01c0925e8fea45': 0.0, 'ensemble_size__668a7428ff5cdb271b01c0925e8fea45': 1, 'epochs__668a7428ff5cdb271b01c0925e8fea45': 5, 'features_generator__668a7428ff5cdb271b01c0925e8fea45': , 'ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300.0, 'ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45': 2.0, 'final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300.0, 'init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'max_lr_exp__668a7428ff5cdb271b01c0925e8fea45': -3, 'warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: -6833.034983241957.\n", + "[I 2024-07-02 13:21:02,026] Trial 1 finished with value: -6445.608102397302 and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': '668a7428ff5cdb271b01c0925e8fea45', 'activation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation_norm__668a7428ff5cdb271b01c0925e8fea45': 78.0, 'batch_size__668a7428ff5cdb271b01c0925e8fea45': 105.0, 'depth__668a7428ff5cdb271b01c0925e8fea45': 5.0, 'dropout__668a7428ff5cdb271b01c0925e8fea45': 0.16, 'ensemble_size__668a7428ff5cdb271b01c0925e8fea45': 1, 'epochs__668a7428ff5cdb271b01c0925e8fea45': 5, 'features_generator__668a7428ff5cdb271b01c0925e8fea45': , 'ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45': 1700.0, 'ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45': 3.0, 'final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -2, 'hidden_size__668a7428ff5cdb271b01c0925e8fea45': 2300.0, 'init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -2, 'max_lr_exp__668a7428ff5cdb271b01c0925e8fea45': -3, 'warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 1 with value: -6445.608102397302.\n" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " split_strategy=Stratified(fraction=0.50),\n", + " deduplication_strategy=KeepMedian(),\n", + " ),\n", + " descriptors=[\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " ChemPropRegressor.new(epochs=5), #epochs=5 to ensure run finishes quickly\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=2,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You may safely ignore `ChemProp` warnings such as `Model 0 provided with no test set, no metric evaluation will be performed`, `\"rmse = nan\"` and `1-fold cross validation`, as they are information prompts printed from `ChemProp` due to some (deactivated) CV functionaility (ChemProp can perform it's own cross validation - details for this are still printed despite its deactivation within `QSARtuna`).\n", + "\n", + "NB: QSARtuna will first trial the sensible defaults for the MPNN architecture (where possible given the user config). This is communicated to the user, e.g. see the output which advises:\n", + "\n", + "`A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation': 'ReLU', 'aggregation': 'mean', 'aggregation_norm': 100, 'batch_size': 50, 'depth': 3, 'dropout': 0.0, 'features_generator': 'none', 'ffn_hidden_size': 300, 'ffn_num_layers': 3, 'final_lr_ratio_exp': -1, 'hidden_size': 300, 'init_lr_ratio_exp': -1, 'max_lr_exp': -3, 'warmup_epochs_ratio': 0.1, 'algorithm_name': 'ChemPropRegressor'}`.\n", + "\n", + "Enqueuing custom parameters ensures sampling from a sensible hyperparameter space to begin with, and to facilitate further optimisation from this point. Additional trials will not have any further preset enqueing and use Bayesian optimization for trial suggestion." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ChemProp optimization separate from shallow methods (default behavior)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, `QSARtuna` separates `ChemProp` from the other shallow methods using the `split_chemprop` flag. When this setting is set, the user must specify the number of `ChemProp` trials using the `n_chemprop_trials` flag if more than 1 (default) trial is desired:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from optunaz.config.optconfig import ChemPropClassifier, RandomForestClassifier\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\",\n", + " split_strategy=Stratified(fraction=0.75),\n", + " deduplication_strategy=KeepMedian(),\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(),\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " ChemPropClassifier.new(epochs=4),\n", + " RandomForestClassifier.new(n_estimators={\"low\": 5, \"high\": 5}),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1, # run only one random forest classifier trial\n", + " n_chemprop_trials=2, # run one enqueued chemprop trial and 1 undirected trial\n", + " split_chemprop=True, # this is set to true by default (shown here for illustration)\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Turn on Hyperopt within trials (advanced functionaility & very large computational cost)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna optimises all aspects of the ChemProp architecture when using ChemPropRegressor or ChemPropClassifier, however, users can activate the [original hyperparameter-optimization implementation](https://github.com/chemprop/chemprop#hyperparameter-optimization) in the `ChemProp` package, which performs automated Bayesian hyperparameter optimization using the `Hyperopt` package within each trial, at large computational cost.\n", + "\n", + "NB: The principal way for users to expand and perform more advanced runs is to extend the available non-network hyperparameters, such as the `features_generator` option or e.g. to trial differnt side information weighting (if side information is available).\n", + "\n", + "NB: Please note that when `num_iters`=1 (default behavior), any optimisation of the MPNN architecture (done by Hyperopt) is deactivated - the sensible defaults as specified by the ChemProp authors are applied. i.e. optimisation of the MPNN is only possible when `num_iters`>=2, like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "from optunaz.config.optconfig import ChemPropHyperoptRegressor, ChemPropHyperoptClassifier\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\",\n", + " split_strategy=Stratified(fraction=0.5),\n", + " deduplication_strategy=KeepMedian(),\n", + " ),\n", + " descriptors=[\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " ChemPropHyperoptRegressor.new(epochs=5, num_iters=2), #num_iters>2: enable hyperopt within ChemProp trials\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=1, #just optimise one ChemProp model for this example\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NB: Remember that parameter tuning of the MPNN network is performed _within_ each trial.\n", + "\n", + "#### A note on MPNN Hyperopt search space\n", + "\n", + "`ChemProp` models trained using Hyperopt use the [original implementation](https://chemprop.readthedocs.io/en/latest/hyperopt.html), but one key difference is the `search_parameter_level` setting created for `QSARtuna`; Instead of using pre-defined search spaces as in the original package, `QSARtuna` can (and will by the default since `search_parameter_level`=`auto` unless changed) alter the space depending on the characteristics of user input data. For example, no. training set compounds, hyperparameter trials (`num_iters`) & epochs (`epochs`) are used by the `auto` setting to ensure search spaces are not too large for limited data/epochs, and _vice-versa_, an extensive search space is trailed when applicable.\n", + "\n", + "N.B: Users can also manually define `Hyperopt` search spaces by altering `search_parameter_level` from `auto` to a different level between `[0-8]`, representing the increasing search space size (see the [QSARtuna documentation](https://pages.scp.astrazeneca.net/mai/qsartuna/optunaz.config.html#optunaz.config.optconfig.ChemPropSearch_Parameter_Level) for details)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Side information and multi-task learning (MTL) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "_“Even if you are only optimizing one loss as is the typical case, chances are there is an auxiliary task that will help you improve upon your main task”_ [Caruana, 1998]\n", + "\n", + "`QSARtuna` typically optimizes for one particular metric for a given molecule property. While we can generally achieve acceptable performance this way, these single task (ST) models ignore information that may improve the prediction of main task of intent. See option `a.` in the figure below.\n", + "\n", + "Signals from relevant related tasks (aka \"auxiliary tasks\" or \"side information\") could come from the training signals of other molecular properties and by sharing representations between related tasks, we can enable a neural network to generalize better on our original task of intent. This approach is called Multi-Task Learning (MTL) See option `b.` in the figure below.\n", + "\n", + "\"Difference\n", + "\n", + "_(above) Differences between optimizing one vs. more than one loss function. a.) Single-task (ST): one model trained to predict one task one model optimised until performance no longer increases b.) Multi-task (MT/MTL): training one model to predict multiple tasks one model optimising more than one loss function at once enables representations to be shared between trained tasks training signals of related tasks shared between all tasks._\n", + "\n", + "\n", + "`ChemProp` performs MTL by using the knowledge learnt during training one task to reduce the loss of other tasks included in training. In order to use this function in `QSARtuna`, a user should provide side information in a separate file, and it should have the same ordering and length as the input/response columns (i.e. length of y should = length of side information for y).\n", + "\n", + "E.g: consider the DRD2 example input from earlier:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "canonical,activity,molwt,molwt_gt_330\r\n", + "Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1,0,387.233,True\r\n", + "O=C(Nc1ccc(F)cc1F)Nc1sccc1-c1nc2ccccc2s1,0,387.4360000000001,True\r\n", + "COC(=O)c1ccccc1NC(=O)c1cc([N+](=O)[O-])nn1Cc1ccccc1,0,380.36000000000007,True\r\n", + "CCOC(=O)C(C)Sc1nc(-c2ccccc2)ccc1C#N,0,312.39400000000006,False\r\n", + "CCC(CC)NC(=O)c1nn(Cc2ccccc2)c(=O)c2ccccc12,0,349.4340000000001,True\r\n", + "Brc1ccccc1OCCCOc1cccc2cccnc12,0,358.235,True\r\n", + "CCCCn1c(COc2cccc(OC)c2)nc2ccccc21,0,310.39700000000005,False\r\n", + "CCOc1cccc(NC(=O)c2sc3nc(-c4ccc(F)cc4)ccc3c2N)c1,0,407.4700000000001,True\r\n", + "COc1ccc(S(=O)(=O)N(CC(=O)Nc2ccc(C)cc2)c2ccc(C)cc2)cc1OC,0,454.54800000000023,True\r\n" + ] + } + ], + "source": [ + "!head ../tests/data/DRD2/subset-50/train.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is an accompying example of side information/auxiliary data inputs (calculated PhysChem properties ) as provided in `train_side_info.csv` within the tests data folder:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "canonical,cLogP,cLogS,H-Acceptors,H-Donors,Total Surface Area,Relative PSA\r\n", + "Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1,4.04,-5.293,5,1,265.09,0.22475\r\n", + "O=C(Nc1ccc(F)cc1F)Nc1sccc1-c1nc2ccccc2s1,4.8088,-5.883,4,2,271.39,0.32297\r\n", + "COC(=O)c1ccccc1NC(=O)c1cc([N+](=O)[O-])nn1Cc1ccccc1,1.6237,-3.835,9,1,287.39,0.33334\r\n", + "CCOC(=O)C(C)Sc1nc(-c2ccccc2)ccc1C#N,3.2804,-4.314,4,0,249.51,0.26075\r\n", + "CCC(CC)NC(=O)c1nn(Cc2ccccc2)c(=O)c2ccccc12,3.2533,-4.498,5,1,278.05,0.18917\r\n", + "Brc1ccccc1OCCCOc1cccc2cccnc12,4.5102,-4.694,3,0,246.29,0.12575\r\n", + "CCCCn1c(COc2cccc(OC)c2)nc2ccccc21,3.7244,-2.678,4,0,255.14,0.14831\r\n", + "CCOc1cccc(NC(=O)c2sc3nc(-c4ccc(F)cc4)ccc3c2N)c1,4.4338,-6.895,5,2,302.18,0.26838\r\n", + "COc1ccc(S(=O)(=O)N(CC(=O)Nc2ccc(C)cc2)c2ccc(C)cc2)cc1OC,3.2041,-5.057,7,1,343.67,0.22298\r\n" + ] + } + ], + "source": [ + "!head ../tests/data/DRD2/subset-50/train_side_info.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I.e. the first column (Smiles) should match between the two files, and any columns after the SMILES within the `train_side_info.csv` side information file will be used as y-label side information in the training of the network.\n", + "\n", + "N.B: that calculated PhysChem properties are only one example of side information, and that side information may come from any related property that improves the main task of intent.\n", + "\n", + "A classification example can also be found here:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "canonical,cLogP_Gt2.5,cLogS_Gt-3.5,H-Acceptors_Gt5,H-Donors_Gt0,Total Surface Area_Gt250,Relative PSA_Lt0.25\r\n", + "Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1,1,0,0,1,1,1\r\n", + "O=C(Nc1ccc(F)cc1F)Nc1sccc1-c1nc2ccccc2s1,1,0,0,1,1,0\r\n", + "COC(=O)c1ccccc1NC(=O)c1cc([N+](=O)[O-])nn1Cc1ccccc1,0,0,1,1,1,0\r\n", + "CCOC(=O)C(C)Sc1nc(-c2ccccc2)ccc1C#N,1,0,0,0,0,0\r\n", + "CCC(CC)NC(=O)c1nn(Cc2ccccc2)c(=O)c2ccccc12,1,0,0,1,1,1\r\n", + "Brc1ccccc1OCCCOc1cccc2cccnc12,1,0,0,0,0,1\r\n", + "CCCCn1c(COc2cccc(OC)c2)nc2ccccc21,1,1,0,0,1,1\r\n", + "CCOc1cccc(NC(=O)c2sc3nc(-c4ccc(F)cc4)ccc3c2N)c1,1,0,0,1,1,0\r\n", + "COc1ccc(S(=O)(=O)N(CC(=O)Nc2ccc(C)cc2)c2ccc(C)cc2)cc1OC,1,0,1,1,1,1\r\n" + ] + } + ], + "source": [ + "!head ../tests/data/DRD2/subset-50/train_side_info_cls.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The contribution or _weight_ of all side information tasks in their contribution to the loss function during training a network is a parameter that can be optimised within QSARtuna, e.g:" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:03,347] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:21:03,350] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:21:05,443] Trial 0 finished with value: -5817.944008002311 and parameters: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 50}. Best is trial 0 with value: -5817.944008002311.\n", + "[I 2024-07-02 13:21:05,495] Trial 1 pruned. Duplicate parameter set\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 50}, return [-5817.944008002311]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:07,433] Trial 2 finished with value: -5796.34392897437 and parameters: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 80}. Best is trial 2 with value: -5796.34392897437.\n", + "[I 2024-07-02 13:21:09,439] Trial 3 finished with value: -5795.086720713623 and parameters: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 100}. Best is trial 3 with value: -5795.086720713623.\n", + "[I 2024-07-02 13:21:09,470] Trial 4 pruned. Duplicate parameter set\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 100}, return [-5795.086720713623]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:11,241] Trial 5 finished with value: -5820.227555999914 and parameters: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 0}. Best is trial 3 with value: -5795.086720713623.\n", + "[I 2024-07-02 13:21:11,283] Trial 6 pruned. Duplicate parameter set\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 100}, return [-5795.086720713623]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:13,322] Trial 7 finished with value: -5852.160071204277 and parameters: {'algorithm_name': 'ChemPropHyperoptRegressor', 'ChemPropHyperoptRegressor_algorithm_hash': 'db9e60f9b8f0a43eff4b41917b6293d9', 'ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'epochs__db9e60f9b8f0a43eff4b41917b6293d9': 4, 'features_generator__db9e60f9b8f0a43eff4b41917b6293d9': , 'num_iters__db9e60f9b8f0a43eff4b41917b6293d9': 1, 'search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9': , 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 100, \"q\": 10}}}', 'aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9': 10}. Best is trial 3 with value: -5795.086720713623.\n" + ] + } + ], + "source": [ + "from optunaz.descriptors import SmilesAndSideInfoFromFile\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\",\n", + " test_dataset_file=\"../tests/data/DRD2/subset-50/test.csv\"), # Hidden during optimization.\n", + " descriptors=[\n", + " SmilesAndSideInfoFromFile.new(file='../tests/data/DRD2/subset-50/train_side_info.csv',\\\n", + " input_column='canonical',\n", + " aux_weight_pc={\"low\": 0, \"high\": 100, \"q\": 10}) #try different aux weights\n", + " ],\n", + " algorithms=[\n", + " ChemPropHyperoptRegressor.new(epochs=4), #epochs=4 to ensure run finishes quickly\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=1,\n", + " n_trials=8,\n", + " n_startup_trials=0,\n", + " random_seed=42,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the toy example above, the `ChemPropRegressor` has been trialed with a variety of auxiliary weights ranging from 0-100%, using the SmilesAndSideInfoFromFile setting `aux_weight_pc={\"low\": 0, \"high\": 100}`.\n", + "\n", + "The inlfuence of the weighting of side information on model performance next hence be explored via a scatterplot of the auxiliary weight percent as a product of the objective value:" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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F7y8vJCXl4ebN29CEAR06NBBrQf0/83W1ha3b9+u1bFEREREjV2tXvotlUohlUqf++SzZ8/Gxx9/DLlcDmdnZxgZGVXbp3379s99HiIiIqKGqFZBrK4EBwejvLwcCxYsUHpQ/9/4sD4RERE1VaIGscWLF4t5eiIiIiJRiRrE/Pz8VNpPEATMmTMHU6ZM4a1KIiIiajJUWllfbBUVFThw4ADy8vLEHgoRERFRnWkUQQyonBUjIiIiakoaTRAjIiIiamoYxIiIiIhEwiBGREREJBIGMSIiIiKRMIgRERERiaTRBLEnrbxPRERE1Fg1miDG5SuIiIioqRF1Zf1bt249sU1LSwuGhoYwNjaGtrY2Lly4oMGREREREdU/UYPYa6+99sxbjiYmJhg1ahQmTpyooVERERERaYaoQWzFihVYsGABevfuDR8fH5iZmeHevXv4+eefER8fj4kTJ+LRo0eIjo5G69atERAQIOZwiYiIiOqUqEHs8OHDGDJkCJYvX660ffjw4Vi4cCHOnTunCGG7du1iECMiIqImRdSH9U+fPg0fH58a2wYNGoSkpCQAgIuLC27cuKHJoRERERHVO1GDWOvWrZ/4EP6FCxdgZGQEACgqKoKBgYEmh0ZERERU70S9Nenr64vIyEjo6OjA29sbpqamuHfvHn755ResX78e7777Lh48eICtW7fCyclJzKESERER1TlRg9jUqVNx7949rFixAitWrFBs19LSwogRIzBt2jT89NNPSE9Px9atW0UcKREREVHdkwgNYKXU69evIzk5GXl5ebCwsICrqys6duwIAHjw4AEMDAzQokULkUcpDrm8AvfvP6rzfnV0tCCVtkRe3iOUl1fUef9UiXXWDNZZM1hnzWGtNaO+6mxq2hLa2qo9/SXqjFgVKysrFBUVITc3F66urigvL1e0mZiYiDgyIiIiovojehD7/vvvsXr1aty5cwcSiQTffvstoqKioKuri9WrVzfbmTAiIiJq+kT91mRcXBzCw8PRt29frFmzBhUVldOCr7/+Ok6cOIENGzaIOTwiIiKieiXqjFh0dDTeffddLFq0CHK5XLF9xIgRuH//Pr755htMnTpVvAESERER1SNRZ8SuXLmC119/vcY2Jycn5OTkaHhERERERJojahAzMzNDRkZGjW0ZGRkwMzPT8IiIiIiINEfUIPbmm28iMjISR44cQVlZGQBAIpHg3Llz2LBhA7y9vcUcHhEREVG9En1B14sXL2Lq1KnQ0qrMhEFBQSgqKoKbmxs++ugjMYdHREREVK9EDWItWrRATEwMfv/9dyQmJuLBgwdo1aoVevfuDU9PT0gkEjGHR0RERFSvRF9HDAA8PDzg4eEh9jCIiIiINEr0IPb777/j+PHjKC4uVqwjVkUikWDZsmUijYyIiIiofokaxDZt2oTPPvsMenp6MDU1rXYrsi5vTaalpSEgIKDa9m3btqFPnz4AgFOnTmH16tXIyMhAmzZt8N5772Hs2LE19peamoqgoCBs2bJFcTwAJCYmIiIiAhkZGbC0tMSUKVMwZMiQOrsOIiIiajpEDWKxsbHw9fXF0qVL6/1VRjKZDJ06dcLOnTuVtle9yzIzMxMhISEICQnB2rVr8ffff2P27NnQ19fHyJEjlY4pLCxEWFhYtRm8jIwMhISEIDg4GBEREYiPj0dYWBhMTU3h7u5er9dHREREjY+oQezu3bt46623NPI+yYsXL8LGxgZt27atsT0hIQGGhoaYPHkyAKBjx46Ii4vDyZMnqwWxRYsWoWPHjrh586bS9q1bt8LOzg7Tpk0DAFhbWyM9PR0xMTEMYkRERFSNqOuIde/eHZcuXdLIuWQyGaytrZ/YbmZmhvz8fBw6dAiCIEAmkyEtLQ1OTk5K+33//fc4c+YM5syZU62P1NTUaoGrb9++SEtLgyAIdXMhRERE1GSIOiM2Z84cTJ06FYaGhnBycoKBgUG1fdq3b18n57p06RKkUin8/f2Rk5MDW1tbTJs2DY6OjgCAwYMHIzk5GTNnzkRYWBjkcjl8fX0xfvx4RR9ZWVlYunQpNmzYgJYtW1Y7R3Z2Ntq1a6e0zdzcHMXFxcjLy4OpqWmtxq6jU/d5WVtbS+m/VD9YZ81gnTWDddYc1lozGkKdRQ1i7733HioqKjBnzpwnPph//vz5Z/aTlZWFAQMGPLE9Pj4ehYWFKCoqwrx586CtrY3Y2FgEBgZi//79sLGxwb1793Dz5k2EhobC09MT6enpWLlyJaKiohAaGgq5XI6ZM2finXfegZubG7Kysqqdp6SkpNpt1qrPVW8OUJeWlgRSafXQV1eMjauHX6p7rLNmsM6awTprDmutGWLWWdQg9umnn9ZJPxYWFoiLi3tiu7m5OVJSUmBgYABdXV0AgIODA9LT07F9+3YsXrwYc+fOhaWlJSZMmACg8rapIAhYtGgRAgMDsWvXLhQXF2PKlClPPI+enl61wFX1uabZPlVUVAgoKCiq1bFPo62tBWNjAxQUFEMur3j2AVQrrLNmsM6awTprDmutGfVVZ2NjA5Vn2UQNYn5+fnXSj66u7lOf/wIAY2Njpc9aWlqwtrZGTk4OgMrlLcLCwpT2cXZ2Rnl5ObKysrBv3z7k5uYqlqqoeuZr3LhxGD58OJYsWQJLS0vk5uYq9ZGbmwtDQ0O0atWq1tdXXl5/fwjl8op67Z8qsc6awTprBuusOay1ZohZZ43fFA0LC8Pdu3fVOiY7OxszZsyo9TkTEhLg4uKCGzduKLaVl5fjwoULsLGxAVA5qyaTyZSOk8lkkEgk6Ny5M7Zv347Dhw/jwIEDOHDgAL766isAlbN6Ve/EdHNzw+nTp5X6SEpKgqurq+JdmkRERERVND4jZm9vDx8fH/j4+GDo0KGKh+VrcvbsWezZswc///wzQkJCan1OV1dXSKVShIeHY86cOdDV1cVXX32F/Px8jB49GgAQHByMJUuWoEuXLvDy8oJMJsOKFSsQEBAAExMTxXpjVbS1tQFUBjgzMzMAlS8s9/Pzw6pVq+Dn54cTJ07gyJEjiImJqfXYiYiIqOnSeBAbM2YMPD09sWrVKrzzzjswNzeHg4MDrKysYGBggMLCQty+fRtnzpxBXl4e+vfvjx07dsDW1rbW5zQyMsKWLVuwatUqjB07FqWlpejZsydiY2PRpk0bAMA777wDPT09bN68GWvWrIGFhQUCAgIwbtw4lc/TtWtXbNiwAREREdi6dSusrKwQERHBNcSIiIioRhJBxAWuLl68iIMHDyI5ORk3btxAYWEhpFIpOnToAA8PDwwaNAh2dnZiDa9BkMsrcP/+ozrvV0dHC1JpS+TlPeLzB/WIddYM1lkzWGfNYa01o77qbGrasnE8rG9ra/tcz34RERERNWZ8gpyIiIhIJAxiRERERCJhECMiIiISCYMYERERkUgYxIiIiIhEwiBGREREJBIGMSIiIiKRMIgRERERiYRBjIiIiEgkDGJEREREImEQIyIiIhIJgxgRERGRSBjEiIiIiETCIEZEREQkEgYxIiIiIpEwiBERERGJhEGMiIiISCQMYkREREQiYRAjIiIiEgmDGBEREZFIGMSIiIiIRMIgRkRERCQSBjEiIiIikTCIEREREYmEQYyIiIhIJAxiRERERCJhECMiIiISCYMYERERkUgYxIiIiIhEwiBGREREJBIGMSIiIiKRMIgRERERiYRBjIiIiEgkDGJEREREImEQIyIiIhIJgxgRERGRSBjEiIiIiETCIEZEREQkEgYxIiIiIpEwiBERERGJhEGMiIiISCQMYkREREQiYRAjIiIiEgmDGBEREZFIGMSIiIiIRMIgRkRERCSSZhPE0tLSYGdnV+1HcnKyYp9Tp05hxIgRcHZ2xsCBA/H111+r3UdiYiL8/f3h5OQEb29vHD58WGPXSERERI2LjtgD0BSZTIZOnTph586dSttNTEwAAJmZmQgJCUFISAjWrl2Lv//+G7Nnz4a+vj5GjhypUh8ZGRkICQlBcHAwIiIiEB8fj7CwMJiamsLd3V0DV0lERESNSbMJYhcvXoSNjQ3atm1bY3tCQgIMDQ0xefJkAEDHjh0RFxeHkydPKoLYs/rYunUr7OzsMG3aNACAtbU10tPTERMTwyBGRERE1TSbW5MymQzW1tZPbDczM0N+fj4OHToEQRAgk8mQlpYGJycnlftITU2tFrj69u2LtLQ0CILw/BdBRERETUqzmRG7dOkSpFIp/P39kZOTA1tbW0ybNg2Ojo4AgMGDByM5ORkzZ85EWFgY5HI5fH19MX78eJX7yM7ORrt27ZTOa25ujuLiYuTl5cHU1LRWY9fRqfu8rK2tpfRfqh+ss2awzprBOmsOa60ZDaHOTSKIZWVlYcCAAU9sj4+PR2FhIYqKijBv3jxoa2sjNjYWgYGB2L9/P2xsbHDv3j3cvHkToaGh8PT0RHp6OlauXImoqCiEhobi9u3bz+yjpKQELVq0UDp31eeysrJaXZuWlgRSactaHasKY2ODeuub/ot11gzWWTNYZ81hrTVDzDo3iSBmYWGBuLi4J7abm5sjJSUFBgYG0NXVBQA4ODggPT0d27dvx+LFizF37lxYWlpiwoQJAIDu3btDEAQsWrQIgYGBsLS0fGYfenp61QJX1WcDg9r9IldUCCgoKKrVsU+jra0FY2MDFBQUQy6vqPP+qRLrrBmss2awzprDWmtGfdXZ2NhA5Vm2JhHEdHV1n/rsFgAYGxsrfdbS0oK1tTVycnIAVC5NERYWprSPs7MzysvLkZWVBVNT02f2YWlpidzcXKV9cnNzYWhoiFatWtXq2gCgvLz+/hDK5RX12j9VYp01g3XWDNZZc1hrzRCzzs3i5nNCQgJcXFxw48YNxbby8nJcuHABNjY2ACpn1WQymdJxMpkMEokEnTt3VqkPNzc3nD59WqmPpKQkuLq6QkurWZSaiIiI1NAs0oGrqyukUinCw8Nx7tw5yGQyhIeHIz8/H6NHjwYABAcH49tvv8W2bdtw48YNHD16FCtWrEBAQABMTExU6iMoKAhnz57FqlWrkJGRgU2bNuHIkSP44IMPxLt4IiIiarAkQjNZV+H69etYtWoVkpOTUVpaip49eyI8PBy2traKfQ4cOIDNmzfj2rVrsLCwwLBhwzBu3DjFM2Gq9JGQkICIiAhcvXoVVlZWmDJlCt58881aj1sur8D9+49qf+FPoKOjBam0JfLyHnHaux6xzprBOmsG66w5rLVm1FedTU1bqvyMWLMJYo0Vg1jjxjprBuusGayz5rDWmtEQglizuDVJRERE1BAxiFGjIEgkKCqvwN2HZSgqr4AgkYg9JCIioufWJJavoKZNLpFgw76zOHPxjmKbi11bTPR3hDbvrBMRUSPGGTFq0IQaQhgAnJHdwYb9ZzkzRkREjRqDGDVoxY/l1UJYlTOyOyh+LNfwiIiIiOoOgxg1aEUl5c/VTkRE1JAxiFGDZqj/9McYn9VORETUkDGIUYNmoKsNF7u2Nba52LWFga62hkdERERUdxjEqEGTCAIm+jtWC2NV35qU8FuTRETUiPG+DjV42oKAyf6OKH4sR1FJOQz1dWCgq80QRkREjR6DGDUKEkGAoY4WDI1aVG5gCCMioiaAtyaJiIiIRMIgRkRERCQSBjEiIiIikTCIEREREYmEQYyIiIhIJAxiRERERCJhECMiIiISCYMYERERkUgYxIiIiIhEwiBGREREJBKJIPBdMQ2ZIAioqKifXyJtbS3I5RX10jf9F+usGayzZrDOmsNaa0Z91FlLSwKJRKLSvgxiRERERCLhrUkiIiIikTCIEREREYmEQYyIiIhIJAxiRERERCJhECMiIiISCYMYERERkUgYxIiIiIhEwiBGREREJBIGMSIiIiKRMIgRERERiYRBjIiIiEgkDGJEREREImEQIyIiIhIJg1gzU1FRgcjISLzyyitwdnbGuHHjcOPGDbGH1ejl5+djwYIFePXVV+Hq6or33nsPqampivbExET4+/vDyckJ3t7eOHz4sIijbRquXLkCFxcX7N+/X7Ht/PnzCAwMhLOzM1577TVs27ZNxBE2bgcOHMCbb74JBwcHDBkyBD/++KOiLSsrCyEhIXB1dUW/fv2wdu1ayOVyEUfbeJWXl2PdunXw8vKCi4sLRo4ciT///FPRzt/Tz+/LL79EUFCQ0rZn1VWjf1cK1KxERUUJffr0EY4fPy6cP39eGDNmjDBo0CChtLRU7KE1asHBwYKPj4+QkpIiZGZmCosXLxYcHR2FjIwM4fLly4KDg4OwZs0a4fLly0JMTIzQvXt34dSpU2IPu9EqKysT/P39BVtbW2Hfvn2CIAjC/fv3hT59+gizZ88WLl++LOzdu1dwcHAQ9u7dK/JoG58DBw4I3bt3F2JjY4Vr164JGzZsEOzt7YU//vhDKCsrEwYNGiR8+OGHgkwmE3755Rehd+/ewrp168QedqMUGRkpeHh4CCdPnhSuXr0qzJ07V+jZs6eQk5PD39N1IDY2VrC3txcCAwMV21Spqyb/rmQQa0ZKS0sFFxcXYceOHYptDx48EBwdHYWDBw+KOLLG7erVq4Ktra2Qmpqq2FZRUSEMHDhQWLt2rTB//nzhrbfeUjpm+vTpwpgxYzQ91CZj9erVwqhRo5SCWHR0tNCvXz/h8ePHSvsNGjRIrGE2ShUVFYKXl5ewYsUKpe1jxowRoqOjhYMHDwovvfSSkJ+fr2jbvXu34Orqyn/Q1cLQoUOF5cuXKz4XFhYKtra2wk8//cTf088hOztbCAkJEZydnQVvb2+lIPasumr670remmxGLly4gEePHsHd3V2xzdjYGN27d0dKSoqII2vcpFIpvvrqKzg4OCi2SSQSSCQSFBQUIDU1VanmANC3b1+kpaVBEARND7fRS0lJwZ49e7BixQql7ampqejduzd0dHQU2/r27YurV6/i7t27mh5mo3XlyhXcvHkTvr6+Stu//vprhISEIDU1FT169ICJiYmirW/fvnj48CHOnz+v6eE2emZmZjh+/DiysrIgl8uxZ88etGjRAvb29vw9/Rz++ecf6Orq4ocffoCTk5NS27Pqqum/KxnEmpHs7GwAgKWlpdJ2c3NzRRupz9jYGJ6enmjRooVi208//YRr167hlVdeQXZ2Ntq1a6d0jLm5OYqLi5GXl6fp4TZqBQUFCAsLw7x586r9Pn5SnQHg9u3bGhtjY3flyhUAQFFREcaOHQt3d3e8/fbbOHbsGADWua7NnTsXurq6GDBgABwcHPD5558jMjISnTp1Yq2fw2uvvYaoqCh07NixWtuz6qrpvysZxJqR4uJiAFAKDACgp6eH0tJSMYbUJP3xxx+YPXs2Bg0ahP79+6OkpKRazas+l5WViTHERmvRokVwcXGpNlsDoMY66+npAQB/f6vh4cOHAIDw8HD4+Phg06ZN8PDwwMSJE5GYmMg617HLly+jVatW+OKLL7Bnzx74+/vj448/xvnz51nrevKsumr670qdZ+9CTYW+vj6Ayr/8q34OVP7GMzAwEGtYTcrRo0fx8ccfw9XVFatWrQJQ+Yf3fwNX1WfWXXUHDhxAamoqDh48WGO7vr5+tTpX/U/T0NCw3sfXVOjq6gIAxo4dCz8/PwBAt27dkJ6ejs2bN7POdej27duYMWMGtmzZAjc3NwCAg4MDLl++jKioKNa6njyrrpr+u5IzYs1I1TRrbm6u0vbc3FxYWFiIMaQmJTY2FlOmTIGXlxeio6MV/8KytLSsseaGhoZo1aqVGENtlPbt24d79+6hf//+cHFxgYuLCwBg4cKF+OCDD9CuXbsa6wyAv7/VUFUrW1tbpe02NjbIyspinevQX3/9hcePHys9XwoATk5OuHbtGmtdT55VV03/Xckg1ozY29vDyMgIycnJim0FBQVIT09Hr169RBxZ47dz50588sknGDlyJNasWaM0pe3m5obTp08r7Z+UlARXV1doafGPoKpWrVqFuLg4HDhwQPEDAEJDQ7F06VL06tULaWlpSutZJSUl4cUXX4SZmZlIo258evTogZYtW+Kvv/5S2n7x4kV06tQJvXr1Qnp6uuIWJlBZ55YtW8Le3l7Tw23Uqp5TkslkStsvXryIF154gb+n68mz6qrxvyvr/HuY1KCtWbNG6N27t3D06FGltVHKysrEHlqjlZmZKfTo0UOYNGmSkJubq/SjoKBAuHjxotCjRw8hIiJCuHz5svD1119zHbE68u/lK+7evSv06tVLCA8PFy5duiTs27dPcHBwEPbv3y/yKBufL774QnBxcREOHjyotI5YUlKSUFJSIgwcOFAYO3ascP78ecU6YlFRUWIPu9GRy+XCe++9J3h7ewuJiYnClStXhM8//1zo1q2b8Oeff/L3dB0JDw9XWr5Clbpq8u9KiSDw+/PNiVwux5o1a7B//36UlJSgV69eWLBgAaysrMQeWqMVHR2Nzz//vMY2Pz8/rFixAgkJCYiIiMDVq1dhZWWFKVOm4M0339TwSJseOzs7LF++HP7+/gCAs2fPYunSpUhPT0fbtm0xZswYBAYGijzKxmnz5s2IjY1FTk4OrK2tMWXKFAwcOBAAcO3aNSxevBipqakwMTHBW2+9hSlTpnCGtxYePHiAtWvXIj4+Hg8ePICtrS2mT5+O3r17A+Dv6bowa9Ys3Lx5E9u3b1dse1ZdNfl3JYMYERERkUj4zxciIiIikTCIEREREYmEQYyIiIhIJAxiRERERCJhECMiIiISCYMYERERkUgYxIiI6lFzWyGouV0v0fNiECOiWpkxYwbs7OywadMmsYfyXJKTk2FnZ6f0OpO6Oubbb7/FypUrn3eIjcavv/6K8PBwlfY9e/Ys3njjDcXLl9PS0jBkyBC4ubkhLCwMRUVFSvtv27YNwcHB1fpJTEzEsGHD8Pjx4+e/ACIRMIgRkdoKCwtx9OhR2NraYs+ePY16FqRHjx7Ys2cPevToUed9b9y4Efn5+XXeb0O1ZcsW3L59+5n7lZaWIjw8HDNnzkSLFi1QVlaGqVOnwsXFBatXr8Zff/2FjRs3KvZ/+PAhoqOj8fHHH1fry93dHR06dMCGDRvq9FqINIVBjIjUdujQIQDA3LlzcfXqVSQlJYk8otozMjKCs7MzjIyMxB5Ks7Fz507o6OgoXpmUmZmJ3NxczJgxA56ennjvvfdw6tQpxf7/+c9/0KdPnyeG5QkTJiAmJga5ubkaGT9RXWIQIyK17du3D+7u7ujbty86d+6M3bt3K7W/9tprmDVrltK2/fv3w87ODllZWXj48CG8vLzg7e2tuDUlCAJGjRoFDw8P3L9/v9o5t23bBnt7e+Tl5Sm2ffHFF7Czs0NiYqJi29GjR2Fvb4+cnBwAwMWLFxESEgJXV1e4urpi0qRJuHHjhmL/mm4zxsfHw9/fH46OjnjjjTdw6NAhvP7664iKilIaU2ZmJsaOHQsnJyd4eHhg1apVKC8vV9Tg5s2b+O677xTXXZOgoCDMmjUL0dHRePnll9GzZ09MnDgRN2/eVNpP1evYvXs3vLy84Orqit9//x0AcOLECbz77rtwdnZGv379sGDBAhQUFCiOvXXrluL9hk5OTnj//feRnp6uaM/KyoKdnR1+/PFHhIaGwsXFBb1798a8efMUtxCDgoJw+vRpnD59+qm3bcvKyrB582b4+PhUa9PX1wcA6OrqoqKiAgCQk5ODHTt2YOrUqTX2BwAODg5o3749Nm/e/MR9iBoqBjEiUsulS5fw999/Y/jw4QCA4cOH49dff8Xdu3dV7sPIyAhLly7F1atXER0dDaAyaCUnJ2PZsmUwNTWtdkz//v0hCILS7FvVz1NSUhTbEhIS0L17d1hYWODKlSt49913ce/ePaxcuRJLly7FjRs38N577+HevXs1ji0pKQkTJ06EpaUloqKiMHLkSCxcuLDGW27Lly9Hz549ER0djcGDB+M///mPIpSuX78ebdu2haenJ/bs2QNzc/Mn1uPXX3/F/v37MW/ePCxevBjnz59HUFAQiouLAUCt61i/fj3Cw8OxYMECuLi44Pjx4wgJCYGZmRnWrl2Ljz/+GEePHsW0adMAAPfv38e7776Lf/75B/Pnz8fq1atRUVGBkSNHIiMjQ6nvhQsXKm4Djh07Fnv37lXcQly4cCG6d++O7t27P/VWb3JyMnJycjBo0CDFthdeeAFSqRT79u3D/fv3ceTIEfTs2RMAEBUVBV9fX3Tu3PmJ9QMAb29vxUwtUaMiEBGpYfny5ULv3r2F0tJSQRAE4datW4K9vb2wceNGxT5eXl5CeHi40nH79u0TbG1thRs3bii2LViwQOjRo4cQHx8vODo6CosXL37qud944w1h/vz5giAIQlFRkdCjRw/Bz89PCAwMVOzTv39/ITIyUhAEQZg+fbrw8ssvC4WFhYr2vLw8oWfPnsKKFSsEQRCEpKQkwdbWVkhKShIEQRACAgKEoUOHChUVFYpjDh06JNja2ir6rTomIiJCsU9FRYXg6ekpTJo06al1+F+BgYFCjx49hOvXryu2/fPPP4Ktra2wc+dOta/jiy++UOrfz89PGD58uNL1HD58WBg0aJBw584dYc2aNYKDg4OQlZWlaC8tLRUGDBggTJkyRRAEQbhx44Zga2srfPzxx0p9BwUFCT4+PkrX8u9fi5p89tlngpubW7Xtx48fF/r27SvY2dkJo0ePFvLy8oTLly8Lrq6uQm5urnDs2DHBz89PeOutt4Tff/+92vG//PKLYGtrK1y+fPmp5ydqaDgjRkQqe/z4MX744QcMHDgQJSUlKCgoQMuWLdGzZ0988803ittJqgoLC4OFhQXGjx+PDh06ICws7Kn79+/fX/HsUFpaGnR1dTFq1Cj89ddfKCsrw+XLl3Hr1i30798fQOXsVu/evaGvr4/y8nKUl5fDyMgIbm5uSs8gVSkrK8OZM2cwaNAgSCQSxXZvb2/o6OhU29/NzU3xc4lEgg4dOijd8lOVq6srOnbsqPjcvXt3dOzYUTHTp851dOvWTfHzkpISpKenY+DAgUrX8+abb+Knn35CmzZtkJiYiG7dusHCwkLRt5aWFl599dVqfTs7Oyt9bteuXbVvNz7LjRs30KFDh2rb+/fvj8TERJw5cwabN29G69atERERgaCgIGhpaeGjjz7ChAkT8MEHH2DSpEnVZgKtrKwA4Im3gIkaqur/ZyEieoL4+Hjcu3cPe/fuxd69e6u1nzx5Ep6enir317JlSwwaNAibNm2Cu7u74hmhJ/H09MTmzZuRlZWFxMREuLq6wt3dHaWlpfjrr79w7tw5tG3bFi+99BIAID8/H3FxcYiLi6vWV023P/Pz8yGXy2FmZqa0XVtbG61bt662v4GBgdJnLS2tWn2D1MLCoto2MzMzPHjwQDEuVa/D0NBQ8fMHDx5AEIRq1/Nv+fn5uHbt2hNvJVbdHgXq5nofPnxYrZ9/q2pLTU3Fn3/+iVWrVuHIkSOwsrLC66+/DgBYt24dEhIS4OfnV+24wsJCtcZDJDYGMSJS2b59+9CxY0csXbpUabsgCJg8eTJ2796tCGJyuVxpn5pmTi5evIjt27ejW7du2LVrF4YOHQonJ6cnnt/NzQ1GRkZITExEUlIS3njjDVhYWOCFF15AcnIy0tLS0L9/f8XsT6tWrfDyyy/XuP5UTTNcZmZm0NXVrfa8W0VFRb0uQ/HvLyBUuXv3Ljp16gRA/euoYmRkBIlEUu3LD6WlpUhKSoKTkxNatWqF3r17P3E2skWLFupcyjNJpVKVvt0YERGB8ePHw8jICPfv34eJiYmizdjYGHfu3FHavyq0SqXSOh0vUX3jrUkiUsmdO3dw8uRJDBkyBH369FH60bdvX3h7e+PEiRPIycmBkZERsrOzlY5PS0tT+lxeXo5Zs2ahU6dO2L17N+zt7REeHo7S0tInjkFXVxceHh749ddfcf78efTu3RsA0LdvX8THxyM1NRVeXl6K/Xv37o3Lly+jW7ducHBwgIODA1566SVs2bIFv/zyS7X+tbW14erqil9//VVp+7FjxxTfhlSHlpZq/4tNS0tTCmPnzp1DVlYW3N3da3UdVVq2bIlu3brh+PHjStsTEhLw4YcfIjc3F71798aVK1fw4osvKvp2cHDA999/j71790JbW7tOr7d9+/bIzs5+6kzakSNHcOfOHQQEBAConPX7dzi+c+dOtVm+qm/Jtm/fXuXxEjUEDGJEpJIDBw6gvLwcQ4YMqbF9+PDhkMvl+Oabb+Dl5YWUlBR8+eWXSEpKwrJly6qtNRYdHY309HR8+umn0NfXxyeffILr16/j888/f+o4PD09cfz4cejp6SluQfbp0wd///03JBIJXn75ZcW+EydOxPXr1xESEoKjR4/i5MmTmDJlCg4fPgx7e/sa+w8NDcWFCxcQGhqKhIQE7N69G/PnzwcApeesVGFsbIz09HScPn0aJSUlT9yvuLgYH3zwAY4ePYrvv/8ekydPhq2trWKJh9pcx7+v5++//8b06dORkJCA/fv3Y/HixRg4cCBsbW0xevRoVFRUYPTo0YiLi0NiYiLmz5+P7du348UXX1T7eq9cuYLExETFDNX/8vDwQGFhIS5evFhje3l5OT7//HOEhoYqZuP69euH27dvY9OmTdi0aRPu3LmDfv36KR2XlpYGKysrtcdMJDYGMSJSyf79+9G1a1fY2trW2N6zZ09YWVnh22+/RUhICN5++218/fXXmDBhAu7cuaN0O/PChQuIjo7Ge++9B1dXVwCVK9yPGjUKW7durTZ79m+enp6QSCRwdXVV3Jbr06cPJBIJ+vTpo/T8kb29PXbs2AGJRIKwsDCEhobizp07+OKLL5SWT/g3Nzc3REVF4cqVK5g4cSI2b96sCGItW7ZUq2ZjxozB3bt3MXbsWJw7d+6J+7m5ucHLywtz587FsmXL4O7ujm3btimCSG2uo4qXlxeio6Nx/fp1TJo0CevWrYOvry8iIiIAVD6ftnv3bnTo0AGLFi3C+PHjcfbsWSxduhSjR49W63pHjhwJXV1djBs3DgkJCU+8VjMzM5w4caLG9j179qBFixYYOnSoYlu7du2wbNkybNmyBdu3b8dnn31W7bm6kydPwtvbW63xEjUEEqE2T5YSETVRv/76K9q1a6f08PqlS5fg4+ODDRs2YMCAAXV6vqCgIADA9u3b67TfhmzTpk3YtWsXfv75Z7VnGWuSmpqKMWPG4OjRo09dr42oIeKMGBHRv/z2228YM2YMvv32W6SmpuLw4cOYNm0aunTpUu12GNVOQEAAKioqcOTIkTrpLyYmBu+//z5DGDVK/NYkEdG/hIeHQ19fHxs3bkRubi5at26NV155BTNmzICenp7Yw2sS9PX1ERERgVmzZmHAgAHP9c3MxMRE3Lp1C5GRkXU4QiLN4a1JIiIiIpHw1iQRERGRSBjEiIiIiETCIEZEREQkEgYxIiIiIpEwiBERERGJhEGMiIiISCQMYkREREQiYRAjIiIiEgmDGBEREZFI/h/G8cntQcelXgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data = study.trials_dataframe().query('user_attrs_trial_ran==True') #drop any pruned/erroneous trials\n", + "data.columns = [i.split('__')[0] for i in data.columns] # remove algorithm hash from columns\n", + "ax = sns.scatterplot(data=data, x=\"params_aux_weight_pc\", y=\"value\")\n", + "ax.set(xlabel=\"Aux weight percent (%)\", ylabel=f\"Ojbective value\\n({default_reg_scoring})\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hence we can conclude that 100% weighting of the side information produces the most performant `ChemProp` model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combining ChemProp & shallow models (only recommended for large no. trials & long run times)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Above described how ChemProp is by default split from shallow methods. Users can override this using the advanced functionaility when `split_chemprop`=False. In this situation `QSARtuna` will optimise `ChemProp` with the other shallow methods:" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " split_strategy=Stratified(fraction=0.75),\n", + " deduplication_strategy=KeepMedian(),\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(),\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " ChemPropClassifier.new(epochs=4),\n", + " RandomForestClassifier.new(n_estimators={\"low\": 5, \"high\": 5}),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " random_seed=42,\n", + " n_trials=10, # run one random forest classifier trial\n", + " split_chemprop=False, # set to false to run ChemProp along side other algorithms\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Combining ChemProp and traditional methods in this way means the potential search possible in `QSARtuna` comprises some incompatible sub-spaces; for example, `ChemProp` is only compatible with SMILES-based descriptors, whilst traditional methods are incompatible with SMILES. In the following examples, we consider the following search space: \"Valid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pruning is an effective method to handle such incompatible algorithm-desciptor pairs (grey) to skip any incompatible tials that use non-SMILES descriptors with `ChemProp` and _vice-versa_, when any SMILES-based descriptors are trialed with non-`ChemProp` algorithms. \n", + "\n", + "This is only recommended for advanced users, when the no. trials is >100, since the optimiser has to learn which descriptors and methods are compatible at the same time as optimising for the most performative pairs.\n", + "\n", + "_What is pruning?_\n", + "\n", + "Pruning is an `Optuna` feature [originally designed](https://optuna.readthedocs.io/en/v2.0.0/tutorial/pruning.html) to automatically stop unpromising trials early in training.\n", + "\n", + "_How/why is pruning implemented in QSARtuna?_\n", + "\n", + "Instead of the original intention of pruning _unpromising trials_ due to poor performance, `QSARtuna` ensures `Optuna` prunes _incompatible algorithm-desciptor pairs_, so the sampler will not trial incomptaible settings again. Duplicated trials are also pruned, to avoid repeatedly suggesting the same hyerparameters. Pruning the trial (instead of returning a cached result) explicitly tasks the sampler to avoid identical parameters.\n", + "\n", + "Now let us consider the following run:" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:13,577] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:21:13,629] Trial 0 finished with value: -inf and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.9525489095524835, 'descriptor': '{\"name\": \"SmilesAndSideInfoFromFile\", \"parameters\": {\"file\": \"../tests/data/DRD2/subset-50/train_side_info.csv\", \"input_column\": \"canonical\", \"aux_weight_pc\": {\"low\": 0, \"high\": 40, \"q\": 10}}}', 'aux_weight_pc__cfa1990d5153c8812982f034d788d7ee': 30}. Best is trial 0 with value: -inf.\n", + "[I 2024-07-02 13:21:13,777] Trial 1 finished with value: -4824.686269039228 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.7731425652872588, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 1 with value: -4824.686269039228.\n", + "[I 2024-07-02 13:21:13,819] Trial 2 pruned. Incompatible subspace\n", + "[I 2024-07-02 13:21:13,849] Trial 3 pruned. Incompatible subspace\n", + "[I 2024-07-02 13:21:13,997] Trial 4 finished with value: -4409.946844928445 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.791002332112292, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 4 with value: -4409.946844928445.\n", + "[I 2024-07-02 13:21:14,021] Trial 5 pruned. Incompatible subspace\n", + "[I 2024-07-02 13:21:14,167] Trial 6 finished with value: -5029.734620250011 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 23.329624779366306, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00015024763718638216, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -4409.946844928445.\n", + "[I 2024-07-02 13:21:14,196] Trial 7 pruned. Incompatible subspace\n", + "[I 2024-07-02 13:21:14,228] Trial 8 pruned. Incompatible subspace\n", + "[I 2024-07-02 13:21:14,269] Trial 9 pruned. Incompatible subspace\n", + "[I 2024-07-02 13:21:14,523] Trial 10 finished with value: -4396.722635068717 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 17, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 10 with value: -4396.722635068717.\n", + "[I 2024-07-02 13:21:14,559] Trial 11 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:21:14,753] Trial 12 finished with value: -4030.4577379164707 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 30, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -4030.4577379164707.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 17, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-4396.722635068717]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:14,790] Trial 13 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:21:14,960] Trial 14 finished with value: -4030.4577379164707 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 12 with value: -4030.4577379164707.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 30, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-4030.4577379164707]\n" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\",\n", + " test_dataset_file=\"../tests/data/DRD2/subset-50/test.csv\"\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), # NB: The first 2 descriptors are incompatible with ChemProp \n", + " MACCS_keys.new(),\n", + " SmilesAndSideInfoFromFile.new(file='../tests/data/DRD2/subset-50/train_side_info.csv',\\\n", + " input_column='canonical',\n", + " aux_weight_pc={\"low\": 0, \"high\": 40, \"q\": 10}\n", + " ), # NB: This is only compatible only with ChemProp\n", + " ],\n", + " algorithms=[\n", + " SVR.new(), # NB: The first 6 regressors are incompatible with SMILES descriptors \n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ChemPropHyperoptRegressor.new(epochs=4) # NB: ChemProp only compatible with SMILES\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=15,\n", + " random_seed=4, # seed 4 ensures sampling of incompatible subspace for this example\n", + " n_startup_trials=10,\n", + " split_chemprop=False,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Consulting the `QSARtuna` output, we observe cases of e.g. \"`Trial 3 pruned. Incompatible subspace`\", which indicates an instance when the sampler has sampled an incompitble algo-descriptor pair. \n", + "\n", + "\"`Trial 13 pruned. Duplicate parameter set`\" is an example of pruning a duplicated trial parameter suggestion.\n", + "\n", + "N.B: \"`Trial 0 finished with value: -inf`\" can occur when the very first `Optuna` trial comprises incompitble algo-descriptor pairs (`-inf` is assigned instead of pruning, since `Optuna` does not allow pruning first trials)." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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MEAiBvafCOW7A3+TlGSiTqX81CqfD0cD2PB/1aeC/pykTnmxpJykTnmx9KRy4u3trkUfRJ4jaXok7+rVq+kaNG/evGnq9+OPPzJixAgKFiyI0Wg0H3d2dqZTp04MGzYsXdcVeZaZTGCPiVpl81C9tB9Ozg4YkkzExyeSxWslEREREZtJU8FUt27dVPcmsiatG9fGxcVZXQnP3t6ehISENF9T5HlhNCbh6GCHZ3YXLYUsIiIiYmNpKpgmTZqUroIprcqWLcunn37KK6+8YtG2ZcsWypQpk+HXFBERERERSas0FUwtW7Z8Ihfv168f7733Hm+88QavvPIKBoOBb775hjlz5vDrr79qdTkREREREbGpR9qH6dixY+zfv5/4+Hjzi+gmk4no6GgOHz7MF198kaZxAgMDWb58OdOnT2fJkiWYTCZWrFjBiy++yKJFi6hWrdqjhCciIiIiIpIh0l0wrV27lgkTJqS6YpednR01a9ZM81h79+4lICCAdevWERsby+3bt8mWLVu6N78VERERERF5EtK95uWaNWt4+eWX2b9/P506deLtt9/mt99+4+OPP8bZ2ZnXX389zWP16dOH7777DgAXFxd8fX1VLImIiIiIyFMj3QVTSEgIrVu3JkeOHJQpU4bDhw/j4uLCq6++yvvvv8+qVavSPJaHhwcuLi7pDUFERERERCRTpPuRPEdHR3ORU7BgQS5dukRCQgKOjo5UqlQpXRvNduvWjQkTJnDhwgVKlSqFm5ubRZ/KlSunN0QREREREZEMke6C6YUXXuDHH3+katWqFC5cmKSkJH7//XcCAwMJDQ1N11hjxowBYObMmQApli43mUwYDIY07+kkIiIiIiKS0dJdMHXs2JHevXsTFRXFpEmTqFevHkFBQTRs2JAtW7ZQqVKlNI+Vnsf3REREREREMlu6C6b69euzcOFCzp07B8D48eMZNGgQ69ato2zZsowePTrNY1WpUiW9lxcREREREck06S6YjEYjtWvXpnbt2gB4eXmxbNmyRw4go/Z0EhERERERyWjpLphq1qxJkyZNeOONNyhbtuxjXTwj93QSERERERHJaOleVrxp06bs2LGDt99+m0aNGrFw4UKuXLnySBfPyD2dREREREREMlq6C6aRI0eya9culi1bRmBgIMuXL6dBgwa0bduW9evXc+fOnTSPlZF7OomIiIiIiGS0dBdMkLz8d/Xq1ZkwYQK//vor8+fPJ0+ePIwbN45atWqleRxrezoBVKpUiYsXLz5KeCIiIiIiIhnikQqm+xITE/n111/Ztm0bu3btAqB69eppPv/+nk5Aij2dgHTv6SQiIiIiIpLR0r3og8lkYt++fWzdupXvv/+e27dvU65cOfr27Uvjxo3x8vJK81gZuaeTiIiIiIhIRkt3wVSrVi1u3rxJ3rx5ad26NW+88QaFChV6pItn5J5OIiIiIiIiGS3dBVPdunV5/fXXCQwMzJAAMnJPJxERERERkYyU7oJp/PjxGXbxq1evPrRP3rx5M+x6IiIiIiIi6ZHugikj1a1bF4PB8MA+p06dyqRoREREREREUrJpwTRp0iSLgik6OppDhw6xf/9+Jk2aZKPIREREREREbFwwtWzZMtXjbdq0YfLkyWzZssX8fpOIiIiIiEhme6x9mJ6kunXr8tNPP9k6DBERERERycIeeYbp559/Zs+ePYSHhzNw4EBOnTpF6dKlyZcvX4YE9vvvv+PgYNMJMBERERERyeLSXZHExMTQq1cv9uzZQ7Zs2bh37x5dunThs88+4+TJk6xZs4bixYunaazhw4dbHEtKSiI0NJSDBw/y5ptvpjc8ERERERGRDJPugmnGjBmcOHGCFStWEBgYSJkyZQCYOnUqXbp04eOPP2bu3LlpGmv//v0WxwwGA9myZaNr16507949veGJiIiIiIhkmHQXTN9++y0DBw6kWrVqGI1G8/HcuXPTo0ePdO3TtHPnzvReXkREREREJNOke9GHqKgoq+8p5ciRg+jo6McOSkRERERE5GmQ7hmm4sWLs2XLFmrWrGnRtnPnzjS/vwRp27j2PoPBwA8//JDmsUVERERERB5XugumHj160Lt3byIjI6lTpw4Gg4GDBw+yceNG1q1bx/Tp09M8VosWLVizZg2QXDz5+voSGRnJL7/8wtWrV2nUqBEuLi7pDVFERERERCRDpLtgql+/PtOmTWP69On8/PPPAEyZMgUfHx/Gjh1Lo0aN0jzW3bt3KVy4MEuXLsXd3d18PDExkZ49e5I9e/Z0vRMlIiIiIiKSkR5po6NmzZrRrFkzzp8/T2RkJB4eHhQpUgQ7u/S9ErVp0yYmT56colgCcHBwoG3btgwYMEAFk4iIiIiI2Ey6C6ZevXrRvHlzateuTZEiRR47gMjIyFSPh4SE4Ozs/Njji4iIiIiIPKp0r5IXEhJCnz59qFmzJmPGjOHIkSOPfPHatWszffp0du3aZT5mMpn4/vvv+fjjj2nWrNkjjy0iIiIiIvK4DCaTyZTek86dO8c333zDtm3buHTpEvnz5+f111/njTfeoGDBgmke5/bt23Tu3Jnjx4/j6OiIp6cnERERGI1GXn75ZebMmYOTk1N6w3uuGI1J3Lp1z9ZhPFEODnZ4ebkTEXGPxMQkW4fzVFBOLCknqVNeLCknqVNeLD2pnHh7u2Nvn+6fSYvIU+qRCqZ/++OPP9i2bRs7duzg2rVrlCtXjs8//zzN55tMJn766ScOHz7M7du38fLyonr16lSvXv1xwnpuqGDKmpQTS8pJ6pQXS8pJ6pQXSyqYRCQtHmnRh3/z9/enaNGilCxZkrCwMP7+++90nW8wGKhTpw516tQBklfIu3v37uOGJSIiIiIi8tge6ccf0dHRfP3113Tv3p2aNWvy4Ycf4ujoyOzZs/nll1/SPE5iYiJz585ly5YtAOzfv58aNWpQvXp1OnTowO3btx8lPBERERERkQyR7oKpX79+1KhRg6FDh3Lnzh0++OADfv31V2bPnk29evVwcEj7pNXs2bNZsGABUVFRAEyYMAFPT0+GDx/O33//na5NcEVERERERDJauh/JO3PmDF27duX1118nf/78j3XxrVu3MnDgQNq0acO5c+f4888/mTJlCs2bN8fT05OPPvpI+zCJiIiIiIjNpLtg2r59e4ZdPDw8nPLlywPw008/YWdnx8svvwyAn58fd+7cybBriYiIiIiIpFeaCqbhw4fTs2dPChQowPDhwx/Y12AwMGnSpDRdPHfu3ISEhBAYGMjOnTt54YUX8Pb2BuDo0aP4+fmlaRwREREREZEnIU0F0/79++nQoYP59xmladOmTJ48mS1btnD48GFGjx4NwMSJE/nss8/o3r17hl1LREREREQkvdJUMO3cuTPV3z+u/v374+bmxsGDBxk0aBCtW7cGkvd26tSpEz179sywa4mIiIiIiKRXulfJGz58OJcvX0617fz58+maFTIYDHTr1o0lS5bQtWtX8/F169YxcOBA7OySwzOZTAwfPpyrV6+mN1wREREREZFHlqYZpn8XKl999RX169fH3t7eot+uXbvYs2dPxkX3X0lJSWzatIm2bduSN2/eDB9fREREREQkNWkqmMaNG8euXbuA5Fmh3r17p9rPZDJRo0aNjIvuf8YWERERERHJTGkqmMaPH8+ePXswmUyMGDGCHj164O/vn6KPnZ0dHh4eVK1a9YkEKiIiIiIiktnSVDD5+vrSokULIHmGqXbt2nh4eJgfy4uNjSUhIYHs2bM/uUhFREREREQyWboXfWjatCmzZs3i7bffNh87cuQI1atXZ+rUqSQlJWVogCIiIiIiIraS7oJpzpw5fP311zRt2tR87MUXX2Tw4MF88cUXLFmyJEMDFBERERERsZU0PZL3b1u2bGHo0KG8++675mOenp689957ODg4sGrVKt5///0MDVJERERERMQW0j3DFBERQYECBVJtK1KkCKGhoY8dVGoMBkOGjXXo0CFeeOEF9u/fn+L4hQsXeP/99wkICKBGjRqMHz+emJgYc3tSUhKzZ8+mVq1aVKhQga5du1rsSXXq1Cnatm1LhQoVqFu3LqtWrcqwuEVEREREJHOlu2AqUqQIO3bsSLVt586dFCxY8LGDSk1GLSt+584dgoKCLN61ioiIoG3btjg4OLB+/XqmTZvG999/z9SpU8195s+fz6effsqHH37IunXrSEpKokuXLsTHx5vH6NixI/7+/mzYsIFevXoRHBzMhg0bMiR2ERERERHJXOl+JK99+/YMGzaMyMhI6tevj4+PD7du3eLHH3/k22+/ZfLkyekO4vbt28TExKS6YETevHmxt7fn9OnT6R43NWPHjqVAgQJcuXIlxfE1a9bg4ODAzJkzcXZ2plixYvTt25fPPvsMk8lEQkICy5YtY/DgwdSuXRuAmTNnUqtWLb777juaNm3KF198gaOjI+PHj8fBwYGiRYty6dIlPvnkE1q1apUh8YuIiIiISOZJd8HUvHlz7t27x/z58/nuu+/Mx728vPjggw9o3rx5mse6dOkSQ4cO5ffff7fa59SpU+kN0arNmzdz9OhRFixYwOuvv56i7ddff6VBgwY4Ozubj7311lu89dZbAJw+fZp79+5RvXp1c7uHhwcvvvgiBw8epGnTphw6dIgqVarg4PBPWqtVq8aiRYu4ceMGOXPmzLB7ERERERGRJy/dBRNAmzZtaN26NRcuXCAyMhIPDw+KFCmCnV36nvD78MMPuXjxIr1798bPzy/d56dHSEgIEydOZP78+bi7u1u0X7hwgXr16jF5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J4PBYG4zmUwYDAZOnTqV5vFEREREREQyUpoKpkqVKjFgwABmzJjB1q1bqVOnDvny5cPBwYErV67w3XffceHCBYYOHUq5cuXSfPGpU6fi7+9P165dyZkz5yPfhIiIiIiIyJOQ5o1r33//fYoXL87cuXNZsmRJirYKFSqwePFiatasma6LX716lYULF/LSSy+l6zwREREREZHMkOaCCaBOnTrUqVOHiIgIrly5gslkIl++fOla6OHfSpQowbVr1x7pXBERERERkSctXQXTfV5eXnh5eT32xYcPH87gwYMxGo1UqFCBbNmyWfTJmzfvY19HRERERETkUTxSwZRROnbsSGJiIqNHj06x4MO/adEHERERERGxFZsWTOPGjbPl5UVERERERB7IpgVTixYt0tTPZDIxYsQI+vTpo0f0REREREQk09jZOoC0SEpKYtOmTURERNg6FBERERERyUKeiYIJkmeZREREREREMtMzUzCJiIiIiIhkNhVMIiIiIiIiVqhgEhERERERsUIFk4iIiIiIiBUqmERERERERKx4Zgomg8Fg6xBERERERCSLeWYKJi0rLiIiIiIimc3Blhe/evWq1TY7Ozvc3Nzw8PDA3t6e06dPZ2JkIiIiIiIiNi6Y6tat+9BH7XLkyEH79u3p2bNnJkUlIiIiIiKSzKYF05QpUxg9ejRVqlShadOm+Pj4cPPmTb777jt++uknevbsyb1791i4cCGenp60bt3aluGKiIiIiEgWY9OCaevWrTRp0oTJkyenON68eXPGjBnD8ePHzcXSZ599poJJREREREQylU0XfThw4ABNmzZNta1hw4bs27cPgICAAC5fvpyZoYmIiIiIiNi2YPL09LS6mMPp06fJli0bANHR0bi6umZmaCIiIiIiIrZ9JK9Zs2bMnj0bBwcHGjVqhLe3Nzdv3uT7779n7ty5vPvuu9y+fZuVK1dSvnx5W4YqIiIiIiJZkE0Lpv79+3Pz5k2mTJnClClTzMft7Oxo1aoVAwYMYMeOHZw8eZKVK1faMFIREREREcmKDKanYEfYv//+m/379xMREYGvry8VK1akQIECANy+fRtXV1ecnJxsHKVtGI1J3Lp1z9ZhPFEODnZ4ebkTEXGPxMQkW4fzVFBOLCknqVNeLCknqVNeLD2pnHh7u2Nvb9O3HkQkA9l0hum+/PnzEx0dTXh4OBUrViQxMdHcliNHDhtGJiIiIiIiWZnNC6bNmzczffp0rl+/jsFgYP369cyZMwdHR0emT5+eZWeWRERERETE9mw6X7xt2zaGDh1KtWrVmDFjBklJydPhDRo04Oeff2b+/Pm2DE9ERERERLI4m84wLVy4kHfffZexY8diNBrNx1u1asWtW7f44osv6N+/v+0CFBERERGRLM2mM0wXLlygQYMGqbaVL1+esLCwTI5IRERERETkHzYtmHx8fDh37lyqbefOncPHx+eJXPfQoUO88MIL7N+/P8XxPXv20KpVKypUqED9+vVZunRpiva4uDjGjRtH9erVCQgIYNCgQdy6dStFn71799KyZUvKly9Po0aN2Lp16xO5BxERERERefJsWjA1btyY2bNns337duLj4wEwGAwcP36c+fPn06hRowy/5p07dwgKCjK/L3Xf+fPn6datG3Xq1GHLli0MHDiQ2bNns3btWnOfsWPH8uuvvzJnzhxWrlzJ+fPn6du3r7n93LlzdOvWjVq1arFx40beeustgoKC2Lt3b4bfh4iIiIiIPHk237j27Nmz9O/fHzu75NqtXbt2REdHExgYSL9+/TL8mmPHjqVAgQJcuXIlxfFdu3bh5uZG7969AShQoADbtm3jl19+oU2bNoSFhbFp0yYWLlxIYGAgADNmzKBRo0YcPXqUgIAAVq5cScmSJRkwYAAARYsW5eTJkyxZsoTq1atn+L2IiIiIiMiTZdMZJicnJ5YsWcLSpUvp1KkTb731Fu+88w4LFixg1apVuLi4ZOj1Nm/ezNGjRxkxYoRFm4+PD5GRkXzzzTeYTCbOnDnD4cOHKV++PACHDx8GoFq1auZzChcujK+vLwcPHgSSH/X738KoWrVqHD58mKdgf2AREREREUknm+/DBFCjRg1q1KjxRK8REhLCxIkTmT9/Pu7u7hbtr732Gvv372fIkCEEBQVhNBpp1qwZ3bt3ByAsLAwvLy+cnZ1TnJc7d25CQ0MBCA0Nxc/Pz6I9JiaGiIgIvL29Hyl2B4fne7fw+7uha1f0fygnlpST1CkvlpST1CkvlpQTEUkLmxdMu3fv5scffyQmJsbivSKDwcCkSZMeOkZISAj16tV74DWGDBnCO++8Q2BgICEhIRZ9bt68yZUrV+jbty+vvPIKJ0+eZOrUqcyZM4e+ffsSExOT6ia6zs7OxMXFARAbG2vR5/7n++9opZednQEvL8sC73nk4eFq6xCeOsqJJeUkdcqLJeUkdcqLJeVERB7EpgXTsmXL+Oijj3B2dsbb2xuDwZCi/X8/W+Pr68u2bdustq9bt46YmBj69Oljtc/IkSPJkycPPXr0AODFF1/EZDIxduxY2rZti4uLS6pFT1xcHK6uyX/ROjs7W/S5//l+n/RKSjIRFRX9SOc+K+zt7fDwcCUqKgajMenhJ2QByokl5SR1yosl5SR1youlJ5UTDw9XzVqJPEdsWjCtWbOGZs2aMXHixFRnb9LK0dGRokWLWm3fuHEj4eHhVK1aFcD8PlHXrl1p3rw548eP5/DhwwQFBaU4r0KFCiQmJhISEoKfnx+RkZHEx8eniDU8PBxfX18A8uTJQ3h4eIoxwsPDcXNzI3v27I98f4mJWeMfNqMxKcvca1opJ5aUk9QpL5aUk9QpL5aUExF5EJsWTDdu3ODNN998rGIpLVavXk1iYqL5c1hYGO3atWPChAnmd6d8fX05c+ZMivPOnDmDwWCgYMGC+Pr6kpSUxOHDh80LO1y4cIGwsDAqV64MQGBgIAcOHEgxxr59+6hYsaJ5FUAREREREXl22PS7+BdffJE///zziV8nX758FCxY0Pwrb968QHKRdH9z3I4dO7J+/XpWrVrF5cuX+eGHH5gyZQqtW7cmR44c+Pr60qRJE0aNGsX+/fs5duwYAwcOpEqVKlSoUAFIXhL92LFjBAcHc+7cOZYtW8b27dvp0qXLE7/HtLKzM5BgglvRCdyKTiDBZNBjAyIiIiIiVth0hmnEiBH0798fNzc3ypcvn+p7PveLmyftnXfewdnZmeXLlzNjxgx8fX1p3bo1Xbt2Nff58MMPmTRpknmvppdffplRo0aZ24sXL878+fOZNm0aK1euJH/+/EybNu2p2YPJZDBw8u9I5m04xr2YBAA83J3o+3YFiuTJDkla+lxERERE5N8MJhtuEFS6dGmSkpIwmUxWF3g4depUJkf1dDEak7h1695jj2MwwK17CQya/YtFm50BZg54hexO9o99nUfh4GCHl5c7ERH39Az5fyknlpST1CkvlpST1Ckvlp5UTry93fX0hshzxKYzTBMmTLDl5bMWOzs2/PRXqk1JJtjyywXavlqCJP0jKiIiIiJiZtOCqUWLFra8fJaSaEzi79A7VtsvhUaRaDTZ9qU2EREREZGnTKZ/fxwUFMSNGzfSdU5oaCiDBg16QhFlDQ52dvj7Wl/avKCfBw72adv3SkREREQkq8j0gqlUqVI0bdqUCRMmcOzYsQf2PXbsGCNHjqRZs2a88MILmRThc8qURMs6xVJtsjNAs5qF9TieiIiIiMj/yPRH8jp16sQrr7xCcHAw77zzDrlz56Zs2bLkz58fV1dX7ty5w7Vr1zh69CgRERHUrl2btWvXUqJEicwO9bliMoF3NieGtKnE/A2/cy82eV+q7G6O9H27AtldHbRKnoiIiIjI/7DpKnlnz55ly5Yt7N+/n8uXL3Pnzh28vLzIly8fNWrUoGHDhpQsWdJW4T0VMmqVvPvs7A3EJZq4E50ABsju6oizg4Eko+2KJa3cZEk5saScpE55saScpE55saRV8kQkLWy66EOJEiX0blImSzKacDSAt7tjimMiIiIiImJJP/4QERERERGxQgWTiIiIiIiIFSqYRERERERErFDBJCIiIiIiYoUKJhEREREREStUMImIiIiIiFihgklERERERMQKFUwiIiIiIiJWqGASERERERGxQgWTiIiIiIiIFSqYRERERERErFDBJCIiIiIiYoUKJhEREREREStUMImIiIiIiFihgklERERERMQKFUwiIiIiIiJWqGASERERERGxQgWTiIiIiIiIFSqYRERERERErFDBJCIiIiIiYoUKJhEREREREStUMImIiIiIiFihgklERERERMQKFUwiIiIiIiJWqGASERERERGxQgWTiIiIiIiIFSqYRERERERErFDBJCIiIiIiYoUKJhEREREREStUMImIiIiIiFihgklERERERMQKFUwiIiIiIiJWqGASERERERGxQgWTiIiIiIiIFSqYRERERERErFDBJCIiIiIiYoUKJhEREREREStUMImIiIiIiFihgklERERERMQKFUwiIiIiIiJWqGASERERERGxQgWTiIiIiIiIFSqYRERERERErFDBJCIiIiIiYoUKJhEREREREStUMImIiIiIiFihgklERERERMQKFUwiIiIiIiJWZJmC6fDhw5QsWdLi1/79+8199u7dS8uWLSlfvjyNGjVi69atKcaIi4tj3LhxVK9enYCAAAYNGsStW7dS9HnYGCIiIiIi8uzIMgXTmTNn8Pf359dff03xKyAgAIBz587RrVs3atWqxcaNG3nr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fHZ3d09ruCIiIs8NFUwiIv9y6NAhhg4dSrt27ejcuTO+vr4AfPTRRxw+fDhDr3X//aCkpKQUx+/du5dh17hfFN13/fp1ILlw8vDwACAoKIgqVapYnKv3lERERPRInohICkePHiUpKYk+ffqYiyWj0ciePXsAy+LmcdyfNQoNDTUfO3funEWR8zh27dqV4vPWrVsxGAxUqVKFIkWK4OPjQ0hICGXLljX/8vX1Zfr06Zw8eTLD4hAREXlWaYZJRORfypUrB8D48eNp1aoVt2/fZu3atZw+fRpIfv/oQZvgpkfVqlVxcXFhypQp9OvXj3v37jF79mw8PT0zZHyAP/74g5EjR9K0aVP++OMPZs+ezZtvvkmhQoUAGDBgAKNHj8be3p46deoQFRXF/PnzCQsLo3Tp0hkWh4iIyLNKBZOIyL9UrVqV0aNHs3z5crZv307OnDmpWrUqc+fOpVevXhw+fJhXXnklQ67l4eHBnDlzmD59Or169SJfvnz07t07xV5Nj6tXr14cP36c7t27kz17drp06ULv3r3N7W+99Rbu7u4sWbKEzz//HDc3NypWrEhwcDAFChTIsDhERESeVQbTo7x9LCIiIiIikgXoHSYRERERERErVDCJiIiIiIhYoYJJRERERETEChVMIiIiIiIiVqhgEhERERERsUIFk4iIiIiIiBUqmERERERERKxQwSQiIiIiImKFCiYRERERERErVDCJiIiIiIhYoYJJRERERETEChVMIiIiIiIiVvw/lAgrGUwcPdcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data = study.trials_dataframe().query('user_attrs_trial_ran==True') #drop any pruned/erroneous trials\n", + "ax = sns.scatterplot(data=data, x=\"number\", y=\"value\",hue='params_algorithm_name')\n", + "ax.set(xlabel=\"Trial number\", ylabel=f\"Ojbective value\\n({default_reg_scoring})\")\n", + "sns.move_legend(ax, \"upper left\", bbox_to_anchor=(1, 1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As shown in the overview graph, `Optuna` never successfully samples/trials `ChemProp` with a compatible descriptor, as seen from it's absence in the generated plot. The pruned 8th trial is also missing due to the pruning. This highlights a limitation of combining `ChemProp` (and the associated descriptors) with other algorithms - it makes optimisation more complex, and not all combinations may be suggested. Aside from splitting ChemProp into separate trials, another mitigation strategy is to reduce the complexity of the search space, by removing some incompatible descriptors/traditional methods, to ensure ChemProp has more sampling success. Overall, this serves as a cautionary argument to split `ChemProp` trials (using `split_chemprop`=True)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pre-training and adapting ChemProp models (Transfer Learning)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Transfer learning (TL) to adapt pre-trained models on a specific (wider) dataset to a specific dataset of interest in a similar manner to [this publication](https://pubs.acs.org/doi/10.1021/acs.molpharmaceut.3c01124) can be performed in QSARtuna. This option is available for ChemProp models and employs the [original ChemProp package implementation](https://chemprop.readthedocs.io/en/latest/tutorial.html#pretraining).\n", + "For example, a user can perform optimisation to pre-train a model using the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:21:15,255] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:21:15,256] A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__e0d3a442222d4b38f3aa1434851320db': 'ReLU', 'aggregation__e0d3a442222d4b38f3aa1434851320db': 'mean', 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 100, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 50, 'depth__e0d3a442222d4b38f3aa1434851320db': 3, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'features_generator__e0d3a442222d4b38f3aa1434851320db': 'none', 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db'}\n", + "[I 2024-07-02 13:21:58,856] Trial 0 finished with value: -4937.540075659691 and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db', 'activation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 100.0, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 50.0, 'depth__e0d3a442222d4b38f3aa1434851320db': 3.0, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'ensemble_size__e0d3a442222d4b38f3aa1434851320db': 1, 'epochs__e0d3a442222d4b38f3aa1434851320db': 4, 'features_generator__e0d3a442222d4b38f3aa1434851320db': , 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2.0, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: -4937.540075659691.\n", + " \r" + ] + } + ], + "source": [ + "from optunaz.descriptors import SmilesFromFile\n", + "from optunaz.config.optconfig import ChemPropRegressor\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " ),\n", + " descriptors=[SmilesFromFile.new()],\n", + " algorithms=[\n", + " ChemPropRegressor.new(epochs=4),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")\n", + "_ = build_best(buildconfig_best(study), \"../target/pretrained.pkl\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The pretrained model saved to `../target/pretrained.pkl` can now be supplied as an input for the `ChemPropRegressorPretrained` algorithm. This model can be retrained with (or adapted to) a new dataset (`../tests/data/DRD2/subset-50/test.csv`) like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:23:02,954] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:23:02,997] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:23:47,043] Trial 0 finished with value: -5114.7131239123555 and parameters: {'algorithm_name': 'ChemPropRegressorPretrained', 'ChemPropRegressorPretrained_algorithm_hash': 'dfc518a76317f23d95e5aa5a3eac77f0', 'frzn__dfc518a76317f23d95e5aa5a3eac77f0': , 'epochs__dfc518a76317f23d95e5aa5a3eac77f0': 4, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: -5114.7131239123555.\n" + ] + } + ], + "source": [ + "from optunaz.config.optconfig import ChemPropRegressorPretrained\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/test.csv\",\n", + " ),\n", + " descriptors=[SmilesFromFile.new()],\n", + " algorithms=[\n", + " ChemPropRegressorPretrained.new(\n", + " pretrained_model='../target/pretrained.pkl',\n", + " epochs=ChemPropRegressorPretrained.Parameters.ChemPropParametersEpochs(low=4,high=4))\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we have the basics covered, we can now provide an example of how QSARtuna can compare the performance of local, adapted and global (no epochs for transfer learning) models within a single optimisation job in the following example:" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:23:47,172] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:23:47,174] A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__e0d3a442222d4b38f3aa1434851320db': 'ReLU', 'aggregation__e0d3a442222d4b38f3aa1434851320db': 'mean', 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 100, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 50, 'depth__e0d3a442222d4b38f3aa1434851320db': 3, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'features_generator__e0d3a442222d4b38f3aa1434851320db': 'none', 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db'}\n", + "[I 2024-07-02 13:24:09,495] Trial 0 finished with value: -5891.7552821093905 and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db', 'activation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 100.0, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 50.0, 'depth__e0d3a442222d4b38f3aa1434851320db': 3.0, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'ensemble_size__e0d3a442222d4b38f3aa1434851320db': 1, 'epochs__e0d3a442222d4b38f3aa1434851320db': 4, 'features_generator__e0d3a442222d4b38f3aa1434851320db': , 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2.0, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: -5891.7552821093905.\n", + "[I 2024-07-02 13:24:31,625] Trial 1 finished with value: -5891.7552821093905 and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db', 'activation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 98.0, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 40.0, 'depth__e0d3a442222d4b38f3aa1434851320db': 3.0, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'ensemble_size__e0d3a442222d4b38f3aa1434851320db': 1, 'epochs__e0d3a442222d4b38f3aa1434851320db': 4, 'features_generator__e0d3a442222d4b38f3aa1434851320db': , 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2.0, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: -5891.7552821093905.\n", + "[I 2024-07-02 13:24:53,140] Trial 2 finished with value: -5890.94653501547 and parameters: {'algorithm_name': 'ChemPropRegressorPretrained', 'ChemPropRegressorPretrained_algorithm_hash': '77dfc8230317e08504ed5e643243fbc2', 'frzn__77dfc8230317e08504ed5e643243fbc2': , 'epochs__77dfc8230317e08504ed5e643243fbc2': 0, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 2 with value: -5890.94653501547.\n", + "[I 2024-07-02 13:24:53,181] Trial 3 pruned. Duplicate parameter set\n", + "[I 2024-07-02 13:24:53,211] Trial 4 pruned. Duplicate parameter set\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'ChemPropRegressorPretrained', 'ChemPropRegressorPretrained_algorithm_hash': '77dfc8230317e08504ed5e643243fbc2', 'frzn__77dfc8230317e08504ed5e643243fbc2': , 'epochs__77dfc8230317e08504ed5e643243fbc2': 0, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}, return [-5890.94653501547]\n", + "Duplicated trial: {'algorithm_name': 'ChemPropRegressorPretrained', 'ChemPropRegressorPretrained_algorithm_hash': '77dfc8230317e08504ed5e643243fbc2', 'frzn__77dfc8230317e08504ed5e643243fbc2': , 'epochs__77dfc8230317e08504ed5e643243fbc2': 0, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}, return [-5890.94653501547]\n" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # test.csv supplied for fair comparison\n", + " test_dataset_file=\"../tests/data/DRD2/subset-50/test.csv\", # test.csv supplied for fair comparison\n", + " ),\n", + " descriptors=[SmilesFromFile.new()],\n", + " algorithms=[\n", + " ChemPropRegressor.new(epochs=4), # local\n", + " ChemPropRegressorPretrained.new(\n", + " pretrained_model='../target/pretrained.pkl',\n", + " epochs=ChemPropRegressorPretrained.Parameters.ChemPropParametersEpochs(low=0,high=0)) # global\n", + " , \n", + " ChemPropRegressorPretrained.new(\n", + " pretrained_model='../target/pretrained.pkl',\n", + " epochs=ChemPropRegressorPretrained.Parameters.ChemPropParametersEpochs(low=4,high=4)) #adapted\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=1,\n", + " n_trials=5,\n", + " n_startup_trials=0,\n", + " random_seed=1545,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "tl_study = optimize(config, study_name=\"my_study\").trials_dataframe()\n", + "\n", + "tl_study['epochs'] = tl_study.loc[:,tl_study.columns.str.contains('params_epochs'\n", + " )].fillna(''\n", + " ).astype(str\n", + " ).agg(''.join, axis=1).astype(float) # merge epochs into one column\n", + "\n", + "tl_study.loc[~tl_study['params_ChemPropRegressor_algorithm_hash'].isna(),\n", + " \"Model type\"]='Local' # Annotate the local model\n", + "\n", + "tl_study.loc[tl_study['params_ChemPropRegressor_algorithm_hash'].isna() \n", + " & (tl_study['epochs'] == 4), \"Model type\"] = 'Adapted' # Annotate the adapted model (TL to new data)\n", + "\n", + "tl_study.loc[tl_study['params_ChemPropRegressor_algorithm_hash'].isna() \n", + " & (tl_study['epochs'] == 0), \"Model type\"] = 'Global' # Annotate the global model (no TL)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1K1b12jbtq2xdOlSw26352kfrhg3blym54eZ4T34d//Uo7e+D69x5TX0tvfg37nSo2F4z/tw6dKlOf6fGzdunLF9+3ajRo0axvbt253bHD161Ojfv79Rr149IzIy0li4cGGW2lesWGG0atXKqF+/vvHoo48ae/fuze/WACBPWQzDMDwdMAEAAAAAN4fTMgEAAADABAh3AAAAAGAChDsAAAAAMAHCHQAAAACYAOEOAAAAAEyAcAcAAAAAJkC4AwAAAAATINwBAAAAgAn4eboAAPir559/Xh9//PF11wkPD9c777yT7bK+fftKUo7Ls9OuXTuFh4dr1qxZrheaz2rWrKmhQ4dq2LBhni4FAAAUUIQ7AAXKkCFD9PDDDzs/X7Jkifbu3avFixc7x4oVK5bj9pMmTcrT+gAAAAoqwh2AAqVSpUqqVKmS8/OSJUsqICBADRo0cGn76tWr51FlAAAABRvX3AHwSh999JFq166tDz/8UC1atFB4eLgOHjyovn37Ok/NlKRz585p8uTJatu2rerWravw8HA988wzio+Pd3lfixYt0l133aVvvvlG3bp1U926dXX33Xdr/fr1meqpWbNmlnnbtWun559/3vl5zZo19d577+n5559X48aNFR4ermnTpiktLU2zZ89W8+bN1axZM7344ouy2WyZ5rp48aKeffZZNWzYUBEREZo2bZouX76caZ2vv/5a9913n+rVq6cWLVpo2rRpSk1NzdLL4sWLFR4ersjISJ0/f97lfwsAAFBwceQOgNey2+166623NH36dCUlJalatWqZlhuGocGDB+v8+fN69tlnVbp0acXFxWnhwoWaNGmS3nzzTZf3dfr0aU2ZMkVPP/20KlSooDfffFPjxo1TvXr1suz3n7zyyivq2rWrFi9erM2bN2vVqlXaunWratWqpblz5+rnn3/WokWLVKVKFT3xxBPO7d555x21bt1aCxcu1JEjR7RgwQKdPHlSr732miRpw4YNevbZZ9WtWzeNHDlSf/75pxYsWKCDBw/q7bfflsVikSSdOHFCW7Zs0YIFC5ScnKwSJUq4VT8AACiYCHcAvNpTTz2lNm3aZLssMTFRQUFBGjdunJo0aSJJatasmf744w+9//77bu3n8uXLmj59uiIiIiRJlStXVtu2bbVlyxa3w1316tU1ZcoUSVdvDvPhhx/qypUrmjt3rvz8/BQZGakvv/xSP/30U6btqlWrptdee00+Pj5q3bq1LBaLZsyYoQMHDuj222/X3Llz1bJlS82dO9e5TeXKlfX4449ry5Ytzn+njIyMTP8mAADAHDgtE4BXu+OOO3JcZrVatXr1ajVu3Fjx8fH6/vvv9c477+inn35Senq62/v663V/5cqVk6RMpzy6qmHDhs6/+/r6KiwsTHXq1JGf3//9vi00NFQXLlzItF2nTp3k4/N/X7Y7duwoSYqNjdXhw4d16tQptWvXThkZGc6Ppk2bqlixYvr+++8zzXW9fzcAAOCdOHIHwKsFBwdfd/mnn36q+fPn6+TJkwoNDdUdd9yhIkWK3NC+goKCnH+/FrIMw3B7nuzu9vlPfUhSmTJlMn1eqlQpSVJKSoqSk5MlSZMnT9bkyZOzbJuYmJjp86JFi7paLgAA8BKEOwCmtWPHDo0bN059+/bVwIEDZbVaJUlz5szRzp07c3Vf165nczgcmcYvXbqUa/u4FuCuOX36tKSrIS8kJESS9Nxzzyk8PDzLtlxXBwCA+XFaJgDT2rVrlxwOh4YNG+YMdna7Xdu2bZOUNYjdjGtH406dOuUcO3ToUJZAdjO+/fbbTJ9v3LhRFotF4eHhqlq1qkqVKqX4+HjVq1fP+WG1WjVv3jzt3bs31+oAAAAFE0fuAJhW/fr1JUlTpkxRr169dP78ea1du1b79++XdPV6ues9EN0dzZo1U5EiRTRr1iyNGDFCly5dUlRUlEJDQ3Nlfkn69ddf9eKLL6pr16769ddfFRUVpfvvv1+VK1eWJI0aNUoTJ06Ur6+v2rZtq5SUFC1ZskQJCQmqU6dOrtUBAAAKJsIdANNq1qyZJk6cqLfffltffPGFSpcurWbNmmnx4sV65plntHPnTrVu3TpX9hUSEqJFixZp3rx5euaZZ1ShQgUNHTo007PwbtYzzzyjPXv26KmnnlLx4sX1xBNPaOjQoc7lDzzwgIoWLaoVK1bo/fffV3BwsBo1aqS5c+fq1ltvzbU6AABAwWQxbuRuAAAAAACAAoVr7gAAAADABAh3AAAAAGAChDsAAAAAMAHCHQAAAACYAOEOAAAAAEyAcAcAAAAAJkC4AwAAAAATINwBAAAAgAkQ7gAAAADABAh3AAAAAGAChDsAAAAAMIH/B/WlVFpJE2dYAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set_theme(style=\"darkgrid\")\n", + "default_reg_scoring= config.settings.scoring\n", + "ax = sns.scatterplot(data=tl_study, x=\"number\", \n", + " y=\"value\",hue='Model type')\n", + "ax.set(xlabel=\"Trial number\",ylabel=f\"Ojbective value\\n({default_reg_scoring})\")\n", + "sns.move_legend(ax, \"upper right\", bbox_to_anchor=(1.6, 1), ncol=1, title=\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this toy example we do not observe a large difference between the three model types, but in a real world setting a user can build the best model from the three model types evaluated." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ChemProp fingerprints (encode latent representation as descriptors)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is possible for ChemProp to provide generate outputs in the form intended for use as a fingerprint using the [original package implementation](https://github.com/chemprop/chemprop/tree/master?tab=readme-ov-file#encode-fingerprint-latent-representation). Fingerprints are derived from the latent representation from the MPNN or penultimate FFN output layer, which can be used as a form of learned descriptor or fingerprint." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "with open(\"../target/pretrained.pkl\", \"rb\") as f:\n", + " chemprop_model = pickle.load(f)\n", + "\n", + "ax = sns.heatmap(\n", + " chemprop_model.predictor.chemprop_fingerprint(\n", + " df[config.data.input_column].head(5),\n", + " fingerprint_type=\"MPN\",\n", + " ), # MPN specified for illustration purposes - this is the default method in QSARtuna\n", + " cbar_kws={'label': 'Fingerprint value'}\n", + ")\n", + "ax.set(ylabel=\"Compound query\", xlabel=f\"Latent representation\\n(ChemProp descriptor/fingerprint)\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output is n compounds as the input query in the rows by n latent representation features from the MPN in the columns. This output can then be used for any semi-supervise learning approach outside of QSARtuna, as required. Alternatively the last layer of the FFN can be used as so:" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + }, + { + "data": { + "image/png": "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UWlRVpqZ3vfll19iypQp6Ny5s9rzLrJx1U2bNsWsWbPw119/IS0tTZHeqlUrTJ06Fdu2bVMM4yIiIipNhBofJYWuri7Mzc0LJe8818x8rAMPAHz//fcf3Wf8+PEYO3YsevbsifXr16NJkyaKbf7+/tDS0spV3xsiIiIq/saMGYNFixYhISEBDg4OMDIyUtknvysI5DmYyaqDTlJSEh4+fAgjIyP4+fnlKh8zMzNs2bIFz549yzJS+/LLL9GwYUOcOHEir0UkIiIq1spiM9PMmTORkZGR5aKWmfK7gkCeg5n3O/O8Ly4uDoMHD0bt2rXzlF/16tWz3VarVi0MHTo0T/kREREVd2VlNNP75s6dW2h5q238s5mZGYYMGYL58+fnqimKiIiorJIVdQGKQJcuXQotb7VP5vLmzRt1Z0lERESlwOvXr/H999/jypUriIuLQ4UKFdCwYUP07t0bpqam+c43X2szfSgjIwMRERFYs2YNnJ2d810YIiKiskCg7DUzhYaGok+fPkhNTYWHhweqVq2K169fY/369fjhhx+we/duzXUA7t27t8rEeJmdgitXroypU6fmqyBERERlhawkjalWk4ULF6Jy5crYtGkTLC0tFemRkZEYNGgQvv32Wyxfvjxfeec5mMlq2LVEIoGxsTHs7e2hpVVkU9cQERFRMXXz5k0sXrxYKZABACsrK4waNQrTpk3Ld955Dma8vb0VPycnJ+Pt27coX748dHV1810IIiKiskRWBpuZzM3NkZCQkOW2jIwMlbUe8yJf1ShXr15F9+7dUa9ePTRp0gSurq7o0aMHLl26lO+CEBERlRUCErU9SoqRI0di8eLFuH79ulL6o0ePsHz5cowaNSrfeee5Zub69evo168fqlWrhhEjRqBixYqIiorC0aNHMWjQIGzfvh0eHh75LhARERGVPgcOHEBqaip69eoFGxsbWFlZISYmBk+ePIFMJsOGDRuwYcMGAPLuK7///nuu885zMLNs2TLUr18fmzdvhra2tiJ91KhRGDhwIFauXIktW7bkNVsiIqIyoyzOM2NjYwMbGxultGrVqsHV1bXAeec5mPn7778RHBysFMgAgJaWFvz9/TFp0qQCF4qIiKg0K0nNQ+rSsWNHeHh4FKhvTHby3GemXLlySE9Pz3Jbenp6lms3ERERUdk2evToQltvMc/BjKenJzZs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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax = sns.heatmap(\n", + " chemprop_model.predictor.chemprop_fingerprint(\n", + " df[config.data.input_column].head(5),\n", + " fingerprint_type=\"last_FFN\"), # Last FFN\n", + " cbar_kws={'label': 'Fingerprint value'}\n", + ")\n", + "ax.set(ylabel=\"Compound query\", xlabel=f\"Latent representation\\n(ChemProp descriptor)\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The 5 compounds in the user query are also represented by the rows, howeever the 300 features are now derived from the last output layer of the FFN" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Probability calibration (classification)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When performing classification you often want not only to predict the class label, but also obtain a probability of the respective label. This probability gives you some kind of confidence on the prediction. Some models can give you poor estimates of the class probabilities. The `CalibratedClassifierCV` QSARtuna models allow better calibration for the probabilities of a given model.\n", + "\n", + "First, we should understand that well calibrated classifiers are probabilistic classifiers for which the output of the predict_proba method can be directly interpreted as a confidence level. For instance, a well calibrated (binary) classifier should classify the samples such that among the samples to which it gave a predict_proba value close to 0.8, approximately 80% actually belong to the positive class.\n", + "\n", + "See the [Scikit-learn documentation](https://scikit-learn.org/stable/modules/calibration.html#calibration) on the topic for more details.\n", + "\n", + "The available methods are `Sigmoid`, `Isotonic regression` and `VennABERS`, and a review of those calibration methods for QSAR has been performed [here](https://pubs.acs.org/doi/10.1021/acs.jcim.0c00476).\n", + "\n", + "we can review the effect of e.g. `sigmoid` calibration on the Random Forest algorithm by doing a calibrated run:" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:25:15,173] A new study created in memory with name: calibrated_rf\n", + "[I 2024-07-02 13:25:15,175] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:25:16,110] Trial 0 finished with value: 0.8353535353535354 and parameters: {'algorithm_name': 'CalibratedClassifierCVWithVA', 'CalibratedClassifierCVWithVA_algorithm_hash': 'e788dfbfc5075967acb5ddf9d971ea20', 'n_folds__e788dfbfc5075967acb5ddf9d971ea20': 5, 'max_depth__e788dfbfc5075967acb5ddf9d971ea20': 16, 'n_estimators__e788dfbfc5075967acb5ddf9d971ea20': 100, 'max_features__e788dfbfc5075967acb5ddf9d971ea20': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: 0.8353535353535354.\n" + ] + } + ], + "source": [ + "from optunaz.config.optconfig import CalibratedClassifierCVWithVA, RandomForestClassifier\n", + "from sklearn.calibration import calibration_curve\n", + "import seaborn as sns\n", + "\n", + "from collections import defaultdict\n", + "\n", + "import pandas as pd\n", + "\n", + "from sklearn.metrics import (\n", + " precision_score,\n", + " recall_score,\n", + " f1_score,\n", + " brier_score_loss,\n", + " log_loss,\n", + " roc_auc_score,\n", + ")\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-100/train.csv\"),\n", + " descriptors=[ECFP.new()],\n", + " algorithms=[ # the CalibratedClassifierCVWithVA is used here\n", + " CalibratedClassifierCVWithVA.new(\n", + " estimator=RandomForestClassifier.new(\n", + " n_estimators=RandomForestClassifier.Parameters.RandomForestClassifierParametersNEstimators(\n", + " low=100, high=100\n", + " )\n", + " ),\n", + " n_folds=5,\n", + " ensemble=\"True\",\n", + " method=\"sigmoid\", \n", + " )\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " n_startup_trials=0,\n", + " n_jobs=-1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " random_seed=42,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"calibrated_rf\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " calibrated_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "followed by an uncalibrated run:" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:25:18,566] A new study created in memory with name: uncalibrated_rf\n", + "[I 2024-07-02 13:25:18,608] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:25:18,915] Trial 0 finished with value: 0.8185858585858585 and parameters: {'algorithm_name': 'RandomForestClassifier', 'RandomForestClassifier_algorithm_hash': '167e1e88dd2a80133e317c78f009bdc9', 'max_depth__167e1e88dd2a80133e317c78f009bdc9': 16, 'n_estimators__167e1e88dd2a80133e317c78f009bdc9': 100, 'max_features__167e1e88dd2a80133e317c78f009bdc9': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: 0.8185858585858585.\n" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-100/train.csv\"),\n", + " descriptors=[ECFP.new()],\n", + " algorithms=[ # an uncalibrated RandomForestClassifier is used here\n", + " RandomForestClassifier.new(\n", + " n_estimators=RandomForestClassifier.Parameters.RandomForestClassifierParametersNEstimators(\n", + " low=100, high=100\n", + " )\n", + " )\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " n_startup_trials=0,\n", + " n_jobs=-1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " random_seed=42,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"uncalibrated_rf\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " uncalibrated_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sigmoid calibration assigns more conservative probability estimates compared to the default RF, as shown by the lower median:" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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XZd3332XlJQUevfuHbb/G2+8EXYMVVyka5KUlMRBBx3EwoULKSgooKCggOeee46OHTty8MEHV+foddpnn31GQkICzz//PBkZGb+477Jly2jWrBmdOnUq35aVlUVMTAzLly+P+NzxEX+F9CObNm0CoFWrVmHbmzdvXv65H2vTpg1t2rQJ25aTk0NSUhI9evSoukHrkUjXBODTTz/lkUceYf78+V4fUUUiXZfVq1fTtm1bXnvtNXJycti8eTNHHXUUY8aMCXsCUMVFuiaJiYlMnTqV2267je7duxMTE0Pz5s2ZO3du+f/c6cCdeuqpnHrqqb9p382bN++zfomJiRx66KFs3Lgx4nO7ijogey9mS0xMDNveoEGD33SN0Jw5c5g7dy4jR44kNTW1SmasbyJdk927dzNy5EhGjhxJhw4dqmPEeinSdSkoKGDNmjXMmjWLG264gQcffJD4+HguueQS8vLyqmXmui7SNQmCgM8//5zMzEyeeOIJHn/8cQ477DCGDRtGQUFBtcyscIWFhfusH/z256CfMop0QPa+DfbTixKLiopo2LDhz35dEARMnz6d22+/nauuuupX/3SBfrtI1+T222+nY8eOXHTRRdUyX30V6brEx8dTUFDAfffdx4knnkjXrl257777AHj22WerfuB6INI1efnll5k7dy733HMP3bp1Iysri9mzZ7Nhwwbmz59fLTMrXFJS0n4vii8qKqJRo0YRH88o0gHZ+7Llli1bwrZv2bKFFi1a7PdrSkpKuOmmm5g9ezZjx45lxIgRVT1mvRLpmjzzzDO89957ZGZmkpmZyZAhQwA455xzmD17dtUPXE9Eui4tW7YkPj4+7K2ypKQk2rZt669LqCSRrsmyZcvo2LEjycnJ5dsOOeQQOnbsyJo1a6p2WO1Xy5Yt91m/4uJivv/+e5o3bx7x8YwiHZAjjzyS5ORkli5dWr5t586drFy58mevERo1ahSvvPIK06ZNY9CgQdU0af0R6Zq89tprvPjiiyxcuJCFCxdy++23Az9c6+WrR5Un0nXp0aMHpaWlrFixonzbnj17WLduHe3bt6+Wmeu6SNekZcuWrFmzJuxtmd27d7N+/Xrfeo6SHj16sGnTprAo/eCDDwDo1q1bxMfzQmsdkMTERC699FLuvfdeUlNTad26Nffccw8tW7bkjDPOoKysjG3btpGSkkJSUhILFixg0aJFjBo1iqysLL777rvyY+3dRwcm0jX56RPs3gtMDzvsMA499NAo3IK6KdJ16d69O8cffzyjR49m0qRJHHroocyYMYO4uDj69+8f7ZtTJ0S6Jueddx7/+Mc/GDFiBNdddx0A06dPp0GDBgwYMCDKt6Z++OmaZGRkcNxxx3H99dczYcIEdu/ezW233cZ55533s+9W/KIK/AoBKUxpaWlw9913Bz179gyOPfbYYMiQIeW/42bdunVBWlpa8MwzzwRBEASDBw8O0tLS9vvP3n104CJZk59asmSJv6eoikS6Lvn5+cH48eOD7OzsICMjIxg8eHCwatWqaI1fJ0W6Jl999VUwdOjQICsrK+jZs2cwfPhwf1aq0OjRo8N+T9H+1mTr1q3BNddcExx77LFBdnZ2MH78+GDPnj0VOl9MEARB5becJElS7eI1RZIkSRhFkiRJgFEkSZIEGEWSJEmAUSRJkgQYRZIkSYBRJEmSBBhFkuq5BQsWkJ6e7t8nJskokiRJAqNIkiQJMIok1WLjxo3jhBNOoKysLGz7HXfcQXZ2NiUlJbz++utccsklZGZmcswxx9CnTx+eeOKJnz3mZZddxmWXXRa2benSpaSnp4f9beq5ubnccMMNZGVlkZGRwcCBA1m5cmXl3kBJ1cooklRr9e/fn61bt4bFSigU4uWXX+bss8/m3Xff5eqrr+boo49m1qxZPPDAA7Rt25ZJkybxySefVPi827Zt46KLLuKzzz5j3LhxTJs2jVAoxJ/+9Ce+/vrryrhpkqIgPtoDSFJFdevWjdatW/Piiy9y/PHHAz+8qvPdd9/Rv39/PvzwQ84//3xuueWW8q/JzMwkOzubpUuXkpGRUaHzPv7443z//fc8+eSTtG7dGoDevXvTt29f7r//fmbMmHHgN05StTOKJNVaMTExnHvuucybN48JEyaQmJjISy+9RIcOHcjIyCiPnl27drF69WrWrl3LihUrACguLq7wed9//306d+5MixYtKC0tBSA2NpbevXvz/PPPH/gNkxQVRpGkWq1///48+OCDvP3225x00km89tprDBw4EPjhba7x48fz+uuvExMTQ/v27enevTsAQRBU+Jzff/89a9as4eijj97v5wsLC2nYsGGFjy8pOowiSbVax44d6dq1Ky+//DKxsbHs3LmTc889F4CRI0fyzTff8Nhjj5GZmUliYiKFhYU8/fTTv3jMn164vXv37rCPU1JSyMrKYtSoUfv9+sTExAO4RZKixQutJdV6/fv35+233+all17iuOOOo23btgAsX76cM844g+zs7PJQWbx4MfDDBdn7k5yczKZNm8K2LV++POzjrKwsVq9eTceOHenSpUv5P8899xzz588nLi6usm+ipGpgFEmq9fr27cuuXbtYtGgR/fv3L9/etWtXXnjhBZ577jmWLl3Kgw8+yJgxY4iJiaGwsHC/xzrllFPYsGEDd955J0uXLuVvf/sbCxcuDNtn0KBBhEIhBg0axKJFi3j//fcZN24cc+bMoWPHjlV5UyVVId8+k1TrpaamcuKJJ/Luu+/Sp0+f8u1Tp05l8uTJTJ48GYAOHTowceJEnn/+eZYtW7bfY/3hD39g7dq1PPvsszz11FP06NGDGTNmcPHFF5fv06JFC5566immTZvGhAkTKCoqokOHDtxxxx388Y9/rNobK6nKxAQHcrWhJElSHeHbZ5IkSRhFkiRJgFEkSZIEGEWSJEmAUSRJkgQYRZIkSYBRJEmSBBhFkiRJgFEkSZIEGEWSJEmAUSRJkgQYRZIkSQD8P3JjWt6VzKsfAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df = pd.read_csv(\n", + " '../tests/data/DRD2/subset-1000/train.csv'\n", + " ).sample(500, random_state=123) # Load and sample test data.\n", + "expected = df[config.data.response_column]\n", + "input_column = df[config.data.input_column]\n", + "calibrated_predicted = uncalibrated_model.predict_from_smiles(input_column)\n", + "uncalibrated_predicted = calibrated_model.predict_from_smiles(input_column)\n", + "\n", + "cal_df=pd.DataFrame(data={\"default\":uncalibrated_predicted,\"sigmoid\":calibrated_predicted})\n", + "sns.boxplot(data=cal_df.melt(),x='value',y='variable').set_ylabel('');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the (sigmoid) calibrated predictions as a function of uncalibrated (default) values further highlights the behaviour of the probability calibration scaling:" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot expected vs predicted values for the best model.\n", + "import matplotlib.pyplot as plt\n", + "ax = plt.scatter(calibrated_predicted, uncalibrated_predicted)\n", + "lims = [expected.min(), expected.max()]\n", + "plt.plot(lims, lims) # Diagonal line.\n", + "plt.xlabel(f\"Calibrated {config.data.response_column}\");\n", + "plt.ylabel(f\"Uncalibrated {config.data.response_column}\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now visualize how well calibrated the predicted probabilities are using calibration curves. A calibration curve, also known as a reliability diagram, uses inputs from a binary classifier and plots the average predicted probability for each bin against the fraction of positive classes, on the y-axis. See [here](https://scikit-learn.org/stable/modules/calibration.html) for more info." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9gAAAPXCAYAAADQfOOkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3RU1d7G8e+Zmk5CKAm9N+kdFKSDAoKIoChiwYpd7xWvXrx6rdeGiqgodkSKCCoggiig0psUEZDeW3pmJlPO+0ckr0gLZJKZhOezlks4c+bs30w2SZ7Z++xtmKZpIiIiIiIiIiIFYgl1ASIiIiIiIiIlgQK2iIiIiIiISBAoYIuIiIiIiIgEgQK2iIiIiIiISBAoYIuIiIiIiIgEgQK2iIiIiIiISBAoYIuIiIiIiIgEgQK2iIiIiIiISBAoYIuIiACmaYa6hEJRUl9XUdB7JyIi50oBW0REzsu6dev4xz/+QadOnWjcuDHdunXj3//+N7t37z7naw0dOpShQ4fm/b1u3bq88cYbACxdupS6deuydOnSoNX+d2PHjmX8+PF5f3/jjTeoW7duobV3rs6nngMHDnDbbbexd+/eQqkpIyODrl278scffxToOnv27KFu3bpMmzYNgGnTplG3bl327NmT72vk5zl/b+fv7+nf++CUKVN44YUXzvXlFDuvvfYa//nPf0JdhohIiaGALSIi52zChAlcc801HD16lIceeoh3332X2267jWXLljFw4EA2bdpUoOtPmjSJq6++OkjVnt1rr72Gy+XK+/vVV1/NpEmTiqz9wvDLL7+wYMGCQrv+M888Q5cuXahZs2ZQr9upUycmTZpEuXLlgnrdcuXKMWnSJDp16nTKx5944gmeeOKJvL+/9dZbpKamBrWGcHTbbbcxf/58Fi9eHOpSRERKBFuoCxARkeJl5cqVPPPMM1x33XU89thjecfbtGlDt27d6N+/P//617/yRgrPR9OmTYNQ6flLSkoiKSkppDWEsw0bNvD1118XSoAvXbo0pUuXDvp1HQ7HGftVrVq1gt5mcRAZGcmwYcN47rnn+Oqrr0JdjohIsacRbBEROSfjx48nNjaWBx988KTHSpcuzciRI+natSvZ2dkAuN1uXn75ZXr06EHDhg1p3rw5N910E7/99ttp2/jrFPHjtm7dypAhQ2jUqBHdu3fnk08+Oek5Y8aMYcCAATRu3JgxY8YAsHz5cm655RZatWpFw4YN6dKlC2+88QaBQCDveQBjxozJ+/OppmTPmjWLAQMG0KxZMy6++GJGjRpFWlpa3uNvvPEG3bt358cff6Rv3740bNiQnj17Mn369DO+nyNHjmTo0KFMnTqVzp0706xZM4YNG3bWWQBnqmfatGk8+uijAHTt2pWRI0cCsH79eoYNG0aLFi1o1qwZN954I2vWrDljO6fyzjvv0LZtW8qUKZN3rEuXLjz77LMMGzaMxo0b5334kpqayqhRo2jfvj2NGjVi0KBBZxwtPdV07ylTpjBgwACaNm1K48aN6devH7Nnzz7puatWraJ///40bNiQPn36MGvWrLzH/j5F/O/+OkW8S5cu7N27ly+//JK6deuyYcMGGjVqxCuvvHLCc1wuFy1atOCtt9467evZtm0bd999N61bt6ZVq1bcfvvtedPqT3f7w9+nq5/qvW3RosVJU9h9Ph9t27bl6aefPuG96927Nw0bNqRTp0688cYb+P3+E57Xp08ftmzZwo8//nja1yEiIvmjgC0iIvlmmiY//fQT7dq1IzIy8pTnXH755YwYMYKoqCgA/vnPf/LFF19w22238f777/Poo4+yZcsWHnrooXNaROq5556jadOmvPXWW3To0IGnn36ajz766IRz3n77bfr27cvrr79Oz5492bRpEzfeeCPx8fG8+uqrvPXWW7Rs2ZIxY8bkBbTjU8EHDhx42mnhY8eO5cEHH6Rp06a8/vrrjBgxgjlz5jB06FDcbnfeeYcPH+app57ihhtuYNy4cVSqVIlHHnnkrPcp//bbb7z66qvcfffdvPjii6SkpHD99ddz6NCh86qnU6dO3HnnnUDuBwd33XUXmZmZDB8+nISEBN544w1effVVXC4Xt9xyCxkZGfn7IgBZWVnMnz+fHj16nPTYhAkTaNSoEWPHjmXgwIF4PB6GDRvG999/zwMPPMCYMWNISkpi+PDh+Z6SPGHCBEaNGkW3bt145513eOmll3A4HDz88MMcOHDghHNHjRrFZZddxtixY6lduzYPPPAA8+bNy/drO27MmDGULVuWSy+9lEmTJlG7dm26devG119/fUKfnTt3LtnZ2fTv3/+U1zl48CCDBw9mx44d/Oc//+HFF1/kyJEjDBs27Jynn//9ve3ZsyezZ88+oZ6ff/6ZlJQU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7FRat27N/v37SUxMpFGjRnn//fzzz7z33nt5txycTkpKCtu3b2fgwIE0atQImy13XGDhwoXAycH0r30kEAjw7bff0qRJk3O61/m4U/WJihUr0q5dOz7++GN+++03BgwYcMZrtGzZkrVr154Qso8ePcrw4cNZsGABMTExwInvZVpa2lkXxTuuZs2aXHTRRcycOZMFCxZwxRVX5D3WpEkT7HY7Bw8ePOG9t9lsvPLKKyes0n68hjJlyuR7JoOIiJyaRrBFROScNG3alPvuu4/Ro0fzxx9/0L9/fxISEtiyZQvjx4/H4/Hkhe+LLroIm83Giy++yM0330xOTg7Tpk3LC0Jnuzf5rz755BOio6Np0KABM2fOZNGiRfzvf//LC+2n0rhxY2bPns3EiROpWbMmmzZt4q233sIwjBPuNY2Li2PVqlUsX778hHuhAeLj47ntttt48803sdvtdO7cmT179vDaa69Rq1atM96Dm1+maXLHHXfwwAMPYLVaGTNmDKVKlTphq6Zzref4CObcuXPp2LEjzZs3JxAIMGLECG677Taio6OZPXs2GRkZp1wR/HRatmxJREQEK1eupEGDBmc8d8CAAXz66afcdNNN3HHHHSQnJ/PLL7/w7rvvcv3112O328/4/MTERCpWrMiECRNISkoiLi6ORYsW8fHHHwOcdL/w6NGj8fv9JCcnM3HiRLZv384HH3yQ79f2V3FxcWzcuJFly5bRuHHjvJA+cOBAHnzwQWrWrJm3cNvp3HjjjUyfPp3hw4dz++23Y7fbeeutt0hKSqJv377ExMSQnJzMm2++SUxMDIZh8M4775zTFO1+/frxwgsvYLPZ6NWrV97xhIQEhg8fzmuvvUZmZiZt2rTh4MGDvPbaaxiGkTfN/rhVq1bRoUOHc3iHRETkVBSwRUTknN155500aNCACRMm8Oyzz5KWlkZycjKdOnXKC1IAVatW5eWXX2bMmDHceeedlCpViqZNm/LJJ58wdOhQVqxYcdJ+06fz9NNP89577zF69GgqV67MK6+8csIK0qcycuRIvF4vo0ePJicnh0qVKnHnnXeydetW5s+fj9/vx2q1cscddzB27FhuvfXWE/ZOPu6ee+6hTJkyfPrpp0yaNIn4+Hh69erF/ffff9K9seejQoUK3HzzzTz77LO4XC7at2/PW2+9ddrpuvmpp02bNrRv356X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IP0w7p8+wr9nPXB8662bsJarGeLKCtfw4Xfw228buOKK/qEupcRQwBYRERERkUKXlpXDFwv+CHUZJzADfrzr/9x6y3d8661+OJpcViK33po3bw4+n49evXoDUK9efWbM+BabreS91lDROykiIiIiIoUmYJosWruPKT/8QbbHF+py8viP7Pxz660dAFiT6xHR4UYs8SVv6y2A+fPn8fDD9xETE0uLFq0oW7YcgMJ1kOndFBERERGRQrH3SBYff7uJLXvSAEgqHcWBY9khrSl3663peNfNyd16yxGFs+1g7HU7luiFvTp27ESTJs1o3botcXEldyX0UFPAFhERERGRoMrx+vlm8Q5mL9mFP2DitFu5skN1mtYpw7/fXXbWfbBjIgtnoS3fng24F334t623hmCJii+U9kJp584dfPHFZO6//2EsFgs2m4333/8Uq9Ua6tJKNAVsEREREREJmo07jvHxnN85lOICoGmtMlzXvU7evtbP3taWTJf3tM+PibQHfQ/s3K23Pse35Wfgz623LrkBW9WmQW0nXLhcLoYNu4bU1FSqVKnKwIGDARSui4ACtoiIiIiIFFh6dg6Tvt/K4g0HAIiPcXBd9zo0r1P2hKnXiaUigh6gT+eUW29d1BVnq6tK7NZbAJGRkQwffic//bSAdu0uDnU5FxQFbBEREREROW+mafLTuv1Mnr+VLLcPA+jSvBJXdqxBVETo4kYg4zDuRX/ZeiuhEhEdb8RavlbIaiosLpeLcePG0q/flVSrVgOAIUOGct11N5To+8rDkQK2iIiIiIicl/1Hs/j429/5fXcqAJXKxjDssrrUrBC6RbRyt96ai2fFtP/feqvZFTiaXI5hLZnx58UXn2XatCmsXbua8eM/wTAMLBZLqMu6IJXMHiYiIiIiIoXG6wswa8lOZi7egc9v4rBZ6NehOt1bVsZmDV2wO3nrrbpEdLipxG69ddzw4XewatUKbrjhZo1Yh5gCtoiIiIiI5Nvvu1L46Nvf87bbalijNEN71KVsfOjuaTZ9HnJWziDn12//tvVWBwyj5I3kzp8/l0OHDnLNNdcDUKFCRaZNm6lR6zCggC0iIiIiImeV6fIyef5Wflq3H4C4aAdDutWmVb1yIR01PXnrrVY4219XIrfeAli+fCkPPngPdrudtm3b591zrXAdHhSwRURERETktEzTZMmGg0z8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IA6HI095dnY2wcHBxYrFV/+oCuOfHamyK+gvCbfbA3rfSoX6pPgT9UfxN+qT4k8K0x/d7vzn7RqGAa68f4vnW9d5/oVoz9QznAUcKLPaSnTtoYCAAKKjfTN67k8xlGUcv/++lc2bN/J///cJtWvXA2DMmHGMGjWM++9/iGrVqud73PLlS3jttVeIicl/dH3Nmu+54oqrad/+EgCGDn2EZcs+448/tnLppT3OGk9xbiKd4VcJ9pnp3kePHqVOnTre8qNHj9KkSZM89WNiYli1alWuMofDwalTp6hePf8fhoiIiIiIFI9hGJxe+iyepF0l2m7msmcLXNdSoxFBvZ8oVJL9888/8tZbr7Nv3x6CgoLp2LEzw4aNJDw8nE2bNjB8+AMsXLiU2NiaZGVlMWvWDL79dhVOp4sePa4gOzsbq9XKuHETWbFiGe+99za33noH778/j5SUU3Ts2JlHHhnNnDmvsGbNd4SGhnHvvffTq1cfANxuN5988hGfffYpSUmJ1KgRw80330bfvjcA5IkhPT2dmTOn8cMP32O1Whk48O5CvJv/c+LEcUaNGs7mzRuIjq7KLbcMZMCAmwC819GxYxe++GIZbdq048Ybb80Vh9PpZO7c11i58gsyMtKpX78hgwc/4E1g82uja9fuTJmS/yh0TEwsn3yyjC1bNhMdXZX69Rt4E9vWrdtiMpnYuvVXLr+8Z77Hr179Lffd9yDt21/CTTf1yfN6VFQUP/20hhtuuJnq1WuwZMlibDYbF1zQuEjvX2H4VYLdtGlTQkNDWbdunTfBTk1NZdu2bQwcODBP/fj4eF588UX2799P3bp1Afjll18AaNu2bdkFLn7BFBgGloDzPttjCgwru6BEREREKigT5WvnmlOnTjFu3GiGDh1Bp05dOHo0iWeemcCcOS/z+ONP5ak/efIEdu7czsSJU4iOjmbevLl8//03XH31dd46iYkJfPvt17z44sskJSXx+OMj2bhxA3fddQ93330v//d/C5g+fSpdu15KREQks2bN5MsvP2fEiDFceGEz1q79iZdfno7D4eCmm27LE8P48Y+TlJTI88/PIDg4mFmzZpKYWPi1ppYt+4z77vsXDz88il9++ZlXXplO1arVuPTSywA4fPgQx48fY968D8jOzubUqeRcxz/77ET279/L+PHPUK1adX78cTVjxjzClCkv0qlT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VnHkyKEi75HtD6xWs08/H8/Xx6tUCcFiKdjT1XoGW0RERERE5G9sNhsvvfQ806Y9x759ezl48ACvvfYqSUmJXHbZFb4Oz8vj8fDxxx/Srdtl568sZUJTxEVERERERP7GZDIxbdpM5sx5hQceGITb7aZx46a89NIs6tat5+vwvMxmM6+++gYBBdwGTUqfEmwREREREZF/aNSoCTNmzPZ1GOel5Nq/aIq4iIiIiIiISAlQgi0iIiIiIueltZGloirJvq0EW0REREREzurM3sMOR7aPIxEpHWf6tsVS/Ceo9Qy2iIiIiIicldlsISgolPT0nP2XbTY7JpPJx1FJReLxmHC7y36GhGEYOBzZpKcnExQUmu9+6IWlBFtERERERM4pPLwKgDfJFilJZrMZj8d3+2AHBYV6+3hxKcEWEREREZFzMplMREREExYWhdvt8nU4UoFYLCYiIoJJSTntk1Fsi8VaIiPXZyjBFhERERGRAjGbzZjNNl+HIRWI1WomMDCQzEw3LpfvRrFLihY5ExERERERESkBSrBFRERERERESoASbBEREREREZESoARbREREREREpASYDMMo+6Xa/JxhGHg8/v22WCxm3O7yvwiAVBzqk+JP1B/F36hPij9RfxR/4+990mw2FXjvdyXYIiIiIiIiIiVAU8RFRERERERESoASbBEREREREZESoARbREREREREpAQowRYREREREREpAUqwRUREREREREqAEmwRERERERGREqAEW0RERERERKQEKMEWERERERERKQFKsEVERERERERKgBJsERERERERkRKgBFtERERERESkBCjBFhERERERESkBSrBFRERERERESoASbD/k8Xh45ZVX6Nq1K61ateK+++7j4MGDZ62fnJzMqFGjiI+Pp3379kyaNInMzMwyjFgqusL2yb/++oshQ4bQoUMHOnbsyPDhwzly5EgZRiwVWWH7498tXbqUJk2acOjQoVKOUiqTwvZJp9PJ9OnTvfUHDhzIn3/+WYYRS0VW2P544sQJRo0axSWXXEKHDh0YMWIESUlJZRixVCZvvPEGd9xxxznrlPfcRgm2H5ozZw4ffvghzzzzDB999BEej4fBgwfjcDjyrT98+HD279/Pu+++y8svv8z333/PxIkTyzZoqdAK0yeTk5MZNGgQgYGBzJ8/n7lz53Ly5EkGDx5Mdna2D6KXiqawn5FnHD58mKeffrqMopTKpLB9cuLEiSxatIgpU6bw6aefUqVKFe677z7S0tLKOHKpiArbHx955BGOHDnCO++8wzvvvMORI0d46KGHyjhqqQw++OADZs6ced565T63McSvZGdnG61btzY++OADb1lKSorRokULY9myZXnqb9q0yWjcuLGxa9cub9maNWuMJk2aGImJiWUSs1Rshe2TH3/8sdG6dWsjMzPTW3bkyBGjcePGxk8//VQmMUvFVdj+eIbb7TZuvfVW48477zQaN25sHDx4sCzClUqgsH3ywIEDRpMmTYxvv/02V/3LLrtMn5FSbIXtjykpKUbjxo2Nr7/+2lu2atUqo3HjxkZycnJZhCyVQGJionH//fcbrVq1Mq6++mpj4MCBZ61bEXIbjWD7me3bt5ORkUHHjh29ZeHh4TRr1oz169fnqb9hwwaqVatGw4YNvWXt27fHZDKxcePGMolZKrbC9smOHTsyZ84cAgMDvWVmc85HTWpqaukHLBVaYfvjGa+//jpOp5P777+/LMKUSqSwffLHH38kLCyMbt265ar/zTff5GpDpCgK2x8DAwMJCQnhs88+Iz09nfT0dJYsWUL9+vUJDw8vy9ClAvvjjz8ICAhg6dKltGzZ8px1K0JuY/V1AJJbYmIiALGxsbnKq1ev7n3t75KSkvLUtdlsREZGkpCQUHqBSqVR2D4ZFxdHXFxcrrI333yTwMBA4uPjSy9QqRQK2x8Btm7dyrx58/jkk0/0XKGUuML2yb1791K7dm1WrlzJm2++SVJSEs2aNePxxx/P9QelSFEUtj/abDamTp3K+PHjadeuHSaTierVq7NgwQLvzXGR4urRowc9evQoUN2KkNvoX46fOfMAv81my1Vut9vzfX41MzMzT91z1RcprML2yX+aP38+CxYs4NFHH6VKlSqlEqNUHoXtj6dPn+bRRx/l0UcfpV69emURolQyhe2T6enp7N+/nzlz5jBy5Ehee+01rFYrt912GydOnCiTmKXiKmx/NAyDP//8k9atW/PBBx/w3nvvUbNmTR588EHS09PLJGaRv6sIuY0SbD9zZlrtPxeiyM7OJigoKN/6+S1akZ2dTXBwcOkEKZVKYfvkGYZhMHPmTCZPnsy//vWv864YKVIQhe2PkydPpn79+txyyy1lEp9UPoXtk1arlfT0dGbMmEGXLl1o0aIFM2bMAGDx4sWlH7BUaIXtj1988QULFixg2rRptG3blvbt2/P6669z+PBhPvnkkzKJWeTvKkJuowTbz5yZEnH06NFc5UePHqVGjRp56sfExOSp63A4OHXqFNWrVy+9QKXSKGyfhJwtaEaPHs3rr7/O2LFjeeSRR0o7TKkkCtsfP/30U3766Sdat25N69atue+++wDo1asXr7/+eukHLBVeUX5vW63WXNPBAwMDqV27traPk2IrbH/csGED9evXJzQ01FsWERFB/fr12b9/f+kGK5KPipDbKMH2M02bNiU0NJR169Z5y1JTU9m2bVu+z6/Gx8eTmJiY60Pwl19+AaBt27alH7BUeIXtkwBjxozhyy+/ZPr06dx9991lFKlUBoXtjytXrmT58uV89tlnfPbZZ0yePBnIWRdAo9pSEorye9vlcvHbb795y7Kysjh48CB169Ytk5il4ipsf4yJiWH//v25pt6ePn2aQ4cO6bEa8YmKkNtokTM/Y7PZGDhwIC+++CJVqlShVq1aTJs2jZiYGHr27Inb7ebkyZOEhYURGBhIy5YtadOmDSNGjGDixImcPn2a8ePH07dv37OOLooURmH75KJFi1ixYgVjxoyhffv2HDt2zNvWmToiRVXY/vjPhOXMIj81a9YkMjLSB1cgFU1h+2S7du3o1KkTjz32GE8//TSRkZG88sorWCwW+vTp4+vLkXKusP2xb9++vP322zzyyCM8/PDDAMycORO73U7//v19fDVSGVTE3EYj2H5o+PDh3HDDDTz55JPceuutWCwW3n77bQICAkhISKBLly6sWLECAJPJxKxZs4iLi+Ouu+7ikUceoVu3buVrM3bxe4Xpk8uXLwfghRdeoEuXLrm+ztQRKY7C9EeRslDYPvnqq6/Svn17hg4dyg033EB6ejrvv/++FoKUElGY/li9enU+/PBDDMPgrrvuYtCgQQQEBPDhhx8SFhbm4yuRyqAi5jYmwzAMXwchIiIiIiIiUt5pBFtERERERESkBCjBFhERERERESkBSrBFRERERERESoASbBEREREREZESoARbREREREREpAQowRYREREREREpAUqwRUREREREREqAEmwRERERERGREqAEW0RERERERKQEKMEWERERERERKQFKsEVERERERERKgBJsERERERERkRKgBFtERERERESkBCjB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wwZJ0quvvqomTZq4/CvYBiiJ4oxHoDQUd0xOnz5dKSkp6t+/vx5//HFlZ2dryZIlXAgSpijOeCxXrpxWrFghwzDUtWtXdevWTWXKlNGKFSsUGRlp8WcCf+CL3cZmGIZhdQgAAAAAALwdZ7ABAAAAADABBRsAAAAAABNQsAEAAAAAMAEFGwAAAAAAE1CwAQAAAAAwAQUbAAAAAAATULABAAAAADABBRsAAJjOMAyrIwAAUOoo2AAAn9e5c2dVrVpV7du3v+Y2gwcPVtWqVTV8+PBSTOaZqlatqunTp0uSjh49qqpVq2rt2rVFvv+sWbO0YMECU7J07txZnTt3NuWxPOF5AAC+jYINAPALdrtd//jHP5SWllZoXU5OjrZt22ZBKs9Xrlw5rVq1Ss2aNSvyfV5//XWdP3/++oUCAMBDUbABAH6hevXqCg4O1ubNmwut27Ztm0JDQxUfH29BMs8WFBSkunXrqmzZslZHAQDA41GwAQB+ISwsTPfcc89VC/amTZt03333KTAw0GW5w+HQvHnzdO+996pmzZq67777tHTpUpdt8vPzNW/ePD344IOqXbu26tatq/bt22vXrl3ObaZPn657771XH330kdq2bet8rHXr1v1h5uHDh6tz585666231Lx5c9WrV09du3bVt99+69xm7dq1ql69ulavXq277rpLKSkpOnjwoCRp69atevTRR1WrVi3dddddevnll5WTk+PyHLt379aTTz6pOnXq6L777tMnn3zisv5qU8R//PFH9e/fXykpKUpOTlZqaqr+9a9/Sbo8vVySZsyY4fy/JH3//fdKTU1V/fr1Vb9+ffXr109Hjhxxea7jx4+rf//+atCgge666y4tWrToD/dPbm6uGjRooFdeecVl+aVLl9SoUSO9/PLLkqQLFy5o8uTJatWqlWrWrKn69eurW7duOnDgwFUf91rT4ocPH64WLVq4LCvKPgYA+A8KNgDAb7Ru3brQNPHs7Gzt2LFDDz74YKHtx4wZo2nTpumhhx7SnDlzdP/992v8+PGaOXOmc5tJkyZp1qxZevLJJzV//ny99NJLyszM1MCBA12mSf/yyy968cUX1aVLF82bN0+JiYkaNmyYs5hey4EDBzRlyhT1799fEydOVEZGhjp16qT09HTnNvn5+Vq4cKHGjRunESNGqEqVKlq/fr369eunW2+9VTNn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.calibration import calibration_curve\n", + "\n", + "plt.figure(figsize=(10, 10))\n", + "ax1 = plt.subplot2grid((3, 1), (0, 0), rowspan=2)\n", + "ax2 = plt.subplot2grid((3, 1), (2, 0))\n", + "\n", + "ax1.plot([0, 1], [0, 1], \"k:\", label=\"Perfectly calibrated\")\n", + "for pred, name in [(uncalibrated_predicted, 'default'),\n", + " (calibrated_predicted, 'sigmoid')]:\n", + "\n", + " fraction_of_positives, mean_predicted_value = \\\n", + " calibration_curve(expected, pred, n_bins=10)\n", + " \n", + " brier=brier_score_loss(expected,pred)\n", + "\n", + " ax1.plot(mean_predicted_value, fraction_of_positives, \"s-\",\n", + " label=\"%s, brier=%.2f\" % (name, brier))\n", + "\n", + " ax2.hist(pred, range=(0, 1), bins=10, label=name,\n", + " histtype=\"step\", lw=2)\n", + "\n", + "ax1.set_ylabel(\"Fraction of positives\")\n", + "ax1.set_ylim([-0.05, 1.05])\n", + "ax1.legend(loc=\"lower right\")\n", + "ax1.set_title('Calibration plots (reliability curve)')\n", + "\n", + "ax2.set_xlabel(\"Mean predicted value\")\n", + "ax2.set_ylabel(\"Count\")\n", + "ax2.legend(loc=\"upper center\", ncol=2)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The diagonal line on the calibration (scatter) plot indicates the situation when a classifier is perfectly calibrationed, when the proportion of active instances annotated by the model are perfectly captured by the probability generated by the model. Deviation above this line indicates when a classifier is under-confident, since the proportion of actives obtaining that score is higher than the score itself, and vice-versa, lines below indicate over-confident estimators, when the proportion of actives obtaining a given score is lower.\n", + "\n", + "Brier score loss (a metric composed of calibration term and refinement term) is one way to capture calibration calibration improvement (this is recorded in the legend above). Notice that this metric does not significantly alter the prediction accuracy measures (precision, recall and F1 score) as shown in the cell below. This is because calibration should not significantly change prediction probabilities at the location of the decision threshold (at x = 0.5 on the graph). Calibration should however, make the predicted probabilities more accurate and thus more useful for making allocation decisions under uncertainty." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Brier lossLog lossPrecisionRecallF1Roc auc
calibration
yes0.1847050.5471290.8305650.7440480.7849290.716536
no0.1752970.5294740.8112090.8184520.8148150.714104
\n", + "
" + ], + "text/plain": [ + " Brier loss Log loss Precision Recall F1 Roc auc \n", + "calibration \n", + "yes 0.184705 0.547129 0.830565 0.744048 0.784929 0.716536\n", + "no 0.175297 0.529474 0.811209 0.818452 0.814815 0.714104" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import defaultdict\n", + "\n", + "import pandas as pd\n", + "\n", + "from sklearn.metrics import (\n", + " precision_score,\n", + " recall_score,\n", + " f1_score,\n", + " brier_score_loss,\n", + " log_loss,\n", + " roc_auc_score,\n", + ")\n", + "\n", + "scores = defaultdict(list)\n", + "for i, (name, y_prob) in enumerate([('yes',calibrated_predicted), ('no',uncalibrated_predicted)]):\n", + " \n", + " y_pred = y_prob > 0.5\n", + " scores[\"calibration\"].append(name)\n", + "\n", + " for metric in [brier_score_loss, log_loss]:\n", + " score_name = metric.__name__.replace(\"_\", \" \").replace(\"score\", \"\").capitalize()\n", + " scores[score_name].append(metric(expected, y_prob))\n", + "\n", + " for metric in [precision_score, recall_score, f1_score, roc_auc_score]:\n", + " score_name = metric.__name__.replace(\"_\", \" \").replace(\"score\", \"\").capitalize()\n", + " scores[score_name].append(metric(expected, y_pred))\n", + "\n", + " score_df = pd.DataFrame(scores).set_index(\"calibration\")\n", + " score_df.round(decimals=3)\n", + "\n", + "score_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Uncertainty estimation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna offers three different ways to calculate uncertainty estimates and they are returned along with the normal predictions in the format `[[predictions], [uncertainties]]`. The currently implemented methods are:\n", + "\n", + "1. VennABERS calibration (a probability calibration covered in the section above).\n", + "2. Ensemble uncertainty (ChemProp models trained with random initialisations).\n", + "3. MAPIE (uncertainty for regression)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### VennABERS uncertainty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "VennABERS (VA) uncertainty is implemented as in the section \"Uses for the Multipoint Probabilities from the VA Predictors\" from https://pubs.acs.org/doi/10.1021/acs.jcim.0c00476. This is based on the margin between the upper (p1) and lower (p0) probability bounary, output by the VennABERS algorithm. More details on this can be found in [this](https://cml.rhul.ac.uk/people/ptocca/HomePage/Toccaceli_CP___Venn_Tutorial.pdf) tutorial" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:25:20,500] A new study created in memory with name: calibrated_rf\n", + "[I 2024-07-02 13:25:20,548] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 13:25:21,537] Trial 0 finished with value: 0.8213131313131313 and parameters: {'algorithm_name': 'CalibratedClassifierCVWithVA', 'CalibratedClassifierCVWithVA_algorithm_hash': '79765fbec1586f3c917ff30de274fdb4', 'n_folds__79765fbec1586f3c917ff30de274fdb4': 5, 'max_depth__79765fbec1586f3c917ff30de274fdb4': 16, 'n_estimators__79765fbec1586f3c917ff30de274fdb4': 100, 'max_features__79765fbec1586f3c917ff30de274fdb4': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: 0.8213131313131313.\n" + ] + } + ], + "source": [ + "from optunaz.config.optconfig import CalibratedClassifierCVWithVA, RandomForestClassifier\n", + "from sklearn.calibration import calibration_curve\n", + "import seaborn as sns\n", + "\n", + "from collections import defaultdict\n", + "\n", + "import pandas as pd\n", + "\n", + "from sklearn.metrics import (\n", + " precision_score,\n", + " recall_score,\n", + " f1_score,\n", + " brier_score_loss,\n", + " log_loss,\n", + " roc_auc_score,\n", + ")\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-100/train.csv\"),\n", + " descriptors=[ECFP.new()],\n", + " algorithms=[ # the CalibratedClassifierCVWithVA is used here\n", + " CalibratedClassifierCVWithVA.new(\n", + " estimator=RandomForestClassifier.new(\n", + " n_estimators=RandomForestClassifier.Parameters.RandomForestClassifierParametersNEstimators(\n", + " low=100, high=100\n", + " )\n", + " ),\n", + " n_folds=5,\n", + " ensemble=\"True\",\n", + " method=\"vennabers\", \n", + " )\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " n_startup_trials=0,\n", + " n_jobs=-1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " random_seed=42,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"calibrated_rf\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " calibrated_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "VennABERS uncertainty can now be obtained by running inference and supplying `uncert=True`." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "from rdkit.Chem import AllChem\n", + "from rdkit.Chem import PandasTools\n", + "from rdkit import RDConfig\n", + "from rdkit import DataStructs\n", + "\n", + "# get training data, mols & fingerprints\n", + "train_df = pd.read_csv('../tests/data/DRD2/subset-100/train.csv') # Load test data.\n", + "PandasTools.AddMoleculeColumnToFrame(train_df,'canonical','molecule',includeFingerprints=True)\n", + "train_df[\"fp\"]=train_df[\"molecule\"].apply(lambda x: AllChem.GetMorganFingerprint(x,2 ))\n", + "\n", + "# get test data, mols & fingerprints and calculate the nn to training set\n", + "df = pd.read_csv('../tests/data/DRD2/subset-1000/train.csv') # Load test data.\n", + "PandasTools.AddMoleculeColumnToFrame(df,'canonical','molecule',includeFingerprints=True)\n", + "df[\"fp\"]=df[\"molecule\"].apply(lambda x: AllChem.GetMorganFingerprint(x,2 ))\n", + "df['nn']=df[\"fp\"].apply(lambda x: max(DataStructs.BulkTanimotoSimilarity(x,[i for i in train_df[\"fp\"]])))\n", + "\n", + "# add uncertainty & prediction to the df \n", + "df['va_pred'], df['va_uncert'] = calibrated_model.predict_from_smiles(df[config.data.input_column], uncert=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is possible to relate the uncertainty to the nearest neighbor (nn) to look for distance-to-model (DTM) effect and to the probabilistic output from the RF model scaled by VA:" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9gAAAHkCAYAAADFDYeOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eZxc1X3njX/O3Wrt6k2tbqGlW2IREjKLbQQCY7DBgEFJGOxg53kcGJ7YiWfsEE8CM/697GRek3gmfgYP9jiOlxDswc5jBxscLwgDwRhiAxIYzCohC6RuLagXdXXXXnc75/fHqVtda3dVdVVXdff3/XoJpKpbt84999b5nu/OhBACBEEQBEEQBEEQBEEsCqXdAyAIgiAIgiAIgiCIlQAp2ARBEARBEARBEATRBEjBJgiCIAiCIAiCIIgmQAo2QRAEQRAEQRAEQTQBUrAJgiAIgiAIgiAIogmQgk0QBEEQBEEQBEEQTYAUbIIgCIIgCIIgCIJoAqRgEwRBEARBEARBEEQTIAWbIAiCIAiCIAiCIJqA1u4BLBeEEOBctHsYbUFR2Kq99lqhOVoYmqOFoTlaGJqjhal3jhSFgTHWlO9eabKSnrdyaE7KoTmpDM1LOTQn5SyXOalHVpKCXSOcC0SjqXYPY8nRNAW9vSHE42k4Dm/3cDoSmqOFoTlaGJqjhaE5WphG5qivLwRVbY6CvZJkJT1v5dCclENzUhmal3JoTspZTnNSj6ykEHGCIAiCIAiCIAiCaAKkYBMEQRAEQRAEQRBEEyAFmyAIgiAIgiAIgiCaACnYBEEQBEEQBEEQBNEESMEmCIIgCIIgCIIgiCZACjZBEARBEARBEARBNAFSsAmCIAiCIAiCIAiiCZCCTRAEQRAEQRAEQRBNgBRsgiAIgiAIgiAIgmgCpGATBEEQBEEQBEEQRBMgBZsgCIIgCIIgCIIgmgAp2ARBEARBEARBEATRBLR2D4AgiObDhcDRiQSSaRvhoI5Ng11QGGv3sAiCIIhVBMkigiBWI6RgE8QK48BoFHv2jmE8mobrCqgqw1BfENdfPIxtI33tHh5BEASxCiBZRBDEaoVCxAliBXFgNIp7HzmI41NJ+HQVkbABn67i+FQK9z5yEAdGo+0eIkEQBLHCIVlEEMRqhhRsglghcCGwZ+8YspaDnrAPhq5CYQyGrqInbCBrudizdwxciHYPlSAIglihkCwiCGK1Qwo2QawQjk4kMB5NI+TXwUpy3BhjCPk1jEfTODqRaNMICYIgiJUOySKCIFY7pGATxAohmbbhugKaVvlnrWkKXFcgmbaXeGQEQRDEaoFkEUEQqx1SsAlihRAO6lBVBsfhFd93HA5VZQgH9SUeGUEQBLFaIFlEEMRqhxRsglghbBrswlBfEKmsA1GS2yaEQCrrYKgviE2DXW0aIUEQBLHSIVlEEMRqp+0KNuccX/7yl3HZZZfh/PPPx8c+9jEcO3asps/+5Cc/wdatW3H8+PGi16+++mps3bq16M+nP/3pVgyfIDoGhTFcf/Ew/IaK2aQFy3bBhYBlu5hNWvAbKq6/eJh6kBIEQRAtg2QRQRCrnbb3wf7qV7+K7373u/j85z+PoaEh3HnnnfjoRz+Kn/70pzAMo+rnTpw4gb/+678uez2dTuPYsWP4xje+gXPOOSf/ut/vb8n4CaKT2DbSh1uu2ZrvPZrOOlBVhg0DIeo9ShAEQSwJJIsIgljNtFXBtiwL3/zmN3H77bfjiiuuAAB88YtfxGWXXYZHH30Uu3fvrvg5zjnuuOMOnHPOOdi7d2/Re2+88QY457jgggvQ3d3d6ksgiI5j20gftg734uhEAsm0jXBQx6bBLvIWEARBEEsGySKCIFYrbQ0Rf/3115FKpbBr1678a5FIBNu3b8dzzz1X9XNf//rXYds2/uRP/qTsvYMHD2LNmjWkXBOrGoUxjAxFsGNLP0aGIrShIQiCIJYckkUEQaxG2urBHh8fBwCsW7eu6PW1a9fm3yvl5Zdfxje/+U3cf//9mJiYKHv/4MGDCAaDuO222/DCCy+gt7cXH/jAB3DzzTdDURZnT6jWcmIlo6pK0f+JcmiOFobmaGFojhaG5mhhOmGOVoqs7IS57DRoTsqhOakMzUs5NCflrNQ5aauCnclkAKAs19rn8yEWi5Udn06ncfvtt+P222/HyMhIRQX70KFDiMfjuOaaa/CJT3wCzz//PO68807EYjH82Z/9WcNjVRSG3t5Qw59f7kQigXYPoeOhOVoYmqOFoTlaGJqjhWnXHK1EWUnPWzk0J+XQnFSG5qUcmpNyVtqctFXB9gqPWZZVVITMNE0EAuUT/bnPfQ6bN2/Ghz/84arnvPvuu2GaJrq6ZPuHrVu3IplM4mtf+xr+9E//tGEvNucC8Xi6oc8uZ1RVQSQSQDyegetW7mm52qE5Whiao4WhOVoYmqOFaWSOIpFA07wHK0lW0vNWDs1JOTQnlaF5KYfmpJzlNCf1yMq2KtheaPjk5CQ2bdqUf31ychJbt24tO/6BBx6AYRi44IILAACu6wIAdu/ejY9//OP4+Mc/DsMwyjziZ511FtLpNGKxGHp7exser+N09o1vJa7LV/X11wLN0cLQHC0MzdHC0BwtTDvnaKXdG3reyqE5KYfmpDI0L+XQnJSz0uakrQr22WefjXA4jH379uUV7Hg8jv379+MjH/lI2fGPPvpo0b9feukl3HHHHfiHf/gHnHXWWRBC4H3vex9uuOEGfPKTn8wf98orr2BgYGBRyjVBEARBEARBEARBzEdbFWzDMPCRj3wEX/jCF9DX14f169fjzjvvxNDQEK6++mq4rotoNIquri74/X4MDw8Xfd4rhHbaaaehp6cHAPC+970P99xzD7Zs2YIdO3bgmWeewT/+4z/iM5/5zFJfHrGC4EJQqxGCIAhi1VEo/7q7fOjuDrZ7SARBEB1NWxVsALjtttvgOA4++9nPIpvN4sILL8Q999wDXddx/PhxXHnllfjbv/1b3HjjjTWd7y/+4i8QDodx1113YXx8HBs2bMBnPvMZ3HTTTS2+EmKlcmA0ij17xzAeTcN1BVSVYagviOsvHsa2kb52D48gCIIgWkKp/NNUho1DR3DthRtx1saedg+PIAiiI2FCCNHuQSwHXJcjGk21exhLjqYp6O0NYWYmtaJyI2rlwGgU9z5yEFnLQcivQ9MUOA5HKuvAb6i45ZqteNsZa1b1HNXCan+OaoHmaGFojhamkTnq6ws1rcjZSpKVq/15qyT/XJcjbbrwaQpuvmYrGZlBz0k1aF7KoTkpZznNST2ycmU1HSOIJsKFwJ69Y8haDnrCPhi6CoUxGLqKnrCBrOViz94xcLJREQRBECuI+eRff8RH8o8gCGIeSMEmiCocnUhgPJpGyK+DleRbM8YQ8msYj6YxNp5o0wgJgiAIovksKP8CUv4dnSD5RxAEUQop2ARRhWTaljlnWuWfiQyXE0ik7SUeGUEQBEG0jlrlX5LkH0EQRBmkYBNEFcJBHarKquaEOA6HqjJ0BfUlHhlBEARBtI5a5V+Y5B9BEEQZpGATRBU2DXZhqC+IVNZBaS1AIQRSWQdDfUEMD3W1aYQEQRAE0XwWlH8ZKf82DZL8IwiCKIUUbIKogsIYrr94GH5DxWzSgmW74ELAsl3MJi34DRXXXzxM/bAJgiCIFcV88m86bpL8IwiCmAdSsAliHraN9OGWa7Ziw0AIpu0inrRg2i42DIRwC7UoIQiCIFYoFeWf5WJkXQS3XreN5B9BEEQVtHYPgCA6nW0jfdg63IujEwkk0zbCQR2bBrvIcr8K4ULQc0AQxKqhVP51d/lw/tlDiMXSHd+zdiFoPScIolWQgk0QNaAwhpGhSLuHQbSRA6NR7Nk7hvFoGq4roKoMQ31BXH/xMHlyCIJYsRTKP01ToCjLXwml9ZwgiFZCIeIEQRALcGA0insfOYjjU0n4dBWRsAGfruL4VAr3PnIQB0aj7R4iQRAEUQO0nhME0WrIg00sORSWtTJYLfeRC4E9e8eQtRz0hH1guWs0dBW6pmA2aWHP3jFsHe5dkddPEMTqoJE1fbnJAVrPCYJYCkjBJpYUCstaGaym+3h0IoHxaBohv57fjHkwxhDyaxiPpnF0IkFpBARBLEsaWdOXoxyg9ZwgiKWAQsSJJYPCslYGq+0+JtM2XFdA0yovl5qmwHUFkml7iUdGEASxeBpZ0/cfWZ5ygNZzgiCWAlKwiSWhNCzL0FUojMHQVfSEDWQtF3v2joEL0e6hEvOwGu9jOKhDVVnVirmOw6GqDOGgvsQjIwiCWByNrOmcCzz49OiylAO0nhMEsRSQgk0sCfWEZRGdy2q8j5sGuzDUF0Qq60CUbBiFEEhlHQz1BbFpsKtNIyQIgmiMRtb0wydiODmdWpZygNZzgiCWAlKwiSWBwrJWBqvxPiqM4fqLh+E3VMwmLVi2Cy4ELNvFbNKC31Bx/cXDVBCHIIhlRyNrejxlwVmmcoDWc4IglgJSsIklgcKyVgar9T5uG+nDLddsxYaBEEzbRTxpwbRdbBgI4ZZrtnZsQR+CIIj5aGRNj4QMaMtYDtB6ThBEq6Eq4sSS4IVlHZ9KQdeUorAyLyxrw0CIwrI6nNV8H7eN9GHrcO+yaklDEAQxH42s6VvWd2NdfwhHJ5PLVg7Qek4QRCshDzaxJFBY1sqgnfeRC4HR8ThePTyN0fF4WwroKIxhZCiCHVv6MTIUoeeVIIhlTSNruqIw7L5kZNnL81au550grwiCaB/kwSaWDC8sy+ubmc46UFWGDQOhju6bSRTTjvu4HPutEgRBLAcaWdO3byZ5Xg2SVwRBkIJNLCkUlrUyWMr76PVozVoOQn4dWkCB4/B8v1XKmSMIglgcjazpJM/LIXlFEARACjbRBrywLGJ5sxT3sbRHq5frZ+gqdE3BbNLCnr1j2Drcu6o3dQRBEIulkTWd5PkcJK8IgvCgHGyCIDqW1dh3myAIglh+jI2TvCIIQkIKNkEQHctq7LtNEARBLD8SJK8IgshBCjZBEB3Lau27TRAEQSwvukheEQSRgxRsgiA6Fq9HayrrQJS0OfH6rQ71BTu63ypBEASx8hkeInlFEISEFGyCIDoW6p9OEARBLAdIXhEE4UEKNkEQHY3Xo3XDQAim7SKetGDaLjYMhKjlCUEQBNExkLwiCAKgNl0EQSwDqN8qQRAEsRwgeUUQBCnYBEEsC6jfKkEQBLEcIHlFEKsbChEnCIIgCIIgCIIgiCZACjZBEARBEARBEARBNAEKESdWFVwIyosiCIIgSB4QBEEQLYEUbGLVcGA0ij17xzAeTcN1BVSVYagviOsvHq5a2bPaBqzw9e4uH7q7g0t8NQRBEESjNCIPiM7B4RzP7p9ANJ5FX8SPndsHoSkUlEkQRGdACjaxKjgwGsW9jxxE1nIQ8uvQAgoch+P4VAr3PnKwYvuMahuwHZv78OqRaP51TWXYOHQE1164EWdt7GnPBRIEQRA10Yg8IDqHh/eNYc8zY8iYDgQABuB7jx3C9buGce1Fw+0eHkEQBOVgEysfLgT27B1D1nLQE/bB0FUojMHQVfSEDWQtF3v2joELkf+MtwE7PpWET1cRCRvw6SrGTibwwJOHMToen3vdUDF6Mo5vPXQAB0ajbbxSgiAIYj4akQdE5/DwvjE88ORhpLIOFMagKgwKY0hlHTzw5GE8vG+s3UMkCIIgBZtY+RydSGA8mkbIr4OV5NcxxhDyaxiPpnF0IgFg/g2YwzlcLuByQNeU/Ov9ER9tzAiCIDqceuUB0Tk4nGPPM2NwuYCuMig55VpRGHSVweUCe54Zg8N5u4dKEMQqhxRsYsWTTNv5EG/TdpExHZi2C5FThDVNgesKJNM2gOobMMt24bgCmsLgOByWMyfEGWMIBWhjRhAE0cl48kDTKm9/SuUB0Tk8u38CGdOBprCKxhFNYciYDp7dP1H1HFwIjI7H8erhaYyOx8kgThBES6AcbGLFEw7q4EJgciYD1xX5nC1dUxAJGVAVBlVlCAd1AAUbsEDxBozznCBmgBAF/86haQrcjEMbM4IgiA4lHNShqtJIauhq2fuOw4vkAdE5RONZCEAK8ErkZHM0nq34NhW2IwhiqSAPNrHiSWUdZC0Xls3BGKAygDHAclxE41nEUhaG+oLYNNgFoHgDVoiiSKkuhAAE4HKR94IDS7sxIys8QRBE/Wwa7MJQXxCprFO0fgNybU9lnSJ50E5onS+mL+KXunW1aRBS9+6L+MveqlZXxStst1D9FLoXBEHUA3mwiRUNFwI/2zsGXVXAOQcXgMoYGAMUATiuAGMc1120Kd//1NuAHZ9KQdeUfCga5wKci5xsF5iJZ5HKqOgOGwgHdKQyDtYPhFq+MSMrPEEQRGMojOH6i4dx7yMHMZu0EPJr0DRZRTyVdeA3VFx/8XDb+2HTOl/Ozu2D+N5jh5DKOtAZisLEhRBwuEDIr2Hn9sGiz5XWVfE+Z+gqdE3BbNLCnr1j2DrcW/G+070gCKJeyINNtJVWW4W9fOrusIE13QEYmgIu5hRlQ1PgN1QEA3NeZ28D5jdUzCYtWLaLTNbGqVimyHCuMAbLdnFqNovxaGZJNmaLtcITBEGsdraN9OGWa7Ziw0AIpu0inrRg2i42DIQ6okVXp6zznea11RQF1+8ahqow2K6U4548t10BVWG4ftdwWT/sxRS265R7QRDE8oI82ETbWAqrcGE+tcIY/D4Nlu2CcwFFYdA0BfGkVZY37W3A9uwdw/h0GvG0BS4An6EiaKjIWC7sXAg55wIKA/79+8/G1k29TRl3JRZrhScIgiAk20b6sHW4F0cnEkimbYSDOjYNdrV97eyUdb6afP7dSzfj0t5Qy753Ibw+1/k+2Lmw8JBfq9oHu1pdFQ9NU5DOltdPqfVenHN6f3MvkiCIZQ8p2ERb8KzCWctByK9DC8gQPc8q3CwvQqWCNoWFbSzbrZo37W3A9r42jn9+/A34dRVBvwbGGCK5z3oWdAFW5AVvBfVY4UeGIi0dC0EQxHJHYazj1spOWOfnk8/feugAwl1+bFoTbMl318K1Fw3jqgs34tn9E4jGs+iL+LFz+2CZ59qj0cJ2td6LsfEE+vvCzbtAgiCWPRQiTiw58/WZ7gkbTe0nXWtBGyFExTA4hTFEggZUxhDIKdcehq7C79MQ8GtwXY5Ei6uHU3sZgiCIlU271/la5PP9jx/qiHDxS3asw+5LNuOSHeuqKtdA44Xtar0XrZb9i6XTQv0JYjVAHmxiyVlKC/1CBW0UBqQyNv7+X16tGqZei/VbUxV0tbh6OLWXIQiCWNm0e51fUD4HNJyYTGJsPIGNA8vDa9toYbta70WrZf9ioAJtBNEeyINNLDlLbaGvVtCmt8sHAJhJmvMWL1nQ+p1xsH5tGMNDra0evpzayxAEQRD10+51vhb57CxBxFazaaSwXa33otWyv1GoQBtBtA/yYBNLTjss9KUFbYIBHQ888QZmEqKmQjLzWb8DhooPvvdMKIyBV23QuXgKxzEdy8KnqzB02Uask9rLEARBEI3R7jZinRKx1QrqLWzXzHvBhVjSgnqdUiyPIFYrbfdgc87x5S9/GZdddhnOP/98fOxjH8OxY8dq+uxPfvITbN26FcePHy96/Wc/+xmuu+46nHvuubjhhhvwzDPPtGLoRIO0y0LvFbTZsaUfCgMmZjI1t+2Yz/p963XbcN6ZA00d63wEDBWm7WImaWJiJoOp2Qx6u3wd0V6GIAiCWBztbCPWKRFbraJwHzAyFFlQuWzGvTgwGsVd972Ir/zwFdyz5wC+8sNXcNd9L7bUg7yY1mQEQSyetnuwv/rVr+K73/0uPv/5z2NoaAh33nknPvrRj+KnP/0pDMOo+rkTJ07gr//6r8te37t3L+644w785//8n3HppZfi/vvvxx//8R/jRz/6EU4//fRWXgpRI+220AONte2oZv2uZOVvBYWVXdd0+yEA2DaHabtIZ5dXuB5BEARRnXa1EeuUiK1OYjH3Yqk6ppTSaGsygiCaQ1s92JZl4Zvf/CZuu+02XHHFFTj77LPxxS9+EePj43j00Uerfo5zjjvuuAPnnHNO2Xt33303rrrqKtx88804/fTT8V/+y3/BOeecg3vvvbeVl0LUSTst9EBxGFwlqoWp12v9bhal4V4+Q4Pf0NAVMtDf7Ydp86ZVXicIgiDaT7vkTSdFbHUKjdyLpeyYUkqjexyCIJpDWz3Yr7/+OlKpFHbt2pV/LRKJYPv27Xjuueewe/fuip/7+te/Dtu28clPfhJ79+7Nv845xwsvvIBPf/rTRcdfdNFF8yrsRHtol4UemAuDOz6Vgq4pRSFUXpj6hoFQxxQM64TeqARBEMTqoN0RWyuBdsrt5bbHIYiVRlsV7PHxcQDAunXril5fu3Zt/r1SXn75ZXzzm9/E/fffj4mJiaL34vE40uk0hoaGaj5fPVSrqrmSUVWl6P+NwIXA2HgCibSNrqCO4aFiJfqMDT2LHWZD/O6lm/Gthw4glrQQChSEwWVkGNzvXrq5ps1EM+aolNI5S2UduK6AHlRQyf6g6zLcK226HfmctmKOVho0RwtDc7QwnTBHnbQGOZxj32sTOBXLYk23HxedMzhvz+RCOmEu202pfKY5KafanKRNt61yu1l7nEahZ6UcmpNyVuqctFXBzmQyAFCWa+3z+RCLxcqOT6fTuP3223H77bdjZGSkTMHOZrNVz2ea5qLGqigMvb2hRZ1jOROJBBr63EuHpnD/44dwYjIJx5XVR9evDeOD7z2zKWFmnAscPhFDPGUhEjKwZX03FKU2D/ilvSGEu/z58WVMG5qqYPP6bnzgPWcgHDBwZCJV83kbnaNSKs1Zb8QPABCi8ubVtFwYuor1g5GOfk6bNUcrGZqjhaE5Wph2zVEnycofPvEG7v/5b5HKOBAQYGD47r/+Fh+88izceMUZNZ9ntTxv9cjT1TIn9eDNiTePiYwDxhg4FzCMckW21XJ7vj1Os/ZgtUDPSjk0J+WstDlpq4Lt90ulwbKs/N8BwDRNBALlE/25z30Omzdvxoc//OGK5/P5fPnzFVLtfPXAuUA8nl7UOZYjqqogEgkgHs/AdSvn8lRj/5EovvXQAWQtF6GAhoBfh+NwHDkRw9/d9xvcet02bN/ceK71/iNRPPj0KE5Op+C4AprKsK4/hN2XjNR83k1rgvjU75+b9xaHAhpG34rjH3/0CmaTJoQAdE2Z97yLmaNK11RpziamU8iYDhyXY02PvyzcK56ysHFtGL0hDTMzqUWNoRU0c45WKjRHC0NztDCNzFEkEmia96BTZOVDz4zhB794A5wLqCoDA4OALP707T37kUlbuG7X8LznWE3PW63ytJY5WShqbaVROCevvHGqaB7TWQeJtIX+bh+C/rl856WS26V7nML70eq9wmr6/dQKzUk5y2lO6pGVbVWwvdDwyclJbNq0Kf/65OQktm7dWnb8Aw88AMMwcMEFFwAAXNcFAOzevRsf//jH8Sd/8icIBoOYnJws+tzk5CQGBwcXPd5qxSJWA67L67p+LgR+8tQRZEp6MOqaiu6w7MH4k6eO4IwN3Q0J3tLKnMFcZc6jk0l886EDdRdK2zgQxoHRKP7PQ6/j2ERSejsYg64p0DSlpvPWO0elLDRnjsNhORzRuIlwQC+rvP7+izaBu6KjK7sudo5WAzRHC0NztDDtnKN23xuHc/z0qSNwuYCusvxaygAwFbBdgZ8+dQTvfcf6msLFV/rz1og8rTYnB0aj2LN3DOPRNFxXGjeG+oK4/uLhFd9G8pU3TuGbDx0omkdVZZhJmJiazaK3SyAU0NsitzcOhPN/X+p9wkr//TQCzUk5K21O2hrwfvbZZyMcDmPfvn351+LxOPbv348LL7yw7PhHH30UDz74IH70ox/hRz/6ET73uc8BAP7hH/4BH/7wh8EYw9vf/nY8++yzRZ/bt28f3vnOd7b2YogiWtmDsRWVOb0NxvFJqVxrCoPCANtxEU9Z8BtKSyt+ciGw97VxHJ1MwtDKQ8kYY4iEDfgNFWu6/W2pvE4QBLEceHb/BDKmA01hFeWPpjBkTAfP7p+ocobVQzPlaV6OTiXh01VEwgZ8uppvSdXKvs/thnOBB58eLZvHrqCBgW4/FMYQT1mIJcxlIbe5EBgdj+PVw9MYHY9ThxKCqJO2erANw8BHPvIRfOELX0BfXx/Wr1+PO++8E0NDQ7j66qvhui6i0Si6urrg9/sxPFwczuUVLjvttNPQ09MDALj11lvxx3/8x9i+fTve/e5344EHHsCBAwfw3//7f1/qy1vVtLIHY7Mrc3objFTGhhACmiILkjDIPy4XmE1Y6ArqGJ9ufsVPz+J/bDKJVMZGJusgmbERCRkI+OZ+opqmQGEMv/euzYiEjCWvvE4QBLEciMaz0j9XbVlksp5FNJ5dwlF1Js2Sp6WKuncuQ1ehazJqbc/eMWwd7m2bvOJCtKxryeETMZycTlWcx4Bfx1pVQSrr4Hd2DeP0Dd0dLbdXcxQCQTSLtirYAHDbbbfBcRx89rOfRTabxYUXXoh77rkHuq7j+PHjuPLKK/G3f/u3uPHGG2s637ve9S78j//xP/DVr34VX/ziF3HGGWfg61//Ok4//fQWXwlRSGEPxkpVKhfTg7HZyru3wfAZKrKWm9+UcSHgcgEhkA/NVlWG/UeiTVOwC0PzfLqKVMYGA2A5LqLxLPoi/ryS7c1ZJGRQKy6CIIgq9EX8chkXqKxkC/lyX8Rf4c3VRbPkaae3kmy10hhPWXBcgeA888gADPYFO1p+l6YLaLl0AS8KoZO97gTRSbRdwVZVFXfccQfuuOOOsvc2bNiAgwcPVv3sRRddVPH9G264ATfccEMzh0nUSSt7MIYCGgQEUmkbhqHCKDl/vcq7t8EI+HKGAAFwCDhucUgUY9Kb/fMXTmDzusiihUwli38yY8NyOFTG4OaKoPhz1UfrnbNWWOtb6QFYSdA8EUT72Ll9EN977BBSWQc6Q5n8cbhAyK9h5/bF12ZpF1nHwfcfO4TJmQzW9gZw01Vnwq/Vv6VrljG8lVFri2UplMZIyIDWIqfCUrEcohAIYrnQdgWbWJkojOH6i4dx7yMHMZu0EPJrZUW5rr94uO5F2rNCp7MOXC6g5AqReeHUjSjv3gbDK2pmORwil2/EgHwpEAEpaByX54UMABw5GceRiRTAXaxfE6r5mipZ/LtDBqbjWbgCUMBgOxzprAPL4XXNWSus9RQ2Vhs0TwTRXjRFwfW7hvHAk4dhuwKagvxi7nABVWG4ftdwzf2wO40v/eBFvPzmXD7z/rFZPPHiSZx7eh8+9fvn13WuZhnDWxm1thgKU8BCfrnl9XLMm6k0blnfjXX9IRydTDbdqbBUdHoUAkEsJ5andCGWBdtG+nDLNVuxYSDUlKJchQVUIiEDCpPC07JlOHUibWE2adWtvHsbjFTWQSSoy31YTqsu9GErTCrA4YCO8WgaT/7mBO6670V8+Qcv4Uv//AK+/IOXcNd9L9ZcyCVv8S/oa+33aeiP+GFoCrgQ4EIgW+ectaLQzGouXlMPNE8E0Rlce9EwPnD5FoT8Wj7dhwvpuf7A5Vtw7UXzt+jqVEqV60JefjOKL/3gxbrO5xnD/YaK2aQFy3bzcrUeeVooR0VJQSxPwRzqCy65gvnkb07gt8dmkTEdTMdNTM5kMBFNI2s6iy64WoiiMOy+ZGTR89hOKu1JCtE0Ba4r2hKFQBDLDfJgEy1l20gftg731hwuWy20tlLokq4qiKWkIHNdGU595oZu7N41UpfyXuhtz1ougj4ViYxTdIyuKejt8iHgk5u1eMrCT54ehRAC4YAOv6EhazlFIWcLXXc1i7/fp8Hv05DK2DBtFx967xm4+JyhmgRzK0K8KGysNmieCKKzuPaiYVx14UY8u38iX9Ni5/bBRXuuHc6bfs5ayDpOVeXa4+U3o8g6Tl3h4p4x3Iu8SWcdqCrDhoFQzZE3rYpaWwwHRqP4ydOjcLmAyhiYwoBcTZXpeFYasw21aaHr2zcvfh7bSadGIRDEcoQUbKLlKIzVFE40X2htIGdlLgxd8hRRy3ZhWi4cLvCBK87AlnXyu+rJgy3cYByfSuWriKuqgnBQR1dg7nsdh8O0ZQ/2/m4/FIVBUXJtTVSpSH3/F28glPN0VwsTXig0z3I4Nq4N16xcA4sL8ao2XxQ2Vhs0TwTReWiKgkt2rGva+R7eN4Y9z4whYzr5Gmrfe+wQrt813HKv+PcfO1TzcTdfu62uc9drDK92jk5RMD2Dp+NweQ05mQ4GaIzB4QKxlIVexddUpbEZ89guCvckmsqQMV04LoemKgj41GUR5k4QnQIp2ERHsFARknefu65qARVDV6FpCuJJC+mMnT9fvXmwnmAcHU/g2w+/julYFn0RH5QCz4TIea8BoCtYWZHSVIZjk0kEfJosfFKloEorLP61FJpJZR28cSJWJPwPjs1UnS+Xi44tXtNJdHKRH4IgFs/D+8bwwJOH4XIBTWH5vO5U1sEDTx4GgJYq2ZMzmaYeV0qtxnCPSkbZTlEwPYNnV1CHywUsx5WtN3PjUBmDZbuIpywMD3U1VWmsdx47BW9P8tUfvYpjk6my90N+rePD3AmiUyAFm2g7tYTWPv/bKahKbaFLi6kYqjCGLesi+NB7zsC9jxxELGWXKb56Lj9JrzAOL9dMCCmMvLFWCxNutsV/oRCvVNpGOmvjwadHwcCgqgxdAR2xlJXLTyyfr2t2buzYsLFOqtZN4XUEsXJxOMeeZ8bgcgE9VxQTAMAAnQG2K7DnmTFcdeHGloWLr+0NYP/Y7ILHDfQGWvL9hew/EsVPnjpS1YjdbgXTM3jqARWRkIFoPAtXCBTUu4MQMv2LlMY5xiYSyJhOxfcypoOxiUTHh7oTRCdACjbRdmoJrZ1Nmujt8uFUzJy3QueGtWF86fsvLToPdj7F9x1bB7DnmbGKipTlcNgOB2MyvLzStZSGCTfT4j9f2Hkma2MmaUJhDEGfBl1XYdsujk+lwIXAQLc/fz26piDoUxFP2fjVyyextsePt6YzHVUdtdOqdbeyNR1BEO3l2f0TyJgONIVVjlxSpALy7P6JpoakF3LTVWfiiRdPLnjc+HQaB0ajLVsHXzo0hW89dACZDumVXMnQWmjwDPg09EX8iKcs2A4Hz31OVRl+59L6arasZDwjEheApjLMmSLk/50lMCIRxEqBFGyi7dQSWsuzwNvPHMC/vXxy3nDq45PJpuXBVlN8AeD5g1MVFSnXlS2+DE2p6MWsFibcrJCy+cLOp+MmAKC/2wefkfvpF4w9nrYR8OvImE5+IyKEwNh4AoO9QSgMHVW8ptV9TeulE4v8EATRHKLxrOwqUe3ny6RHNBrPtmwMfk3Duaf3zVvozKcrOBnNtGwd5ELg/scPIWu5HVHMsZqh9f0XDxcZPAM+DX5DheVwuK5sf7lpMIzLz1/f8jEuFwqNSHP3bu7/S2FEIoiVApmgiLZTaGmuhBda61XonK/tV7PbTHiK744t/RgZikBhrHJbEy7bcaSzDhgYQoHKYcBLESZcqT1aKuuAMeQqoc99N+cCAjIfzXY4EmkL0XhW5qsx2XoEAGK5vPPesNGUlmuLoTSlwNDVfF/TnrCBrOViz94x8JJWMUtBs1vTEQTRGfRF/FLVqLasCKmK9EX8LR3Hp37/fJx7euV1xG+oGOoPtXQdHBtP4MRkEqGAtqARu9XM1xbxO48cxI7NfUVy2vPFmjZHKKBj964RMngWUJMRCa01IhHESoE82ETbqSe0VmFs3nDqUmWdc5Gv8A00T8EtDCGfiKaRMV0oDNg0GEbadDGTMCGEaFuYcKn3fSKaxk+fHi1T/BWF5SurCi4ND1zkWpowBiGkkzsS0pE2XYQCOm6+ditSGaftxWs6tVp3pxT5IQiieezcPojvPXZI1uFgKFvbHS57bO/cPtjysXzq98/HoeMz+F///BIAAUNX0Rs2oKhSzrVyHUykbTguR8BfWYYuVTHHWmq3vHokipuvPgsP7Tu65FXNO6k+SK0UGZEqDXWJjEgEsRIgBZtoO/WG1s4XTr1psAtdQQPHJ5NFCq6uKYgEdWRt3jQF11OkTpxKAYoKcBfr14RwcGymrjDhVgniwnkKB/X8OApD1w1Nga4p0rovAIcLKGwux9DNhbv7DOmtGI+mwRjDji39ix5foyyHat3LtYosQRCV0RQF1+8axgNPHobtCmgF1bIcLqAqDNfvGl6y3FTTkrnFkbBRUV60ah3sCurQVClLdK19xRxrNbQGAzr+/EPnL6my22n1QWqlk4xIK4nCPV53lw/d3cF2D4lYAkjBJjqCZlXTPjg2g1jSBBci15IDgABM28VUzEV3yGhqHqzCGDavi6C3N4SZmRQch9d1LUsliKtFCTDGEAnpmJp1c3MlXdZCSOVaYUB3yADQGYorQNW6CYJoD14Lrnwf7JxHL+TXlqQPdiHtWgeHh7qwfm0YR07E0B1uXzHHegytS2nw7MT6ILXSaUaklUDpHk9TGTYOHcG1F27EWRt72j08ooWQgk10DIsNrfVCxlzO0RM2kMw4sugYkD9Hd8jA1uHeusbViIe59FpCAQ0CDOmMjdHxeL739FIJ4vmiBLIWR3fIgN+nYTKaBucCjEnvtvc60DmKK1XrJgiiHTicIxIycNU7NyCWNNET9mFNTwA7tw8uudLRrnVQYQwffO+Z+Lv7ftPWYo6daGitJWx9KQvAFY6r1j1MJxmRljuVjC2uyzF6Mo5vPXQAN3ewsYVYPKRgEx3FYizNRycSODaZhGlzpLNurlgHg6ZIIevTFCQy9oI5aYXCaCqWwfMHpxryMHvXcmA0igeePFx2jlTGXlJBvJBn/cxNPfj8Pz2P8ekMIiF9rtI4OktxpWrdBEEsNQ/vG5tTOiCVjoBPa5tHr53r4HlnDuDW67bl+2AvZW6zRycaWsfGO68+SCNRctdeNIyrLtyIZ/dPIBrPoi/iw2BfCJmsk3cQkHydn2rGFlVXEfBpODWbbYuxhVg6SMEmVgz7j0SRysjwZUVhUCBrdbicI5GyoEV8C1YQLxRGpuUiYzpgjKE7bCASNur2MFcLFxsbTyBjOujp8i2pIF4oSuAD7z4d9z5yEGnTlb1dO1RxbVZKAUEQxEI89MwYHnjyMFwuoCksHzabyjp44MnDANAWz14718Htm/twxobuthXy6kRDa6LD6oMsJlxdUxRcsmPdss0nbzcL1ggItLcYK9F6SMEmVgRcCLxwaApCAGpBD0eW++MKgVhOCFcLGSsURkGfhlTWyZ87nrKgqwr8Pq3MwzzfmKqFi4X8GtJZB6msg3CgfAFupSCeL0qgExXXauFtVK2bIIhW4zgcP33qCFwuoKtzBSDBAJ0Btiuw55kxXHXhxrZ4stu5Dra7mGOnyauuDgpbr7T/8FqKBn0q0qazoAd1OeeTt5taagS4mfbXtCFaBynYxLJhvjyioxMJzCYs6JoiK2FDhokJIN9awrI51q/xVQwZKxVGlsPhOFx6whmDwwViKQt+n1bmYT5jQ0/F8c5nwVRVBYwBtsNhORy+EmHcznznejdsrWxHspD1vN0bPIIgOgPLdfHwM2OYms1goCeAa3cNw1DLlZx6+eWLJ5AxHWgKq+iJ0hQgYzp4dv8ELtmxbtHf1wireR3sJEPr8FDnhK0X7j9My0UsZcHOtS8FpCPi2GSyqge1U/PJlwudWCOAWFpIwSaWBQspWsm0DZcL9IQNRBMmbJcDQoaIF7JxIFxRGJQqw5xL5dyzPaqMSWXYdmHoak0e5vksmJ6QshwO1+VAbgG2bBeuK0Pchoe6sGFtGKPj8Y71TLQyfIys5wRB1MK9Dx/AL18+CT6nP+AnT4/isnPX4ZZrty3q3FMzmVw9jyoHMNl8IRrPLup7iMbpFANDq8LWGzFie/sPV+GIJsxc8VIGxgAGBtvlcDIc+49EK85drW3QKMS5MgvWCMg4WN8BNW2I1kEKNtHx1KJoedZCVVXQFdAxm7TKlGsAePVIFAdGo2WKWakyrCjMS7OT+6rcPziXZ63F+riQBTPk12EnLaSzDlxXIJW1YTvc65SFU7EM/vu3n0cibXVk7lMrFWCynhMEUQv3PnwAT754sux1zpF/fTFK9kBvQMqAvDAoIRch1RfxN/wdxMqh2WHrjRqxw0EdqsIQTZhw3NxuSMj/MyZbcHIBPP/bKVxbQemvpw0aUU41Y4vrcKRNt6Nq2hCtgZrZER1NqaJl6CoUxmDoKnrCBrKWiz17x7BhbRhDfUEkMzbSlgumAJrCoKnyj6Iw+HQFDufYs3cMXBSr34XKMCBbVOmaAi4EhJhzhSsKy4d6DfUF57U+ehbMVNaR5yhACAGHC2wcDKO/24/ZpAXL4QBjMAwVoYCOqdksjk4kAACRsAGfruaV1wOj0SbOcv3Uel9K57lW6rGeEwSxOrFcF798eU65ZgV/PH758klYrtvwd1x2/noEfBocLqqu4wGfhp3bBxv+DmJlsW2kD3/+ofPxyRvfhj+6fhs+eePb8OcfOr8h5freRw7i+FQSPl2tax+wabALPl3NK9eFvw0hAJfLMPHZpFlRjpbuiUqhEOeF8YwtGwZCMG0X8aQF03Ixsi6CW6/b1hGOEqJ1kIJNdDTVFC3LdmFaLgxNwfh0Gscnk7j+4mFoqgLLdqGAgSkMDAxcAAoDesI+hPx6RcWsVBlmjCESMqAwBpcLOJxDU+X3zyatmqyPngXTb6hSgbZdcCFg2S5mEiZUheGdWwegMMBvKFjT7cfa3gDW9vhhOzy/SUxnnaYqr82g1Qpw3nquzVMgZIGK8ARBrGwefmYsHxZeuhJ7/+ZcHtcomqbgdy7dDFVhsF0BzgW4kP+3XQFVYXW16uJCYHQ8jlcPT2N0PN7WdbxdrIY58MLWd2zpx8hQpKGw8MUasV0xpxyLgj8eDFLRriRHF3IQ1OJkIMqNLbf9/nn4bx/bhe2bSble6VCIONHRlIYpZU2nqFiHEAKKwrD/SBTX7RrBlW9fj3/51RGZb5STLYamoDtkwO/TwIWoGNZUKZzHZ6iIhAzEkhYgAE1VYNpuXaFelcLFvM2ZA46Hnz2KTNaBlsvR8ekqTNuFnSuwxlCc+90puU+tDh+jAiEEQSzE1GymqcdV47pdw+Ccz/XBzoWFh/yyD3atLbqo5RHNQa0sNgf66EQCWcsFY/nI8LnPQ0bjubmUt0pytBPboC1XCmsEaJoCRaE5Ww2Qgk10NIWKFucC0/EsuJBFx8AAwQGXC/z8hRPYvC6C7Zv78PgLJ6AoTLbrUliRgjafYlYtd+qsjd1459a1GOgJNFRorLDK6f4jUTz+wgk4jCPk1+G6HJmsA8fhiMaz+Ty+fIG1ktxvoDNyn1qtAC9YIGQJq7ESBNGZDPQEmnrcfFx70TCuunAjnt0/kV+rd24frNlzTUUbaQ7qYbFG7GTaBoSsW2LZLlSvmMxcG3dwDvSEjapytNPaoBHEcoIUbKKjmVO0kjAtF1zI3GpAKlocAoauwnFlbvWnbjoPQ/1SMesJG3UrZq1q+aEwhk2DXbj/iTfhcD7XlxLSGs0w12+7O2zMFVgryP32aIX3tt4qpa1WgMl6ThDEQly7axg/eXoUnJfXIPNMkooij2sGmqI01IprMUUbW9kGcSmhwpX1sVgjdjioQ9OUXDoVBxeysNmcci3AGHD5+afNO9+d1AaNIJYTpGATHY2naN2z5wAStg01V2RMADmBwdAdMqAqDOPRuVzsxShmrWr5USnkq7Bdl5JrBcYA+ZrtQkDAp6t5AdsK720jIXtLoQCT9ZwgiPkwVBWXnbsuXy28UjbqZeeua0o/7MXQaLjvSgqnprZP9bFYI3bh5/siPsRTsksJR67YGZOy9PLz1y84lk5pg0YQywlSsIm6aIY1vd5zbBvpw3vfvh7/8ssj4PIEAGPQNRXdIQOBktzqHVv6F1TMlsIrUPod8ZRVMeSrO2RgOp6FywUYAIcLBP0aTFtWvg3mrm8+5bXR61lMyN5SKMBkPScIYj68FlylfbAVBYvqg+1wjn2vTCBtcgR9Ct6xdaDmcPBSGgn3bVc4datkI7V9qo/FGrELP5+1XPSEDQgAts1h2i6Cfg03veeMos87nNecArFSIisIolWQgk3UTDOs6Y2eI+DXAIh8sQ4mRFHljtJwqfkUs0bGUK8wqfQd3SEjrygXhnz5fRr6I37MJEw4Lkc268AwVGxaGwYYQyJtIZ60qiqvjc5pM0L2lkIBJus5QRDzccu12/AH7zsLDz8zhqnZDAZ6Arh213DDnuuH943NFTSD9Pj9k6++gmaFlLY84lwU1QcplV/tCqdupcecClfWz2KN2KWf9+7p8FBX2ecrPfPfe+xQxWd+JUVWEESrIAWbqIn9RxZvTW/UIn9gNIpHnj0GL3tIU5i0xLpeYTAfshYvC5eqpJg1MoZ6hUm17zgVyyJrueCuQH+Pvyjky2eo8PtUrOkO4fcu3Yyu0FzhkfmU11qup5oC3KyQPVKACYJoN4aq4nfftWXR53l43xgeePIwXC6gqSxfhTmVdfDAk4cBoG4le9NgF7qCBo5PJvNtIAGZChQJ6sjaxfKrHeHUrfaYU+HK2ig15m8d7l2UEbsWI3jRM1+QqF3pmadCdQRRG6RgEwvCucCDT48uypreqEW+8HP9ER+iCRNuroq4wuTYpmMm+iK+BXN+GxlDLcLkbWesqek7ejUFp2JZWA7HbNKU5ysK+dLwgXefXiacqm2garme7z/xJoI+FRMzmTLjgMsFhewRBEHkcHKtuFwuoKsMLNcqUTABHYDtCux5ZgxXXbixrnDxg2MziCVNcCFy+a8ABGDaLqZiLrpDRpH8Wupw6npkY6NQ4cqFaZVneD4jeNkz780/A3RW/MwrjFGhOoKokcYSiohVxeETMZycTtVkTa9GPRb5ap8L+HX0R/wwNAVcFISLM+DanZsWFED1jqFo0xEyYDsciVwP7p6QjqzlYs/eMfCCUPWFvqM7ZMBvqFjT7Ydpu4gnrXxv7Xotvwt9l6YwHJtI4uhEEj5dRSRswKereePA1GymKGyxFArZIwhiNfHs/glkTAeawqquqRnTwbP7J2o+pydHuBAY6PHD0FUIAXBIxccr1FmovJaGlJfS7LW5UflcL17I8oaB0KLl33KBC4HR8ThePTyN0fF40X6hEM+Yf3yqXF7/n4dfxy9eOL7gORqhnmd+qZ4TglgJkAebWJB4yoLjCgQXYU1v1CJf+jm/T4Pfp8Gy3XybibTpYqAnsGCedL1j8IQJBHB8KoWCVtRQGBAK6BiPpjE2nkB/X7jm71AYy4eB1xvyVXiNE9E0HIcjFKi8yUplbQjIgmlezluhpfnXBycpZI8gCCJHNJ6VlcirLcW5cPFoPFvzOQuVEkNX4Tc0WA7P52FDCCQydlG491KHUy+Vx5wLgYBfw9UXbkQyY6MroOfToVaix7NWj/R8EQQu55iOmfjezw8h6NehNTnfudZn/o0TMUTjWViWLJBWCYp6I4g5SMEmFiQSMqAtsjhJowVOqn3O+7tlu9BUhqlYBnfd9+K8gqyWMSgKEE9bePXwNMZnZFGRrOWWHcsFkEjbMDQFL785jUhXAL0hrebr7AoZdefOlQprASBtOtA0BV1Bo+hYy3Zlyy/GoKrFmybP0jwxk8H1u4ZxKpalkD2CIFY9fRG/1DNKm2p7CPlyX8Rf8zlLlVfGGHwFsoELgYzpFiklSx1OvRQFyOZTNlspY9pV7bqeXOVqnuGM6SAaN2VrUgEEfSoYY03Ndy585gUAAQEGWXsAkGl4QgDPHZgEmByTNcPRE/Yh4CtWISjqjSDmIAWbWJAt67uxrj+Eo5PJhq3pjVrkq33Osl24rtxsrOn245Fnjy0oyBYaQyxlgQH4Ya7YB+c8r1yXimPPmW05HA/vHcO/vfgWBnsDuHbnxpZ4HqoJ61TGxkzChKYyBHxzQs11OYQADF2BoZV7JTxL80B3gHpNEwRBANi5fRDfe+wQUlkHOkPZ+u1wgZBfw87tgzWfs1HldSnaIHq02mPersJY7ap2XW+9l0oRBEIIxFMWuJCRDl7jFJ/hncPEA//2Jn7P5YuKAti5fRD/9Ohvc3sdb2cjowMZkI/cCwc0GIaGCTsNy+b5Vl6ekk1RbwRRDCnYxIIoCsPuS0bwzYcONGxNb9QiX/o5TWFIZW3YDs/nYE/wDBTGsKagMnc1QVZtDLGUBdNy4dNV+AwVmqYgnjTz4/DEDiv4u4fPUOD3qTg2mcS3H/0trjj/tKZ6hecT1v0RH6ZiWUzHTAz0MOi6mv8uxoCQXyvLlQKKN3UjQxHqNd0iqFcoQSwfNEXB9buG8cCTh2G7AhoAxqQHz3EFVIXh+l3DdRU4W4zyuhRtEIHWeszb2XKsXdWu58tVBgBDU3B0Mom9r43j4nOGKhphLIfDdjgUliu0h1xKAQDTcpE1XYyeTODun+6HrivoCfvwjrMGsH1zX13PyKGjs1CV8mOFmNvr9IR1+HMG/N4uH07FMnBcgdmkCUNX4LqCot4IogRSsIma2L558db0Ri3y3ue+/8SbODaRlCFMjMHQFfh0BYm0DYVJoeMvCFmq1M6k0hgURSrOPl0tUtJdt7yQSKXSIpzLz/Z0GZhJWHj1SBR/eM1W/KxJnof5hHXAr6PXFYinLaRNB8x0830uUxkbM0mrqC0MUHlTR622mg/1CiWI5YfXjqi0J3DI31gf7MUqr0u1NrfKY96OlmPtUuo9quW0Z0wH8VyhVC4E7nv8DTz96jjef/FwmRGGc5kGpgBwhYChKTB0FVnTwXQ8C5fLivSqxpDKOphNWhgbT+CR545h49pwTffMmydVZegJ64in7KJaM4CsN9MdnkuJ8Ps0rOkOYCZhwnE4ZuMmDEOlqDeCKIEUbKJmmmFNb/QcW4d7EfSpCPhUBP0aVFWGPmctF8mMA54L8faX5ARVKrpROoZ42sIPnzwMn6HmBXHGdJA2nZquSdPmcuu8zULIr+HPP3R+UzwPCxWgCQV1OFxg9yXDGOoN5r/r4NgMtURpE9QrlCCWL9deNIyrLtyI5w9OIW1yBH0K3rF1oC7PdSFLGe69GFrhMV/qlmNAe5T6Qip5pGU+dVaGfIPljfrHp1L4ziMHyyLfvGE7XEZOdIdknZVYygIXgKowcC7nV0D+2+UCpuXi+FSyJjlTWoCvK2ggbbpwXFmEL5G7J5btFqU3+H0aBg0VM/Esrr5wI3Zs6afoLIIogRRsoi6aYU1v5BxHJxKYmMkgEjKKFnpFkYJKYQy2w8sEQbX8tsIxvHp4Gi4XeUXZy32qpRGGwoBQgVJfuFloluehlhw+TWU4Y3130fctl03dSqPd3hOCIBaPpii49G3r0NsbwsxMqmrLrFpZqnDvxdJsj/lSFFArpR1KfSGlaQEA8vnUKmNwhZQHoYCOoBCYTcrIt5uvPgsP7TuK8VyHEIUBAgx9Xb589xTb4VAgi48BMkfaa7HFckp20KchbboLypnSeVIUBeHc303bRTrrQAiR/65CvPu5Y0s/Rb8RRAVIwSaWBdUEpqEp0DUFli2LkRUKglqLbpRuALzcJ1Vh4EKAz7Ov6g4ZYAX5S63YLCyHHD5ijnZ7TwiC6ExWYyrOUrccA9qj1BdSmhZgaEpOMZbKtcKQ90gXyoRgQC+KfJuKZXIFXF2oqpsrXipDxxljEEJ6t/NzmisSIwRqkjPzzZOhKVBVBtsWKN0uUEEzgliYxuKdCGKJKRQEhTDGEAkZOWEDWf1bCFi2i9mkVVMotLcBSBVYa728O01RqraHDPlVRMK+/L89oTPUF2yq0PGEtd9QMZu0ZA/wOq7R29R5lmZSrltL3hhUoXo7IL0nriuoVyhBECuexcqvRiiV6YW0Sk6X4kWQbRgIIZu7Zp7Lpe6P+IvS2QplQqG8fs8FG/LnMG03n7YmW3PqAGPF+5PcpSoKq0nOzDdPAKCpivT2m86S3DeCWEmQB5voeKRgAsIBHdOxLPoiPigFuXB+Q1b+ZpAe7HjSqisUupK1mUFagV0hi1P1dfnABeC40rudzjoAGCzbha4rMC0X8VTrhM5yDPcurKDd3eVDd3ew3UNaEtrtPSEIor04nOPZ/RP5VkY7tw82nL+9Elhq+bXUfcSr4UWQ7X1tHPc9/gZ8ubDwUuaTCYVRaPGUhR//6ghOxbLwGyoSufxr7yoKi6FZtrugnFlonsIBHVecfxpePRJdNvsOgugUSMEmOprCSsym5SJjunjrVBrdYQOhgF4kCG6++iwEA3pDodCFG4CT0ykA0htu5Npf+At6Pc4mLWwaDCMU0PNCx9BVbFwbxvsv2tQyobOcwr1LK2hrKsPGoSO49sKNOGtjT7uH11LaERJJEERn8PC+sbIK5N977FBDFchXEkstvzrFKK0whovPGcLTr47j+FQKwRq6elQ6hxfmrasK7n3kIFK563EcDjCAYy70vB45U8s8Xb1z07LYdxBEJ0EKNtGxlFZiDgV0pDI2YkkLswlT9q1uYnuIwg3A/iNRPP7CCTicQ8nlYhdav296zxn5Y9Omi/WDEfSGNPAKrb2ayXLI4atUQdt1OUZPxvGthw7g5hVeQbtTvCcEQSwtD+8bwwNPHpZFMxWWz4lNZR088ORhAFjVSvZSy69OMUo3UyYUKsTHJpNwHA6XC+iagp6wAUVhdYdwLzRPy2HfQRCdBinYREdSrRJzV9DIh4r3d/txy7VbMdzEvGJPkIwMRbB5XWRB6/fIUASapuQrzfKaao/PT2FodSigQYAhnVkeluNq903VVQR8Gk7NZldFBe1O8Z4QBLE0OJxjzzNjUtlRiwtP6QywXYE9z4zhqgs3ti1cfDWGrneKcthMmVDqDHjh0BRmExZMm0PloqFzdso8EcRKgRRsoiNZqBJzJGQgmbHBGGtpiNlSW79LQ+LNXHV0ny7zzIf6gh2toC1YQTuweipod4r3hCCI1vPs/glkTCffMqkQxhg0RfZCfnb/BC7ZsW7Jx0eh6+2nmTKh0Blw7cXDJGcIosMgBZvoSNrdx9JjKa26haHVmqrAtN18RfOs5cBnqDg+lcK9jxzELR0aZl3LfXMzrb9vnQJ5BQhidRCNZ2X8UjW9hsnCmdF4dglHJaHQ9c6hFTKB5AxBdB6kYHcwhaHCq80qGQzoEABSGRs+Xc1XY7ZySqfLZf/HRisxzze39cw7FwJvvhXD+KsTSGdMDA9FMDJU/33yQqtTGRtBn4pY2gYv6HHpcIF01sHa3gBmk9aiw6xb9WzVW0F7NT/jBEG0l7hp4kvfewkzcRO9ER8+9QfnIeLzLfzBCvRF/FK3LizrXIiQf6LxLB58+siShWgvh9B1glgO0H6FqAdSsDuU0irMqso6Pjy4WRwYjeLBZ0aRzkpvKGOyHyMgK3sLISAEEPRrSGfq94TON7cAap73A6NRfP8Xb+CtUyk4XOZeqwrD+oEwbrri9Lru05O/OYHfHpsF5wIZ0wH3+lmqcq+mMgbbkS3CQv7FhVm38tlasIJ2xsH6XGXT1fyMEwTRXm7/+18hmrDy/46lbXzqi0+hr8vAFz7xrrrPt3P7IL732CGksg50hrK1z5MRT750EsDShWh3eug6QSwHaL9C1EvbzZWcc3z5y1/GZZddhvPPPx8f+9jHcOzYsarHv/baa7jllltwwQUX4OKLL8Zf/dVfIZFIFB1z9dVXY+vWrUV/Pv3pT7f6UpqGFyp8fCoJn64iEjbg0+fCgw+MRts9xJbhXfuJUylEQgZUlUEIwHI4LIdDCLlJURQGAeDbj/62rvmYb27vfnA/7n5wf03zfmA0irsf3I+jk0npTVcZVIXB5dLCefeD+2se14HRKH7y9ChcLqCw4k2Q4wpwIfIeEc6FDLN2RUNh1q1+trxqqX5DxWzSkhEHQsCyXUzHzXxl04NjM6v2GScIor2UKteFRBMWbv/7X9V9Tk1RcP2uYagKg+0KcC7Xbs4F7ILuEiqTskJhLB+i/fC+sYavZSFqCl1He0LXCWI5sJr35ETjtF3B/upXv4rvfve7+Ju/+Rv88z//Mzjn+OhHPwrLKhd+p06dwq233or169fjhz/8Ib761a/i+eefL1Ke0+k0jh07hm984xv41a9+lf/zmc98Zikvq2FKqzAbugqFMRi6ip6wgazlYs/eMal0rTBKr70raMiwO1Z4DKDrKvq7/VjT7a9rPuab2+6QjkTaRiJtLzjvXAg8+MwoEmlbepdVBpUpUBQGPedpT6TtmsbljclxuAw1YkBpxJHLBbzi5IrCysKsa2Wpni2vWuqGgRBM20U8acG0XIysi+DW67Zh63Dvqn3GCYJoL3HTrKpce0QTFuKmWfe5r71oGB+4fAtCfg1cyFQml8+tY7rKoOSUaykvpFF2zzNjcDiv+/tqoSh0vRI5+21fxN+S7yeI5cxq3pMTi6OtIeKWZeGb3/wmbr/9dlxxxRUAgC9+8Yu47LLL8Oijj2L37t1Fx584cQLvete78Nd//dfQNA2bN2/GTTfdhC9+8Yv5Y9544w1wznHBBRegu7t7KS+nKSxYhXmR4cGdTKVrVxX5f01hsgWWAHrCBvyGfHTrmY/55tZ2ZTExCAG7JH+4dN4B4MSpFASkwlt6Ls+TPTqewN7XxnHxOUNV83S8MXUFdTiu9NKXHikE4HI5Jl1TMJu0sCEXZl2NSrlCRycSODmdgqGpyFouFIXByIVxL+bZqvRdpdVSu7t8OP/sIcRiabxxfHbVPuMEQbSXL33vpZqP++uPXlz3+a/euQlnbuzB8wcnYVoyguffXjoJlbUnRLuW0PWQX8PO7YNN/+7lSCN5tlwIvHFsFicm4gj61FWbm+vNXTxlIZmx0R32YcOQjd7Q8s1GXc17cmJxtPWpf/3115FKpbBr1678a5FIBNu3b8dzzz1XpmCfd955uOuuu/L/fvPNN/HjH/8Yl156af61gwcPYs2aNctSuQY6p3p2O6h07ZwLqQAqDKoAXEiF06Oe+ZhvbnmBl6Hw79W+x3E4IKRSLgQDY/IzntdCCCCddfDPj7+Bp18dr5qn443JVQW4kNdWzQ4a9GmYTVr5MOtqArxartCaiB/xlBy/V4dH1xREQgYCPq2hZ2uhvCRP4Gia9PAXXvNqfMYJgmgvM/HaPNO1HldIpfVQVXIx2NXiBVtcXdwLXX/gycOwXQFNQb6KuJMrFnr9ruGKBc4qKZsrmUbybA+MRvGzfUcxMZOBZburNjfXm7tjk0mkTQcit3cLB3RsXBvG+y/atCzng/YrRKO0VcEeHx8HAKxbV2y1Xbt2bf69alxzzTUYHR3F+vXr8ZWvfCX/+sGDBxEMBnHbbbfhhRdeQG9vLz7wgQ/g5ptvhrIMKmTWW4V5JVHp2j2lLOe8Bit8DfXNx3xzW3jOwr9X+p4jJ+OyhVauKqzLORiT+ceF4YCKwuDX52+tFQ7q4EIgGjMhIKAqgFshUtDQZbWzDQOhBYX9vY8cRMa04dM1KLrc3B05GcfrYzPgQkYDeHs+y3ERjWfRF/FDVVhdz1ZhW7GQX4cWUOA4fMFWYqv5GScIor30RnyI1bAZ7o3UV0282no4kzAhIA23ilrBKLoEIdpeEbV8H+zcd4b8WtUia9WUzd+9dDMu7Q21bKztohF5dmA0iv/z8OvIZB34/RoCfhUQ6Ph2ms3Gm7tk2oZpyyKtKpNRh6msjSMn48t2Pmi/QjRKWxXsTCYDADAMo+h1n8+HWCw272e/8IUvIJPJ4M4778TNN9+MH//4xwiFQjh06BDi8TiuueYafOITn8Dzzz+PO++8E7FYDH/2Z3+2qPFqWusV9C3ru3FafwjHJpMw9PIqzOmsg41rw9iyvntJQpDUXE6x9//54EJg9GQcb56IQYDh9PURbF4XKWp/NTY+Fz4UDuiIhAwM59pabVnfjXV9QYyNJxAMaFBVBYamQNcUWLYLMMDQVPh0BYzVNh/edybSNkIBDev6Qzg+mYSuMVk4zZbarJar1o182PTcOQq/J2U6+PGvjpQpwUIAbkkOjsJk/2oAiKUcPLh3FMGgjlTGQVdQx/BQF0ZOi8hiOFxAU2UCtucNF0LA5UDAUPEf/t0OhIM6xqfTODyewGzawrr+INJZN38uAPjZvqNIZWy4XCCdlR4YAUDk+mkD0mvBch4MAHCZwGzChE9XMDwUqenZ4kLgZ/uOwrRc9Hb55kL6DRW6xhCNmfj+L97Arddvw8i6SNFz1GnPeKdQz2+tGoXPu/dcrKQ5bMYcrXQ6YY6aIStfO3kS/+89r+X//V/+6Bycs27xIdS3/+EF+OSdv1zwuE/93+fVPJfzrYdre/w4OpnKRSgJsAIDrsjlaAf9Gi45d11L22TtvnQzrt01jH2vTeBULIs13X5cdE7lNmH7j0Tx7UcOImu5CAVkdJPjcJyYSuFbP3sdobAPjAvMJs0i+bNc15757p+hK5hNWPjZvqM45/T+ov3MD554E9FcpEPGcgF4UWE6TMst+8xKxJu7rOXC5RyArC0ABjABcC7ryGRNZ1nORzP2K4VyuSfsQ3d3kGRYAZ0gs1pBWxVsv19abC3Lyv8dAEzTRCAQmPezb3vb2wAAX/nKV3D55ZfjX//1X3HDDTfg7rvvhmma6OqSC/7WrVuRTCbxta99DX/6p3/asBdbURh6l8hq++Frzsbf3/8SYikbXQEduqbAdjgSGRuhgI4PX3M2+vvCSzIWj0hk/vvx0qEpfOvB13B0PAHH9ZRWBZuGunDr7nMAAPc/fghH3oohlbHBOaAoQMivY/P6bnzwvWcCALIOR9pykTIdWUhCU+AzVKlgC6ArqENVapuPlw5N4f7HD+HEZBKOy6GpCiJhA67gODaZQok+DEUBwn4DsXTleT9tMIwv3fdSkZd6PhxXIJlx8v8+MDqL//c7zyPg16GpCtavDWPX29ZByyn0stJsuZJuGCoOvZXAE88fQyrjyDZlkAYBn6GiK2hg/dowLnnbOhybTMK0XemhYHIMlSi69lyVdpcLbN7Qg96eUEUvfiFvHJvFxEwGkbABXZuz6qazDmYSWVg2x9HJJL70g5cxsi6CD773TJwXCeSfo058xjuFhX5r1aj0vK9fG5Zzf+ZAk0fZXhqdo9VEu+aoGbLyd/7ix2WvSWX7Nfz0f/3eos7dixDW9Phxanb+kOy//Nqz+OCVZ+HGK85YcC6rrYcAAFVBd9hALGnJEG0gZyAGXFdAURhuet9WDPQvTfj17nfP/z2cCzz83EswbY41Pf68QmFoKgI+DRPRDP7nd34Nn67C5SIvVwEgnrSW5doz7/0DEAkZmJjJYCblYMv6bhw+EcPPnzuKsYkEIKRBybNZ2w7HTNxCT9fcZ87Y2FN0Ps4FDp+IIZ6yEAkZUjlbQOZ2Kt7cBXwq0lm7qC4NYwxQBByXoztUfT46ncXsV1aTXF4sK02ut1XB9kLDJycnsWnTpvzrk5OT2Lp1a9nxhw8fxtGjR/MF0QBgcHAQPT09mJiYACC94aUe8bPOOgvpdBqxWAy9vb0NjZVzgXg83dBn62XTmiBuuWYrHnx6FCenU3Bc6d3csCaE3ZeMYNOaIGZmUksyFlVVEIkEEI9n4FaKXYa0dn/jJ69hNmnKqto5QeG6HEdOxPD5//MsdF0qyVlLhqcpCgMXAsmMjUNHZ/C//unXAGPgXKA37EMyY8F2OLKWC9N2MdATQMCnIZG2MB3LLjgf+49E8a2HDuQt8AG/Li3wEwlk7crXIQTAXY6+rgASaato3gd6Anhs31HUqFtXJWtz+H0cuqbiyIkYRt+KwcxZvquRyTrY86vDeaXZG4IAkLVcGJqTP1cibeWV7yq3qyouF9jzq8N45dAUPnzlmdi+uXoo14mJOCzbRcCv5g0qGdPBdCwLLnLtxoQ0EBw5EcPfff9F/OlN52PzYBiuyzvqGe8UavmtVaPa837kRAx/d99vcOt12+a9n8uFxczRaqGROYpEAk3zHixWVt78ucfmff93/uLH+PZnr2r4/ABw1yffhU99+Zd572MpmsqQTNv49p79AICr3r5+3rmstB4W0h02YJoOwBgs282v0UG/ht+5dDPec966jlnvjpyM49h4HEG/mjMmzwm9rOkiYzrgQsBvqOgK6UilHbx5PAYGGU4bCmhgwLJaexa6f0wBLNvFMy+dwD0/fgVvTacwm7TyofZCiJzzRkBRZNpYPG3Dpyk4MRFHf3gufHj/kWiZ3FvXL+Vep89TJby58xmK3NsxQBQ8Mwyy+wuHgGXzsvlYDjS6X6kkl11HRnr+3fdfxK3vP3tZ3vNms5zkej2ysq0K9tlnn41wOIx9+/blFex4PI79+/fjIx/5SNnxTz/9NP7n//yf+NWvfoVIRBZPOnr0KGZmZnD66adDCIH3ve99uOGGG/DJT34y/7lXXnkFAwMDDSvXHo6zdDf+rI09+NRN51WsZrmU4/BwXV7xe7kQ+MlTRxBPybYnWsGDxxSptCWzDhTTga4pEGAyFBo5JVAI2K5UpAFg/UBIFsYI6rBsF67Lkco66O/241M3nYfjk8kF58MbUybXVsGzpjour6pcAwCEDPPyGwo+cs3bkM7I7zltIIS/+LunFq1ce8SSNrqCBrrDBk7FslLBZoChKbkiZwIMLOfVlpXF5dzO5XgXRHgjmbHRH/FhOm7mx7iYoR6bTOKePfvx7689u2q+VNCnQlUZbFvmJQkhEEta4EJAZQzIjd+nq9ADCmJJC/c/fgif+v1zwXNe9U57xjuFar+1alR73nVNRXdYVp3/yVNHcMaGlRNyX+8crUbaOUeNfu+BkydrOu6VYyewbZHh4l/4j5cimsngP3/5mfy6qWsMLNfHgakyAuj+n/8Wl71tEJjnkkrXw1JsmyMY0PEfbtiBiWg6X/di53YZot1Jz3IsYcJxBYKqUhblNZs0pTKZazPGwBBPS9kvINtTprNOPkw6Y7nLYu2p5f5xIfDYr4/B4RyGJmUeIK/bcQUYBJgCMMgaJ7bD4dMVBH1q/v6W5nkHc3neRyeT+OZDB5ZljrI3d16XOc/oACDfYx0ABJctTQvnYzlR736lqlzWGfp9PpyazS6L38ZSstLkelsD3g3DwEc+8hF84QtfwM9//nO8/vrr+E//6T9haGgIV199NVzXxdTUFLJZGcq1e/du9PT04I477sChQ4fw61//GrfddhvOPfdcvOc97wFjDO973/twzz334KGHHsLRo0dx33334R//8R9x2223tfNSG0JhDCNDEezY0o+RoUhH/giPTiRwfCoFIURZLpfX/gmQFkzb9ZSvufe9xUkIAZFrkeVh6CoCfpmnPR5N4/hksqb5qNRWQQiB2WRx71OGAkEAKQi4EHhrOg2FIf89vz4wiYzpoFJ9mkYQANKmC8YYAoY6J4CEyBdL83LM8/2vmRxx4YbHGw4XKFKuF4M3X+msM29vx02DXRjqCyKVlSHrlsNh53p5M8bgCgFdU2DoqmxlEdBwYjKJsfFE0XmWwzPe6dTTRoQgOpk77z3Q1OMW4vU3ZwHIwo+GpuSVa0D+dlSVIZVxsO+1iXnPU7oeFiKEQCrrYKgviM3rIrhkxzrsvmQzLtlROeeaC4HR8ThePTyN0fH4kvfXLSzqVIhlu3KNV6R8UhSGRNoqktn5Yx0X0bgJTWXLYu1Z6P4lMzY4F3A4R0/YBzUXBl243Dqc5z/rebV7wr585fWV2k/ZmzvLcaUToGD8Qsj6MrqmwLRdDPUFl3Ul+nr2KwvK5QDJ5ZVO25vT3XbbbXAcB5/97GeRzWZx4YUX4p577oGu6zh+/DiuvPJK/O3f/i1uvPFG9PT04N5778XnP/95/MEf/AFUVcWVV16JT3/601BVaXX8i7/4C4TDYdx1110YHx/Hhg0b8JnPfAY33XRTm690ZZJM23MhVRXXmgJh4cUPFVDoiWWorUVWLWMqbatgORyOUyI4MadkF77jOKLou6LxrDy29MBF4M2ZV/BGySmlBR1UwHMKtxca7n15pWkWAlUrkNeH9J/7dHXe3o4KY7j+4mHc+8hBzCYtaAqTcyQARwgoDOgOzaVqaJqCjGkjQa0smg61ESGIxvDW9sqyy1uLBU7F5s/XLl0PQ/65wmCprLNga0WPRtpENRtPYTo+lYKuzRV14lzk63/4dBW6yjBdsKZ4cosxQIGUZ6msA5+mdPzas9D901QFDnheWZLee+SNyUCuxWZuf+BwGYV2+Xmn5e/5Su2nXDh3riPguE7emcIhox1UhUFXFWwf7sXRicSq6BNei1x2MySXVzJtV7BVVcUdd9yBO+64o+y9DRs24ODBg0Wvbd68Gd/4xjeqnk/TNHziE5/AJz7xiaaPlSgnHNTnwsI9jbWIAq3USyAurNBd8pGFWmTVOqbStgq8JJes8PtL0bTi7+qL+HOKOMspsYvXsgvnTGFAKKDBsqUXWNbhlEVlVIUhlfUKpXnbvSrT3BTkxkHXFWRNd97Ff9tIH265Ziv27B3D8amktFZDRh50hwz4fXPLi+PI4h5d1Mqi6VAbEYJoDG9tr7yoei8zrOleuIVW4Xo4Hk0jnXWgqmzB1ooejbY9nI9KfawXUmyqKZsuFzkbOUNvlx+2K+BUSFny0oMUzIVJL4e1Z777t324F//66+P56viGrsruJg6HprJ8MVFvn6Ewhg1rw7j8gvX5869kQ2jh3B2bTMo8/VwfbF9OJtkux7/++jge/82JVdEnnOQy0XYFm1jebBrswoaBEA4eteFwDr0gB9sL+wakEqmrTFZRLQjb5kJI4Z0TUHpJexcvvG7DQKjm0KJKFvhaK3QyAOvXFH/Xzu2D+N5jh3KW7MVrsgwyb0kIAdN2EcgpogM9ctPCuawsq6sMs0kzVzQF0NQ5jzZQbByQbcJyHnmGhsPFhRAyrBuoafHfNtKHrcO9GBuP496HD2I6lkV/tx+lrSxSGQeb13djeKgrn4NNNIdqHiegsd8PQbSLO27ZVlP49x23bGvK9xWu7TpD2W/HdQXCQR0XnTN/DraHtx7Wq9SWhg/nK3fnFLnZpIU9e8ewdbh33nMVKtRTsQyePzjVkDe8orKpMAT9UlYFfCqSmTlFMB+FxuaC1CqFSXc61e7f0YkEHv/NiSJlqTtkYDqeBRfIR3CFAhpcVyAU0HHTFacX3auVrnAVzp3XijWWtPCLF0/AslyEAno+KmA19AlfUC5nHKwnubyiIQWbWBSetfutUynEUhZsl8s8a5YLKQMQ8muyrYHNi8OHhLRwaqqCoE8q1osJrysdU5EFXi3OX65GV1DH7l0jRd+lKQqu3zWM+594s2rbq3qIhHU4rkAqayPg03DF+afhiRffQixlI+TX4DNkEZBYykbAp+PtZw3gVy+Pw3FFrkLnPJHquZh3TWFFY1UU5IuQVP1oLq8uEtKRNt2alTKFMWxe140PveeMqiF2AUPFB997JpRc2BjRPJoVnkoQ7UYWLltYwV5sgTMPb21/4MnD0vhbkKPjcAFVYfjglWfJQmQLLaA5vDzNemhG+HBheLlpyWrfjDF0hw1Ewkbdik0lZTOdsfGdR3+L6Vx+NYNUqD2DrsKkounNX2mY9HKg0v2rpCz5fRr6I37MJk1YtlSONYVhw0C4ohFjNRhCC+eOC4Evff8lOI5Ab8QHL0SkXqPRcqVqJIjDkTZdksurgJXV1ZtoC9tG+vCx3duxabALqiJzktycF3bT2jD+4w078LHd2zG8rgtBvw5VmVOug34NI0Nd+Nju7fjY7u3YMBCCabuIJy2YtlTyGrFyehZ473yzibl2LNWWM8aA333X5orfNTzYlfc0Nwpj0vIPwZC1HPRHfHj3uetw9nAv/rBgrKXXfsu12/CBy7cg5C///sJrURXkIghkzlNv2IDC5Oshn4aATy1Ngc+jMCn4IiEDWYuXLf61FN4pnfPC67j1um3U87GFzDf3K9lLQKw8vvnp9y7q/Xq59qLh/PrKc7KLC4GQX8Pvv+cM3HjFGU39vkrkw4e1efI1XVE1fNgLLz8+lYShKfnQbS4E4ikLluU2VEyrtKjT9s39uPW6bRhZFwHPFfwQQkanGbmxcy7gclnwcuNgcZh0vbS74JuHpyz5DRWzSQuW7cp2lAqDz1DRG/Hh/75mG/7spvPx5x86v+J6W+0clu1iNmm1TOFq1xwenUjg5HQKXaHVW3yzoly2XIysi+DW67aRXF7hMFFaMpGoiOtyRKOd0adyKdE0Bb29IczMpBYsny8X8gQOvxUDE8CW9REMF1Ra9MLXvPChroCOrpBRFELXSM7YQmM6OpHAq4en8eizx+D3a0imbdhe5XLIvt3hgAbOgY/u3o4dW/rLznHXfS/i+FQSfl3B1KwJxqTC7BUVUxWGSEgDBGDaHJedtw6nrQnjrVNJWDbHltMiuHD7IN6aSmH/kSheODSF2YQFN+cl6Q4bGFnXBZ+moi/iw5b1PRgZKr52h3M8u38Cb56IYe/+CbmhYbJ3eCpjA7kK5BByzAGfhlBAxzU7N2KgO5BvOfbcgUm8eSIGn6aAMeC10RnEUhYg5P0uDSP0PCPHp1JwXJlLPV9eYaV7aOhqzc/RaqWe31o1mv376TSaMUcrnUbmqK8v1LQ+2M2SlQdOniwKF7/jlm1N81xXwltfC1to+Q2t4eet0vkqVQ0HgNHxOL7yw1fg09WK4cOW7cK0XXzyxreVeVcL5VNP2AfL4ZiayeQ7UjhcwNAUDPYFFzxXLWiagu7uIF58fRyvvHEKj79wAg6XBcCEkL2OTVuGBC/GuNfsgm/NWBurjel3L92MS9++sabnZCkL2bWzaN6rh6dxz54D6O/2gwtRFkHIhUA8aeGPrt9WtudaaRQ+e91dPpx/9hBisXTNawrJ9c6hHllJIeJE01AYw5Z1EWxZV1lo1xI610h4XS3n4wJ47PkT4FygJ2zkFVMl157FduSmoFL+U2H4nqGr8BkOLIdDVWTRMw7ZTstnaEhnpXXy999zZsUFMJN18G8vn8wXsnFdjmjCRDRh4shJacnVVIb1a0K46T1nFAlBTVFwyY51mE3IkDTL5vnaPN4P3gvLFwD6u/34UMk5AODSHetw6Q65UeVC4J3zGEUOjEZx94P7kUjbRe1LDh618dapFD62e3vZ+Zt9D4naobknVgrb1q3DNz/dOoW6FG99rZX5FOiH941hzzNjyJhOfo3+3mOHcP2uYVx70XDZuRYTPlwaXu7JAG8LqDIG2+GwbOnFbkYxLUVh2Lwugo0DYWxeFylT4oaHuhalxDW74FuzFM1qOdqVjCL1nqPZClMriubVgyyAy2TaYBOK1y5nCuWypik11wQCOqOzANEYpGATK54Do1E8+Mwo0lkZhsfYXKVrn64uuIEprf7pFTdxuMwlZ5AFxuJJKSyrhXmVFrIxLRfTcbOsKrnrCoxNJPG1H7+Ka3duwvbNfXkBfGA0isdfkIYCVWEyJ1vItl8KY4iEDdkqy+V43zs3wOUyPKySAF9o4eZC4PtPvCm925Ab0Ln8RI5YysL3n3gTf3nLysyhIgiCqMR8CjQAPPDkYbhcQFNYfs1MZR088ORhAChTshdTR6FUPnktpPKF0XP/8FpgNluxqUdhrMWr36yCbx7NVjSbYcRstSG02XPYCJsGu7CuP4Tjp1LoDukoTGhbKTnnlWimt7ndRhJicZCCTaxoCheoSMhAPGWBc1m9+1Qsg+6QDw4X825gSqt/esVNYikrH2oOMKzrD+LGd2+puuCVehpiKSuvXBe2OfEqhSczDv7ll0fw+AsnMNQfxPsvHsbP9o7B4RyGruS+e66quCsEZhMmdFWBrin44b8dBueoaPGsZeH2+TScmEoCQFF1eDD5b9vlODGVxOh4omrUAkEQxEri4X1jVRXoHzzxJjRVtrTSVTbniWaAzgDbFdjzzBiuunBjmWLZaJuvUvlkaEquhZSbU2nkfxWFtUyxqUVhrNWr38x+0Z2gaLaDTui5rTCG3ZeMSKNRwkJwFRTfbKa3ebU+uysJUrCJFUulBUpTFcRzijEXAvG0hbM29sy7AFarIOr3aTAtB/G0jfUDYfzBVWcgmbKreowLPQ2W7cLK5ZqULo2FDm2vkMrxqRS+tecAbJcjHNChKgpmCgq3eQgBWA4HY0AkZFRsi7F1uLemhfv8M/pljniVxVtlDC4XOPxWjBRsgiBWPA7n2PPM2LwKtO1wqAoqKjaaAmRMB8/un6gYjt5I+LAnn45NJhESAlwAAZ8G23Fl72qIfAGyVhbTmo/5jBKlXv1m9ovuBEWzHXRKz+3tm/vwiQ+eh39+5HW8NZ2quzf8cqLZ3ubV+uyuJEjBJlYslRaogE+D31BhORyW5cLhHB+4fAs2r+uuep75wvfSpgufpoALgb9/4BU4VayWXAjE0lKxjyVNqbTWUF+QQRZQ6wkbODWbhWm76A4byJjOXMuuSqdhLG8MKFWcfT6tpoU7Gg/PDaLa4ATAqEwiQRCrgGf3TyBjOtAUVnHtZBDV12QAyC370Xi26nfUGz6sMIYdm/tw6HgMyYwtOzUyOT4hZKssTVXyXQVaodjMFxZbi1Gi0KvfzH7RnaJoLjWd0nNbVuPXcc1FmxBLmggHdERKCtuuBOrxNtfKan12VxKkYBMrlmoLFGMMvtzCF09aSGWcBc9VLXyvN2wgnrYxPZtF0K8iqJZbLQHg+0+8iRNTSdmbutzxPE9fayZz6nItzbKWk6+CriqyCjjPNR4VQsDlgMqkALUcDl9OuBYqzoffitW0cPdGfLKlGhdgJR4ZIUQ+D3zLerKeEgSx8onGs3KtrqIbeHbTquu5kB/ti/ibNqYDo1E88eJb0FUFDLL+hlyf5Vp++Xmn4dzT+1taTGu+sNiFjBKlXv1m9ovuFEVzqemEntsHRqP42b6jmJjJwLLdoudiJSnXQH3e5jM29NR0ztX67K4kSMHuEFZ6Gf5WU6kFWDxtgQuOZMqCoio574IsDKaqCgTnEBAYn0kjdFKDwwV+c3AKpu1iy2kRXHTOUFGe3LaRPpy5qSdfpKW3y4enX53AbNLCmh4/XFfmdnMuEPSpSJsOvv+LNxBLWZhNykJhhbnWHvM5gA1NyS+uAb8GJclkDpsQ8Jpae4XOXDF3PiEEMqYDiDmPCssp3kzIvGzbdiEAWLYMVffp8ru8hfv09T1YvyaEo5PJXF/zufF7lWrXdPuRSFcPiy+6R1zgyMk4YgmTnnGCIJaMtxIJ/M0/PA/LlvUr/vKP34HTuupXLvoifjAA3BUQisivqwyAUiArhABcznNebeS9yQ6X/bV3bh9synUVes7W9PjBGJP9lbks5pk2Hbw1ncKHr6rc1WKxVA+LTeKePQfw3revx3Q8Kz361TrblHj1F1PwrZROUDTno1X7PoUxvP/iYXxrzwGcms0i6NcQ8GtLlv/sPRem5SISNhDwq7DtlVucqxXe5k5/domFIQW7A6Ay/JJGhY03f8cmk0ibDoRXOCyXI1wJz9OgKMCPfnkEWdMpyn3+xW/ewv/36G/xu+/anM8NK71PAgLprIPukA8Zy0U0loVd0MNPYUAq44AXxAvOp0yXKt+qwtAdMvL/dhyOgE8Dg1SKBZfuEJGbO4Ux8FwOHgDEUxZiybnrZUwaF5gCdAV0HJtMonR69FyBnJGhLowMdeGm95yRb9NVdCwDFDCksg6+9dDrCz6z+49E8fBzL+HYeLxqGD1BEESz+aPPP160rpo2x2f//jkwAPd8+r11nWvn9kHc+7PXYbsC8Jb63MkVwZFbkiEAuHzuTYXJdVlVGK7fNVy1H3a9VPKcFXq7GGMty9OsFhbLuYBpuUjYNv7ll0fgM9S8UVZRK8jzCl79Rgu+ldJMZb3ZtHLfd2A0ip/tHYPtyvajWcuBkmQI+DRsXBtuqdwtfC56u3zQNRWOy2suzrUcnU2t8DZ38rNL1AYp2G2GyvBLGhU23vwl0zZM28lvcPi8iXBzbwmOnEe4/JiszXH/E28CAIYHu8ruUyptw+UCM4ksWEpquornzhCA7fLyk1ZAejiKi5vpKkNfxA+/T8uNV1osN64N49qLNuEbP34NadMBg/SQGJoKv6HmPeWF1+j9XQgBpjA8+PRYmUHBw3Y4XJdjx+Y+KIxh20gfPrZ7Ox58ZhQnTqXgOHKCLduFoakIB/SKhdQK79mB0Si+/chBmDavGka/Gp5xgiCWllLluhCRe78eJfux547BqWK09V42dBU+XUEibee/mwvArytFBttm0M48zbHxcuU+azqYjmfzxgQBIGCoSGelvHG5TG3ymM+rX1rwLRTQIMCQztQWMVV4nmYo682klfu+wnOHAzq6wwaypot01oGmKrjuok0tvebFFOdars6mVnmbO/HZJWqHFOw2QmX4JY0Km8L5czmHgMznctzqinUpIv+fynAB/PTpUYwMdZXfJ0OF4nnJ3blKrQAANuclXwi/oeCGd28BYwwT02m8cOgUXM6hKNIjXWqx3DbSh//we+fgnodeh2m5CPo1+AwFU7PVC+d49HUZmI6b0hAxz/j27p/A1k09GB6KFG10EikLP37qCE7FsjU9s3P3yJVh9FyGVa62Z5wgiKXlrURi3oghQC79byUSNYWLe8W6vOycKno2Bnp8UFUVvV0+pLIObEd2jBgZiuDqnZsqfqZRr1078zQTFZT7WMoCF4CWawnGhUzH6gnpmE3ZOa++DJ2HAJxcHY9qXn2v4NuB0SgeePJww4pXI9XZW0Ur933Vzh0KKAj6NcwmLTy07yjOHulr2bU3avRZzs6mVnqbO+nZJeqDFOw2QmX4FydsvPkzNBWpjAOVySzrZhe1zpgujk4kEQkZRffJ0BSo6lwYutfbE5BWy1qUa3kscOaGnvw9fvtZA9izdwzHp1JwXA5NVbBhIIT3XzyMgF/Dq4enEQ7q+KPrzsZD+45iPJpGLGHJTZamwGeoSFTwWCiMQYDlx6UwBlVluaI8crxeiPmxyST+9/0vY8PAXDjZyFAEo+PxnACp7ZnNP+MBLXe8mPd4giCIZvA3//B8zcd97S+uWPC4wmJdisLgClExHSljcYQDKsAYQgEdgA7LdjEx03yvXTvzNLtKlHvLdmXxzdwYPHmoKAzdXX64HEhk7Hx0GQMQ8mtlfbBLaZbiVW919lbRyn1fJ+wpC40+qiGNPkIImDYH57I4qqKgyOizEpxNrfQ2d8qzS9QHKdhthMrwL04g5OdPn2v7gdqisuvGcTk0rfg+McYQ9GmwbBmWzTnPKbFeTnR1L0chAsCGteHi14SQ7+Rc7MmMjft/8QYSGbtoE/b+i4cRyindjzx3DH0RPyzLRSrreDXQckHkAq6Q11H8zSzvyS7MV2cANEUp28TU+8zmj9dW7zNOEMTS4xVvbNZxXgVxGVVUsrAXWFOdCqlBrfLatTNPc3ioWLnnnvxguS4TQsDQ1HxkV0/EBzDg0rcNIejT0BfxY+f2wXnz0VeC4lVKK/d9nbCnLDT6GLr8vmhc1qfxCrAGfRpS2bnuLZ1gGGgG5G0mCmlOpQ2iIQotfZVYDWX4a1HAXFdUFAje/OX1wpwnthVoubxhwLPGusiYDtRcaxQJgyvkXsvQVHSHfVVbSBeiqgqOT8pqZN6G68SpFEJ+Hf09fmiqgmOTSRzNHRMJG/DpKo5PpfCdRw4ik3WwY0s/fLkK4IqSq1wLBoXlFGjklGa1cJ7nRldWDI4xGIaKnrCBrOViz94xcCHqfmbpGScIoh0Yem3bm1qP64v4AbGw0bR4jZVUWudKlUdDlylHuqYg6FORTNu4/8k34fD5DQCe52zDQAim7SKetPI9r1sZVusp917tD5n+I736bq7oZmHUl+Nw6JqCndsGsfuSzbhkx7oFi73Vo3gtF1opEztB3hY+F6dms5icScNyXGnmzzkeIIDvPHIQB0ajABa3D2w1XAiMjsfx6uFpjI7Hi4rWVsLzNu/Y0o+RoQgp16sY8mC3ESrDX55DJoSA5fBcGJF0rVYTCHPzl4SmMtiu7P3ZbAI+FZsGwzhxKg2Xc8RTdt4a6wU9MwYM9PjBhQyJMzQFQgjEkua8oeK6yqCpCpJpu6q1Pp2z9LLc38MBvcyC/6mbzss/Sz1hA7qmwHI4NMaKvAkBnzrXqzUXxl4YNu5haAqM3DNZuImp95n1jj8xlULAV7zcrJZnnCCIxpFLDMtF9dTOX/7xO/DZv3+upuNq4e1nD+AfHzyw4HEBvXhDXW2dq6Q8ZkwH8ZQl5YsQGBtP4PP/9Dw+8O7T51WUG/WcLbZic1FY7HRahs5zAUNX0R0y8mt+o2t9J3hkm00r932dsqfcNtKHm68+C1/78WtwuUwHEAzw5Z4LX84o40UfdGrP5+VadI3oDMiD3UZKLcCW7YILAct2MZu0VkUZfk8gpLIOMqaNyZkMpmYyOBXLYmomg6nZLLoCekWBMDd/mrSE17kBk+fwNnDV3/+dS0awe9cIFAZMzWZh2S4Ykz8ensslY4whkbahKtIDYTscsZSNoF/LtcgCNJVBzeXvKbl/dwUNaDnB4W24gj4NlsORMR2kMjYs24WmKFAUBtvhsHLW6ULl9/hksuhZCvo0MAjYLpc9rBlD0K8hlrIRCRkI+bVcKxkBIXjZNfsNFVZuk1doPa73mS08fjpurspnnCCIxsmYDmZTJrK2C0DMu14XclpX14IRRCx3XC288PpUTcdNJ2qT5aVeu4wpQ2ktJydfcjk+49MZ3Fvg7atGvZ6zA6NR3HXfi/jKD1/BPXsO4Cs/fAV33ffigt9TyraRPvz5h87HJz/wNtzwrs3SG68pUHNFOhez1neCR7bZtHLft5hz1+KprcebGwzo8Bkq1vYGMNAbwNreAAb7gvD7tKqG+1TWKTOkeYaBob7gvIaBej3NC+FFEx6fSsKnq0WRg7X8HgmCPNhtZrWX4fcEwt0P7sfUbDZfFAVc5gwDwHQ8i9dHo9i+ub/s84Xzd+RkHBnTrW8ADPCp0ttbGvpX2FaFC4HusE+2XikoYOZZZD3BkLUc8Czy9/D9Ozfiuz9/AxPRtLTkMhm+resqIkEdWZvnLcr7j0Rh5vKnnZyH3AtJZF5ONzCX64ZiC/6OLf1Fz5JPV2HaLgSk0mzZLtb2BvDv3n06FADf/8UbOHEqBbeg6ronduNpG4m0LcMV/VrRJqbeZ3bbSB9uvW4bHn7uWK4P9up6xgmCWBxZ00HWdJBUFPh0BT5Dg6ErubDT6p+759Pvrdqqi6G+PtjReDav3Ff6Ti8yqCugw7TdBdfFQuVR1xTEUxa4EFAZA2MyqogxIBLSkTbdpuYaN6twWKkH/NqLh7F5XaRp+5lO8Mg6nOPZ/ROIxrM15Y3XQqP7vloiDho5dy2e2nq9uZ4BqSesg1co+lq4d1lsLYFme5pXYu4/sfSQgt0BrPbCCFuHe4uUV85FXtlVGJDKOvjaj1/Dx2/YgXMqLJbe/O19bRz/378eQtZycp5pmYkMyPPxfMVXoLdL5kensg50VcGNV5yO4aEu/ObgFEzbxZbTIrjonKG8ID06kUAibWFtbwAA8iHshi5Drg1dRSpr48Z3b0EkaCAc1JHKOvjZ3jEkMza8ttyqAgR8GnRVQSrrIBTQ84JjKpZBxsyFgzMGBpGPQXe5gFByedXK3HNRasH35uLJF0/gyRffwqlYFqblwnYFXO5gciaDn+0dw/UXD+Mv//2FGBuP480TMTy87yiiCVmszcvhFpBKuWm72LQ2XLSJqfeZ3b65D7vO34AXXx9HLGHW9IwvNnyRIIiVg8gVaXRcjozpQlUZ/IYKv65B08rTXDzu+fR78VYigb/5h+dh2RyGruAv//gdNXuuPfoifmkAZgxgIr+mM+YZJhk4BH7n0hGsHwgvuG4VKo9Bnwrb4bmaGSwXXSQ7SFTy9i1mXWyW8rD/SBQ/eepIRaXmzz90flPW7nYWcQOAh/eNYc8zY8iYTj4l7HuPHVqw8nkteDJ0dDyBw2/FwASwZX0Ew1WKeNWjRNYjn2sxtgDAvY8cRMa04dM1KLos7HJsMlnVIBMO6rnUPQ5VKf/eSnuXRowOrWjvtVKKrhHtpSEF++abb8Z//a//FaeffnrZe6+//jruuOMO/PSnP1304FYTq7kMf6HyatouYkkLCsScoidk7vG39hzAH12/reJiqTCGi88ZwqPPHcOxyWR+oyJhcAuSsxlkD0+eK8piWi5+/Msj+A+/dw5ueu+ZFcdYmAtWSUjpuTDqSNDAji39ODAaxXdyi344oMPvUzETN+G4Aom0DQbp5V7T7QcgNz3PH5zK/R0VXSScAz6d5auyVrPgHxybwSPPHkMybcO0HdmLlMlwvYzpYnQ8USR4hocieOrVCcwkrdz8yB0jKywaV+Ga631mFYVh87oInIGFE+Up94kgiGpwIcAdAdvhSCkOdJXBb2jwGSpURSkLMz2tq6umVlzzsXP7IL732KGcUZYVyQEhBGxXIOTXigyz81GoPMZT0rjstfvyik46LsfkTAZarlbH/iNR3P/Em4taF5uhPLx0aArfeugAMkvQs7hdUX4P7xvDA08ehssFNIXljd2prIMHnjwMAItWsg+OzdQk5xpRImuRz7UaW4QQSGYsuBxIZ825oqmaApfbFQ0ymwa7sK4/hOOnUugO6Sgsqlpt71Kv4b5VnuaVmPtPLD01K9i//vWv80Lr2WefxXPPPYdotDwH4Re/+AWOHTvWvBESK55k2objcGgqy3uxVaVAQWYyRNqrZj3fYrljcx+OTSbhuAKayvItQ0SBR5wLQOSqbSuKLJ6TNh3c89Dr+GgVBX6hIhx2bvzhoF5x0eemyP9+PMHU12VgJmnh3kcO4poLN+JYrkr4fPgMFQKAbbsVLfiF3+1ynvOaS0++ygBXyM1bxnTyc+kZOHq7fEhnHdgOz7er9ukqgj4NibS1ZNbaVliklxNeLhl57onVjlSoZC2Lwg16IZwLmFzAsi0oWQZdVeD3afDpChRWrmw3iqYouH7XMB548jBsV0BTADABJ5eVxABce9HGusKHPeXx/iffxNh4Aq471wfDq9cBAVi52hsPP3sUisIWtS4uVnngQuD+xw8ha7lLFj671FF+DufY88wYXC6gq8V7EZ0Btiuw55kxXHVhffe7kFrlXCvDlWsxthyfSsFxOUyLQ0DWc1Egtwi248IBk11OSvYHCmPYfcmIjD5IWAjWGH1Qj+G+VZ7mTi26Vg2K9utMalawf/CDH+DHP/6xDF1lDP/tv/23smM8QbZ79+7mjZBoGZ3yo5yKZZA2HSQydl4RFq6Aonhh3tKyb+iyXdXe18Zx8TlDRWP1PJ4np1NgOSXadrlsCZE7TlUAr0WpV+DLQ2GAOY8Cv1AuWCJjY8OaUD58r3TRj6UsCDAYmvQkcy7AFAU9YQ2zSQu/+M1xpLNOXiGulLMEyM1kPGlVteB73w0AZq6/K3cFvOJACpPCoSug5wWPt+GKhA10BQ1ZGKUgBJ4L+Z1LYa1dLrlPrfrtvHRoCv/8yOt4azpFnntiVfPym9P43/e/BCGAvogP527px9tO78dQX7BsMw3k1nRXwHVlWouqyE4Ifp8KQ5vrnrAYPI/lnmfGivr4et//wJNHcOh4DJ/6/fNrPue2kT78/zb14PPfeR6j4wlAyIioufPKQppcAKmMg7W9/vym31sXZxJZfPex32LntkH0d8s8YYWximtULcqDogDxtIVXD0+XrW9j4wmcmEwiFNBaHj7brj3Ks/snkDEdaIWG/hyMMWiKLEr37P4JXLJjXd3nr0fOtTJcuRZji+NyZHOpa4WODy8Bz+UC6ayDRMoq+/z2zX34xAfPy8u0ZkcftMrT3Am5/7VC0X6dS80K9mc/+1l84AMfgBACt9xyC/7qr/4KZ5xxRtExiqIgEongzDMrh9kSnUOn/CgPjEbxyLPHcm2j5l6fU4Dn8qbjKQsCwD8//gaefnU8P9YyS7CmIBoz8wp0yK8hlbHzyrUHy59dbl40jVUVVPPlgqVzudS7LxmBwljZom/ZLmyHQy0QTF6xMsYYNJXhrVPpfN55WU9qb7wMuOodG7DltO6qm41k2oZpuflc7sLrFAJwBaAwmdvtOiK/cSnccJVuupbSWrsccp9a9dvZf0Q+x+mM9NitNs89QRQyOh7Py4Ro3MQTL76FJ158CwM9AZx7ej/OPb0fAz2Bip8tzNfOWi5UhcFnqPAZakGKTWPjuvaiYRwYjeKVIzMV33/5zSi+9IMX61KyNUXBpeeuw+h4ImcgFvl1W3Z6yF0XZCcLQ7fRHTLg92lIpCwk0w4SaQc/+uURMAb806O/RSRkwHF52Rq1dbh3XuUhlrLAAPwwFx5dur4l0jYclyPgrywPmhU+2849SjSelXuDarp8zlgTjWcbOn89cq6V4cq1GFu8ND21irFByT2viUzl7z/vzAFs6A/g8IlY0w0lrfI0tzv3v1ZWe7Rfp1NzbEtXVxd27tyJiy66CH/6p3+Kd7zjHdi5c2fRn3e+850466yzKlqXic6hU9oPFFpx+yO+eduvzIV4M/gLxvpaTgh7lmBDVxH06ejv9ufDqdNZp6gwGFBZbmYtF47DqwoqL5xvw0AIpu0inrRg2i42rg3jP37wPGzfLBey0tYi+arfuS/18pcUheX7nlbRqcvmQFXYvG1YgrkKtqL4K/PWZiAXIs/n+os3o0VGsyhtXVNKYcuwdtCq3w4XAg8+PYpM1kFPlwFDV6EwGUHQEzby6RGLbT1CEMuFy89fj7dt6S9bq6dmM/j588fxxe+/hL974GU8+eIJzCSqKzpcyHaFyYyNmYSJaDyLVNaRSmwDe5Ws41RVrj1efjOKrOPMe0wpA90BWQBTV/PGUM5zhdQKjmOMwXI4puNZTMeymElaeUOxF62ctVxMzmRgO7xsjTo4NlO1lZNXFFMImY5UaX3rCurQVKWlrbPavUfxCtpVLD+fe53ljmuEeuRcK1uV1SL7+7v9YIpML6uEK2S0WzhQ/fvrbSHXzPE3uneptt/bMBDqCMW1NAqC9gydR0PJI3fffTfGx8ebPRZiCeikH2WhFdfv02QhkXnHLgVP0K/lx/ov//YmTk6nyizBAZ+Gwd4A+rp88OkKztrYXXSuOd+4RFEAxxUQEPnQuEq9FPM9P298G/6f687Gje/egmsu2oSQX88fW7ro55V7IRd9LgR0TYGuMqlcc5Hvlb0QLxw6Ne+9YQUef+86C6/ZI2POCZ5O6sdez2ai2X0vF6KVv52x8TiOTSagaSzff9yj1KNBEKuB7pCB/3TTefjcxy7C9buGsXFtuOyYk9NpPPLsMdz5vRfxtR+9iqdeOYnpeAaPP38M9//iEB5//hhsd651I+cCps2RSFmYjmcxm8gia7syDLvG5e37jx1q6nEe4aDsG9wbNjDQG8Cabj80lYExWRDTgzFAU2QxtGSJ19CrQO6RysiCmqVr1Nbh3jLlIWs5YJB1N9b0+KuubxsHw1i/NoxUpjUG2U7Yo+zcPoiAT4PDRcVrdLhAwKdh5/bBhs5fj5yrpkRatotM1kY8ZTU837XI/svPPw0hvy7Ty3LRFF5EnMNl+9CAT0MkZDQ0Fwsxn5xv9d5l20gfPnXTebjx3Vtw5TvW48Z3b8Gnbjqv7co1UF8UBNEeGqoifvrpp+PIkSO4/PLLmz0eosU0MwR3sflRhaFPXh9qRZFW+2oE/XN5XyG/hqnZLAQXCAfLbUVZy0Uy68CyXbx5ovoiozBZZdt2BSxHVA2NmzueIZN18Mhzx/Lha4auYrA3gPdftAnbRvrKw4tUqTh5nutIyIDtyiq4AnJTIwVD9YvXVIbZpDnvvUllnLn+1wXCsBRdLxY881Vqff/Fwwj4tXw+3oa1YRyfTLYkL67W3Kd0xsZd9724pOGDrQpfPzAaxX2/eAPxtA2FSa+XrimIhAwEfHKJpqqlxGqlt8uHd527Dpe+bR2i8SxeOTyNl9+cxsnpdNFxxyaTODaZxJ5nxope//kLJ/DOrQP4d++e63ri5WtnXBfZXL52rf21J2cyNY271uM85ta+JII+DY7D4fBcwc/CA3O9wRQmvdweeaNqwWs814EjFNDL1qjSwmHxtIUfPnkYPkOdd307NpHEB997Jv7uvt+0JHy2E9KEKhe0A5BTKlWF4fpdww0XOKsnx7c0XFlTGFJZW+4dcm3iUhkbB8dmGioEt1CV9q3DvXj+4BTGTibgcA7HndtU6CqDpqjYWNLGs1nUkibQyirzlb6/MD2xnVCl886nIQX7Pe95D+666y788pe/xNatWxEMBoveZ4zhE5/4RFMGSDSXZv0om5EfVWjF5VxWT1UZg6Lk8s4KjmW5/+jq3Lg1LVchVinPwcmYDqLxrPQOAzB0BabtohJceIXA5Pf4DDW/YaiUy1Ka96IHFQhR3hOycNHXVAW2I70kkZABn6EilbbBhbQAd4dkcTHLLi8Ukh8nlwr4fPfG84L4DBXprAPL5kUWXwbpDfndS0Zq6p2Zzth4qOA+ewXaFEW2qWm2YltL7tOOzX349qO/XfK8o1YINO9Z8jxNLBfLbzkuovEs+iJ+6UnpsKqlBNEO+iJ+XH7+elx+/npMzmbw8hun8MrhaUzNVg8RFwJ47vUpOC7H77+nvD5MUX/tXL62119b18uVk7W9Aewfm11wrLpWnhM6Hwpj2LG5D4eOx5BIyTVEQNbrYEymBwkI8NygSw0Ahb2GC+uLOAXFR0rXqMKKza8enpYtqeYJW05nHSTSNi5/5zrcet22fB/sZio1naI4FBa0y5hOPlQ/5Ndw/cWbcPZwb97ovGV99/wnK6HeHF9vP/H9J97EsYlkLuJCFn4N+TXMJC3c/eB+dId9SKStuvdkC1Vp98aatRx0aWq+G4vluPAbWksi3OrJL25FlflOz29ebpXOVyMNKdhf+cpXAABPPfUUnnrqqbL3ScHuXJrxo2zWwlNoxQ361PymQFFkWJyTa1kyp1Ozolxqx+EwNBXdYQPTcTNvCRZC5EOvPe+wXSUUq5RISC+q0CrPZeOBf3sTn97UA4WxsuqfjEmh3xM2cCqWxX2/eAO3XLsVW4d7ixb9qdkMfn1wEhMzGcSTFgSkJTySK1ajKAxIVlawNYXBFQKm7SI4T67ThrVhdIcMTEQz6A5JDwAXuYJqEEibLoaHunD5Besrfr5ww+Xd53RWesWZAqSStuyrrQD9ET9UVWm6wFnIm/6zNlUZb5ZA8yI/EikLP37qiKxB0O3P50yquWfKzT3HPl3pqKqlBNEJrO0J4Kp3bsSV79iA41NJfO1Hr817/G8OTSNtujjvjDXYtqkXPqP8N8y5NCDaDkdaceCzVKi6ls/XFkLgpqvOxBMvnlxwfNPxTM6AWts6dGA0iidefAu6xsCYIuVfrjiHEEBXTjbFUxbsXMSXh5bryy1fKzZOawVG6dI1qjAKLZ62oFYwVpd+tiv32e2b+3DGhu6mV/muts563S3cnAd5KRSHay8axlUXbsSz+yfyBs9IyMDD+47isRdO5BXZ0/pD+PA1Z2PTmuDCJ81Rr+d163Avgj4VAZ+KoF+Dqsoq+YwxZEwbU7NZJNI21vYGGtqTVWqP5T0fLhe4ZudGPH9wCuPRNGxH5MYabok3t5FuIvW095rve49OJBBPmvjBE28imbYQCRllVfs7oZvJcqp0vlppSMF+/fXXmz2OVUO7W2Mt9kfZzDZKhVbcVE64OA4HmLTaq7lNg+3yvBd6rgLs3Fivu2gTvv3ob/OWYC6EzGOFtOoH/RpiSbl5qFah2yMaN9EXkSF5s0kzH4Z15K0E/se3f43Lzj2tYvha2nQQjWVh2S6OTSbxv+9/GRsGwnj/xcMI+eXPbPNpEVx2/mn58OpQQMMDTx7G8anUvL1aNUV6MJh3iOAV+yR7UQWnYllkLQcZy4GuKegOG9A1qaSFAnpN1mYuBL7/izcQjZsAgIzl5ou1qQogwBBP2xjsC7ZE4FSzSLczfLAZAq0w8sOyXKRNB5qqwDRkT9npeBYuz/UaZbL/bTRu1nzfCGK1wRjDoWOzNR178OgsDh6dhaYynL2pF287vR9nb+otaovl4XIB03IRT1tIJjPQmGz55dc0vG1LH147Ep23OOV4NIPR8QQ2DYaLFLSd2wfLQosL5eqablkZ3XI4pmNZ2LnUoqzlSmOsEcjlmJq5CKW5ImhKrpbHXFFQ5HqIl69RpVFoigJYNodpuejv8Vdd34aH5ta3Zig1pZSus6blIpYzKoic5z7o15CuUrW62WiKkm/FVc25cGwyib+//yXccs1WnLWxp+Zz1+N5PTqRwMRMpkjhA5B3AjDMtcr1ctYXI5sLW5/aNgcUhjURH667aBPW9gZbun9th5z3rvfYZBKpjJ3/bWftLAxNyVftL/z+sfE4GGNt2c8vl0rnq5mGFOxCEokEJicnsXHjRqiqClWtLyxqNdEJrbEW+6Ns9sJXaMU9NpmE43C4XBYB6wkbcFyBmaQJASlUBQDbdovGWmoJzpouhBAwNAU9Yd/ctSvSR16tXZeqyI3ObMKE4/KyzdPRiSR++G+HAQChAi9y1nQxnQtHVxgDhxTKYycT+PL9L8NvqGXh1Du29ANAWW5VYWgfcmMCY/lKnZrC8O1Hfotkxi56hnZs7sMTL76FrOUgHNARyBX9sG2O6dksQgEdG9fWbm1+8sUTODaZnJu3gkG5XI7Ldjgs24Whqy0ReJU2b+0MH1zsb6d0c6YoDGnTge3KisBrugMY6A0gmttUCyE9Uf3dfnzoPWe0PeeLINqBrqkI+jSYtkwlqlTcqt52SY4r8OqRKF49EoWhK9g+3IdzT+/HGRu6izy+Hq4rYLlOvuXXBWcN4FTchGm5SGdtZK259CMG5I25e54exW+PzcoQ49x733vsEK7fNZwPQQYqy1WfrqKva87oZjkcpu1CYQxp00Uk5MO24R786uXxojzhQhkS8usVZebBsZmKiqJpy0rJ07NZRMJGWzbshevs9GwWWduRUVO5Am6KIv//7Ud/u6RhuvM5FwxdQSxl48GnR/Gpm86ra45qNVJUk32Ww2E7XM6LKOhagsaVUU9WJTMWHFfAdWWxt7GMjROn3sS/u2xz0fPbbJZazhder2nx4joGXBZNm45n0R/xy4K8moJ4ysK9Dx8s24st5X6+lfnnxOJpWMHet28fvvCFL+DVV18FYww/+MEPcPfdd2NoaAif/vSnmznGFUEn5XMs5kfZioWv0Iq7/0gULxyawmzCgmnLkLRNg11Ars9iPGlVHGvhOd48HsNPnxlDyK/B0FVYXu61QE4oep5Y6SEXEHBcGQLIIAVWNdKmI8PXC8LXZpMmeC5sjeeqilmOi4wlNwaMybw91xVl97vwXhyfSgGsuLS/gFRuDU1ao1MZG9OxLCIho+AZSuLQ8Rh0jWFNd0Beo64i4NdhWrINWCSo433v3IBAzsM/3waAC4EnX3xLtgXzQg9LSqV5lc89Yb5UeXHtzjtq9LdTaXMmUNhHVD5H69eGMdQXhGm7MC0XDhe4+dqzsWVde3p+E0S78dJohPCUTOllLVS2a22XdFp/ENGEWaQQWzbHi2+cwotvnMrXeHjb6f3Yclp3UfVuQP6OuSswG8sinpSRJf0Rv0zfsRxkTQcul8cJDrx46BQEZIqPp/mmsg4eeFIaaj0lpZpc9fs09Ef80lvtcCRSNnyGgv6ID+84awDbN/dhbU8AD+09WpQn7DfUfB/sUpm5dbgXd933YkVFcU23H6di0lghjQft2bBvG+nDH16zFV//0as5GSrXS0NXc158dUnDdLkQ2PvaOI5NyrZhlZwLXQEdJ6dTLSu+Vk32ealwXoRbaUvSemWzJ6uSGStfw0VGVMl7YDsc//LLI9g42IVzWvQ8LKWc9643Y9pwOXKpe0DhNlBAyuhYyoLfpyGVsZExnQp7sfbs55udf040h4YU7GeeeQYf+9jHcMEFF+D222/HF77wBQDA2WefjS9/+csYHBzErbfe2tSBLmeaGVbdLBr9UbZq4fOsuCNDEVx78XDZuAAsOFbvHJsGu/CbN07lQ8y8eZZVvOcURa8ojCujn6THusQ74qnjXpEZlwtwDsSSJtb0BGAXWI9dzvPe8WRmrgeq48jKm74q99u7F6PjCXz74dcxHcuit8uAw5EvKKYpwMnpDBhjsi9lwTMkhEAiZYOxcqOHLOAjcHI6jXsePADDUBe0sh6dSGA2acmw9KJO2nNz43ljPGG+VAU1OiHvqJHfTiUPlaEpuefShQIG25GKg6ayfEj/hoEQRoYoh4pY3chlmcHQVPh0FSKgw8pF0Ji2i8vfvh6/+M2JsuikQhgD/uSGc8DA8MaJGF5+Yxr7x6JFnRuylotfH5zCrw9OIeTXcO7p/bjkvPVYEyluQbRhMIys5eTqUygIBXSE/Dq6ggZsx0Uq4yCZdcC5gK6yuXWKAToDbFdgzzNjuOrCjdAUZV656vdp6FMYUlkHF24dwJHxOGYTFv7118fx+G9OYKgviD/5vXMQT1lFYegKYxXXqNHx+LxRaN0hA1nLwY2Xb0EkaLRtwy4N5AoCPr8sqqmwfM6x936rq4kDc5GHR3Ohw6mMjWTGzocMe+iazJtvlZG5muxTcpFvrpB7jNLnp17ZfHQigZPTKTi5oqayJoj8LgaZsuY4HP/yb29iW4v2rEsp5z3Z7NM1pLMmlJyjhRXUMhBiLmova9qIJa2Ke7F27edbkapBLJ6Gegx86UtfwpVXXonvfOc7uOWWW/J5Hx//+Mfx0Y9+FD/4wQ+aOsjlTqf2q/N+lDu29GNkKFLTYlCtJyPQnB6Y1cZVz1gr9UaMBHWwgvBwVSnu49gd9s0p2YXXBO94KWQ8YaYoDLNJC6Ylw9EFnzt3aTtvLoCsKRXuavdbYQxb1kXwofecgVBARzzt5CuaMwAzCQtCAN1ho+wZ8lp1uK4o8r5nTQfT8Szs3MD8fg0+Xc1bWQ+MRivOn7dB0DUFbj6nq7xPt6oqeQW/0n0v7F955GS8KHStUTqlZ3e9v528h6og15Mx6ZmTxYlkCJ7j8rb0HyeI5YIndgxNQVdQR3+3H2t7grj6ok3oi/gR9GtlazAAvHPrAHRVhaYqOHtTL2567xn4zB++E//X+87Cji19RR0qAOlpfua1Cfyv776Av/3OC9jzzCiOTSYhhMBpA2EM9gYhAJg2x2zSxPh0CqdmMzAtjlDQwFBfEAPdfgT9etHayZhM9cmYDp7dPwGgNrnaGzbwypEoTsWy8BkqImEjv57/06O/RW/Yh92XbMYlO9ZBU5Sqa1SltagQTVPAORAJGnXtDZpNMm2DcyDg1xDwaWWeY01T4LZQoQXmIg+PTyXhz/XjVphsuTkdz+blOiCVL62FRuZqsq/QKRAp+e5G9mTJtA3b5jIvv0C59mC5IrRTs9mW7VkVxnDdRZugKgynZrNIZWy4vDWy0fs95IIFc908WFFVfgC5/H+BWNKuuhej/tNEIQ15sA8cOJCvEl76gF166aW49957Fz+yFUSntJ1oBsulsEJpKK/rCgT9OlyX53P5BJPeAs8SrasMp2LZIiXb81znrye3Al+0fRAnp9OyQBmkog5IxZ0xBu6KIp9v2nQQCckFeb77XS0Eub/bj+lYtij328PzIotcCy2PWMrKVfyWuVmaqlS1spZXk5V55vGUJft+5gSOU9B4NezXYJXk9nnzVFpvQFMZNg4dwbUXbqyrCEwllmPeUTUPVcCnoS8XAuo4HKmMA0Pr7GshiE7B0y10VcFNV5wBBuClN6Yhwj6Ytous6SBru3j7mWuK+mB76JqCHZv7sGNzH0zbxYGxGbzy5jR+e2y2qCBmPGXhqVfG8dQr4+jt8uHc0/uxc9taPPb8caSzTl5mZCwXWcuFnrWgqiq6Ahq6wwa6YSBryqKGlu3KzbyYyx1fSK76dFnpshlRcPVEoVUqyrpUtDsdqDTyEACSGRuW40JlDG5ByLDIpbBtWNP66Klqsi+WspC1OVTVXdSeLBzUAUVWzK/4mdyzLkTrjBsHRqN4aN9ROC6H6bjIxh0wJgvW1lNLpha85wyiIGIRcl+lYa5lrFdMsKfLQCJtV9yLActrP0+0loYU7K6uLkxNTVV87+TJk+jqopDGQtotKJrNclFwKoXyblgbxi9fegs/fWoUtsNl/oymwLJdZG2O7rAPsZQFwUU+/7gQV8hc61071mFkqAuj4wnc89P9OBlNQ1XkRsnb9BX6ITzvsk9XF7zflcbNBfDVf3ml4jNk6NIrY7s877mxbFeGrkNuFAxNzVdgL7WyZrJOcfE9hcGyZdZ1X5cP8bSdb3PGmBcuJcPlTdstu++V6g24LsfoyTi+9dAB3NyE/KTllnc0X8ib35BhrxsHwvjIdduhCI71a0Idey0E0YkIAXzw8jPwu+/ajJ8/dwyxlIU1PQFcuG0QrivTdOaLovHpKs4/Yw3OP2MNMqaD/aNRvHx4Gm8ejxcVVptJmHjyxbcAAN0hA5GQAdN2ITigagyDvQFsGAjjly+dhGnKTg4Bn4aAX0OfzwfOhdyAZ+yi3PH55Oo7zhrAnr1jTSkuWmv4bSrr4K77Xiwryvq7l27Gpb2huu5NI7Q7HahS5GEkZCAaz8qio2DSwJyR8jEU0LH7kpGWr9vVZN/BsZmm7Mk2DXZhoNuP0YydVzYLcYWQxnpNbcmetXD/EA7o6OnyIZOV6Ri6quD9Td5jes/ZsckkNE2B7bh5L7aSa4+qqwy6qmCwL4j/631n4Ws/erWj9/Pt7lZESBpSsK+88kp88YtfxFlnnYXt27cDkA/j+Pg4vv71r+OKK65o5hiXPe0WFK1guSg4lXJT3nPBBgz1BouFkcKwptuHC85Yg6dfncD4TBouF2AFxWkcLpXM9QNhjAx15cO6Lzvv/8/en4bZVZ1nwvC91h7PXKOqSiWpNICEBIh5EGY0tsFAHDvxkPiNTbvfJH29+XIlvtJx2p1O0v26k9if407S7jgdt7/YjYeOTcDgADZgh9mIwYAQQrNUVSoNNZ6qM+5xrfX9WHvvOmPVqVIJhDj3dTFIdWrvffY5ez3reZ77ue/VuO+pI1J0p8aDVF5DIJLBRcufd+11cyEW/A5pCoWApDUSQsDYvAo1DUSCaul1ZdvH3uEsntl9qioZtmwfPhPwfEl/70wZUmDIkyq2iZiG265ei95MrO5zb6Y3oGgKYoaK6Tkbj7wwCtNQULL80/revJPmjhbrUMUMFR+75TxcubUPs7MlaVfXRhttLBm6ouCD166P/hwuLb4v4PgMjutHyXazdDtmqLhiyyo5y6ypeH7Xcew6NI2RU4Wq38mV3Oj/O1MGtqztwHUX96MzZeDlfZOwXAbCOIrB3K6mUsR0BbquYm3KwDUX9lXZajWLq3uHsyvGgmuFhXbRhi58p4ko67d+vA/JlLkkz+fl4ootvTg5XZoXk3oL2XKNmIch4yj0IpcjAgxDfanIB/utWLsbxb6V2pNRQvCrN27Ef7//DUl7p5IWDiGTawIBTVHQ3316o4CN0Gz/kIhpiJsqZnI2/vnJw4jfvgVDKzS6UPk8MO7BC0YHCRHgQu7fdEVBIq7hozdtwoaB9Fm9nz8b3IrakCBiIQPeJsjlcvj0pz+NgwcPoqenB1NTU1i/fj3Gx8cxMDCA733ve+jqOrc+SMY4stnSsn9/virHGga0t1J1cClQVYrOzsQ5uekPq3x7h7N45eBUoAYu/95y/LpuByEEqbiG37prW9VnNTZVxJe/9ypKtl97igiUSKVb1+fL/rwX+w7dfOlq7BnOSo9lTyrAqoFVWcyorqW5HoPt+uhMGZjO2ehIGnV+o1wAlAJxQ4VCaUsL9ch4Hn/3wzfqxFYIkRT12byDXMlB3FRBQN51i/9Cwe/i83rO2WdtpXAur0crheXco66uBJQG9lTLwenGyjMJQuQ67vocnsdgewy+zwMNhPrXKwpBJhNHLief11zJxZ6jM9h9ZCayMWyENb0JJGMaDhybkxaQUjUpSFJkPLhzxxBuvGQQhq7A0OcZRo2uo9m6GiIUe/vdX7l4SVZMjdaiO65Zhx+/eAzHp4pVSY68NoFc0cWGwQw++7Ht4GzJ28clX5vjyvcGSJaB0YJQ50pgoXsuhGQh2B7Dr733PFx/yWp0dyXPqXXp0RdH8cCzw/B9HhWpVIVCUygSca2lPcxS16Jm99x2fORKcu5cAEjFNazpXVmq+L6RLO598jCOT5WqxkMUKpkAH6+wyjyd/fyZjGF17MF2nrHiWEqsXFYHO5PJ4J//+Z/x4IMP4oUXXsDc3BxSqRQ+9alP4Vd+5VcQi8WWc9hzGu8UWvW7CZQQWLZf3cENFiTGBTyfQws2PapCm35Wa/uSFeJnCOy+5u2/ADm/4zN2WkGhle/QB65eh2MTBeRLLn703DCmczZMvXpzwDnHbMGBqSuYyFpIxzU4buDlHfqNEnnRgsv38/4r12Dbhq5FK+IL6Q2UHR9zRXkOlcog/XZZW7xdeKcwP9po41yE1IQSUCmBaqhSl4PzyBbPY4E+R5O8MZPQ8Z6LB/CeiwcwW7Cx+8gM3jgyg5Mz5arXHZ+aLzBQIpPqcMYzpiu4+bLV2HHRADzG4VkcZceHqhCYurSW1BRaJXZ2JlhwlWtRruhgdLwAQqTC+vjMAqKsMRUnJosYHS9gsCex4mtZbZKQiGnwPIZC2YOqUtx57RBuumzwjK+ZC91zQNp5rluVxLUX9p+T6/ft1wxhbV8KDzxzBFNzNkQwatbffeaKG432D6FYq+wmE3DI/cOZ2DdYLpMjW4G4rIC0q7MqbP2As3M/fza6Fb3bsWwfbFVVsX37dnz84x8HAExNTWHv3r3QtHfGHPHbgfbm+vSw0nMljURMXF9usNJxDUXLQ29HDL98/QakEzrWrEri+GQRe47OVJ1/bKIY2IhI32qKeVo5Deh/uqbgozdvwrUXDpzWNS/2HaqkjmkKraMBzuUdFCxJIwy9YMPgENKhfM6rNpjFsoeX9k/i9hboeE31BgQwm5cMAUICJVK8Oxf/dxK1vY02zmWEQk4xXYWhK9h1cArZgoOYruK8NZk654RKdKZM3HTpIG66dBBTcxZ2H5Gd7ak5q+p1lUSo3s4YdlzYh4s39lS/hgu4XMD1XChUCmHGgo0+JRQUOCPiopQQ7B+dxSM7R6WPNhCJh2SSesNuuapSWI6HN49m8YN/PbSiVNRmSYIRFB7mii5eOTiFmy4bXNbxl4K3QtD1bJ+VvXB9F7Y20LFptA9aCpq970b7h1CsVaVSjJUIQNcVJJewb1jsPld+7yqttwAgGRMNz3O27eeX4lbU3n+8NVhWgj0xMYHf/M3fhGVZ+NnPfgYA2Lt3L/7dv/t3uPTSS/EP//AP6OjoWMnrPGfQ3lwvD2dirqRyQbJdVjVXRSDpgdPB7Jdl+/jbe19veH4RWHf0ZGLzFGsuoo0VAeD6DI+/fBydSfO0q5utfodqq6yzeRt24Pka2m4xLvdTPhNBcl1/HAHg2EQR3//ZIXzy/ZsXPGezqn+h7MIKLE2EALI5GyVLQTqhI2ao7cW/jTbaeNvw6IujUZIZipJlkjpuvmwNbrkqhaJCITivEjurRG9HDLdesQbvvXwQ49ky3jgyg91HZ5DNO1Wvm5y18KPnRvDQz0dx/toMtm/qxrahLhgVLCPGBZjL4HoM1JLe36ahYOv6Tvzfd2zFwztHcGK6tCJds0dfHMX9Tx8F47KrDwJpOSmAucDrN52o9gAPKfU/+8UYfM7rZrRPp6t4tiUJZ7JT+XbNyi41qa/cb+wbyTbdB7V6zQu97y1DnVX7B8/n8HwuWXVCVAm2tvp9aOU+L/d7dzbt588lt6JzBctKsL/85S/DdV185Stfif7upptuwg9/+EP8wR/8Af7bf/tv+K//9b+u2EW28e5GI1XqVoL5YoEkXJB8hcvuatDNoAiSTp/D9zmeevUE9o/NNT3/B68dgqrIGeW+rjgKZRe5ogsKAYVSCMhke3LWwjce3otfes963HTpmae4AfNV1uFTeXzl+7sAAGqgji5EtSjbYjbVT+06gUvO78GFCwTSRlV/y/ExV3SrXheKw2TzNrrSJgxdaS/+bbTRxluO2iSTcWk/NFd08f2fHYIZ03DdtlWwbD+YB5Ysp0bJNiEEA90JDHQn8P6r1uLEdCmikVcKonEhcODYHA4cm4OqHMWWdZ3YvqkbW9Z1QFdlsi2EdJ+wmA/b9aFQiv7uOP6fj1yE6TkbhZKLuZKDhKkhZqpR/GoVPud4ZOcoGJcqyWFiISjAmYwLcwVHeiuHPxMCJcuXM+sQ6EitLBX1bEwSzkSncrl7moXQSuJ8Okn9SlxzK8eo3D+ogV2YIIi+35WCrYt9H1q95rPxe7dUnGtuRecClpVgP//88/jCF76ASy+9tOrvt23bht///d/HX/zFX6zEtbXxDsVK0p6WO1fSSiBJxjVQCuSKLriQXs/h8UnwL58LvLx/EppGm57/F/snsbo3gZGTeWSSciEWkHPbQgipRg45y+O4DP/0s0P4xf5J3LVj/Vsyq0MJwUS2DM9jUCs8vQkhUOi8h/di8JnAA88cwdZFNk6VVf+R8QLKTcTfhJDdmnzJRQfR24t/G2208ZaiWZIJAmhEiof9n0f345oLeqGr0k5PCDlK5AZz20w0tv8ihGBNbxJrepO4/Zp1GJso4vUj03jjaBYla36j7jOBN4ezeHM4C12l2Lq+E9s3duP8tR1QlXnhM59x+IyDOnI9f/XQNOaKNixbzo53JHTcsYRO4kt7J2A5PlRKqrp2lXFBQFJ0UwGLKxTOJARIxla+y3y2Jgkr2ak8E7Oyrex3TidBXolrbvUYf/CJS6P9w/GpUuRBravzjLcQC30ffM5x/zNHUCy7SCfmxx0aXfPZ+r1bCs5Ft6J3OpaVYLuuC0Wp/xICQCwWQ6l0diqItnHmsdK0p+VQd1oNJOv6UuhIGpgryrm32uNzyG5vaE3V7PynZkp475VrMXqqgKk5S1L7iJwXYqFgTqCiHXazj00Ul1ypPp3CRTZvy051xct5cF2UAryJcGMo9BGeZmrObnnjxDmH7dQn1+ExAblxdAMBm6H+VHvxb6ONNt4yNEsygSDRVICS5ePFNydwzda+SJtCVykMjSIZ0+AxHildM9442aaEYKg/haH+FO7asR7Dp/Iy2T6SjRSyAZm4v354Bq8fnoGpK7hwfRcu3tSNTYNpKFQm24fGZvHAc8NwfYbOpIFkXEdKobAdHw/+fBiUEmxZ17noe28UE6LrpQQUApwDliM9uzkXIESKd3qBG4amNp7RXm6371xKEprF65Wmwbey39ky1HlaCfJKXPNSjhGyBkbGC/j2o/sxk7PRlTZA6XyHeaHvw76RLO57+ghGxwsAAMezoakUmYQO01Crzjc6ngcgC0YzObtuBvud8r17KzQD2lgalpVgX3LJJfjWt76FG264oUrUzPd9fPvb38b27dtX7ALPVRDS2I7jnYwzQXtaKnVnqZXWKzb3YnS8UOd5zYScSU6YKvJlD7TJmsQYR77k4qcvHoPPOFyPB1RrAaklDtkNCWX9g888bqqwXdZypfp0CxddaVNeiwA4KhL/RRC+JKSUCyEW3TiF34PKLk3tMSuTbC7kvPsVm3uxdzj7touFtNFGG+8OLJRkhn8tIDCds+t+Fq6fmkKhxymS0GQMcAP7L9Yk2Q6UL2cLDgyNgBAFjHP4rHpNtl2GVw5O4ZWDU4ibKi7aIJPtJ3edgOMxpOM6GJcMLEoIDJ2CMYFn3ziFTWsy0BQFC7mwVsaEhkk2CDiEHH+iAnFTg2kocFyG6ZyNmZyD7gyps4A8nW7fYkmCodF3RJxYKF4zLlaMjtzqfscw1NNKkFeCQr3UY1BCsHEgjU/cch7ueewAciWvpaQx3H8Uy3IkQzq8SGu+mbyN7rQJ05DHyZdc3PPoARQtT6qFOz5OTJWQSeiRy8k7KTk9G9XN381YVoL9e7/3e/jUpz6FW2+9FTfeeCO6u7uRzWbx85//HDMzM/jOd76z0td5ToEQOX9KCYlsoBrFwVY7lgu9jguB0fE8jp7IQxBg4+oM1vefHmW70blWkvbkc46X9k4gm7fBuYBCm1N3LFvOg+XLbnRttYFECBGpg+sqxamZUhRItm3owmMvj0mqHxdR1qcqBAlDjZJAy/Hh+hyqQhE3VXg+hxV4MyJIENNJA2XLx0wgbJOIqSiWPaiVVdfwPbL5axk5lcPJmTJePzwNwQXW9qWwfiCNTELHur4UDozONilcFPGPj+zDey8frLLQCu9DoeSiYHlIxjT0d8UQM9Q6r+7KRLcRCJE+kFzIDryuKg03TuE5Q3swy/EQD+avG6H2nHFdxSMvjL6lYi/nOs52hdo22lgujszM4C++8Xr05//0W5dgU3f3ko+zWJIp/5qgI6njX547iqk5C70dMdy+Ywh6BYsvjN8qpdBiFImYBt8XcHwGx/XhMxF56x46PocfPn0EjssQM1R0pFQwJjfylEjBtOOTJXhsnlZUtn28tG8SL+2bBCGAqSmRjSQJ1nzLYfB8hgOjs9g7nMXavhTmCg5cnyNhqljdk6h6/q/e1od/+tkhlGwfGkFwHPmu5WiTZDdRCnSmYlE8TZgUhbJMSHIlF6auVMXapXb7atepLUOdDZOEzqQOEHLWx4nFGg23XbV2xejIrXaFj57MnVaCfLoU6nCPxoSAZfuIm2rd9TY7xlKSxsp9aDqhw/Hs4F4AKiHwufSyNw0VJcuD5fiYCYRsEzENJctDruhirujC8RgMXXnHJadnm7r5uxnLSrAvvfRS/OAHP8A//MM/4Kmnnop8sK+88kr8zu/8DrZu3brS13nOwfU5yrYPrcL7Uq3wvmy1Y7nQ6wDg3icP48R0KQruCiUY7E3i4zdvWvKCsdC5YubpVUhDVKq5hpYhhAKaraCvaz7I246PuaID1+OglOD+p4/g+T3j2DbUWRVILMevUwcHgL3DWazvT2NdXwprVyVxfKqIuKHCcRlKjg/GRGQPAQAFqyJRzNUzEOYKDsq2j1Rcg6HLKr9l+4EnlXwN4xzhnmmu6ETJ8F9+99Uqivarh2YAAHFDxVB/EmWH1RUuOBdwXIaC5+GBZ4fxr68ex0B3Ahdt6MKe4SzGJotyFlzIznw8UOquTbArE11KGgidCQTUQEBTpAdmIzpW+L1wPPm+VZVCVSSlsJVW+VTORiapI53U33Xe2GcCb5dCbRttnGn82y89Ufd3YbL9zc+/d0nHapRkhhAi6DQqFP/48L6q3/uX50dww/YB3H17/V4nXO4UhSChynXXZwKOx3DgWBYP/XwEJVvGGNd3oTo+UjENmYQu2VKU4POfuhzP7jqJl/ZP1mlYCCH9ei2XQaGygxwzlEBoU1po7RvJ4qHnR5ArOjA0FYm4ht6MiZsuWY3z13ZACFkMuHPHEO5/+ii80Ki7BqpCkYzp1TGdAF0ZExMzJbgeQ9n2ETPVZXX7Flqn/uATl0ZJwlTOwmMvja0oO+5MoJVGwy8OTK4YDb7VrjAJmgDLTZBPh7r/+qEpfP+x/Tg5XYLl+ChZHgqWgkzFPPVix2g1aawsOGgqhaZSuD4DQTDyQQg8n8N2ZCJNCKmihKfiOhKmimzeQXfGxKdvv+C0GlJvF84mdfN3Mxo/lS1g27Zt+OpXv4rnnnsOe/bswc6dO/E//sf/WHJyzTnHV7/6Vdxwww249NJL8Vu/9VsYGxtr+vo333wTd999Ny677DJce+21+LM/+zMUCoWq1/zkJz/BHXfcge3bt+PDH/4wdu7cuaz3eKbBuYDjSYpxtmAjW7BhuT4OH5/DA88NY3KuDENTkE7qMDQlCib7RrIA5iulx6eKda/7xsN78fcP7sGxyWLUBVaIVEg9NlHANx7eGx2nFewdbn6uex47gL3DWbnQq80XesYWpheHaq6ykk/kNVMCzmXHfyIr55st28N0zoITJNddGQOmruL4VAn/+uoJcCHgBx3mbN6WCywBlCDX5VzgiVdPYN9INqKkmbqKQslDviyTcYKF88Lan3Ehr3G24CCmK1AogcdkJ0BwUZVcUxp4OgY07Wbzz2XHx+ETeYxNFKEqtKq4MJO34TH5uYbXc+REHvc9dQSHT8xFyTUl8jxl20O+1PjeUwIkG1SUAUQCI6qiIBHXmtKxwu9FIgiYvs+RLzl1x2sEea+l2JnjMuiago6kHlHom1njtNEYC60LletHG22809AouV7Kz2sRJpnheh2qg3MugqQTVZ3kEJwDT+86hXse3Vf3s0oIIf9RKMHxiQIeev4YNE3BQFcc/T1xZBIGAATFYoa4oWB6zsLuQ9PYfXQGhADdaQOZhB6x3SrBuEDR8jA1Z2NyzkK+6IAxjp17JzCeLYMQAiYEZvM29h2bw/efOIw3js7AYxyEAB+8dgjXb++va94TSOq773P4DQJU3FDRk4lBoQS2x5APOn5rehMtJ7uLrVMHRmcjltkrB6aipFXXFFBC3tY4wYXAyHgee47OYGQ8H517dLy6oyyELKyEDLi4oWBi1sIVW3ph6tLX2/UYuBBwPYa5orukAkVlZ7kRwsR542Aa/V1xlIJ9QSXC5La/q754HmJ+n7S0a947nMXX7nsdY5NFGLqC7pQBSqTg60zORtnxWn7fYdJ40cZurO9PN3xdVHAIigDphA4aPAOh8r0QArmiByGk13vtvodSinRCR9GSo4HvtOS6jbMHy+pgA/Kh3LdvH8rlcsM5n6uuuqql4/z93/89/s//+T/40pe+hP7+fvzVX/0VfvM3fxMPPfQQdL3af3F6ehqf+cxn8L73vQ//5b/8F8zOzuJP//RP8fnPfx5f+9rXAAAvvPACPve5z+GP/uiP8J73vAf33Xcffvu3fxsPPvggNm3atNy3e0YhIO04GJOdyod3joJxjrWr0gAEXI/DdlkV1fr8dR0LVkpPTJUi9WolVEclcq7KYxyFstcyZZtzgYefH1mwKvvqoSlQiqhCWknLDmfOBICJbLlh9XExNVePCXiMwXYZCmXZWTb06iqoplLMFhxwLlC0XLi+qFMHZ0JA16g83wujMA0FjAu8/6q1eOCZo+ACgZDLwtTphp9jYKtStn1JD7c8EMiiRngshQIKpcFivzg8X26ESpaHVFw+D2FnXVrKyMQ9X9Ftdz35P+F9pJDUKMZ50IkmSCcM+ExS3mOGgqk5O0jIgXRCR9nx4fvyLkhFdIJP1WycGlXrXcj7R4J73Ur3WlHmX5+voBy+Hd7Y73Ra9ZlQqG2jjbMBR2ZmWn7dUujit18j2V4Rc0rIBDNuqlXd48qnJVzVnt19Cr/+/s1VdPFG4ELgX54fwWS2BNvjSBgKYoaGRExFKqHB9aVCuGmoKDsML+2fjOasCSEwgIB2zuRa3eAcjAmUmRRMsz2GZJDkUUJAVQWqEJiYtfAvPx/Gv+2IQVcpdE2BzwQGVyXAfA7LZdEYlBsUtXNFFzG9vgCrKATpuI5fuWkj0nF9SevlUtappQpsLWcNdxnDoztHm44AVKJR1311dwIf/8AWHDqeg+3IvZrlyKJ2JXtOVSlUStCbia3IrGyrneWh/vRpC2Atdb6XC7lvtGwfHSkdgRgNegiJ2IfZnIN0QlsxGnYtlT1mqOhKm/MsxmA/0pHSUSh7SMQad+zfCbZcbZz9WFaCvXv3bvz+7/8+xsfHASD60oYVO0II9u1buLILSDXyb37zm/jDP/xD3HzzzQCAv/mbv8ENN9yAxx9/HHfddVfV60+cOIHrr78eX/jCF6CqKjZs2ICPf/zj+Ju/+ZvoNd/4xjfwvve9D5/+9KcBAP/hP/wHvPbaa7jnnnvwhS98YTlv9y3FyakSRsfz0DUFjAExQ4Gpq8gkZdJq6ApmcjZeCirUlUHH9Rg4l7NeYUWVUtQFJZVSMC7pVa0kL0dP5HBqprRggJsruOhIGpjJO2CcVwUWCKmcTSnw0PMjUFVaR1d9ae8Eyo4PhcrNixCIhMUIIVCprNZfsqkLvzg4DVNT6uZ4CCFIxrQgsQVcz4dCCECITH6DBLIjacDzOQ6OzeG/37cbBDKhth0fMUMBJRQ+42Cu3KwsNqdcCQFJ//cYBwTQlTFQtDzYLoNCZHU0TMSXAi+whQn/XyGhSnn43usvspISL9kLsjPvMwFNpVFwcTwGz+dSyAxAzFCRTuhRgUQyLRjGp0tImOqCaqjhBsn1OSgBWPA5hp9piJA5HxYFZCEgeJ8+h6Epb3mQOxdo1SutUNtGG2cLKmeuF3vdUqnit18zhPddtTbS/uhKm5jMlvAvzx8DUL++hn/kHHh05yg+dP3GBY8fPpdxU4PjObACP21ArpmmpkALVMk1hcrEM6FD1PSWVVVBOqEhX/JgaBSKSuF6HF5NB1MIoGB5KFgeNJUipksaedxQMDVr4cRkEYO9SYycymP4ZB6GoSJuasgEHTvH4yCBRkwYewxdrTi+9MMe7E3g2gv7l1ysW8o6tRRxrOWs4fc8ug/P7j5VxSRrNgLQbL56+FQef/7NF6EpFJbrw3L9KAArVMY2AcDzGDwAUzkLt1y2ZtmzspVFhCs292Jqzlo0cV4JAaxmVG0AGBnPV/3dsYkCTs2UkEqE3Xx5DNNQ0R/MQDsew6/etGlZ36FGhZRGBYeYocLUFbgeQ77koa8rhk++fzP+54N73tG2XG2c/VhWgv3FL34Rqqrii1/8Ivr7+6uk85eC/fv3o1QqYceOHdHfpdNpbNu2DS+//HJdgn3JJZfgr//6r6M/HzlyBD/60Y/wnve8B4Ckm7/66qv4/Oc/X/V711xzDR5//PFlXeNbjbLtg3FAUWSSVyjLbrOmUpi6GnRrCexAIEXXKMqWFNsKg2xtMlOHYB3zGW8pecmXXPhMIL5IgLticy9+9spxTM3ZIJDqjYKL+bleARiGApXSutmp/aOzQRIcvYNIYIuG2RiZTy5jTSjNqkpBCcHFG7uwc++EnB8OAqce2DQAQK7kBF1gikRcw1xB/rlsMwCs6pjLIp4JRPM/ikJAKQI6+PwsfKv+0yHNmzFe1dmXHeamArhgXIAq868Hgu+Vz8EYB4LAwoMOOxcChqZEAcfQFNiOj0LZhetzPPDsMExDWVQNNZPQMZO34Qe3UdLz5fsNCyeqIrv4nM3bmBFIa7TwHr2VQe5MKOC/HVgJtdc22ng3QqUU1100EP35Hx9+s6Xfm5qzFn1N+FzGEyo0q3ou1PUCiy8mdVkGexMABNJJE0II2A6D4/lwg4Q8ZmpwPY6OlIGy7YFoCkyNQtMUOZpT82x7Pofnu8iXESQdwHTOxmBvEi+8OYGTM2UA8mcxQ0XcUJFJ6kjFDVAAY1NF5EseMoTIUS+fo+yw01JWXso61arA1nLmtO95dB+e3nWq7pjhCACAKMlu1nVnQQGaMSmSqikEbhCbUVFAJgAY5NjWKwemcNOlg8ualW1UREjFdcQNgYLlLZg4r4QAVu01NytqbBvqlMX8INbXIhaIxabj+pK/QwsVUpp16ssOQzKu4aM3bcKGgfQ5YwfXxtmLZSXYb775Jv76r/8a73vf+07r5GEHfGBgoOrvV61aFf2sGW677TaMjIxgcHAQf/d3fwcAyOfzKJfL6O/vX/LxzhbETRUKlfZPtMJjMgyS2TwDgrp23NSgKLLzauiK7E5yOWMSFmMbJtqRUjZtKXlJJ3SoLQS4res78fKBKRTKnrwGMd+hDDvThZKHVZ0xdCT1iAYmhMDuI/P0v7A7IITstqqK/AsCqbCqKHOLXssFQ53YOzILGsxxU0qi109ky7KjTgj0QJCsmaXUckEpQWfKiBgHlBBkkjpUhYJSKbTRyPqlEUxdgeX4shsRBquK5Dz08Gao72LwkAkQUN9jhoJioFirKBSqSoNZcNndDwsQwPysNwv8T1MJDZSQeTXUqxuroZqGiu60GSTZ0ksVFNBVBR7j88yE0AQnyLDDjjul5C0NcucSrfp01V7baKMNid6O2Iq9LnwuGRNIJ3Rk87ZkVCHUoJif1b5iSy8e2TkKzxdIJXTEDAWJmArOBWyXoVh2oWkU77moH47LIAiwdlUKg70JnJou4Z5H94MLyWjza5hSYRH+3icO42e/GIscL8Kfeb6LfMnFbMHBqk4TmaSB9QNpJE0Vk3MWCiUXCiVYP5DG7Vetxea1Ha3ezob3o5V1qhUa9GBPvGpOu5U13GUMz+6eT64XGwFo5lAix7Nkkse4QCKmwvXn9xOMC4AGdpRU0uqXyyJqVgieLTiy4LFjCL2Z2IKJ80oKYC1UmD41I8dHPcYjrZhKLDcWhee0HA+GpoJqkiI3NlmMCimtdOrbntFtnGksK8Hu7u6GssjMUSuwLFn5rZ21NgwDuVxuwd/9yle+Asuy8Fd/9Vf49Kc/jR/96Eewbbvp8RynNcGlhdBMwGtZx1IoFKX+4V3bl8KqzjhOzZQbBhPLYRjojmPrBtmhHT1VhKmrclYrKRcty/aRL3sBVRyRkrQ8iFSzJpRg7aokNg5mFlxEFIVi42AGAz0JjE0UoWv111S2faxdlYSiUBTLLvo6YwCRPp7SoxMgVFKavYA+bWgKkjFJA3vg2WGZXJFgo4F5Sp4Aok1CwlRx1w0bpPDX5MLXct32Abzw5gTGJotIpOaFLFyPwfVk90BTKXSVYHLWqVfPPg3IQoD0WgRk0jo1Z8NxGZIdMjjrKsVMbvHuePju9ICqZ7usotMv57CpQhY4kExbuRBQFekHua4vhURMw/hMSQYfKkVrAMA0lOje50pupCCuqzSajdY1irmCi1cPTmMg2PjUfhamoSBuqMEMuSwuxEwVJ6dKUfeGC3lcLgT8gOuuaQoIRDD3p+BD79nQcAO2khg+lZfaADFN6gVUQI4dqJjIlnFiuoQNA2eOVq0EXunhf5eDjYMZrO5OLPp8LPbcn61YiXt0ruNsuEcrGStD/On/cxn+6/98raXXrcT577phA/7l+RFwLuNS5eMSFq4pla9TF7nXlc9lR0pHd8ZErihZZxzy2YybKn7zQ9uwbX0XXjs4jbHJIigFyoRAVWSB2NQpPE9BV9rEy/snAzVyhp6OOG65bFDG6u4ETs2UsaozBp8JWI6PcuCMEV0/UJVc18LxGMYmS5gtOFg/kMb/dfsW5IsuPCbQkTCwdVMPikVbMqGWgaWuUx96zwZ868f7kCu6SMQqkiHLR0xXcM3Wfjz0/PCS1vCHd45EtPDapTAsenAOPP7SGD58w0aUHdml1uI0er3rS3o+DZh2jMkOdaUjR1g80VUqRdp0ilzBRdlhS/qeciHwkxePwXEZOlPzRQRFV6KY/NrBafzhJy97S9b2xa5nNu+ACYFCyUNHUq95fpYXi8Jzliy5vy3b899hTaXg3MNPXjyGP/zkZbhwUzdGxwsolD2k4hqGatTALz6vB/9WoXj4+RGcCvZCqkKwblUSd123Hts2nBnG2tmwPp9tOFfvybIS7E9+8pP4+te/jmuuuQbxeHzZJzdNE4CcxQ7/HwAcx0EstnBV+OKLLwYA/N3f/R1uuukm/PSnP8VNN90UHa8SrRxvMVBK0NmZOK1jVEG1QbXGt//O6zfie4/tR8HykDA0qCqB7wuUAm/hO6/fiK7OBK7e1o9/+ukB2I4U/orpCkxDRTymIRHT4HhSSdt2A+XICopyR9LAr992Abq7ki1d7q994AJ87b7XkSt5SMW0aDarYEmhiF+77QIwJiLxManAyuR5qUzsqPwb+fYVSeUulH1M52x0pKQ66EzQ1a3tvFNK8PH3b0FfTxq/dtvi19LbnWryOklJVhSCrrQJLkjd/NrporvDRDI+X+ShBoERBJ3Ka4k3sM2qhaZR2C6Dqavo6dQhOFC0XeSKskIuIAAhu79hUK8cFxRCwA+E5jRVQSKm4Tc/fDEu3tSDoydyyJfcQDHTxd/fvzu6PiYEvIDjrRCKrrQJrYJRkU7omJy18NFbz8eDTx9p/FnEdVy1tQ/PvX4SRcuDolB0pgxMzVnwA1pXV4cJxqTKLReBci0DNgxm8NH3no9Lzu9dyY+mIYYnSuACMHW1bnMGyIq/5TCAKiu7BjRBOn16a1Urz0erz/3ZitO9R+8GvF33aMVjZYCrOxMAFk+wrz5v3Yqd8/3XDOGxnaMAGrPB3n/NEPp6Wiu61T6XA91xSYO2pfbH733iMly2eVX02r/7512YyTswNSUY12GYLbrwfYZMykR/VwyruuJwfY5swcZPXjqGX73l/Lr9QyapI26oKFgeEMS+QosjIoQQvO/qIaSSMaSSsUAkk6JkeYjFjYbK5q1iKevUezoTSKZM3PfEIZyYLMJyPKgKjeKE3HsML2kND2PoYsgVPXR2JjDY5wUCrvMFJCfQRaEgURFG1xTJnAsp5EygM21KxWogcsoY7Esv6Tk5PDaHiVkL6aReFYtDpBM6JmYtzJZ8nLdMZkEtOBdV+4SNg5no/i52PZmkgXzJhapSzJXcFYlFh8fmMDZZhOPJRgOlJNrveD6HT2QnO7wHix37PZ0J7Lh0TdP3eCbRjmH1ONfuybIS7NHRURw5cgTvec97cP7551clx4BclO+5555FjxNSwycnJ7Fu3XxQnJycxJYtW+pef/ToURw7diwSRAOAvr4+dHR0YGJiAh0dHYjH45icnKz6vcnJSfT19S3lLdaBc4F8vnxax6hE0fJQKLsNfzbQaeIj12/Ak6+dwNRsGb4FqBTo75RV6oFOE7lcGaZGYWoKfCHAAmpLyfahaRQ9GROpuApNpehI6jLZdn14HsdAdxy/duv5WNcTx+xsacHrVBSKdDqGDX1J3H3blqjaJ6nbBGt6ErjruvVY1xPH8Kk8GOPSdzuwqOICEL6AovAqDpbPQtEuOcfr+QyqQpCOS5Gy2o7yDdsHcMslA5idLWFdT3zBa1nTHcOre0+hUPbwgavW4hf7JzEevA6QitjphA5do7Bsf0XtPXSVBr6n80m76zEYGsUvXbcBvzgwGV2z6/E6P+1K0GAzoylAT0dQIVaATs2EoSmYnLUhtdTkyEComlm2vUhAJwxCcUOKk4WfVS5XRndSQ3dS0rO6k1rVPbVdJjvMgRWKrtGq90SofF8JXWn4WXQEVPOfv34CjssCJfwydI0ibqhggXWcZcmq8eZ1Hdg4kIahq+jJmLjmwj6olC76/VwRcAZKANv1G3bLXU/+HJyd0esJn7V83lp2ZwjAos9HK8/92YqVukfnMpZzj9Lp2Ip1D1Y6Vlbi23/yPnz6z3+24M9X8rv96Q/IfchPXxytEsGiFLjpkkH8X7ee3/L5mj2XG/rlury+NxEdq1iwYWoKZubsaHxJoQQqJdL5QafIl1xQSmBoCrqSOiyH4+U3x/GRmzbiYzdtws9eGcNkdn7/MNiTwC2XDWLDYBoPPH0UL+2bXOhyAcj4k50rYyarR116RaFIJk1MTBegKpLZZGgKBARGTjXvGDa6H5+6bTPue/IIpuYs2eXVaNN1al1PHJ/92PaGXcnhU/klr+GZZGvU5ExSw+xsCZ0JFX2dsYiFUNl150IW7qWgnPQkd30GSkjAACNgjEeU8rWrksjElWif0sr9OjGRh+sxxEylKhaHCGPyiYl8FNdPB3uHs3Xf1YHuRNTdbeV6QIA7r9uAV/aP49T06cei4+M5FC0PAiIYjQvOBflMhrZ1x8dzS7oHlXuhXG75axcXYsGuObAyMayV87yT8E6K60uJlctOsC+44ILoz4189VrBBRdcgGQyiRdffDFKsPP5PPbu3Yvf+I3fqHv9888/jy9/+ct47rnnkE7LqvGxY8cwOzuLTZs2gRCCyy+/HC+99BI+9rGPRb/34osv4sorr1zy+6xFM6/BpeDAsVl84+G9IIRg0+o0Nq/twMbVaZh69UexfiCNu/tTODUtqStxU8VATyKiIQFALOiKJlQKBEJYlBJoCoUQskrt+gwfvHoIAgKGrmL9QBpDfUlQ0tw7sRacCxw+PgfXY/jwjRtBIBVEK+d8pO+xC8uVitSqIilTnImI5k2IFM7SFBpYaflImhom58ooO34UsDSVwtCVaMEgAG66dHV0vTyw2nr/lWtQsDwkYxrSCR3r+lI4MDqLL3/v1Srxi77OGO64dgi9HTHEYxruf+owTkyXUbY8zBXdugSXQHbYRcBR55CJ844L+1Cyfbx2aDryygZkRyBiBgR2FOExhZDvc01vAtdfMoDrLxnAsYkCDp/I4eHnRxA3ZOe+ZHkoOwwQPPL5dAPqWTKmASBwXBZ9xjFdRSquolD2g7kuDTFTlXZvnCNharjlstXoTJtV96fZ5157T8u2h4d3jiJuqDB0te4eeZ6cn4obCtb3p/HZj18SCadMzVl49KVjcDyGhKkhHtjLFCwfKiX4pevW44ZLV+P4ZDF6/S8OTOL5PePRZ/bs6yffMvXuwZ4E+gKqe4dST1cMP7/BnsSKrAGLgTF+2ufZvLaj6jOpfVbf6ViJe3Su4+28R2fyvN/8/HtxZGamSlX8P/3WJdjU3X1Gzvu7H70UH7t5Ix5+drjOxmmp52vluayca+3pMCPLS8vx4bgMHUE8iGwhmY8y5D0v2x5KlofeLhnzZguOFEjVFPQH+wfBgaG+JF7eNymF1kIBzgbbtmzBwbcfPQBTV7BtfSe2b+rB5rUZADKZK5Zd7B3O4tRMGdm8DS8QavMYR2fSwB0LrOGhUNVswYYIxEIyCR23Xy1nu5vd27W9811JzgQ4xLLW8A9cvRYPPnt0fgSg4hzhraBUvi78nQ9esw73PHYAswU5t6soBIpConjYkTQAQqI5e58J6CqFolCp9RLM925b34mv/J/XlqR2HjeU6FyNigiVMXmp38taRe6y5eHbjx+MZqvjwWz1sckivvnjfbj7ti1SL6jJ9YQUcM4FujMm/uDXLsXIyfxpx6Jc0Qn0YiQrslrZX7IkuRDIFZ23fO1bqoL9ctfnc8HtpBnOtbi+rAT7O9/5zoqcXNd1/MZv/Aa+8pWvoKurC4ODg/irv/or9Pf34wMf+AAYY8hms0ilUjBNE3fddRf+1//6X/jc5z6HP/zDP0Qul8Of//mfY/v27bjlllsAAJ/5zGfw27/929i2bRtuvPFG3H///di3bx/+4i/+YkWu+XTx5GsnkA1mn2ZyNl7aNwlKCNb1J7F5TQc2r+1Af3c8mOMhGOxtTnEZ6EmgpyOG8ayFdFwDUWvmmByG/q4YLtrUHSWrlJJAEEOVVkgKXbAgsnc4i0dffh1j4/mI1hs+zJVCGVwI/OSF0SB55lLQgxCoyvwMtRBAMi7ncku2D0qAsuMhJDVLsXACjwkw20dXyoDt8Sqhq4UWlwOjs7jnsQMoWR4MXUHMkDPDJ6bLmMmP4e7btmDjQBp37ViPbzy8F1M5u2H3WGqYi8ibmRCCDQMpXL5lFb7z2AFoKgEhNOrSy26srOTbLodCWYVghgeVUmwLlDvX9aWwvj+NYll6ZGuavMZkXEeyYtqCC4GZOTtQ6uaYKDhVKvGhrziBnKnPlVzYLoOhK1jTm1zSYtvsnnYmDcwWXejBNVZ+t2oFyELhFC4E/tv3X4uKQuE1Grq0gZmes/HKwSncdNkg1vensW8ki8deXpry60qDEnJOCp6spJhNG22cTdjU3b1kK67Tga4oi1pxtYqFnstmgouGLvU2bEcmaclYvb0VVQimZi383f27pc6JqiAR17C6O4Frt/XB1JVAdFJg+3k9ePj5Uel7DbkvoEFM4bxe0sN2GV49OI1XD04jbqq44oJVcF2G1w9NwQ7YUpRIgcvejhi6MzHYjo8HnhsGpQRb1nVWHa9WHCsZl+vtTN7Btx8/uOR1fzlruK4ouGH7QKQW3mgXdMP2gSo/7FqrK2ZL5w2IkBouP0MlEFUlhMPQFeSLbiS0ddGGLjy16+SSY14jsbfQmpUQoOz4WNObXLIoaF38p0RSsCHQk4k1FYz77McvaSg+ZznS1cb1GBRK8O2f7EN/ZwwfvGYdLtrYuj99LbgQKNseQKSYXCMaNwvufbKJv/WZwlvlQnKuuJ28W7CsBHsl8Xu/93vwfR9/8id/Atu2cdVVV+Ef//EfoWkajh8/jltvvRVf/OIX8Su/8ivo6OjAPffcgy996Uv49V//dSiKgltvvRWf//znI9G166+/Hn/5l3+Jv//7v8ff/M3f4LzzzsM//MM/YNOmTW/zO5W46oI+vHpwuopSw4WkVo2cKuDxl8eQjGk4f00Gm9d24Lw1GSTMxosFJQQ3X7IaDzw3jHzZCyqcVNp9OJKWfPMlq6uCCucCLhdwPakGqgXiVbJjXJ1s7xvJ4tuPHYDjccRNBXGl+cMcKmxmkjo41zBbdGRiLURk1wUC2DYD14E1vQmULA+zRQfdGQPZvAMeKFkrRKqhz+QddGfMKDAutLj870f3gxKCmZwtrU0CD2tNpUjHNdgui1REtwx1IpPQ5Rwamad3VcJnIvJvTsc13HntEH4cbHx6MnJOJPSJphSwHIbOpIF44N9ZDqjnUqGb46e/OI4nXjsRFQNaUVFVVQKfCczkbQjImS4RUOrnvwNAV8qE5fjQVIo7dwxF9h+tYKF7Sok8/lKSzqd3ncCh4zlwAVjuvJictH3RkYjN+5uu60udNerdK+ER2kYbbbRxOljIH1pRpLiW53O4vhQKDRE6PvhMxj6pucHgMY6ZnI1jEwX8xvs3Y8NABo7nw/EYbrt6rVQrZwIKmRfvCIuil53fDZ8D+0Znq3RKyraPZ3edrLt2aXPpY3S8gM6Ujq60CcaBZ984hU1rOgJmnThjrg3LWcNDC65aH2xK0dAHOzxPpdVVIqZidKKI594Yx8ycBQE5hra+P4U7rlmHeEyLOrdrViXxt/e+vqz3XllEmJmTbIFwHxnOhV+0oWtJ96xR/LdsH2XbB6XzdrAhKj3Kj08W64oaPufI5pyg6QB0p03oulKl8L2cWBoWAY5PFSECW1HX55FDDIRMrikBYoaKdEJf9JgrhbfKheRccjt5t2BZCfZ73/vehh7ElfjXf/3Xlo6lKAo+97nP4XOf+1zdz9asWYMDBw5U/d2GDRvw9a9/fcFjfvjDH8aHP/zhls7/VuOKLb34yu/swMsHpvDGkRkcOp6D5VQLXRUtD68dmsZrh6ZBAAz2JrB5rexur+lNVlXuNq3pwEeu34CnXj+J6TkLzGFQKNDfFcONl6yGaag4NDZXRTEPwbgAc6UHJ7UIDFWBaSjQVTlP9ZMXR2G7DD0dJljgYdzsYQ59LRmVPpwsSK4RKKB2pA2UHR8fuGotLtrYDSEEvvbAHiRMDbqmoCtNkC/Nq6qSYHbptqvXYuv6rkUXl8lZC7bLQIj0Mw03C1IAxpHWGDNlvPDmOMqOj9mig56MAUIlXd0LPMFrBc/6OmP4jfdvRjym1W18wg2OFH5RUCi7+NRtm0EIwd7hLP711RPwwZAIOrmuy3D0ZB7/66E38UvXrUdfZwwnpksQQYIfWonNW48kMDpRRGhZTQjqbFcAIGYoiJsq5opu5K8J1NO+am07WlmwO1MG4oaCiVlrwQ0LFwJP7zqBHz59NJqzCsVHXJ9FVmUC0tf1yPEchBBNN5OVgXw5dibLwUp4hLbRRhttLBeN/KHDLiUNCuKuz+WcYhB/bMfHdM5CWLNXg9lXz2fIlzi60gbmii4efG4Yf/CJS5EIRFDvvG4DUgkdT712ErMFB7brww8So/ddPoibLl8bnX//sVnsPjKDg2NzDWNQLWYLLmK6Co9xHBh1sHd4BkP9aZiGgqlZS86OxvQF1/2RUzmMZy1k8za60iau3iZ1ORbCctbwu2/fil9//2Y8unO0bgSgGUIWwr6RLO5/+igmsmVpxwWBjqSBmy5ZjZsuqy90j4znTyvmbV3fhZsvXY0Hnh2Gz3jkpa6qcjb/qV0nMdSXaimJbRb/w9nmcF48dA8JUelRftHG7qiocWqmhHzJA+cChiYV00NruripoGT7y0oAK4sAcUOF43G4rpTLZYHFKCEEmkKgUgVrVy29ix/ej+XE/oWKYpWf6eh4HoQQlB2GwT4PnYmlpV+tnuet2i+1sTiWlWBfffXVdR9wqVTCG2+8AcdxcPfdd6/IxZ2ryCQNXLOtDxeu7wLnAiemizg4lsOh41IhsbKbKgAcnyrh+FQJT7x6AjFDwabBDDav6cD5azuQSejYtKYDGwYzVfPaluPj6TDp5tKHuqcjhpsvWY1Nazqqrqdylst2Ja0nW5Q+nat74qAKRdnyIgpVo4c5Gdckrbmi2xq2gMMubNzUcNHGbqzvT2PP0ZmqjUTMUGHqStQVJgSwbB+9Qbd4ocUFQFTJpaTCcoMAKiHwuUCh7EIA+P4Th8G5tC5xPI5MQkfMUBEDkIppKJRdFMqenJ3SFLgex49fPIZtQ511G59KaCqFz+Rs+rYNXbjvqSNgnCNmyMTX9Vg042a7DP/0r4fRkzFRsnwUSl50zapCoSkUibiGKy9YFVi1yPdASX2nHQA8JgNa5WdStjzc/8xRTOVsgAtoGsVAdwJXbOmNfDK5wKILtiwaXAxK0DTw7BvJ4uGdIzh0PBdtvkIRMzkrJRkJE9kyQKTH9UM7R6X4nsuQaELnqgzkbxXatOo22mjj7UIls4lzgVxQdA4RLrvSUohCVSlmC06UXEcdPSAaccoHNkm1m2+FErz38jWYztnYdWgG6YQOn8lZ7yd2nUK26OIjN26CrinYvqkH2zf1wHZ9PPrSMby0d3GBtGzeRiIuBVZzRTdyNDk1XYKpK0jGdTDG4XhM+nkHv6eqFLN5G3/1/dfheSzqqP/Tzw7hzh1DuP2aoQXPu5w1fDkjAJWJXzKmwdRV2K6PuaKLx14eQ39XvC7RbVRAqcRiMY8LgT3DWZg6RcI0wMPCfKBqvpQuZrM9FaVENjjQmC1R618dFjVeeHMcP3jiMAxNgUJJ3XdXoQRjk8VFE0AuBEbGCzh6Uhbhd+4Zh+V46EyZ0vIzAWSZHbAD5XEzSQOuL91Wapl1rSTOpzPX3Mpnmi+5uOfRAyha8rW6pqAvoM232tE/3e9OG289lpVgf+lLX2r4957n4Xd+53cif+s2FgelBGtXpbB2VQq3XrEGZdvH4RM5HBqbw8Hjc3V2GpbDsOdoFnuOZgEA/V3xiE4+1J+CqlAcOT6HB58bhuMxxA01oo2PZy088NwwPnL9hrokOwQXApwJjE+XMT3noLfTRNyUya/jcTiuD9fjdQ/zmlVJcC6quq0AACl8DY9JevqaVXKmvBFFmhASLeSuJ+eYw0V8ocUlTMqbgUAmoQSAqSlQFQLb8eF5LKqOxwwVtstQKMsKLCUIvBsJjk+VMD5Tln7NTSjdobBbMq5FgUtVKLJ5J+r+V4JxgYlZKxKZQdDw9xiHAHDnpath2b60Fgk63JWNg1A1U2BeYE1RCNwSww+fPor9x2YjmjshBLbHkCvOYv/oLGKGCkNXkIxpLSW4ZctrOjsVbjJKgfK7GlSsRVBYUZX59yYAkEBMLWGqmMnZsBwfJctDKl5P6aoN5G200UYb5zLCOdvRUwXYnj9frCaA4CJiB3VnzMiJxGcy9oRd7hCESNEnz5cxhTFRt/n+3z/ZF80gm4HNZzKmIxUHjk2W8OiLo/jgtUNR/DJ1VQp5QY5ySQ/vxu/F9jjsnA1KgL0jWXSmDfRkYqCUYGquDMdjcmzIlB111+ewHR8T2XI0161SErHRSraP+58+CgCLJtlnGrXdXxoUNnRNQYfSnK7bymjYQjEv3FskY3rD319KF7PZnipksDkeAyGkam9Vqb+yZlUSI+PzwmWpmBZ5gM8Etpvz3XC5t/Etjr3D2abXtm8ki3ufOoITU8WAERDQ3xWCmCHp6jFDRVfaRL7kwvU5fC5FABtpz7SSOLc619wsUV/sMy1ZHizHx0zORjqhQ4tTCIEl0+ZP97vTxluPFZ3B1jQNn/70p/Ef/+N/xGc/+9mVPPS7BnFTxfZN3di+qTui0B4ay+Hg8TmMjheiRSfEeLaM8WwZz+4+BV2l2Lg6jekgcamk/VBVQVqhyJc9PPX6SWwYzCxY4YybKlzPx/ScpAbLWW01SoSKlgfXY9HDfDzotCqUyFkYzPsxh6IflBIcnyxifX+6oWBHiEYiWgstLrwigRUCEWUoRHjP1MB7mhAZCJ2AepcvuTA0WWXkwXyPEXiPuj6HqdHIr7poeehscL35soueYNGfmrXgeQyOz+vodOE9iX4XgOCyIKGqFMmYCp8JvLh3Avkg2Zed4OokO0ycEVSwLcfHXFEKoe0Zzs6fj8izBJbWAOSGKxXXggSXNU1wQwuzfNkN5uOrvy+Vm4y4qUYz14pCovftB4WNyuuJBzNd3WkDJ6YZcsH8Fq2g/zX6DrTRRhttnMughOCD1w7hq/ftBuOQBUrItZ9DJte6piBhqvj07Rdg7/AMHn9pDImYiumcMz9AHYBAJsGex0EpkC+72HN0Bsm4hv6eOJ7dfSp6rePKTnIODnRdQUxXcehEDr8a08B9DpfJQnZnypCnCIrn/iKMcS6AF/dN4sV9kxjsSeDiTd1IJwzM5GW8UhQaMdgSMSmGSQiB57H5/Q4BNCIL5Y/sHMX7rlq7KF38TGK5dN2l7ntqsVCjIZxvD0ewFqM4L7SnyiR0TOesSEcmbC6E+isXbejC3977elXi2pHUwbnAXNGNGGxS00fuehQqxcleOTiF2xvot+wbyeIbD+9FriTtayPNmaBYP52z0JOJRUm2bPowFEoefmnHEG65Yk0ds26xxHnLUGdLc81MCDz47FFMzdngQsBQFfR3y0R9y1AnVnWYGBkvwtAoVFVB3FBAqRT8zRVdECKLYuHoo6pSdKR0zBZaZxyc7nenjbceKy5ylsvlUCq9Mz1WzzYQIn0HB7oTuPHS1XBchqMnczh4PIeDY3OYLThVr3d9jv3H5ub/7FmRgFlo/RQ3FEzPWTg1XWpJoXwia8HQFKn8HXgWG5oCxgU2DWawti8l50osH5QQdGUMFEre/Cw1AF1VkEpocF0eVdCXqvq50OJCCSI6OAiqEvzKekQqPh8MMwkdM3mp0u0G53SDSr9CCWKGiolZa165O0jaY4ZSd735kguPcUzNWfjWj/dDACg5fpVoSohmexFKpBp46Gt4YroEQ5M2bB4T0WaCRVZl8l+GpoAxHnXKa9HIUtD15eszCSn+liu6Vaq0dpCsu560Cbv/6SN4fs94XXW4cpMxH0blZ6sqsmMiGrznfNlDvuxBCwoeJctHNu8gndChKFIpt2z7MHQFd1yzrj0D3UYbbbxlqOxUZVIGMpn44r+0gkgEjDFC5BpaGUfTCR0KJZiYtUAJcNHGbjy16yQopdF8tlq58Q5+t2x7UBSKHz59VCY/iix4hzGqdoV1g2R7rgg889px3HXdRnDB4Xgc117Uh2d2nZQxhzEopJpdFYKSeuuvE9MlnJiW+0NVIZjxGVIxDT7jmCtwlB1JfU+YKrSkpKzbDoPl+LLgQKVK9Ut7J3DdRQMrdMeXjuXSdU/XsaJZUmw5ftTRDUewXjs8vSDFudGeKrSE40JAU5TAW5q3pII+nbNhuX5VcV1CRAUZmbQ6dYWHsFgfMja1wGdYCAKGYM/DpU1XOBNOiBxBMw0Fm9Zk6mjhrSTOpqEsWigZPpWXBS827+XmUIay4+Oexw5g61AHRsaLsF0WiOt6yBIgGdOi5k+tb3rl8VtlHJyrbifnMpaVYD/44IN1f8cYw/j4OL773e+uiOd0G/UwdAVb13dh6/ouiGDe+eCYpJMfPZmHV5NNMS6rWmH3VdcoDE0JZoUXntMIFcoffG4YcyUXMV1W5CyHYSbvwNAobr18ENm8DV1VEI+pWNUVAwSQNDVYFZ7Nukrh+RxMEVX0laWofi62uKgKha5QJOIq8hUJftja1hQSdWldT7Zz0wkdJcuTCbblQQjpWRk35Sx2YM2J8DCci8DX0UCh7EZK4Z7PoWlKEPyopEsv0cqPQFKrmJBz3D4TSCcUJBVNqsNyEdieye6wpFsDlAhMzdlLOxlC8TcXcUNFyfYi+hJjPCg8yEJDV8aASmlD5fjKTQYBgg2e7GJTQkDUeZ/LMNQqNQJ0ns+gawq6MyZmCw7Kti+LGVT6i/74xWMghLRVvNtoo40zjlpKqaoQrO0fxu1XSW/mtwLFsgdKCFZ1xiJbrTCOEkICuyKZvG3b0BUlSem4hmzBiWIFC+wyAbkXiBHA0PUobk7PtTbKNz5TlmsyCExNQSqu4cM3n4eHnjkCjwl4ntxjON580DM1BYOrErj8vB7MlTy8cXQG49ly1XF9JilZM54jba1UCl2jyBVdFMtSJC1mqEjENCTjWmDvKX2+s/mlx7yVxOnQdU/HsaJRUmw5PrJ5O2Lf6aosUCxm3VS7p1IVgpLty5GC4PNe25fEjZcMRLoti6mgWzZDozaCCP4VMxRwjrrCw7GJAo5PScHXSmYCCTR1QoZi5Uz4Ql3bVhkGR0/kFyyUeIzJMT1EkkLR+JvPGBzXwuSsFf08fN6EAAplD3FTNkniZuNUa6lz0223k3cWlpVgf/7zn2/6s8suuwx/+qd/uuwLaqM1EELQk4mhJxPDdRf1w/M5RsbzePWgVCdvNJLsehxuEATve/oILhjqwuY1GWwazFRZMYTYtKYDv3rTJjzzximMTxXh83mF8psvWY0NqzNgTMBistsYN1UUyz46UyYyQkTiJT7jTRfCpah+Nltc1q5KVlRVGTqSOgQkLa5ke3A8DsNQUSi5KNleFW077FbfuH0Az785gYShYLY4n1zXzk/bLoPjerj96rUQAF54cwIzeQe9FUrrZduvu/bFP9D5mblQsE1XKQxdRXfarBMMAeRiX3aWmMlXgHEB2/VhGqqc6St7AR1cFnNCATgADZXjazcZ6YSObN6OGASh5UsIuSFA1FZRifQ89xnHDdsH8JMXjsHQZIEjZqot+zsuV/2zjTbaaCNEI0opYxwjp/L41o/34dNvkcdsuK4yJqrEpUJUJm+VSZLtMqTjehTzamG5HErZQ3fGhK7JeJ0rLb6x7+2IVf1ZCOCO6zYgl7fxxCvHoWsqTEOTriSc47zVGVyxpbfKteSWywcxkS1j99EZ7D4yg5lcdYLMuIDlMthB8ZtzwHalnRgpOXJ/YWhIx3WkYjoGuhNViddScbox43TpuktVO6+83is292JqzsJc0UXcUJCrGG1TKEFH0mjZuincU9375OFIYJeQIEmPaZgtOHjspTHcfdsWrO9PL6qCLsgCWjhEagglTLWu8FAse/PWtTWXqdD5kTOZ3Er19IW6tq0yDARB00KJEJLuDlQnz5VjfuF/KZECtUDgzhO8uGwzUAJMzlroSBp1++zlzE2vlNtJe9905rGsBLuRBRchBMlkEul0W4F3pcGFqFIIr7XbAmTycv6aDmwazKBoeTg5XYYeCFU4HqsLREXLxy/2T+IX+ydBCbC2LxWJpa2uOP6mNRlcurUf+45OoVjymp6fgODK83vxwHPD0ts6ZSAe06ApFAXLQ0/GxF07lk5fqV0EQh/rRgvDUOCrHHYfuBBQFAqFCZTKHorBMcN5cBHQwwWAC9d34thkEcOn8pG4RyM7Eqm8beOfnzwCRZGd+WRMA0DguB5KltwUKLQxPbsRAoZ7ND8eJveuz0EIg2moMA0VrsdgOz5yZQ8i8N9u9RzN4DGBmElx9+1bcGqmjO//6yGpTqvIeamQWhhWxSvpTGtWJaU67YyFdEKrEh/xAppZGJjC91gJWSWX+Pkbp+Bzjp6O2JL8HU9H/bONNtpogwuB0fE8fvDkYZQsL5qVBABFUxAzVEzP2VVrkMvYkmydKuFzjpf2TkQCm9s3d+OHTxzB5KyFVZ0xfPTW86qSN2BeyJMSmVhUWhHVFp4XEvwsBsy17oyJVFyLEuya0e35xIECt+9oLCh2+zXrcPNlq/HS3gnkig56O+O45PweMCbguEyy1jiX7C8hC6nr+1LYuq4DIAR7gmQ7TGKA+YRZAPA5QCDfs2X7gSYI0JkysK4/iZLtyxgR+Gu3iihmzJTh+AyUEPR2mPjIjZtwYYsxo7b7m4yp8nvhMRSt1ui6raqdV8a4cE9i6nLOt2RLLRwCqRuTSegwgySuVQrylqFOJGIyfidMKYobJpthkhl+9/MlF47HoFICF6hKSl2PSRp1DQiRey5AdqA7kkZd4SEZ16IENfz+EoJANI1AoSLa69i2D64rC3ZtW2UYbFydaVoocT0GPxAYqEyuw/9WvtPw57wiuQ5BKYHr8eh5VxX5ZyHCxtPSbcVO1+2kvW96a7CsBHtwcLCl1zHGcNFFF+G+++7DhRdeuJxTvetx5PjcvMf1InZbwDy1+4HnhuF4UswqQ6UdUsn2Gy4AXACj4wWMjhfws18cR8JUcf6aDpy/NoML1nUik4ljTW8SrGvhIFbpyT05WwabAeKmgoGeBG6+ZBCmoeLgsVnEY1qUxC/0oANY0iJQWdnbO5zFE6+eACEcZlJHNj8/r864gAiWR1WR3qL3BeqktsuiRHcheEzAY7Laniu5kTBHdI4lVNYJkTZWlefkAsjmHVAig1gmocPQFWQLknqvqQTeYuoyC50T8wEibqgY6k9j38gsLIdBCL+KAUEJga5RpBJapEQbfm5TczZs14flSCG8jqSOjqSOQtmDqlJcubkXO/dOyODLBQiV1PZQ/I5SSXufzjtIxRpXxeOGguNTRTzx6nGcN5iJCiqtqn+20UYbbTRCuI4dnyqiUPZAILtNdYlKbD5ReXrXCTy7+1TVGNC/PD+CG7YP4O7bty54vkdfHMUjO0dhOX5EN63E3tE5PLXrFDYOpGDqCqZzNnzGA2cGGbVUheKiDV1VyVsY+46ezOGL3311wWsoWh66UjoURUHCVFCyZRxrFE1u2D6wYOFApbRuFlqjQExX4XOOsYkCDh6bw+6jM5ias2A5rGoPc9vV67Bzzzie3X0K+bJbdz8EglhakeBcsaUXjAH5kguFEqgqlVozmlohrNUYYcwIO6Zh17RY9vDV+3bjIzdsaFmhvLKwMZEtw3Jkt3Il6bqVMU5VKBxXUrgLJblvyCR16KqCzpQOQ6/fzrdCQQ7p1OlEvTJ5ZZL+9K4TeG73qajYQYjcO4XPiu34DRkFIaWaQF7zFZt76woP6/pSiOkK8iXUPBQiGtNTKMG6vgQ+fP1GpBL6gh3XVhkG6/tTuPPaIfzvR/djJmfD0BRomhx5y5e8aHZczI9f1xWjQrBghLAWpq7AcuTY31RAJw/ZF6pa/yyvFJp1qNv7prcOKy5yVoulVBbbqMaR43NBorw0u63KRLcyMV/Xl8TNl6xGX3cCh47P4VDgvV2qoTSXbB+7Dk9j1+FpAHKx2jSYDpKbpJyjbYJGntxlx8fDO0eQKzrQNRXxmIq+jhjOW5PBs7tPYa7gwNCUqgf9Gw/vBSAXiaUsApQQrOtL4b6njsDnHHFDlWJdZN4qCpAUNEOjyCQN+IxjbLKImKEiFdeQb4E2t5JYoOEAIaS665RnIRZ0sRUq7VI8f/nXWXnKC9d34sDoLJ549URDoTQe0P29HEfcVDE1Z+Gxl8fm/T8NBbmi7FpP52wkYhqGgsAVM1W8dngaMV1B2ZEWb5WiPXFTlTNfXEBV679XluMjV5I+4g8+OwxTV9DfFccHrx3CT1oQMWlFnfN0UBvE1qxK4vhksU27aqONsxxVyQul0YiO60sdiu60iVgwO6mqFMzy8cAzR/HG0WzdsThHZHfVLMl+9MVR3B+IjKmUwF9g4T96qoCBrhg8n8P3eWR7qSkUmkLx1K6TGOpL1emU7B3ORvlJbZetEvmyh0zSQDphwGO29N2uLKpStFQwaIa9wzN4eOcITkzLuWtTVxAzFHRlTDgOw8ycjfueOYId2/rw0v4p+JyjO22ACdmtlmJR9RCQ93lqzsb2Td04b01GCpV6DJR60FUFpqHAiES75n83FL4qlj04oQVaoAkiuNRSeeDZYaxblcS2DY1tKWsRFjZOTJcAqgCcYbABw285qBTqMjUF2YITWF9RCIjIJ11w+Z016o1AWqIgt+rj/NDPR8A4j2b4CaqflaI9vx9RqNzX1G7/EzEN2zbMf2fD+PnUqyeiWeb6+xD8rqHg+u2rceHG7kXv71IFweKmpMOXHT+4foKejAlKZdMl1L0J0fi5mn9N5bNHCQl0fbwoOSeUQKUEapNn+XTRrHF1xzXr8OMXj73t+6Z3C854gt1Gcyw0Q8SFwFOvn4TjybmqpdptNUp0K6ndl53fi8vO743o5wfG5nDoeA5jE4W6hO/YRAHHJgp48tUTMDQF5w1msHltBuev7Yg8MStBCYkUyo8cn8OPKooEXAjkCg6mZy3sH51FMq5jqD8dqVc6ruyEnpiSSqOre+KRfVOri8CxiQLGJouya2/5Ee2aEGn9IBdCgs6UnFUazzqRh3PMUFGyvNOmXteikjIeVnIrE/7a1yqURv6lgHxtWAhJJXTwFSpcUQrsuKgPP3xmGJbTfHZcWoTJTchL+8arFmgd0tLF9RjyJTkO8NmPXwKVUnAh0N8Vx4mpEga647BcSSOjlEBTCHIlD70dUuCskTJqKN5CAKQDFfjjUyV865F98BivUj8PsVR1zuWiNoiFliaUBrS2Nu2qjTbOStSqDLs+Bykh0obwg+QlnJn0femoUGWBWHG8cDV+dvcp/Pr7N9d1fX3O8cjOUTAuoCmkaeJbiVNZC6m4hkTagBCIfJZrabuVMXCqRrisWZIdClmVbB/nDWbwux+9GI+/cGxZlPdahHZLhbIXFWzzpfn4GjNUJOIauABePjANzjkycT30lERMV8E5x2zBkXZdPq8q/Doew2uHpvHaoWnEDBUXbejCxZu6sXEgDcakrohCKQxdganLPQMBcGy8gPGZMnzGISATHB5Q2EUwluX5HPc/cxQXrG+9q0gJwYaBNDo7E5idLUXCnqeLYxPyenVVOpdwLiIaNQEBaLB/JKLOCQRo3bppMTq1F4wZAnK0wHaZjMuBdSfjAjMFG8yvpnYrlFQ0NDg4B3o7zOhawvh5arqE2aJbd95aCACP7BzFKwemWoqprQiCVRbZejtiFftQBs6B7rQZqd4vfn3zT1vlM1cMmKPhvckkdCTjOpTg81vppHahDvU//ng//Ld53/RuQjvBfhsgBBA3NGiBurbn82iDLoQUyjo1XcL0nIW4oTalzS5mt1WZ6Naidq775ssG8d7L18ByfBw5IW3ADh3P1VGfHY/hzZEs3hyRG41VnTFsDujk6/vT0cxYeI5mRQIhBKZzDvLB8UNfQ1M34Lg+kjHpq+wxAaOisNrKIrB3OCtVwSEpbIIAnIkoSQxtvbgACpYXCb8Vyh6Klh9c58oyLyqLFh0pHZqqRFZYlaBBcs3FfDVUoQGlmiOgLrkw9OVtfgBUdfPX9iYBQmVBwmvcNaiE4zIcOpFHwtDg+jxStiWEwNBVZAhBruRGfudhJfnbjx0IVMulbZzvc+RKHkxdwUdu3ISfvDBaZxdS50uuzwuuTc/ZcDyGTLJB2R5LV+dcKmqDGKOtq6+/3WiLm7TxbkXZ8/Cth/bh+HQRMzkHXUm50dRVWuWCoASJneszKApByfKha7SqO1yJMGJwDjy6cxQfun5j1XN29GROWlBRuVayFiu4PhN11N+FYmCtIFkzECI39mEnz1RVfOj6jS397kLgQuDeJw8jV3Lr7pHPBAplD4WyB1OjgX2oCjOmI5M0ADEvbEYpRTqhw/UY/s3tW1C0few+MoN9o7NVYp+W4+Pl/ZN4ef8kkjENF23swiWberC2LwmfcViOD4USGLoC22GIxVQZ53xJD29EIjg+XTorEoy9w1nkym5k9QQAHuNSQ4aQyOM8HtNQtuadQJZq3bQYnTq0zkon9MCqtFprhQBB0Vwm6yXLn7dKDTjWIvj/y8/vraMpN7o2GjxQlU9JLLCbXUpMXUgQrJmVl6EDyZgsYhGChlo8DdGg6SGL7fPvIyyUmboSjSesZFK7mD3Z9JwNx2foSNU3xoAzv296t6GdYL9NoAQwVAWmpgAg4EJW+HzOwXyOcUqRThjQNArGBPyKbiYASRcP/IKXisXmui/a2I2LNnbLJDhv49hkCa8fmsLwyXwdhXhyVtoUPPfGKWgKxcbVaZy/tgOb12ZgO37TIkEofOUzKaTl+Rz5krQSowASpo5kfN672g5sv4CFFwEuBF45OBUpajZiCfBg+K1seyg780llWHFdSCRmuajcmEkamwoIgemcHVmvyDkfeZ8q73NIXQy/AVwgso5YLiglSMU1fPyW81Asuyg7fsPNRiXCTaTgsjBRsr1IPTzs9DT6bLau78Jn7tiKR18ew9h4Hj6rryRToIrOxYWo8iXPJOYTaUII4qYK2/VhOwyJBtS25ahztopGQWyi4ECAQFNkEadQ8rCqM4aOpH5W0a7a4iZtvFvx5/e8jKOnClV/N5lzoZV8rO5JVLsgEJlc2C5D2WEwdQU9GbMlS8SpOavuOXP9QNuDSJJoqwQk3sTvsVkMvH3HEP7l+RFwPj8r2qhcrCkUAz0rb+0zOp7HielSxNJqVqf2mIBv+8iVPCgKge0wDPbG0Zky5EiSy2G5cv/geBzb1ndh2/ouuB7D/mNz2H1kGgfH5qqSn6Ll4YU3J/DCmxPIJHRs39SN7Zu6sbonAc/nUnyUSJVtAZmclx0fTg0d3fM4nnr1BP7NHW9fgr1vJIt/ffVExN6qZLL5TEAN6usEMkETXEgnEMtbsnXTohaoQdOkcoQrbIi4QaGiZHmglCBuaDA0NUq+pSq57LwbmoJtG7rq4me+ookTFapEfRGLcbEsKnMzQbDFrLxUSuoYIfXHlteqaxReTbNEobKLX8s2LFkeOisS3JVMahd7T3FThZ2XM/SJWP3e6Ezum96NaCfYbzPksyc9ByU1WAHRFPR0mNA0qdysqUpkT+B60ju4bHtQKJr66zXDUua6CZGb7y0benD1Bb2wbB9HT+VxaEx2uGdqvCg9xnFgbA4HxuYAAKmYBttlgacxrVoIaUXyW5nQhu9ves6Gach5qnRcR9xQwbicBS6UXAgAE9lyXQfu2EQBc0UHmkolFUyIpnTvojVfnFCCzoKcj5Ed7zMFGqh2KEow90cICAT84LvARfUGjICAiZXjrMcMFev6krhrx3psXd+F5/ecguACCllYnK32R1xIRkOojhkz1KYL9LYNXdhx6Rrs2j+OXMGp+9xq6Vy2wyJf8o6kEQkORe/BVEGLJGJgNKLGDfbEwQWw5+jMilpZ1AYx15OKuQqR32mKar/Os4V21RY3aePdikbJdQjP5zg5XcLqnkTUmQuLe4wJbBjM4Par1mL/aBZvjsy2cDZS95wVSi4sh4FxmXAsNB5WiTBW1KLZOqsrCm7YPhDNgzc6xcUbu/CRGzc2XQ8XY7hwIXB4bA4nJvKIG0pVR/DlfZPwmYBCw2JxszdZIRUlhIzZGkVMV4PONkVK1aCrFJ0ZA5QS8CDBChNn2/Wxb2QWu4/O4NBYriqRyZVcPLv7FJ7dfQpdaQPbN/Xg4o0yuRvPlhEzVMRNFd2GCS6ETLYDD2gAeHn/JH7j9i1VnsxvFcIE1GcMuqbAq2CWhXfUDzrGuqpIBXFdwd23bwEhZFnMpIXo1Fds7pXXU0MhJ4TA0OT5Y7oK01AwV3CRTmjo7TDhBcJ8miJnuNcEyve18TOkvdei9psT0eNXiMq82Ox5yfaiRF9VKXggYlZ5XaoqNRF+666tKNrSmef1IzMVY4DVc4CUys/OcRmYEJK5yue7/6eLxd6TaSggZOF902IjBW20jnaCfRZCCGB1TwKmpmB0vIju9LyvYcyQG3aqUKwfSGNdf0pSaYRYNGCf7ly3rim4YF0nLljXCQCYyds4NDaHg2M5HD2Zg1sze1QILEHmCi4AF7omq5imrkKlckbV8wVqT6UGybftMMzlbVg2g6ErMDQlUpSMGwqeeO0EHv/FGHo7YlGltlj2wLlU15zNO4vSewgk5TgUnOGiXmX9dBEutlxIz8UwSIWfqRvQrIBw0zV/H+UizSPFWlUh4EJWc1vdpIXXYBoKejti+NRtYSB28fyeU5ieK0vKPF9YGCe8nvnrBBQi71m+5MLQ6IILNKVyVs3vbVwsqKRzHTmew0M7R5Ew1aY2GzFDharQhlV3SoCyw/D3D7yx7E5ts27vtqHOqiAWFYjI/H94xd+3UqHmQmD4VB7DE6UVFcqpPP5C1LGzqcveRhsribLnNU2uQ3g+B/N9xAwVhkaRzTvozpj4t3duxWVbB5DLlbF+daquOxxiXtBIxsXa5yyd0KUgVdSBJC0VcV2Pw7I9xMz5zfdiG+FQmKxW6bwV4bLFGC77RrL4yYvHMDFrScHN4OcXbejCnuEsRsblfWY8JAY3RkAim7dxJHK9nE92BfJlDxsHUti2vktaf3lMJiZBomPqKi7b3IvLNveibPt4cySL3UemcfRkviouZvMOnnrtBJ567QQ6kjo4FyhaHoqWB1WhiJvBXLipRbRy2/Hx0t6JOoX0twJhApqM6WBcyHnn0Ae64nUEBOmEhrLDsKY3gaFgJGu5aEanBoBXDk41pZDniy5AANdn0lEk0NHJJHVoCkXRls9VSFUvlFy4LgMhgRVpxfRy+FzVfnMokZ36EJUxdbkjTwvNnodF86i+JaoZkUK25pGKaRAA0kkD28/rRTqu4+DxHHyfB3tPETRR5HtSgpn1yTlLOgME9zBuqHViw0sFFwL5siufoSYdasYE4qYKrcm+qZWRgjZaRzvBPktRSduZyTtVD0LZ8ZGKabjlxo1Y1RED4yKwnJBUco9JD2LBUVXVXYm57kp0p010X9iPay/sh884RicKUcI9ni3Xvd71ZAe+UPZk15YgSITk3LOiUFi2nNEKc5aZvAtN8ZCKa2BcBl1TV7Gqw0QmbQAcKJRd3Pf0EXyMzC+aKqWIGWo0P1SLZExDyZY2DMm4JlWwGW85YV0KCK1ISAMbkfD+ZxI6pnOSqq8q9RR1WtFVVug8XVwQga60CZ9xFMruoqJsukaRiuu4dlsfHnjmKMYmiyg7PkSQqDdhItYh9LP0o4BPIs/ubN5BIqad1gId0rnW9aXw2uHpBW021q5KRqqYlVX3zqTczM4W7GV3ahfq9p6aKUtf1yAwR12mYHcQbhLCvw+7TYmYipHxfEPbjNDqJfRA71th2vZi1LGzpcveRhsrjW89tK+l183kXXSkCErB5vQTt5yHjasz0XPcSnf40vN7MDJeqHrOXE+ONyVjWhSPWnFXURW5GZ/K2ehkAom41vJG+O7bt+LX3795SV7dizFcbr50NZ7adRKOy5BO6oiZCjyPY2S8gAPH5mBo0hUiHFtb6B0KIeNZKmEgX3IigchwXQ3f462XrwEFAVXknHwqpsFjUoTK8aS6M+cyabjqglW46oJVKJRd7Dmaxe6jMxgdry6szNWIafmMI19ygwKxgpipIhXXkYrrsF1/SUXslUJlF1InBF1pKQLq1TQw4oYK2+UrmhQ1o1M3o5Dniy5sj8HQKdJxA3FDxVzRhedxzMzZSMY0bFzTgduvWovNazuwbySLH/18GCXbR7EioWxUrKpEJmmgshMTxtSpnIW//sGuBUeemiXgC82es2AvqOsKEIi7hkWh+QuVhZpNgXUoIMdDQj/w8HAKlSriRcuL1MhD0cTQ2x4C+M5psMgiwbiZUlR4KJTdKvaf4/rIlzz0d8fw4Rs24tGafdNK2su1IdFOsM9iNKPtDAazU+ev7QiqwAS6qkBXAWLKDTPj8wl3OCfj+RyKQptSck5nrltVKDatzmDT6gxuv0ZStA6NzeG1Q1MYOVVoQC+ep86UbQbH5ZGgBAGQSWigiqQ7eb7AbEEKThAAMYPCYwLTs9K30NAU+Fzg529O4N/cvgUbBtI4ODbX9H3IrrWkZnMufZ1DcbkzAR4kz7oqBb4qgxSlBKamwmUyUPKABs+i7ob0iWaMRwGUCUmVCyuUqYSOqVkLCiUNq6AxQ8GGgTQu2tCFp3adjGxKuJAV1doZoWZdbFUh0TUoVFLvw/smIAsVN1w8gFgwQ71QwF+s6tyqzcbW9V24YH1XdKxETMX9Tx/FbNFZdqd2sW7vbMEB5wIl24Om0iomghL8vnweaVQM6EzquP/po3UbgfAziSzPdDlbvtK07VasWNriJm2ci1hsjjKEE6glL7TRXKw7fMXmVfjHR/ZBjVHYgcVgZWIUukmEXdtmMcfUFfR1xWE5HmZyDvJlFz6Xne9WN8K6orQsXLY4w8XBIztHQSnQlTahqVKkSVMpGBfBPxwJU0W+ROvYbHXXFoz+GLoC12UAARiXCVuzzT7j8zEjndSxdlUSnAGOJ4XRvCDZTsV17LioHzsu6sdc0cGeo1m8fmQ6ciZpBsdj8HyGYknaiSqUomh5MDUVqtr63PzporazGs47SxFWLxh9k1ZPb1VS1HAvSuWGzNApejIx+Z3RFMRMLUrmejpi+M//97UoFCy8cXhaepBbbt3+YqFb25HUka7QYKmMqY+9NLbgyBOABRkZC+0xSNA1FwKYLTgNr83zeeRjvW8ki0dfOhbMnQdjkJCOBEXLQ9JUMVcKC2zyH0NTkEno0b5wOSyyusKYSpHNOXA8jqk5C3FTDUYv5R57as7Goy8ewx3XrEM8prXFTs8gzmiCTSnFRz7yEXR2dp7J05zTWEgFsRFC+gqBtEHSFIq4KVOmsp3Eqq4YtKCKHaqkhnQWxviy5robIZPQceUFq3DlBatw6NgsHv/FGKZzNjxfNLSYqqJlE9ntNoiCzpQJzjlyJReMCXSlDeja/PWFmyLfZyiUHOw7NoubLlmNqTkLpi49uC3HrxYuC+jDoW+hF1RDayl7qkJaV5BsAiWoUjIu0NsZw8du2ljXcR0aSOGD1w4hYapRkjh8qoCHnh+B73OoCkGhzKMxAEpQJfrl+9Kf+nc+cjGEEHjlwCRs10cmYWBDfwrppIE1q5L423tfh+36YJwHglzyO0QEICp8HimVFPt8SVZcCUEwny5fLwKFc1NX0JHUUbI8lF0Gy/bx018cxxOvnViQjt2q0FYrNhtAddV9ZDx/2p3axbq9yZisRqt0nmaVjmuYydvwmPzMUwkNXgVdPVdyMVt0ajYCRRw6noOmEvRkYlJxNLDi6VBWlra9mBVLW9ykjXMVvR0xHJtc3Gpn4+o0Pvn+zYtuNBfqDo+M5wPVcU+6IARFzLBq6QeiVddd2I++rhi60ia60jr++z+/ITtmGkVnyoisKWOGht4OgrLj467rhnBe0C1b6Y3wYmuerirIlqXWRuXP3cCnW6UyVro+R2fKwHTObjpqlU5oyCQN+D6X62dcw6du2xLFv0Z7nIVixrYNXUjENPi+gOMzOK4v9zNcoCNp4PrtA7h++wBm8jbeODKD149MYyLb3HOZC4D4DAM9cRTKHkrUh6YQmMF8uEJpSwyE5aJRZ5UQgnRCRzKmRuMLn779AqzvX/i70KyQ3SqtuvZ1n/34JTg+WUSx7CFfdnH/00dg6vWMyMhRpOhg5FQenQkVj7wwCsvxAh2C5sUlhRJcu20VMkkDv9g/BdtjcD1WlfwaGgUIWXDk6d6njqBse3A8tiCTrdEeY6g/hZLlYbbowHFZRPGu0sYhgKkp2DOcxfuuWotHXhiF4zF0Zwxk807QZJBjdD4XKFgeKJHCvYmYDkBAU+dj8XJYZI0KY8yRVqGMS3vaUGtIVQg60/PuJt9+/CDuvm0LLtrYmud7G0vHsjOp3bt348UXX4TrutFiI4RAuVzGK6+8gnvvvReEEHzxi19csYt9t6IZbadVhJ/PYG8CGqWYnLXQnTFg6kqUTHMukC04GOhJYHBVUiZdK3L1wPnrOrFpbUdkC0aInM+WdmA5FK3qrpkQgOUyWIG6p6pQKJTAE6JpYKMKRbHsYTbnRDQ1hcqglEnocDwWzVZxIb0dI2VvgobHlRsLsmg1vmJMp+HPSLA4QwhcUNNxbRbcNgxk4HoMj+wcRb7kBb8v59pSqXnaT+U8XhhsNwykq46/ZlUSL+2dwNhkEUqwEVKC84Uz55XXzjhQDuambJdBU6RgXGgREnan04lgns2WVhtxU4WmSQuuscki/n+P7MOtlw9i24YubBzMAJDWI0sR2lpqgWklOrWtHIMSgvdePoi9o7PRpi9uapEPtutyMEVgsCeOssMwW7DrNgIiUBsnpP48K03bXsyKpS1u0sa5is/80la88t+eXfR1n/21SxDXWiswNesOh8/ZgWNz4IHAUwgRzJoSSpAt2PjMnVtBCcGeozMwdRXppN5wXdM0BcRh6O+Mn7HxjcXWvDDBqJV2DkWfSFBA4FzANFT0ZEzkSi6cIM7GDRW9nTFAyERjoU51LVoVZ1QUgoSqImGqUkjKm0+2ORfoTpu4+bJB3HzZIH7ywgie3T3e9JweE/jy917DpsEMtm/qxrb1XYgbHNSWTQszmNWnZOWT7cXYW9H4wkD9d6EyIZ7KWXjlwFRD1tSe4eyiBe6FihoXbezGnqMzkp2nLhxr8yUX+YKF8WwZhqaibDvRqBnj1cxBVSWI6SpuvXIt1venceH6rgWF1xYqpJ+YKsLQFHRnzIYJeFi8brbHODA6i398ZB8Knlc1f82C/U93xoRCCcazZby0dyIqUGkqRSouu9aM8eD5CM9PkEkZ0AMGSPV7XzqLrLYwZjl+5FEesmWAoL4XNt5UirihIF/ycN/TR/Af13W8LWJ+7wYsK8H+3ve+hz//8z9vuLBQSnH99def9oW1sfKghOD2q9fhnscO4PhkKVq4CWQlOhXXcNe1Q+gOZnt9n4MFHdPTLZg38uS+7Pxeqeo5U8bOPeN47fB0Q4ssOV8u/38m78LUWeCLrER098rue9n2YbsMukqQy1kwdCli0pE0IJIGHJcFFk+SlhsqPocpcjg/y7lAJqkjV3QXFj5boBrLuIARFDIKlhclS7UbpdpKcdny8NSuk6AU6M6YcH2GoiU78fmSA02RM+u183i1QTGcbWNCRHYkQgBEmbf8qPqcqKS0K5TiQ9dvAIHAM6+fwnTOhs84GBeRgIlCCSZnpZJ8d8aI/FoZl52MouXhgeeG8cSrJ7C6J4FPfGALHn5+ZMlCW0spMK1EpzYeCJeULA+GptQdJzzGtg1duP3aobpiRljhT8Y1cAH8/QNvNNwIhFQyFnR+zBpv85WkbbdKuW9TxNo41xDXNGwcSC0odLZxINVycr0QKCG4Yksv9o/OSrFDMS/gxIUsvqUTOiZmrSgWnA3sksWuIbJNqolzkgY7//fhvLppqDANFSVLdhA/8d7zcO2F/QCwJEGqpYozVmqdJEwVyZgG1+fwPAbbC9h6nGP7ph5YDsPuI9Nw/cbBmwvg0PEcDh3P4cFnh7F5bQe2b+rGBUOdgYWYHXTJdWwYXDw+LUWMq1X2ViUqY7/jyoYCIQSZpI50Uofvc4yeCubldYpMwmharGilqNHK91ZV5Pf9xEReemVrUmdGemTL2Xo5Yib3KZ1JA67Ho5jXLPndO5xdsCAkgsaBoSktMdlq9xhcCMRMFdvWd2Lnm+NV1mFGhTUpFwJlWya1jAn4CsfsrBPNbINIu69kTIXrMlBF3kddXZnnvLIwJgKxWS7CBgoBCwRzKZWP6GzBAaXy8lCfxAABAABJREFUMxNCYHS8gC999xX86o2b2rPXZwDLSrC/+93v4sYbb8SXv/xlfP3rX0exWMQf//Ef4+mnn8bnP/95fOhDH1rp62xjhdBs4Q4rk+cFFl2aQkEMOZedTJmgXMB2pF+1FyRuKzG3TAnB6p4Err2wD4dPzAV2CKhSDK2F7TLYLgNKwWyzpoBxgdU9cQz0JHBqugSFIhJLc1xpwUEpQUyXQiYdSQNIGuhM6/CCBX0qSCIVIrsMnMsORHfawEzeaXgtjTYdlVAVinRCg6GryBfdhslSXaWYEln5h4hmmxLQYOpyps/1GLIFB+m4XhVwa4MioxwzeRuMz2+ESCCaFs66h+8hooeDAEQGpwefOQo98GFXFYKejAmqUDiuD9flcCBnejqTBmKGDApVFdRgxp1SgrHJIv77D3bBdefVLZ1A/IdSKWATNxQcnyriiVePL5sKebqd2n0jWTy8cwRl24uESvRgTso01LpjNEr+K/+85+hM041AuBkVQRGkFiu9sV7Opq2NNs4F/MndVzW16to4kMKf3H3Vip2rNxOTloVcaqBwyDVWV+XG3NCVqlhwNrBLFrsG12eIGaqk24r5baOuUqgqheMyGBqtSrQ4l4rcXWkD03MWHnl+BN0ZE1dv62u5Y3Y64ozhuJxKCVRDRdzUcHBsFk+/fhITsxbKlodETEOHSrG2N4kNAyl0ZWJ482gWbxydQb4iVjMusG90FvtGZ6FQAtNQAoFQeQ1rVqVwx/UbsL43GTUkKvdGrY5FVWIp7K3K2F+pSB06fIRdd5/zYF4e0edcW6w4f11HS0WNz378kkW/t+tWJbFxMIN8wYKikICFV63CL9kP8x3i2pjXKMYulty7gSe1pi2dyVZVqPCYbDioQNLUEDNU6BXvNYzRXWlp95bNORCQHW4avE/GOfIlDzFDQW+HiZmcg1iN7ehyn/PK+xCOO9JgpKByFJMQCiF4pIxOA1tazgXGZ6y2TecZwrIS7OPHj+Pzn/88MpkMLrroInzta1+DaZq47bbbcPToUXz729/GXXfdtdLX2sYKodWFO3w+NVX6UipUgyQpS/8+L+hyez6DH1B9RA3duFUM9CTQ0xHDeNZCOi4XMiHkeWzXR8n2Gya4PhPwmQwmx8aLuOcn+3H+mgxMQ0Wu5EEhcoGmQcc29LvUVApNpTB1BemkDsOQ81UzeQdl25PvI6iCuj5Hd8bE9o3d2PnmuFQ9h6xoLvZefS7VtdMJ0TBZalQptuz5goDtsmgxDsVOyrYP22P4lZs24toL+6OZqtqgOFFwglnr+Rn3ylsoav5LIOlPmkLh+QyOAGKGiWRcnZ99AnDXjvXo7YhhIlvGQ8+PRAlzXQWVEBAedBNSOqZzDmzHh64rkSpqGGgjxW3G8eCzwzB1Zcm2WsDpdWorP4t0QpfvJRCdm85ZyCQM+Fwsqdu70EZA1yQDw2MVdiDhZ3KGNtZLpdy30ca5gj+5+yqUPQ/femhfNDv9mV/auiKd60ok4xoMXUFKlXOilUVEQkhkbxXGgjPBLlmqddHi16BGKuLS61gHoYF+CSVQqHTuCGdlS5YXMb9Kto+xYAaeEOCffnYId+4Ywu3XDC36PlZSnHHv8AzueewAhBDoTJvo646DM0lZn8rZuHxzb8Qu++COIYyOF7D7yAzeODpTJZjKuEApmGslJFAiH8ni2GQBH7t5EzYOZKStqC6FLg+MzuLbjx2A1eJYVO3nshh7qzb2h3PxlEpRUp8L5Equ7FwyWXAIxW+NICZVFisq6c4LFTWOTxYX/d7edd16UCpnmvu74hibLEJV5f6CYJ46LfcdBK7PsKY3uWjMW6wg5HhM0rqb/H6z4nXtfiwR0+B5Zbg+jxht4bkqY/SVW1fhn352SDL8FBK9hgT/SE9w4MM3bMT3Hj+ImbyDuKFAUU7vOa+8D4ZGI3ZAJaQEhHQVCv8csj0IQWT11rbpXHksK8HWNA2maQIAhoaGMDo6Cs/zoGkarrjiCnzrW99a0YtsY+WxnLluEQ4CA0FQVUB0BYAOLgLVcsbheYFVGA873fXH4kJEM9lxU8VATwI3X7IaDzw3jHzZixYfAQEmpOjWL+0Ywni2jBf2TqJQdlGbbzMuIkpX9HdB0k+AyEKJUiARlx3lsckC6LTcHJiGpJRJWpn0QSRAVYfvsvN7cO+Th3FiulQlDLbQPWNcIFd0sXltpipwNKO/zc/7yITV1OcXdUIIYqYKz+dIxrRoE5UvuxifmQ+KoY+jQgI7NBp4Z4fX1ehiybwNl1S5lb/r+fKzjBsKSraPVw5O4Q8+cSmScS0KqJoq6equx+bHCSpog4RIm6qy5SGbd4CKKi8TAl5A0yMESMfle1iukvZyOrWNPgtVocgHKsChx+TmtR1LSvoX2whoigyKpaCgQoPPrmidOdr26Wo6tNHGOxVxTcP/51e2n9FzVD7zHUm9pY70SrJLltMtbfUahvpSdT7Y6/tTVXO9+ZILy/Ebxhgh5Fp3/9NHAWDRJHul6PO167vjSoacnEeVWiNvjs5iy1CnjJMc2DCQxoaBNO66bj2Onszh9cMz2HVoqrpILQAn6JbaLsP3fnoQv3rTJmxcnYHmUFAKPLP7FNIJDb2dMTgeh+uxJblaLIbaLn84F08hv28U0iquZEm3FEJlclXLmgoLI0dO5IIRu8WLGhdt7F7wO7Ntw7wQaZiMM+7BhxThkjak8r8qVWDq6qIxLywebRvqxPhMGXOheGjNnHpPxsRs0YVeQxNv9gzWfkc8n8N1WWDj6sBnAnNFJ2L1VSbFJ6dKoJTIuWcBKEDUqmdCugdQKgVSP3PHVjz68hjGxvPw2emxyCrvaynQMgq36SGlPWQMRI2UQPOFCQFdpTACkbozYdO5XI/ycwXLSrC3bt2KJ598Etdccw02bNgAzjlef/11XHnllRgfby4c0ca5hzDprlItN+TPGJ/vcrs+lzPBXODw8Vk8ueskpuek/7NCgZ6OGG6+ZDU+fP0GPP7yGLIFB+ACqkbR3yV/tmlNB7YMdeGGSwdxarqEiWwZUzkbk7MWjpzMRbSgWkRxRATd1JgKhRBoihJRsX3Cpe8lAE1TETdU7LiwH9dsW4V1q1KgQVDaur4Lf/pvrsLoeB5HT+RxKlvGc7tPNpzjiha2oNN95ZZVVYtLM/pbmJASIJoPNyo2F36Q8P3oueFIXZ0JAcvx0a0YgKbMB08iF7l53+rGoAEVOm6qyBXdwL4LURci7DQriqR7H5soRBvJkfGC/Kw9Lu+1ADgEQETVDHPcUOX9qKjyCjFfWQ3vmaEpACGntQFZaqe20WcRMgbcIND6nONXb9qIDQOZlq9jUcGauIY7L12NPcNZTGTLsBypWNqmbbfRxjsTjZ55IQRcj0uKdUxrmESsBLukVUGwZljsGrau78KFm7oxW/JxYiKPuKFEP//A1eswOp7HPY8ewPScFYmUAvVCoIwLPLJzFO+7au2CdPGVos83i7WeL2mzrsdw9ISLsuNjdXcSrufDcRlcJsegzl/Tgbih4vDxWYAQeD6H7bK65kG+5OFbP96PREzDxRu6MNAdx96RGXQkTRg6QSqmAXENrifH3BKmiuNTJTz5ynFsWrO8sajaLn84DsaC2BpeYtGSI3MIqO20hjZVsjyUHR8v7ZuMBGErx6NC1BY1Wv3eVhZwxiaLKNt+IMZFEDNUrF2VbEnwrpHGTNHyQAmpSlYBLIkVEn5HVEUKAVfb61EQIkc+5vIOdF2pitF7js5I4bO0iXxZjlKGN15XKdJxDU4winjp5l7suHQNdu0fR67gnHbiGd7Xh3eO4NDxXDDaJiKLt0LZrdHaEfB5tRvNmbDpXG6h71zCshLsz3zmM/jd3/1d5PN5/OVf/iVuvfVW/NEf/RE+8IEP4KGHHsIVV1yx0tfZxjsIYdChhMBQFZiaAoCAC45DYzk8v3cSXAj0dMTABWA7HsazFu596ghScR0lSyrTh4IwNwbJdYhQMK1SNM1nHMcmijh0fA6HxuZwcqbc8NoYF8gHXoQKlQsyIKSnaZAI+4yhbAkcPj6HGy9djZm8rFrqmgJDo1AoxYaBDDYMZDAynsdL+ybgMz/o3JKoa1+5pKkKAROiyh+6Gf0trG47Hosq0vP3ViBfdOEyjumchWRMj2jlJcvDTN5GT0XwDC3Couug4VzQ/HV1JnWoqkyEbceXM8HB5+gFM+HhPJEf0M/2Dmexvl96ax84NgfGpWpl+KbDKmqsQrjLChTkZfCXVd7KyioAgEjV9rDqfDpK2kvp1Db7LAghMILPI190I2rgUtBKZ+gDV6/DiekSQBWAMwz2JN5Vld422jiXED7z9z51BCemitEarFCpZdEMp8MuWaog2HKvgRKC89Z2oDupwa9IQsLZz6LlQdeUwAqzTngcgCyqW46Pl/ZO4LqLBhY810rQ51uhmueLLubyDtb0JGHqKmKGBsZlgdtxpBq5okjqdziWFYqJ2RXFBEAmqy/snZDvnwCuL5NAVQEMTUUipsEM4i0A/MvzI9BUuqwEpLbLr6sUlJKIFVZ5L7mQ1k2aQqo61JbjSQEsQpCKa/C5gBdYoM7kbXSnzYYaJJXHbuV7W5mMF0ouCpaHZExDOqEvmmQ2Kx7J+0ojx5LK4yyFFVIse5EArgBpYK8nk9YPXL0WF23srjpP+BkoCkVfVxxupb6Mpki2BxfzYyFUur34vQs71LSK8L4+vesEHvr5CDyfI53QIxHjuaITdbSFkEl/ZeFkpfVeTrfQd65gWQn2Lbfcgq9//es4fPgwAOALX/gC/v2///f4/ve/j4svvhh/9md/tqIX2cY7G2GXWwjg4eeHMT1noacjBl1VoFACkTLQ4fiYnLVQsjyk4rq00vIZZgsufvTcMD5y/YaqJLsWqkKxcXUaG1encd7qNO5/5ihKlgdvAR/rqsQz6L4buqz6+Yxjas7CickiBnoSGB3Pw3EZUgkda/tSiBkKDJXCdoNZn4DWTUGgQHZ/Q/GqUHzi4edH8NrBKVy5ZRV6O2LIl11Qiob0t0xCx3TOiiq0XIhgU+HBZRyaStCZmrefkCrlChyXYa7ooL8rDi24vhDhzJMMtDz6s+NzqKoyb9kVFAcIAVRaPU8EIu/bq4em8IFr1mHPcBaGpoBxHlRJK4U1pN1aKqi4FAPrtK6UEVV5K50IVEUWE6xg06FryhmprDbCmVbyXazKH9qrdXYmMDtbqtq4ttFGG+9MlG05t2loCjRNbnZni+4Z2WSejiDYSiFMZJtxpUjFTwSAbN5e9JgrQZ9fzvougmK4qSmI6SpW98bR1xUDIOngZduDohB0piRlr2z7KNkeOEeVwJQQ8meVc9yATHITMR2JmIrutBlZpX7n8YP41Ac2L3sMqRGkJAoJFHSk8JbrMWiaAs9jmMk5AIDutHQDySTkZxMW6OeKDrooWVHHCUKkwG0rHtzxmIaHdzZ2IOkMikd7R2dxe811LYUVEo9pUtQsKEDMXyigEgIvGIHctqG77vmp/Qwqv2NvlVAhJQS3XLYG/Z3xumdly7oOzBVd5IpuJLp7pq5vpQp95wKWlWBff/31uPPOOyO18M7OTnzzm99c0Qtr49zDsYkCTs6UYWgKSpaPEvyIdpwruiCQtNyutAlVoWBCwHUZZgoOfv7mODYMZhZ9ILkQeOr1k/AYR09HDI7HJEXGX3heWs6PS+/tXMmFoSkQQqpAP/rSsTo6+6Xn9aC3IwafC/R3x1G0fBTKLlyXBZT06s6xpkov74NjORw4lpMJuqYEtEE36mq4wbwzJYChKiCUSBXKwDe0J2Nias5GMla9iSKEIJPQMePbcD1Z3Y/pSnWCHXavmVSazCR0eZ8yJuaKbuQdbgS/p1Qk19H9Dd7LXMGNxFAyST2q0tqOj3zZi2bAPJ+jbPvwfI6YoUAhqKryOi7DXMkFCYTzBIB8yUWh7EXzceHG50zO87wVSr7t2ec22nh3INxkOh6r8uEF5EbzTGwyV1IQbLkIE1nepD5YGYMJgK50825+JZZKn/c5x0t7J5DN2+hKm7hy6yr0dcZwbKKIuKlCUWgkOle7vjeMMwAGe5LwfY5swYWpU2iqEomgqlSORW0YSOPj7z0P+0ZmsfvIDI6ezNVpxYTwgpneQlnGetNQ0d8VR8n28ewbp3DB+k40l+maR22XX1dptIeomBQDF9IyVFOpFHt1fBBHjsgREriBmLLAEO7D8iVXjkgFneKejIkrNvciZqpVbLxW0SptuPZ1ArJYlU7oSy4etRp3SYVNqxCibg9Aal5Xe47TZVqs1P5mIV/vex47gLIjmZFnyqbzbCj0nS1YVoJ911134dFHH8X3vvc9DA0N4cMf/jA+9KEPYfXq1St9fW2cQ6j17AuTScYFZvN2NOdMACQTeqT03ddpwmMcJccH8zkKJReGrmBVZ7zuHKemS5iesxA3pHCDqaswNCUSXRNcwOccF67vwisHp+CzehE2IRAlpk+/fkpaNakyIHtMYPiknL82damuTgiBrksLFhGXCWzJ9mE5DD6TneK4qaJQliIjkoYuKTyOK2lYE9lykPyK6DWqQvHh96zH1qHOaKEslFx888f7oTaoVMcMFemEhlyQoHqsepfDeTAbDTl/U7IlteqX37MBqYQenePNozN44NlhKfZCSeDzLTvphBB0JHU4Ho+8H8MNnR7MW+uaEtmJCQC2x7C+L4WPf2AL7n38AI5NFqMqr6ZSFC0vmmEnQQIOEVi1eQzr+lIoWx7++ge7ztg8T9snuo023j040+I7b8cm82zw0w4LlWOThch2KdTvqATjQMJUcfW2vpaP3Wqi9OiLo3hk52gktEYAfPfxg1GBoRSMKumagoSpwmfzzhAHRmebJoAAMJ2zkSu5AIC4rsI0pW0TJQT9nQZuu3odkjENV16wCldesAr5sov/+cAbyJWaFzUYB45PFREzpPaLrlGMz/g4cjKH9X3pqCu9kCVqZZf/2GQx8l83damroik0oivzIHm867oh9HfGMT5bxsPPj0ZuICFCDRLHY5grSCGxXNHFT39xHE+8dmLJ8bdV2nCj15UsuXfMl1yoCq2zuVIUArfEsOfoDAAs63kuWT4MTb5fFojDhYyL0MM+bA4t9hkslWnx5kgWDzxzBFNz0uLUUBX0dy9/f9PoWam6vpkyCmUXhBD0dpj4yBJ9sBdaP8+GQt/ZgmUl2P/pP/0n/PEf/zFeeOEFPPLII/jWt76Fr371q7j88svxy7/8y7j99tuRSp05KkQb70yEG4CS5UVdzUrFw1B8A0SqXrqeTHK5EMgVHdz/5GE5lwwCw1DQkzax48J+DPYkIm9u22Wy06zMP9yEEOiqEh3LK3u4YF0njk0Uo1ltEqykzZRPHY9HaqEhPM6RUFWULF96TaokoDUrSMZ0pOKSTq0rBLmyGwl6ACQSnejuMDGZLcMJRDHCmKApFJpC8fSuk1jfl8JFG7sBACPj+YabKNuZ98jmAnA4a1r7phRQgllnzxeYztm4cGM3jk0UkC9JUTNdo/C5AGO8qgJPCTBXdKNFMpzLrrwW01BhGipKlgfHY/jEe8/D9ZesRndXEuWig2/+eF9VEls5Y06DIaFwYyQgZ/XueeyAFAg6g/M8bZ/oNto49/FWiO+8HZvMs8FPu7JQ6XkcdhAza+OqQgnu3DHUsh92q3j0xVHc//RRMC7tqMKRJttlQAWbSwjAcRk8j2HtqiQ+fst5ANA0Afzfj+5H3JQsqt6MFLKyPQbbYxBCwDBU9HTFcPkFvbAdBsfx4TIeKTtnEhrKjt+USeczgULZi5hbhACHx3JIxw2oiqSpG7oKrSZeViLsXL7w5jh+8MRhGJpSlzQDMl6rCsF5gxms708jOa5BbVKYIYTAcny4Pkeu6KAjZUSF56XE34Vow6pCkM07+MGTh/GpIP7Wvk7aY8nPcrbggBBEllmW42Ou6MD3OR57eQxP7TpZ9zy3UlAL7fWMwArVq/Gwj5tq9LpmWI5Q4aMvjuKBZ4fh+zza/3kKx+ipwoqPkmxd3wUhBO5/5iimcjZEcD9/8sIoaPDzxbDY+nk2FPrOFiwrwQbkg7djxw7s2LED//k//2f8/Oc/xyOPPIL/9//9f/EXf/EX2LVr1wpeZhvnAtb1pZCKaTg2WYzmfwkERJBJReIbNQ9lqeyhWPZxgpUi4YZ80cVk1sLYZBG/8f7NOG9Nh7RO6ElgsDcRJe4e45HNFCC7ywqVHWVULHrhfPFCVeJa+L5AtuAipivQFBoltKWyh1nfQcJU0NMRQ9zUIACk4hpcV8ByPViO9PXWIGnXEEBX2oBaUWkWQtRRCRttomzHx0zelpR0sXCxAJCdbJBwBht4etcJvHJwSip7Or7s9Ff8MiGhgI3ssLsBLe7pXSfgMYGS5aE7PU8vAxAxFNauSkZe3QCwbUN1ElsICg9qoCrOubRlI5hXNc/mbRiaUkW1PFPzPG2f6DbaOHfxVonvvB2bzLOFhVNZqBw+lYflVIwpEekm0aoP9lLgc45Hdo5WeRE3sgkNxbMJIcEctIbz13Xgb+99venc6EzOxmzBQW9HTKozm1qVkBUBcHKyhLGJItb2JhHTVXDBMTVroacjDqoQuK7snnseQ67kVc2jVyJUr773ySN4ef8kLt7UjQvXd8FyfHiMozNlYN2qFDRVqdIwke+N4NoL+/H8nnEcnyoh3oDqnC+56M6YkpUmRNPCjO34mC3YEbvM8RhmC04kjrWU+Ds63pjRYTl+REMfmyzib+99HY7H6qjg4f5NCHl/pmYt6JoCU1dQtDz4TFpOdaXNuucZQEsFtcr70NthyqZN8PlqCkGu5DUsUDVK3ltlpewdlmxBz+dS74aSSFSNcR8oY0X3N/tGsvj24wdhuz5SMW3JxZJW1s8tQ51NC32O6yNf8tDfHcOaVcmm5zlXsOwEO4Tv+3juuefwk5/8BM888wwAYMeOHad9YW2coyAksHFC02y2cv5FCIFcyQUhMgGldJ6OHC7wDz43jD/4xKVQFIKh/hSSMQ1Tcza60oYUUROomuce6DEhQJArOtK3kKNuTqpZ8KsF57IzECKdMLC218DweBGmLr2hZ/IOHJchZqgwdAXphIFUwgDnPKCEB4JiCq2yw2hEJWy0iZorOpHHNaHyti4mkcWF3GjEDAXHp0rQNRueL7vfCiFgmN+YhPevFj4TSCd0zBYcTOVsdDKBRFxbdENXmcTuOTqDx18aQ0fakB7Q4Qw6lSqnrsfAuIiq1VWf0RmiWrZnpdto49zDWym+83Z1k88GFg4XAjFTxfuvXIPR8UIUwzuSBno6Yrh6W9+Kd64B4KW9E7Acv0qYkzXo9oYFYyYEOAhOzZQiPZFmlH5DU1AOHDZCVAlZQRbOCwEjQc7sSktQz2dI6RpSmRg6U7KbzkURRcuDQmTBO2aqcD1WY6cEDJ8qYPhUAf/y3AhUKlWqYybF2lUp3HLZILas64ShKVAoja6tWaGlVPaQK0mHlpmcja89sCdKNGtfzxgPivbyOhQKUELh+rxKVbzV+FsIGB2KSaSQGBew3XkGB6VSGFZqzkjGohbsh8IGQi1Cq7Pw+jpTcg9R+Tzf+9QRlG2vJfZb5X3LlTwkTLlf832OXMlruJ85HTYMDzrJPpOMgui4gaiaz2WDaHxmZfY3leuf1N+RKviUEmQSGnIlb8H1bynrZ6Pv01zRhRd06afmbPztva+f88zAZSXYQoiIHv7Tn/4UuVwO27dvx+/93u/hjjvuQGdn50pfZxvnAI5NFDA1ay0sNhaIYsVMFb7PkQ8CQkdqPrmunN/WVYpTM6WqBPSWS1fjH3+8H9NzFhIxFamEBkooPJ+jN2PizmuHcHyqiLgZVPAYh+2wqmC8hEZ2FSbnLEzOWQAAy6n+mee7QEnS40xDRdxQAAXo7YjB83nUzagMso2ohJWbqONTJbg+D2jwUgW9EMyILQYu5NxRKHwmAi9zABC8cVJd9X6C6+ztMDGTc5Avu/C57EYvtqGrTGKf2nVSBieNVvl9A4i8zTWtPc/TRhttLB9v5Vx0oyRHUQhsh6Fs+zB0BXdcs+6MdJPfThZOmHCEbCgRjH3FTelzfP6ajjOSXANS9VoA0cC3EI1r+CJI5CgkI8troCdSizD+uD6Hodf/XNKuKVI1jIS1q2TBf2yyhJ6MAVOXc81DfSlkCw7Kjg/GGOKmBsYUlGxJOdcUioJVHdN8LuBzqUtSKM3i6Mk8PnrjRmzb2C2TUV3qnyiU1hVa8iUXlsNACNCRMpCIaXWJZuV8br7sSkahSiNRVBIlfrJgYhpqy/E3FYiUTs5a8H1RpbIOAIJJvRdTU2AF/ti5kgtTl3ouXMgGBOM8SvrDQxAgSvhDhM/zianikthvSylQnS4bZnS8gKmcLRsjDX6uEAKfcTg+w+ETudN+lit9vqfm7GhEk0B+zvFF1r+lrJ+1nuclSwrfahpFJqlDpbTqPl18Xs+S3887ActKsG+44QbMzMxg9erV+OQnP4lf/uVfxvr161f40to41/DmcBZlZ3EfYduV8y+KQtCdMTGTs6NZopBSVLk4AIh8md8cyeKHz8iqpedzlB0/+v21q5K445p12LyuAw89Pwyfc8QNVS7cCSm25vkcjidns9wWrJLihiJnnj3WMr2ccQHL9uC6kiZu6CpSMRWpuB4IvckCgusxFMteQyrhlqFOGIaKn+8+iZ17JpBOajB1Fa7PUSh5AERLXfjw59LHunJuvbX3ki+6GFyVRG8HQdnxcdd1QzhvMNNyEFis0+N4gZp5k99/N83ztNFGG8vHWz0XXbvJLNuyA0oogaIQ/PjFYyCEnJEOztvBwgkTjmLZg+P5ERuKC4Gy7WNkfOVnSivRlTZlnAg2Bs18QyoahTLRowRdaXNBSj+BLIw7LkMyVk+7Llk+NgxmMNSfAq8okFcWWiayFgxNCqOqCgXzOWK6gkTMlONsPkNvZxzXbevDxsEMxqaK+KefHUK+6Na9E8blOe957CCG+pLYOtSJay/qR8xQoSsUhqHigvWduGB9F0bG87jnJ/sxk7ObsgAfeWEUf/CJS6MZ7u8/cRhmMB89NWdX7bUUQuAF+xMALcXfku3BdllEf6+FAIBA+VwLmGuuxySl3udQCInEX01dQUdSh+0y5IouKCWgSv0zzQPrUFOXzDi9Yn+xUEFt6/ounL+uo06F/uRUCXuOziAZ17BmVXLBbu5MzsYPnjyMu2/fgqGg8VOLQtmLdIcaCQGGI4u2w/Dw8yMgIKelFxH6fEsrMqkAT4N77/oMfonD0JSm699S18/wPn7xO6+ABaK+egUTsfK7d+Gm7iW9l3cKlpVgv/e978WHPvQhXHnllSt9PW2co+BC4IU3x6M/1y4mouIH77tiDTauziAZ1yCEwNce2APf52BcSG/GysVByGDzxKsnMJWz8Nzu8TpaWDiP/cFgURoZz2M8W0bJ9iVNnABUCbxKVSrnf4Lf84OE2w0S7kqBEQLpnairFPmyi46EgU2DGbzw5nidIFr9/ZBV21DEi3EORSlHc0W6JoXSIIB1fUkMrkrg+T2nkM3bsF2GoydzmJyz5bX5DHNFgY4kgakrUFUC11vYlqzR9ShVH0prJHmfCziuD01TQByG/s74kjZ2i80NJmIaejImZotu1eIMvHXCPW0sHWdapbmNNpaKt2Mueuv6LnAA33pkHwyNIm5qETtrpee+305U0kcZl2wolc4riHMhPYQtxz8tGv5C68rV2/rwTz87hJLtQyMILK4aUMSD/4rgn96Miau39UVzy40KvWWHYbAnActlDeNUTFfw0feeD0pI5NRRiZiuIJu3owaDQgkGe5P46M2bkIypsGyGZFxDT4cJLxBU1RU579WdMSAgxbxsx68bZxudKGJ0oojHXh7DxoE03nPxAM5fm4GhSYVzAsDQFQz0JCLXluheNEg003EdCiGImWrU3XR9FunmhLeVMSlit1j85Vzgx8+PQlNo0wQ7RL4srbhCRoHjyqKUIIj2femEDkOXLjEhw7FW+M1yfGTzkkJYtqXmTbi3CxXImxXUamnfXAj8088OyUSeyCQ3k9Axnau3S60Umx2bLOK/37cba3qTDRPiVFyDplG4jEduM+GxuEDwHMnvX9xQoWlKw3nnVuNsIqZG9PxKC9awg864bGgkYo3TwuWsn8cni8iVXGSSRvA94pFwLiWIGKij4wV0d517M9nLSrC/8IUvrPR1tHGO49hEIbK3ABpbdwDyodswkI5Us7kQge1HUSa4QkAhFTNWQipe266Pp3edanhuIYCi5eG+Jw9j67+5CsWyB86BTFLHbF7OL3tMejKHUBUKQ5NWUjFDRTIW0rd54F3NwDgHhEC+5CFuarjj2iFoKsWuQ1NIxjQwDpQdL6I5111Xxf/7TGA6JyvckqYt56AzcQOpuIb/73dfk9VHX16n4zJoKoGhq7BsH67H///s/Xd0Jdd9Jop+e1c8+SA10N1AA50DMymGJkWRVKAokpIsWZZnxkHylee+5TczXr6zxl7Wu74za7237tjLcrjOUbYleSxLJkWJSUwS2cxBzM1udkIDDaAbGSdX3vv9sasKdRLOARqdqPOtRakbfVCnqk6dvX/h+30f5nMGerMxZJMqZpfqZ5ZaITr7TlcR+9iOoKhHF9faQGjb5kzT329FywLQtnBPJ7G78DgfKs0ddLBaXIi5aMY5fvjyOFzG0JuNnXORxguFgD6qysLGiEDsadE9znYYdFVaMw2/1boiU4p79g/j/gOjcDyOBk6WoAQgVChxu4xDkSl+9iPbxO+2EIgLlMYb7VOfuWUrrtrZh6Wlct05BzTi3owODvgJtIeK6YACGO6vvg8xVTyPs7kKerNxYUHleNAUCTyhomQ4KFWcujSec+DE6QJOnC4gpknYN9KNK7f3gHCgYrroyepQqBiJsxwGyxadzCDRLJZt0XxYqoCDw3E8aKq8nPD61lXgy9+XRExpKZw3OpXHmYUy4rocqq43YvtJVHTGJSqS6IJPDecQCacqS1UJslAgp3A8VhWviOTarBq1477DjO0YSCdUpBNqw4Tw0MkFfP3R92HZLuK6AkkGFou2cKahBN0ZDTKlmFk0YNqisAI/2QxmxUXySMCAOip0dP8b6k8im9RQMV0QiNlzQjhq3FVBiPg3rXa+/OnjSMSUtvfZwMmbAw0p3sG3lTeMzNe2fgZdb1diWFqyYDusajyAEvHe740u4tp9Gxu+76WMsxY566ADoHViE2wI0Zpyo/6ookhIJdSq4123uw9nFiq+KAgB/AWHBUIiuoJ8uXrgObpEBJXqqfkyxqcLYSVOpkJ1Ml+y6jrOrl9VDATMAg9EXaWhujUhgK7KGEoo+OiHtmBDRsP7Y0vwGBDTJWiEQJEJ5nMmfHHIuupzeP8YB2OA4y5T6BWJoDel48evTwGEIKFJUBQ5tADjPjVd12QhnMJEkh5Q5VY7R84YBw1msFchp167uDYKhDb1JPDvPrkHW3rrvcuB1nOD7cxFrVdi10nS147zpdLcQQerxYVQ2T6Xc98X0zoV0kcV4qtTN3mdIZKS1dLw211XAmXywAc7ug8GSZjnMXB/vvhzt27Fvq2imN/u/G2jfaq2o8c4x9h0Ed95+jjKhlNFzdZVINnAISQA9wfJE7oQSNNVBcmYLuzGLE/MZhOEDD5VEZ3B6JZtWB5ePzKH14/MIaZK8BhHyXDQldIQ02TENOEB7njMj804fvDCSeRKNlxPUPrLhouejIaYpqA7rYejeYHd6PBACvfcNIydW7Ihu647rdeJ2BXK4piaIjgFkiQE2byaAkw4ruYJavfOwQw+f9t2fOvxI3X0dnGfhBgq5aKTnYboSudKFlyPQ6KCxeBGHkbGhc1o2RQd7ZGBVJgQvje2iL/+wXuoWC4IIbAcK6SlK5IQxcuXbGQTKmKaBMN2kSvZoXtKOCtOxVgE4YCqSkjWFNIA4O1jc/jXx9/HfN7072nNTYjAYxxzORPZJEPGp6PLEsHErPBOTyfUtvbZiuFAUySYtguXcT+WFu/pcUHP1xQJFaPxd3Mt62fSn71fzFsNFf2ZaNHjqdcncOXuDU3jw0sVnQS7g7NGO4lNMq5AkyU4MoPjsaY2Uhu746gYDv7oO29VHS+w3fA4B3ejYmQci0Wr7jiNOuSex3F8Ko+PXTcUVuKySRUkqWKmRceXMS4oWjZ8GjeFIkv47Ie34vp9G5BI6FhYLKOvK4butApAqJdDlqAodNmGgYtEOhlXhLia3Xx22/E4Rs8UAQDET2KZIRJwRRaCYLomIZvU/NeLqnSxJJgCa0myHY+Fc3OUNC8IRGG7LKxkHxlfahgITcyW8Bf3vY0vfXI3dg1lGx5npbnBVgn4eiV2ne7r2nE+VZo76GAtON8q2+dq7vtiW6eCorUofC//PErHBpZ1NZrRUBthtevKXTcO4+PXD4UztOFI1ZIpqM6EoC+r43Mf2Y7Lau5VOwJxrebbg89mcq6MYsUGIWKOOdp9bae4UieQpilQJIJsQkUmrqBsuXBdhlRcqK6ZtucrZlc3CwyfmWeXbBQrDmKqhLgmIxkXui0AkElqcPw5Wc8XKl0qWpjLmehKcSRiCrJERbHiQJYpPnPzCG67ZjOeePUU/vL7B2FYbhhzffupY1U2bOmEClkiVUkkJQSQqgVd4SezQWf83v0j2L4pg5+/Y0eVsnetIrrqU4/n8yZkSez7qkyR0OUq1mQUjk9VvnxrNyghODy2iH985LBYD6gQdBPuKeL1nh+32Uy8T3Adtstg2SIhj86KM86hylI49x39rG2H4RuPH0HFcJCMKYipEnIlu6XmT75kQ1UodFVG2XTBOZDQ5bC402qfbeTzHXwxVZkirskAae3zvZr1c3BDsn4sAdVxKSGCXn7fj4/hN37uyhXvwaWGToLdwVmh3cRmS38KAz1xjJ8pwmMMDIAEgBOhWC1yUYJtm9L4u0cO+xuHAiUmwXHE3BNnq5srrqNQAfjxG1MY7E1WVeJWY34tUYINWR0gBIWSDV2RQEAwNVvGmbkiErqMzX1JzOctJGOieqerEuZyFVRMDx4DZCqq6ZyJBVJXZRTKNkCwIp08epqOK/y9S4YTdtI1VXTWkzEFIByW5aFiebDs+rmtKAiETYhExZwX84U3YpoE17dyAEQXH0BVJVKiBFv6k7h3/wh2D3fhj77zVsNASFUo8mUHD784ht/44lVrSrCaBTbrldh1uq9nh/Op0txBB2vF+VTZPhdz3xfbOsX8jnVClzGzaIQ/b1TgDa0fm8pW1qOddWVyroynX5/E9kEhsClTipsvX6acrqbbfzYCce+NLuDvHzkM03ZACYXQUBNFBdHhFV1YsceKz79ZcSXaMZzPW0joHjyPIV+2EdNkxHUZXb06KCUwbQ+y5IYuItft7sPskoljk7mq5CawFS2bLhaKQn+GEyAdU7GxNyFcPAiQTWpIaDJOLwgFctdlkGUadq33jnTjsVfGcf+BUZGQU+KLconj3/fMCYBz3Pvhbdi2OYONPQmcmi1Cloig7xN/npkuU6I9LmLA6HsA9UldM0X0gp9Mq4qE3qyOuSVj5QYBAQ6eXMTHrx8K4wdChMK8eHaj9y3ya/65O/6JLxVFN7fRrHjwvEZp+E/+ZBKG6SKbEo0YKBIkieLMQiV8j8A+tlYvIFey0ZUiod2VVCPuttI+G6V4b+gSzjWhz7cfJ7UzIrOa9XNytuTPri83axqtCYQQTM2WMD5dxFDfB2cWu5Ngd7BmrDaxCTYLVAS12Q0GbHwQQvD0m1P+piSq4boq+bMz3pqts6IoVpw6W4qT08VVXLPoLBOIrsFc3sAf/MubmFkyYDueCJZ0GbmyjTlCkE1q0BSKbFJDKu4LSfhKjo7nAUTCUtH0FcC91ifQAJyLuSPDWu5u636y3aXKALSwux28dxSqQvH//uxliMcUFMo2SoaDVExBKqGibLr4+sOHUKw4IW2cAKAUiGkyPveRbbjt6s2ghITicc0CoVRMqbJUWy80C8BsX9BDlWlLL8lO9/Xscb5VmjvoYK04Xyrb6z33fbGtU1FbrrLpVolNNduvOedNaaiNUKo4cD0OVeYwLReUkrBYYVouciULtsvwwHMnoWtSw07++fi83zo6iz//3rtCLR4AIBKwIFFyPY75nN/9jGidzOWNRocDUJ9c2o7nO6i4UBVJjIipEtJxBamYgorlgBLgyu092NSbhGG5ODS2iHdOLOD4VL6qSM8YR5A35suig5qMKWFnu68rjmxaQ65k446rN2FkYzpMpFzG8MhL4/AYhyIJFWyPLRfeGQfue3YUw5vS+Mh1w7j35hH8w6OH4bkcrufC8bjf7RVFekUi0DQ57IwDwNh0IUzgdg93YfdwF8ami/jmY40V0QPHmcB2tVmzIgDnwOTcsgd6XFdE999vxTcVyRNTipAlAtfzCyW+IFmjWXFguZBWNBycWSgjlRCxSni/WDVjkBAKQgTtPxAh4wBcV8SPnHHIsoiRbcerKt4122cbUbxV3+c7V7JXNSLT7vepVHFEsSGuIFdu/p0vVmzEdSX0kf+goJNgd7BmrLZjFWwW3336OCZmS/7rlq08AoVJ6i9gluPBtEWlkgacnbOARAl60hryZafKluKlg2fwTz88Uqc+3gyeLxLSlVTx+KsTsGwP6aQKXaPIl2xMzpXBuLgGQWMS1xTTZChyZIYbGkCX7RM8bz1KCJHudsUBCWfHl7vbHMISJBBrkyUCvsKC+R/v3RdS3lxP+H3WUoIYF/R70/agNlKXgUj8XY+ve4JVm9gFSp7B8xTMagVWbo3Q6b6ePS6ESnMHHVzMWO+574tpnTp0stqWi/t7Xqtt2mPAM29NhUKmrTCXM1AxHZQqPt3Xn0FNaDKKhuOLQxGkEgooIZicK+OfHnsfd92wBX3Z2DllKASd8ffHc3jitYlQs6UWPHy96E5SIhw4OAgef3UCA13xpqyDaMewULbxg+dPYj5vQlelcK8vwoEqU1gOw7ZNGeza0gXH8SBRBdft3oDrdm9AyXBwcHQBrx+Zw9R8tRhbMKNdMhzIeYqYJiEZUxCPKZApRV82ji39aUi+jeirh2ZgWC5kKpLrKNU7SAYZA/7mB+8hk45j39Zqy7ooUy7wSA/iiSjFvjbeiOkySoZQGqe0vnubiiuw8h6KlXprs7rPhAutnUCxPJFUUDIc2C6DTEiYSEef5zDZDWjgCoWuUvzs7Tvw5GsTTWfFg0JaMqbA9YTPeZXYV52qrJhzrxUK5BDHCu75gk9XV2SKTEKFrskr7rPne0QmiAkooQCax32B1W1yFaMjlwI+WFfTwXnFWjpWu4e7kIgpiGkyEroMSaJYKooKtOQrKPKADx1QSjhAGr/FqiDmv1gYhIxPFwCI7m86LmOp1F7iVzFdxHUZIASm7aIrpcFxOeZzRvUcjX/enIv/bJeFXWbiK0JqqgRdlZHwhTKCTrNpuVXHoiTYlFdxvQC4PzsevG+gjq6pclXC/d0fH8MvfGIXdg111R2nnflnsSGWQisRVZHCBT+A4zLI5yDBiiZ2jPFQyTMQ8eBMBBA/emMKWzemG24ine7r2eNCqDR30MHFjvUMai+WdYoxjodfHKuy5VJ8gcxWs6QA8NbxedieB1WqL8RFcXhsEY+9ekp0W5cHuWEzDtsRCXdg96P5No4eY1jIW/j2j44hriuQz9F8ejgHv1BBoWLXzZkCjbv4nAMefFXqlAbT9lqyDqIdQ0WiDQs2S0ULuiph/75+pGIKSFyF49uMWrYLiaq46bIB3HTZAAplG++OLuD1I7OYXqzuoLseQ7HCxLy1JIoZCwUDCwUj9NgOmgq27YUz3o3O3LK9cLa2tlAQZcoF8cThsUX8XQ1jDgCOnHJwer6Mj183uOLzryjCblV8FK2fQwJUeaBnEioWCmYoAkZ93Z/wc6CBWK2ggWeSKmybIRNXG86K1xbSYrrs0+SFWnqAQBF9+bsjaNWyVM0MAIS/d/CrxO+02y7DQsEUz1MT67SgGOQxjs/fth0Ewkv9XBaggphgvA2WqOc1Mri7tNFJsDtYM9bSsQoq8IHpfEB5koioDXq+i2TwX4BWX7x2BL0YB5aKFjZ06aiYLv70vndQMtyG6obNwbGlP4kP7d6AR14eR0JXYNqeT03iNa8UyR2l4v+rPCB5deIbqJRH56gDlXCxQXrg/sLaZqO9IWrV0RWZQFckyLKE+w6cxOduBXYOZSDTIEHiIWW/UUckOg8Y12RYDoPjMw8c10AqLpJsVSYoGi4Ge6sXfsY5xqcLGJ0qgBNh0UYIEQIgbS78y4ldybceEUqe4jZzMHCoigTXY00DmU739exxIVSaO+jgUsB6zX1fLOvUsVNLGJsugjEeWisBCJlbrfZTxoDHXhrHZz68rflrfDp8oey0mKVdnncN/I8DK6i4JpLu9Z5Pj+57qiyJbiyqHVKi1N4oOAc0ZbnjKEneqlgH7RRsRFFfdEETumhmuB4Pk+1sSsMtV2zE/ssH8LcPvoczCxVwzutiGNcTP/vGD49geCCFK7f34IrtPQA4dEVGUlfgeH4sY7pwazymYppcNVu7ErWYcY7vPnMiFCaTKQ1voMvE7PkL706DUqz4/FNKoFDAqNe+rUNPutoDPZtU0ZPWQwYcqymacBAgQgOXKIEncSTjCkYG0i0/F8Y5NvYkMDlfRiahIFqWiOsS7FLAumPghILA76SDQ5ElkXTLBDFNxmLBCsVoJZ8RsVCw0JPR6/bZlUQR14vp4jIWCgtG1eTvuWkYf/fwoZa/zzjwzBtT+NJde9blfC4GdBLsDtqCsJ0oVAUHZ+OLF1QgwwWM1Fhr1exKK4UhrZLraDXZcRmmFyrwmFDdbPcYATIJFf/Hz18t7Lg8DkknWMpZdQtx8H5AtUBGM7CaTnMwR60qYiFX0gSuy2E6HkzbDW25zhaOy31rMBclw8YPnh/Fl+/eC5lSKBKB4ldWFTmg+UTnrOrnATMJYD5vCOsHJkQ5aMUBgRBOuffmkarO93efPo6p+XJVlVaiBLqvdtlO5yFI7L7+yGEUHSeksVVVmv3NsFkg0+m+rg/ONwWtgw4uFazHHPDFsE49+tI4fvD8KAxref9kXm1JvDXmcs1njwFRjJ+YLdVphtSCAtBVCZxz3ztZjAQFzDFNXd/59Np9z7KFMjkhBCySYAZJdi2ySRVp3/kDWBvroLZgk4jJ4BCF6bHpQlXxJrqvNkq2775xC+5/dhQVy0NKJnBcEYtEO/IcwNh0EWPTRTz04hi2bUxjPm+AAEjE1LAp4HosjGMY40jFFZQMt63Z2rHpIqbmxOigEhXvIuLvjscwlzcwtCGJhYLV8PkPEmO5jnLdGJdv627ogd7XFYNhuigZjiggSQRdSRUcRGgA+GNwtcJgrQpplBDce/OIeK+ijbguw/PEDHS0AeMx0akWs94UiiTiIccTc/KqIqE7TZat0wD/GQQ+ecNQ1T57PkQRH3tlHA/71njBqMi/PHUM9/pq8p++ZQTffupYXQGnFq8emsEv3LmryubtUkYnwe6gJQLPvtML5brq11p88aIV+HD2xN+NAvXE2tyRMR4mTrX/Fvy1UZLcaJn1GiS87YQGhAi6zuRsKbwO0xIdeEoJmMfbTtRbwXFFp5kYwj/8Fz6+A6mEhmLFRjqpYWK2iJcPzobJtuOyFWlp7b0nx6npIk5NF7ClPw3XExYflBAQKrrCii+mo0gSziyUUSjbyCS0qo2uVhyEcw5CCXjkwwioYPmyLSr9ka6Hx4QPp0SA8eliW5vA3pFufPTazXjguZOh2AhBteAI47xpINPpvq4fzqdKcwcd/DThQq9TUeXo1aJ2f+rLxlZ8faFsoxKZaW62tzLOQ2qt4zKxX4GAg4fxxXrOp9fOwS/Pz7a+J5QIMa8o1so6CAo2h8cWcf+B0bYs2xol29ft7kcyoeKZN6cwNVcCYx4SuoR0UkNPSsfEXAmLBavqGCdOF8K/50oWUBJiqXFdQTKmIhVXEVMpCBUJe6qNaxs9nYcX+DM3gOQL327blEbZXKx7/oNkWJEoEjE5pK43v3+Cmj02XcDu4a46pfKgsKNIBLbLMZ+3kEmqSKgKHF+1XJEprtvd1/BzaYZ9W7vxn75wFf718fcxPlNE2Y/xFIUik1ThuizU7lEVYak20BPHvuEuPPmTSch+ch/TZOiqBNvvtBMCGKaLvszy9+p8iCI+9so47nvmRFVczrkYpbzvmRMAgDtv2IKnfjKBMwv1RbXo99pyPLx6aKbKAeBSRifB7mBFBEImFcNBXJcbVr9W07GqrcAHX3TbZcK2C/Crgxx2xO86mOkFgMWCCadGVINSAkpFkgiIDcTzbb1WSnpX2hppIK4GDs9f7MBFF37f1m4MdMcxdqZYValezxkS6ou/SZRgeGMGEiWIqcK/8pqdvZier2A2Z0D1Z89s28FczhLV43AjbVxQaAbTYfj7hw9j52AWu4ay2DmYQXdaBzzhI245oqpKKcGZ+YqYpY+roEQIp5VNB6pC4XnML5SIzTWb1FAoO/ju08fx6ZuH8YPnT6LgJ9eU1J8jB1AwXFAimAbffeYE/q8vrbwJ7NvajR+9MQmJUv95IKEPJeAHMpSgULFxcHShLvHrdF/XD+dLpbmDDn7acKHWqUA5mjEORRJ6IKvVHQ1eTilw1/7hFV9bO9dc2xGOjGSHbC4O0dH2fH/kdtSVV4taFl4QwwTWSdF7Unt7FIVWiYCeLevgbLqTYbItEVw20o29w12YmC2hULJBKUFPRg+p5lPzZbxzYgHvnlho6i1tOwy2YyEHC70ZDel4DK7HMbIpA9NyMTFXxObeZNM9nEQ6JUKCh4cU6eDn4MBAVxzX3NmL+58dxVzeBBiHolD0ZnTM501hUwoRo6zE8uMAnnptAs++fTosSPzXn78aB96cwoMvjgGAsIpVJJQNB/mSjVzRQsVwhAOOj0deGsfrR+ZW9d27amcfNnXr+P/942vwfP/xII6DBiRjChZ9uvcv37UHIwMpnJop4sdvTlXR4wkRo4Xi/nuQZdpwJPNciSK6jOHBF8aqkutovM048OALY/j49UPYvikTJtiNvseSJD6vxYK56vO4WNFJsDtoCsaFkEmVZx/qq1+BGnc7HatGFfh0XMFCwYTjicQ4k1IhU4qlggnbX0y6UlpYqYzpMlKU4pqdvejviWPrxjQoAU5M5vGdp08I1WgCEInUCUSs7voRKj3KkliMANGFD67j7x85DMN2AZ+ec5ZC51UIgouYJuGbj70vNjYuAoWB7jgu39qN8ZkSSoaLrqQKxxM07ExSC8VNbNsFCzjqbZ6f63EcHl/C4fElAEBvRsfOoSx2DWawdVMaqizB8+0pZpcqSJgOVFkCB4ciU/Skdd/OjMFxGFzGMJ8z4XgMhbKFv3nokJgp5yLQAiFo5nBO/ULJxEwJB96cwh3XDgJo7Gu6pT8l5pv8Wapa+lihJLzG7z9wAoyhYaW/03299LEaz9sOOrgUcSHWqUA5WpIIKKWQwFpSPqOIvvLWKzeuKHD22Cvj+N6BEyseI/ozxkTnFhCzqBIlYUE+wHrNpwfsNcfxACKSgoSuIF+2QHikiED8ogARAnCuJ87L8T2lz5Z10Ko7uVS0cN+BE/isn8Ct9HwIOyiCLRtSIP3iZ67LYTkuTMfDlv4UBvuSuPOGIfz19w9iZrGyYuF+Pm9hqWADhGOxaGJypohETEZvNobbrtyInUPZulhk2+a0sACrGjfgvosMQksvQoFHXzmFfMkOHUK6Uhqu2dmHp/wOLyWiuB7YuzaKeyRKEI/JofL8Nx4/gl++cxdePzoHzjl6Mnp4T1NxFcmYgpnFCmxPdMmTMQUxXYbn8TXRrSdmSsiVLMR1BYwLccCgIUApRTqhomQ4IBD7WbFsI5tUMZ831zySWYtmRad299BX3puuG7WM/j+HaJC8emgae4a78MLB6ah+cfhaQgi4r2PQndbbun+XAjoJdgdNcWqm2NCzD2hc/Wq3AlZbgfc8LhYZ3/Tethk8iWPb5gwu39qNgycXayr1yYbVwuGBNF44OI1TsyXfuqPxwroWGremCIup2nmbr9y9B3/1g/dQ8WdPzgWKFRfFivD/VGQKWaaYnCtjLmfgqu29ODqZw5mFCiqWC4kSpOIq+rI6NEXM7DAmustLRRPFiltH7xN8geb3ZD5vYj4/jZcOTkOWCLZuTGPnYBY7BtOI6wqmFyrhtXOIYoQiCzVPVaFIyjICy3PXZdBVioW8BcvxxLmQlW+cTAlcxnHg7dO47ZrNODK+1FSwoxl9slCyYToeNJVCV8XPHcfD+HQRf/vwodB/k/rKoZ3u66WJlcRcOgyEDj5ION/r1GLBrOoiU0pAWf3Iljg3+IreNXsNFcn1l+7a2/R9GlFOV0JMleAxBtvhflIr1LmjDhbrOZ++pT+FVEzB5JywugruiSSJ4SjmFx1EAXnZhqpxLLN21sFK3UnTFuKo49NF/N3Dh6Ap7emZBOcN/3oSsoJETAmT7bHpIlyXhQKoQeLb6KPy/H9YKgpWXbFCMZczcGa+jJ+5dSt2b+kSiaL/nkYzizMOeDxQ/NbwxGuTMCwHmiILr2kOzOVM/PiNKTDOww5voAgeWKNxzquKAoxxLOTFLHc6IcRq7392FPmS3fSe2o4Q4XW4mJsumy7SCRXZpLpquvV7o4so+N7Q3L9QWaKI6eK6ZInAKnv4xmNHUDJEosw4h2l78FwT6aS66pHMWhimEPktVOxQr6bdPfTw2CK+d2C0+rNqcq0npgr495/YhW8/dQxl0/U/D8HQFAWQ5d/MFTsd7A5+ClCqOA09+wKcDeWqUQV+cEMSk7OluqrZnTdsabs7/sU7duDvHj6EQtluWmHlTf68Esqmh4ROsM8/52CTjscU3L1/GE++Nomy4cBZDR97lQho2IUyQzImVCSffnMKqkJDT8lUXEE6oSJfskMql+6LvCRjKtIJFbYjxNIcx4PtJ7nRjzcdV+B4DKbfZY7C9TiOTeZxbDIPoHp2mkRe43pC6ESiggmgSDSc385qKrrSPrWPc59aJs6l1uIlmKUjhCBXsnDgrSk8/upEHSUuCCQ+fcsIfumTu/HDKH2SCgU9TaXozcRCtdlQIMRy8e0fHcPrR6tpXp1O6PrjXN7T8yHm0sGlgwv5/T2f773SezVT9l3L8brTel1xOtAeiSIVk5GMC8qrZbvIl23BftqYxl37h1fsXLuM4eEXx9pOrhWZ4tc+dzmSMQWlioOZnIFHXxr33UGAmC6v+3z6kfEl5H0xNWDZDtL1965UTMGdNwyhK6XV2VC1G8u0g2bdSaGkbob06IQm7FDXsg7WJtsSFVZY/V1xuJ5wCzF9QTTGGhtjcQ4YlgfD8kAJUCg7+M6PjuHXPneFcE5RJCgKxfMHp9GVFomq69Y/AIQCMU3BXE50zyumFRY3ZJnCcT0ABPmShXRChaZKoSK47XhVz5QoAAGAEHtbLDCk4gqmlwwwxqAoVGjH+J+NYblYyJvLej/+79uuF363VkO3fvvYHJ56fSLUFgrGEG2XwS7ZKJYdUCrG8gATqbgCLgOOw+BQBsv1UDIcUEJWNZIZXI9puciVLNiO0A+6/8AJvHhwGpdv7cYzb51uuYcGe23JbC/211RJiMntH45oODT+kj/w3BgopbjrxpVHSC4FdBLsDpoiGVcaevYFOFvKVaMKfKOFaTWV+r0j3fjKvfvwVw+8i4rlwS+0rststGG7eOK1Cfz4zSmkYgpACIoVG54nqnBeA7lw6reH10HwO/R2dhlHLuLZbfpqrhxAvmQDEOcVvL5suuBM2FXFNTn0ICe6DA7fn9t0YdqiS56MC2od5xy5ko1kTEZvJobR04U6RdeV5s0EhDCd7bIweZYpUDIccIj5IUWmSMVVkaxDPFeW48FxPTCPwWHCooIzjgP+4h9Q4kzLDTfQigl8+6lj2DmYwT03DSPuB12Fio37D5yArsoRKxczrNhKEDS/qKAagE4ndJ1xLrvL50PMpYNLBxeSyXA+33ul9xqfKeKRQNkXIhH59lPHcI+v7Lva492wrx/ffuoYKqYLSpgYi0I1I4wSn+JJxLpfsTxs3ZjGf/nCVW197wQNfWVxqgCyRHDbVRsxs1DBNBFMrDeOzsH1xP5h2i5oSVgaDW1ozHpbLYJ1hnGOvoyOQkUIa4H7CRsh6M7o+FSTRH49WQeNupNVSuqEgAOQJLou6yDnwELBwvRCGXFNQVyXkfFH0mzHg2G5qBgOHAaf6oyw4xuAcYB5DFPzFfzPb72Oq3f04srtPVBkgumFMga6E+jvTmAhb6BUcUJVaslnxc3lDFg2EwJ2hITsO9vxfJo7AAIYtgFFFqJhXSkN+ZIF0/FCR5dofkcgmgK5kh3+bC5nQpUFTVtXpfCeBiCEwq/bw/PveW9Wh2fylg0nxjnu+7FQ1FYVoT9U28hgnIP5XwNFJqHKeJRBktBl/LuP7VyR/t9oJNPzhGe2x3wv9owGmVJMzpVwbDIPRSZhIwKo30N3bsmGe213SsPMUuuO8zvH5/HFO3birhuHxfU/M1r3GokK72/H43jkpXF8/PqhS15N/KJIsBlj+PM//3P827/9G4rFIq6//nr89//+3zE0NNTw9ceOHcPXvvY1vP3226CU4vrrr8dv//ZvY9OmTQAAz/NwzTXXwLKqjfD+83/+z/gv/+W/nPPr+aAgnGlt4Nl3MVsXJXTZ95MWndhSpXk3ezXgfkXccRlOzQo7ia6UhkxKhWV7KJSXXytLy1ra7npk10BIoa9djCVJZKauT9dbKlpCoI2K7i9n4vNSFAnM30g0hSKmyUIMzmNIxVV0pVTENQUc8BNc0Sm3HQ8fvXYz/t3Hd+DNI3M4eHIRZxYqoZf2SqilCAZ0sISuYKlowYrM78gShaaITndME7P5wXydrskwLAdl00XSp2+ZlhuhgFFwiOs/NVPCN584ii99cjcu39aDg6MLYExUuaMBSOC9zv3Bubguh4JqFdOB5XidTug64Vx3l8+1mEsHlw4uJJPhfL73Su/1l98/GIpdykEmwIGy6eJ+n9ZZm2S3c+5BB8pxOYJGdJTFlIgpYABcx1tT1zigoQdYaZwrrkt45q3TYo/xi+iUCh2Sjb1xmJaHiulClijuvnHLutz36DqjKhJiuuJ3R0URmHkMxYp9XtaZRt1J22WhkjrjqBJ6W491MOk3Fkr+/kgJoPtq1pmkhnhMFaw4l0HXZT/J9lA23KpZXUCoTL94cBovHpxGMqbAcjykEw5imoy4rqArpYMQsf+7HsPpuTJMxwOCWWz/meIRBh4HkIkrMCwPjsOwkDORiCno747j9HwZVoMmSDjt7RdJZH9e3nZEdzqVUP176lPV/Znw4J5SCPV60/LaajiNTxcxNVtCMiZDVyhmcysnqPmSEwrLilBFxDmzSwYWCiYu39azIhM0qpA+OSc0ezgTXeWM77Airp+jWHZASH1SG312Xj00E34HFFkUGlqFuKcXDPzjo+/hV+6+DFnfoo4Cwp7X/y+I4WQuGAMfBDXxiyLB/su//Ev8y7/8C37v934PAwMD+NrXvoZf/dVfxUMPPQRVrRaqWFpawq/8yq/g2muvxbe+9S3Yto3f+73fw6/+6q/igQcegKZpGBsbg2VZ+MEPfoCenp7wd+Px+Pm+tEsajTz7LgXrolLFAWNAIiahlHPWdTaa+RZSwcZfMV2k46pQrvY7sJyLxJI2mEE7WzRK1gOqddV5ctRR91RZCHOUDAe9GUGdKhsuDNuFKjvY0BWHolBBJ4+LmXjD9rCYN3F8MocHnh3FzFK1uIlYGNsXkxOdfo6YJqMrpSFXssLjuZ6wJoN/fyVJzK91pTR4jGOgO4GS6SIVU8A5x2nLhaaKokEQZAHLiXJQqY9W+jkQWpq5jFfN/uTLNpK6gqm5EjRFqhI56XRC147z0V1eq5hLBx8sXEgmw/l875XeS6LA5FwFgLAYCgtOBFCadIjaPff/+vNXg1KKR14aC+2FCABdoUJc0xN6F2udL25EQ48KJkVRKAuXCYmSUGyNMcHikiWKREx0WXMlG4++cgp7RrrP+r5H1xnb8cKid8zX9bBdwDtP60yj7qTrsdDKtJHQ29mug+mEirgmo2IKJe2AIVc2XHAi5uHTcRVaQoGiyCDgcFwGXRViYKbtomy6VZ7PgGC0AcBC3gIgGmMSAVIJFT0ZHXFdwUBPQnRyHQ+264UK57UxliJLyKZ0WLaLQtlBX1bHvfuH8RcPvBe+JvoURH9bpgTdKd3v8HIwxv14UrTHSc3vBsdiELHgyMZUy4ZTseLA9RhiuhKyD1dC8B2rjbE4gIdeGMNP3p/FzJIRzmgHz2RAHw8EcTnn4jW+mBg4r74PfvHA8wTjUKuZ2Q6encWCGX4HCCFIxJS2fM6fe2cGv/DJPVgsmGHBgEbWphB+we6DoCZ+wRNs27bxD//wD/hv/+2/4fbbbwcA/PEf/zFuvfVWPPHEE7j33nurXv/UU0+hUqng93//96HrQm3ua1/7Gm6//Xa88cYb2L9/P44cOYJkMok9e/ac78v5wCHq2Xd6oXxJWBfVelSTZmpnqwTxq8KB7zWBUAS1XQ+U0rCaySCqoLXzxOcCwcIb/HmlqyxWHJiWC0WmuOmyfhBCsJg38YJfQaaUhAulLBERrBEgk1Rx7HQBpiM2Stv14Lo8LCYEwY0kCSXIVjWFnD8frikSJImiL6vhQ7v7MF8w8d7JJZ/yJsTcCIQiqaZQXLO9B8+/ewa27YaV056UDvhVbsv1YNsMuiZDllhYqY9W+jV/tqr2HAkJaGIWOAe0uNTphK4Tzkd3uZWYy3opCHdwceNCMhnO53uv9F6GHd136s9DpvUdotWc+937h/Hzd+7BYy+OYm6pEs52U0LOer74hn39+Jcnj6ISGXsKjtAo8Raja9X/4jGOfNmGrkrrft+TcQWMc8wsVKoSO0Wm6M7oAOfndZ2pFYy17cC7maKrRugNOPt1cEt/CkMbkhg/U4TLfBV5/zZQAGXD8bVXSNgh7U7HkIyJZ06RKRyPY3NvHFfu6MXB0UWcPF1oIpJWHSts7IlDlgBdVYUAmO2hYrkiOY/OV/vtZU2VkSGCXn1qphS6ywS1+EbxUkyXoWty1ex2MFuv+EWbYsUOiwuhpRjn0NpsOKXiCmSJwnUYisZyYrpS/BY8arXFplzJhml56EprcCWGxbwlvMQp0JPWIUkUY9NFHDmVg6ZI0FUJhu2JrrvHsVAw0ZPWoWtyeN+4n6TXInh2utN61V677APfGt/64RHsHenyE3zUVyv8nxN8MNTEL3iC/f7776NcLmP//v3hz9LpNPbt24fXXnutLsHev38//vIv/zJMrgGA+lXYQqEAADhy5Ai2b99+Hs7+pwNX7ezDYE8Mo1P5S0LwKUiolj2q16eLLEsEjuv5C/Uy7c5jHDFdVPotxwMhBMmYglzZQgNG0jlBq+Q6gONxOJ6HHzw/BkWikHyvyHzZRm+kY+t6HI7rIFeyREWUAKoioyetCdESR4iWBAIngOiYB3QfzkUFWlWlhmJpnCOkjE0vGnjt/TnsGsriw5cP4MhkDgt5E5bNIFFgoDuG26/ahK2bMzg4tojpRQOaP5ckSwSqLO69JFNkU2JDBzhyPgVdogT37h/GPz12BGXDaVgAkPxqquMXDhSl0wldL5yP7nIzMRfg4h5n6WB9cSGZDOv93iuJl630Xm6EYhR4CVehQYdotecuyxS3XLExTD4CnG0CK1OKe28eqVIRb7SvBcwpUfSuLzA7vuaHpkjr+plXDAemLQr3MiUgPm3NcRlmFyvQFAnDA627mOuJqGBssWzj+8+PYnZJaIxYjhdaP63HOhjtmpu2i5QsgRLAdLywOJ9OqJApwULBRLHsYD5vYlNvAnFNBoOMQU3GHddswvBAGjftG0C+bOHvHz6ExYLVsA8SxApLRQsV04XHRPc3qSvIJFQk42JEz7Bc2K5XpRcUfPYg4rNijENewb5VV0VKpGsi0bZsF4WKg3RcQcVykYorUGWKvC+QGtDT47qMr9y9p62G0/BACps3JHFsYqnu+xM8w416Qs2ibY8xYcu2ZAmrVInA40Ch4mBDVwwe4/5/DKqqgpTFwWRfzydftqFrMlRFgixROB5Dbc4cfXZu2NePFw9Oh3utLLU/J/3m8Xn80qd2h2riCkH1Xs04XMaR0GXcsK+/7eNerLjgCfb09DQAYOPGaq79hg0bwn+LYnBwEIODg1U/+9u//Vvouo7rr78eAHD06FG4rouvfOUreP/999Hf348vfelL+OxnP3tW5yrLl/bA/Vog+V8eRZawYzDb8vWMC7GoYsVBKq5geODCJOKfuWUr/vbB92DYLtbr7V2XoeSykH4drCsSFZ3WbErD3FJFWEUwBn6Ok+vo7MtKyTXx/ye6YLsuQ29GDwVhLNvDQt5EJmr9YIj5NcvzULY8VGwPxQogSRJ0VUY6oSKTUIXiuOXC8gMPECFkpvmiYukYgaaJGatyxWlIc59ZMjCzZAAQ3YDNfQkMdMexayiDfSM94Wf4sWsHcf+BE6Etmsc4DMdF2Qq8MrXlg3IOIlEYjoddW7rxv3/mMjz0wkkcnyr4NDNBFQ+oSjwonXLA81jD58ZzGWSJIOP7sq8ngu+atIoN61JAJqWJoMZjkBp0l1dzT1e6R5+5ZSv+8dHDwmYlJlc9xzFVwmdu2dqwu/1Bw8XwHF2ovXI9nzVgdfcynRR03LLhQFclqLJUFRWv5r0PnVzEwy+O4cxCGa4nkoKNPQnce/MI9m3tXvE6lcixSVAIjsJf5vq64uF5rOa+SZL4Xr10cBqzOQO9GR03XtZanbxd3HvLVlBK8f1nT8B0ljdRsceqqJguHL+YK2i7y6l1+CfOfRXo9VuzGed47NUJqHLAguKg8GdIIai1DmG495aRC7LO7BjM4tDJRXBOYFiiu0sJgSxTJHUZrsfXZR28Ykcv/jeJhs+n6TAY/nv1ZnTEdJFWUEqxVDRh2h7GpovIxBUMD6Rx780j2LY5Dcv/vbm8Ac6EaJxpeSiZjYvguZId/rlccVCuiNnkmK4grsno9j/fTEKFGTik+J99f3cccU0WBfZQudsfpfPfjFJBqY7u+4L+L+GuG4bxw1fGw71lQ1cMhuWGo5K/+ul9uHxrD9qBJFF84aM78Yf/63WUsaxjE73koPFRex8advoZR8Vyl5mVhEDyiz4Vy4Xr3wPX4yDgUGQK2/XCIpXjMjiuB0Wm4dpRMYXgbaM9VFflqr02prX/naqYLqYXKvj0LVvxb08fF97wknBqZRAUdokSfNp/n0sdF/wKDEME1bWz1pqmIZ/Pt/z9b33rW/jnf/5n/M7v/A66u0X16NixY2CM4dd//dcxMDCAAwcO4Ktf/Socx8EXvvCFNZ0npQRdXYk1/e4HAel0rOVr3j42h/t+fAxTsyW4HoMsUWzekMQXProTV+3sa+t9GOMYncqjULZDGlOp4iCdULFtc6ZtOsotXQnEkxq+9q2fhPM9ZwNK/CCLc/BQNZxDU6RwQ0noMkqamF0OlMXXGzFVQjwmY6lJtbcRePg/AiIxF4t3XFcQ02TMLBqh6qdheZAliq2bM7hqRx/uf/qY+D0Iirxluv4CDOiKEJRLxlSk40JR03Y83LV/BMMD6bD7MuRXzJ97awoH3pjEUsGEyzg8j9VtIo7LMHamiLEzRbz83gz6sjHs29aDy7b14LKdGxBPaHjspTEcn8yJBZqK+fJMUoOuSmCMI1e2sbkviS0bxTPjAdiyKYNP3DiCpaeOhLR2x2NwHFFkcP3qN+Mchs2QSZK6TmjF8jCyMY2r9wysihq1GrTzXbuUkMnEMTRwEmNnCohp8rrc00b36JauBJIpPVyDDMsJn+PVrEEfFFyo5+hC7pXn4lkDWt/Lt4/N4YHnToYBLaWC8dOV1hDX5FW999vH5vCNx4/AMF2kEgoUv6s0OS/Exv7TF67C1XsGml5nKiZjPhdeNcTgUnAPGDyPIxlXcNfN25YT7FXct+8/ewL3/eiomLv1O+T/8uRRfOFju/D523e0fU9Xwi/cvQ8/f+cePPvmJI6ML0HXZNx8xUYQSvD//fuXYFcceGzZbino+IV0ciJUpyVK1m3NPj6Rw8ySge6MDs/jWCqawubRn11VfQruxr70BXn+o89NT1ZHsWzDcT3Ytocll2HrpjR+5d7L1mUd3J+Jo683iaPjS5jLGfjRT04hlVChRxL3ZJwiEReUasvy8OV7L8dt1w5WfQacc5RMD13pGMqmAwbREKEQ64gsUV+bpTpIiAqTVQwHZcOBIgGDG1KgEkFGUwEOzOZMDG5IYaMff3CfHh7o04iEVPxcUyjikWc/+tx/7mO7sGOku25v2bWla017y1XpGP79nbvxdz84WBcDyb5uAueNrzko6LDI8x4WCSBGF0F41c/D7weh6E7rmFsyxCw2FYUox+WoWA4ySQ2f3D+CN4/MrriH1u61ikTgeO0FpKcXDPzC3fsQi6tV6wg4oCkS9m3rxqYNKaRSsUu+qXnBE+yA6m3bdhXt27IsxGLNNzXOOf7kT/4Ef/VXf4Vf+7Vfwy/90i+F//bwww/D8zwkEmKR27NnD06fPo2vf/3ra06wGeMoFCpr+t1LGZJEkU7HUCgY8FaQ4j50chH/+OhhmLaHRExGTFfgugwnp/L4s++8iV+5ey/2bV2ZPhOt2pu2B9thAPjyxhWp4LeDkb4Efu1zl+PvHzqEsuEK26dVZL2KTJCKqVgsimRWeE1X03dcz4PtuLAchnzJhucx6KqwlFpvpOIKfu1zl4OC4M+/9+6aCweBErnjepAlsUSnEwpM28PP3r4dqbgasg/Gp4thp57V+J1xBlQsFxXLBSEW+rvjSCUUcE/B5p4ENnbpsFOi4FCpWJicr+CJV8Zh2R5SCcXvhHgoGx5AxMzQ9GKlTgBlLmfgwBuTOPDGJCRKsHVjGruGstjck8Arh6fBPI5EXBZz97aLiulBUyg+csVGFItG1bGOTyxhYqbkW5cIhVVVoYj7RZKYSuG4ojuRK9rQVFpVxdVVCXddP4R8fv3Xgna/a5ci7rp+CP/46GHM58y67vJq7mmre7SlN47f+LkrG7JolpbKDY74wcNanqN0OrZuHe8LvVeu17MGtHcvo3tfOq4Ij2TGYdkuZhZcZJOCKdTOezPO8a+Pv4+K4SCbUkMqt+NyyBJQqtj418ffx+B/uGbF60zqsp/sc0gSCzu7nicEkO7ZP1K3NrZz37792GH829PHRRdQEsE8hyiCf/ORQzAqNu7eP9zmJ9Ua1+zowTU7ljuDj7w0hmLF8ede/T0JWBYY9V8nywSe52Hen8VejzV7aqYA2/EQ08WesaErBttlfkdUOGAsFi1MzRTQkzy/Wg+1zw0hBAnN10vxfFFaRcJgT+ys18FadgXjQvhVU6hQrI+AgCCpK7BsD3OLJTz3xkQds/HEqSXMLFYQ06Rw7tbwZ6ttx0MqpsJjDLuHu3DyTBEL+Wrxq3AswAOm5spYLJqQJALKKdJJFbu3ZHDfk0eRiquh0JpQJwfARXzpugwe45hdNMK4oGJWrxfrtbcEa8r+y/px4PUJjE8XIcuiEOR5PJzpppQgk1SRKwq/bxqhU4eJMxX3OChaMAhWRRCfLs9VL98tVZHQndGQj1h/2Y6HoQ3JML6+7cqBltcZvR/HJ3P41uNH27r+iZkilpbKuOOqjbj1in688t4MXjo4jSMTOdiOhzePzuGto3P4mwfewadv2bqu68l6YDV75QVPsANq+OzsLLZs2RL+fHZ2Frt37274O47j4Ktf/SoefvhhfPWrX8WXv/zlqn+PJuoBdu3ahQcffPCszrV2XuKnCZ7Hml4/4xwPvnASRo0CqSJLyCSFAumDL5zEjsFMU7p41CJElihM2w0rdJbjQVMlnJot4R8ePbwqq5M9Q134yt178cjL45iYLaFsug0FHKII1DddxmA6XkivaaQI7jFgYqZ6cbUdhoQuo9ymn2crUEIw1J/EF2/fjj1DXWCcoyetodKEStUKnk+vcxwGSjwhZiZReJ6LhCZj33AXAFHl3dybwKbeBI5O5ME8XjWbE31rzoHFvIlyxQahFLpKkYqpYFzMwjkewwvvnAYBkI4rQPiMyMgkJRQqDlSF4v/zS9dhYqaEo5M5HJ3IYXapOgj0GMfxqTyOTwl2S1yXIckUZcMFIZ5PBxMz2yMb0/AiVVXGOd49MQ9AzCkyJqjtwvYDoLIEXZGwYzCNj1y9Ga8emsF8wYRpupAoxcjGFO780BB2DWVXXAtWmp1s7/Np/l27VLFrKItfjojxeIYQS9zsiyW2uqe1aHWPhvqS4Z+Zx8HOCZ/k4saFfI4u5PO73s8a0PxeNtr7JImi4M9oMs6RL1vYNZRt673Hpgs4vVBGXJexkLcaFlGPTeYwOpVveZ2NfLDjuox79g/jzuuH6s6j1fG2bU7jz+5/B4xxKHJQafaVlSWh7/HQCyfx0es2nxP/2sdeGcf9B0Yb7nnRnxEiZrkth53VZ16LuCZBkggcJxBSFPofwXu6HodMCeKadFbvtZb9I/rcAMtWnoos+Z18ijMLZYxO5c9qTr7Wyi0eozD8+XahAE5C2ycAAOEoGS4qhosfPH8SBMvK1vfcNIzdw1145fC08NA2HagyRVxXoGsS+rKigGHZHjb3JvEzt24DAXB6vowDb53G4fGlupjMdhns0vK9Lxo2vvfMCcR0GRu7E+hKaSgZtjgn0xVxpq8xYztMNHUM8Ux3pTTceuVG4VXteOFnEN1bXJetea/njOPucJ7dQ3dKE8mu7cGwPagKxQ37+vH6+7NYKJiAzyAkgLBcZUKhXVMI4pqMkuyE1G+PC1ZfXJNRlB1Ytmg6KLIEzsWsuZqlWCxY6Mno+KVP7gYhBBXDwfHJnBCza3MPHepLYnNvAk+8eqotT+yupFL1/VgqmHjv5GJYtBM3R1gKimIeq7MUvFRwwRPsPXv2IJlM4pVXXgkT7EKhgEOHDuEXf/EXG/7Ob/3Wb+HJJ5/EH/7hH+Kee+6p+rdCoYCPf/zj+O3f/m18/vOfD3/+7rvvYufOnefuQn6KcbbqqbUWIbNLhhDJ8svSQYW0L6sjX3ZaWp3UblC7h7tCEZB8ycL/evIoFgtWw42awBcz8xhiqoT5ivDlVCQKj7Mq0bJGwmIyFcIR0Xmh1YISQQUHIcLOQZPxc7dtC4sKp2aKKBpCwMJ2GHJlyxcVIyF1fSVwiIQ4V7J8Kp1YiBupi1JCcO/+EfzdwiHkyyv7idu+sIxECe57+jju3T+CvSPd0GQJCwUThZKFzX0JUEpg2Qym7cJyPAAiKJnPGZjPGdgxmMGOwQzuvmkYuZKF45N5HJnI4cRUvqGXZgBCgIGuOEYG0tBUWczIRZ6RM/NlTC9UQKkojFTdJg44tqDTDfYm0ZeJ4e79w5hbMmA5DJmkgsG+JFRFAgcHJRRAvVDK4bHF5QDV41XBxMWouH8+ERXjuRTEEju4dHG+nrVGe1/M9wW2XQbb9uAyhp+9bRu2bsy0PF4gNlawbZQja1sUlsPwwLOj+D++ePWK17l3pBsfv34Irx6awWLBDNW+V0p+VzreiwfPCIVoiYAQ4VkboJk6OXD2BUcAcBnDIy+Nw2NCxCnoxtfudN0pDUP9SWzsjuNDe/owsrF5UX+1aCWkWDQcDPaenZDiWveP8yGwB6ChlVugrG05rEq9HQAM08VCzgAhIglU/G5x4K3+yRuGMLNkIJNUUSjbsD0Gt2L7Wi9UjOBpMm65YiMSuiy+U46H0wtlaCqFKovvmeFrstTCchgsByibnlDbTmmQKEE2qYmZb8dDrmTDMF1IzPMdSUSMtFi08PBL4/jxm1MNP4P12OtrVeAt24PlCFFY22V44pVT4TlRwhGPKUjoMgiEiBljHDKlcFyGVELBYp7B8cfm0nEFjh+PSZRApqJQELXaTcQU3LSvHw88O3pW10EJwSc+NIR/fvLYiq+TKMG2zdnw78H3urZot5Kl4KWEC55gq6qKX/zFX8Qf/MEfoLu7G5s3b8bXvvY1DAwM4M4774TneVhcXEQqlYKu6/je976HRx99FL/1W7+FG264AXNzc+GxUqkU0uk0brrpJvzxH/8xenp6MDw8jCeeeAIPPvgg/uZv/uYCXukHF7WLe9QfUm1DxTMapJR8lU6g2sdZWDJ4kCnB5FwJ49OFhgFLq0VvbLoAxoH+7jgsx0OuWJ1oc4hFWZEoqETBEViB8DpF8OhMTLC4E3845mz6ZYwLVc6eTAy6KtX5eIb3W6cAIUhzIfziesKSrFHi3wgB7chyxKK+pb+x+unekW78x3v34btPH8fUfLluHqoWBMCUPy8YsA1yRRuz/kaqqzJUhaJL08RMtyMUQBfyZlXCDADZpIYP7dmAD+3ZAI9xTM6WcHQih6OTOZyeK9d10c8sVnBmsYIfvT6JuC5j52AGuwaz2DGYwfHJXHj8qEBccM8pEVXfgKZGQLChKx6+plh2QKgb+ksGCpoKpZAkguOTOXz3mRMoGcJWRI7RqmBiNcyL5fM6++D0YgIlpGNv1sF5wfl41polNoQQaL6HdKFko2w0TpZrkYwroARNk+sA751chO15UCVpxeuUKa1KdttBs+MtFsymzjoAGqqTr1fB8dVDMzAsVyh3+3sclYVeRiB2CYikaKlk4d0TC3junTO4Z//wunW/ograC3kTmj9eRAhBxU9W7r15ZM3rc213uHb/+OU7dyEeUxruBetpU9jsM7tuV1/TRko2qWE+b8B2PFRMFzFdhusyzPvPQk9Gg+aLVkW91Q+8dRquy3yRvQjzAwDz6cuux9CV0MSoBWN4b3wJ2aQKWdJhOQyOy5COK5jLm1WMtVqUDBelyPdQosLDOabJSGgyCAEMy0PJcPzCv4g7u5Jq3R7e6rNazV4fFLUOvDWFh14Yg8e471YjmiaMLzMHK4YDzoQl2MhACpdv7cbBk4vhZxXX5TD2thwGifG610Wtdi/f2o1n3joN03ahyhJkRXTJJ+dK+MbjR/BLn9wttIXaiD9uv3YQT/5kMhSrbQRFpjDN5Twg+F6vtmh3qeCCJ9gA8Ou//utwXRe/8zu/A9M0cf311+PrX/86FEXB5OQkPvaxj+F3f/d38fnPfx4PP/wwAOD3f//38fu///tVxwle8z//5//En/3Zn+F//I//gYWFBWzfvh1/+qd/iltvvfVCXN4HHsHiXjYcofAZoX+s1B0NEAQpHhVzzAGCr3EwW7VYMEXyyIG/e+gwfuHOXbispqLYatHzfAEyOUb9mWqCRqVPj3OUKjYUWYhsrJSx8qpErbUPdDvwGFAo29DVWB0DIPDinF0ywio+gahSJzQZkkRR9gsVK51KMOsTVV5thr0j3fi/vnw9Xjp4Bt/+0XGAc7ger/L6JvDnuwHENRkVywvZBoH3Y1B8yZXEPY3pMhK6jGRMgaZQ9GR0SJQ07MJLlGB4IIXhgRQ+cf0QSoaD41N5HJsQdPLaoLRiunj7+ALePr4AQDyLHL6Ail8sjXbkmV81Xiw2pjlxCFoXA4fric2XROainvzJBBSZYEt/GpSIoM9lHGnHw3zerGJeNOsQRNHphnfQwcWN9fZf39KfakvYh3HgsZfG8ZkPb1v1Oa8V3Wl95eKt/w8V08XYdAEVw8E3nzi6LklIkNzXZveUEHiRfYtgmflWNl3cf2AUANaVYhpTJSwWTFQssd9IlGCwL4lf/ZkrsKU3viZ6eC2LL9hTgmR0Pm/ir37wHjRFEj7HNXvBetkUrhRDTc2X4boMiVj9sxx4Ry8WLZiOF872UgDZrI64rlSFFwGzMVeywcFh+KrVmaQaCnhRYQsC22WIx4RQ4MRMEScm80gnVSRiCpJxESsUKzaUkg0wobOTSihwXA7TH49oBI9xFMo2CmVh95mMKdBUGT0ZHR4Ts9qGr1ifTarIlWw88vI4dm7JrvhZBa9biWXZCK8fmfMLRkI6UPHp0oSLeFSRJUgE6Mno+NJduzHsF8F2benC6Ok8CAe2bU5jqD+FydlSXVJ85w1bqmKOwQ1J/D/ffVvE34xVFQGFzzjDX3//IFSFgjG0jD8oIfjlT+7G3z18CIWy3TAO9jyGrz/6Pr5y9x7s29rTtGgn7oGYKWccWMg3T9ovZlwUCbYkSfjN3/xN/OZv/mbdvw0ODuLIkSPh3//hH/6h5fGSySS++tWv4qtf/eq6nmcHjbGlP4VUXMWpmSIAUTUPduJW3VHAD1Ko8DVuppwILCtAAsD0YgV/et87+NytW3HXjcMtN6hg0fv8bdvDgChftsEB33YDoZKhSKSE13NXWkWuaDe0lmqE9dSmsn0rKaWGAVA23WUvTomA+IuR43IUPLFZME787jtACQXjzWfIKQGSuoKi4TSl8QNiAc0kNCiSEA+xHQ9zS2JgifpdBRBhL8E5qgoD2zZnhPfjqSW4jMP1N+CgMCBLBDsHs9i3tRuex33rMLG5NZuZT8YUXL2jF1fv6AXjHGcWKjh6Kodjkzmcmik2VCcHIKrjTT4nzoHn3jmD3rSO7W3Y0gVFiqk50VlXFQm2wyHLBIokQZYJ4rqMzUoCjufh9HwZpuXisVdPYXKuJLy+/Y3rM7dsxS2++ux6Vsg76KCDc4P19l+nhGBDNoa5XOtZxrnc+Q06b9jXj28/dUw4SBAW6mgAwos32PteePcMXj08K6iu4OjNxNpKQlZi6wTJfaNoPLqvBZaL54JiGl2TezO62HN9B4qKeXZOJSuN2Zm2sNFkjItua1xpuBcE3fVcyUZCl6uowLoq4Z6bhldM+FrFUAt503fbaFxMkiSKdFzF52/bhnRcxcxiBQ+9OOZrsdTv4bJMhbaBx1AyzJCZoMgU6YQK1X9Oot+fUkU0DlRfBFeWKHRVaKf0ZHQAgeCaBBqj4EkVczmjJevO9YKxPhE/Be4qCV1BXJegKSLBn16s4NVDM2c1EtkIweevyhLKhgspclxChA+A6zKkUhpKhgNCCI6ML62qAF/LTBmbLmBitgTLccFBxHv6cXugjm87QEzTkYzLbcUfe0e68ZV79+Gvv3/Q9x+v7ts4HsdS0cKfP3AQ/+nzVzQs2jHftzv6s1cPz2LH5uwlF/NceqT2DtYdjHOMTRdwcHTBp1CvoQXr/474snBhZwW+vBeucMwt/SlkUyocl4Uq3UDzSrnw7xOLwAPPncShkwttz4ETcAx0x8W8j+OFllXBuTPfJzDhV0zBCdIJtcFZnHswDpi+7UvQBXEZwwPPngAlJOySekwkyoIqB1gOD5NJj4k5l2aQ/JGXiiWEMFrNaEU7NpwDIGJhpsS3tPI/tMBD0fM4ShUHlBBcs3tDGCwQ+F1kiE6waXnYNZjxBcfE59Wd1tGT0pFOqNAUuqLFCiUEm3sTuOPazfjfP3MZ/s9f/hD+wyd24fo9G5BZxecnS0Lo4+m3plb1PaiYLjwmggzXYzAtD8WKjaWChZlFA4tFE/M5C28cmcV9B06gUHEw0J3AtsE0+rtiyJcd/MtTR/HOsbm6QEdVBA1UVSRkkypMWzAD1vQ97aCDDtYNAW04GOWxHQ/MtyrMley2EpsoXCbUxttBX/b82rDJlOKe/cOglAinBSYUpF1vOblOxRVk0zooFbRpobVRrZtRm4QAInn9o++8hT//3rv4+iOH8effexd/9J23cHhsEYBI7mOaDNd/T8bRsGgc3SIExZSEFNOzQe2arKkydFVGKqGiJyOoyvf9+Nia1+Rw1KCGvcC56LIGnt6SX0BotBcE87yDfQlYjodCyYbleBjsS7RVkB2fLmByriRmdV1W1ewghCDlszCC86k9z7LpYqAnjpsuG8Dl23qwfTADRRYWc41QrjgwLE+oYJNlNp3teFjIm5jPm3Xfn2j8AcBPzh0sFi0s5E0YpgddlbGhK46+bAypuIpscnXxm+uJez6zWMHcUkUk8jJFbzaObFJD2XBAQJoyTaJxT7sIPv/w+Y08x4GDDWMctm+79t5JUewZnxbfn5gmQVOkMAEOvjcroVC2UbGEmLDs25URLI9BA349y2+gtBt/JHQxAphKKE3DftP28LcPvod0QkVMk331dKHI79Yk1wRA0XDavq6LCRdFB7uDC4f1oKEGoltdKS2kiDOIL4aqSIjr8ordUUoIrt3Zh7EzRXB/FnalgmOwyRAiNvf7nx3Fz3x4a0uRj7LhYHSqgH3DXTh5RsxiL8958/DY6YQKTZWQL9uomC6SMbntueb1hkjcOIY2JFE2Xfzut14PF1WOFesWIbhPMWoESkWC7HiiEh+voX/VdhUGNyTDjk1ck8L7EuwHHudQZep3cr2wMMA4x5tHZqGrUuhrGViZKRKBRCneHV3AnTcIocNT08vvOTyQQkKX4bocliOE0VbqbANCaOjyrd24fGs3OOc4OLqAB54bhcdQZwMWheNxOB7H6Oki/vWpY7jz+iH0ZPS6ok0t4roMiQoKFJXrA2TL9mA7Hn5yZA5LJQvpuCgoBXPc3WkVpsXw5Kvj+Oi1m2E6Hvq74yAQn82yn+XaKuQddNDBuUGtUFF0xnE1++hjr4zjkZfGm85fR/cgSoG7LoB9zV03DoNSikdeGkPZcKr2oGxSQSYp9Cuk0F+Y+6NOUtUaGtVlaZetc8/+Ydz3zAm/G1m/9lOK+nW6wVz4WtCygB+TMTVbwvh0sUp9GWhPR6PZqIHtihlj6guYRovMjfaCtYr7HR5bxHeePo5iRXRHSXm5kxyogiuKFOoKtNMl39KfwsaeBCbny8gkFESzRs458mUbhAB9XTpsXyAtZJkxkWz/8p27qr4/zRgjqj/+tVi0oCkUiZgCTZWQjCtQJAJKqa9U7rYUgY3C8TgWCyYMS6h6SxRIxFX0detCVNZnaUY75KsdCwGWP38WCUcZ/E5u5HQLZZG0P/TiWFhkCApYikyRjithAtyKol7y57mDbnnI4kTt2OPyn9uJP0q+R32lhY1syXDw2CuncPdNW/C9Z0/Cdht/LtmUhlRcWTP1/kKik2D/FKOdje2KHb0tjxNU39JJFcmYEnpDUkrCha9Qsles6O3b2o3HX5uA5Xh+Ja/xLHOQXAN+tQ3AXN5E0XBWnIUrGw4qlouHXhqH5zEYTSy0gq676wr1blmiKJtuWN2LnlOtUFZck1BZJ2uuAI7HkJAUXDbShX945DAqpvAAJTUZf+25tIMgIOE+955zjtGpHCgRG1kzCtLlW7sxnzdR9gNJ12VC6dI/j0xCraNHjk8XMTVbQiapQpElFCvieXAZh8dFYnpsMo9//dExnJ4vNy34JGQFiZiyqmSbEILLtvXg1fdnMb1oIKlLWCo5LYsmB08u4uDJRXSlNCGWNpTF9k0ZaA06TBt7E+jNxjC9aCAt1VNFK5aHrpRQSo1rMgghcPzgKYDHPBTGLGzI6HAchnhKhSpJYUU58Oq0FAor15pt0EEHHZwfnK1qeWBB5TFh9VRLkQSq16pbr9wIVWqv0x3Feogm3r1/GD9/5x489uIojpxawmuHZ5GMydC15YSCRsTIHN9dQovsy0ESkojJuP/AaFvzrMP9KcQ0uWkBouF1cLFvB8KVa0U7Kt2G5aBYsyY3a2DcfeOWKsGyaOE6mjgy/zlgnPuialLd+9YKyK5W3C+IA0Vn1qe1EsB2vVB9PqYJirCmSrhn/zBePzLXsphECcG9N48I2nrRRjySkAdd8GxKA6UUukaha3Ko0eL5Hdvagn9UaK42yY+qZZd9oTLXZb7vNUFfRocVF5ahgknnhlTolRCIoxECJHQFZcMG4cBS2UZfVoeuCWEx2xdrXe1YCBAtHJSEi02L87IdETdI1PfA5oF+jCjet1OAT8VEscjjHG6T5BaoZoUArRXpk3EFnHO0kiLgXIipfeH27fg5ScKDL5ysErmlBMgktZBBeik2FjoJ9k8p2p1Zvmx7T8tj1VZftZpNwIl0MpthS38KQxuSmJgtIZGSwfyka7FoVSl0S5Fvu6CviMwyGVOazsIZloOlogVKCBKahMWiW6X8TYkfEEB0znMlC5oqYWhDEnffuAWPvnIKRydy8FjUB1pk3NQXYZD8gGI9EQi2XLG1C4++fAoVyw2TwtqG9FqE1QgXs3PMnztnDPj+82PQVQmpuIp8yQLjvK74Mp83cfvVm3Dw5CImZkth4qfIFNmkCurP00cr2sWKIyzHdAWG5foiGDyc3eYQ1Kwfvz4JXZWRSaorzh1LEqlLtk2/ktwo2aaE4ParNuGB50/CMN1lKlQb922paOHVw7N49fAsJEqwpT+FXUMi4R7ojosZqcjxCxXH90wVM2YVS3hQXjbchRcOzkCSGgdp1A8MTIehULaEsqf/fZQlCkWmUCSKmCpjQ09MCMIE4xQdtngHHVxQrFW1vNaCihARNLtefZBNqUiuv3TX3lW/z3qKJlJKsKk3gbmlSujLG0WwblmOB+LrcgSIFl85SFujXePTBTzy8jgkiWBoQwKG5cH1RFK1ULAAiP1DlasLmy7jSOgybtjXv8q7VY12xOxkiYY0aqB5A2Nsuog/uf9d6KoUOlJEC9fRxFHomfCwcN3ofVfbLY0iGgf2ZHTMLhmwXQaZBPGQYCBoCg0/s9uu3ozbrt7cVqFm39Zu/KcvXIV/ffx9nF4ohwl5T0bHQt6sE0wL7i3jvGlTphFjhFKgvyuGob4kJudLyBXt8L029iRQNhyhbk0Eu03QxoWOTLHiwPCp0iuBc9F1/fZTx4XLDAWWCha60xoSMQWqRCHLEjb1xvHZW7auqnAVLRy4LofF2xPzYZxD8mNRmQiL2LLpQFPllgX4VEKFqtCmzSbAj0H9eIX7gnO2LbQVErHG6eOWfsE4rC02NULZEIn63fuHsWu4G1/7X69DlQkUWUJCl6t0HlZrNXcxoJNg/5Si3Znl8ekierqTTY4isB5CL9EFpmJ5/hyHDLnshDM8Vck1F7NYskShKILKFPz+UtESST4Rqs+BJ3VPWvO9pYV3IOMs9EMmnIdiErbDkNCVMPDYM9KNZ96YxPefF7ScuC75VVMhxhXXJNx05WY89+YUdJXXzZxV3Vu0ppoT/3+Supg5e/3oPMqmG87JsJX486tAlGkXJJzpuHgeJmdLYJyjL6uHm160+HLw5CJ+44tXYXK2hEMnF/HGsTnkisILU/I4ejMart3Zh5gu/KgDFXHH8cLkWiLLRYmALs78pL/Rez7y8jh0TYiARDf1Rsm24TMhooHd9sEsPvfhrXjm7dMYO1OoEqST/CJLUHkVOn31auYe4zh5poCTZwp4/NUJpGIKdg5lsHMwi52DmfD48zkDnuVBosBAdwy3X7UJuibj5UMzTWnknscgUYot/cmwGy6U11lYsQ78Vof6ElAVCfN5UyTefhIuS6SpR3cHHXRw8aHWgiqALPnilL5TxHW7evEfP3vZmjrX6ymaeOjkIh577W1MTBdg+l07e4khm9RCOjEgEsL5vCFmpoN57Ro6ccVoz795dKoQxiuUUiQir2eMY8nf44VVpfi5x0TMcM/+4bMWOGsZ4xgutm7OYHggBebxpg0Mz+90up5gyvX3xBsWrqOJY1yTAY465tRaRPRqURsHZhIqFgomXJ86TInfGS1YSMSUKgp4u8Wkq3b2YbAnhtGpfJiQc87xFw8cXLP6fpQxEo0/FgsLoFTYhl27qw9dKQ2pmIL5vIkfvjKOpaLwvM5LBDFVgSxTZFMaNvUmUDRsUAA7BzOYmBPz14btNRRIczwGeADAML0gGkiaTDHYn8IdV2/CQE8ctutBlaW2C/lB4eD+Z0/gpD8uGUUwC+1VFauWLUYBYevluAyaipZFl8ENySo2aMNTJGKEL2iKOBF26jceO4Lbrt6E267eXFVMoITgsq3dmF6cannNHuPQNPH5d6V1xDXB0gieiajlL4CzKiZdCHQS7J9StEN5qphuW1WolWg77SpYAvWVSc/k0FQK12ThYhPK9/vdT1mi2NiTCJOt26/ehEdeGl+29fB/LxVXENOV0LaBw0+ofSo652K9JBCJ1kev3Yy9I91gnOPAW1N49p0zYJzD8RhyJVGVj+syhgdS+PTNI3j8J5NwXA9eCxnxldbZ5S64sMAq1ninMnBQkKY2Vu0iSOCjlHcOQFMkaKqgaQWCI4WyA12VwwAhWnyZnC1hZCCNkYE07rppONzsXj86h6WihSd/MokfvzmFge44Pn3zCDZvSOL4qSUhZodl2ysQhCrtMhUFENvxwkU2EKs5OpHDn9z3DghIXfcleD6CZDseU+C4DJYvqub5Ad72wSy2bs7gtUMzePy1CZi2BwqAUOLPqgsBvWxSg6JIKJRtXLuzF/myg+NTubpqb9Fw8MbRebxxdB4EYtPaMZjB1Tt6kYwpSMYUbOxNhNZcK9LITQ+D/UkM9iVbdsNvvmwAnCOkmRP/Gmo9uoOkm4DUCdN00EEHFx7NLKgAn/YsiUB0eCC1Zlr4etkKHR5bxDcfPwLLEYXmeEzBjCOEoKJ0YkAkhLoiA0QUTQslu45OPDZdaMvmjBM0jVfSSQ22H2uwSNGYUuDDVw6si0VXNMZZLJhh8YMSwTRI6Aq+8NGdYp0Hb9jACObRGV8eAwiuu1HhOkhGy6aLb51lbNUMtXFgYLeV90VgA+eWVFzBL35i17qpOA+tU1PGMF08+86Z5cKRf29mFw08+IJg4wXxjq7KSCcU4QrjchRdGyBAoQRomoyYKuK5D+0ZwCf3a3jujSk8f3AGpu0ik1BhOQyG5dYl3J5PaXccEW+cXqigO60jGRNsPk0VrE5Vpmj1Me0d6cZnPYa/e+gQKCUoGo5vKUqrBHmrsayCw/3Cejaptiy6TM6WhAYPJX7DI3pNwWeBUIsocIcJ4u+JmRL+1xNH8exbp/HFO3ZUPRv7L9+IH73eOsEGgEOjC9g73I1tmzPY2JPAqdkSPI+hUHFCu7cgHu3vimNww8oNv4sJnQT7IsV6zEqthHb9O1NtVovWS+il0SzbobFFfP+5k/A8HlpCBclDMlJVPTy2iGfeOg1JIuhO66BECEAUDQdl00FMk0PBqNo0WFclJGKKr8TNsG9rNw6PLeK7Tx/HxGwpnHtWZApNFYJbikTxqZuGEY8pOHk63xbNaCV4jEOivKnVF2MiyT5bBIWH2iM5LoNpVSf1luMhX7aRjovOAdB87qvZZjc5V8Y//fB93P3hbRg7nYcXztlUnwEJhuo5qjrPpuUiX7Z8tUva1KYkvD7/VxWJQo1TXxdAJNqWw+AxhhsvGwAAPPzSmLivgeCaTJHy/TAd14MiEVy1oxeb+5JgjGPSt+M6NpnH5Gyp2kYOwMRsCROzJQBC2XPH5ix2DWWwcyiLdFxdMXHWFYq7bhoBIdXd9kbd8FoLsaBY0cijmxICxaddCaq5EJXjvNPl7qCDc4V29/CVLKjg/5wAyCRVPPj8KOZyBvqyMdy1fzhMuFd6r3bZas1mG4NjF8s2fvDCSRi2h76sHgowdaU0zOcN3+rIgqoIFeWy6SIek/HJG7aAcR769A4PpKuEsNpJtLZtyjSNV0zLhWmLPSUZk8NCtccYDo/ncHhscV0Sw70j3dg7nMVz75ypsnmkFLh+Tz+u2tmHpaUygMYNjKhgGSFErNcNxCuDwnUU6xFbNUKjOFDXZHCIUblASKtieXj0lVMghKz6/d4+NhdSxBtpuaylcCCcb4r4ztPHUTYcdKe1MD5hjMN0XN9ZhfvjFlwIuIGgK6WBcYZ8WejZMIh4lykcx6fymJgtQqYEIBTJuApZoigZLlSFYkNXHI4rEm3DqhZM4wBGTxcwerqAB58fw47BDK7c3oN9I12Ia8KKVlUlJHQFHuN1yXbwPZvJGaASETR0QvzOtf8eDfbrQJyM+9dOCHDb1ZtaWrKdmMwL7aSEgorlVVmn6iqFrlAROxsiuQ7WJkog4gdwPyYq458eex9fvmtP+GyMDKQQ1+WqmepmeOv4An72jp2gVMzs//UPDmIuL0QJa5tA04sV/N/ffB1fvH37JWHZ1UmwL0Ks56xUM7S7sQ0PrFwFq93Ya6uvaykMRGfZDo8t4tDYEnRVQsVywZlYTFRZwpb+VHhPmlXpqS9Sxrjw32tmLVCxhFiWIlOMDKRQ8W0BFv35LsnvAjoeh2e66E5pMB2GH748jrtu2iIUVdeYrEQpRNHkei3CZWcDj3HMLhlQFVr1vvmSjWLZRjqhIpPUGtK3WnVJ8iUbbx6ZxfV7N+DJ1yYbvn9gRxHMIIbvX7Z9GpTYoALLiJW6L40CTiUuIT9fRKEkBPFuunwARyZzGD9TRMxPdhWfuh0Ikw10x7CxV3hTU3/+ekt/Ch//0BAqpoPjU3kcncjj2EQOxRrVTMPy8O7oAt4dXQAAbOyJY+dgFjfu3YAjEzks5M2qxPlj1w5iz0g38vkKAJFkj2xK453j88iVbGSTKq7c0QupTboj94XrgqTbsDyxYVPBllBkCYok/LqphA61vIMO1gmr2cMDf+my6UIhqNuLXcYhUYJv/PBI1br84ItjuPXKjbhhT/+K79UuW63RbGP0OmzbQ8VyIUsUhu1BlZe7nr2ZGJaKIiHLFSyoqoSupAoQgkdfHm96D9plv40MVMcrAEIx1aWiCY+Jjnl3Wq/qGK+n8vBjr4zj+XemwZhgOQXwGPDs26cxMngcd1y1EUDjxDUQLKNAlZ1lO5/D2YroNUOjONCwXCwWzPB8VZkioctrHif4xuNHUDEcIXLWRMtlNYWD4JmcnCujWLFBCMFczgwVz/NlW/g6U8EEhMch0cCdRqiXUyoo3emECkmi4WeUL1mYXRLJnUKJ6GzrMro1XTAWqJjhVmSKuC6hULQx0BvHQsGqYnsyznF0IoejEzlIlGD3liyu2NaDvcNdghkgUdimHWqrHDuVw0MvnsTphQpcT3h5cy6eD4/5jL+axkMAzjmE2ZlYO4I5+WaI3j/DdmE6BIok3HMUmYbixIHQmsc4NFVCyXD88cqAVk4AKs6rWHHwnaeP40t37Q4LaNfs6MULB6dbPiMTc2UcPLmAW7sS2DPShUxCRbHi+GOgy68LWI+Ts6VVP4cXCp0E+yLDes5KrYT1oHWvFERcvq21OForRO9FKq6iK63DMIXVgipL+FRkEW5WpVf9+VTb8WC7zK++NaZYB/Mll23txqOvnAqrbzSiXB4ISRQqwpZserGCsTNFrGA13RDRmRfO62dgaBBonedshwOwnPqLYRz+LDsH46SOvtWOjcnkTBEzC+UV359xQJNJ1QyO5XjCH1sWG0HVcRt0Xxo9l6m4Cvjzy9Q/n8G+JK7fuwHgQK7sgID7M4/LVOzbr2peCY7rCq7c3osrt/eCc44zCxUcm8zh6EQe49PFumLOmYUKziyI5FlVKHrTwuN728YU9l+xsa4zc2Iyt9zB9oO6N47NN+xgtwvmz0J4HoftsKout+RXzWWZQqG0k3R30MEasNo9PPCXvv/AKByPQ6YIN4RgdKbRfsUYcOCtM3jlvZmwM9bovdplq9XONtZeB6UEFcuF6zHMLRnoSevhXLCuyehXJSwVTNx5/RASMQWPvzrR1j1ol/0WxCvzeVN4b/uzzsHaFKuxAltPS8NGQnQBKBGJ3H0/OopbrxBiao0S10BINaDYBnaWrT6H5fdZm4jeSqiNA+OasCcNkmuJEmST2prGCRjnePjFMRimi2xKRdACbUWJX6lwEH0mZYmKkT6yrHieTqjhyFS0WeGx5fE/xjk8l4MoQrk8/Cx9Cn/4O5yjZDgoGQ5kiSKuy4hrMjb16igbDmbzwgVlZsmAIhFs7osjk9AwMVuqSrY9xnFobAmHxpagyBR7R7pw85WbMdgTgyxRTM6U8OO3puC4DP1dMXgcmF2qIF+0w450rTd0FIQAMV0GZxxxXcYX79jR1v1L6Aos2/WZFRzFio3utA5NkcImWzalIVeyofre3lLkuEHCzzjAbA8TsyX84XfexkB3DJ/7yHb80qd248X3plvGDoxx3Pf0Cdxy9RDGp4Xlb29Gw1LRhh2RIg8O4zGOXNG6JCy7Ogn2RYT1nJVqB2dD624VRPzSJ3cjoctrrrY2uhecc8gyRSImqCePvjSGvf69aFalJ0RU5hbyJuBvxs262ICgCL9+ZDYUSjP8Gd0oAiEJ7gvQAIIm5rbp0BUkz7X0ovD4vn1WI3GNC41cSSx+99wk5trGpgsolG28P74Ew3ShyIJ6XJtkyzJFoWxjqehVFROCV0WvlBAC2/HqVORdl1VVqoPjRqv+jZ7Lsu/BDgg6Y0yXYTsM744uYmy6iI9duxknzhSwkDdhOwyW46IrreHWyze2ncgSIlR1N/WK6vHhkwt48vVJLBYsOB6r22Rsh+H0QgWnFyp4/1QOT74+hd1DWdz2oSEMZDSMnS7ggedP+iJ6ckgln1408MDzJ/G5D29dc5IdRW2X24JXn3QHKuYSDZkcnXnuDjqox1r38GBO+JGXxmFYblh0jWkSTMurWy+B5TXTdBh6szokqbEw5G988apVz7s23H8h1gVCRFCcK1no746HvxMk8Pu29uB7B06s6h6006HdO9KN267ehAeeHQ1FwgIQIhSeVUWqElpbL+XhZkJ08O+JJAlF5Ffem8GNe/sbNzAksZ7aDoNEq1XBg/nsnoweCriej8SBcY6YLuMjV27E60fnMJ83YDtij9YUCXFd3MtAE2U1BYtTM0WcWSgjlVD8+G3531pR4puda/SZdFzmW8ERSH53ulRxwuJALThEchZMonker7KPC2f4w/db/rPrCWuxQtmGyzyAE+iKglSfilRcRbFiY6lkw7A8fOG2bZAkindOLODg6CIqkbE7x2V45/gC3jm+AE2VsG+4C2cWyyiWbaTioptOKUFSF6Kwhimo6FXNF0rCLrLrCaFew3SxqTeO26/ZjN3DXW3dP0JE8WShYIa2aPmyDUoEo1NXJdx21SY88vL4cqLrz4HX+nMHY4eG6eLk6SL+9L538Llbt+Lyrd14d3Sx5Wc7NVfG6FQeRT+OV2Qaihs3gu0yjJ0pXvSWXZ0E+yLC2c5KrQVroR61CiIWcib++vsHBdWYYU0U99p7EVUxDL7XxybzOPDWFO64ZrBplT6YwVFlQWtbKS2gRCh2zuVMcMaRiCthMlh1N/wf2o6oOPdlY9AUGa7X3iYuhFian0mrIkC7kKjosrYjVLcaXL9nAwDgj77zFiZmSyibTtjBNxYNqDJBIlZNN3I9Bs59MQ1KfOGbxp3RbFJDyXCqaPeBlZrleJjPGYjrMhRZ8n8uKHnNnsuAiUD8PydjSlWw95Mjc/iNL16F03NlGJaLmC7D8TzkizZmlyroy8ZWZcF2YjKHR145BcvxkPFty2zHQ9l0xaxXg2t2XBb6bst+Uivmo8QMGCEEVJaQligKFQfPvH0aWzdnzkkQVpd0rzDPLUtCD6Ezz93BBwXR8ZJMSkMmE2/9Sz7OZg+/68ZhfPz6Ibx6aCYUDJvLVfCD58fF76/wviXDRSa5vO/VJjCrZas1uo6QDeaKURPHZWHiFU3UCfia7kGrDu2hkwt49CVBNycQoo4SJcKVgYi9pVAW9pDB+56tjVWAZkJ04fwrF0ndvD87CjQRbVUkcA6ofiLFOEe+ZKFUcYSORs7AXzxwcN1HAhuhjulFCRK6CtthiOsyDMtDvrTc0VVkinRcgefxtgoWpYqgFCu+IFwtVlv8qH0mgz3cdhlkKhxgmnV6qxiDwf/zapcRt4VAbYDFvOVbswKb+5KgFOjNxoTN2aKBZ946jU/duAWf+fBWfPqWEZyYKuCdEwt47+SiYOP5sGwPbx6bD/9eNo3wzzFNRkKX0Z3S4CU13+7O970mywy/YtkW+jSMYy5n4uEXx/D6kbmGz06j73StqJ3tiDGQwb4k7rlpGLuHu/D60TmMTxf9+9WYTRPeZ4JwbXjguZP4+Y9ux+HxpZbNIsvx8MOXxnDL5f2QJALLdlvGE4blIh9hHFyM6CTYFxHOZlZqLaidU923tbutgH2lIMKyPZiOqATGNB3JuLwminv0XoQzQX5VV5BWRQXyoRfGMNAVx+7hroazREFS3mxRiHZQGRfUXdv1AJ/OFQQUwXxL8GLOOQzbRV82hv7uGDZ0x3Dy9Nl9LkldRsk8O6E0AiCmSzAsD5mkBk2RRGV2DQcNktraRPjF92bw0nszsB0G064/X9vlsItW2KmXZQqZEmRTOiqWIxTcQcKgqPbM9m7JYGxGKEmmEyqWihYcj/v3XXxWJcMFIBJnXRXX2Oi5tB0Pjssg+6IcjsvCqnWjKvrhsUV898fHsVi0oMoUMV1sQNft6guFzlYC4xzPvH0aluMhHVfD84hpgs62WLTDzwlorCrvehyuJzbi+bwJiRJf4V2okcY1CfM5A2fmy9jcd34UNdud5xafddAl6yTdHVxaqE06ZIlgaOAk7rp+CLuGsi1//2z3cJlS3Hz5xvDvX3/4vbbO23Hrk4Poe12+rWdVbLVG1xGwwRYLZlhQ8zwGG6hK1MuGu+5xzOGxRXz90fdRsVwhYkYJwJeLtAyikB5d39fDxipArRBdoy4eABw8sYCupIob9vVDprRhA6Nsuvjhy+N+cdqNCJ351pnAuo8E1qIZA7FQFrRcp2QDhAhKcNBQcBkWCibiutJWwSIZVyBLBI7vV16LZsWPZoJ9jZ7JqK0YBRoyq0jk/4N/lSUR10RPS5bqn9fa0T1xfqLY1JUSRfxC2YFlGzBtD7JMwQE88doEUgkV1+/uw66hLHYNZfEzt27FsYkc3h1dwOHxXFWyXYtARI1C0L91TUZclZBN6wBEc2d2qYKlohWen+14ofhbo2en2dqka+L4lu2iUHFw780j+Oi1g2EuEBTnTN+NZSUElmGyJNT1X3h3GoN9CYxPlxrGOlE8//YUvvjRbRjojuP4ZL7Fq8XnMn6mgKu297Z87YVCJ8G+iLDWWam14GyE1FYKIgJBqmDmqB1BqkYI7kUz32RwgBCRMAXHjFbpZYmI3wuERUi9YFijM3A9IaCWSapYKFhIJxQsFhg8LhZw4r+GQxQTFvIm/uL+dxHTz/4zWQ/aLQdQMcXCHXZrZbqiN3eA2ntECBpWHotlu+k9jYJxQCIclu3BpQSD/Qmcniv5QUTzX3z58CwkSpDxZ7+ySWAub6BBDAlAfA5ff/gQPn7dYN1zGSbEBCBcKIZGk2RZpihWbBwcXQi9rYOggwMolGwsFizMLlXwhdu3Y7A3CdP3MW2UbJ+ZL4sOe3S2K7hvERE0ShF+Bxjj8Hi12F0UHuOoWG5INVNkkayfmimFFmAXAivNcwdd+CDhDqjlnaS7g4sVjZIOz2MYO1PAPz56GL/cRrKz3nt4XzbW1usC4a+V3ms1bLVm1xHTZHSnNeSKNhyPoWg4iKnymqy32r0HATPJst2Qok4AgPiaKEGy79N/XU/M4LarRt3O/YgK0UlYdvqoTcCOTORwdDKHbz91DPfsH8ZdNw437MwTzvH1R98PF3wxd0/guB4KZYbutAbT9s7JnOlKDMSetIbyrKAkyyQy6kUACYDjif1qJauk4J4WyjaySQ3zBRPZ5PIMNtB8NGGluLSZ4nlPWsdS0aqa140iYCAGn1Ogw0MIQdl0wyZAVN8FaJyYB3/vTmvQVJE+Fco2cpFEl1KCVEyB7TC8cHAGiZiKjT0JECK+g5dv70EsruGlt6fwrz86tuJ+yCCe47LpYhHAQtFCKq4iHVehqzK6M6KRZFquH68JHaESUPfstFqbCCHQVQk7aphxARPjn588GmrIrAQhyiju01zexM/cMoKJ2eMtk/OK6eK1Q7O456Zh/PkD7wb9kxXx5rE5fObD21q/8AKhPTnaDs4LAmGMsunWJVvBgjTQHT/ramwQSEzOlaApEtJJFZoihVXTw2Mrz0xEv6hRBN1CiZBQUCJALTWsFYJ7UfS98Cipnn3yOIeqSEgn1PCYwUKwuTeOQtkO56M1RUImoaK2iMoj/wUoVhxkkipuvrwflIi5KqGuKIFxwPGWE/ZsSkN3Rgi9lCpO3fFXi7LV5hB3GxDCHwwLORNxTW55bgFtO4poEBEgSAJFQBP5eZPjegyQJUCRCN54f7alDyQAmJaHkuHC9XnnmipViWtE31OWxHkXKw5ePzonZuH95zJ4HoN8Pthog+fStFzMLIhuzuOvTuDbTx3DQt6ErkhQlWW18pgqYXbJxEPPj4Ud7a6UhmRMCa00AlRMYQ8i1VTDHdeD4y4/aZwtF1SEF6U4t7gm4cNXDEBTBP26EYIuzUMvjuF3//kNfPfHx/HWsXmUjPUdBVgtAtET12PCHq/iIFe0sFgwMZ8zkSuaKBkOLNcLbUouYn2SDn6KUJt0RL//PZFkp9Xoznrv4XftH0ZgGrDSOydj1b2SZu8VJHuXb+vBSMQuq93rEKwwJyIYSpFJqrj7xi1h8WG970HATIrrSsOOokSpoIv766VpurAcD4N9iRU7wIfHFvFH33kLf3b/O/jbB9/DH333bfzf3/wJDp1cqHttIEQnBFIj19PguJyLpOj+A6N47JXx8Oeiu1jAuyfm8b3nRmH7HUxFoqBU7CNSSHUXNo7txkurwUoMRMdbto/y/FG1YCbc88e7KCWY9K0oaxHc0z//3rv4x0ffx1zOgGG5mM+ZYYfVdjzkSnZd8aNVXFoxnKbPlefHCpLPPKx9qjkC+rL4c1xX8Llbt2JoQxKW46FQsmG5zC8ELP9ObXyYjAlf9yCZNy23KrkGxB5YqNiYmi9hYqaI5945jUxKhWG5mF6sYHapEvqor6bYzCHi0emFCo5P5pArCYebbFLDQE8CPWkdSV0BIPbgMwvlqmfnbL6Xe0e68e8+ugO6KjWNS6IIvyOMY0NXHHuHs21d4yHfUu+Oa5qroEcxPlOG7a1f3Lze6HSwLyKsh7J3K6yHkFoziy9hRO9bOyhSaOMRYDXUsOBe/O3Dh8AsFxIIuL+7elxQezIJte6Ye0e6oWky/vS+dyBLglqrKhJsx0O+4rRU5bYdD+MzRUzMliBToRhuOcKSRNUl0akDQV+XHvouSooEXZVQqFgrR0HnCZQCvRndp1ELxDR5RYoP42JWitN6umH0NxKaLGbZ+bKFQqOgJwrXW+4qdKVV5Ir2yjR4/4ALeQskQ0Kaei3EbLKYxfOYoK/1pMUclMtYyDRgvj80IaLYosoUpuViPi/UuVVFCOcF17VYtNBDCHRfLCcoDp1ZrGB8WswNVntsM1iO8NlOxRVIVFAnqbxcJbZqGASiky46/IG6LOMApRRX7+rDmcUKphcNdOtyqKRu2V7dfSsbDt46Po+3js+DANjUl8CuQUFJG9yQbEjNO5/g/vcVPrUc/jw39RkukkSxWDBg2wzJuCJm2pp08jvo4FyhHReEdvRP1nsPVyUJt165EQfeOgOg8TqrKxSFiouEjnWLFxpdh8uYmD9lgjrfk9ZBKcFCwcI3nzgaJrPrfQ8Cxlw8IUMxGoxs+YunKkkY2BDHZ2/ZilRCbUuNumTYcD0hVso5x5jh4E/ufxefu3VrKDwX4K4bh7FYtPDUTxrbTEYZSBIVHfVHXhrHx68fwrFTuTq7s7ABQaLHECNwQWG43Xnn1WAlBiILRMCIKBKLvVOcoipLSCUU2DZraunWiAHCyiKuKvkOHo1GE9qJSx995RQ+ddMwvlXzXC0VLb+QT9Cd1vwCkBc6vgT3NRhriOsyvnL3Huzb2oM7b9hSxWA4cbqAbz95tGF8Iksk3LsMy0VSl7FUsuq+kwSATAk8Dpi2hyOncvi9b72OiulCkSUkYhI2Hp2HRAmSMQWm7a5a0JZxUcyvmC4oEeOF8ZiCbEpDOqnCtMR3JPo5reV7GWV4FA0HMU0CJTKWSnbLcTkqESgKRTKu4KbLBnDw5FLL63rn+AIY5/iZj2zDE69NtHVfvvXD9/GVey9r+boLgU6CfZHhbJS928F6CKk1+6IGM0mUilmt2uOvlhq2e7gLt1w+gMdfnYDHOQgLFnqKTEKFronko/aYFcMBAZCIKVU0XN7mHHIgMuYCSMUF1UeWKW65fAAvvzcDTZXC5DqA7XKQlqnm+UEmoSGmKZAohWm7+Pxt25ArWnj+4DSmfYpPUM0FSLhQaqqEoQ1J9GV1vHxotiopDAoauibDsI0G79oaHIDtcCR0pc4zuup1/i0MVC3TcaV+E4t2P0lwbIaErsCwi+EsUHCdzO+6K5KYkYpuytmkFh432BjzZTtMsIHGxaHgPFWZQlMoeExBMi5j30gPTs2WoEgEtivm1Jt1lz0OcXL+NfRmdQz2JXH7VZvwwPMnUTZdxDUJuibDdT2UTBcEQCquYi5n1Cl5Ts2VMTVXxtNvTkFXJWzfnMGuoSx2DmaqrvNCIki6j55awjNvn8ZS0YREJegqxUBPArddtQk7BjOQJSn0m+0k3B2cS7QzO+0Z7RWH13sP/9JdewEAz71zpsoOklLU+WCvZ7wQvY4zC2UUykKhWVUoerIxqDIVa2qDwvx63oOAMReIPi4WzKqRrYBRpasyfvYj21seO0jmSoYN2xGUWkRy3UCgaag/hctqjnXlth688t40FEWCabmo+KyzaK4vuqUEMhUd/+8/O4qfHJmrszvz/AIw8X3OAxCIAqzjnP1IYCMKfC0DkTFfCFaRIkk/QU9aAwhZ/nffG9mTeMO56UYJsqRI6O+WMZ8z0ZPRmhY/2o1LE7pc9VwVKzZcj0FVKLJJzVeQJ+EzEjAC0n4cp6sSfuWevdgX8WGP2ns++dpE03vpehzFith/LdvD1HwZjXTRAvq5oNQzOAaD5zFkkhoIFWy7pbFFaIok7GeTKmzHQ9EUVO/VyuUwDpRMMUImSSIW0VQZ6aRItsOpSr66tamRCJ7tsFAMrtWIoEQINvaIEYDBDUn88xNHW44q5ss2/vVHx/AfPr4LfZkYziy2pqS/cXQev8LPj+r+atFJsC9CrEXZu12sl5Bawy8qJYjrMjiE8FQUqxUcCb7cZ3zfZM7FnFIqIWwRao/JOcfB0QUk4wrisepZE9vxsFS0Wr4nBcSskUQBnxJlWB76sjryZQcHTy7CZRyJBvNuHmMhBTmocgb0orUIjK0Vmioh5W9+skzBTCBXtHDg7dPCqgziPgbnRsCRTamwbIbejI7f+OJVkCnFLVdsxB99520QcLFYxxUQv6igtDnT3Qglw1mRFlw7KyVo3lJd6SIakDC/sGM5Ht4bW1xO0CP8LtlXbDVsF6zA6zZly1m2Dwts2AKFXKB1cSh4T12RcfvVm/DA86PwmCjyzOVZaPnWCJ5/nopE8JmPbAchwPbBLD734a3LPtiWJ1RLexOhD7ZhuTg+lcexiRyOTuarPDwBUT1/7+Qi3jspRj42dMWE4MpgFiMbUw1FXc4XTkzmamzICEzbw6GxJYyezuNnb92G7UNZQdMNZrklCurT0y7CvbSDSxjrPTu93nv4l+7ai3//iV147KVxzOUM9GVjuGv/MFTfmutcxAsuY1gqWdg9lMWGrI6fvD8HXZORjCmi8+UH2s0K8+t1D6KMuWxSRXdaD8VLGUQcENdl/Mo9e9tK3AP7qLBzDdTVxR2X4YFnT4Q2oAGScQWKIsQmGeNhgh1g+TAEIGJfeu39WViOV2d3Jqw9hVhadD8L4gjL8TA8kFrzSGCzeea7b9yCVFzF5GypylIzUAmP/j3aSFgphmuHAZIr2Ugl1IaNm5Xi0oCibloeTkzmccd1g+FzdXB0AU+8OoFsWoPkn6vQCdCrXGc8xjGyMYW7b9yCuC6HsWLwPEYLBBIlYH7ntFHLRJYpkjG5SmE9eG1AoQ9+EMQFgRUYJQSSIiFGCeZyJsqmDVWWkYpFFMNtLxQ5axeMi/88JsbHChUXMVWGpkhYLJjQ/D8rMsW+ra2/l81E8Czbg+2wlm0kAkHDDzrilBBct7sXL7w70/Jann1rCl/86A6MbEq1lWCbjoex6SK2bbz47Lo6CfZFilaWFWvFegYSjTbQiuHgm08cPStqWN2XW6ZYzAsl6XzJguxTS8s+PaZsOPiLBw6Gm0h/VwypuIr5JUEVdpoIUtWCAWJW11e9DOwGHI8jocv+zEvjeydRurwY+yoswdyw08Q64lwgVmNRQinwwsEzWCiYYbXRZcEssjhfw/KQTarIl21MzpZgmC4efmlMeCx6HJZjw7S9sIOdjitVCfZqr63dbmQmqaJYcersM6SoQJiv5gqIhLy2ohzMXHFwZBIqPM5x3a4+vHZ4tmpTrragEb8bPDOrLQ7tHMri0/tH8NirpzBfMMG5UKGllKBsOqiYbl2BQqLAJ27Ygn1be5DPi01l+2AWWzdncGa+jIrpIq7LVaJmMU3GFdt6cMW2HnDOMbNk4OhEDscmcxg7U6yj1c8uGZhdMvD8O2egyBTbNqVDOnlPRm95XeuFZkrrURuyH705hS0b0+F3kECMAsgSgQMCq2KLgEYSibcUVMc6ImodrAHNxp4A//tvuNi8SjXq9d7DVUlqKuiz3u/12Cvjy57c/s84DzQv6mODZoX59TivRoy53qwO0/JQMV1oqiQov212xUsVB47Dqiw/G2FqrlzH5Kt6TmpnUYORqYA15e9FFdOtYvTV7jWMixEqyXe6YEwkvXFdXjPFv1mCNDlXxt8/clgUJ/gyHRx+gXou7/me3RT5stN2DHe2DJBmcWngBGO7DJxzPPTSON48Pl/VbX3mrdN+h3X5eDFNhq5KYq91PPz8R3cgk9TwaBMBtZhfIFJlCWXuJ9kNZqTF5yqaDn1Zipkl0bQQyXW17lA0bsmXbRQqDhRZFPWTcQXJmHDYMW2RTCsygarIiGsyulIaskkNhu3C8DUF2kG0WGS7DC+/N4PLt3UjoYuYVpZImGxv25RpGBevRNdPxGWU20j8Axp+tOCltFnQt12OVw/N4I5rNuOlg60Tcs6B0dP5ToLdwYVHy0BilbYWjTbQs6GGNfpyq5BAMiT06lssWkjHVXSlNORLFpZKVtUmMjVfgecx0a3kAG2wP4VJVIMdlnNRWZYowH0KtaZKAAeyKRW5kl1371R5ubOmyBRO7ZzYeQAhokOs+jPhAb14ZtGo2yhEVVck2dF5r0MnF/HsO2dg2iIoCJTYLdvDnGOEhZdsUoWqUOEZvo4JTbR7TUCQjqshxf3xVydQMh1fYI35VH7x+uUOQHXlmUPMagdK3JoqklRVlao25agFTdQ2JfCvXu3cYFB8+vEbk/j+cyehJgXzIunPetuOB8P0UDZFAeFj1w3itqs31R2HEtKWFRchIlgY6I7jI1dtguV4OHm6gCMTORybyGGxhsHhuAxHTuVw5FQOgFBFDZLtrZvSYcX9XGAlpXVCSEMbMg6AMw6PiOe0bIqALrAKC5XLJQqpo1zewSrRdOzJZahY3rron1wqeOyVcdx/YBQe45B98UvOhdNBruyAUFpXkFtPh5NG2DvSjV++cxfuf3YUc3kTYByKQjGyMVUXV7RSBk/GFfA21gTLYXU+u9HnxLCc5X0mciyJinlf148bKBEJZoCqvcZPciVfR4Rzse8M9iXwxTt2NI2XVrrGlRIkWSI4PS8KuH1ZHYWyE+7/we/3pHX83O3b8egrp9qO4c62cdMoLg3tWf0GhSpTJHQZE7Ml/P0jh/Gxazdjz0g3+rtimJqv1MVkgEgyt2xIIpPU8K0mBYdvPH4EH7lyoygQKH6xlxJIEEl2dA6YkGVWYkxToMoi+aeUgPk+ogSoSs5pyIoU5zOfN0B9S0tFpvjQ7o14/egcKpYLx3VQNhwokiiw6JqCuCbDYxymLWauG1nyNcL0YgU/eP4kHnrhJHYMZnDFth7sG+lGTFtOtnVV9p8LGgqfNWMjcM7ruvaNIEsE/6/PXoZ9W3uqfr5QMJv8Rj0WCyZuumwAuiq1xZacaUPd/EKgk2D/lOF8CKmdDTWs2Ze7tiL5+du24oV3p7FU5A1FMabmBLVcU2hD+4ZmDe1omuax5aqk64o57Nuu3oTHX51oGIQFs8K2y+DC94/G+eteEy4W/lzJEr7JChUzZn6RgfPq6wN8NWvC4Tii2/3GsbmqjZkxjoJvy8U5UPCr2nft34I7b9iCf/3RMTzz5tSqRTqaXkNAr+c8pMjddNkAKCHYujGNbzx+BLNLRl3bPK7LKDeYcw7m8wLat6YC2zZlGhaZAguahbwFQoCK5UE+i3lGSgh2bM5AV4UCfdkUlV9ZIkjoCrJJDRwi2W23+9IuNEXCnuEu7BnuAgAs5E2RbE/mMHq6ULdJLxYsvHxoBi8fmoFECYYHUqF/Z39XbF0LRc2U1gNIEoXnd6daIbQKA4fjAga8KrswJWoXJtGwENNJuDuoRaOxJ1kiGNmYbtsH+1KHyxgeeWkcHuNQpIhzByGhUnOuZKErvaznsJ5+081weGwRj75yCvmSDc7FTHBXSsOnWs2NNrAf3dKfQkxXUDZbB+6NfHajz8nJMwUYEZq4RAFwwVqTKMGtV27EG0fnmtid6ciVLPFvqgSJUmSTKm67ehNuu3rzigJtK11jK5Vw0eXkkCjFhq4YbJeFc9bgHEXDQTym4L/+/NVtx3BnywCpjUvjmiQsX/3kWqJCK8VjHLbLUDIcPPD8SWTemELKd4hpFs/efeMWPLqCgNpC3sTz754R7IEwMEJTaxTB/hP/mE2qmM+bkCUCDqETwGoEYAMR08BWzmMcSwULXUkVkkRw+7Wb8Yt37cajL47hsdcmoCtizM9yGOZyBiRKENNkxDQZCV2BxzgMSyTbtew+TaFQZKlK84Vx4OhEHkcn8vj+cyexayiLK7f3YM9wF2xHFAdkmYbuKbbDIFNaVRQCRFwbjRso9ePHmvujKhKSsfpCSjKu1v2sGSqmEMT7wm3b8M9PHmv5+oMnhTjaxVYA7STYP4U410JqwNqpYStRjQghiOkyHJfBMD3MLBmNNxGfTgT/9XaxddUtQO26KkkiSM+XHQz2JXDb1Zsx0BVvGoR5HsPDL41hfKYIw/LqAvlGMz3rheDcXZehOyUESmb8GZZgwQ/nxLHc4aUQ9LANXTEsFSyosqgaOi5DsWL7G9xysso5xzNvncaWDUmcni8jrgta03zePKtEm2CZgkWpYAJct7uv+ho5R1wTFVfGeCj6VTHdsICwPF8e3GseFgiySRUjA6mmRSbTFh6kd92wBX3Z2FnPMzYKPFx/6Nryu+PbN6Wxb2s3GBfddkpJaDG3XujJ6Lg5M4CbLx+A6zGMTRfF7PZEDjNL1aJ1HuMYPV3A6OkCHnvlFNJxBTv9ZHvH5owvJLN2xHW5odJ6+P4eg0TF69aC4BllvnK5UaNcrkg0knQTQc1cpWVKBx9M1BaHMykNV+8ZQD5fqbOl/CDi1UMzMCwXMiV1+6osibWLcyESmYorcJz1K8w3Q5TuHNdkKAqF4zDMLBr45mPv48t3CSrqSrTobzx+pErlfPdgBvO51h21ZpcTfU6eeWMqnLMWemlipOye/cO484YtOD1fbph46qqY5d7cm8BnP7wV6RbK58G9+KfH3hfUeEWCrgl9kug1eoyvqBIe/TMhpIqtxHzdGWE72n4Mtx4MkGhcOjlXgu3rogQ2qxwIu/4SWRZfWypaoAToSqooGk5dPBsLBdKqY0XTckNWZNnXECpDjB16nEMmywwoIBSrh6bQ0CFHkigSMQW9GVEscRxBvbcc4Shi2qxO9Z5SAttxka8Aw/2p8DO/95atODqZx+RcWcS6moxkTPZZBjYKZRuqTBHXFcR1oYXgegwVU1DMPSaS+49euwkbe5M4eGIB744uoBCh5XuM4/D4Eg6PL0GRKHYPZ3Hl9l7sHsrClj0Re3CO7owWCsIGsWBQ7AggEQpIEQ0Dn10GoOEoQLuUbwB4Z3QRX7iD4/ZrB/HIy6daaijN5UyMTxewdWOmreOfL3QS7J9SnEshtbNBu1Qj7n+ZV9pEgsopIe11rEK16cjPNFlCvuxUbRArBWHvHp8XCqKSBGC5sk0IwqCllna0XkjEFMQ1CYWKA8P24DSZ22lUnI3rMob6kjg1I/wtozZcgd9pQI0S1hIe7n92FPmSjYSuhEJj7UCRCOIxBaWKXecpGvydc1EoeeSlcbx+ZE5UoV85Bcvx0JsVHVXb8UTyBJ+SheVOfXC84FhCzAW47epNDVVug+5yOx2E1aAdxshtV20KK8bZbAyEeagYDkzHExXxdRbJkyWKHZsz2LE5g0/dNIx8ycKxyTyOTuRwfCpfR8kqVBy8fmQOrx+ZAyHA0IZkKJa2qS+x6vu0sTeB3mwM04sG0lJ9t6NieRjojmFjb2JdrlccVwRNHuOiCm8hpJdLlECRJSg+bU/oL4hWVCfp/ulDNLGQZVo1V/lBx2LB9HVE6v+NEgKJcngMsCwPzO+ermdhvhZRurOuSsiVloWrCETw/92nj+P//NKHVmU/unekGy+0CPYJgJ5MrOm/B8/Jl+9O48v37sXBkzmMn8mjK6nihn39kH19j5XW/5gm4wu3tVY+D+7Fd58+jsWCSDaCvU+RKdIJJfRq/9nbtjWNoaLPcqPn+myo/uvBAKkdrUrHFWiqDM45ZpeMMLkGISAs6GyLsb1ETMEv37UbZcOtimcPji7UxYqm5Ya6NNTXzIlrMkqmA8ZEvOZ4PNTRCSBFHHIC5sbQhiR+44tXYXK2hFLFwfRSBQ+/OI5UQoWqePWq9xDz+YpUXXRoFCsoDbrIdskCSkLQNq7JSCVUpBMqbFewvh59aRxbBlK44+rN+NT+YYxPF/GOn2xHWWGOx3BwdBEHR4Wi+b6RLly5vQdbN6XBOMdc3kRfVkc6ITrPRcNBoWyH8QEJ2vKcg0fiLomKxtaLB89gsWCiO63jhn392LYpA02hsJzWhcqFvBnqH1y7sxc/emNqxdczDrz47nQnwe7g4sG5ElI7G7Q7I75tU6atTcTzq5y8RQJIA1pplCYEgFA0DCAaBWGHTi5X0FVZCoXEPOYH+D5tjBICcg6o45IkOnSuJxIIj7Om1xz98YauGD5y1SY89ZPJhn7TUREW8T4UCYliLm+Cc45EXMHckhHO8LRCKq4ilVBBIGhdDc+PAwldhiRRTM6V8fVH34frMSRjSl3wFM5AeTzstteKnRFCQgZCgL0j3di5JYvvPzuK196fRcV0sVQww6R+vYLG1TBGCBEd1mRMQTKmwPGEcqfleHDPQbINAJmkhg/t2YAP7dkAj3FMzpZwdFJ0t0/PlaueFc6BUzMlnJop4amfTCKuy9g5mMHOQWEFlmqDBkYJCW3IChUHcU0StHBPdDs0heL2qzad82JfSC/3uPC3j1DLpYBaLgX/dea5O/jgozuti9y6CUWWgIASjs/dvgMbu2OIa9KaC/OtZqUBf2RsQVCh53NmSBf2mdhgjGNitoTvPzu6KvvRG/b149tPHQsLq9XXKI4d12XcsK+/rWuRKcUdHxrC0lJ3HdNhvRiDB96awsRsKbwmX49c6NIUGNIJFdOLFXCQpjGUIgV0ZVKXvK0H1X89GCDR0arg3AN6MiXET27Faz1fH0aVKaYXKiCE4PJt1bO/jZo2+bItGGO+mBnhQCKuIKZLWMhb/nkss+k4W7af1VSpTptFpjSMB5PTimB7uKxO0TzwFJdlis/eurXus699Vmzbi/TQq2HZHizbAylZ0FVBIRdjZxpMy8MPXz2FT92wRYilbkzj3ptHcGIqj3dPLOC9scWqQrrleHjz2DzePDaPmCZjaEMCZT+hziRUxDRx37rTulB0tz24jgfT9vxRyOrz+oNvvxmqjRMA//zEUXz65mF87LpBPPryqZbPgO0wHDq5iJGBNPp74i1fDwDvjS1ddDTxToLdwUWFdmfERwYaJ+KcczBfLCSYNYIvguQ1iYwJAdIJ1RcaEUmwYbnozcbwpbt2Y3gg3fJLyxjHwy+OhRV0y/bEJhhGK76VQsRDMDgdv4BaJ5ayWhTLNooVsRl4ntdWAt+d0vC/3bMX//zE0RVnXoNz11Uxp8N8hTFKCQxfeIP4VIFWNPhC2YZEgYqvRkmJUD+v2F5V93k+b6IvGxNzTjkTlushm6r2cs4kVCwUTHiMh0yFWnKAxwSt/It37KizovjuMycwMVMCh6DLKTKFoqCOVni2WC1jJLgPMqVQYiLhdlwGyzm3yXYwfz08kMInPjSEkuEsW4FN5OoC0orp4u3jC3j7+AIAYFNPPKSTb+lPhkWZWjSzIRvojoU2ZOcbtdRyy248z90RUevgg4po4qkQ1BW4XSboz1/46E4Ui8aaafPtzEoDwDNvTNUJNLoeF8JhEgWoKJD95P1ZuC5DosHsJ1Cvci5Tinv2D4dibhIBOBE6Jh4X6+A9+4fDLvTZ4mwZg4xzHHjrdGRGODosDDBPJMeaTFExHNx94xZ8/dH3MZ8zfbEsIepZMhzENBkcHAt5E+mEuu4aPOvBAKlttAT05ODTCPQAAupwMJcfJGUrHcvxk3XJ70IzzqHKElSZghAJfVnhU37v/mHEdQWpmIL5vImfHJnFzJKBQslesUBS+36BfpDtCj9sw3SxfSiLO67dDNdldc9E9Fkplm384IWTmF6swLJZwwYI5whtvag/r72pJwYQikPjOezc0gXORVwb6Kp81tuKY5N5vHNiHofHlqp0igzLxdGJPADxPZixK6EivixR8TwF3XMOGLbw7w4S9lrNo4Bm/m/PjOLWK/uhyo11kWp/5/mD07jrpmHRTGvQNKnFUtGqU/2/0Ogk2B1cdGi34lubiLuMYalgVdGvOYQt1UopH+f1nVRFprhpX3/blJPRqTzOLJTDCjqlJFTmboQo/TpAIIihqRJcj8F1I4WCNsAhkut2QYio5P4///aOsGNp443SPnXMdRkUhaIrpWF6wQg3uJUQWpIwjvm8BZBlZdBCxV4uOPjXwrhIsnszOuK6DLMgLCuiQZSuyehJ61gqWiuqa5q2h/GZYvjsBPN6C3kTHEItlwNwXA+FspjDDih3u2u8UNeKtTJGwmTbnx1OxhS4LoflCMG/c5VsA0AypuDqHb24ekcvGOc4M18O6eSnZop1YoGnFyo4vVDBgbdOQ1MkbN+cxk5fnbyrpjjSyobsYsBK89xiFMRPuiUKJUi6SSfp7uDSRDTxdDwOOcJrdf3i86dv2VongLQatDsr/dgr43j+3TMNjxFlVREiksvVqljfdeMwACzbkfnf12B+Ovj39cLZMAZPzRQxn195ZtyyPUgEeP/UEk6eKcD1GCzXg1lwhRuLQkMdCs58W66cIQRRVemcUv1Xi9pGiyr7NqhcJNeBcGtA7+ZMFNJ/9MYUtm5M17ENo8eSfZV3ThB2PKM2aooigVgeBroTVd3w267Z3FaBpFmTiEAo0ydiCn7uY7vw/tgSHvST50ZFprBIIVF84/EjAJyWwp+McZQNB4tFCTFVwqTlwnY89HXFYFmeSPIZgyxR7B3uwt7hLtiuhyOncnjnxAKOnFqqip9rE3rPYyiUbRTK4rximoSYJiOu6WKG3XRgWB5Mu3E8+fy7M/jwFQN47p3pFk+AUAY/8OYUbrtmM3oyMSFuuwIsx8Mzb0zhy3d3EuwOOmgKxjliuow7rxcdtFRMQaqBAEg0EZ/w51+C73QgylWbAATd4lb5CCXCX3HYryg2OscoDYoRCtfjiMeWfZV5gzehPrct+KfNfYkwQaKU+PNiFky7Wv27FQIrCNdrTguPIrASERQrt+0snvFqKtmnbhrGPz5yGIa1fIxmh+IcUBWKLn9myvU4NnTpmM9bdbPYy7/DkS/b6M3qIISEiVi0s6KpQuwluHaJRjsvIjp0PY5HXhrHx68fAiUEj7w8jrLhgHMOmdLwuSAQs7qFsoNsUg1phVv6UyvaopwvLYNwzkkiSMgKEucx2Q4swzb3JXH7NZth2i6OT+bDhLvW0sZyPBwaW8KhsSUAwhZm12AWO4cEZU2Rads2ZBcTgnlu+Em3WdPprqaXk85MdweXFBolngTLiefd+9eeeK5kIRWdld4+lMEjL42vuE8zDnDGoPoFrmAWt137UcY59gx3YWNvAuNnCiBEzFxH56cvFkRnX1eCYXt47JUJEAJkkio2pRIwTBfFigPL9qBrEpIx0bV2HA/FigNZprjnpmHcds366I6sF6Lx3ZkF4QoTJHwhgwHLBVBVETFAo6J4tYBa2dd74VAkipgui6IDFyy2ZnPoqymQrNQk+swtWwEA//joYRhNikyfvGEIfRkhsrp7uAtf+uRuPPzSGI5O5Fp2coP7QyhBoWQjV/z/s/en0XFd95Uovs+5U82FkQAIkAAokRQpyaIkUxIl25KHSIqlOG3HLSfdduxMr1+/fqtXVl4nq7Neki/9706W3Z2k0+mkn92x49iJLQ9SbEuy5EESJWuiZlkixUEEQADEDNRcdzzn/+Hce+tW1a1CAQRAUKy9li0JKNyqO9Q5v2H/9jYw1JtARJHBOINhMRiGDdMRwmWqLOHaPd24dk83DNPBiYkVvPHOIk5PZesS7OB/2Q5DvsRAwBGLKKBEfA87kzI4BIuzbNgw3GTbY2iePZ/DtXu68POzy6uex9HXz+P26wdx1+Fd+PqPT626fx57ex6fvnv/tvn+thPsNrYVmlHHwhZ/b472T7/2Eoply/eU9DZYh/GqRYKinkIcBocJOlXYYl37GWWJoLsjKih0bgU956pv1yHQkSZE0N3CKu4eJaeVXIkSgs6kiqJuw159D/bPr/Lv9b8n7uerff+lrI6VPEEypviV1t+45wD+1z+/iZJh+13qMHCITkK2aEFTJFi2hUJZVFgbnhsV9lq64SAWkaFINHR0wLWghExJSCedQKaC+nTs+Bx29sQxu1yC5tq+Mc7AWaX4Qgmp8wb/zpPvYHapBMN2QAlBb0cEH//AFaBA6PN64/5ef4PcrIQ7LNn2Zra92ajNSrYBIKLKuGZPN67Z0w3OORYyOk65VmCig1L93gsZHQuZWTzz5ixkiWDPzkp3uycd2VLP+I3GavRyiQKKLHxoJamtXt7G9kJtkfDOm3bjI4d34djxOVeoSENfl0jWxmZySKdbm4usRTMLqeCs9KPPTbRk08e5EKcilOD263bisRcnW7IfbRhnDHZsm+A8iHzZamkt5xyC585FUi67Ktf5kpg5dhj8AoTmeiBnCiZePrWA268fXPX4W40gXfr42DJ+9OIk8q7COWPMZ7pRIth1skSrZu2ByrPtMI5fuX0PGAe+9IO3sJgVo2X5koVCyQqIxbENsZxrNBYgyxR/+e03oJtOXZHJcRiWsjq+8ZPTiGniGfbi3//nV6/HA0ffwQ+fP9e0H0LgNltqCgWccxAQRBQJUVV4axuWoHbbtqCfa6qEQ3t7cGhvD154awbfe2Zi1fMslG1wCFV3T409oglnmc6kVpdsL+cN/OItw3hnOouS0Tj24wCm5gs4N5fH7dcP4ocvTAjmYxMYpoNjx+dw6zUDq37urUA7wW5j26BV6lgtpuYLWMoZACG+WJmH2pi9WXIdnB1mjMN2GGaWiv5iLeagpvGDZ8Zh2UJURI4Kcaa55ZJYqBwhilEohwcHjLtdbPf9hPo2970obZshX7TqPk8zePmkN1dkb0DEzr3j1h4qJAe6eqQL//aXr8bfPfI2DFN4R5d0C2GMbcZFx88wHRAKFMtW0yKCl7iUdBsjA0n84i3D+GFIVbgrqeGZN2cbele6YpdYzulIxVQ4DofjbtB+gcGn7XOAEN9y4/FXpt17y3zfyULJwl9+63VENQmUEv95LZYtnDyXwdsTK4hqMjRVCp0t3GjUzmzHvZltVyBts5NtQgh2dEaxozOK971nAKbtYOx8zu9u19IbbYf73pwPPzeBzqSGvUNp7NvVgSt2pqGp9UWnSw11SXdASI2Qinq5LJFAt7uddLextWhW1L71moHQgvKu/rF1eYMXSpYYL5KpPzOqBjrO3qz0Qqbc0t5HIGY+h/uTuP36QfR3xVYdLVtvnHExUdLrbY8aQXJ9lwUTywR1C/kyFd1Z02a+NVeYANx2g9c59j7bg0+PVXlNAwAHQb5kIRlXxKy5O2sf9mwno4pv68nhqZIDpuVgIeMgHVc3zHIurOs9MZvH9HwB8Wg1E083RPLJ3EQ4GpFBCal6Lj9x+xV4a2wZk/OFhnETIYLKbViNCwWcc1f7Rnhri1jBRjlQmPeSX0/bphEYB/I1VmDFsoVi2fJnwqOa5CfbBBwdCRW9nVFMzBaaXj/GgS9+/038l//jVly1uxM/+3ljajkNxHjbBe0Eu41tgVapY2HzsGLTFitA/ZJYyRIJAaKaDN3ttNYmgBzVSa3tdk7zRRMnxpfx0HPjgjbjCEEth3GhsBgRCo7TRsEX7mp6rt77EsC0HawUDPfz87pFs1lH2IPNOJZzRiUpXgO88/UE3oIIdrYJRPDTldKgyhTZYnV3/+BoN377ngP+ZqZpMuyaIoM7mur7VIMBbJVmgfeZNIXixn294IzjE7dfAQJeZcfx/FuzePbN2Ybqt3Bpjl2pCBIxBabtoNygeso4QDiHborZNd1xYFiiSitRChAh+CZYDjZ2dESgKhJ0w0auaLobpLgvSZlueeDmbYaKRKHGKBJcgekKpJneBrrJGZwqS9i/uxP7d3cCEJuel2y/cz4Ls8aqYyVv4NiJeRw7MQ9KCIb7hRXY3qEODHTHLunudhBe0g0E1Msh6HyECMaG6imXu5ZhkvulbifdbWw0Vks27zi0E0++dr7q947DMD6Tw1ceOYFfX+OatpAto2TYKLjdaQLPZkpFVJP9rltvR7SlAjMHfIpzmIVm2DjPeuOMi4m1fBLOxTpCIYru/lrrJiC1hdZaAbitwHrHqg6OduHRY+d8sU0xhy0SZdN2sJxlwiM6poQ+25blYGqhCMZF7OZ5PFeK6yIhtB2G8dnchrPPGOc4M5VB2bAhSdXpV1DZ3HEZeaoqnsulrI77nziDz969Hzcd2IHpxSJYg24R50K7ptVCAXO1FeJRBTG3MK+bDga6Y9BUCUYLownNjl2VbKsSdnTGoKoS7rxpNx48elYItJlOwwbA7LKOkmXhquFOPPPz2YZrgvfnrYxSbBXaCXYb2wKtUsfCqqyJmAJZJoBVn1+JjrZYdIi7eBqmA9bga+p3sANf1m/+9AzKplDKZhy+erBpMyzldPSQKCglLfn7Vb0XB1by4TZV3mdpNaiu/dwtfwbA76aJmfX6A3i/70xqiKhiyai9H97c/F2HdyFftlAoW/jmT89UHUP8S+XDcojgipnNFc9VmSCV0PDw8xN1HRbvWWhV/famg31gnMNoQkv3PpssEXAQGKYDDgI5UL0glPh0iEzRRFST/Q1SkajwOrcF79ybDbwYgZt3O1WZQlMoeFQUF0RnWwiebEXi1pWK4OaDEdx8sA+2I5RTT01mcXoqg5mlUtVrGecYm8ljbCaPx45NIhlVsHeXsALbP9yBdHrzP+9WggO+XoPjcFiW5zQgfLqFgrkQuJNl0emmhLZsi9fG5QubsQDNO1I1X1ybbFo2g2k6oL63sIGHn5sApUBnsjLCISlC2Ggxo69pTTsxvozHjk36SZ5MAQah1bCULaM7HfHpuXcfGcajxyYrnrsIT7ZlieBjt440tNCsxYXEGRcTUa31UN0roIrEM3COvCKkGsSFeF+vB60qyIdhaEfCF38FXHcT/7zgd1939sbxV99+o66QEqQ06qaDvs6ozx60HIZCycLccglf+sFxqBvIPvPYj0dfO4/lrI6iYaOkW1AVCem46o/CSUQYuHr3STdsZIsmTMvB5HwB/+3+18XrKIHj1Fu9eqN9hBCkExr2D3c2/UxhRQ6vMP++Qzvx1Bsz0E0HuuGgqFtNhWRXvQZMxF2UAjFNweiAClkmSCka0oDf9Cgbdl2y/ZfffB1/8K9v8GO8Zo2nZ34+g6tHurYFC6WdYLexLVAoWYJ+Fg1vaTarsu7uS2KwJ45Tk1kwxkFodYLlrUIEgEzFsVqtykkSwXymDMY5UnEFMCuLmEwIbMaxktcrXdktQqv08VbgJdeUAsypdMG92SZVkfwOg4fg/QjbMOs9NsPfWzcdKJKo2MJVIieufYanwK7IEhYzZWiqhKgmvDFru8KN1G+FkJs4jyNX94MSgmPHZ1tSW9+/uxPHJ1aqPMArJ1T5V9u1SPE2SMCl/0NsKtslcKsk2xI0RQLnHIZLIzcvINn21MVbVQKXJYo9O9PYszONu2/ejVzRxOmpDE5NZnFmOlPHLMiXLbxyahGvnFoEATA8kMIVO1PYO5TGUG9iXTYwlwJ8n25wEdgYlaRbpgTpuPauPfc2LhyPvjBRESqDWJO+8ZPTvkK2l2zKEsX8SrkqeFZkClURNO6uVL0+AiEE8Wjra1owmU9GZWSK1SNEDgcWMzq60xHcc8swVEnCL906jG8/eRZA+F6nyhRXDqXXNDt8IXHGxUSty8lqEEKMgEjXxN5u2WLGVg3szRvhfd0MjHOcmcxgei6HmCahqNv42gXQ859+/TyMkCTPG/WiLgvopRPzoYUUz+5LcnVWTFczx2OfOUwktxFX72Uj2GcnxpfxrSfOVNG6vaaPYTlYyulIus4oHBXbMOYwlzIu1n0GwDQdX83fa3x4F4C58VMyqkCSKPJFs+F302NkTi8WYdscskww2BPHvUdEsYpzQCYUo31JvOx6Y8ciYm67pAs18zDLsNVgOxxlw8YrJxdw9WgXMjlDjCy4Pt6puIp0XIVlM5QNG7ppw3Y4zp7PCXX2I8P4ztGzTcfdciUL9z9+Gn/yGzdddBZKO8FuY1sgEVPWbLPhgRKCe4+M4EtLx5F1F0lPrdtxJVATEWHnlC9blUWpBSRjCrIFEwRAWXf8xNY7grdQb+J4ayiou8DWCkmtFQTeMSrHoZTghn29OD6xgogi1al2A5X7sZAp47EXJ+s2zJWcEKPw5mIafUpCBJVaqC9TOO5MOiCCPG9BBirUH0WmSMWUOhutOvXbCvMLqkzxyukFnJ7KIFNsIECHSvGEQ2zGYkYe9Ry94H9z7s9mo7LfVXULtlvgJi4xgSZL1eqipgPTdirnvQremcpUvKyZUHDv6Vibl3UqruLG/Ttw4/4dYIxjaqHg08mn5gvVqvIAxmdyGJ/J4acvTyGqSbhyMO3TyVNxde0X4xKCl3Q3+061cWliI90IHn1hwvd4linxK7JF3cZ3j4qkdag34QoiuuMvpPI602YwLSd87XMhyxROubU1LZjM54pm6Fwn48B1V/T4icwv3jKC+UwZT70+U/VaAlH0TSfWPit7IXHGxcKJ8WU88cp0S6+llFQlHxxAtmAEbLNFsW6jva8bfe4fvnAOcytlmG7n0rREEddzBQFap+d7XuDgYp9hvP4ZkiRhh7Wc00MLKdSdT/eec+9aeewzr9kgSzT0cwFY03f0xPgy/v7Rt7GU06tnxr1Em7uCurrla29QKmzDcgHKOBP0Qjjwzt19Lbzkm4Mx4YfuuXk08gU/Mb6MLz10HPmA6w4s4NRkFl9aOo7fufeg/x18/6GdeP7EPHLFEjRFQjQiIxFVkYypsByGUtkSHWcOSKRyXTkad5jPL5bwwFNn8b2fjflCup6PNyFCPDWqyUjGVaTi4n10w8bEXB533zyMpayOnzb5PnAOnJsv4slXp/ChG3Y1fN1WoJ1gt7EtsLsvif6uGKYWii3bbARxYKQLv3PvQXzriTOYXiz61TWJChug++64wp/NOjOdxT8/fRamyWA3yYyTUQWqLPmiRJa7+ToOByO84nd9ESJdxoU4R5AqU7u5toI6ihERCezYTM73l67Viw3ej5dOzofOs6UTCvQVx90gxIHDigGKay3GOIdCKbrTEbfrK6r2zK1WKxKtCv6W8wZSMbWOpu7Zrrx0Yh6vnl4A40BHQoWiSCiWLZybLzS8X968q2f3deLcCgzLcf2xmUvN9TLo6oN4liFic6lUob1uwXYM3DzUqouGWXmEXbN3pjJ48GdjMCwHMU0WBRKHYXa5jAd/NoaPv2+05STbA6UEu/uS2N2XxIdvHEJJt3DatQI7PZlBvlwdzJcNBz8/u+xbfvR3xbBvVxp7d3VguC9ZuS/vIjDOMbdYwkpOh6ZKm2oL18bW4EJos7WwGcPDz024NkQkQI8FFAJYrmXhv/+X74FhOe5YS+D5cdlZls2rxhfq3mcNa5onbmbYYq2XfaaSWC89ptGpqYzvTQwAn737AG7cvwP3//Q0lvOiaBtVZfR3r+/aXGicsdXwOv82Y9AUumox30tyqgXAKsrhjAt3FM9OcLO8r735Z8N0kEqoiEYklMo2SoYQXROWYZX0w2d5LZXw/FuzSMXUugT23FwemYIozlBCfStWQakWvXrH5Yt3pSKhhRRVFqM2nnMJpQSmJeawKVC3bwfZZ0dfm8ZLb8837Pp6BbJc0UShbCEekfH9Z8aRKxoV3Z0acIgkWYjjisp+V0qDFKCMO4xV6eEEwygholndaCFu9cp2OB49NomoJvsWbIxzfOuJM8gWTb8B4DWNGBPJ+beeOIM//txhUCL24oHuKMbO52HZDuyi8MHW3DGRVEJDOqHBsBzohg3LdnydEaFTJD5Tf2cUJdNGrlgthlZ3PQLJNgBEVAkRTST1UwsFjPQnMdyfhKZKsNx7GDxMkNn5z0+PYaArflGp4u0Eu41tAUoI7rllGF997GRLNhthODDShT/+3GFMzOZwdjoHToA9O9MY6a8s0iP9KWHJIEno6okgkzeFH3LI8Tx/RKBCLfIWMu5SmtdDk9kIcF7fvb5QlWiJAsm4CkUS3daoKiGiSv79kCQC3XBQ0m1oqoQb9vXgkefPhc6zaaoMWRJJNXOparVQZIqOpIrlnAHGuNsxERtNUbf8rrAIEt0/ClDzi7oFTZXraOq2I2hMnAPdaQ2aKvtK5GHUen+DcavE3mVMRoX11cKKUKW0HQ6JisIKg6DdebP9ikQgS2Iu39u4UnHVp7tvt8CtEeqtPIQ4WtDKAxDX6snXz8OwHKRiqn//qSwhJVHkShaefP08RgfTF5T8xSIKrruyB9dd2QPOOeYzZZxbKOL1UwsYn8nXaQbMLpcwu1zCU6/PQFUortiZxt5daewb6kBXKrL+C7NN4DEGimULqbiGxWx5S1Tq29g8bLSq9bHjcygbtp/EBkFIxbLw+Nkl8TN4AXF1sul1mcuGjXhUqU9GyzYGW1zTEjEFcIvUlFQ+l2iaC60LThgyhXpa6zWj3Tj4W10b0t3fiDhjKxGcGY+qMpZyujtLzV3NlMprqbsvekuiR9TrSGhIxlVwzpEpGOhJR/DLt40iGVc3pTgXHAfoTGpQZOFP7Y1/MS4SuUjNXLnjMORKJr75+BlIbgEguLZ5TAlFpmIMzG18kABtjHOOjoSGmw724dk3Z+sKKYQQpOIKFjKOf96Ow0T3GNX7tgdZFqyLB46ehR7Uiwl0fe88vAtvuureJcMWRSmChol1EASia3vk6j68cXYJuskgU+47UHhJKqX1xxO/q94DOa/EMIWyhX/6yWm8dHIB9x4ZRkSTML1YBDh8lid3iSue0O30YhETszmMDoi9+4a9vRifyXtHB2OVJJgSCEuuiIx0QgOlQLlso2jYVWJjDByf+MAeZAsmTkysYGIu31BkNgjdtRzNwMDLJxZw1e5OGDZDdyoCgKNsinjUDBn5tOxwT/StRDvBbmPb4MBIFz571/5VbTaagRKC0YE0RgfSDV/j0cRKupjxAAEk1Ft4WQ5DVPMEKN7dhEyRFFLki5Viw/mlEu64fhDnF4VVmUcF8qrfT70+A8N0EI/WdzAIIehMaVhc0esCAQ+qTEGpUCbPFi2YloNcyUJEldCTjmDWKQmPatSzFD1qvqaijqauyhyFkqBJLecMdKWILyJCKYEEAjswbxxgz/nPQEdCQUQT59WZYFhxZ+A8GrTsKj2rMkU6oSFfEp6jli0C01RchaZKMC1nWwZurYC7naQ6Kw/LwdRcAUvZsvCgDQniY5qYm59ZLGKwN7Ehn4cQgp09cRy4ohe3HNiBUtnGO+ezrvd2Fiv5ao9M02I4MbGCExMrAIDudAT7hjqwb1caoztTUOVLywosyBjoTkUQjwl/2+1sL9RGc2yGqvVyTmiCrGZZuJjVoSmSsPHjHK5shV9spJRApQSKIlUlo47NUDKcNa1pu/uS6EhoyJesUEcAh3NftyOMct5MuGyt2Ig4Y6sQnBmnhKA7FUG2aLrz8pVNNR1XEI0oMEwHWdeai0Aks57loejGKsgUTCTj6qZpgTQSkvO6pdSbf7Ycv7usG7ZPo464VOTaIlMipghLw6iCXNF0R8sq7yvmp4Ufukxpw0KKbjKk46q/b3vdbFmm6EhodYJyluWgbApbr0Zd3+8ePQtNoT4jhKC15BpwYw4C3PaeAdywrxcPPz+BqYWie3zxGm/Mo5E4bxC1sZbDOE5NruBLS0XcuK/Xb8zYgeTcS7Cpm2Sfnc75MfTB0S489uKkOz5WfVKMAyXdRkm3fUuuWERGlxap6kav5A18/UenoCmS35Do6I4hGVVw5nyupebQz88u4eTEClIxFcu5MlRFRkSV0J0S72WYtq9IDgDJGobjxUA7wW5jW2E1m42NwO6+JPo6ozg1mQUP0NWYUy3yVNJtJCJyHR04rAt6qUJy53s4F5Vcz96DQygav/T2PK67shunJjNwmHfuHIbpYN6drSqWLSRj9bOvMqWIaBIsm4XSw4u6WBBVRUJMk6ApFPfeOoIrB9PIF0383cMnoMiAZTvubHSgg+JW8DsSah1NXTdsn9bPuPACTcYUn44F4tlxSCi5RYMgkjEF6USl25lKaFBkiuW8AcfhUGVxXgPdIiALPq8LmTJeOjmPuZUycgVz2wZua0Wtlcf8chm9HTFXPd+ps92SJArHZTtsFjRVwsGRLhwc6QLnHEtZHaemMjg1mcHZ87m6Z24pq+O57Cyee2sWsiQCdq+7vaMzuq2twGoZA7JMQRGeiLVx6WAzVK27UhGRW4dVJt2fEwC9HVFoqgRNlVByRRqZ+yeqLLQ3AOCeW4bx8qkFPxmVJYKRgdSafLApEYnPP/74NOzAXDhzFa+95A8EWzJGsxVxxkagdmY8osmIaDJMS9gtLufFrHFUk6Epkp+oEIiihSrTKor0VmiBNBKSq6VnB5OqTMGAw8Sa7mm+1K5tv3vfdT69P+En2dXvvaMz4overVZI8e5/rmjiez8bw2JWR0StLrpyN35groCaFGCFEACEipELhwubMGHluXZtHIdxDO1IQKYU+4c7MT6bx//+wVuYXS5DIiKpt5wWM/YQMCbmzI+9PR/6ew5UFSx44Guwuy+JXTsSGDufXeU9KpZcskQQiyhV4mhll0KeiilgjCNXsmBYDj5z5z78449PrXrNOIB/+skp/Os796MzGcHMUgm5onASiKgyohEZnVoEHRxwGEMyrmBxRb+oujftBLuNbYeNrFY3Ov579+/AyXNZv37H3Z87bjJNXTrbcs6AVfPF9/7L04TxKpbB360GT2jjYsxvBz+DH4gB7mxThW5FiFgUn3ptRthWUSLsqbhYjIlbXs26FWIaUNrmgVmvmLvILuWMOpsHxuFaRjnYvSOBD90wBEoIxmdzwpJIpsgVWX2HxZ3Tvma0C88fn6sKUD1aPwHx76N3jziEsAgg6PBd6YjLZBAUaEqBjqRWd62iEQUDmoyVnI47D+/CNXu6qwIybwb83Fwe3ekICmULyaiyaTS8iwXveY1qEnTTQTKmoCsVgcM4dMNG2XBgOwyOwyBR+EH6ZoMQgp6OKHo6orj1mgFYtvAxPT2ZxcnJDBYy5arX2w7Hmekszkxn8UOcQzquYu+uDuwbSuOKwfSabHG2AjOLRSxmGjMGgonYlWuce2/j4mEzVK1btSy8+8gwTk1lMbVQRG9HBJYjRB0pFR2mbNHCUG8ct18/iNuvH/ST0XRSw6Gr+pHNloQVYYu4/fpBPPXGDKbmC3XJAuccy3kDfZ3RhpTzjRSBAzY/ztgINJoZV10XCE2SYELQ272iMgBfaTpdI/q4FVogwaKAFEhYBT1bxVJWB2PctxMr6zZMi/mfN/i8Bte2qfkC7rllGF966HiVqro3qgUIVe6TEyt+MXu1Qop3/xWJNhwb8DvvISMXPNBu8dhtTqDI0Wp4J1GCqfkCRvpToIRgz0AKt13TjweeGhNibs6F2WlKkuhM51dZR4TQmxit9OCNVfzt996E8EZZHbYjChNFV1Q4GhExoEQUJOKK26iwkSma+NnPZ/CR9w7h0RcmVz2ubjL83UMnEItURhBtR8SaBS+x12T0dccQUWUM9FB0purjua3C9ooi2mhji9DbEXW7q6ISDNdOSZVdD2OHA+7srAfZ9b/2RDWEiANzk1EgHVd9KnEtgostAZDw/IjX6J29kaBUVLkrBYNKkOdwDlURs1McYtH1LYH8OWhvLohjOWcgFVerNiZZorDBEI8q0BQJlFSuTfB6+I2WwOYVDCy6UhpyRauqw0KIqETv29WBZ34+WxWgepVv02aQiDgXrzvvOAwcHJoi+ZX9WESGaTPs7I1hJW80VZhVFQnX7OkOVeZsJFL0bkmug9jdl0QypmBqoYietIaopiAWkRGPKrAsB3MZHTu6NAz0xC/K51Nkir1DQln8o0eGkSkYOD2ZwcnJDN6ZztX5oGeLJl56ex4vvT0PSoBdfUmfTr6a7dhWQNiiCGZAGLabSn0brWEzVK0bWRZ6hVGJCrsbVZJ8Gm22KESZNFWCbTNki1YdBdxb82SZrssejhKC++64An/7vTdRKIczWxYyZfzo2DnfEcLDRorArQetJveMc4zP5ja0CNBsZjweU3DPoZ14c2xZ6I/YzPe/7kpqVXPOW6UFEty7VaV6vYq4jAlBoebIFUx/HKErXU/PBqrXtpdPztdZljE3sfV81GtHKloppDTrdg90xfD4q9MNGCG87l/XmggL/RZatXafGF/Gq2cW/SZMrYo+paKB4DAOKgHOauPMXDSNHPefzRjZvZ0xjPRXPx8HRrpw84G+purdQXiCsJy7jgQFE9mCiagmGAqpuFAij0dl5Iom0gkNUVXy6d2roREzjhDxvBRKFuZWyhjuSyCiyrAZg1xrtboFaCfYbVyWWMgIerNPU3LniuOajHzZ8u2akjEF+ZIF5oqKyRKqNkwSSBUlmboWYK4QFKtOIoMoNBBW20rUzgh5ojYOF1ShWET27bbC4Clcqorkd22DG9PB4U78+KUpyDKFaTtwGKuipHtQZIpkVMyTelTIYGChmw46EqpQ87aE6FYsIuO+D16JqCu+VhugpuMqlnK6zz7IlSxwVikmKF4hJSBu8/EPXIEfuvNPa1GY3WiRoo0O0jYDwfuzmDUQjzgi8HY3796OCH7x5t2IqJIQurtIYoAeOhIaDh/ow+EDfXAYw7m5Ak5PZnBqKovzi8Wq1zIOTMzmMTGbx49fmkQ8ImPvUAf27erAlUNpJEI0BzYbsYgsuiMOAw2ZHd/OKvVtNMZmqVrXWRa6DJ54RPZ9sIGtn0feu7sjtOvtJQ0OE5/5I4d3+QHxRq+va0Wryf3rpxfwzcfexvml4oYWAVq5R3fetLsyppQt47Fjk9BNB5LkbLmIW1VRIG8K0TAq9u6ibiMRVfDrd+5DLKqgULKQK5n47tF3GiZA3tr25GvTeOXUYuhrHAaUyjaS8fXP3Tbqdo/P5nH09fMimW0obFCJn4DG8gdVr4d45pMxtWo0Ivi8KxKF5TCfKQn3byTq/pwArIWc1HEZfwBcMdbG+3FvOhL6fBy5dgBPvna+qkPvofZonvAcr/mNYTrIly1XP0eCqkpIQcPOnjj27u7EqXMrVeJoawVj8Jl0UU3CTft3CEYdcwuNW4x2gt3GZYcT48t49Ni5itqmW423bYYVy/UQJKITmoqrMCzmf+lFxdBdPDj3VYwFXdyll1PqJnOVxSVYNSQEVRYGFwvBgiwhlZkoVaZ11LLQLcP9kSJTfOau/ZhbLmE5p6MrFcFNB/swNV/A469Ow3atWTh3rbBAXOEzBg6C7nQEikyRK5hVVdzawMILWob7k35gwTgPDVAjmoxEREbGtYXwVHElV8W0WLbBmBCACQYqFFiTwuxGixRtVpC2GWgU+PV3xfDRm3bjoPt5LUd8fwxTsEUudrItUYrRgRRGB1K48yYgXzJxZiqLU1MZnJ7MomRUV8eLuo3XzizitTOLIAB29sbdhDuNXTuSblFtczHQE0dPRxSzy2WkarrYl5JKfRvV2ExV67tvHsZHDu/CseNzVetybSKzlfPIx47P+cwib9wIpMJKIhBjSceOz+HWawY2RQRuLWg1uT8+Jl5XKluCvrrBRYDV7lFtl7a/M3ZRRdy8vSHog93oMzDOQxW/gcraNtgTx6unw5NrDwXdRjqpwnH4upk8Yd3ukf4kBnsTODeXh+W4nVC3j+Ilm5TApywD1QlnGFVcooAiS0jFFOgW89fu2ufdUJ2KhzavUNEdrztCKoWpZgj8edPkGgBOT2VDO74j/Ul0pyOYXyk3+Mvg+3Ff1T0ITxiWQyiE51zBvu5UBL/2C/vwN999HZbDXbcaq05UTRwDOLy/D7MrJYzP5KuurcM4Sq46eVSVMLVYRFc6Ejr2txVoJ9htXFbwFjDDctCd1rCcM+CE+PxyDleQgyEWkWG5FkXcFVAghPjWXYmoAlURglmcczCHVymSy+78i39stK4wudmgVFCC8kXPiqsiimKYtoh/iFgoPUsqD9y9HomoggeOvoO5lbKfFD775iw+evNuP/mNRyRxHKCqtqnKYsG1GnTgWgkswgJUy3KQL9sgRAihqbIkVHEVCYyJ2frudAR3Hh5CMqoK1VLGEI3I+MB7BvDyqQVkCgaYjqbByUaKFG12kLYZaHZ/vO+UTCmSUYpE1FMiFzP32yHZBkQH4fp9vbh+Xy8Y4zi/WPST7XPz+aq1gQOYXihieqGIJ1+dRkSVcMVgGvt2dWDvUBodic3ZyCkhuOO6nXjwZ2PIlSzBwAAuaZX6NgQ2s4ssU4pbrxlY9XVbNY/sKZxTKiikdXVbtwu4nBPWiJshAtcqWk3u9+7uwEPPjqOs2+hIqvBO6kKLAGG09FbPcb1Fk42ccz8w0oWrr+jGStHG9FwOMU0KPV4rRaaupNoS9TpbMKEq0oYyebzRhi89dBz5klVJbt3fRSOScBCxGBxmh/qASoT49lmyRNDbGQXhoigQXLvHZ3NVz3tEk33leNNmVful1zBwWrkwLqRAMt5oRtwwHb/AVXsd7rppF77+o1Ou/3hjNBIsU2Qxx25aDhxH3N/h/iSGdiTQ3ZXAweFOPHd8vk4craRbFfVzBzi0rxu7dowiWzTx5tklvPHOEibnC1XvtZw38NixSTx2bBIHhjvxf/7y1aFivJuJdoLdRkMwzjE2k8PYXBFgDga3wSzihSK4YauKhESU1c30AGLxyJcsFEqWWMgoAfF8nRkAImbZBnvi+NRH9qKgO3j4mTFMmQU4gcVFlggA4lfyhJBYxQ5qLUIYq0GVKTqTGgplq2p2vBk4B/YNpvH2ZAa66SAuVajTJcOG4tJ+HcbrhMZsxiFLBGXdRq5oQlMlRDVhwzC1UMQ//OgU7ji0E4tZHSXdEbQm2wF1aeLUFT0xLQe5ooX+7iiGdtRbOgWDv7AAICxA5RAd686EVreoUkqhKRLOLxbxrSfe8e1MPIEfSggkStCZ1HDD3l4cHO1qGGhslEgR43xTgrStQCvBuRcDKBKFGqNIIJBsm8ImaDsk25QSDO1IYMgV3CsbNs5MZ306ea5YvVbopoO3xpbx1tgyAGBHZxT7dnVg31AHRgaSkBvMTK8HVwx14OPvG/V9sIuuCuu7QaX+cselomq9HgTXbP87HjrPCl/h3POs3wwRuFaxWnIf0yRMLRTwwNF3MDlfQDIhBLqq5mXXWQS4kJnz2j3y4GhXS8/RZsy5U0Jw5a4OdCeUpoJ4qxWZnn1zpqX3M0wHu/uSG87kOTDShd+596BvoWU7DLJE/c8HAA8/P4HJ+QKKul2l5q7KFHHXQs10GKKqBN1wQAnq1u6w5z2oHF/WLTHu5n5PQmywm4ISAs/JO+zPPKblO9NZ3HJ1f91zc/uhQTz12nnfRsztughnFZUiW7SaFkKKugPdLVq7f4pi2cLb4yu4rSuB4YEUHntxCrmiCVWmiEUUxCOKX5wvGTbKuoWFjI5dO1JIx1Xcdu0Abrt2ACt5HT9/Zxmvv7OImaVS1fuemFjBC8fn8JH37mr9Ym0A2gl2G6HwFtu55ZLrfQz0bVOq6loQXMA459BNx60EAgykLsj3qDXMEXqRMbfD2Z2KYM9gCmXdxiPPTmBupQzDtKEpEsqO7aqSu8cIrDiSR4trsCquNeGWJYqoJvld9LJh1wk4NQPjwM/HlvEL7x3yhVIqm1sC14x24cnXzqNQtlx1aEGL5xAd/kREdhd87tPoFZkK6pPp4M2xZXzmrv147IVzmFwo+KJyikwRUyVk8kJZnBBgIaPjL7/1esNnbLUAIBigzq6U8NCzE6Ee3bphI1s0RDWZUsgSwVJOd1VAhdiKTCkWswaeemMGowOphgHKRokUnZvLY2apiGRc2bAgbbuiLtmOic1TNx2YHo38YsrrBxDVZFy7pxvX7ukG5xxzK2Wcdn23x2ZyVcwUAJhfKWN+pYyfvTEDRabYszOFfUMd2LsrjZ509II/zxVDHRgdTGNhpewLBr1bErHLHZeCqvVaUbtmU3c8yma8qcL5TQf7AGyOCFyraJbclw1bdBUtB0+8Mg3TFtogHQnN9532sNYiwIXMnK83Sb7Yc+5A8yLT6alMS8dQldaZPGvt1q9WBAvafp2azODnZ5eQdUfUQIDhgSR+8ZZhpOIqQKXQplWz5937b4cBFmOIyBT5st1yvNiRUACQ0IZS5ZqIfx47IaxGa58bSgju++CV+PtH30ZJF/GuoojJ9HzJQlSlKJusJn5xE3tWobgDwpItHpGxUjDxlUdOIJGMYCln+DGwEEczkCkYiKoSohEFqbiKdFwVo5ruuJ+HzmQEHzi0E4RwLOf0KgFhQoDFzOrU9o1GO8Fuow7BxTYRVRBRZeimva2pqq0iuIBxCAsnye1aEqBpF40DYA7DJ+64AjKlODG+jH/40SkYpoNUQkU0IqFQslA2BE2IuYm5B+99WGBJrH23ZoulV10kpCIMprjel4J2zlzPRl4luNEMqkJhOwxvji3jd++7DlPzhbrNY7gviYefn8DMUhGWxcAJkIopSEZVnJrKAqi28DJthuW8gVRMdTsAMv7Dv7oeK0Ubz70+jRffnsNCpuxXYiWJIBkTSuONnrET48tVi3pEE0qkta/3AtTErCJmokI2qmzRdItGBKqb5HMQKJIQeMsXLezojKIjoa7aOd4okaJCSVCgFJdBUIt3q0p0bbLNPXV9UyjsO+zC7Ek2EoSIYLW/K4b3X7cTpuXg7PmcTydfcmmtHiyb4eS5DE6eywAAupKasALb1YE9O1PQQhKGVkAJwUBPHN2pyJbMf7fRxnrQKGkrGzZ0xpoqnHvzn5slAtcKGiU7ZcPGck5YTRGIEalMQSTbi9kyulORKvXutRQBbMbwnaPvoFAS4mDeObfCZFpvklxLhbdsBtMUTLNW9sCNRKMi091HhvH9Z8dXHa37Pz52sKXYNFiIsG0GECGEeft1O3H79YMNz7NZEcz7HeMcqbiK/bs6kC9bSERFYujFU7JM0dkZx8pKsa6r38rz3tsZwUrOQFEXybUUmP1uBkooElEZ2YLpx5munFDVSCOBiO8aPTcHRrrwubuv8q9fwWVSedfA2689z3BviwqK26YTqm/JxjlHtmDiO4+fxk1X9fr2t8G58bLpQLccSEQUvQd74uhIajBMuypOePr1aTx2bFLYjbm9LEUi6EhFcPT18+hIanUOBZuJdoLdRhVqF1tKiT+72iFtb6pqKwguYJoixBa8+nStIEMYLIdjci6P4f6Uf506kxoUWUK+ZAoKaeAwlS52ZY6ZcQ5VFontWlmx8YiMe27ZjRdOzGNqQagfe2y7YOFAUyREVamhbRgg5q87EhokSnyfybDNI1i5PT62jGfenMVCpoyZpUpF0GYcMgTFViLCDitfMqGqEnJFs4oq9pHDQ/iT//0CSrrtir1x5IoWFNlBKi4638FnjHGObz1xBsuuonnZdEDgdspDXg803qhMy4FpVf4enIsiCxG2axQiMTJtBk2RVu0cb5RIUSImCgKWw0KTpstBJdr7+qmyBM31edUtQSM3bWdbUMiDUBUJVw134qrhTgDAUlbHqckMTk9l8M75XJ3n+3LewAvH5/DC8TlIVIj17XMT7r7OaB0NtY02LlU0m1/e0RXD/HIJpsPE/CgPVzgHNlcEbjWE7SGcc7+I7e2z8aiCom7DcteobNH0E+y1FAFOjC/ju0+9g4nZPADAsHR3j1MR1eSmTKYLEYPzqPCyRDG/Uq5atxSZIqZdfPaUKkl4/3sGcPS1xlTx268bwLV7elY9VrAQIUsUhs1g2Qz5koV//PFpPPXGDO6744p1NZEu1K6zlef94x+4Ag8+9Q4yBVMksS3yHjNFEyXDRjyqoFD2xF/rna07khpUVYaiSA2fGy8mPPrqNL7/7DgA4bhTMmxfmMxhwnUHrqhtbXjtPaOEEMSjMqbnC+i/bRhRTUZRt6F445WuLS7AYTlijv09V/ZAphSaooJxDsNiKBoWXj65IHIWzv3jyxKFJlM4jNc5FGw22gl2G1W4mKIiW4HgAlb0Fhn3/2rpnvV/KzayF0/M453zOUwtFBBzNz6vCse4mEtmgeMJ/2Xud7QpJYhoEsAl5MvhMyvUpc95x+pIqPjY+0Zx88E+nD6XwY9emvI7nZJb8rOsSm9ckSkimow+RcJiVq87N1kiSEYVSJS01B2lRMxa/+TlKWRriggebMZBwf3FlDkctm7jez8bQ0SVcVun8ER++vXzvhIlpSRACXKwnGNI1VhtHH1t2hewoJSArvL62vsc3KgM0/G75ql4QDiFVP7BUGEyeNT3M9PZhhSyjRAp2t2XxEB3HFOLRaTjSuUDYXupRG+kCE4ziPtCEFEkRFUZDmMwLQeWSzPdjuhOR3Ak3Y8j1/TDdhjGZ/M+nXx2uXomzGEcZ8/ncPZ8Do++cA6pmCJ8u3d14MrBNGKR9tbcxqWL1eKIzlQEZd3Cob09sGyG3o4o7na9uWux1VZiHsL2EMY5TLeILVHid+HSCRXLWQMOF+uUYdoghLRcBPCSvkLJdTFxFzmxxwkF+KgmN9yrLyRuK5QsGKYD3bTBQfx4wmOjWbaBiCpvOXuqdq/5zF1XAQCefmOmqpNNKfD+9wzgs3cfaOmYXiEiokpYyuo+K1ByRxem5gvrYmqGMQgsy8HEbB5ffOg4PnbrCG6/flB8Dib0jbJ5A/GoDA6CUlmc5/7hzlWf94mZHMZn8q6WTWufjxLxPNkOQzwio6TbVck1JUA6oQkKO1qL918+tQDOObrTERBCXFvUynPiue7U2nXVapPIMkXZsFDSHdxzZBjfPXq2iuHijY8QAowOJHHs+JzviEDcOOHNs0uQJIqBrpirJm4LNqk4GciUVDkUbAXau3gbVdgqUZGtCtTD4G3YDz03jtNTWTgOB3FFy5pRbbwc9anXZwACd96ZoQPCcsGymaCau7QYzjlkiVY8CN2FnDOOfEl4bcc0GVePduLNs8uQJYqIJrldW7HJegrbhlWZ13n4+QkwztGbjiBXEp6CQY9nQMzD5EuWsNxKqMgUjAp1h4gFPlcSghkSJdDU5sqb3saUd+97I1pSLYVLogSLWd2fsRnqjuLoa+f9JNe758T9n+Mmk5pMhSgO52t6fdh9DgqTeJ1+rytgevPqLg3AYwPYNsNcsQTTEpIgDz07jtdOLzYM6C5UpIgSgntvHfG9Q2MhleuP3rx7Tcdv5Tu2lu/hZojgtALuCuJFVBlJRUI0roHZDoolE7bDVy2MXQzIEsWVg2lcOZjGLwLIFgycdq3Azkxl67w+cyULL59awMunFkAIsGtHwvfeHuyJ+wF3G21cClgtjrAZQ75s4+VTi0JUUhIigpu1vq4Xtcm9bjjgLgOtI6H5neqoJqO3k2IppwvRzpKFSI0FZCMEkz5hC6qDgPhUWcftmkdUqSGT6ULitlhUgWE5YBxu19AFAWQ3aTIsB7EQPZMLQbO9p9le82u/sA+PPjeBhUy5aWEmDJ7WiSJRLGUNfx7Y6+R6Y4LFsrUmpmYYg6Bs2L4NFTNsfOOnp/HyqQW854oevD2ZweRsTthXujGIpghNDe88f+9Thxpen4OjXXjsxUnhxuGsPhIYHIN0OIflMHQkVFw13IlXTi0iEZWRiCpAzbk2e27CijoxTcIKqcTKvphZoMtOiXhdELYtROOSMcVnsDz83ATKhi3OK3C8t8ZXcHx8Bd/4yekqxsvsUtEfSYxFZKTiKpJRBabN/DiB8YpDwVagnWC3UYWtEBXZ7EC9laTBp7i8No0fPDMOy2aIaDKWsqt/+WSZIKbJ0A0bluVgKatXqn7ei9wFIRlTwDhg2Q4KZRsRhSIeVf15atN2cGoyK6rgSS10MQ8ucrUq6NGIgnzJRCZvhH5W02bIFkxIhMDyRCYA38uRs0pFvlRuXDQ5N5cXypGcB+g1qyc2qbiKRFTxZ2z+xftGkCmYbvBQX2n3KNqaIsSvzs3l1/T6MHBvhXaTdFWm0E0HiSj3KXSmzSBBPDsypb4IGoGg2cU0edVZtgsVKTo42oV/98nrfB/sYOX6mtEuPPLCuZa/M618x9byPdwOIjiAuJeaez80mcK2OQzLhm45rsL/9ku2AdEZeO9VO/Deq3bAcbskYnY7g2lPkdUF58C5uQLOzRXw05enENNkXDlUsQLbaquRNtpYK5rFEWXDxnLWAGPiuxyNyC2tJRdLBC6Y3L8zlcUPnptAPCLXnVcsIoNzFUXdxr23juDKwXRLRYDaPd3bj2SvWA93bMlyUDKcUCaTd70tywEI8R0xVJfa3ixuI+7qQyDW19q5X1Lzuo1As70HwKp7zcfet8c/FuMc47O5lgovx8eWkStaVfPAQXg/ooSsialZm2z6c/pucVhyBXTPns/h5LkMIqqMiEpFYcNtjuimDU1trEMTxO6+JHbtSGByvoB4UsZSzvDHA8PAOIeE6uepo0fDR947hJOTGfEsh1yzZs9NWFGHUjHSEBRSY5xVxW6puAIaoGhzzlEs2xgdTGO4PwnmcNx98zA+cngXjh2fw/NvzfkuHTKtsCuKuo3vHj0LALj75mF0pSIgAHTDgWkxOEyHpopkmwYYpcfHV3DvraMNrtTGYlsk2Iwx/PVf/zW+/e1vI5/P4/Dhw/iTP/kT7NoVLql++vRpfOELX8Drr78OSikOHz6M//gf/yN27tzpv+Yf//Ef8eUvfxkLCwu45ppr8Ed/9Ec4ePDgVp3SJYvNFhXZiEB9vZXP2uNSQvDB64fQ3xkTf7NUqqsEhk23lA0HMU1ssKLyKxYIzjm4WyW0meiWZgqVeS1AWC54ytamJawa8mXRhbYsB5pamd3yfA/FZik20VzRhGE5kCmBCWEBUdLtprPcDuPggbVTzPi68+AQlHZFpnjkhXO4aiTc0kOIcFUMFAmwatVUkamfDHgzNu9MZ/3fWQ6HXEtnc8+9I6Fhd18Sb51dguPOJduMCTG1wN/Uvj6IumfN7QjnCiZ008FiVkc6riIVU7CU02E54tp4fpUEgkWQjqvQVHG/N1uD4Lq9vRjqjuLsdNZ/vou6ja+t4TvTyncMWD2I8Y55IfN9mwmP1RCXFcQ9j21LiKE42zjZ9uavh/uT+IX37kJRt3B6qmIFVqwpdJUMG2+8I7w+AWBndwz7dnfiQzcMYqi33taujTYuNhrFEZyLGWWHcWgK9ffCi72WrAYvud/dl8SrZxYbxkcl3cFQr7D4a/Xz1yYq6biKpZwuRN8C1y1XFPtBGN18d18SyahSp8tS0SlhDeO2YlkIhxqWU2fFybhI1DVFQrHcmvXnagjuTzFNBpfFeNvEbB5//+jbonnRgvf41HwBx8eW8crpBWTyJgzbASUEvR0RfPwDV+DqkCLx469MV8VjjWBYwl2mVaZmrTtNrijGBSW3SMLd2TPH8WI6hkJZxI6eGJjNOEq6jR2d0VW/B8HxhXzJ8mMkEMBxxPkF4zNP+4dAqHkTADfu68Vwf6rqe+pZZ4prTlEybAz1JkKfm7AiGudcxLgu8w4QrEZCOCKqBIkSMC58sIMMvagq4ZMf2lslAixTipsO9uEbPznti5X56wgAifKquWrvtUXdBnHvcUm3UaqxrH37XAZfffRESyMFF4ptkWD/zd/8Df7pn/4Jf/Znf4b+/n584QtfwG//9m/jBz/4AVS1ulq/srKC3/iN38ANN9yAr33tazBNE3/2Z3+G3/7t38aDDz4ITdPw4IMP4vOf/zz+03/6Tzh48CC++MUv4jd+4zfwwx/+EF1dl6b69Vahdu4oEZVBifhCFMoXJiqyWqC+kjfwnaPv4JcdVqW6GMSFVj5Xo58988YMHn91urIwhZyHZTPMr5QhS9RVTeSwHQZJonAcBjuQddYqQmfyJixbvN4TE/HEzzIFEzs6Jeim41OLuPv7mCbjxMQKXnp7HmXdRlkXM17eArcqCKDJQtTNcbhPh1JlCam4AsaAc/MFPP/WbKj/oRDhopWLQtCUUk+JUE324M3YcIi5cjkqigV+EOHu6DYTm8Dt1+3EyYkV/PPPxlByVdk5hMicRN0ZtZrXBz9zs2etuyOCpYxgKuimDcaAWETxN96yIa6tGhCYAbZOg6DW9/vP73+t5eS21WRYzJa3dsztrsvgfcVkiQrrOJcWZliuxzbbvsk2AMQjCg5d2YNDV/aAcY6ZpZKbbGdwbjZfVzw7v1TC+aUSfvbGefz/fvtm7OiMXZwP3kYbDdBIA6Os2zAtB5IrsBnEdlhLVkP1eRlQZQme86Zl81Xjo7DmQG2iEtFkdKciyHoxgLvA9XVF8cnbw8W3Tk6suO4Y1bospuVgIeMgHVcbfq5ETIHmWv6VdFtQmlGJDzw9iI0Q2Kydgc4UKnEOAVA2bSwB2NFRL/roPR+T8wX82ddfxkJGR7Fs+cVwr/BfKFn4q++8gY+/f9SnDwfft5WdwHYP2uo5h7nTeOOCAPxA0nGLwqZ7X2mgYSARIhotNmvpe+CNL9z/xBlMzhfEPeOiqGI7oikDuA0WDt9dRpEoNFXy/dHvuWUYX3roOKYWCnUjfrJEcE0DH/XaIlpt3AqIBtDhAztwYLgTN7n6QWGz5R+7bRTX7e3Fykqx6j2OHZ9D2bD9xgrj3D8fD0Xdxj8/dRafvONK3HNkGN9+4p1V7/HTb8zg135hX8ujBevFRU+wTdPEl7/8ZfyH//AfcMcddwAA/uIv/gLvf//78aMf/Qj33ntv1et/8pOfoFQq4fOf/zwikQgA4Atf+ALuuOMOvPLKKzhy5Aj+1//6X/j0pz+Nj33sYwCA//Jf/gs+8pGP4Nvf/jb+zb/5N1t6fpcignNHc8sllA3Rab1QUZFmgbo3izIxm8eXHjoOTanMogQVrB9/ZRo2Y6EJdFSV1t1l85KaQsnC88fnRALsiAESkeRWv96rOBKIRNPz5bMDrwv7knMAhbIFQoI0bTEXY1oO5pZLPtXVo5FTAti2gweOnoUqU7/yRwB3A1792suUQqIUXWmtcnwq1L5zRdFBZ5zj/sfP4Nk3Z+vu8+6+JIZ64zh5zoLNGBS3uCBLCE2yZYlWnb83Y3PFYKVi2pXU/Bly8Mqs7dCOBHZ0xfClh44jX6oXgRMLrDfPI17viYd4WC0pTCVUGKaDT9y+B6mYikRMwdCOBI6+Mo0Hnx5DMi5sw2r/dqvtstaa3LbyetHl4C0fc6t0GTYC3rOiSBSqm2x7VXljm3lsh4ESgsGeOAZ74rjj+kHopo13pnO+OnmQemc7HEs5o51gt7EtESZO5rhJRXdSq7Ky8rCd1pJGODDShTsO7cTDz01guaT7yWE8quCDN+xes0f1R2/eXdftj2gyIpoMw7SRK1ro747iP376xlD1Yy95rNVl8TZgSgjSCQ37XbeDWgQTpd6OiFBqduMDRSLIFq0NE9gMKpYv5wyfQu0JlzJH/NMIsPmCsBlDsWzBsmw4jFQ3QtzkFVzERQ8+PYbdOxI4ONqNc3N5TM4X6rQvwiBRcU3DWHGNULmGBUhu04V4GT9EfCfTSszo7UFVu687slc2RPHBdviq34MDI1347N378d+/8wZkSqGqEhSJYCGjw7QdSIS4XWOgI6427EpbNgu1QLMdjh+9OInhvmQoA9QrNi1mdVdAtuJPLVGxD5+eyuLWq/shU9pQSyFsHBUQ89LcvTYOa6y38uRr53H1SBfuvnkYb40t463xldDX+cwMBjz63ETVqMFm4KIn2G+//TaKxSKOHDni/yyVSuHgwYN48cUX6xLsI0eO4G/+5m/85BqAz+fP5XJYWlrC+Ph41fFkWcZ73/tevPjii+0Eu0V4X4TpxSJAJYBVRLbWi0aBetBXEgDimgxJophaKOJLDx1HOq4iVzLF7AzjUBWKqCo6614CvZTVsZzT0eOqGXrwqNYyJZhaKGBiNofRgXTDz+hVc1OKYE44jGMlp7vqiAG4AmZC2VCIZt172wiWs2X86MXJ1X0JeWXkhRPRkVUogelUFrrgIUynYvHVkdCwnNPrKnlBeFfA+7UiU0iSUDP3/HfLho2VvLvJuVMyjbyovcX0/GJRVNYdYW0VRraSJUHn9tRPI6rkz9iMDqT8RVk3HXQmNXGPLNFxjEcV/Mvb9+DbT74j1MpRKWDUQlMoknEN991xRd1z2WpSmIqpuGZPt//zK4bSvtBcmG3SVttlrTW5beX1tiOCL1lu7ZgXostwMcUMq5LtWKCzXeOduZ0RUWVcPdqFq0e7wDnHQkZYgU0tFLBnZwr7d3Vc7I/YxiUCmzEcOz7nr8ueCu9mojagzpVMPHD0LCQp/H0vBTvCE+PLePK186AU6EpF/M3WshmeeGUKu3rja9Kw+IcfncIdh3ZiMavXWTOVDAeJmIJf+cAVDe9VmC6L6c72euKI+ZLZktVktmghHpGhuYJq2aLVtCsfXN9jUQUEYlzOW+trUShZsG0Gwy3oS4F9lgDglMNhQqQ1GVPrYjnh1ALYDJWRtQAcxqFIFDIRv//uU2dx1UgXckUTxVVG6cS1gNsRr2fFNf870ek9PZX1mYmMcxC3a0ypeKY9D2rPecYrzgQ7s7miiVxR/M1CptzsbQEAw/0pDPUmMLVQRMIt0KTiaiVGhOgka6rkCqbK/v2sdPZF4UGm8Dvh4hzEvXjoufHQ5tSBkS78+p378Lffe8vvkHOIOFKM1tWP1a1FS8Gbq2auQFkj2Dbz36MjUa9REnYXW7m2F4qLnmDPzs4CAAYGqmXTd+zY4f8uiKGhIQwNDVX97Itf/CIikQgOHz6MmZmZhsd7++23L+izNgpI3824cqgDqVQUuVwZTsiCthakkxpkSXRNpcDMhjevQqmoSMoyhapIYIxjPlNGvmShIym+NJ569VJOR086iogmuoyaKgkqMakkrmXDRrZQTbX+h8dO4dc+vBcHR8OrzHsG09jZHcfkfAEdSRWFkl2fXEMkv9y9HpbNsaMrirtu3o3XTy/iqddnUNItISgh5MRh1yTDHF7yy11fbAnxqAwja/iUs6BwsJd0WzYTFlsxBSv5xh7X3sLtoa8riqgqupeq4hakAnNCjItufyKqgIMjkzfxwxfO4eoruv1F9dore/B//vI1+OZPT2N6oQg7kKB41Nx8yQTn8BfvTMEQVksRBZ/80F4osoRrr+zBb0oUDz07jpmlImxHzIGPDqRw760jiGgSzi8UQeDaOXhV4MAKyzjAQfChG4Zw9RXdmJjNu5uyguH+ZOizVnX/3OuYTmpV3+vg/VeVsBk7G7t2JLBnML3hiaIXdAaDz7WeRyuvVyTRL2j1mOu9JsfHluvu8UB3HPfeOtLw+7eea7QWyDJFPOra7ZgMumnDcP1rt3uyDRAM9MQw0BMTXcBUFLJU/wxe6DXaCLxb9srtcC03Ao88N4EfPDMmVHkhltRv/OQ0fum2UXz0yPCajrWea3LlUAcAkUg8/9bcRVlfNwKMc/zwhXMwTEcE/35ySEApsJjR6/bN4N90JivsOkmVoCoUmbyJ4+Mr+NxHr8Ijz05gxhW4lCWC3TsSq66XJUNoTigx6sc+mlpZ15l7XUuG0/B7Wbsnt/L+wfVdN4WwFCCEQyOqhIHuOD72/lEc6Yz7z0o6qYEQkRAF6dEeKKFwwOA4HKbtIBLoYhuW9x6NLVW5O0rmTZ0tZnVMLxZRNOyWxoSY2wXf1ZvAhw/vavkZPD62jKOvnRcOLRQVdXL3/5IxFamYimLZgmkxRFQJzFXz5pwjIG/jNxQ4Bx47dg6DvYlV98uP3TaKrzxyAtmCiVhEAqVC2b6kW6KYLlGYllN3P8dmckJk050Fd0LE3xjjmJgr4MW353HkmvrxwWRCg6aKUQJKRcdclSU/bktEZcwtlzC9WMToQHhi3WhNufU9A/5cdTPYDsOs+x593XH/56G3zz2/vu74pu9TFz3BLpdFFaF21lrTNGSz2VX//mtf+xq+/vWv44/+6I/Q1dWFs2fPNjyeYYQrLbcCSgk6O+Orv/BdilQqesHHSKdj2NU/hvGZHKKuf7RuCl8+iRIwBr8CCwjrGgJ3sXS/KZQQECqoK9miiXgsDgIhHkbyhhvIiw7cctYIJO6ikrec0/HVx07i333yOly3tzf0c/7qXVfhf37ndSxlDRSaKGsH1+t8ycLEfBGDfSlXREws1MTN+GWIxTQIb/ZaIhRdqQgch/kLMkd1Bzv4nowJb2bqFhMa1T28PycEeP+hXdi7uwP/8zuvI1u0oMkUlsOqLMG60hF/wUnFVcytlLFUsEAJQa5oIhVXceTQEI4cGsKZqQyeef08fvT8OGJR2a82RyMyVnIGLFtwvWybo38gjl//6MGq631bZxxHDg3h7HTWP/aewTQoJXjo6bOwGfPFPxgPn6ElBPjRS5N48eQ8cgUTtiNo6IM7EvjEB6/Erv5U1bMWvO4lw8HIQAqHruqvs0Dy7n+2aCEZVXzxj3zZQjyq4FfvugrdXa2JSzHGQ8+xGYLftbDvTLPzaOX1ozvT4OCYmM23fG3Wek1eP72Arz52EmXdRjKuQJHE8za1WFz1+9cKNmI98mDZDLphQzdt2A5btcuxHUAIkEpFQmmUHjbyGq0F78a98mJdy43AA0+ewbefOAPGBC2ZiJovSrqNbz9xBtGYik/cceWaj7vea7KR6+tW48xkBnMrZaQSKhS5vjjp7ZsrRRtXuuySRn/DARimA1WRMLVYRF9PEv/5/3rfmveLwT4LqiL5zYlaeO8x2Jdq+r1stifXIri+KwqFYZn+Hi0svWRMLRbxlUfeRiym+Wt9Oh1Dd0cMuVIWCkiNMwiHw4UFmu0w5Es2FEnyn1fkxigAAG8oSURBVI9cUcRi1O0IN2QJuhk28S4FlUBI9XXxqMK1UGWK7o4ofvtfXLumPf7bR1/EUk73Yzq/E+4m+mXDRjyqQJEF9ZtKFAlNwoobs3qQJBGPSZSipzOCsuHg0RcnceTQUN19CMYWfb1J/Lv7DuGrDx/Hudm8392XKMFATxwfPrwLh/buqLufY3PFyox2gwozh1grvvmT03jhxDw++aG9VXv32FwR3C0ihD0rlBCUDQeg0qr7Qtia8uHDu/H9p882/TvGhXo4qIR/ffdBfO/pMf+8gkm2d4oSJfjXdx+Eqr7LZ7A9qrdpmlW0b8MwEI02XsA55/jv//2/42//9m/xb//tv8VnPvOZuuMFsdrxVgNjHLlcad1/f6lCkuiGdbAB4O7Du/CVR05gMaMjHpVhuaqKQEWx2XGEJYVpOX5X23sNg6AzUyqE18q62FzAOCRKoes2TE0S9BjuJmkQX0BFltCV1JApmPjmY29jqDsaLt7QE8Nn7tqH//ndn7d8XoWSif/xrdfwubv3ozsdEd1hVhGaIBSgvNonmnH4PtWqQpHRxQbiJ8buP2uXPa9aTN0E3gkbnnGhSARRTcaegQR298SE//ez45iYywtKD0RRoyOh+Rub93lLuoW/uv9VFFy/4doO5J6BJCSJIqLJbkVZbI59nVGYtiiclHQHv3TrCEb7xGZV+xx1JxR0J0RBJZsV369iufLd9QTk/I48qV4kV3I6snkDOzojiEYU2DbD2HQWf33/qzi0txfj57OYWyqJJE8RtLeiK9Z39+Fd/nsGEbxOwe7rUI849909sToxjjCstYPb6LtW9Z2JyGCoUOoTEaXuPGq/Y75ap3feNwl3hqavqTnmWq4J4xzffOxtlMqCeeIVSSRKkI4ryOSbf/+aYaPXoyAUItRODZuhbLjJ9jbNtiklUICGHey1XqNUKrphXdp30165mc/bVsBmDN/68UkwJr6vxA2AvcDfdji+9eOTeP+1rdPFL/SabNT6ejEwPZeDaTmIRqQqijKBEBz14pLpuZy/r4X9jW44yBQMX8SMA/irb76CX/vIPhwc7arbE5uhMy6jrzPqs+5qC6a5ooldOxLojMstXdewPTmIqvU9IQoKnHu6K4LqnC9a2NEZQbZg4TuPn8bwjji4u5Z+4NoBjJ/PwXY4JIkH5mIFxTgZU2HZDno7osgUDP/56EpoKBu22/lunCR7Di6yTIWvN3NQ1qvzgUarenc6gs/etX9Nz+DjL01hbDoHgEOSaOVzucVaQkTRIV80MdKfxHuu7MbxiQwmZ/NiLtvx9GREbKO4MaGmSCAAJmdzeO3t2arub1hskYypyBYMqLLwk1YVCgqCfNHEo8+OY6Aj6t/Xys10fMakBxKIsYKQZYKx6Sz+x/2v4jc+eqASw7jH0E27Sk3cc8ERquUcYE7Da9psTdk3lIYikVAmKVB5DgzLAXdsFIs6PnDdTjzx6rT7Wer/5gPX7USxqKO4jmVmLXvlRU+wPSr3/Pw8du/e7f98fn4e+/fvD/0by7Lwh3/4h3jooYfwh3/4h/jc5z4Xerwrrrii6nh9fX0X9FlbUmt+l8Jx2Iac/75dHfj1gPCJ6c1+SBSdSUE14VwoXQehytT1hxT2CV5ZynE4mMRR0G3s7I2jpFtYyhowXZsFzoXABCXC/gKEIBaRcX6piLPT2YazIBFF8oW0VoNEgZ6OCJazBn7w7Dj+xftH8T+++3NB50b4RqDIFN0pDaorpMWY8PMNIphoB//e25BpTXVOkalLdRWVu3RCgcOAoR0JDPbEYdsM+3Z14Hfvuw7PvzWL+x8/A02RfKuU4OkWShbKho3FTBmpuIqYOzN2br6ALz9yAp+9az9iEdn13qyfzVVkcR9VhSMekf1Fs5XnaLQ/4TIahL1YFbU+8O+GVREs4W41XJElaCrDUtbA469MQVUkmJYDPeNAU4RS6qAr1rdvV0fDz+Jdp7D54Va+B7Uzd4osNpyxmZx//RqJ4dReI+87860n38H0QsGnx0mUoMdlPoS93hfUKQu1zuB5A1j1NbXn2eo1GZ/N4fxS0VWfJTUbXGvfv9WwUetRGFSJQour29pjW6yRDFX+ezXYzGu0Gt5te+XFvJYXgmffnEHZsH02UHAjIYRAoqK79uwbM7j1moHGBwrBhVyTC11f14KN0oFgnCOT1+FwjlLZRiwSYP8QUQK2bAeSRBDTJP88YppUtU/qho2lnC46lURYODEu6Myr7Q2N8Is37xZiUxkdmiL59HsxcyvhF2/eDeZwNHZKbh3B9d10Va+Fm4o72gahhm3a3LfnPDudxS7XUvB91w3gidemMTVfgOMw/xoqMkUqpkC3GIZ2JPC7912HqfmCf9+yRRN//cDP/Tlribpq3zXwPodtMyRjKgZ74v5one3whom5RIHfvOcArtiZbvkZZJzj8VenwCFEzLynyhtvsxyhKaBIEu49MowP3jgEVZHwqTsP4LW3Z/H66QU8euwckjFVdL4D3uWci8TTdmxk8wbsXvGZamMLLzabnC8IobuOCKJaJZFOSQTLOQP/9JNT+PW7r8JIf+X5H+yJi4aQq7dC0ODiuNc1GZOxkjerjjXYE0efK5LXIdWriXsuOLmiuep1DVtTYpqEiCbBKtXTxGvvpff3n7lrPxhnePqNmaqmFqXA+98zgM/ctX9L1vOLnmBfddVVSCQSeOGFF/wEO5fL4fjx4/j0pz8d+jd/8Ad/gB//+Mf4b//tv+Gee+6p+l13dzdGR0fxwgsv+EJntm3jpZdewr/6V/9qc0/mEsPFEiAKCp/kiya+98wYFrN61dyQT+t2Z4NVRaoIN3AOyuHOrnBkCiYiqoT77rgCE3N5fO9nY2D+kLNIrpPximppK0qlx8eWUW5BcRIQFO3phSKSUQWzyyUkogo+/v5RPPj0GGyHuTR3Imy9JGE15amFcgCW5aBQtsBXoXpX3s/dJNzigUdJd1zLK2/DtmyOeLTeN5MSgluu7sezb85iaqGIGOdVVW/GGLIFE4QQdAdE42oV2X/3vuvW5Zm+2nM33J/Czu4YJheKftW79jrIkhgpkAgBQ4XhIATzDP/ZScUUEKIiVzShyBT3HBnG7YcGW3rO1yLGUXt+vhWJImhgQUs23XTwrSffwR9/dm1eryXdEkUCRYKiiEr5SsEMtaBrpNYZfL9WXrOea3IpqY43AufVHtvmJaRE3kYbHoIqvKFwC5jLOX0LP5XAetfXtaCZredaklj/OEsllA0bxbKFfFkIOXk2jpwLga/Bmj2v1s5I2GkBshvjeBosXSkN2aK1bh/wqCqYeyVDJCISJRjsTeC+O8KtvdaL4PpuusrRdsjsrm7YSCVUlA0L+cBaTwnBfXdcga8+dhLFshVaELjnlmHIlFY9H+OzOcTcuWLP3pNSHqp+DYh4IVs0cXJiBfuHOzHYm8C5ubzotlPis+Jst3M+tCPZcEa4Ec7N5ZEpGH4sJ+IyXlE1JwS2zRHVKK4YqugKUCo0ZxyHCcE8QkLpykHRP8Y5JmZzuP+JMyiWrarYDO77EgC5ouXPrudLFgplC7bDUJwr4K++80aVGxAlBDfu68X4bN4vTDTCSs5Axn27yfnqYzVTE6duFvy1Jla5zbC7L4nOZAT5UqHud8HPq6nVXu2fvfsAfu0X9uHR5yawkCmjtyOKu48Mb7o1VxAXPcFWVRWf/vSn8V//639FV1cXBgcH8YUvfAH9/f2488474TgOlpeXkUwmEYlE8MADD+CRRx7BH/zBH+Cmm27CwsKCfyzvNb/5m7+J//yf/zOGh4dx7bXX4otf/CJ0XccnP/nJi3im2wsbtfGsF8HNVZZonV8mAJ9amooLO6GoJqPL9YcUXpqiyznUG8eN+3sxNpPDT1+ZBqXw55OJO2OcL5lQZUFnXk2p9MT4Mn76ynTdhtEMpsWwYhtQFQlvnl3CNXu68e9743jg6TEsZHWAcSgKxUB3HNeMduHNsWXfuoRxDstyYFjNK2petc7rrDuuorrnJ+pdFzHDQ9DbEfF9M8OS2jCfUttmyBWFUFkt3cy7J56N09R8oeExghtlrfDV958Zw9RC0Z2ZJuhORXDjvl4cHO3C7r4kTk6sgFDqz6LXglIgGVVE1ZWI5gGlBIwxZAqGa5kmutqci4W3Ox1BpmDi5ZMLuP3Q4KYWl6qsSPKG36kQN1AorE/OFXD01Wl88IahVY/nJeyG5dRtqqpSr9LpX6cWAtjNCHIvRHV8u8EX8buElcjbuHzhqfDWqV564OLHXalIyC8vbTRT7g4rSrZ6nG5Jw1JOJBJLto6utAZFoigZTtWeF9xjbtzfi8WsjqWsLkbfPG0RNxFJxVVQStflAx78fD3piFu0FyNEJX3ji5jB9d0KaFbUjrTlSyYkSiFLgrIcRK2FW9lwfE/kRjHo7r4kdu1IYGImD5sxQa0OWXspEfui1w339sb77rjCt/70CqQcIlZKxpRQN5LVUCgJETExJy4SS8bqP1ZEpdjdlwTjHGMzOYzNFQHmYGdvHB0JFbNLZaTiitDUcJsTlu3AtBlG+lMolS38+f2vYWqhgLyrTTS/UkY6riKiyS69XlDnLZv5ibVV06XlnNc9/wdHu/DYi5PuWFTjzUzEnuLfRYeeVB0rTE1clSniEfG8FMuN1cibgRKh6P6PPz4tlNkRcn0VCapcH1OokrTpVlzNcNETbAD49//+38O2bfzRH/0RdF3H4cOH8Xd/93dQFAVTU1P48Ic/jD/90z/FJz7xCTz00EMAgM9//vP4/Oc/X3Uc7zX33Xcf8vk8/vIv/xKZTAbXXHMNvvKVr6Cra/MTx0sBG7XxbBTC/DIlSfgbZwsGdJNBokIBU3IpNDFNxodvGERUk/HSyXk8/OwEsiUx9ywsqSgcxkAB338wWzR9q4JGvo5eMmM7rXWvq/9WzEc/9uIknnztPPo6o7jt2gGxKHBgz2AKw/0pUEJw5027fW/vn748hZLDGw8VuSAEiEdk/OqH9yKTN3xPcEoJZJkiZsuwbAcEgCIT5IoWHnnhHM7NF/yEvraYEnbdu9MRLGV1nzpei2AH8po93eH3LmSjfP30Av6/77/lJvDcr5jmihbGZ/N47MVJdCU1t8LP0ZnSkC8aCDDBoUgEXakIKCXIuoUAVZHgOAzLWROmu6E4bgnZchgiqC4MHH1tGi+fXNi04lKhZMF2OAzT9jsVlZtYeR6Pvn4et1+/ejd9rV7YFxu1HZtWmQ3bHV5wocoUmqIKNoIlOtvmJaNE3sblhJsO9vkqvApB3XfRZmKE56aDFzY+t90QZBF1JLSGLKzVgv3Q4ygSeghBpmDAtBiWswbScQUjA2ncfXgX9u3qCG1gJN39tGTYvhWSKgtmXnQN7LpWzjOiAgnOWz7PtSDo+WzUsPyCY20OAzJFA9fu6cFwfxKsJnlbK4MqaCemmzaSstj3s0XTdV0hSMUURDTZL+xKkuPvjQdGuvA79x7Ew89PBAr81I9V9g93Ynw2t6aieyKmQJYpZJkiU3AaCs6WDQc/OnYOb44tY265BOaO+HhsKMN03PnyetHaM9NZ/O333oIkEchU7KcUgGkzLOV0dLvxkHcDOOfIFo3Qzn5Jt9Gd1qCbjv9ceIWLqYUCJEp8K7Rm4BBWXIlo5bv0K7fvgaZIiGoyJEpgOQwl3fbvDwCcnsri6GvT+OD1qzcWgrj9+kE89cYMpuYLoaNauuXAdBycmFjZFjGQh22RYEuShN///d/H7//+79f9bmhoCCdPnvT/+8tf/nJLx/yt3/ot/NZv/daGfcZ3CzZq49loNFpsT06s1CVvu3YkcM8twwDgL7aqLIG7tCFfqAvCdoACYkGyHD9xbOTr6CUzmiKjSFb3TQxD0u1ynZrM4uS5LKKamP0NJnGUEOzuS+I7T77jJ4VBe4YwqIqE3X1J3HK1sEoYHUj51yZXNFE2HBBC0JlUEY8Kwa+JmTxOnstAUynScS20mPJ7nzpUdd0ZB/7mwZ+33IFsZaNknOMrD72FTEEo+XsVfA+cC3r3ZNkCB9CbFqJlyZiKfMlEtmAKarxLpbJt5jMcIirFSt4Ite7IFU0orhCbLFPkiiZ+8Mw4GOdVxaXJ+QL+98Mn8OEbBv1O+nqff++6WDaDFCIcxCEC3UzBaCkpvtQo18FAqFVmw6UG7vJuI4qEqCrDYUKYUTcdWK64SzvXbuNiQ6ZiLOa7R8/CcjhkCr+QazMxXnTPkeFN98PeamxUUbLRcSKajH5NRrFswbAc/MsP7cVH33cFstkSfn5mMbSBsVIwQYmwT4ooElRV8udtPayV3XMxiq/e+v53D59A3rJ8xezgekeoKCBwxnHrewbEfh+yIq6VQVXbjDEs5ndKOxKVMUAPtXtjszjzz+9/bc1Fd6/YMDlfgEQpWEhWq0hCiPbBp8cQ1YQVKgOwsGzAYW4HPa6gULLrYhjqdqQtm6EjoUBVJZAiRKGeVBpHfZ1RKDIVQl+84mMNVPdtODhyRSFOF3wuvP16KauvqUgcfMbOTufgMI54TIHhzmF7HWcK4a9tO8D3fzaG/s7YmpoZwbGClZweKnjGGPDA0bMgAO6+ebj1k9hEbIsEu42tw3buhoUtto0WRAD48/tf8wsFhimSS0IJJHc2mVICSsXm5o1kd6cj+NQHr2z45faTGcWdlSFYU5JNiLDFyJctv0tr2g5SMaWOIVBJ5iWUTQcUYrGtpel46pJaTWLiXZvx2Tz+4dG3sZTV0ZXSQN1gSVUk2ExUSR0Gv5sYVkwZ6U/5lLZiyURHQsViVm+5Axm8d2H063MzeZybzQufRymgVu4dF0LR1ivE5kqWb9eWjKmQJSoURW2GlZwOVZEwtCOBTF5HvmS7Mz/V1maya3mRLZqIaLJLwxcV9yDV2mFCgKxQtvDgz8bw+CvT6O9uvaNde75DOxLoSKjIF01wV34teP0Y58KuhaOlpPhSpFw3ZKU0oQBeqvDmzSKqjKimwHa8ZNuGtc3E0dq4/OAFmw8/NyF8sF2yVDwi454jw9smGN1IbFRRcrXjRCMyLFdMi1KyagNjJW+4c78MCVm5YHbPxSq+HhjpwoduGMSDT48BACh4hSpORHNDVihkStDXtbGWfcGY8J2pLH7w3ATiEbnlvbE2zgwyOlVZgqyIuGFqobAqo9MrNvzvh0/AdixIFL5AGXdj0I6EikzBguUwpGLCqmt+pQyAQJFErKobTl1yrUgEAAFzY6Vc0ULCtbUzXaaiRDxBOXHshUw989I7quQOQ5s2A+McjsOrCg933bQL3/jJ6YYq4tXnXdG98Z4xTuCK+VUn17WU+XzZwreeOIM//tzhNRXZD4x04TO/sBd/8Z03qn5OCHy3IMvhePi5CXzk8K5tUTRsJ9iXGS61bhgQnniPz+aqCgVBioxHoWGMoyslNjnTdGAzhs/evR+jA+mG7+UlM7o7y7xmcJEcBhdLy+ZYyhuIR2QUSha++9Q7+I+7O/x7EdEkv8pICYEsoaqTzbhIFj9260joPDUAFMqWP8floVi2YDlcqG26i7DmbkK1xZSybldR2pgrxuXYOlIJteUOZKPZ/sHuuO93LjafBpfPnR+3bJGkeJtmVJOFlVnOwJ2Hd+GaPd3Y3ZfE0Ven8Y2fnq47pkRdz3SICrBh2r7QSipemS0Xomi6sJEixLVWIy2PSzQ6331DHRU6E61Ukb2Zu3hELL2tJMWXKuV6PSJqlzq4KzoY1WTEIjJsm0N3lciddrLdxkXC3TcP4yOHd+HY8Tks53R0pSK46WDr1lyXGjaqKNnqcbwZ44nZ5g2MRFRBoWxBpnRD2D0Xs/h6cLQLP31lChKloplBKnO61O0KWDZDKq5u+Ht7MeHuviRePbO47r3RK4gUShYcxqpEsmSJwLH5qozOAyNd+PANg3jwZ2NVoqyqIiGqSsgWRXINCFHSfFnEfZ5ODHGTXg+VjjNBkAfFOFA2WbXYLxHnaZiOGPeIyii5RTTvT71PXYlJOZZzBqKa7D8XjHMwR6izqxGKbLF5/M84/PE77xnbszON/q4YJmbz/ux3KGWeC5G09VDFs+7Mu1fIICB+QYCD+64Ix47PrdkVYTPQTrAvM1yK3bAw1BYKvAqxaYu5a3/GlwOaIooGQ70JDDfpyjMuLK5kiWAlv3qBgUBQoYKsIA6EUpVNi8G0TBAA4zN5/OnXXsb7rh2AJBF3ZrpSlQyDpkjo64yGJnSJqKDkeDPTuiHmXjwfQu+TlQ3bT7CBSjHl+Ngynnpjpo7SZjsMhi38OiVCoChiXumjN+9GNCLjzbNLVUlTs9n+c3P5wNl420eTC8tRl4w4DoeqSrhmT7dfcOntiCIWURDThC2Y5TC/euoLmXBBi1IU6p935eemn1yDEBCXsiWqzs3HJZqd70KmjJ6OqE+5Yu5piZk7BbrJWk6KL2XK9VYoBW9XeErkCVeJ3GorkbdxESFTui2Czq3ARhUlWz3OcL84Tr6FBgYlBB+6YRDHJ1YumN1zMYuvu/uSGOiOC3umRL3/dqZgYveOBPYMplvy814PLnRvPDeXx+R8AYZl+w0OD5bDYTs2JucLTRmdjHN0JDVEVRmyJDSChAYQF4lwII6hRMTYzI0Jmg0SVdhvldfYDkMiqqErFUHOjfE4xLiHJ/b78LMToJQIqywnXITTdkQDpajbfkw5tVCEHmD5rYaVnAHGBHNhqDeOkX4hnPvFh47D0esttSrXS/zz6GvnW3Z08eC5IlBC/DFD26kfq3x7YmVbrHXtBPsyw6XaDatFWKEgqskwTAPBr/ZyTocmS4jHGs9dA5VO5MxS0RfPWg0caGit1exvCIC55bLvf7iSN5CKK1jOMdghM9iUirny//X9t0QHGKhK6JayOsqGg2LZgiJR32OTErGIeyiUTF+EAnCLKZTg5VMLdZQ2x104HcbBLYaYJqMzqeHq0S488sK5uo7tL94yjB82ocYtZcp+0uz9zrsWwdOVZeJ7oPusBDR+NhMxBbIkPF41VUIEQpXe92F0L2Z/dxS3XTMgBOzcZybo4enRurz3XW1cohUtg86Eiq6UhpJuV1lr1arNtoLLiXL9bkO4ErlItNtK5G20sfHYqKLkWo+TbLGBcXC0C3ffMnzB7J6LWXxt5b3vvXWkah/fDFzI3pgrmkJ0zq2AB321vc5o2bCRK5qhf19l32baYIxDVSSk4wpyRcst3gO2F1sQYaMK3ji19n7udWeDlG1ZEoWbqCZDUyiWcwa60xHfkxoAXj65gInZPBSZwGyc58JxGL7+2EkhsmY5iEcU3x2jFXAAmYIYJ/SesQMjXfjYrSP4p5+cCu1eB+O9xay+5lHUoCsCA/fHKYOjhgDw+jtLODG+fNHjonaCfZnhUu6GBVFbKDBMB/mSWTc/YjschDDcc2hnwy9b7QwOAQElfH0U8VZACFJxBSXDQUzjiKgSdNNBMqYgU6heyMViwmE5gGGJ1bK3I+Jv3qoi/DPPL5aQLZj+3HFFubqyADEuNpSI67dY1G30pDWs5I0qSlsdbZpzaKqEuaUyHjh6NlQw7SsPn4DlMCSi4dS4VEKFboljBm9Q8BIrMkVnUsVCRvefP8Z502czrGAU1WREVAmm5WAlb6AzqeGOQzuRjKlVs+WeEJXXa3A4hypT/9o2G5doRcsgX7Zwz5FhX7Fcb8GKpBkuR8r1uw0VJXLhZy6CGzHC4DFO2sl2G21cODaqKLmW4wz3t97A2Ch2z8Usvq723gdHtybBWW1vbGTLWShbFUHKmnXXW4cdxlEo18cAzezbFm0GuONgXgdb5NXhzKXaRoOXWAOo0paRaXVMFI8q+NQHr8Qe17/7xPgyimWrQhNvAOp6sM+tlBFRJOzoioq4JarAsIzmF7sGUU3C/uFO/79vv34QT752HpPzFd/qsAjFE0JbC4KuCLXH9gsTLm3+Yog116KdYF+GeDd0w6oLBYYvEiG5qmSEiLmoiGvL9ebYMu68aXfdl622E6mbwsuQEJGkBtWAJXfIiAFIxWQUys19AxuBMy7UFmuSsKmFgi9A4y2AHN48U6UbvZwz/EQSACilSCdEJ9ywOOTA3/oFB1IRxCjpIpiPqBJu2NuLH780tSptmlLSVDBtMaPDsBxENQllQ8wxBxVSFbdzzjmgm3aVKIq4n0J9XTcZ0nEV6YSGfMlc9dlsVDAqlizf7mt+pYy//+FJEPcz2Q6HY+uIRmR304M/z5QOzIs1G5doVcugNx2tU2m/kKT4cqZcv9sgvutBJXIO07KFErnDwJy2EnkbbVwI1lOUDEvGWj3OxWpgXMzi63Yp/DbaGxvppNxzyzASEXnVgibnQCJSnSqtZt/mdYG9ZNpLoMPUr4FKvBeMiUQzQswxUwL0dERgORx6wQyNiYIJv0QI7CYnFhSFtR1WidMkumZh30LZrupEU0Jw7Z6uqgQbqC4geLPjYYWLZvBcEb7z5Dv+Z6z9qGnX9m47WJe2E+zLFNtlUbwQeIWC7z71DsZn8n6ypCrV3pKEkIZftmAn0jAdZPKG+OLWlDRlifhWE4QLaznObX8x8iy2WgEHRGc1pcFxuJ+EPf7KFP756TEkozKyRQum7UB26ctBiwvGuFAjJWI226s8ClEz5oppiUVdc4U2yqYD03LAITwDd7tWZ9GIjMdfnV6VNs2YoOPIlIQKpskyQcngWMjorviESMK9+2DbDFFNxkePDOPY8VlMLxaFMIfLI4qoMkBQ5UnZ6rNZWzDyLMtAuF/d9CrJpuVAkShMh4G4/CmHcahKtc3HauMSa9EyCNv4w4K4Ni5feAGPp0TuMDGvrZuiiNfq2tJGG21UYy1FyWbJ2IGRrpaOc7EaGBez+LpdC78nxpfx94++7Y9peYKynojpe/f31nWPw3BqKov3XNnr//dq9m2L2bIvmOaNsDFWv44TVDrVhBBIhPvUaofxKrX/O2/a3bRD//DzEyiWLagyBQMgkWpXFe/9PCE671deXKQqkj8eV9sAaQbOeR3Lb/+uDjx67JyvTxTsLnuuOIRUvOHXgrtvHsbsUglPvTFT9XNKhIBtOqGBcb4txJrbCfZljO26KK4FB0a68MsOw5d+cByRiAxZonXeks2ovl4n0qEMy66XctiC66kUMs6hypKvmElaWZ1rIJJyjqxb4faSsCsH04ioEhyGqiQXQJXYBYf4/cJK2S8mSFTMIKtcUE+FRVmli5wCfM/OT33oSt9Lm3FeRWlrRJv256jcxTEoQKYbNopuJZJzQWPiEPZkQrFWg2EyjA6m8cEbBvH+9wz4G0U8KoODoFSu3zSaPZu1Cer+4c4qy7LFbBm2w4VyOfE2DeEbyQFEVIqedBQ37OvFE69Mw2bMt1lppdtwIVoGjYK4j902its6N9bSpI1LD57tV1STA+JoQoncbiuRt9HGpqCZaGUrjhJBvBsaGJc6GOf41hNnsJwTlOey6QQK/wp008GbY8v1/OwQvDm2jE/czv37txqDzbYrNqTe/zybLC+BVmWKvq6ov6Z7MZZu2Lj90E5QSurU/hvFREdfncapyQwY4ygbjTvQQd2bYIPb21M8RqJutiZ0RiDGnWpZfsm4inhEEfZdLiMU7kw544JhGovISK5TYf6OGwbxxtlFCKV1MZseVSlsJkYcxfVszaVlM9FOsNu45JGMq1BVSYgIhXQTLcsBB8fsSgmJ2eqNLhFTIFGCTMEE44IiwxivErsAXLEv1/pJ2GEF3Y3DlcMbQaIUHMLCoiOh+UmYl7SNz+SrklyggdokqSSxqiJhuC8BQkhDVU/TZti1I+En10A9pU2VaShtusoGDdUCZIKKLQoHxK2aSoT4XolLWQPdKQ2f/NBeX/3xQgo7zboM0YiMQtlCTFOwkjeqihSA+Fy2w5GMycgWTVw92oU9A6k1dxtqr1tMk0Thw2IwLAexiByanDcL4r7yyAkkkhHs7omt+9q08e4Cc8de4lGhRG66SuRmi0qvbbTRxupoRbRyrTOd74YGxqWMo69N+zRlSoV1a6XwL+yuMgUh/NosoSREiHkFGZDNGGym5bgNEi8e4qDwutWVbD4Rk0EpheoGep7y+lBvHPfeNtryc3ZifBnff3YcDhPxmt8FaQDvN6JbLdxZgm+VjqvQzXJL780B9HVF6xoJu/uS2LUjgfHZPBwmmhYeKVSmFIQILaGhHYmW3qcWu/uS2NmT8GNd3XSwmDWEsC3EtYxpctWs9sXAu9MEsY3LCl5iWnSrZUGUDQsLGR0l3cZDz07grx/4Of78/tdwYnzZ/9uOpCoWRPdvKCWQaxJoQCwMXamI8GSWKWSZhvv8NYG3kHmd8hv39dYlu5oqVWzGINbKsFlv6nVlHZGs37i/FweHOyFTMQdkWg4YF/SfTMFs2JH1KG1DvXE4zPMv5FAkgu5UBBFNhqpIkCXRAZZlwRIAxGZiWqIyrCoSulMRQVHiFbEmQoCP3jKC6/b24kLhJahTCwVoioRUQoWmSH6X4fjYslAhJ5VqbfUN8K6d2FgKJQsHRrrwe586hP/7E9fit+45gP/7E9fi9z51aNVuhXfdOl3htPmVMlYKhptg11dOa4M4VZFA3Tl2b5P4zuOn2/ZNbdTB0wZUJIpkTEFXKuJ2RNpoo40LRSuild6YWRsXB4xzjM/m8ObZJYzP5pruk4xzHH3tvO/J7RXaKSG+cKsXLyZjSqgIl0dn9mKdIAOyWczpuNZYiiKhKxWBKktuw8Jdw90mhm6ylmO0ZufpOaMQiHntVpo9lABdKRGDyDJFybD9z0IpQVStb1Q1QjCGrRxfxLKJqAJVpuhMakhGZRACfwxxIaPjL7/1uh+LrwXe8SOqhMWsjqWs7seh3rgVOPC1x06u6/gbhXYHu41LAo1UIIEmQldlCyt5QQ/qTGiIR5VQytcNe3sxPpP3RSW8IqAQBgM0VUJZdyBRAilAI5YoCcxgo6Vkm7jnokgUmirVqWweGOnCb330Kvzt995CSbdBxLAKgHqKkWd5JUtivuf7z4yDQHw+5ipfUkJa6sh6lLaJ2Rye/fksjp2Y9xdb73xlSmFT0VGzbAbZVW/nXPj9evPW0YgiFmsmKqMlw0FPZ/SC7zeA0C6DIlPENAm5ooXn3poFIZX7WJdkezPl7mf2KEQX0m0omw40RRIUfZcuvpI36miFqwZxURnT8wVMzOaxq3d9ld023v1o11/aaGNj0apo5cWe6dzO2ExdkdVm42txbi6PTEG4ytS2SsS4mBiz0xSKw1ftwKMvTALgVUVLj5UXjygAqaYbryZmR4iYnY5FFEQ1Gabl+MJnlAqmW09HFJmCUceaE6NuuZZGC7yYQlUoinpr11KiYlbZsITryx2HduLNseUqBt/ozhTml8tYzDU/KEG1FWwQQS2CyfkCimULHICqCFFemVI/Fv9Nia55PO7ASBd+/c59+NvvveXHmhxCdygdV6Gp0rqYJxuJdoLdxrZC2CJ9cmJl1cW1VljEsyqghKA7pSHqdhTDKF8HR7vw2IuTMCwHjsPhWiKKDqk73yxRC70dEWQKFWXrkf4kelIRPPPmLEDEwglUFBKDCbdEAU2VRSUVQuyidkbXO3fGgY9/YBQPP3cOhulAlgjyZcudXxGiGam4CkWisBxWJcyWSqqwbYZC2YIsUXz4hkEcHO1qaf4reJ09b8SFTNlPHocHkrhmtKtqMeaoTq49eLQp0xKfP7mGWZhGm+mN+3rrElTPo9LzvJ5ZsqEqEggRBQDLdgLULEHXUiQC03Yw1Ju4oCAg2JHuTkeqkuYwWmErQVzZsJBvB3FttNHGOmAzhmPH51zti+r5zXfD+20W1iJa2UY9mumKHEnHMDaTQzZvrGsWfT2z8V4hRJEpLIdDri1oQ8RoHQkN/+IDe/DW+Aqm5gt+0wIAFIkgpsnQTQd9XdE6OnMjMbvh/qRo7hRMcM6hu3ZUQfpyIqrgV+7Yg6gq18W6f37/ay0XEgolC7bNYNiszqK2FtQdcfSEcYd6K8cNCqgtZMp46eQ8ik1MtAmpCPuSJu95YKQLe3d34E+/9jIcR9DyVff9vfuTKZh46NlxHDk01PhADRCLKkLIV5NFw4uSqu9vkHlyMcY12gl2G9sGYYt0MqYiWzDAOF91cQ0Ki7wzlcUPnptAPCLXbZi1lC9vXmRyvoB4UhaVS1cgDBDzN7t2JPC7912HqfkC8kUT+bKFRFRBoWzh52cXoaoVxXKvi7mc0/1kyWFAqWYeZCln4OTECg6MdIWeeyqmAHHV78IzLgQlvGRWN+xKcg2gULZg2sLmqjOpIVMwcXxiBXe3QDmq3cTiUQWW5SBfsiDLFPfcMozbrx8EJaRqMY5FFXz3yTOYXiy5YhbhYl/D/a0lss020+nFImybIe4qTwb9uj0KmOcjbNlMqHeC+LNJ3ky5TCVE1PAZ6bVgLbTCkf5US0Gc7FKA22ijjTbWgkdfmMDDz02gbNg+c+cbPzmNe44M4+6bhzf8/R55bgI/eGZsy95vM3EhopWXO5rt2f/f99/Ct4++g0xOh+3GNX2dUbx3/w70dkRXTbjXOxufiCmQJQI5qiBXNGEzz3YUAAdsxkFAcPt1OyFTivvuuAJffewkimULmiKBQ9zzTNEEAbCYFXTm2kS3kZjdyYkVfPWxk1jM6i7Lj/uisp6K9j/88CR+/a79uGZPt38dmymehxUSEjHRXbdcRqWw9apX7NEUik/ftR87u2Molu1QFuhIfwonxpfx2IuT0E0bMVVCuSZmJUTY1wLwbXH3DDZPXKfmC8gWTaTdsbjq44k4aWapiLPTWXQn1hb7FEqWsLx1hYJrcbGZJ+0Eu41tgYaL9HwBjHP0dkT8L2ezxdVbKAolCwTw/Z1r4VHI35nKolCycOO+XixkyigZjk/3sWrUpGVKUdZtPPbiZCURpgSmzWE6NnrSGjxCsm7YKOnNv9QLmTK+9NBx3Hl4F5587Xzdua8UTGgKxcduHcZTb8xgKSsUuSml0A0bi1ndT66Je+6mzbCU09GdirRcvbMZw3efegeFkulXGAHRcVcVQbN5+dQCbr9+sOoae7j3yMiG+H6utpkuZYXXtm0zKDKt8uv2LMUIATqTKvJFCyCAIgNlQ8wWSVQoM+/akcCN+3vhMDHTtV5117XSClcN4so2RgfTGO5Pgq3DX/1ioNnoRhtttLE1ePSFCXz36Fk4TFgpeolEUbfx3aNnAWBDk94HnjyDbz9xZsveb7Oxlf7VjdbMS3EtbbZnOw7DQlZHvmSityOCWFRCsWzh1GQWJ89lEdUEM241qvdaitgegnttV1JDrmTBshnAKy4NQzsSfkwTSmd256U7EiokiTZMdMPGy5rRlzsSGuJRGYsZ3Y9fAayqeB5WSNjdl0RHQkO+ZAl7VFe4zBMU8xh7miojHVMxOpBu+V4CqFw3F54ukOc209sRQaFkNY2jwuIkb4SQUuLHSbmiueYEe7szT9oJdhsXHY0WaUAshgRArmghosoV26omiyuw+hfPo5D/4LkJYaHgdstjGke+bIWqSTcqAhiWIxLeDEcqrkKWKVbyxqoz2ZwDuZKgx0gSQWcyElqhfeX0Iv7lB6/E1x47iWzRQjwiI1Mwqux6PHoMhajOZosmejujq1bvTowv4ztH38HErBBvMSxdLOoxBdRVVFdlipmlYsNEfTXfz/3DnRibyWFsrggwB4M98Sr/Ri+oyJVMzCwVG26myZgCIyvoVsmYUmdl5lmKae5zYpgOPnH7HiSjis84WMrqeOnkPB5+bqIlClYzrHVxXy2Ii6qSr7TO6mrQ2w9rnYtro402Nh42Y2I9c4Up/bWTAAoBLIfj4ecm8JHDuzaEvm0zhu/89BTYFr3fVmEr/KsbrZnB0atLaS1tlgDn3CYHIJKyQslCtmiAizwXtsOQUtRVqd7rmY0P7rW66aAzqQknFdflIx5VcN8dV1QlhB6d+c++XqEza2olRWpVTd6Lac4vlyBRgq6UBlmiPn2ZkIrmihe/js3kVlU8D4t1KRFd+H/88WkhQOtKlxMOOO5MeSKqVs2QNyrkhN3LzqSGxWzZ97MGKpZelBAUyja+/MjbTZ/XYJzE3Ng0mLRLlCCiCmbmWrHdmSftBLuNi45Gi7Q3D0NcCoxpM2iBRKYZ/aPZF69sWL6FUzDJWckbolJ9ZBi96WhddblRpbanI4KlrOHO29iwSgy2wyBLgL2Kmw5jrghYzQwvUF1EiEdkf/OfWijCDMzcUCoWZc65T9UzLQelstW0eucVDPIlQ9iCibUZhuVgPuOIDYRURMKOjy037IQ3o0r9+f2vYW655IuG9LkLMYCqYINxjpJuC5Vy1CesiiI8vkX32vIp6bWWYkDl2UjF1CoKlkd/ulCfU2B9i3uzIO5jt43iur29WFkptvwZLhY20jO2jTbaWD+OHZ9D2bCF80XIHiJTMU5z7Pgcbr1m4ILf74W35lAsi3VrK95vK7GZ/tWN1syJmTxOnstAUynSce2SWksbJcC+VRUlvlVnMKkigP/fHQm1KdV7vR3K2r3WK1wM9ycbFi6m5gvIFJrTmZuxAv0CylIJJcOGYTqiC56sP54sUzhlG/mi6SueSxLxz5+4/3PcWEKTaWise/v1g3jqjRlMzRfgMFaJTd1GiW6J+DJfNPHEq1N4+eRCaCHHYbzuXkY1GT3pKLIFcf+Y29V3GIeqUCSiih8/N3pevThpYiYP3bLBQXy6PmfCPhYA8uW1d7C3knmyHrQT7DYuOhot0kHvZY+WEkSzxbXRF8+yHCxlBQ2nO1VZ9IJK1D97YwZ/+Jkbq6rvq1GVOpMairqFT3xgD5ZzOn50bBKSTJAttDj70eD7HywiXLOnG/uHO/H4S5N44KkxaJr4ne1wOIyBMVT1PVfyBnbtSGBoR6JOlRIQyW2hbMJ2PN9r92K7YJxDoW4Cyzgef2UaowOppt7QwU0nGFAkogoiqgzdtDG1UMSXHjruv4cXbJTd81zOGiBpUiWaBoj7rbkFkJ+9MYOJ2bxPv1JlinRcRcT9m9pnY7N8TtezuDcK4sICiO2IzbiWbbTRxvqwnNPFqt3oq+YWYpdXUQRuFYtZHRy8Tp15s95vq1Db2Ts42rVh61ezNdNmTCQ3DH6hdruupbXXKB6VQxNgL1ZjnINxgNfQ+Tz7Ud2woSpaS1Tv9XQo11owuRA1eS/eKZQs2A6D5TC3C82wsFJGR0JFyqVeA5UYJV+2Giqei28Zh2U5UOXGsW7tDLmqiGuVK5gwHWGJ9cUfHEfZsEEIQTqhIpVQqxLju27aFXovo5qMiCqhpNvQTRvpuIpcyWzIuAwb2/zFW4bxV995Aw4DZEmcGecAA4csESgyxQNPnMHv/sv3hF73ZtgK5sl60U6w27joaFSl9L60hiW6qX7CjdYX19ovHodIyDoTFWXxWiXqidk8/uzrL+NXPnCFvzi/eXbJpxaFQZEpHIcjFVOxsyeOJ187D9tehSMeRANGcG2ieHJiBc+fmINpOzBtBwAJJMc1h+TAUk7Hf/7qS8iXrWpF7v29mJwvwDBZUz9JDmHDoCpUUBFb3OxrAwoaUHjskCimF0SXdmdPDNQtZMSjCvIlE4bFkC0YgQ49gSIR/37ffmgQ779uJ/7s6y9jdqmMVFyponKFPRvNCiSASNDPzRfw/FuzuOXq/paDmfUu7hdiC3axsd65uDbaaGPj0ZWKiLC8zpPQhWtZ2JWKbMj79aQjbtjfIKff4PfbCmz2uEujNdO0HNiOoPbaNSy97baWNrpGyaiClYJZlQB7nWsvshAio6iijANA0bCRdMfqVqN6r7dDWbvX2ozh+bdmQ5XvEzEFEiUo63aoKnWjpo4X7xRKFgyvS+uqbHtzy941ikUVX3NlsDeOhBtTBhXPGef+33owLXHOYaiNQzzdGdNhUGTxHK0UTP+z5oomFIkiosl+YvzyyQX0dUYxvViqK2YAolDQ2xFFtmAiEVXXtPfHIyJJJwRVTj2eaK8skQuyKN1M5smFoJ1gX6bYToIazaqUqZiChazLs+bc92RudXGt/eLNrpTw0LMTqypRzy4JAbJ0XEW+bME0HZQNG3NWCZ1Jze+UevBUq71r2d8Vw/hMrqXz1xRRRIhF5KYV2mBHWHYtuiQKsBAaOiXC6zBbNFE2iujtiECJShVF7oUCCmUL4BV7sbAk3ROi6EhocBjHZAtJKOMcz781g/GZPGSJuH6TlU3KK2SAEFgOhxYoFnckNCxkyjAshvmVcmXmHkAypvjU8qn5Am7Y24vH89MouVXZZhtvo8p0sLjCOMf9j5/Bs2/Orimw2q6L+2ah7RnbRhvbBzcd7MM3fnIaRd2GQlC3h9iMIx6RcdPBvg15v5uv7sM//fiUEBKVNv/9NhtbMe7SaM30WXluMbmWpbdd1tJm10ho3HEsZXUxwqVQ1xpTnJPsjhI4jNUVZRxHUIQ9HZxWqN4X0qFcTWm/VLZgWA5Krpc1IaK76vkqF3XLp1sHhb3OzeUxu1SC7TBwEF9pGxSwA4HVSsGALFGUTMePUaIRuVrx3GFgIbEYAcHXmjyPwTgkVzTxz0+fxXymjHhEgeWIuJlSQUH3dHoimuwK5AJjMzncsFeI/TYqZty4rxc/fmmqqXhw2PNaKFmghGBHZxS2w33mIYFwx2Gcw7KdC7Io3Y5Ni3aCfRliu4kTNatS6pawnfIS3bLhrHlxDX7xErPCvmE1JWpNFVW9fEn4X8ciMswVBtNiWMyW0ZOO+kk250IYbagn7i+499wyjL9/9G3ophO6WHqQKMHHbhvB0ddnmlZoAVR1hA3VwVJOhxOSFVMqLL5KRqDaScTC6rECZpZKfnW0mRibJIk5m2zRhGk54AC+2SQJPTG+jG89cQaTCwVfGCNXsqDKFD2dUagyrQoiagOKKgQp624QNzGXr5vbZoyjUBYLeKNnI4wlUVVccclZmiKtK7Dajov7ZmG7K3e20cblBJlS3HNkGN89elZ0wCiq7IgkSnDPkeENExyTKcUnP7wP//Dw8S15v83EVo27NFozg2NwJPjfLtaylm5W02RVd4+MDsdNkLyYQ6IEybgq4ivGIdFKwu3t+BIV/+44DIbFNpTqHYbVlPbnVko4MZEBB/c1bQiEJs1itgxZksA4x0JGrxP2chiHYTuwHQYp8NxTQlwtHnHWli2aJqODadx9eBf27eoA47xK8XwxWz9aocoUvZ0RZItW0+fRi0OeeHUKUwtFMA7opuE2p8Q1BxEz0JbNsJzTUSxbfoz67Juz0FQJqZiCom7BtjlkmWCwJ457j4wgGpHx+KvTa977veffcTg0RULZsJEtVLzBvWd/IVMGXFX1dwPaCfZlhu0qTtSKEvVGbB7BbnlMkxoqUZeNQFuYEEiUoiOhYdn1c1zJG+hTRUe4pNuIRxXce+uI/5kOjHThc3dfhW89cQbn5gqhDHCJEvzK7Xtw983DGOlPNa3Qjs/mqihmlBJEFAkFp54yxF0KkLdocvCqRFY3HTirSZy7iEdk5EumK1AmaIGRBknoifFlfOmh48gWzTrKu2kzzC2X0JuOVgURtQFFtmiCu9emM6n5NC1FplhcKeOBp866lCcVsbgMxxHJtSxRfPiGQRwc7Qp9NmpZEgCqiisOFwFDPKogxvm2m33bTtjuyp1ttHG5wbPE8rtzbsIWj8ib4kv9iTuuRLlkVnywN/n9NgtbNe7SaM1UFQmyRGBYQl9EDXQG17KWbmbTpNk1MkwHumWDcaA7FYEsCatQwxRjfVFVhsM4bId5+SwAsb97CbcXP62V6r0WtKK0//QbM4hpEnrSUeim4zPbPFajyRxEI1KosNddh3dVPnvNKXhJNuOAKlHce9sIbjjQj5n5vN8F9xpMxbLlXh/xt96IXEdS2LO28jyeGF/GD54ZF77jNTUuhwGEcP+cajvGlIj4UDcdaAqFJDJy/3qtd+8P/p3DGJZzhs8apYBPh3/0+QnsSEe2rajfWtFOsC8jbHdxotWqlBvRIQx2yxspUcciMrIFExIhYKh0WaOajK5UBJmCIVTHczpURcKuHQn86l1XYXdPrGru+sBIF/74c4dx9LVpPPnqNJZzBmwmKpx9nRF84vYrcbW7kKx27h7FzKEMc3lD+Ag2aP5yDhDP5wFiYbdtBmiV5Lv2T4ObX+VaASVDbJ4S8YoPEmIRGTGg6nkBgIeeGxd+jBC0c6dGdM1xODIFAzs6KuIYilQ9j2ZaFf/HIGW+bNgom44vdmdaBpQyRSquojOpIVMw8db4Mq4a6cLxsWXEozI4CErlyrUMsiRU1+ecQiTXQQXy7Tb7tt2w3ZU722jjcsTdNw/jI4d34djxudD50o3GR48M40M3Dm7Z+20GtmrcpdmaKVMKm4rOv2WzNa+lm900aXaNsm4h3yv6a6oMTQUSUdGEIETETVGNgjHAckRDQvggC1r47r4E7j0ysqlJ1WpK+xLlrgCXBEKIL+xl2gyOw7BSMGDbQmPH69wG4+aXTs6jJy08oTnjIDV6QYxzyBKFLBM89+YsfnRsEqblVBVCPnvXftz/xBnXrksw6lRFxDie4GvY8xhkLsSjshvjiwZRWB/FdjhkCVXz3YBbFwgEgqbNsLMjAsZQ9SytZ+8Psjo9xx1KCQiIiLspEbayZftd1dhoJ9iXES4FcaKtoNp63XLP/7lWidoHAQiv7rJGNRmqQpHJGbjz8C5cs6cbewbT6O5KhNorUULwweuHcPuhwVU78M3OPRFTwDjHUk4XifUqNsmsZmEt6haScRWmzdyuvSs64jHUQo5HXUobJe4iSAhS8Yq4RfB5AYDpxaKw+6Ke1YSYxwvCtBws5QwkXQqR5+styxSG6fhWFcH3KRs2lrK6f8piNsrziBSBnSwRnJ7KCqVKR3hdAoLyralS1Sb28PMTODdfAHMpYKoiVSmQA9tn9m27Yjsrd7bRxuUKmdIttcba6vfbaGzluEujNXN4IFnlg72WtXQrmiaNrpFnxSW5zLZgnEQIQSKqoFi23L1UaMzEVQWaIgmRLZnil24bwe2HBjc9mVpVad9FUPCVEAJNkWAA4EwU4euSUjdunlsp46O37MbUQlEUSSoM9Iq+DwDDYljM6kgnVEQjEiyruhDy2bv3479/5w3IlEJ1GQ3BWL32eaxlLnAI8TTeRLgWqJ4L9yBREed54BzQTYZEVKl6ln7vU4fWtfcfGOnC3Tftxjd+elqMCnDBrlRlwQ6NRxQQ4KLnIBuJdoJ9GeFyFScKm006MNKFP9zdEapEbVqO8JR2acNB2hYgOrGqKuGaPd0Y6U+1tDlcaOFgaEcCzLXykClgV7RRVsu1QYlYUEXVmPsWGapMfRuNCiVJvIckESgShe6IrrGn9hhtkoTa7ofyrgalBDJc+g+84wPd6Qg+9cErAaBqkeaoJNfRwHy7R+X2QAiFN0LlcFEpZ55NGecwAuepmzY0tZrS/nufOoTn35rF/Y+fgebSwmvRniNeHZebuFsbbbTx7sJWj7s0WzPvvGn3mtfSrWiaDO1IoCOh1sVJjHERJyE8TpLd63nPraN4+cQszi8VK0WFJl7Um4FVlfZdhF1v7zyB+pE2oBIH7eiI4ePvH8WDT4/5lHhCCGSJQqIEtsOhSBSdSRWKLMF2WF0h5Hfvuw5DvQlMLRSRWOV5DGMuFEsWnGa6NiEg8Cj7RHTfUYkpbbcFXvssrXfv7+2IIhZRENMkn/6uKpLf6PG8wd8tOUg7wb6McDmKE602m/QrHxD+gSXD8ZWoAbGgMM6Riiubvum2gqn5AggRC1KwK9xsKaVVNHEOx1Wn5C4VvjMpPBmz7qwRUFH9/NUPXYmIJuObj59BRJHqFM6B+udFlglgVe9h1Ju1gtioYpqMz969H6MDaQCoWqRjUQXfffIMphdLPnU/rOPu7XHEnd+xXBVSQAiSMM79DcNmXGx+ndGqav4tV/fj2TdnxSy++17+NW3PEbeMy0ncrY022nh34WKMuzRaM9ezlm5208SLnxYyOnTTRtmwocgUHQnVjSVcUdV4vW2T7TqrHNrXiw9eP4Cz09mLVohdTWlfzCYDhmmDMcW3DgXczjUAxe1C6IZdZd8VjIPuvnkYu3ck8N2nzmIhqwOMQ1FEh3YxqyMRbV4ImZovtPQ8AghlLoQVAMIQVSXopgNKvBiNhNq1yoEh7tpnaT3PayKm+Krymvruz0HaCfZlhMtNnKjV2aRQusuOBLIFA7rJIFFny2dMa7vub51dEsJrIYugJxYCiEokd7vS3N00vHw8V7IQ1STENBnggKaKeaOIJsO0hPBZUbcx3J/EHTcMAUAlCa15z7DnZbAnjlOTWUG5p5VNjBACxxEWEcMDKQwHFuXaRfreIyNVm4vtML9KTlBffPbOW3TZhRd5ULTOU8u0bFZXzW/PEbfRRhttXN64lMddNrNpEoyfElEFEU3ylZ8Xs7oQBI3IQvi0Jlny4oPdOxLYM5hGNlu6qIXYRkr7jHE/PpIpgWFxnF8sIZ1QEY8qfjwgUQKbCaFWXz9GpkjFFJRNBz3pCHKudddVI134f0e6quK3XNHEVx55uyV7q2v2dK/6PNaK3noIy6/DWI6EcERUCWXTAfVfJ17pvZYSIKat7gG+Fqyag7je4O+WHKSdYF9GuJzEidYym9SI7nJyYuWibLq1XXfGOcqG7dtLEPAqz2qJEl+F0UuuvZ+DANwRM+aaQnHvkRHs6IrhazXPAADoFqtT81zL83LvkRF8aUmoiDuM+x10b64nndDwSwGl9TDUBjumK9ahSBTxqIJ8yRRWMMQ9N4+65YrT5UoWqrYwd3dhTND6gxXYSzmwaqONNtpoY2NwqY67bFbTJCx+UiEhqopifK4o/KA//oE9+PqPTjWMD+69daTlrupmo05pPyDCmowp6EhqKJYtZAsmMnkDhulAUyVhncU4Sobt+3uDC7bcfMaBLBEsZnV8pca6Kxg/jM/m/EKI1ELntlXR21rmgiTRuoQ6TNCWUoob9vbimTdnq632AkjFVb+Tv1ENuEY5iGMzlAznXZWDAO0E+7LDpZxUrMXnca2zSWF0l4ux6YZ13eeWSr4ohcPFHA9hFQGxoGBFJbmGqNByQYvvSmnQTYaXTy2sSaRiLc/LgZEu/M69B/GtJ85gerHozwJJlGCoN4Hf/hfX1imthyF43fNFE997ZgyLWR3JmAJVpj6lnQeqz+mECk2VkS9Z1WNW7u8pJaEV2Es1sGqjjTbaaGPjcCmOu2xG04RxjuffmsXkfAGaIlXFT4LaKyNNCLJFE4mo0jQ+ODi6veJJT2n/heNz+P7PxpAvWehJa5AkkfQmYyoSUQVLWR3d6Qh+/a59eOCpMawUDPR2RJArWlXezd7oW5h1V1C9PVgIUZXqpLhR8rqa6G0Yc8FrIJkhMZanEq5IFKos4Y4bBtHfHau29nNPSlUoopoMxvmGN+DCYkpZIhgZSPne4O8WtBPsyxCXYlKxVp/HjZpN2spNN6xqbFqO37l2XOE1yxHWHhKFn8QSIhZXw3TcmWcxOBQUJ5Oosy6RirW+9o8/dxgTszmcnc6BE2DPzjSuHGqstB6G4HWXJVoVQPR2RlHWbZTcRT8ZU7BSMKFIxN1cHF9gxPM191gLYRXYSzGwaqONNtpoo42NbJp4cda5+QKKZQvFsoVC2WrqsnHNnu5LKp6UKcVgTxwO4+hMVpJrD8R1SymULcwul/1GjapIiKiyb92VLZpVzQJKSEP19qpCSN4UM+sUsKz1Ja/NmAvpuIKFrOF+JnE+niAsdRPs/u4YdvclMdKfqrP2S8cU/PDY5KY24GpjynRSw6Gr+pHNllZtwFxKaCfYlykupaRiPT6Pl5Kgm9eZPzOdxdR8AYprWUVd6jcAEEogcWG/JUuBn0OImR25uh/DfUl8/5kxxKJKRaExsPheiEjFWl87OpD2hcy8n60XjQKIkYGkL/jx1cdOIlu0EIvIsIvMVS53fc01GZmC+a6jH7XRRhtttNHGRjRNgnFWRJFQ1gUl2rQZlnI6ulMRP8mujZ8upXgSaL0Bs5zTYdsMikxR9sTNZAoTwk2GUgLGxAgfAFcRO1y93YtjfvjCOcytlH0f7PUkr82YC4bNEY/IMCwHjiM8XT2RNkWiiMeqxwDDrPYOjHZvesGkqoki020zSrCRaCfYbWxrrNfn8VIRdAt25otl2/dvJm7lkbpzxpxXKD4dSQ2Su7A7jIMxjg/dKETJFEUSldR3mULjagFEMAHXFKnKBxsEl8QIRBtttNFGG22sBxeS5NbGWQBQKFswbQcSIXC4cBuJaPK2iZ/WMjJYi1YbMLrpoGTYKOgigSYQ4mYRVfLVxwEgVzSRL1lQZIp0XK3Te/FwYKQLV1/RjZWijem5HGKatO7kdTXmAgPw4FPvYCGjg3MOVZbQ392Y9RnEpVYw2a5oJ9htbGu0Oks9MZsDIaRqsd2o2aQLWcibIVgxliUKy3b83/mCZd5ncDgkKpQePYsIznkd7flSKCqsF80W/doEPB6VwUFQKm9/ylobbbTRRhtrx2btzZcbwuKsVFzFck4X1GKIcbVi2YJpsy1lg4Xd46AAbSsjg7VopQHTmVDx0tsLfiwmUwIOwLQdmJbj678QIsTFwCvd/lRMbdjMoITgyl0d6E4oF0yHXq3xcOASou6/G9FOsNvY1miFypMrmvjqoydRKFt1i+2Fziatdfa7VdRWjOdXygABCG/sbe0wQJYERdy0nNBCweWiEh+GdtW1jTbaaOPywGbtzZcjwuKsqCajKyXspzxhL8NysGtHYsuucdg9TkYVZIsmGOctjwzWYjVxOE2hACHQLRvdKQ3LeQMOF7aflMAXmBXHqrALZUJgufPZ+3d3bEkzo1nc046JLi7aCXYb2xqrUXmKZQtlw8ZSVkcqroYutr/3qUPrquI1mv2enC/gfz98Ah++YRAHR7uwZzC96rFqEawYez7NlBA4DdNrAcY5cgUTskwvWPW7jTbaaKONNi41rEeXpY3GaBRnRTUZEZfurFsO7vvgFRjoSaBUtjA+m9vUjmjYPbYsB1MLRTDO0ZuO+J91tZHBMDSLlW7c14uHn5/wxc26XdV0y2a+NSggkmsOEZd5quIEouN94/7ed20zo43W0E6w29jWaEblYYwhWzBBCEF3OtJwPnvv7o41v2+j2W+HcZg2Q6Fs4cGfjeHxV6axsyeOX73rKuzuibV8/GDF2PN6Bhp3rwEgGVVAKMEvHRnGFUPpDVH9bqONNtpoo41LBevVZWmjMZrFWYCgPncnNTz31hxml8c2nTHQ6B4j8LlyJQvRSIWC3UhcrNl7RCMy7jy8C4WyhWRUQTKuYndfEsfHlqs6+hFNRkQTHuBlwxZxJyVIxhQYpgPLZmBwZ7QVCTIl6E1HN/SatHHpoZ1gt7Gt0YzKkyua4BzoSKoN57Mn5wv406+9jGzRXNOmEDaTVDaEqiTjHBIRImOUEkzOF/A/v/M6PnvX/pY9/IIVY0890SuMepVQAJBcsTPGOeJRGWXDQV9XbNXNo00NaqONNtpo492GVnVZWkmy2hBYjTJNiRA5WykYW8IYaHSPGROK2BIhsGwG03KqOu6t2q82Gy+ghDT1mQaEqBkgOvzpuArTZn48CC6aMJeimGwbG4vwwdY22thG8Kg8Q71xGJaDXMGEYTnoTkcQ1STEo+ELmeMwFMsW5lxl6VRChaZI/qZwYny54Xv6HWZZfEU458i5cz8SISCUgBACiRJ0JFWUDRsPPTsOxptTvD14FeOibkNxfZo96pF3BGHBRcBQsX+4VFXA22ijjTbaaONCUbs310KWKRyHr5pktVGNRnHWYE8M6YQGxjk6EhpUz6lEkdCRUKGbDh5+fqLl2KcVNLrHlBJ/3hkQCXcQrTileNTzqYVCw7gwGJ/xmvPyOvwEgCKJOFBTJEQ1GapMUTIc9HfFLlkx2TY2Du0OdhuXBMJoz4wDf/PgzxvOZ2cKJjiEGuZaZ3VqK5hmYE6aEOJ3m6mbaCejCmaWii1XzWsrxjFNFirigbWcUmGPQQmQiimXvAp4G2200UYbbVwIWrVYahei145mcdZWMgYadpDdZoTp2nAGvZNbcUpZy3hBs45+0n22skXrshOTbaN1tDvYbVwy8GjP1+zpxkh/CiP9jauMhmnDshkUmfqWVoY7P2PaDDFN8jeFMNRWMD1qkrdkOpz7xwZEVdNeY9U8WDEGASKqDKlmw1AkglRMhW5trTVGG2200UYbbWw3NOsueklWu4O4ftTGWaXy1jMGGt1jQghScUXEYm4cxDiHaTnIFMxVY6S1jBc06ugP9cbxO/cexO/cezD0d1stsMc4x/hsDm+eXcL4bG5DmQRtXBjaHew2Llk0n8+2QAiQdilMQasJArEpyJQ03BRqj63K1FWHFMk1JUA6rvqvt2wGeR1V8/3DnYhoEs5O58AJMDqQwsRsDk+9PoNMQcz5gKCtAt5GG2200cZlj9XmhduF6I1FWDfZtJzKzDGw4YyBZvdYNxnScRXphIZ8yVyTU0ortq/BGe7VBGMvtphs26pue6OdYLdxSaOR1UJ/dxQLGR2Ow5ErGmCcgxICCsHCtiwHFoCFbLmlY88sFQEIFXFVoehIaL6qpMMYyoaD3X3JNVXNmy2Of/K5w20V8DbaaKONNtqoQduOcusQVBh3HIZcyYJlMwCCMUAIwdCOxIYzBla7x+tJbtczXrBen2nG+abGcG2ruu2PdoLdxiWPsCrj0I4E/uL+13BqMgvOOSR3VhoQHWwHIuF++eQCbj/0/2/vzqOjKu+4gX9nzZ6QsCSUBAjYREEIkSwgRopWEESQ6svrgmB6EJQQWmqoohWr0gMVEZRV6obbqVSRRUQphQIF4Y1QBCSEWLYECgkhZDJZZn3ePyaZZjITkpvcmZuZfD/ncDjcmbl55sfNc5/ffbZeHiu+pts4VFSZsPvIRVjtjvnY143V9fsiAiq1CtW1FhSer2hVpcbKkYiIqG24HaVvNPQm/+WrkyirrAPgWMUbjgWzYRcClUaTS9unIbmsMdnQK9aC6LC2pRot/R9LnfN9o+3IWjOHu7Vu1Hky6KZu7To3wK3q/AUTbOrQWvsU0NOTxLTkHii8UFm/bpjK8Xf9EG+N2jG3ubnFOZqrIH+ZFo9DBaUovmKEgOPprV6nRmSYDhVVplYlx6wciYiI2ofbUXpP47ZXaIgOkaE6VNUPnbYDUAlHmyUyTIc6s93ZZik8X+HSdtLrNIiNDsHYzN5t6jSQ8//YF9MLWuo8+bVGjRHRYe36Htyqzj8wwaYOq73zS7p3CUFIkAZWmx1Wm3Cu0K3XqhEVpoder4HBaHabh32jCrLsei1CgrQICdIgNFgLjUaNIJ0aOq0GliAbKqpaTo5ZORIREVFH1LTtJQDU1FkQGaZDkF7rnH+tr+8F1qhtuHytBnuOXsS3/6/Y2XbShaohBFBcauwwI/O8Ob2gNZ0nXx04h+FD4tv1HaTOJSdlMMGmDkmOIdThoToE6TWI1DkWI3PeFBot1NF0vk1LFWR5ZR0qqkzo3iXEeZ6GHLm1ybGh2rHipFatgrn+3I2xciQiIiJf89T2qq5fSbyqxgKd1rHnc2NareM9e45ecmk7qVSO17pE6FvV+eAr3ppe0JrOk/+WV+PMxUp0DW/7onDe2KrO23PGOyMm2NThyDWEuvF8my7h+lbNt2mpggzSaVBjct8epEFLyXHBuWvY/K+zqK2zorbOCpVKBV19j3pw/U2L+3gSERGRLzXX9grSaaBSOTopDNWO7bAat4+sVjugQv2wa/8YmeeN6QWt7Vk2VJvblWDLPZecq5F7B/fBpg5HyhDqG2mYbxOs1+C60ezYWqKFPROrqs0wm22w2OwwWWxuibRO5/iVMdevotnUjZLjhifDVytrnXtKqurPVW6oQ1194s59PImIiMiXmmt76XUa6HUaxw4sVrtL+6ehzdIlPAgAfLpftpzk2E+6cc+yJ9b67VwjG23x2hZtads2p6FdWlJmRJBOg8hwPYJ0Gudo0YJz19pV1s5M8R5su92OlStX4m9/+xuqqqqQnp6OBQsWICEhocXPzZgxAykpKcjNzXV5bfTo0Th//rzLsUmTJmHx4sWyl5/kJ+f8EinzbQrOXcPm/WdRXWdFdZ3VMbxJo0ZUuB6hwY6EWQVAo1bBZLYhPES0+slh4yfD0RHBqDPbcM1Q59w+zGYXqKgyIThIg2C9lvt4EhERkc/cqO0VFabH1cpaRyJntkHXZHGwkSk/w7aD52UdtuwrcvXgtqZnuXePcPTrFYXKypp2lVmOueRSRosC4BByiRRPsFevXo1PP/0UixcvRlxcHJYsWYLp06dj69at0Os9P+Uxm81YsGAB9u3bh5SUFJfXampqUFxcjLfffhsDBw50Hg8ODvbq9yD5yD2/pDXzbRqe4hlrzQAc66EJ4ehdLrtehy7hdkSG6R3bTnQLQ63Z5lyFUqdTw2S2OYdOeUqOmz4ZDgnSIiYyGIZqMyxWO1QArDY7ukWF4cE7+3NYDhEREfnMjdpewUFaRIUFwVBjhtVuh8FodtuX+vDpMq9vgSU3ObdMbc0q5eNv7wu1Wp7EtL1zyVs7WnTP0Ys4XFjGIeQSKZpgm81mvPfee8jLy8MvfvELAMCyZcuQlZWFHTt2YPz48W6fOXLkCBYsWIC6ujpERrrPn/jpp59gt9uRmpqKqKgob38F8gJv7FV4o/k2DU/xjLVmmC2OuURoMjroutGxMFlEqB6TR90EAC5PDvU6DRJ6hDe7FYWnJ8MhQVoE6zUwW+2w2uyoq7Ni4ohEVlhERETkUy21vax2gaSELnhwZD9U11rdErqmyWVrOh+U5I0tU1vqWR6QKG/7rj1zyVszWtRQbcbW/edgF6LdDyA6G0UT7FOnTqG6uhrDhw93HouMjMSAAQOQn5/vMcHes2cPsrKykJOTgwkTJri9XlhYiG7dujG59mO+2KuwsQtXqvDf8mpYbQJ2IaBVO/bMttkFGk/DEQKYOjrJWZk0PDmsMdnQKzYS0WFa2G2e5+0092S4YeE0FQC7XoOIds7N8QWuNklERBRYWtv2SuzpuX3tKblsqfNBSd7aMtVbq5S3hpT2WUujRS0WG0wWGwCga1SwLA8gOhNFE+zLly8DAHr27OlyvEePHs7Xmpo7d+4Nz1lYWIjQ0FDMmTMHR44cQXR0NB588EFMnToVajXXdPMX3tyrsCljjQUWix02m2M+tEqlggqAWqOCEICAgM0moNOoERryv2HpDU8OtVo1oqPDUFFRDXvTru963uiVVwJXmyQiIgpM7W17NU4uW9P5oCRv7iftjVXKWyK1fdZSu7Sq/ntHhun9YmX4jkbRBLu2thYA3OZaBwUFobKysk3nLCoqgsFgwJgxY5CTk4PDhw9jyZIlqKysxG9+85t2lbe51REDmUajdvnblwbd1A0D+3fF+ctVqKqxICJUhz5xbX8KaBfC47miIoKgUqsghGOfbDQ6vUoFQKigUgkIADUmm9t10NoYTRiRiPe/LkCl0YywkEZPhmutCNFrMGFEoseniB3FybPX8OG3hagz21zKf7GsGh9+W4jscbc0O/xJyevIXzBGLWOMWtYRYhQo98qOEMuOhjFxF2gxkaPtdVN8F2g0akRGhsBgqIVN5XllbSVFRQRBq1HBZrND46HtZatf9TsqIghqjUqWtqi3rpW2ts9u1C7V1dfjOp0anr6qTud4AOGpXSxFoP3+NFA0wW5YeMxsNrssQmYymRASEtKmc/7lL3+ByWRCRISjJzA5ORlGoxFr1qxBbm5um3ux1WoVoqPD2vTZQBAZ2bb/Dzl0jQlv9zl+KCrD57uKcLHUCKvNDq1GjV49wvHQXT/HkJvj0LNbGIqKrwMAVI0zbAjY7AI6rQbBQVrH09hmroOWYjQiOgzhEcHOctSaLNBq1EjsFYWH7vo5Un7evd3f01vsdoFv8n+AyWJHty6NhgppNQgJ0qLcYMI3+cUYPiT+hgt4KHkd+QvGqGWMUcuUilEg3it5vbljTNwFWkzkaHsBHTcuUVGhSIg7i3P/NSAkSOvWg1tjsqFvz0iotBos/9sxj+3Htrbb5IxJe9pnN2qXDh/UE5//owhCeH5oajLboNdpbtgulqKjXidtpWiC3TA0vLS0FL1793YeLy0tRXJycpvOqdfr3XrEk5KSUFNTg8rKSkRHR7fpvHa7gMHQvmX1/ZHLE0hbx3sC2Ronz17D+18XOJ/shQTrYLXacfZiJVZ89m9kj7sFk+5IxLINP8BitUOjsUOtcszDttsFAAGtRoW46BBEh2lRUVHtcn4pMerdLRS//T+DPT4JbXrejuTsfw0ovmxAaLAGtvqYNBYapEHxZQOOnrqMxJ7uQ4UC4TryNsaoZYxRy9oSo8jIENl6DwLpXsnrzR1j4o4x8cwf4nJvegLe/7oAV6/XufXgBus1uDmhC1ZtOHrD9qOUhcu8EZP2ts+aa5cCwL4jJSguNaJLhN7tAYSh2oyEHuEe28VS+MN10kDKvVLRBPvmm29GeHg4Dh065EywDQYDTp48iSlTpkg+nxAC99xzDx544AHMnj3befz48ePo3r17m5PrBs1tHt8Z2Gx2v/z+diGwZf9Z1DZZJVKn1SAq3LFIw5b9Z/G7/zsED2Ql4st9Z2G12mFXOSoorUYNnUaDsBAdxmb2ht0mmp1nLSVGCd3/92T4RufsKCqrTLDaBEI1apeF3xpoNGpYbVbH+7o3HwN/vY58iTFqGWPUMiVjFGj/N7ze3DEm7hgTzzpyXJISumBqoznntlrHnPNe3cMwdlgfbD94vsX2403xUZKHi8sZE7naZ03bpQAwNrM31n9biIoqz4vetdQulqIjXydtoWiCrdfrMWXKFLz++uuIiYlBr169sGTJEsTFxWH06NGw2Wy4du0aIiIiWrWPtUqlwj333IN3330X/fr1w6233orvvvsO77zzDl544QUffCPqaKSsEnlvZh8kxEbgy73/Qdn1OgghoNdqENeVi3jJvTc5ERERkdKaW/XbW6uMy82b7TNfLjgcaBRNsAFgzpw5sFqt+MMf/oC6ujqkp6fj3XffhU6nQ0lJCe6++24sWrQIv/rVr1p1vmeeeQbh4eF44403cPnyZcTHx+OFF17A5MmTvfxNqCOSukrkwL4xuEWh7RU6skBZBZ2IiIioMU+rfntzlXE5ebt9puS2Y/5M8QRbo9Fg3rx5mDdvnttr8fHxKCwsbPazu3btcjum1WqRk5ODnJwcWctJ/qktT/aU2F6ho/P13uRERERESvGXkXu+aJ+xXSxdYK2JTtREw5O96jorRJPJKQ1P9uJiQtnz2goNQ4Xiu4fBZLHBYDTDZLEhvnsYpo1J7hBDhexC4NxlA06cKce5ywbYPU1IIiIiIq9ouA8f+085fiq+7rf3YX9qP/pD+6yzUbwHm8ib2PMqr448VKjg3LX/LVRiE9BoVIiL4fx5IiIiX2h6H9brNIiNDsHYzN5+dx/2t/ZjR26fdUbswaaAxyd78moYKnRrv67oGxfZISrvgnPXsP7bQpSUGRGk0yAyXI8gnQYlZdVY/20hCs5dU7qIREREAavpfTgqQo/gIA2KS41+ex/2t/ZjR2yfdVbswaZOgU/2ApddCGw7eB51TbbS0Os00GkdW2lsO3geyX2i+f9NREQkM0/3YZXKsRBYlwg9Kqr89z7M9iO1BRNs6jS4SENg8petNIiIiAJRoN+H2X4kqThEnIj8mnMrDW3zW2nYbELxrTSIiIgCEe/DRK6YYBORX2u8lYYnHWUrDSIiokDE+zCRKybYROTX/GkrDSIiokDD+zCRKybYROTXGrbSCNZrcN1ohtlig10ImC02XDeaO9xWGkRERIGkufuwyWzD9Sreh6nzYYJNRH7P37bSICIiCiRN78OVVWbUmW1I6BHO+zB1OlxFnIgCArfSICIiUk7j+3CNyYZesZGIDtPCbhMtf5gogDDBJqKAwa00iIiIlNNwH9Zq1YiODkNFRTXsYIJNnQuHiBMRERERERHJgAk2ERERERERkQyYYBMRERERERHJgAk2ERERERERkQyYYBMRERERERHJgAk2ERERERERkQyYYBMRERERERHJgAk2ERERERERkQyYYBMRERERERHJgAk2ERERERERkQyYYBMRERERERHJQCWEEEoXwh8IIWC3d85QaTRq2Gx2pYvRoTFGLWOMWsYYtYwxapnUGKnVKqhUKll+dqDdK3m9uWNM3DEmnjEu7hgTd/4SEyn3SibYRERERERERDLgEHEiIiIiIiIiGTDBJiIiIiIiIpIBE2wiIiIiIiIiGTDBJiIiIiIiIpIBE2wiIiIiIiIiGTDBJiIiIiIiIpIBE2wiIiIiIiIiGTDBJiIiIiIiIpIBE2wiIiIiIiIiGTDBJiIiIiIiIpIBE2wiIiIiIiIiGTDBJiIiIiIiIpIBE+xOzm6346233kJWVhaGDBmCJ598EsXFxc2+v6ioCDNmzEBmZiaGDx+OOXPm4NKlSz4sse9JjdGPP/6IadOmITU1FcOGDcOCBQtQVVXlwxL7ntQYNbZlyxYkJyejpKTEy6VUltQYNcSl6Z9AjpPUGFksFixdutT5/ilTpqCgoMCHJfY9KTFasWKFx2soOTkZ8+fP93HJOx7W7e5Yl7tj3e0Z62t3rJ/dSb1OysvL8cwzz2DYsGHIzMzE3LlzceXKFR+WWCaCOrUVK1aIzMxMsXv3blFQUCB+/etfi9GjRwuTyeT23mvXrokRI0aI3NxcUVhYKI4fPy4ee+wxMXbsWFFXV6dA6X1DSozKyspEenq6mD9/vjhz5ow4fPiwGDdunJg1a5YCJfcdKTFqrKSkRAwdOlQkJSWJ4uJiH5VWGVJj9Nprr4kpU6aI0tJSlz9Wq9XHJfcdqTF6/vnnxe233y727t0rfvrpJ5GbmytGjBghDAaDj0vuO1JiZDQa3a6fP//5z2LIkCHi1KlTCpS+Y2Hd7o51uTvW3Z6xvnbH+tmd1OtkypQp4uGHHxYnT54UP/74o5g8ebJ48MEHfVzq9mOC3YmZTCaRmpoqPvnkE+exyspKMXjwYLF161a392/YsEGkpqaK2tpa57FLly6JpKQkceDAAZ+U2dekxujo0aNi7ty5wmKxOI998MEHIiUlxRfFVYTUGDWw2WzikUceEVOnTg3IRlljbYnR9OnTxauvvuqrIipOaowuXLggkpOTxe7du13eP2rUKNZHzfjxxx/FwIEDxcaNG71ZTL/Aut0d63J3rLs9Y33tjvWzO6kxqaysFElJSeIf//iH89jOnTtFUlKSqKio8EWRZcMh4p3YqVOnUF1djeHDhzuPRUZGYsCAAcjPz3d7//Dhw7F69WoEBwc7j6nVjkvIYDB4v8AKkBqjlJQUvPHGG9BqtQCA//znP9i8eTNGjBjhszL7mtQYNVi7di0sFgtmzpzpi2Iqqi0xKiwsRP/+/X1VRMVJjdH+/fsRERGBO++80+X9u3btcjlHIGnr71qDV155BWlpaZg0aZI3i+kXWLe7Y13ujnW3Z6yv3bF+dic1JsHBwQgLC8OmTZtgNBphNBqxefNmJCYmIjIy0pdFbzet0gUg5Vy+fBkA0LNnT5fjPXr0cL7WWHx8POLj412OrVu3DsHBwUhPT/deQRUkNUaNjRkzBufOnUOvXr2wcuVKr5VRaW2J0bFjx/Dee+/h888/98+5NRJJjVFlZSWuXLmC77//Hp9++ikqKiowePBgzJs3D4mJiT4ps69JjdHZs2eRkJCAHTt2YN26dbhy5QoGDBiA5557LmAbt+2pj3bv3o1///vf2LRpk7eK51dYt7tjXe6OdbdnrK/dsX52JzUmer0eixcvxoIFC5CWlgaVSoUePXrg448/dnbo+Qv/Ki3Jqra2FoDjgm4sKCgIJpOpxc9/9NFH+Pjjj5GXl4eYmBivlFFp7YnR66+/jo8++ghdu3bF1KlTUV1d7bVyKklqjGpqapCXl4e8vDz07dvXF0VUnNQYFRUVAQCEEFi0aBGWL18Ok8mERx99FFevXvV+gRUgNUZGoxHnz5/H6tWr8bvf/Q5r1qyBVqvFo48+ivLycp+U2dfaUx+9//77GDVqFG655Ravlc+fsG53x7rcHetuz1hfu2P97E5qTIQQKCgoQGpqKj755BOsX78eP/vZzzBr1iwYjUaflFkuTLA7sYah3maz2eW4yWRCSEhIs58TQmD58uVYuHAhnn76aTz++ONeLaeS2hojABg0aBAyMjKwcuVKlJSU4O9//7vXyqkkqTFauHAhEhMT8fDDD/ukfB2B1BilpaXhu+++w9KlS3HrrbciLS0NK1euhN1ux8aNG31SZl+TGiOtVguj0Yhly5bhjjvuwODBg7Fs2TIAwJdffun9AiugrfXRpUuXcOjQITzyyCNeLZ8/Yd3ujnW5O9bdnrG+dsf62Z3UmGzfvh0ff/wxlixZgqFDhyIjIwNr167FxYsX8fnnn/ukzHJhgt2JNQzZKC0tdTleWlqK2NhYj5+xWCyYN28e1q5di/nz5+O3v/2tt4upKKkxOnPmDP75z3+6HIuNjUWXLl0CcvgcID1GX3zxBQ4cOIDU1FSkpqbiySefBACMHz8ea9eu9X6BFdCW37WYmBioVCrnv0NCQhAfH8/rqF5cXBy0Wq3L8MLg4GAkJCQE3HY4DdpyHQHAzp07ERMTE1DzhduLdbs71uXuWHd7xvraHetnd1Jj8v333yMxMRHh4eHOY1FRUUhMTMT58+e9W1iZMcHuxG6++WaEh4fj0KFDzmMGgwEnT55sdk7173//e3zzzTdYunQpnnjiCR+VVDlSY3TgwAHMmTPHZdG3CxcuoKKiImDmGTUlNUY7duzAV199hU2bNmHTpk1YuHAhAMd8/kDtCZEao88++wyZmZmoqalxHjMajTh37hxuuukmn5TZ16TGKD09HVarFcePH3ceq6urQ3FxMfr06eOTMvtaW+pswNFoycjIcC7QRazbPWFd7o51t2esr92xfnYnNSZxcXE4f/68y/DxmpoalJSU+N80FGUXMSelvfHGGyIjI0Ps3LnTZX86s9ksrFarKC0tdW7L9cUXX4ikpCTxzjvvuO3d13jrrkAjJUYVFRUiKytLzJgxQ5w+fVrk5+eLiRMnioceeijg9sBsTEqMmjp48GDAbe3iiZQYXbp0SaSlpYmcnBxx+vRpcezYMfHEE0+IX/7ylwG957zU6+iJJ54QY8eOFfn5+aKoqEjk5uaK4cOHi/LycgW/hXe15Xft7rvvFqtXr1aoxB0X63Z3rMvdse72jPW1O9bP7qTE5MqVKyIjI0M89dRToqCgQBQUFIiZM2eKrKwsv9svnQl2J2e1WsVrr70mhg0bJoYMGSKefPJJ582xuLhYJCUliS+++EIIIUR2drZISkry+KfhPYFISoyEEOLMmTNixowZYujQoSIjI0PMnz9fVFZWKlV8n5Aao8YCtVHWlNQYnThxQmRnZ4uhQ4eK2267TeTm5opLly4pVXyfkBqjqqoq8dJLL4nMzEyRkpIisrOzRVFRkVLF94m2/K4NHjxYfPrpp0oUt0Nj3e6Odbk71t2esb52x/rZndSY/PTTT2LmzJkiIyNDDBs2TMyePdsv6xSVEEIo3YtORERERERE5O84B5uIiIiIiIhIBkywiYiIiIiIiGTABJuIiIiIiIhIBkywiYiIiIiIiGTABJuIiIiIiIhIBkywiYiIiIiIiGTABJuIiIiIiIhIBkywiYiIiIiIiGTABJuIiIiIiDzauHEjkpOTUVJSonRRiPwCE2wiIiIiIiIiGTDBJiIiIiIiIpKBVukCEFHnc9ddd+GBBx5AbW0tNm/eDKPRiPT0dLz44ovo27cvnnvuOVy+fBn3338/1q1bh4sXL6J///545plncOeddypdfCIiIqcXX3wRu3btwt69e6HRaJzH//SnP2HLli3417/+hT179uC9995DQUEBLBYL4uPj8fjjj+Oxxx6T9LOSk5Px4osv4vjx49ixYwdCQkJw3333IS8vD0FBQQCAxx9/HLGxsTCbzdi7dy9SU1Px/vvvw2Qy4c0338S2bdtQXl6OxMREPP300xg3bpzz/Ha7HWvXrsWGDRtQUVGBESNGID09XZ5AEXUS7MEmIkV8+OGHOHPmDBYtWoSFCxfixIkTePbZZ52vnzhxAu+++y7mzJmDVatWQaPRIDc3F5WVlQqWmoiIyNXEiRNx9epVHDp0yHnMbrdj+/btuO+++7B//37k5ORg4MCBWL16NVasWIGEhAS88sor+OGHHyT/vDfffBPl5eVYvnw5pk+fjs8++8zl/gkA27dvR1hYGNasWYPp06dDCIGcnBz89a9/RXZ2NtasWYPU1FTMnTsXmzZtcn5uyZIlWLVqFR566CGsXLkSXbp0wdKlS9scG6LOiD3YRKSIyMhIrF692vm0/8KFC1ixYgUqKioAAFVVVdi4cSN69+4NAAgNDcWUKVNw8OBBjBkzRrFyExERNTZ06FD06tULX331FW6//XYAwKFDh1BWVoaJEyciPz8fkyZNwgsvvOD8TGpqKjIzM3Ho0CGkpKRI+nkxMTFYu3YttFotRo4cCbVajUWLFiE3Nxf9+/cHAOh0Orz88svQ6/UAgP3792Pfvn1YtmyZs8c6KysLtbW1eP311zF+/HjU1NTgo48+QnZ2NmbPnu18T2lpKfbt29fuOBF1FuzBJiJFDBo0yGUoXVxcHACgtrYWgKMB0ZBce3qdiIioI1CpVJgwYQJ27twJs9kMANi2bRv69u2LlJQUTJ8+HYsXL0Z1dTVOnDiBr7/+Gm+//TYAON8vxf333w+t9n99ZA0PnfPz853H+vXr50yuAeC7776DSqXCyJEjYbVanX/uuusulJWVoaioCEePHoXFYsGoUaNcft7YsWMll5GoM2MPNhEpIiQkxOXfarXjeZ/dbvf4ukqlcnmdiIioo5g4cSLWrFmDffv2ISsrCzt27MC0adMAANeuXcNLL72EnTt3QqVSoU+fPkhLSwMACCEk/6zY2FiXf3ft2hUAXKZQhYWFubzn+vXrEELgtttu83jO0tJSGAwGAEB0dLTLa927d5dcRqLOjAk2EREREVE7JCYmYvDgwdi+fTvUajUMBgMmTJgAAMjLy8OZM2fwwQcfIDU1FXq9HrW1tdiwYUObflbDVKoGV69eBeAY+dWciIgIhIaG4sMPP/T4ep8+fXDs2DEAQHl5Ofr16+d87fr1620qJ1FnxSHiRERERETtNHHiROzbtw/btm3DbbfdhoSEBADA4cOHMXr0aGRmZjqHbe/duxdA20Zl7dq1y+Xf3377LVQqFYYNG9bsZzIyMlBTUwMhBAYNGuT8c/r0aaxatQpWqxWpqakIDg7GN9984/LZ3bt3Sy4jUWfGHmwiIiIionYaN24cFi9ejK+//hovvfSS8/jgwYOxdetWDBw4EHFxcThy5AjWrVsHlUrVpnVFjh49iry8PEycOBGnTp3CihUrMHnyZGdC78nIkSORnp6OWbNmYdasWejfvz+OHTuGt956C1lZWc7e71mzZmH58uUICQnBsGHDsGfPHibYRBIxwSYiIiIiaqeYmBjccccd2L9/P+69917n8cWLF+PVV1/Fq6++CgDo27cvXn75ZWzZsgXff/+95J8zbdo0XLlyBbNnz0Z0dDSeeuopzJw584afUavVWLduHd588028/fbbKC8vR2xsLLKzs5GTk+N838yZMxEaGor169dj/fr1SE1NxbPPPos//vGPkstJ1FmpRFtWVyAiIiIiIp9KTk7G7NmzkZubq3RRiKgZ7MEmIiIiIlKI3W5v1VzsxltzEVHHxd9UIiIiIiKFPP/88/jyyy9bfF9hYaEPSkNE7cUh4kRERERECikpKXHbesuTQYMG+aA0RNReTLCJiIiIiIiIZMB9sImIiIiIiIhkwASbiIiIiIiISAZMsImIiIiIiIhkwASbiIiIiIiISAZMsImIiIiIiIhkwASbiIiIiIiISAZMsImIiIiIiIhkwASbiIiIiIiISAb/H3n9GM9K1wy4AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot uncertainty as a function of nn or true label in a trellis for overview.\n", + "fig, ax =plt.subplots(1,2, figsize=(10, 5), sharey=True)\n", + "sns.regplot(data=df,y='va_uncert',x='nn', ax=ax[0])\n", + "sns.regplot(data=df,y='va_uncert',x='va_pred', ax=ax[1]).set_ylabel(\"\")\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to the findings in the referenced scaling evaluation paper above, the lower and upper probability boundary intervals are shown to produce large discordance for test set molecules that are neither very similar nor very dissimilar to the active training set, which were hence difficult to predict." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ensemble uncertainty (ChemProp Only)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Training a ChemProp model with `ensemble_size` >1 will enable uncertainty estimation based on the implementation in the original ChemProp package, using the deviation of predictions from the ensemble of models trained with different random initialisation of the weights. This can be done like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 13:25:25,916] A new study created in memory with name: my_study\n", + "[I 2024-07-02 13:25:25,959] A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__fd833c2dde0b7147e6516ea5eebb2657': 'ReLU', 'aggregation__fd833c2dde0b7147e6516ea5eebb2657': 'mean', 'aggregation_norm__fd833c2dde0b7147e6516ea5eebb2657': 100, 'batch_size__fd833c2dde0b7147e6516ea5eebb2657': 50, 'depth__fd833c2dde0b7147e6516ea5eebb2657': 3, 'dropout__fd833c2dde0b7147e6516ea5eebb2657': 0.0, 'features_generator__fd833c2dde0b7147e6516ea5eebb2657': 'none', 'ffn_hidden_size__fd833c2dde0b7147e6516ea5eebb2657': 300, 'ffn_num_layers__fd833c2dde0b7147e6516ea5eebb2657': 2, 'final_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657': -4, 'hidden_size__fd833c2dde0b7147e6516ea5eebb2657': 300, 'init_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657': -4, 'max_lr_exp__fd833c2dde0b7147e6516ea5eebb2657': -3, 'warmup_epochs_ratio__fd833c2dde0b7147e6516ea5eebb2657': 0.1, 'algorithm_name': 'ChemPropClassifier', 'ChemPropClassifier_algorithm_hash': 'fd833c2dde0b7147e6516ea5eebb2657'}\n", + "[I 2024-07-02 13:32:26,200] Trial 0 finished with value: 0.65625 and parameters: {'algorithm_name': 'ChemPropClassifier', 'ChemPropClassifier_algorithm_hash': 'fd833c2dde0b7147e6516ea5eebb2657', 'activation__fd833c2dde0b7147e6516ea5eebb2657': , 'aggregation__fd833c2dde0b7147e6516ea5eebb2657': , 'aggregation_norm__fd833c2dde0b7147e6516ea5eebb2657': 100.0, 'batch_size__fd833c2dde0b7147e6516ea5eebb2657': 50.0, 'depth__fd833c2dde0b7147e6516ea5eebb2657': 3.0, 'dropout__fd833c2dde0b7147e6516ea5eebb2657': 0.0, 'ensemble_size__fd833c2dde0b7147e6516ea5eebb2657': 5, 'epochs__fd833c2dde0b7147e6516ea5eebb2657': 4, 'features_generator__fd833c2dde0b7147e6516ea5eebb2657': , 'ffn_hidden_size__fd833c2dde0b7147e6516ea5eebb2657': 300.0, 'ffn_num_layers__fd833c2dde0b7147e6516ea5eebb2657': 2.0, 'final_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657': -4, 'hidden_size__fd833c2dde0b7147e6516ea5eebb2657': 300.0, 'init_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657': -4, 'max_lr_exp__fd833c2dde0b7147e6516ea5eebb2657': -3, 'warmup_epochs_ratio__fd833c2dde0b7147e6516ea5eebb2657': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: 0.65625.\n", + " \r" + ] + } + ], + "source": [ + "# Start with the imports.\n", + "import sklearn\n", + "from optunaz.three_step_opt_build_merge import (\n", + " optimize,\n", + " buildconfig_best,\n", + " build_best,\n", + " build_merged,\n", + ")\n", + "from optunaz.config import ModelMode, OptimizationDirection\n", + "from optunaz.config.optconfig import (\n", + " OptimizationConfig,\n", + " ChemPropHyperoptRegressor,\n", + " ChemPropHyperoptClassifier\n", + ")\n", + "from optunaz.datareader import Dataset\n", + "from optunaz.descriptors import SmilesFromFile\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " ),\n", + " descriptors=[\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " ChemPropClassifier.new(epochs=4, ensemble_size=5), #epochs=15 to ensure run finishes quickly\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")\n", + "\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " chemprop_model = pickle.load(f)\n", + "\n", + "# add chemprop uncertainty & prediction to the df \n", + "df[\"cp_pred_ensemble\"], df[\"cp_uncert_ensemble\"] = chemprop_model.predict_from_smiles(df[config.data.input_column], uncert=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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hBBCCGkX2oNNCCGEEEIIIYREAQXYhBBCCCGEEEJIFFCATQghhBBCCCGERAEF2IQQQgghhBBCSBRQgE0IIYQQQgghhEQBBdiEEEIIIYQQQkgUUIBNCCGEEEIIIYREAQXYhBBCCCGEEEJIFFCATQghhBBCSJwtX74cBQUF8b6NuPj4449RUFCA8vLysK/ZtGkTCgoKsGnTpk68M0IiRwE2IYQQQgghhBASBRRgE0IIIYQQQgghUUABNiEkoVx88cV44YUX8PTTT2P8+PEYNmwYbrvtNpSWlgIAHnzwQcyePRurV6/GlClTMGTIEFx99dX48ccf43vjhBBCYo4xhjfffBNXXnklhg0bhssuuwyvvfYaGGN48MEHccstt+Cjjz7C5MmTUVRUhFmzZmH//v0RvUd5eTkKCgrwxRdf4K677kJhYSEuuugi/P3vf4csy+rrLr74Yvztb3/DrFmzMGzYMPzpT38CANTX12PRokUYP348hg4dil//+tfYsGFDwHu4XC48+eSTuOCCC1BUVISFCxfC5XK1q0xOnjyJe+65B8XFxSgsLMSsWbOwd+/eoM+zZs0azJ8/H0VFRSguLsbDDz8Mu92uvm7Pnj2YNWsWRo4ciaKiIsyePRs7duwIeK+ff/4ZN998MwoLC1FcXIwHHngAtbW16vMff/wxhg4dip9//hnXXXcdhg4diilTpuDbb79FSUkJZs2ahcLCQlx22WX44osvgj7Ltm3bMH36dAwZMgTTpk3Dl19+2eJnP3jwIO68806MGDECI0aMwO9//3scP368XeVISLRQgE0ISThvvfUWSkpK8OSTT+Lxxx/Hnj178MADD6jP79mzB6+99hrmz5+Pv//97xAEAfPmzUNDQ0Mc75oQQkisPfPMM3jmmWdw8cUX46WXXsL111+PZ599Fi+//DIAYN++fVi6dCn+7//+D4sXL0ZdXR1uvvlmVFdXR/xejz32GMxmM5YvX46rr74aL774IpYsWRLwmnfffRdDhw7FihUrcP3118PlcmHWrFn497//jbvvvhsvvvgisrOzcfvttwcE2QsWLMCHH36IO++8E8uWLUNDQwPefPPNiO+xtrYWM2bMwC+//IJHHnkES5YsgSzLuOmmm3DkyJGA1z766KPIycnBihUrcNttt+Gjjz7CypUrAQBWqxW333470tLSsHz5cixduhQOhwO33XYbmpqaAABbtmzB7NmzYTAYsGzZMjz00EPYvHkzZs6cCafTqb6Px+PBvffeixkzZmDlypUwGo247777cNddd+Giiy7CSy+9hKysLDzwwAOorKwMuMdFixbhyiuvxIoVK9C/f3/cfffdWLduXcjPfvToUcyYMQM1NTV4+umn8cQTT+D48eO48cYbUVNTE3FZEhI1jBBCEsjkyZPZ5MmTmcfjUR9bvnw5y8/PZ7W1teyBBx5g+fn5rKysTH1+8+bNLD8/n61duzYet0wIIaQTNDQ0sEGDBrEnnngi4PG//vWv7LbbblPbhy1btqjPVVVVsaFDh7LFixe3+X2OHz/O8vPz2axZswIef/zxx9ngwYNZU1MTY0xpry699NKA16xatYrl5+ezHTt2qI/Jssxuuukmdu211zLGGDt48CDLz89n7733nvoaSZLY1KlTWX5+fpvvkzHGnnvuOTZ06FBWXl6uPuZyudgll1zC5s2bF/B57rvvvoCfveWWW9i0adMYY4xt376d5efns61bt6rPl5WVsWeeeYZVVFQwxhi74YYb2LRp0wLa55KSEjZw4ED2zjvvMMYYW716ddBn++KLL1h+fj5btmyZ+tju3btZfn4+++abbwJ+7tVXXw24x+nTp7NrrrmGMcbYxo0bWX5+Ptu4cSNjjLF77rmHjR8/Xv19MMZYXV0dGzlyJHvqqaciKkdCoolmsAkhCWfo0KEQBEH9d3Z2NgDA4XAAANLT05GXlxf2eUIIIWefHTt2wOPx4PLLLw94/OGHH8arr74KAMjNzcWoUaPU57KyslBUVIQtW7ZE/H7Tp08P+PeUKVMgiiK2b9+uPjZw4MCA12zYsAGZmZkYPHgwPB4PPB4PJEnC5MmTsWfPHjQ0NODnn38GoCwx9+F5HlOmTIn4Hjds2ICBAweie/fu6vvxPI+JEydi/fr1Aa8dPnx4wL+zs7PVJeL9+/dHeno67rrrLixatAjffPMNunXrhgULFiA7OxsOhwM7d+7EpEmTwBhT36tnz57o168ffvrpp4BrFxUVqf9/RkYGAKCwsFB9LDU1FQDQ2NgY8HNTp04N+Pell16KvXv3wmazBX32jRs3ori4GAaDQb0fs9mMUaNGBX12QjqTJt43QAghzRmNxoB/87wyFujb+9b8eY7jAp4nhBBy9qmvrwegDLKG071796DHMjIy8Msvv0T8fs2v5Xtf/+1IJpMp6B5PnTqFwYMHh7zmqVOn1J9PS0sLeC4zMzPie6yvr0dZWVnY9/MfeA7VtjLGAABJSUl49913sXLlSqxZswarVq2CwWDA1VdfjYcffhiNjY2QZRmvvPIKXnnllaD30ev1Af82m81Br2n+/qF069Yt4N8ZGRlgjMFqtQa9tr6+Hl9++WXIfdotfUcIiTUKsAkhhBBCSMJLTk4GoOw77tu3r/r4yZMncezYMYiiiLq6uqCfO336tDqLGonm1/Lt623pWhaLBb1798azzz4b8vnc3Fw1sD59+jTOO+889TnfAEIkLBYLiouLcf/994d8XqfTtflaffv2xeLFiyFJEnbt2oXPPvsM77//PvLy8jBjxgxwHIfZs2fjqquuCvrZtgTPbdHQ0BAQZJ8+fRqCICAlJSXotRaLBePHj8ecOXOCntNoKMQh8UNLxAkhhBBCSMIbNmwYtFotvvvuu4DHX3/9ddxzzz0QBAGlpaUByb2qqqqwfft2jBs3LuL3a55c66uvvoLRaAxY6txccXExKioqkJGRgaFDh6r//fTTT3j11VchCALGjh0LAFi7dm3Azzb/XG1RXFyMo0ePok+fPgHv99lnn+Gjjz4K2G7VkrVr12Ls2LE4deoUBEFAUVERHnvsMSQnJ+PkyZMwm80YNGgQSkpKAt6nf//+WL58OTZt2hTxvYfy/fffq/+/LMtYu3YtCgsLYTAYQn72w4cPY+DAger9DBkyBG+++Sa++eabqNwPIe1BwzuEEEIIISThpaenY+bMmXjzzTeh0+lQXFyMnTt34v3338f999+Pffv2gTGGu+66C3fffTcEQcCLL76IlJQU3HLLLRG/35o1a5CRkYFJkyZh8+bNePfdd3H33XcHLQv3d+211+Kdd97BnDlzcNddd6FHjx5Yv349XnnlFdx8883QarXo1asXbj52W/gAAAMPSURBVLjhBixduhQejwcDBw7EZ599hgMHDkR8j7Nnz8Znn32G2bNn49Zbb0VaWhq+/PJLfPjhh1i4cGGbrzNixAjIsozf//73mDt3LpKSkrBmzRo0NTWpe97vuecezJ07F/feey9+9atfQZIkvP7669i5cyd+97vfRXzvoSxbtgySJKFHjx54//33cfToUbzxxhshX/u73/0OM2bMwJ133okbb7wRer0eq1atwrp16/DCCy9E5X4IaQ8KsAkhhBBCSJewYMECZGRk4IMPPsCrr76K3NxcPPLII5gxYwYefPBBnHfeebj11lvxt7/9DQ6HA+PHj8fKlSvVpFqR+MMf/oDNmzdj1apV6NGjBxYtWoQbb7yxxZ8xmUx49913sWTJEixevBhNTU3IycnBvffei1tvvVV93aOPPopu3brhnXfeQUNDAy688ELcddddWLZsWUT32L17d3zwwQdYsmQJHnvsMbhcLvTu3RtPPPEErr/++jZfJysrC6+++iqef/55/OlPf4LD4VBnp30z7hMmTMBrr72GF198EfPnz4dWq8XgwYPxxhtvBCVQa68nn3wSTz31FMrKypCfn49XXnkFxcXFIV87YMAAvPvuu1i6dCnuv/9+MMaQn5+Pv//977jkkkuicj+EtAfHfNkNCCGEEEII6aIefPBBbN68Gd9++22HrlNeXo5LLrkETz75JK699too3R0h5FxBM9iEEEIIIeSsJ0kSWptX8p1KEW8ej6fV1/A8r56yQQhJHBRgE0IIIYSQs97s2bOxefPmFl+Tk5ODt956q5PuKLxwx275u+aaa/DUU091wt0QQiJBS8QJIYQQQshZr6SkBDabrcXX6HQ6FBQUdNIdhbd79+5WX5OWlobc3NxOuBtCSCQowCaEEEIIIYQQQqKANm4QQgghhBBCCCFRQAE2IYQQQgghhBASBRRgE0IIIYQQQgghUUABNiGEEEIIIYQQEgUUYBNCCCGEEEIIIVFAATYhhBBCCCGEEBIFFGATQgghhBBCCCFRQAE2IYQQQgghhBASBf8P+jnFA2dz5xkAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot uncertainty as a function of nn or true label in a trellis for overview.\n", + "fig, ax =plt.subplots(1,2, figsize=(10, 5), sharey=True)\n", + "sns.regplot(data=df,y='cp_uncert_ensemble',x='nn', ax=ax[0])\n", + "sns.regplot(data=df,y='cp_uncert_ensemble',x='cp_pred_ensemble', ax=ax[1]).set(ylabel='')\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to the VA uncertainty, the largest ensemble uncertainty is observed for test set molecules that are neither very similar nor very dissimilar to the active training set, which are hence difficult to predict. Larger uncertainty is also seen toward the midpoint of the ChemProp predictions, for cases when the probabilistic output from models is also neither very high nor very low." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ChemProp dropout uncertainty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ChemProp uncertainty based on dropout is available for single model and not an ensemble (i.e. when ChemProp is provided with `ensemble_size=1`. It is based on the implementation in the [original ChemProp package](https://github.com/chemprop/chemprop#uncertainty-estimation)\n", + "\n", + "The method uses Monte Carlo dropout to generate a virtual ensemble of models and reports the ensemble variance of the predictions.\n", + "\n", + "Note that this dropout is distinct from dropout regularization used during training, which is not active during predictions.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:01:03,422] A new study created in memory with name: my_study\n", + "[I 2024-07-02 14:01:03,468] A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__c73885c5d5a4182168b8b002d321965a': 'ReLU', 'aggregation__c73885c5d5a4182168b8b002d321965a': 'mean', 'aggregation_norm__c73885c5d5a4182168b8b002d321965a': 100, 'batch_size__c73885c5d5a4182168b8b002d321965a': 50, 'depth__c73885c5d5a4182168b8b002d321965a': 3, 'dropout__c73885c5d5a4182168b8b002d321965a': 0.0, 'features_generator__c73885c5d5a4182168b8b002d321965a': 'none', 'ffn_hidden_size__c73885c5d5a4182168b8b002d321965a': 300, 'ffn_num_layers__c73885c5d5a4182168b8b002d321965a': 2, 'final_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a': -4, 'hidden_size__c73885c5d5a4182168b8b002d321965a': 300, 'init_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a': -4, 'max_lr_exp__c73885c5d5a4182168b8b002d321965a': -3, 'warmup_epochs_ratio__c73885c5d5a4182168b8b002d321965a': 0.1, 'algorithm_name': 'ChemPropClassifier', 'ChemPropClassifier_algorithm_hash': 'c73885c5d5a4182168b8b002d321965a'}\n", + "[I 2024-07-02 14:02:28,149] Trial 0 finished with value: 0.46875 and parameters: {'algorithm_name': 'ChemPropClassifier', 'ChemPropClassifier_algorithm_hash': 'c73885c5d5a4182168b8b002d321965a', 'activation__c73885c5d5a4182168b8b002d321965a': , 'aggregation__c73885c5d5a4182168b8b002d321965a': , 'aggregation_norm__c73885c5d5a4182168b8b002d321965a': 100.0, 'batch_size__c73885c5d5a4182168b8b002d321965a': 50.0, 'depth__c73885c5d5a4182168b8b002d321965a': 3.0, 'dropout__c73885c5d5a4182168b8b002d321965a': 0.0, 'ensemble_size__c73885c5d5a4182168b8b002d321965a': 1, 'epochs__c73885c5d5a4182168b8b002d321965a': 5, 'features_generator__c73885c5d5a4182168b8b002d321965a': , 'ffn_hidden_size__c73885c5d5a4182168b8b002d321965a': 300.0, 'ffn_num_layers__c73885c5d5a4182168b8b002d321965a': 2.0, 'final_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a': -4, 'hidden_size__c73885c5d5a4182168b8b002d321965a': 300.0, 'init_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a': -4, 'max_lr_exp__c73885c5d5a4182168b8b002d321965a': -3, 'warmup_epochs_ratio__c73885c5d5a4182168b8b002d321965a': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: 0.46875.\n", + " \r" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt_gt_330\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " ),\n", + " descriptors=[\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " ChemPropClassifier.new(epochs=5), #ensemble_size not supplied (defaults back to 1) \n", + " #to ensure uncertainty will be based on dropout\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " chemprop_model = pickle.load(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + } + ], + "source": [ + "# add chemprop uncertainty & prediction to the df \n", + "df[\"cp_pred_dropout\"], df[\"cp_uncert_dropout\"] = chemprop_model.predict_from_smiles(df[config.data.input_column], uncert=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to previous findings using ensembling, the dropout approach toward uncertainty shows largest uncertainty for marginal cases neither similar not dissimilar to training, and with proabilities toward the midpoint (0.5):" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9gAAAHkCAYAAADFDYeOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxkVZ03/s+599atNZWt00nT6U43W9OtCKIsLcjiKCAwM+Dg9owDg4/DOC48OCM6zuPj4MbjKOMCyPDITwSccWFAXKARVBRUbEBWkaYFupNe6CzdWWqvu53fH7dupfZUKpWkknzerxcKqUrl3FtJnfM953u+R0gpJYiIiIiIiIhoTpTFbgARERERERHRcsAAm4iIiIiIiKgJGGATERERERERNQEDbCIiIiIiIqImYIBNRERERERE1AQMsImIiIiIiIiagAE2ERERERERURMwwCYiIiIiIiJqAgbYRERERERERE2gLXYDlgspJRxHLnYzFpyiiBV53fXi/amO96Y23p/qeG9qm+39URQBIcQ8tqhYrf5yuby3y+E6lsM1AMvjOpbDNQDL4zqWwzUAvI5Gf1a9fSUD7CZxHInx8eRiN2NBaZqCzs4wYrEULMtZ7Oa0HN6f6nhvauP9qY73prZG7k9XVxiqunABdrX+crm8t8vhOpbDNQDL4zqWwzUAy+M6lsM1ALyORs2mr2SKOBEREREREVETMMAmIiIiIiIiagIG2ERERERERERNwACbiIiIiIiIqAkYYBMRERERERE1AQNsIiIiIiIioiZggE1ERERERETUBAywiYiIiIiIiJqAATYRERERERFREzDAJiIiIiIiImoCBthERERERERETcAAm4iIiIiIiKgJtMVuANFK4EiJPSNxJFImIiEf1ve2QRFisZtFRERELcgbN6SyNtb2mugMc8hOtFTwr5Vonj2/exw//u1uDI+nYNsSqirQ1xXC+acMYPOGrsVuHhEREbWQHYPjuHf7UH7coPtU9HYG8daT13PcQLQEMEWcaB498+IYvrVtB/aNJeD3qYhGdPh9KvaNJXHb/TuxY3B8sZtIRERELWLH4Dhuu39nftzQ3qYj4FexdzTBcQPREsEAm2ieOFLizgdfRMaw0RHxQ/epUISA7lPREdGRMWzcu30IjpSL3VQiIiJaZI6UuHf7EDKGVTRu8PtUdLRx3EC0VDDAJponQ8Nx7B9NIBzUIEr2WwshEA5oGB5PYc9IfJFaSERERK1iz0gcw+MphAM+jhuIljAG2ETzJJ4yYdkONK3yn5mmKbBtiUTKXOCWERERUatJpEzYtuS4gWiJY4BNNE/aQj5oqgLLcio+blkOVFUgEvItcMuIiIio1URCPqiq4LiBaIljgE00Twb62rB2dQTJtAVZsl9KSolkxkJfVwjre9sWqYVERETUKtb3tqGvK4RkhuMGoqWMATbRPFGEwMVvOgoBXcVkwoBh2nCkhGHamEwYCOgqzj9lgOdhExERERQhcP4pA2XjhqxhYzLOcQPRUsEAm2geHXdUDy47bzP6e8LImjZiCQNZ00Z/TxiXnrOJ51kSERFR3uYNXbj0nE35ccNU3EDGsLFudYTjBqIlQlvsBhAtd1s2duHI/nbsGYkjkTIRCfmwvreNM9BERERUZvOGLmwa6MSekThSWRtre6PoDGtwbB7PRbQUMMAmWgCKENjQF13sZhAREdES4I0bNE1BZ2cYExNJOGCATbQUMEWciIiIiIiIqAkYYBMRERERERE1AQNsIiIiIiIioiZggE1ERERERETUBAywiYiIiIiIiJqAATYRERERERFREzDAJiIiIiIiImoCBthERERERERETcAAm4iIiIiIiKgJFj3AdhwH1113Hd74xjfi+OOPx9/93d9h7969VZ8/MTGBf/qnf8KJJ56Ik046CZ/+9KeRTqeLnnPffffhvPPOw2te8xpceOGF+N3vflf19X784x9j06ZN2LdvX9OuiYiIiIiIiFaeRQ+wb7zxRnznO9/BZz/7WXzve9+D4zh43/veB8MwKj7/iiuuwNDQEG699VZ87Wtfw0MPPYSrr746//j27dtx1VVX4V3vehfuvvtubN26FZdffjlefvnlstfav38/PvOZz8zXpREREREREdEKsqgBtmEYuOWWW3DFFVfgzDPPxDHHHIOvfOUrGB4exgMPPFD2/KeeegqPPfYY/u3f/g2vetWrsHXrVnzmM5/Bj370I4yMjAAAbr75Zrz5zW/GJZdcgiOOOAIf//jH8apXvQq33XZb0Ws5joOrrroKr3rVqxbkWomIiIiIiGh5W9QA+4UXXkAymcTWrVvzX4tGo9iyZQsef/zxsuf//ve/R09PD4444oj810466SQIIfDEE0/AcRw8+eSTRa8HACeffHLZ6910000wTRN///d/3+SrIiIiIiIiopVIW8wfPjw8DABYs2ZN0ddXr16df6zQyMhI2XN1XUdHRwcOHDiAWCyGVCqFvr6+mq/37LPP4pZbbsGdd96ZX/luBk1b9Iz7BaWqStH/UzHen+p4b2rj/amO96a2pXJ/KvWXS6XtM1kO17EcrgFYHtexHK4BWB7XsRyuAeB1LIRFDbC94mS6rhd93e/3Y2pqquLzS5/rPT+bzSKTyVR9vWw2CwBIpVL46Ec/io9+9KPYsGFD0wJsRRHo7Aw35bWWmmg0uNhNaGm8P9Xx3tTG+1Md701trXx/ZuovW7nts7EcrmM5XAOwPK5jOVwDsDyuYzlcA8DrmE+LGmAHAgEA7l5s798BIJvNIhgsv1mBQKBi8bNsNotQKAS/359/vdLHvdf73Oc+h40bN+Jd73pX064DABxHIhZLNfU1W52qKohGg4jF0rBtZ7Gb03J4f6rjvamN96c63pvaGrk/0WhwQVcAqvWXy+W9XQ7XsRyuAVge17EcrgFYHtexHK4B4HU0ajZ95aIG2F669+joKNavX5//+ujoKDZt2lT2/L6+Pvz85z8v+pphGJicnMTq1avR0dGBUCiE0dHRoueMjo6it7cXAHDXXXdB13W89rWvBQDYtg0AuOCCC/D+978f73//+xu+Hstaur+kc2Hbzoq99nrw/lTHe1Mb7091vDe1tfr9qdW2Vm97vZbDdSyHawCWx3Ush2sAlsd1LIdrAHgd82lRk9aPOeYYRCIRPProo/mvxWIxPP/88zjxxBPLnn/iiSdieHgYQ0ND+a899thjAIDXve51EELghBNOyH/N8+ijj+L1r389AOCBBx7APffcgx/+8If44Q9/iM997nMAgG984xtNX9UmIiIiIiKilWNRV7B1Xcd73vMeXHvttejq6sLatWvxpS99CX19fTj77LNh2zbGx8fR1taGQCCA4447DieccAI+8pGP4Oqrr0YqlcKnPvUpXHjhhfkV6ssuuwyXX345tmzZgtNPPx133XUXduzYgc9//vMAgIGBgaI2eMXPDjvsMHR0dCzo9RMREREREdHysehl16644gpcfPHF+OQnP4l3v/vdUFUV3/zmN+Hz+XDgwAGcdtpp2LZtGwBACIEbbrgB/f39uPTSS3HllVfi9NNPx9VXX51/vdNOOw3XXHMNvvvd7+Kiiy7C9u3bcdNNNxUd7UVERERERETUbEJKKRe7EcuBbTsYH08udjMWlKYp6OwMY2Ii2XJ7H1oB7091vDe18f5Ux3tTWyP3p6srvKBFzqr1l8vlvV0O17EcrgFYHtexHK4BWB7XsRyuAeB1NGo2feWir2ATERERERERLQcMsImIiIiIiIiagAE2ERERERERURMwwCYiIiIiIiJqAgbYRERERERERE3AAJuIiIiIiIioCRhgExERERERETUBA2wiIiIiIiKiJmCATURERERERNQEDLCJiIiIiIiImkBb7AYQLTRHSuwZiSORMhEJ+bC+tw2KEIvdLCIiIlrGOP4gWhkYYNOKsmNwHPduH8LweAq2LaGqAn1dIZx/ygA2b+ha7OYRERHRMsTxB9HKwRRxWjF2DI7jtvt3Yt9YAn6fimhEh9+nYt9YErfdvxM7BscXu4lERES0zHD8QbSyMMCmFcGREvduH0LGsNAR8UP3qVCEgO5T0RHRkTFs3Lt9CI6Ui91UIiIiWiY4/iBaeRhg04qwZySO4fEUwgEfRMl+JyEEwgENw+Mp7BmJL1ILiYiIaLnh+INo5WGATStCImXCtiU0rfKvvKYpsG2JRMpc4JYRERHRcsXxB9HKwwCbVoRIyAdVFbAsp+LjluVAVQUiId8Ct4yIiIiWK44/iFYeBti0IqzvbUNfVwjJjAVZss9JSolkxkJfVwjre9sWqYVERES03HD8QbTyMMCmFUERAuefMoCArmIyYcAwbThSwjBtTCYMBHQV558ywPMoiYiIqGk4/iBaeRhg04qxeUMXLj1nE/p7wsiaNmIJA1nTRn9PGJees4nnUBIREVHTcfxBtLJoi90AooW0eUMXNg10Ys9IHImUiUjIh/W9bZw5JiIionnD8QfRysEAm1YcRQhs6IsudjOIiIhoBeH4g2hlYIo4ERERERERURMwwCYiIiIiIiJqAgbYRERERERERE3AAJuIiIiIiIioCRhgExERERERETUBA2wiIiIiIiKiJmCATURERERERNQEDLCJiIiIiIiImoABNhEREREREVETMMAmIiIiIiIiagIG2ERERERERERNwACbiIiIiIiIqAkYYBMRERERERE1AQNsIiIiIiIioiZggE1ERERERETUBAywiYiIiIiIiJqAATYRERERERFREzDAJiIiIiIiImoCBthERERERERETcAAm4iIiIiIiKgJGGATERERERERNYG22A0gopk5UmLPSByJlIlIyIf1vW1QhFjsZhERERFRi+G4cXExwCZqcTsGx3Hv9iEMj6dg2xKqKtDXFcL5pwxg84auxW4eEREREbUIjhsXH1PEiVrYjsFx3Hb/TuwbS8DvUxGN6PD7VOwbS+K2+3dix+D4YjeRiIiIiFoAx42tgQE2UYtypMS924eQMSx0RPzQfSoUIaD7VHREdGQMG/duH4Ij5WI3lYiIiIgWEceNrYMBNlGL2jMSx/B4CuGAD6Jk34wQAuGAhuHxFPaMxBephURERETUCuodNw4Nc9w43xhgE7WoRMqEbUtoWuU/U01TYNsSiZS5wC0jIiIiolZS77gxznHjvGOATdSiIiEfVFXAspyKj1uWA1UViIR8C9wyIiIiImol9Y4b2zhunHcMsIla1PreNvR1hZDMWJAl+2WklEhmLPR1hbC+t22RWkhEREREraDeceNAH8eN840BNlGLUoTA+acMIKCrmEwYMEwbjpQwTBuTCQMBXcX5pwzwXEMiIiKiFY7jxtbBAJtWLEdKDA7H8NyuQxgcjrVkVcXNG7pw6Tmb0N8TRta0EUsYyJo2+nvCuPScTTzPkIiIiBbFUhhHrTQcN7YGbbEbQLQYdgyO497tQxgeT8G2JVRVoK8rhPNPGWi5D5/NG7qwaaATe0biSKRMREI+rO9t4wwkERERLYqlNI5aaThuXHwMsGnF2TE4jtvu34mMYSEc8EELKrAsB/vGkrjt/p0tOcOnCIENfdHFbgYRERGtcEtxHLXScNy4uJgiTiuKIyXu3T6EjGGhI+KH7lOhCAHdp6IjoiNj2Lh3+xDTnIiIiIhKcBxFNDMG2LSi7BmJY3g8hXDAB1GSKiOEQDigYXg8hT0j8UVqIREREVFr4jiKaGZMEaemcaRs+f0eiZQJ25bQgpXnljRNQSpjIZEyF7hlRERE1GqWwthmIXEcRTQzBtjUFEul2EUk5IOqCliWA92nlj1uWQ5UVSAS8i1C64iIiKhVLJWxzULiOIpoZkwRpzl7frdb7GLfWAJ+n4poRIffp+aLXewYHF/sJuat721DX1cIyYwFWbI/SEqJZMZCX1cI63vbFqmFREREtNi8Ql5LYWyzkDiOIpoZA2yaE8eRuOeRwSVT7EIRAuefMoCArmIyYcAwbThSwjBtTCYMBHQV558ysKLTv4iIiFYyFvKqjuMoopkxwKY52bV/CgcOJZdUsYvNG7pw6Tmb0N8TRta0EUsYyJo2+nvCPFqCiIhohWMhr9o4jiKqjXuwaU5iSQOWLRFaYsUuNm/owqaBThYuISIioiIs5DUzjqOIqmOATXMSDevQlmixC0UIbOiLLnYziIiIqIWwkFd9OI4iqowp4jQnh69tx5ruMItdEBER0bLAQl5ENBcMsGlOFEXggjdsYLELIiIiWhZYyIuI5oIBNs3Zlo0sdkFERETLBwt5EVGjuAebmoLFLoiIiGg54diGiBrBAJuahsUuiIiIaDnh2IaIZosp4kRERERERERNwACbiIiIiIiIqAkYYBMRERERERE1AQNsIiIiIiIioiZggE1ERERERETUBAywiYiIiIiIiJqAATYRERERERFREzDAJiIiIiIiImoCbbEbQNTKHCmxZySORMpEJOTD+t42KEIsdrOIiIiIGsKxDdH8WvQA23Ec3HDDDfjv//5vxONxnHjiifjUpz6FdevWVXz+xMQEPve5z+Hhhx+GEALnn38+PvaxjyEYDOafc9999+H666/Hvn37cPjhh+PjH/84tm7dmn/8j3/8I774xS/i2Wefhd/vx9lnn42rrroKbW1t8369tHTsGBzHvduHMDyegm1LqKpAX1cI558ygM0buha7eURERESzwrEN0fxb9BTxG2+8Ed/5znfw2c9+Ft/73vfgOA7e9773wTCMis+/4oorMDQ0hFtvvRVf+9rX8NBDD+Hqq6/OP759+3ZcddVVeNe73oW7774bW7duxeWXX46XX34ZAHDw4EFcdtllWLt2LX7wgx/gxhtvxBNPPIF//ud/XojLpSVix+A4brt/J/aNJeD3qYhGdPh9KvaNJXHb/TuxY3B8sZtIREREVDeObYgWxqIG2IZh4JZbbsEVV1yBM888E8cccwy+8pWvYHh4GA888EDZ85966ik89thj+Ld/+ze86lWvwtatW/GZz3wGP/rRjzAyMgIAuPnmm/HmN78Zl1xyCY444gh8/OMfx6te9SrcdtttAID9+/fjtNNOw2c+8xls3LgRJ5xwAt7xjnfgt7/97YJeO7UuR0rcu30IGcNCR8QP3adCEQK6T0VHREfGsHHv9iE4Ui52U4mIiIhmxLEN0cJZ1AD7hRdeQDKZLErfjkaj2LJlCx5//PGy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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot uncertainty as a function of nn or true label in a trellis for overview.\n", + "fig, ax =plt.subplots(1,2, figsize=(10, 5), sharey=True)\n", + "sns.regplot(data=df,y='cp_uncert_dropout',x='nn', ax=ax[0])\n", + "sns.regplot(data=df,y='cp_uncert_dropout',x='cp_pred_dropout', ax=ax[1]).set(ylabel='')\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Comparison of dropout vs. ensemble uncertainties can be performed as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:matplotlib.category:Using categorical units to plot a list of strings that are all parsable as floats or dates. If these strings should be plotted as numbers, cast to the appropriate data type before plotting.\n", + "INFO:matplotlib.category:Using categorical units to plot a list of strings that are all parsable as floats or dates. If these strings should be plotted as numbers, cast to the appropriate data type before plotting.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R2 correlation between drouput and ensemble uncertatinties:-100.98\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9cAAAHkCAYAAAA0BtwDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxU9bk/8M9ZZp/sZAFCwqKyuYGAUK0rrlgvWq9trct1t4pordRa+SmIUosUEZRysVWx19ZqFWwVi9fa6m0VBERta8AFEgiQhWyzZebMWX5/nJkhk0xCMjPJZPm8Xy9fyMyZM98zM2HyfL/P93kEwzAMEBEREREREVHSxEwPgIiIiIiIiGigY3BNRERERERElCIG10REREREREQpYnBNRERERERElCIG10REREREREQpYnBNRERERERElCIG10REREREREQpYnBNRERERERElCIG10REREREREQpkjM9gMHCMAzoupHpYfQqURQG/TW2x2se/Iba9QJD75r72/WKogBBEDI9DIoYCt/fRESUmu5+dzO4ThNdN9DY6M/0MHqNLIvIy3PB4wlAVfVMD6dP8JoH/zUPtesFht4198frzc93QZIYXPcXg/37m4iIUtfd726mhRMRERERERGliME1ERERERERUYoYXBMRERERERGliME1ERERERERUYoYXBMRERERERGliME1ERERERERUYoYXBMRERERERGliME1ERERERERUYoYXBMRERERERGliME1ERERERERUYoYXBMRERERERGliME1ERERERERUYrkTA+AiKindMPAvlovfIEw3E4LyoqzIApCpodFREREREMYg2siGlAqKhvx5pYq1DQGoGkGJElASb4Tc2aWY+Lo/EwPj4iIiIiGKKaFE9GAUVHZiPWbd6O63gebRUK22wqbRUJ1vR/rN+9GRWVjpodIREREREMUg2siGhB0w8CbW6oQVFTkum2wWiSIggCrRUKu24qgouHNLVXQDSPTQyUiIiKiIYhp4UQ0IOyr9aKmMQCX3QKh3f5qQRDgssuoaQxgX60Xo0uyMzRKIqL+q66uFq2tgUwPY0ByOJwoKirO9DCIqJ9jcE1EA4IvEIamGZAdiRNuZFlEIKjCFwj38ciIiPo/r9eD+++/Bwaze5IiiiKeeGINsrI4eUtEnWNwTUQDgttpgSQJUFUdVovU4X5V1SFJAtxOSwZGR0TUv2VlZeNnP1vRb1euDx06gHXr1uCWW27H8OEjMz2cDhwOJwNrIjoqBtdENCCUFWehJN+J6no/LLIYlxpuGAb8QRWlhS6UFWdlcJRERP3XQEhrHj58JMrLx2R6GERESWFBMyIaEERBwJyZ5bBbJTT7FChhDbphQAlraPYpsFslzJlZzn7XRERERJQRDK6JaMCYODof110wHqWFLoTCGjw+BaGwhtJCF667YDz7XBMRERFRxjAtnIgGlImj8zG+PA/7ar3wBcJwOy0oK87iijURERERZRSDayIacERBYLstIiIiIupXmBZORERERERElCIG10REREREREQpYnBNRERERERElCIG10REREREREQpYnBNRERERERElCIG10REREREREQpYnBNRERERERElCIG10REREREREQpYnBNREREPRIKhbB48WLMmjULU6ZMwY9+9CM0NjZ2+Zjq6mrceuutmDp1Kk4//XSsXLkSmqbFHfPiiy/i3HPPxYknnoirrroKn3/+edz9H3/8Ma655hqccsop+OY3v4kHHngAzc3N6b48IiKipGQ8uNZ1HatWrcI3v/lNnHzyybj55puxf//+To9vamrCj370I0yfPh0zZszA4sWL0draGnfMW2+9hYsvvhgnnngi5s6diw8//LDT8/3xj3/E+PHjUV1dnbZrIiIiGswWLVqEv//971i9ejXWr1+PPXv2YP78+Z0eHw6HceONNwIAXnrpJSxatAi/+93v8PTTT8eO2bBhA5YtW4a77roLr732GkpLS3H99dfHgva9e/fixhtvxPjx4/Hyyy/jiSeewGeffYa77rqrdy+WiIiomzIeXK9Zswa//e1vsWTJErz00kvQdR033XQTFEVJePz8+fNRVVWF559/Hk8++STee+89LFq0KHb/li1bsGDBAnz3u9/Fhg0bMGvWLNxyyy34+uuvO5zrwIEDePjhh3vr0oiIiAad2tpabNy4EQsXLsS0adNw4oknYsWKFdi2bRt27tyZ8DGbN2/GwYMHsWzZMhx33HGYPXs27rnnHqxfvz72fb927VpcffXVuPTSS3HMMcdg6dKlcDgceOWVVwAAGzduRFFRER544AGMGzcO06ZNw0MPPYQtW7Z0OSlPRETUVzIaXCuKgmeffRbz58/HWWedhQkTJuCJJ55ATU0N3n77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40bl4toLxnfocz2y0IU5M8tx3KjcQf8aDIX3ua2+vl7dMPDHf+xFq6Ii122LFc+zyBJy3CKafQr++I+9OKY0p9dSxPkeExEREaVXRoNrq9WKq6++GsuXL0d+fj5GjhyJxx9/HCUlJTj//POhaRoaGxuRlZUFu92Ok046CVOnTsUPf/hDLFq0CIFAAA8++CDmzp0bW5m+/vrrccstt2DSpEk444wz8Oqrr6KiogKPPvooAOCSSy7BunXrsGDBAtx7771oaWnBI488ghNPPBFnn312Jl8O6kcmjs7H5HEFaPKrOFDrgdMmoay4d/fC0tDRk6r0o0uyMzRKIiIiIuqJjOelzZ8/H1dccQUWLlyI733ve5AkCb/+9a9hsVhw6NAhnH766di0aRMA85fOp556CqWlpbjuuutw991344wzzsCiRYti5zv99NOxdOlS/O53v8Nll12GLVu2YO3atbFV6dzc3FjP6+9973u44447MGnSJPz617+GJEl9fv3Uf4mCgGNG5eLEcQUYXZLNwJrSJlaVvpOieLIsQtMMVqUnIiIiGkAyunINAJIkYcGCBViwYEGH+0pLS7F79+642woKCrBq1aouzzl37twuC5ONGTMG//3f/53UeImIUuV2WiBJAlRVh9XScVJPVXVIkgC305KB0RERERFRMjK+ck1ENNSUFWehJN8Jf1CFYRhx9xmGAX9QRUm+E2XFWRkaIRERERH1FINrIqI+JgoC5swsh90qodmnQAlr0A0DSlhDs0+B3SphzsxybkUgIiIiGkAYXBMRZcDE0fm47oLxKC10IRTW4PEpCIU1lBa6cN0F4zFxdPrbcBERERFR70lqz/VTTz2F//zP/4xV6G6ruroazz77LB588MGUB0dENJhNHJ2P8eV52FfrhS8QhttpYVV6IiIiogEqqZXrp59+GrW1tQnv+/TTT/HKK6+kNCgi6j7dMFBZ48G/9jSgssYDvd0eXurfREHA6JJsHD+WVemJiIiIBrJur1x/97vfxaeffgrALLjzne98p9NjTzjhhNRHRkRHVVHZiDe3VKGmMQBNMyBJAkrynZgzs5xpxQnohhG3Sjx2ZE6mh0REREREg0S3g+tHHnkEf/7zn2EYBp5++ml8+9vfRklJSdwxoigiOzsb559/ftoHSkTxKiobsX7zbgQVFS67BbJDhKrqqK73Y/3m3dy3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jz32GP785z8jGAzinHPOwQMPPNDlCnl1dTWWLFmCbdu2wel04oorrsCdd94JSTqyZePFF1/Es88+i/r6ehx//PFYuHAhJk2aFLvf5/Ph8ccfx+bNmxEOhzF9+nQ88MADHTLpiIiIMiGp4Pr222/HjTfeiJaWFlx88cUoLCxEfX093nzzTfz973/HqlWr0j1OGsR62sIpkzK937VtoFfTFICqGXD1k723XQWxyU6SpOv17mx1PNE+7Lb666RPb7zWNPD85Cc/ift7dAKq7RaItpNS6QyuFy1ahO3bt2P16tWwWq146KGHMH/+fPzP//xPwuPD4TBuvPFGjB49Gi+99BL27duHBx54AKIoYv78+QCADRs2YNmyZViyZAkmTZqEdevW4frrr8dbb70VC9rvvPNOHDp0CE8//TRcLheWLFmCH/zgB/jjH/8IUUxqpxsREVHaJBVcn3baaXjsscewfPnyuP3Vw4YNw9KlS3HeeeelbYA0uPWn1ObucDstEEWgNahCFAWIogBrm9Tc3tzv2j7QM2AgEFQhSwKynNYOx2di721XKd7JSGe7rs5WxzvT3yd90v1a08Dzl7/8Jfb/FRUVWLBgAW6//XZcdNFFKCoqQlNTE959912sXr0aP/vZz9L2vLW1tdi4cSPWrl2LadOmAQBWrFiBCy+8EDt37sSUKVM6PGbz5s04ePAgXn75ZeTk5OC4445DQ0MDli1bhttuuw1WqxVr167F1VdfjUsvvRQAsHTpUsyePRuvvPIKbr31VmzduhUffvghXn/9dYwfPx4AsHjxYtx8882orKzE2LFj03aNREREyUgquP7www9x4YUX4j/+4z+wZ88etLS0ICcnB2PHju2QuknUlf6U2twd/qAKJawjEFIgCAIEABZZRLbLCrtV6rX9rokCvXBYg79VRZM3BFkU4LAfCTAzufe2p0FsVzK1v3igTPqk87WmgWfkyJGx/7/zzjtx++234+abb47dVlxcjO9973tQFAWPP/44zjzzzLQ8744dOwAAM2fOjN02ZswYFBcXY9u2bQmD6+3bt2Py5MnIycmJ3TZz5kz4fD5UVFSgtLQUlZWVmDVrVux+WZYxbdo0bNu2Dbfeeiv+/ve/47jjjosF1gBwzDHH4K9//WtarouIiChVSeVQ3XnnnXj77bchCALGjRuHqVOnYty4cQysB4G+7pfc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uW5aWvr9m4iI6q6m927e3YmIiIiIiIjqiMk1ERERERERUR0xuSYiIiIiIiKqIybXRERERERERHXE5JqIiIiIiIiojphcExEREREREdURk2siIiIiIiKiOuI61/VEFEVYLC37UsrlMpjNTWOd2MbCmFu+1hYv0PpibmrxymQCBEFwdjOoVGu4fxMRUd3U9N7N5JqIiIiIiIiojlgWTkRERERERFRHTK6JiIiIiIiI6ojJNREREREREVEdMbkmIiIiIiIiqiMm10RERERERER1xOSaiIiIiIiIqI6YXBMRERERERHVEZNrIiIiIiIiojpick1ERERERERUR0yuiYiIiIiIiOqIyTURERERERFRHTG5JiIiIiIiIqojJtethMViwdq1a9GvXz9ERUVh0qRJuHz5cqX75+XlYebMmYiJiUFsbCwWLVqEkpISu30OHz6MxMREREREYPjw4Thx4kSlx/vwww8REhKC7OzseoupKs6I12g0IjU1VTrnmDFjkJmZ2SDxOeKMmG/evImZM2eid+/eiIuLw4wZM5Cbm9sg8TnSEDHbZGRkICwsrE7HqG/OiPfnn39GUlIS4uLiEB8fj2nTpuHKlSv1FlN1nBFzWY39u4uotantzzhRa7Np0yaMHTvW2c2gmhKpVVi3bp0YFxcnHj16VMzMzBQnTpwoDho0SNTr9Q73HzNmjDhixAjx+++/F48fPy4OGDBAnDNnjvT6iRMnxG7duom7du0Sf/nlF/G1114T77vvPvGXX36pcKzs7GyxZ8+eYnBwsHj58uUGi7EsZ8Q7d+5csU+fPuJXX30l/vLLL+Lzzz8v3n///WJhYWGDxyuKzol5zJgx4qhRo8Tz58+L586dE5988klxxIgRDR6rTX3HbJOeni7GxsaKwcHBd3yMhtDY8d66dUu8//77xeeff1788ccfxe+++04cPXq0+PDDD4s6na5BYizPGZ+xjTN+dxG1NrX9GSdqTd566y0xNDRUHDNmjLObQjXE5LoV0Ov1YnR0tPj2229L2woKCsSIiAjxo48+qrD/N998IwYHB9slUceOHRNDQkLEnJwcURRFceLEieILL7xg976RI0eKr7zyit02s9ks/r//9//EcePGNdoXVGfEe+nSJTEkJEQ8evSo3TkHDBggHj9+vB6jc8wZMRcUFIjBwcHif/7zH+n1I0eOiMHBwWJe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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot uncertainty as a function of va_prediction and true label in a trellis for overview.\n", + "r2 = r2_score(y_true=df['cp_uncert_dropout'], y_pred=df['cp_uncert_ensemble'])\n", + "print(f\"R2 correlation between drouput and ensemble uncertatinties:{r2:.2f}\")\n", + "\n", + "fig, ax =plt.subplots(1,2, figsize=(10, 5))\n", + "df['cp_uncert_delta']=df['cp_uncert_dropout']-df['cp_uncert_ensemble']\n", + "sns.regplot(data=df,y='cp_uncert_dropout',x='cp_uncert_ensemble', ax=ax[0])\n", + "sns.boxplot(data=df,y='cp_uncert_delta',x='activity', ax=ax[1])\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Findings show that a limited correlation between dropout and ensemble uncertainty for the toy example (real world examples with more epochs/more predictive models will be different)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### MAPIE (regression uncertainty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For regression uncertainty, the MAPIE package is available within QSARtuna for regression algorithms, and is selected like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:22:47,822] A new study created in memory with name: my_study\n", + "[I 2024-07-02 14:22:47,862] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:22:49,237] Trial 0 finished with value: -4430.271946796234 and parameters: {'algorithm_name': 'Mapie', 'Mapie_algorithm_hash': '976d211e4ac64e5568d369bcddd3aeb1', 'mapie_alpha__976d211e4ac64e5568d369bcddd3aeb1': 0.05, 'max_depth__976d211e4ac64e5568d369bcddd3aeb1': 9, 'n_estimators__976d211e4ac64e5568d369bcddd3aeb1': 50, 'max_features__976d211e4ac64e5568d369bcddd3aeb1': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -4430.271946796234.\n" + ] + } + ], + "source": [ + "from optunaz.config.optconfig import Mapie\n", + " \n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-300/train.csv\", # This will be split into train and test.\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(),\n", + " ],\n", + " algorithms=[Mapie.new( # mapie 'wraps' around a regressor of choice\n", + " estimator=RandomForestRegressor.new(n_estimators={\"low\": 50, \"high\": 50})\n", + " )\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " mapie = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Analysis of the nn's and behaviour of uncertainty vs. predicted values can be perfomed like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "# get training data, mols & fingerprints\n", + "train_df = pd.read_csv('../tests/data/DRD2/subset-300/train.csv') # Load test data.\n", + "PandasTools.AddMoleculeColumnToFrame(train_df,'canonical','molecule',includeFingerprints=True)\n", + "train_df[\"fp\"]=train_df[\"molecule\"].apply(lambda x: AllChem.GetMorganFingerprint(x,2 ))\n", + "\n", + "# get test data, mols & fingerprints and calculate the nn to training set\n", + "df = pd.read_csv('../tests/data/DRD2/subset-50/train.csv') # Load test data.\n", + "PandasTools.AddMoleculeColumnToFrame(df,'canonical','molecule',includeFingerprints=True)\n", + "df[\"fp\"]=df[\"molecule\"].apply(lambda x: AllChem.GetMorganFingerprint(x,2 ))\n", + "df['nn']=df[\"fp\"].apply(lambda x: max(DataStructs.BulkTanimotoSimilarity(x,[i for i in train_df[\"fp\"]])))\n", + "\n", + "mapie.predictor.mapie_alpha=0.99 # it is possible to alter the alpha of mapie post-train using this approach\n", + "\n", + "# add uncertainty & prediction to the df \n", + "df['mapie_pred'], df['mapie_unc'] = mapie.predict_from_smiles(df[config.data.input_column], uncert=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting mapie uncertainty as a product of the nearest neighbors/mapie predictions is performed here:" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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j1+vGcraWr9Lh/bA6xtzUFphh9koQ5ZFuN0e1Na5YdBJuHRoD1RWtv56tzf+/cKbr/WzWo0h34IVKbGRWhaun8tQj+fNCddrHQzhEB8p+ERBwLjsNKzYlIuKGifMhpNigb0+FozLTuN619TpBD25VhQF6enpLe5funQp4uPjvT8eG84ZMGAA8vPzAQBdu3ZFSUlJo/NKSkpgMpm83SP94Xb7/gWsqh6/zgsX/tYvo0cMbhybeWItxDo3JElA9wQzxmWnIaNHTEhcN/79wlsk1S/SYiO1LNzet+ESz5sTbteaKJT17xmHSSfFApu9Phak/BoLuM41dUZBT65PJzk5GeXl5SgpKUFiYiIAwOPx4MCBA7jgggsAAEOGDMG3337b6Lxt27Zh8ODBEEXefQ0V/XvGITMtFgXF1aixuWAxKUhNiuJdTSI/MDZSMDGeExHAWEB0qpBPri+88EL06NEDM2bMwAMPPACLxYJly5bh6NGjuPHGGwEAEydOxPjx4zF//nyMHz8en3/+OT766CMuNxOCREFAz2RrsItBFPYYGynYGM+JCGAsIDpZyDddmEwmvPHGG+jevTumT5+OP//5zzh69CjefvttpKSkAAD69u2LRYsW4fPPP8eVV16Jf/7zn5g3b16TJWiIiCIFYyMRERFRaBE0LnbaLFX1oKysttXHy7KI2FgzystrI3I8F+sX3li/xuLizJywx0++xkZqWaR/LkMJr3XrMT76j/Gx/fAzGxi8zq3X2tjI6ElERERERETURkyuiYiIiIiIiNqIyTURERERERFRGzG5JiIiIiIiImojJtdEREREREREbcTkmoiIiIiIiKiNmFwTERERERERtRGTayIiIiIiIqI2YnJNRERERERE1EaCpmlasAsRijRNg8fj26WRJBGq6umgEgUf6xfeWL8TRFGAIAgdXKLI5E9spJZF+ucylPBatw7jo/8YH9sXP7OBwevcOq2NjUyuiYiIiIiIiNqI3cKJiIiIiIiI2ojJNREREREREVEbMbkmIiIiIiIiaiMm10RERERERERtxOSaiIiIiIiIqI2YXBMRERERERG1EZNrIiIiIiIiojZick1ERERERETURkyuiYiIiIiIiNqIyTURERERERFRGzG5JiIiIiIiImojJtdEREREREREbcTkmoiIiIiIiKiNmFy3ksfjwUsvvYQRI0bg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HwNH0DRNC3brOREREREREVE445hrIiIiIiIiojZick1ERERERETURkyuiYiIiIiIiNqIyTURERERERFRGzG5JiIiIiIiImojJtdEREREREREbcTkmoiIiIiIiKiNmFwTERERERERtRGTayIiok5k3bp1yMzMRGFhYbCL0i5efvllZGZmBrsYRBTmGBupPTC5JiIi6kRGjx6N1atXIzExMdhFISIKGYyN1B7kYBeAKFDGjBmDK6+8EnV1dfjXv/6FmpoaDB06FA8//DB69uyJ+++/H0VFRfj973+PxYsX45dffkF6ejruvvtujBw5MtjFJyJqF3FxcYiLiwt2MYiIQgpjI7UHtlxTp/LGG2/g0KFDePrpp/HUU09h9+7duO+++7z7d+/ejaVLl2LGjBn4+9//DkmScOedd6KysjKIpSaiSDNmzBgsXLgQc+fOxbnnnousrCzcfffdqK2txeLFizFy5Eicc845uPPOO1FeXg4AsNvtWLBgAS655BKceeaZGDx4MKZMmYKcnBzv895///2YOHEi1qxZgwsvvBBZWVmYNGkS9u7d6z2mua6PO3bswIQJEzBo0CAMGzYM9913H8rKynyqU2FhITIzM7FhwwbcdtttGDRoEEaPHo2///3v8Hg8jeo+d+5cTJo0CQMHDsSDDz4IAKioqMAjjzyC8847D2eddRauueYabN26tdFrOBwOPP300zj//PORlZWFBx54AA6Hw6dyElHoYmxkbAx3bLmmTsVqtWLRokWQJAkAUFBQgJdfftkboKurq7Fu3TqkpqYCAEwmEyZMmIBt27Zh7NixQSs3EUWeZcuW4fzzz8fzzz+P3bt3Y8GCBfjpp5+QmJiIJ598EoWFhZgzZw66dOmCRx99FLNnz8aOHTswa9YspKamIj8/Hy+++CLuvvtubNiwAYIgAABycnJw6NAhzJo1C9HR0XjppZcwYcIEbNy4sdnujtu3b8eUKVOQnZ2NF154AZWVlXjxxRdx4403Ys2aNTAYDD7V67HHHsOoUaPw8ssvY+fOnVi4cCFsNhvuvfde7zFvvvkmpkyZgmnTpsFsNsPhcGDSpEkoLS3FzJkzkZiYiLVr12Lq1KlYsmQJhg8fDgC499578eWXX2LmzJlIS0vD6tWr8cEHH7Thr0BEoYaxkbExrGlEncSFF16ozZgxo9G2f/7zn1pGRob2yy+/aPfdd5+WnZ3daH9BQYGWkZGhvffeewEsKRFFugsvvFAbMWKE5nK5vNsuvfRSLSsrS6uqqvJuu/XWW7U//OEPmsPh0G666SZtw4YNjZ5n2bJlWkZGhlZSUqJpmqbdd999WkZGhrZ9+3bvMcXFxdpZZ52lzZs3T9M0TVu7dq2WkZGh/fzzz5qmadq1116rXX755Zrb7faec+jQIa1///7aqlWrWl2nn3/+WcvIyNAmTZrUaPtTTz2lnXHGGVp1dbW37hdffHGjY1avXq1lZGRo33//vXebx+PRbrjhBu2qq67SNE3T9u3bp2VkZGhvvfWW9xhVVbXLLrtMy8jIaHU5iSh0MTYyNoY7dgunTsVoNDZ6LIr1H4GGbjmn7m+423lytx0iovYwcOBAyPKJDmRdunRBr169EBUV5d0WExOD6upq6HQ6LF26FJdddhmKi4uxbds2vPPOO/jvf/8LAHA6nd5zUlJSMGTIEO/jxMREZGVlYfv27U3KUFdXh127dmHUqFHQNA1utxtutxs9evRAeno6vv76a5/rdeWVVzZ6PHbsWLhcLvzvf//zbuvfv3+jY7Zu3YqEhAScccYZ3jKoqooLL7wQu3fvRmVlJXbs2AGgvutkA1EU2auIKMIwNp7A2Bh+2C2ciIgoCCwWS5NtJpOpxeO//PJLzJ07F4cOHYLZbEa/fv28x2ua5j0uKSmpybnx8fH46aefmmyvqqqCx+PBa6+9htdee63Jfr1e36q6nOzU12+YIOjkuStOrWdFRQWOHTuGM844o9nnPHbsmPf82NjYRvsSEhJ8LiMRhS7GxhMYG8MPk2siIqIQV1BQgOnTp+Piiy/GP/7xD/To0QOCIODNN9/El19+2ejYhjkkTlZaWor4+Pgm281mMwRBwOTJkzFu3Lgm+0/tzdMap77+8ePHAaDZ128QFRWFnj17Yv78+c3uT0lJ8f5wLC0tRbdu3bz7KioqfC4jEUUGxkbGxlDDbuFEREQhbvfu3XA4HLjllluQmprqHbLS8OPx5NaZvLw8HDx40Pu4uLgY//vf/7wT35zMYrFgwIABOHToEM466yzvv759++Lll1/GN99843NZP/nkk0aPN23aBKPRiEGDBrV4zrBhw3D06FHEx8c3KsfXX3+NJUuWQJIkZGdnAwA++uijRuc2dP8kos6HsZGxMdSw5ZqIiCjEnXHGGZBlGfPmzcNNN90Ep9OJdevW4bPPPgMA2Gw277GapuG2227DzJkzIUkSFi5ciOjoaEycOLHZ5541axZuueUW3H333fjDH/4AVVWxbNky7Nq1C7fffrvPZf3www8RHx+PUaNG4dtvv8Wbb76JmTNn/ma3zquuugqrVq3ClClTcNttt6Fr167YsmULXnvtNUyYMAGKoiAtLQ3XXnstnn/+ebjdbvTv3x//+te/kJub63MZiSgyMDYyNoYaJtfUaWzevLnJtquuugpXXXUVAOCZZ55psj8lJYXBiYiCLi0tDQsWLMDChQvxl7/8BdHR0Tj77LOxcuVKTJw4ETt27EBmZiYAoFu3brjpppswd+5c1NXV4bzzzsMrr7yCmJiYZp/7ggsuwNKlS7Fw4ULMmDEDiqLgjDPOwOuvv46zzz7b57Ledddd+Pbbb7F69Wp07doVjzzyCK677rrfPMdkMuHNN9/EggULMG/ePFRXV6N79+64++67cdNNN3mPe/TRR9GlSxesWrUKlZWVGDFiBG677Ta88MILPpeTiMIfY2M9xsbQIWgn95cgIiKisHX//ffj22+/bfZmYkcrLCzERRddhKefftp705KIKBQwNlKgsOWaiIiIWqSqKk53H75hnCMRUWfB2EjNYXJNRERELZo8eTK+/fbb3zyme/fueOONNwJUIiKi4GNspOawWzgRERG16NChQ6itrf3NY3Q6nXdcIxFRZ8DYSM1hck1ERERERETURlznmoiIiIiIiKiNmFwTERERERERtRGTayIiIiIiIqI2YnJNRERERERE1EZMromIiIiIiIjaiMk1ERERERERURsxuSYiIiIiIiJqo/8P0rvOHeM+iqkAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot uncertainty as a function of nn or true label in a trellis for overview.\n", + "fig, ax =plt.subplots(1,3, figsize=(10, 5))\n", + "sns.regplot(data=df,y='mapie_unc',x='nn', ax=ax[0])\n", + "sns.regplot(data=df,y='mapie_unc',x='mapie_pred', ax=ax[1])\n", + "sns.regplot(data=df,y=df[config.data.response_column],x='mapie_pred', ax=ax[2])\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Further analysis of the uncertainty using error bars is shown here:" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/EAAAHECAYAAABx6aqiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACFl0lEQVR4nO3deXhU5fn/8c/MZJlsk00hRESFEExCwKAoiAGkiktdqra1rVi17hubiFpxwbq1LGrcUVtahaqtfLX+6oKUipFFwVoMJEAQXDFEAskkJJlklt8faUaGhGRmMmvyfl0XV8Kcc+Y8c/LMmbnPc5/nNrhcLpcAAAAAAEDEM4a7AQAAAAAAwDsE8QAAAAAARAmCeAAAAAAAogRBPAAAAAAAUYIgHgAAAACAKEEQDwAAAABAlCCIBwAAAAAgShDEAwAAAAAQJWLC3YBI5HK55HS6wt2MPsdoNHDcEXT0M4QC/QyhQD9DqNDXEAp9vZ8ZjQYZDAav1iWI74TT6dLevfvD3Yw+JSbGqPT0JFmtjbLbneFuDnop+hlCgX6GUKCfIVToawgF+pmUkZEkk8m7IJ50egAAAAAAogRBPAAAAAAAUYIgHgAAAACAKEEQDwAAAABAlCCIBwAAAAAgShDEAwAAAAAQJQjiAQAAAACIEgTxAAAAAABECYJ4AAAAAACiBEE8AAAAAABRgiAeAAAAAIAoQRAPAAAAAECUIIgHAAAAACBKEMQDAAAAABAlCOIBAAAAAIgSMeFuAAAAAIC+pampSc3NTSHbn9mcoISEhJDtDwgmgngAAAAAIbVjR6XKy8t82sbpdMpma1Z8vFlGo28Jxfn5hSooGOHTNkCkIogHACDMGJEC0NcMHjxU2dkDfdrGaq3VmjWlGjNmnCyWNJ+2NZs556H3IIgHACDMGJEC0NckJPh3MTEmJkYWS5rS0zOC0CogOhDEAwAQZoxIAQAAbxHEAwAQZoxIAQAAbxHEAwAAAIAXmMMEkYAgHgAAAAC8wBwmiAQE8QAAAADgBeYwQSQgiAcAAAAALzCHCSKBb/kcAAAAAAAgbCIqiN+5c6eKioq0bNky92Nz5szRsGHDPP5NmjTJvdzpdKqkpETFxcU67rjjdPXVV+vrr78OR/MBAAAAAAiqiEmnb21t1axZs9TY2Ojx+NatW3XddddpypQp7sdMJpP796eeekpLly7Vww8/rKysLM2bN09XXXWV3nzzTcXFxYWs/QAAAAAABFvEjMQ//vjjSk5O9njM5XJp+/btGj58uA4//HD3v4yMtntJWlpa9Mc//lFTp07VxIkTdeyxx+qRRx5RVVWVli9fHo6XAQAAAABA0ETESPz69ev1yiuv6PXXX9fEiRPdj3/11VdqbGzU4MGDO91uy5Yt2r9/v8aOHet+zGKxKD8/X+vXr9c555zjd5tiYiLm+kafYDIZPX4CwUA/QyiEqp+ZTAYZDG0/+czqezifIVQiqa9F63kvWtsdSpHUz6JB2IN4q9Wq2bNna86cORowYIDHsm3btkmSXnzxRX3wwQcyGo0aP368ZsyYoZSUFFVVVUlSh+369evnXuYPo9Gg9PQkv7eH/ywWymgg+OhnCIVg9zOHo0kmk1GpqYl8ZvVhnM8QKpHQ16L1vBet7Q6HSOhn0SDsQfy9996roqIinXvuuR2Wbdu2TUajUf369dMzzzyjr776Sn/4wx9UWVmpP//5z2pqapKkDve+x8fHq66uzu82OZ0uWa2N3a+IgDGZjLJYEmS1NsnhcIa7Oeil6GcIhVD1s7q6RjkcTtXVNcpk2h+0/SAycT5DqERSX4vW8160tjuUIqmfhYvFkuB1JkJYg/jXX39dGzZs0Jtvvtnp8uuvv16/+tWvlJ6eLknKzc3V4Ycfrp///OcqKyuT2WyW1HZvfPvvkmSz2fyq33ggu71vdp5wczicHHsEHf0MoRDsfuZwuORytf2kP/ddnM8QKpHQ16L1vBet7Q6HSOhn0SCsNx289tprqqmp0cSJE1VUVKSioiJJ0j333KOrrrpKRqPRHcC3Gzp0qCSpqqrKnUZfXV3tsU51dbX69+8fglcAAAAAAEDohHUkfv78+WpubvZ4bPLkyZo6darOO+88zZ49W9XV1Vq8eLF7eVlZmSQpJydHRx55pJKTk/XRRx9p0KBBktrusS8vL/coSQcAAAAAQG8Q1iD+UKPlmZmZ6t+/v8444wzdcMMNeuKJJ3Teeedp586duu+++3TOOedoyJAhkqQpU6Zo/vz5ysjI0BFHHKF58+YpKytLkydPDuVLAQAAAAAg6MI+sV1XfvSjH+nRRx/VokWL9NxzzyklJUXnnnuupk+f7l5n6tSpstvtmjNnjpqbmzV69Gi98MILio2NDV/DAQAAAAAIgogL4rdu3erx/7POOktnnXXWIdc3mUy69dZbdeuttwa7aQAAAAAAhFVYJ7YDAAAAAADeI4gHAAAAACBKRFw6PQAAAAD0VU1NTWpubgrZ/szmBCUkJIRsf+g5gngAAAAAiBA7dlSqvLzMp22cTqdstmbFx5tlNPqWbJ2fX6iCghE+bYPwIogHAAAAgAgxePBQZWcP9Gkbq7VWa9aUasyYcbJY0nza1mxmFD7aEMQDAAAAQIRISPAvvT0mJkYWS5rS0zOC0CpEEia2AwAAAAAgShDEAwAAAAAQJQjiAQAAAACIEgTxAAAAAABECYJ4AAAAAACiBLPTAwAAAAAiXlNTk5qbm0K2P7PZv0oBwUYQDwAAAACIeDt2VKq8vMynbZxOp2y2ZsXHm2U0+paInp9fqIKCET5tEwoE8QAAAACAiDd48FBlZw/0aRurtVZr1pRqzJhxsljSfNrWbI68UXiJIB4AAAAAEAUSEvxLb4+JiZHFkqb09IwgtCr0mNgOAAAAAIAoQRAPAAAAAECUIJ0eAAAAwCE1NjZq794aORyukOwvUmcER/RxOp3atKlM5eXlysoaqHHjin2e3C4SEcQDAAAAOKSKigp9/PF6uXyI4XvjjOCILqWlq1RSslDbtm3V/v0NWrbsNeXmDtPUqTNVXDwh3M3rEYJ4AAAAAIeUl5entLTDfRqJ740zgiN6lJau0qxZ09TQ0CCLJVUmk1Hx8QmqqNisWbOmaf78x6I6kCeIBwAAAHBIiYmJysjIlN3u9Gm73jYjOKKD0+lUSclCNTQ0aMCAbDkcDrW22mQ2m5WUlKSqql0qKVkY1an10dlqAAAAAAAOUla2Udu3Vyo9PUMGg8FjmcFgUFpahrZvr1RZ2cYwtbDnCOIBAAAAAL1CTU2NWltbFR8f3+ny+Ph4tba2qqamJsQtCxyCeAAAAABAr5CZmanY2FjZbLZOl9tsNsXGxiozMzPELQscgngAAAAAQK9QWDhSOTlDVVu7V66DSiq4XC7V1u5VTs5QFRaODFMLe44gHgAAAADQKxiNRk2dOlNJScmqqtql5uYmOZ1ONTc3qapql5KTUzR16syondROIogHAAAAAPQixcUTNH/+Y8rLK1BjY6OsVqsaGxuVl1egefMejerychIl5gAAAAAAvUxx8QSNG1es1atLtXLlck2aNDmqy8odiCAeAAAAANDrGI1GDR9eqKqqbzR8eGGvCOAl0ukBAAAAAIgaBPEAAAAAAEQJgngAAAAAAKIE98QDAAAAACJeU1OTmpubfNrGaq2V3W6X1Vrr8/7M5gQlJCT4vF2wEcQDAAAAACLejh2VKi8v82kbp9Op1tYWrVu32ueJ7fLzC1VQMMKnbUKBIB4AAAAAEPEGDx6q7OyBIduf2Rx5o/ASQTwAAAAAIAokJERmenuoMbEdAAAAAABRIqKC+J07d6qoqEjLli1zP7Zy5UpddNFFKioq0qRJk/T73/9ezc3N7uWffPKJhg0b1uHfRx99FI6XAAAAAABA0ERMOn1ra6tmzZqlxsZG92MbNmzQTTfdpKlTp+rMM8/Ul19+qbvvvlu1tbV66KGHJElbt27VoEGDtHTpUo/nS01NDWn7AQAAAAAItogZiX/88ceVnJzs8djLL7+sk046Sdddd52OPvpoTZgwQTNmzNCbb76plpYWSdK2bduUk5Ojww8/3ONfXFxcOF4GAAAAAABBExEj8evXr9crr7yi119/XRMnTnQ//pvf/KZDGQCj0ajW1lY1NDQoIyNDW7du1fHHHx/iFgMAAAAAEHphD+KtVqtmz56tOXPmaMCAAR7L8vPzPf7f2tqqxYsXa/jw4crIyJAkVVZWKj09XRdeeKF2796t3NxczZgxQyNG9KyeX0xMxCQp9Akmk9HjJxAM9DOEQqj6mclkkMHQ9pPPrL6H8xlCxd++FoxzVLSe90LR7mg9Nu04p/km7EH8vffeq6KiIp177rldrme32zV79mxVVlZqyZIlkqTvvvtO9fX1amxs1Jw5c2QymfTSSy9pypQpWrZsmXJycvxqk9FoUHp6kl/bomcsFkpGIPjoZwiFYPczh6NJJpNRqamJfGb1YZzPECq+9rVgnKOi9bwXinZH67E5GOc074Q1iH/99de1YcMGvfnmm12u19DQoOnTp+vjjz/WE0884R5lHzBggNavX6+EhATFxsZKkgoLC1VeXq4XX3xRc+fO9atdTqdLVmtj9ysiYEwmoyyWBFmtTXI4nOFuDnop+hlCIVT9rK6uUQ6HU3V1jTKZ9gdtP4hMnM8QKv72tWCco6L1vBeKdkfrsWnHOa3tAoa3mQhhDeJfe+011dTUeNwHL0n33HOP3nrrLT3//POqrq7W1VdfrW+//VYvvPCCRo8e7bGuxWLx+L/RaNSQIUO0e/fuHrXNbu+bnSfcHA4nxx5BRz9DKAS7nzkcLrlcbT/pz30X5zOEiq99LRjnqGg974Wi3dF6bA7GOc07YQ3i58+f71HzXZImT56sqVOn6rzzzlNdXZ0uu+wyNTQ0aMmSJRo2bJjHuh988IGmTZumf/zjHzryyCMltaXdb9myRZMnTw7Z6wAAAAAAIBTCGsT379+/08czMzPVv39/3X777fr666/1/PPPKyMjQ99//717nYyMDI0aNUrp6em67bbb9Nvf/laxsbFatGiRamtrdfnll4foVQAAQqGpqUnNzU0h25/ZnKCEBO7NA9A7+HsONZkMcjia/peu7Trkes3NzWppaRucczqd2rTpM5WVlSklJVWjR4/pUHHKH1Zrrex2u6zWWs7R6NPCPrHdoTgcDr311ltqbW3VZZdd1mH5v/71Lw0cOFCLFy/W/PnzdeWVV8pms+n444/XSy+9pMMOOywMrQYABMuOHZUqLy/zaRun0ymbrVnx8Wafv0Dm5xeqoKBnlU4AIFL4ew5taWlWYmKiXC7JdegYXk1NjWpubtLnn3+uDz74QDU1NbLb7Xrllb+qf/8sTZ48WcOGHdvh+X05RzscdtXX12nt2lIVFhZxjkafFXFB/NatW92/f/bZZ92uP2jQIJWUlASzSQCACDB48FBlZw/0aRurtVZr1pRqzJhxsljSfNrWbGaEB0Dv4e85dO3aUv3oRz+S0Rjf7Uj86tUf6NlnF2n//v1KS0tTa2ur4uLitWfP93rjjTc0d+5JGjv2ZI/n9+Uc3b7+2LHF6tdvQLfrA71VxAXxAAB0JiHBv9TJmJgYWSxpSk/PCEKrACA69OQcmp6eLpMpocsJx5xOp1555a9qbm7WwIFHyuFwqL6+TomJSUpJsaiqapf+9KfndOaZZ3uMuvt6jm5fn1T6H7TdvlCm8vJyZWUN1LhxxQG5fQGRi78uAAAAgB4pK9uo7dsrlZ6eIYPB4LHMYDAoLS1D27dXqqxso1/Pf2CgumlTmZxOZjCXpNLSVbr44gt0003X6sUX/6ybbrpWF198gUpLV4W7aQgigngAAAAAPVJTU6PW1lbFx8d3ujw+Pl6tra2qqanx+bkJVDtXWrpKs2ZNU3n5ZiUmJslisSgxMUkVFZs1a9a0Pn98ejOCeAAAAAA9kpmZqdjYWNlstk6X22w2xcbGKjMz06fnJVDtnNPpVEnJQjU0NGjAgGyZzW2TA5rNZmVlZWv//gaVlCwkY6GXIogHAAAA0COFhSOVkzNUtbV75TpoGnuXy6Xa2r3KyRmqwsKRXj8ngeqhBfv2BUQ2gngAAAAAPWI0GjV16kwlJSWrqmqXmpub5HQ61dzcpKqqXUpOTtHUqTN9mnCNQPXQgnn7AiIfQTwAAACAHisunqD58x9TXl6BGhsbZbVa1djYqLy8As2b96iKiyf49HwEqocWrNsXEB0oMQcAAAAgIIqLJ2jcuGKtXl2qlSuXa9KkyX6XPDswUO2spFxfDlTbb1+oqNgssznbY1n77Qt5eQU+3b6A6MFIPAAAAICAMRqNGj68UPn5+Ro+vNDvmuXBuM++twjG7QuIHvxVAQAAAESc3hCoBrO+faBvX0D0IJ0eAAAAQERqD1RLShZq27at2r+/QUlJTuXlFWjq1JkRHaiWlq7yaPeyZa8pN3dYQNsdyNsXED0I4hFSTU1Nam5u6vC4yWSQw9GkurpGORyuTrb0j9mc0Ok9VAAAAIgO0Riotte3b2hokMWSKpPJqPj4BHd9+/nzHwtYIN9++0JV1Tc9un0B0YMgHiG1Y0elysvLOjxuMEgmk1EOh1MH3fIkp9Mpm61Z8fFmn09K+fmFKigY0ZMmAwAAIMyiKVA9uL69w+FQa6tNZrNZSUlJqqrapZKShRF/IQKRiyAeITV48FBlZw/s8LjJZFBqamKnI/FWa63WrCnVmDHjZLGk+bQ/s5lReAAAAISOL/XtR44sClMrEc0I4hFSCQmdp7fHxBiVnp4kk2m/7PaOE37ExMTIYklTenpGKJoJAAAA+MWb+va1tfv6ZH17BAb5GwAAAAAQIAfWt+9MX65vj8BgJB4AAABuh5qENliYhBa9TXt9+4qKzTKbsz2Wtde3z8sr6JP17REYBPEAAABwO9QktF1hElrgB+317WfNmqaqql1KSbG469vX11ujor49IhtBPAB4idEpAH3BoSah7QqT0AKeorm+PSIfQTwAeInRqb7F34s2JpNBDkdTp9U2usJFG0SKQ01C2x0moQU8RWN9e0QHgngA8BKjU32LvxdtWlqalZiYKJdLcnkfw3PRBgB6oWiqb4/oQRAPAF5idKpv8feizdq1pfrRj34kozHe55F4AACA7hDEAwDQiZ5ctElPT5fJlCC73RmElgEAgL6MfA4AAAAAIeV0OrVpU5nKy8u1aVOZnE4uegLeYiQeAAAAQMiUlq7ymLV92bLXlJs7jFnbAS8xEg8AAAAgJEpLV2nWrGkqL9+sxMQkWSwWJSYmqaJis2bNmqbS0lXhbiIQ8QjiAQAAAASd0+lUSclCNTQ0aMCAbJnNbeVXzWazsrKytX9/g0pKFpJaD3SDIB4AAABA0JWVbdT27ZVKT8+QwWDwWGYwGJSWlqHt2ytVVrYxTC0EogP3xAMAAKBPampqUnNzU8j2Zzb7V/Wit6ipqVFra6vi4+M7XR4fH6/a2n2qqakJccuA6EIQDwAAgD5px45KlZeX+bSN0+mUzdas+Pi2VHBf5OcXqqBghE/b9CaZmZmKjY2VzWbr9GKGzWZTbGysMjMzw9A6IHoQxAMAAKBPGjx4qLKzB/q0jdVaqzVrSjVmzDhZLGk+bWs2991ReEkqLBypnJyhqqjYLLM522OZy+VSbe1e5eUVqLBwZJhaCEQHgngAAAD0SQkJ/qW3x8TEyGJJU3p6RhBa1XsZjUZNnTpTs2ZNU1XVLqWkWOR0OtXc3KT6equSk1M0depMnzMcgL6GIB4AAABRL1T3t1uttbLb7bLZmoO+r96ouHiC5s9/zKNOfFKSU3l5BdSJB7xEEA8AAICoF6r72x0Ou+rr6/T1118qKyu7+w3QQXHxBI0bV6zVq0u1cuVyTZo0WePGFTMCD3iJIB4AAABRL1T3t7dvc+SRR/nRyujU1NSklpZGORwur7dpz1iwWmsPuc6gQUcqNzdXgwYdqbq6H9br67P4A90hiAcAAEDUC+X97TExMYqPN/u8r2i1Y8cOlZdXyOV9DC+n06nW1hatW7f6kCPs7VkNa9eWymT6ISzp67P4A90hiAcAAABwSIMHD9bAgcf4NBLvjfashrFjiz0yIfr6LP5AdwjiAQAAABxSQkKCkpMTZLc7A/7czPQP+C6igvidO3fqwgsv1F133aULL7xQklRRUaEHHnhAmzZtUkZGhi6//HL9+te/dm/jdDr1xBNP6G9/+5vq6+s1evRo3X333TryyCPD9TIAAEAPhGqW8XbcfwsAiCYRE8S3trZq1qxZamxsdD+2b98+XXHFFZo0aZLmzp2r//73v5o7d66SkpJ00UUXSZKeeuopLV26VA8//LCysrI0b948XXXVVXrzzTcVFxcXrpcDAAD8FKpZxttx/y0AIJpETBD/+OOPKzk52eOxV199VbGxsbrvvvsUExOjIUOG6Msvv9SiRYt00UUXqaWlRX/84x81a9YsTZw4UZL0yCOPqLi4WMuXL9c555wThlcCAAB6IlSzjLfj/lsAQDSJiCB+/fr1euWVV/T666+7g3FJ2rBhg0488UTFxPzQzDFjxujZZ5/Vnj17tGvXLu3fv19jx451L7dYLMrPz9f69esJ4gEAiEKhnGUcAIBoE/Yg3mq1avbs2ZozZ44GDBjgsayqqkq5ubkej/Xr10+S9N1336mqqkqSOmzXr18/9zJ/xcT4loqHnjGZjB4/PZcZZDC0/eTvgp7oqp8Fb5/033AK9fE3mQwH/B7c/dG3PPW14xGO81lXovX4+9PuaH2t/gj2Oc3XYxmtxz4U7Y7WY9Mu0s5pkS7sQfy9996roqIinXvuuR2WNTc3d7ivPT4+XpJks9nU1NQ26U1n69TV1fndJqPRoPT0JL+3h/8slo4jLw5Hk0wmo1JTE/m7ICA662fBQv8Nr1Af//b9ScHvZ/QtT331eITyfNaVaD3+/rQ7Wl+rP4J9TvP1WEbrsQ9Fu6P12BwsUs5pkS6sQfzrr7+uDRs26M033+x0udlsVktLi8djNptNkpSYmCiz2SxJamlpcf/evk5PZpl1Ol2yWhu7XxEBYzIZZbEkyGptksPhWb6krq5RDodTdXWNMpn2h6mF6A266mfBQv8Nr1Af//b9SQp6P6NveeprxyMc57OuROvx96fd0fpa/RHsc5qvxzJaj30o2h2tx6ZdpJ3TwsFiSfA6EyGsQfxrr72mmpoaj/vgJemee+7RW2+9paysLFVXV3ssa/9///79Zbfb3Y8NGjTIY51hw4b1qG3BqIOJ7jkczg7H3uFwyeVq+8nfBYHQWT8L3r7ov+EU6uPvcLgO+D24/Yy+5amvHo9Qns+6bkd0Hn9/2h2Nr9Xfso1Wa63sdrv27dsno7HR4xzXFW/LNvp6LKPx2EuhaXe0HpuDRco5LdKFNYifP3++mpubPR6bPHmypk6dqvPOO09vvPGGXn75ZTkcDplMJknSunXrdMwxxygzM1MpKSlKTk7WRx995A7irVarysvLNWXKlJC/HgAAAESug4PZ9iDVaq31+jl82cbbYDbY/C3b2NTUqJYWm9577z0ZDEa5vIvhKdsIBFlYg/j+/ft3+nhmZqb69++viy66SM8//7zuvPNOXXXVVfrss8+0ePFizZ07V1LbvfBTpkzR/PnzlZGRoSOOOELz5s1TVlaWJk+eHMqXAgAAgAh3cDDrcNhVX1+ntWtLZTJ1/rXY6XTKZmtWfLxZRqPRq23aRUow62/Zxg8/fF+xsbE6/fTTZTTG+zQSDyB4wj6xXVcyMzP1/PPP64EHHtAFF1ygww8/XLNnz9YFF1zgXmfq1Kmy2+2aM2eOmpubNXr0aL3wwguKjY0NY8sBAOg9/E3F9VekjF6i9zk4mLVaa7VmTanGji2WxZLW6Tbt64wZM04WS5pX27SLlGDW37KN7Zmw6enpMpkSSHMGIkTEBfFbt271+P+IESP0yiuvHHJ9k8mkW2+9VbfeemuwmwYAEY1AC8HibyrugaOXvoiU0Uv0Pp0FszExMbJY0pSennHI7Q5ex5ttACBYIi6IBwD4h0ALweJvKu6Bo5e+iJTRSwAAIhFBPAAEwKFGwf2ZNMkbnY2CE2ghWPxNxWW0EohOTqdTmzaVqaKiQklJSXI6nfpfZj2ACEAQDwABcKhR8K4mQAr0KDiBFgCgp0pLV6mkZKG2bdsqq7VOBoNB//73St1557065ZQJ4W4eABHEA0BAHGoUvKsJkBgFBwBEktLSVZo1a5r27t2rlhabbDabXC6XPv30U11yyc9122136oYbpoa7mUCfRxAPAAHQ1Sh4VyPdjIIDACKB0+lUSclC7d27V42N++V0umQ0GmUwGGQwGNTc3KyHH35ABQWFmjDh1HA3F+jTfA7ir7rqKp166qk69dRTlZ2dHYw2AUDE83Ym+K7uifflfnlmggcABFNZ2UZt316plpYWuVwuxcbGyOFwSGqrBmUwGNTSYtNDD/1OxcUTfL4NDN7zp9pMT+bg4TtG9PE5iI+Li9OCBQt0//33KycnR5MmTdLEiRNVVFQUjPYBQETydib4A++JNxiMHvfAd3W//MGYCR4AEEw1NTVqbGxUa2vL/z6TDB7L20fkv/zyC5WVbdTIkZ7f/UMReB64fm8OPP2tNtPa2qJ161ZTbaYP8DmIf+qpp2S327VhwwZ98MEH+ve//61nn31WGRkZGj9+vE499VSdccYZwWgrAEQMb2eCP/CeeEke98B3db/8wbgHHgAQTJmZmTIajXK5XDIaDXK5PJe3PW6U0+lUTU1Nh+1DEXgeePG7sLCo1wae/lSb6Qm+Y0Qfv+6Jj4mJ0ZgxYzRmzBjNnj1b//3vfzVv3jy9/vrreuONN1RRURHodgJARPFlJvj2+94P/L39HnjuiQcARILCwpE66qijtW/fXjkcTo+g2uVyyeFwKC4uTgkJCcrMzOywfSgCzwMvfvfrNyCo+wonf6vNoO/wK4j/9ttvtX79en388cdav369vvnmGyUkJGj8+PE66aSTAt1GAAB81l7nuLy8XFlZAzVuXHFQ7+E8cH8bN27UccedGLR9AUCgGY1G/fa3d+nSS3+h5uZmxcbGyvW/4Xi73S6j0ai4uDgNHZqrwsKRHbYPVeDZfvGbIBd9mc9B/KRJk/Tdd98pOTlZI0aM0E9/+lOddNJJKiwslMlkCkYbAQDwyYF1jvfvb9CyZa8pN3eYpk6dqeLiwNc5Pnh///d/yzR06DDdfPOMoOwPAIJh/PhTddttd+rhhx9QS4tNUtu98PHx8YqLi1dGRoamTp3JpHZAmPn8Dmy/VyYjI0NHHnmk+x8BPAAgErTXOS4v36zExCRZLBYlJiapomKzZs2aptLSVUHfX1JSksrLg7M/AAimG26YqhdffFnDh49QYmKizGaz0tLSdNxxRZo371EuTAIRwOeR+BUrVujbb7/V2rVrtXbtWj344IOqqanRMcccoxNPPFEnnXSSzjrrrGC0FcAB/JkFtid68yyw6D3a6xw3NDRowIBsORwOtbbaZDablZSUpKqqXSopWRiw1PpD7a8trTRR330X2P0BQChMmHCqhg8v1AsvPK39+/froosu1HHHnSinM9wtAyD5eU/8EUccoZ/+9Kf66U9/KkkqKyvTs88+q5dfflmvvPIKQTwQAv7OAntgiTNfUH4E0aC9znF6eoYMho7lkdLSMrR9e2Wn5ZGiYX8AECpGo1GDBg2SJI0cOdI9Mz2A8PMriHe5XPrss8+0Zs0arVmzRhs3bpTT6dTo0aM1YQIpNkAo+DMLbPusru0lznxB+RFEg5qaGrW2tio+Pr7T5fHx8aqt3ddpeaRo2B/gj1BkbvWV+t0AEAl8DuJvvPFGffzxx2poaFBaWprGjx+vX/7ylyouLlZKSkow2gigE/7OAktJM/RmmZmZio2Nlc1m6/T9YbPZFBsb22l5pGjYH+CPUGRuRWP97lBXsACAQPE5iP/uu+80ZcoUTZw4USNGjOiQPggAQLgUFo5UTs5QVVRsltmc7bHM5XKptnav8vIKOi2PFA37A/wRisytaKvfHeoKFuHmTzaG1Vorh8MhSdq3b5+MxkY5HC6vtiUbAwgun4P4ZcuWBaMdAAD0mNFo1NSpMzVr1jRVVe1SSopFTqdTzc1Nqq+3Kjk5JaDlkQ61v6amJtXW1gV8f4A/QpW5FS31u9srSjQ0NMhiSZXJZFR8fIK7gsX8+Y/1ukDe32yM1tZWtbTY9N5778lgMMrlXQzPPDpAkHkVxP/617/2+gkNBoP+/Oc/+90gAAB6orh4gubPf8xjlC0pyam8vIKgjLJ1tj+Xy6X8/ALqxAMRJtQVLCKFP9kYUtto/Nq1pTr99NNlNMb7NBIPIHi8CuI//vhjGQwGDR06VKmpqV2u6/L2Eh0AAEFSXDxB48YVa/XqUq1cuVyTJk0O6pfyA/f3738v109+cj7lmIAI1FcrSvibjSG1ZVikp6fLZEqQ3c5JDYgEXgXxV111ld5++23t2LFD48aN049//GOddtppSkxMDHb7AADwi9Fo1PDhhaqq+kbDhxcGfVStfX+7d39DOSYgQlFRAkBv4NU3mlmzZulf//qXlixZoqOPPloLFizQySefrOnTp2vFihVqaWkJdjsBAACAHjmwokRnqCgBIBr4NCwxcuRI3XHHHXr//fe1aNEipaWl6e6779bJJ5+sO+64Qx9++CGjDkCEOrCUzqZNZbxXAQB9TntFidravR1uAW2vKJGTM5SKEgAims+z00tt9wydeOKJOvHEE3X33Xdr3bp1euutt3T99dfLYrFo9erVgW4ngB7oa6V0AADoTKgrWASSP2XieoLJ6YDI5VcQf6CNGzdq1apV+vDDD9Xa2qqMDO/KkAAIjb5YSgcAgEMJdQWLQPG3TJzN1qz4eLPPFyby8wv9mtEeQPD5FcR/+umnevvtt7V8+XJVVVXpmGOO0UUXXaSzzz5bQ4YMCXQbAfipr5bSAQCgK6GuYBEI/pSJs1prtWZNqcaMGSeLJc2nbc3mhJCO/APwntdB/MGB+5FHHqnzzz9fZ511lo499thgthGAn/pqKR0AALoT6goWPeVvmbiYmBhZLGlKT/c9W5YgHohMXgXxEydO1O7duzVgwAD9+Mc/1tlnn62CgoJgtw1AD1FKBwAQDAffn2211sput8tqre10fZutWTZbs9/7i4szy2w2e72+2ex/XXQAiHReBfFVVVXuq5PvvPOO3nnnnUOuazAYtGLFisC0DkCPHFhKp7MvM5TSAQD44+D7sx0Ou+rr67R2balMpo5fL5uaGtXU1CSXyymDwaiDksM65XLJvX7bKHSi1+3Lzy9UQcEIr9cHgGjiVRB/wQUXBLsdAIKgvZRORcVmmc3ZHsvaS+nk5RVQSgfoJcIxezWjnX3Twfdnt997PXZscaf3Xttszaqp+V6ffvqJioqOV3JySrf7aGiod6+fkXG4zyPxAHzH50h08CqIf+ihh4LdDgBBEM2ldAD4LhyzVzPa2Td1dn92d/dex8ebVV6+SdnZR3p1f/a+fXt9Wh9Az/E5Eh16XGIOQGSL1lI6AHwXjtmrAcAf/oz4djf3QlcY8fUOnyPRgSAe6AOisZQOAN+FY/ZqAPCHvyO+ra0tWrduNSO+QcLnSHQgiAf6iGgrpQMAAHovf0Z8e4IRX/QmBPEAAEQZp9OpTZvKVF5erqysgX0+s4bjAUQff0d8ARDEAwAQVUpLV3nMcbFs2WvKzR3WZ+e44HgAAPoar4L49evX+/Sko0eP9qsxAIDQYfQy+pSWrtKsWdPU0NAgiyVVJpNR8fEJqqjYrFmzpmn+/Mf6VODqy/GgbJL3ODcAQGTzKoi/9NJLZTAYOl3mcrkkyWN5RUVFAJoGAAgWX0YvCX4ig9PpVEnJQjU0NGjAgGw5HA61ttpkNpuVlJSkqqpdKilZ2GcCLl+PB2WTvENmAwBEPq+C+L/85S/u33ft2qW77rpLF110kc466ywdfvjhqq2t1cqVK/Xyyy/rvvvu86kBNTU1evjhh1VaWiqbzabRo0frtttu05AhQ3TppZfq448/7nS73//+9/rJT34ih8OhoqIi2Ww2j+U33XSTbr75Zp/aAgB9ga+juQQ/kaGsbKO2b69UenpGhwvrBoNBaWkZ2r69UmVlGzVyZJFXzxnNI66+Hg/KJnUvkjI9orlvAkCweRXEn3jiie7fL730Ul1++eW65ZZbPNYZNWqUzGaz/vSnP+nss8/2ugE33nijnE6nFi1apKSkJD322GO6/PLLtXz5cj3++ONqbW11r+tyuTRjxgzV1dXp9NNPlyR98cUXstlseuONN5SZmeleNzEx0es2ANGI+qrwhz+juZEa/HjzHuhJn++sXeF8D9TU1Ki1tVXx8fGdLo+Pj1dt7T7V1NR49XzBHHENRQDm6/GgbFLXIinTI5KzAbi4ACAS+Dyx3Weffabrr7++02VFRUV67rnnvH6uuro6HXHEEbr22muVm5srSbrhhht0/vnnq7KyUiNGeI7EvPTSS/rss8/0xhtvKCkpSZK0detWJScn69hjj/X1pQBRjfqq8Ic/o7mRGvx48x5wOOyqr6/T2rWlMpliojpDIDMzU7GxsbLZbJ3+PWw2m2JjYz0uaB9KMEdcQxWABfJ4IDiZHv6IpGyAg61du0Z/+tNzEXlxAUDf4nMQn5WVpdLSUp188skdlr3zzjsaNGiQ18+VmpqqBQsWuP+/d+9eLV68WFlZWcrJyfFYd+/evXr00Ud1/fXXa/Dgwe7Ht27dqiFDhvj6MroVE8NV1VAymYwePz2XGWQwtP3k7/KD3NxcHXnkkSHbX0JCQtQf/676WfD2+UP/leTRl8PRt2tr96m1tVVmc7wMhrb2tLfLYJDM5njV1e1Tbe2+HrUpFK/Nm/dAXV2tVq/+QOPGjVdqapr7/yeffIpSU9N82p8374H2v3Pb74F93UVFRRo6NFfl5ZuVkGD2+NtJLtXW7lN+foGKioq6vEDhdDr1+OOPaP/+BmVn/zDimpBgVnJykr777js9/vgjmjBhgs8XOj744H3deut0NTTUuwMwszlBFRXluvXW6Vq48DGNHz/R72NwoEAdj65E8udPoM9nPT03eHOsulsnmH3zULxt97ZtW/T662+oqakx6H07kHrah4N5TotWTU2NamryLROyoaFODoddDQ11HsfUG20X0iM7wzgQ58pwfEeLZj4H8VdccYXuvfdeVVdX69RTT1V6err27Nmjd955R++//74WLlzoV0Puuusuvfrqq4qLi9PTTz/dIR3+ueeek9ls1pVXXunx+LZt22S323XllVdqy5Yt6t+/vy677DKdf/75frVDkoxGg9LTk/zeHv6zWDqOpjgcTTKZjEpNTeTvcgCOhf8662fBcmD/leTRl8PRt485ZqDM5njZ7a1KSEiQy/XDh6bJZPzfKHW8jjlmYI/aFIrX5s3z7tmTqA0b4jRoULYOO+ywDv8PtPbXLQWnn91115269tprVVX1nVJTU+V0OtXSYlNdXZ1SUy266647lZmZ0uVzfPLJJ9qxY7sOO+wwxcSYJLVNUGsyGRUTY1JmZoZ27NiuL77YpuOPP97rtjmdTj355GPav79BAwcOlMPhUEuLTUlJibJYUvTtt9/qyScf07nnnhWwACwQx6Mr0fD5E6h+1tNzgzfHqrt1gtU3u+JNu1tb92v58uVqbNyvI488MiR9O1B62oeDfU6LRjt2bNEnn3zi0zZOp1MOh10ff7zG5z5y/PHHB6y/B0sgz5X0M+/4HMT/4he/kN1u19NPP61//vOf7scHDBig+fPn66yzzvKrIZdddpkuvvhiLVmyRDfeeKOWLl2qgoICSVJDQ4NeffVV3XTTTR3ufausrJTT6dTUqVOVlZWlVatW6Y477lBra6t++tOf+tUWp9Mlq7XRr23hH5PJKIslQVZrkxwOp8eyurpGORxO1dU1ymTaH6YWojfoqp8Fy4H9V5JHXw5H3z766FwNHpyj8vLNGjBggPs4tP10qKZmr/LzC3T00bnat8//NkXK+/bgdgS7Xe3PLyko/ayo6CTNn/+oHn10obZu3aL9+xvkcDiVl1eg6dNnqqjopG7/bjt3fqPmZpvS0tLlcDg9+oDB4FRsbJxstr3aufMbDR7s/a1q//3vp6qoqFBaWrqcTtdBz2tUWlq6KioqtGrVGh13XGDSsQNxPLoSKf24M4E+n/X03ODNsepunWD1za540+61a9erqqpKmZmHhaxvB0pP+3Cwz2nRaMCAQfrRjw4P2f4SEhJ6dB4LhUCcK8PxHS3SWCwJXmci+BzES9KUKVM0ZcoU7dixQ3V1dUpPT9fRRx/tz1O5tafPP/DAA9q4caNeeuklPfTQQ5KkFStWqKWlRRdddFGH7f7f//t/cjgc7nvkjz32WO3atUsvvPCC30G8JNntfbPzhJvD4exw7B0Ol1yutp/8XRAInfWz4O3rh/4ryf17S4tdGzd+ps2by9W/f2gnR7r55hmaNWuavvtul1JSLHI6nWpqalJ9vVXJySm6+eYZcjrbRg78FSnv24PbEex2tf+d234PTj87+eTxGjPmFK1eXaqVK5dr0qTJ7v7jzf7S0tIVGxur5mbb/0Zc2x53udr+NTfbFBMTq7S0dJ/aX139vVpaWpWeHu9+rgOfNy4uXvv27VN19fcBPS49PR5diZR+3JVA9rOenBu8OVbdrROsvtkVb9q9Z0+NHA6HYmPjQtq3A6GnfTgU57RoExtrVmysucPjwSrH2tDQqIaGjoOL4Z5s9UCBPFfSz7zjVxAvtU1Kt3PnTlVXV+uMM87Qjh07dMwxxxyynnxn9u7dq7Vr1+qMM85QTExbU4xGo3JyclRdXe1eb8WKFZowYYIsFkuH5zCbO76JcnNz9Y9//MOPVwUAwRfuyZGKiydo/vzHPCYfS0pqG71kgqboYDQaNXx4oaqqvtHw4YU+XQAqLBypnJyhqqjYLLM522OZy+VSbe1e5eUVqLBwpE9tCudEcz05HvhBuM8NweqbPZWeniGTyaSWlhbFxcV1WM4kipAox4rQ8iuIf/rpp/Xss8+qublZBoNBI0aM0KOPPqp9+/bpj3/8Y6fBdmf27NmjmTNn6vnnn1dxcbEkqbW1VeXl5Zo0aZJ7vQ0bNnRa891qteq0007T7bffrgsvvND9eFlZmYYOHerPSwOAoNq6dYveeOMNNTY2hnXm5eLiCRo3rrjT0Uv0bkajUVOnztSsWdNUVfXDiGtz8w8jrlOnzvS5L0RqAAbfhPPcEKy+2VP5+QXq3z9Le/Z87878bEffRrtILceK3snns+BLL72kxx9/XFdccYVeffVVuf6XUzRlyhR9/fXXeuyxx7x+rtzcXI0fP17333+/1q9fr23btun222+X1WrV5ZdfLkn67rvvtG/fvk5LyFksFo0ZM0aPPPKIVq1apS+++EKLFi3SP/7xj06DfgAIJ6fTqeXLl7vrMJvNbVfezWazsrKytX9/g0pKFvYojd0X7aOX+fn5jF72Me0jrnl5BWpsbJTValVjY6Py8go0b96jfl1Iag/AkpKSVVW1S83NTe4ArKpqV9gCMPgunOeGYPTNnjIajZo8eTJ9G11KSEhQenqGT/8sljSPcqy+/IuUVHqEh88j8S+++KKuueYaTZs2TQ6Hw/34hAkTNH36dC1atEh33XWX18+3cOFCLViwQDNmzFB9fb1OOOEELVmyRNnZbVfxv//+e0lSWlpap9s/+OCDevzxx3XPPfeopqZGQ4YMUUlJiXtkHwAiRXn5Zu3eXaWMjMPCWocZkIIz4hrudGz0DpGYKTRs2LGaO/ckj1uh6NsAwsXnIH7Xrl068cQTO102ePBg7dmzx6fnS0lJ0b333qt777230+UjRozQ1q1bD7l9cnKy7rjjDt1xxx0+7RcAQm3fvr1yOByd3lMpSfHx8aqt3aeampoQtwx9VTDuJY/EAAzRJxLnORg79mSdeebZ9G0AYefzWWfAgAH69NNPO122adMmDRgwoMeNAoDe6MDJkTrD5EjoLbhVo29xOp3atKlM5eXl2rSpLGS3BIUDfRtAJPB5JP6nP/2pHn/8cZnNZk2cOFGS1NjYqHfffVfPPvusrrjiikC3EX3YgV8MsrJCW4YLCDQmRwLQ25SWrvK4fSLU1TYAhBff1cPD5yD+6quv1jfffKP58+dr/vz5kqRf//rXkqRzzz1X1157bWBbiD6LLwbobdonR3rjjTciauZl9D0H1jO2Wmtlt9tltdYGdB8HPm8k1TNG4JSWrtKsWdPU0NAQ1mobQG8QrDrzhxKI8zLf1cPH5yDeYDDovvvu029+8xutW7dOtbW1SklJ0ejRo5WbmxuMNqIP4osBeismR0IkOLCescNhV319ndauLZXJdOivBb7WMz7weQsLi6KunjGjS11zOp0qKVnorrbhcDjU2mqT2WxWUlKSqqp2qaRkYdQft876ARAM0VZnnu/q4eVzEP/EE0/oZz/7mY4++mgdffTRHsu++eYb/fGPf9Tdd98dqPahD+orXwzQdzE5EsLtwHrG7XWKx44t7rJOsa/1jA983n79vJ8vx9/RKH8zCjobjWJ0qXtlZRu1fXul0tMzem21jUP1gyuuuDrcTUMv5GudeafTqfXr12nNmg918smnaPToMT59j+hJnXm+q4efz0H8k08+qfHjx6t///4dlm3cuFF/+9vfCOLRI33hiwEQiTMvI/pFWjpme/1jX1I2/R2NampqlM1m6zaj4GAHj0YxuuSdmpoatba2Kj4+vtPl0V5to6t+cM89v9X555+v0047K9zN7BLZJNElIcH79PaDLzC98cbrIb3QyHf18PPqU+4Xv/iFNm7cKKlt8qWLL774kOsWFhYGpmXos3r7FwMA0cGfgLh9NHjfvn0yGhvlcLi83jYQ9yf6GwC3trZo3brVXX7B7yztvqfpmJ3xdTRKajvuH374vmJiYrvNKDjYgaNRjC55LzMzU7GxsbLZbJ3223BU2+jJe/bADA6n06kFC/4gq9Wq/v2z5HI51dLSrLi4WB12WD/t3v2d3n33Xf3mN9cqPT0jwK8iMMgm6b0CdaGxJxd9v/zyC9lsNlksqbLb7XI6HXK5XHI6HbLb9b9KPDZ9+eUXGjToKEmB+YzDD7wK4u+//3698847crlcevLJJ3XRRRcpKyvLYx2j0SiLxaLJkycHpaHoOyLxiwGAvqcnAfG//vUvuVySy/sYPiABsT8BsLc6S7vvSTrmofgyGnUgk8kkl0uyWNL8DqwYXfJeYeFI5eQMVUXFZpnN2R7LwlVtI1AXsb766ktVVGxSfHy8Ghqscrlccjgcamiol8FgUExMjKqqvtP776/Ur37162C8lB4hm6T3CuSFxp7cg797d7UcDrv27atRXFxch/dIS0uL7Ha7KisrZLM1SgrORd++zKsgPicnRzfddJOktg+xn/3sZx7p9Ha7XTExPmfmA52KxC8GALzXW1I4/Q2ITSaDUlMTVVfn+0h8T/kbAHurPT0+Ukcfe4pMMO8ZjUZNnTpTs2ZN86raRlNTk8/zFvi6fkbGYTrxxLGSpPh4s+Ljzf68NJWWrpLJFKP09EwZjUY5nW3BSXJyioxGkxISWrVr165D9pNwIpukdwvkhUZ/s57WrCnVT396sVavXqNt2yqUkXGYXC6n+z1iMBhVXV2lvLzhuvzya9z9LBgXffsynyPvm266SYsWLdKGDRu0aNEiSdInn3yiW265Rdddd52mTJkS8Eaib/H1iwGAyNGbUjj9DYhjYoxKT0+SybRfdrszCC1DsJAJ5pvi4gmaP/8xj/f8oapt7NhRqbKyT72qhNDO21s9OtOTUb+jjjpa8fHxcjgciouLk93eFiAZjSbFxMSoublJMTEm9euX1f2ThRjZJL1bIC80+v8ZF6O0tAzdcstszZo1TXv2VCslxSKXy6WWlhbV11tlsaTqlltmKzPzMJ+fH97xOYj/4x//qEcffdQjWB80aJDOPPNMPfzww4qPj9fPfvazgDYSfY8vXwyASHXwiHR+fkG4mxRUpHAi2pEJ5rvi4gkaN66422obgwcPVXJysleVEAKhJ6N+3fWDurpa9e+fFZHndLJJerdIutDId/Xw8jmIf/nllzV9+nRdc8017scGDBigOXPm6LDDDtPixYsJ4hEQ3n4xACJRZyPSxxwzRCecMCriZzT2Bymc6A3IBPOPN9U2EhISZLGkRcUtGd31g6SkZE2ePDki+0EkBXkIvEi70Mh39fDx+Qjv3r37kDPQjxw5Ut98802PGwW0a/9ikJ+fTxkuRI32Eeny8s1KTEySxWJRYmKStm2r0F//ulRr164JdxMDzpcUTiCStY8u5eUVqLGxUVarVY2NjcrLK9C8eY8yutRHdNUP5s59UMOGHRvuJnaqPcirrd0r10Eza7YHeTk5Q8kmiVLtF5iSkpJVVbVLzc1N7gtMVVW7wnKhke/q4eHzSPwRRxyhtWvXauzYsR2WrV+/vsOs9QDQl3Q1Ih0fn6Wvv/5KixY9rTPPPDvcTQ0oUjgRDbwtqTR8eKGeeeYFrV+/TmvWfKiTTz5Fo0ePkdFo1L59e73eHyWVotuhRhnr6mq1YsXb4W5ep8gm6f1IY4fkRxD/85//XPPmzVNra6tOO+00ZWZmau/evfr3v/+tP/3pT7rllluC0U4AiArdjUgnJSVq587PVVa20V07tTcghRPRwNeSSg6HXUccka2qqm+1YsXbIZ1cDZHBm1sFIg1BXnQ68CKjzdYsm635kOsOGnSk/vCHBfr00//oP/9Zr1GjRquoaJSMRqO+/HKHV/uLizPLbG6r4MAFx+jjcxB/+eWXa/fu3XrxxRe1ePFi9+Mmk0mXXXaZrrjiikC2DwCiSncj0jExMbLZbKqpqelVQXyk3acHdMbXkkpWa61KS9+XwSCNGTPO58nYKKmEcOksi2DUqBPU0mLzKZukvczfvn37ZDT6XjaTwNB7B15kbGpq9CpryOWSBg48Qt9/X6Xly9+Sy+WUwWDUQWMInWr7+yRK4oJjNPKruPttt92mG264Qf/9739VW1sri8WiESNGKD09PdDtA4Co0t2ItN1uV0xM7xuRJoUT0cCfkkomk0kGgyJ+MjbgYAdnEXzxxec+ZaJIP5T5+9e//iWXqy1o9BaBoW8OvMjY3Uh8Zxoa6vXpp5+oqOh4JSendLv+wSPxiC5+BfGSlJSUpMMPP1wul0ujRo2S3W4PZLsAICp1NyK9f3+jCgtHqrBwpOrqasPTyCAhhbP3OrhcIrMPRxdv5wI4UPsIrNVa6/P6jMBGJl8zUdqZTAalpiaqrs73kfi+zJv33aHeZ/HxZsXHm33aX9s28crOPpILjn2AX0H8G2+8oQULFuj777+XwWDQ3/72Nz3++OOKjY3VggULFBcXF+h2AkBU6GpEuq6uVmZzvK655vpeGwBRbqb36axcYm7uMC7MRBFf5wKQfhiBXbdutVfvX4fDrvr6Oq1dW6rCwiJGYCOQP5kokhQTY1R6epJMpv2y251BaFnv5M377sD3jckUI6fTKZutWfHxZp8/N48+enBPmoso43MQ/9Zbb+m2227Teeedp1NPPVUzZsyQJJ1++umaO3eunnrqKU2fPj3Q7QSAqHGoEenc3DydcMIojR17cribGFTROBEUOtdeLrGhoUEWS6pMJqPi4xNUUbFZs2ZN0/z5j4U9kG/PEqioqFBSUpKcToKMg/k7AusLq7VWa9aUauzYYvXrNyCo+wKigTfvuwPfNxZLmvv//szBYbM164svvJvUDtHP5yD+mWee0S9+8Qvde++9cjgc7scvuugi7d27V6+++ipBPIA+r7MR6fz8Aq1c+W64mwZ4patyiUlJSaqq2qWSkoVhzbQ4MEugoaFeMTExWrNmnW65ZXbYLy5EEn9HYH0VExMjiyWNVHpA3r/v2t837SnwB//fW75MWIjo5/On7s6dO3X66ad3umzkyJHavXt3jxsFAL1B+4h0fn4+I9KIOt2VS0xLy9D27ZUqK9sYlva1ZwmUl29WYmKSLBaL4uLitG1bhWbNmqbS0lVhaRcAAMHm80h8ZmamPv/8c40bN67Dss8//7zXzbgMdMefCYN6ggmDAIRCd+US4+PjVVu7TzU1NSFuWedZAi0tzYqLi1NKSqr27KkOe5YAAADB4nMQf/bZZ6ukpET9+vXThAltqWoGg0GbNm3SU089pXPOOSfgjQQimb8TBvk7cQklWwCEQnflEm02m2Jjw1Mu0ZcsgZEji0LePgAAgsnnIH769Onatm2bpk+f7g4+Lr30UjU2NuqEE07QtGnTAt5IIJL5M2FQTyYu6eslW3qqsbFRe/fW+FQmpyd8rfMKRIruyiXW1u5VXl6BCgtHhrxtkZwlgM5RphAAAsfnID4uLk7PP/+8Vq9erbVr16qurk4pKSk68cQTNWHChA5XxIHezv+SLf5NXIKeqaio0Mcfr5fLhxieki/oi7oql1hfb1VycoqmTp0ZlkAskrME0BFlCgEgsPyqEy9J48aN0+jRo2W1WpWamqrY2NhAtgsAgiIvL09paYf7NBJPyRf0VYcql5iXVxDWACySswTgKRrKFALh0Fl2CuAtv4L4Dz74QE899ZQ+++wzuVwumUwmHX/88Zo2bZpGjRoV6DYCQMAkJiYqIyNTdrtvtaQp+YK+qrNyieFOhT5UloDdbld1dZUsltSwZQngB9FQphAIh0Nlp1xxxdXhbhqihM9B/Lvvvqvp06fr2GOP1U033aTMzEx9//33eu+99/TrX/9aixcv1gknnBCMtgIAgDBoL5dYVfVNxJRL7CxLwGQyKS9veKd14v2pJGK11srhcMhgaPvdF1QSYQJCoDNdZafcc89vdf755+u0084KdzMR4XwO4p988kmdccYZevTRRz0ev+mmm3TzzTdrwYIF+utf/xqo9gEAIMn/IMxut7sDsIP/3xWCsMh3YJbAihVvKykpSVdeeb0yMw/rsK6/lUTs9lbZbDatXVsqk8n7r01UEmECQuBg3WWn7Nr1jZYvX67rr2eicHTN5yD+yy+/1OzZsztd9vOf/1w333xzjxsFAPBdIIJcX4Q6yPU3CGttbdG6datlNBrlcNhVX1/nVUBGEBYd2rMEvv32C7lcOmSWgD+VRKQf5sQYO7bYpzkxqCTCBITAwbrLTklNTdPu3VUqL98ctrkiuvoucajvDNH0XaK38DmIHzJkiMrKynTKKad0WLZz504NHOj7ByQAoOcCEeT6ItRBrr9B2IF8CcgIwnoXfyuJSFQT8RcTEAKeustOiYuLl8PhCOt8Ol19lzjUhfBo+i7RW/gcxN9777267rrrZDAY9JOf/ET9+vVTbW2tVqxYoZKSEt17773atWuXe/3s7Owung0AECiBCHJ9EeogtydB2IEIyIDQiOQyhUA4dJed0tJik8lkCuvnU1ffJfzNTOoKF8z943MQ//Of/1yS9Oijj+qxxx5zP+76X9HlW2+91WP9ioqKnrQPAKJWU1NThxQzf+/P9obZnEBgCsCDP7fZ+KP9fGazNXs8HqllCoFw6C47pa6uVv37Zyk/vyBMLez+gjkXwiODz0H8gw8+2OEeDgBARzt2VKqs7FPV19dp9epV+uabb/T999X6+uuvdNRRR8vlcnZIS3M6nbLZmhUfbyYlDUCP+Xubja/nofY026+//lJZWZ7BSSSWKQTCobvslKSkZE2ePJn3BrrlcxB/4YUXdrncarXKYrH43SAA6C0GDx6q5ORkLV78vDZs+H/64osv1Ni4X4mJSRoyZKimTLlUKSmpHmlp7alqY8aM8zlVjZQ0AAfz5zYbf85D7dsceeRRnS6PxDKFQDh0lZ1yxRVXa//+unA3EVHA5yD+yiuv1MMPP6zDDz+8w7L3339fd999tz744IOANA4AollCQoI2by7Xq6++IqfTpbS0dMXGxig+PkHbt2/V73//oM4//3ydeea5HmlppKoBCBR/55Lw5zwUExOj+Hizz/sC+ppDZafU1dVqxYq3w908RAGfL4OWl5fr3HPP1Xvvved+rKGhQXfccYeuu+469e/f36fnq6mp0a233qoxY8aoqKhI11xzjT7//HP38jlz5mjYsGEe/yZNmuRe3lZvsUTFxcU67rjjdPXVV+vrr7/29WUBQMA5nU4tWvS0mpub1b9/lszmttRUs9msrKxs7d/foOXLl8vpdIa7qQAAIITas1Py8/PJToHPfB6J/+c//6m77rpLN998sy688EKdeuqpuv/++1VfX6/f/va3uvTSS316vhtvvPF/X3QXKSkpSY899pguv/xyLV++XAkJCdq6dauuu+46TZkyxb2NyWRy//7UU09p6dKlevjhh5WVlaV58+bpqquu0ptvvqm4uDhfXx4ABExZ2Ubt3Pm5kpKSIrYerDd6e/15AACAaOJzEJ+RkaEnn3xS//d//6c777xT//d//6djjz1Wr776qs+j8HV1dTriiCN07bXXKjc3V5J0ww036Pzzz1dlZaUKCwu1fft2XXPNNZ2m77e0tOiPf/yjZs2apYkTJ0qSHnnkERUXF2v58uU655xzfH15ABAw7fVgzebIrQfrjd5efx7d66zSQncCXX2hu305HA65XOLCEQCg1/M5iJekjz76SM8995yMRqOOPfZYbdq0SU8++aRuvfVWpaSkeP08qampWrBggfv/e/fu1eLFi5WVlaWcnBx99dVXamxs1ODBgzvdfsuWLdq/f7/Gjh3rfsxisSg/P1/r16+PqiA+VCVg2vGFBQi+9nqwdru90+WRUA/WG729/nxf5OtnzvbtW7VtW4UaGur14Yfvy2g0dbuNy+VUS4tNq1evkskU49PFnLS0dNXW7vN6fYfDroaGBsXHx3PhqIecTqc2bSpTeXm5srIGMos8AEQgn4P4O+64Q6+//rpyc3P197//Xccee6xeeeUV/eEPf9DKlSt19913a/LkyT435K677tKrr76quLg4Pf3000pMTNS2bdskSS+++KI++OADGY1GjR8/XjNmzFBKSoqqqqokSQMGDPB4rn79+rmX+SsmJrQfWF9+uV2bNn3m0zY9KUU1fPgIDR8+0qdtgslkMnr89FxmkMHQ9jPUf5dg6Y2vKRp01c+63s6/v1dRUZEGDx6isrKNysx0uVPq2364VFdXp/79s1RYONz9vJHYN1JSkpSSkhTuZgREKI6vv/3M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4mIdd9xxuvrqq/X111+H+mUgwnXXz+bMmdPhfDZp0iT3cvoZfLVz504VFRVp2bJl7sc4nyHQOutnnM8QKLt37+7Ql4YNG+bub5zT/OQCguiKK65wnXPOOa7169e7duzY4Zo7d65rxIgRrs8//9zlcrlcY8eOdS1dutRVXV3t/rdv3z739rfffrvrtNNOc61fv961ceNG109+8hPXJZdcEqZXg0h18cUXu372s5+5Nm7c6Nq+fbvr5ptvdp1yyimuxsZG1969e10nnXSS64477nBt377d9fe//91VWFjo+vvf/+7e/vHHH3eddNJJrn//+9+uiooK129+8xvX5MmTXTabLYyvCpGmq37mcrlcP/3pT10LFy70OJ/V1NS4t6efwRctLS2uCy+80JWbm+t67bXXXC6Xi/MZAq6zfuZycT5D4Lz//vuuwsJC1+7duz36U1NTE+e0HiCIR9B88cUXrtzcXNeGDRvcjzmdTtdpp53mevTRR1179uxx5ebmujZv3tzp9lVVVa5jjz3W9f7777sf27Fjhys3N9f1n//8J+jtR3Sora11zZw507V161b3YxUVFa7c3FzXxo0bXc8884zrlFNOcbW2trqXL1iwwDV58mSXy+Vy2Ww2V1FRkWvJkiXu5XV1da4RI0a43nzzzdC9EES07vqZ0+l0HXfcca7ly5d3uj39DL5asGCB69e//rVHcMX5DIHWWT/jfIZAWrRokevcc8/tdBnnNP+RTo+gSU9P16JFi1RYWOh+zGAwyGAwyGq1auvWrTIYDDrmmGM63f6TTz6RJI0ZM8b92DHHHKP+/ftr/fr1wW08okZqaqoWLFig3NxcSdLevXu1ePFiZWVlKScnRxs2bNCJJ56omJgY9zZjxozRF198oT179mjLli3av3+/xo4d615usViUn59PP4Nbd/3sq6++UmNjowYPHtzp9vQz+GL9+vV65ZVX9PDDD3s8zvkMgXSofsb5DIG0detWDRkypNNlnNP8F9P9KoB/LBaLJkyY4PHYu+++qy+//FK//e1vtW3bNqWkpOi+++7T6tWrlZiYqDPPPFM33HCD4uLitHv3bqWnpys+Pt7jOfr166eqqqpQvhREibvuukuvvvqq4uLi9PTTTysxMVFVVVXuwKtdv379JEnfffeduy8NGDCgwzr0M3Sms362bds2SdKLL76oDz74QEajUePHj9eMGTOUkpJCP4PXrFarZs+erTlz5nToL5zPEChd9TPOZwikbdu2KT09XZdccol27typo446Stdff73Gjx/POa0HGIlHyPznP//RHXfcocmTJ2vixInatm2bbDabRowYoeeff17XX3+9/va3v2nOnDmSpKamJsXFxXV4nvj4eNlstlA3H1Hgsssu02uvvaZzzjlHN954ozZv3qzm5uYO/aj9wpDNZlNTU5MkdboO/Qyd6ayfbdu2TUajUf369dMzzzyj22+/XR9++KFuuOEGOZ1O+hm8du+996qoqEjnnntuh2WczxAoXfUzzmcIFLvdrh07dqiurk4333yzFi1apOOOO07XXHON1q5dyzmtBxiJR0isWLFCs2bN0qhRozR//nxJ0n333afbbrtNqampkqTc3FzFxsZqxowZmj17tsxms1paWjo8l81mU0JCQkjbj+iQk5MjSXrggQe0ceNGvfTSS532o/YTf2JiosxmsySppaXF/Xv7OvQzdKazfvbAAw/oV7/6ldLT0yW1nc8OP/xw/fznP1dZWRn9DF55/fXXtWHDBr355pudLud8hkDorp9df/31nM8QEDExMfroo49kMpncfWX48OGqrKzUCy+8wDmtBxiJR9C99NJLuvnmm3XqqafqmWeecV9hi4mJcQfw7YYOHSqpLWUwKytLtbW1Hd7c1dXV6t+/f2gaj4i3d+9e/fOf/5Tdbnc/ZjQalZOTo+rqamVlZam6utpjm/b/9+/f352i1dk69DO0666fGY1G9xfedgeez+hn8MZrr72mmpoaTZw4UUVFRSoqKpIk3XPPPbrqqqs4nyEguutnnM8QSElJSR4BuNTWn3bv3s05rQcI4hFUS5cu1e9+9ztdcsklWrhwoUc6zKWXXqo77rjDY/2ysjLFxsbq6KOP1vHHHy+n0+me4E5qq2W6e/dujR49OmSvAZFtz549mjlzptauXet+rLW1VeXl5RoyZIhGjx6tTz75RA6Hw7183bp1OuaYY5SZmaljjz1WycnJ+uijj9zLrVarysvL6Wdw666fzZ49W5dffrnHNmVlZZLaRu7pZ/DG/Pnz9dZbb+n11193/5OkqVOn6oEHHuB8hoDorp9xPkOgVFZWatSoUR59RZI2bdqknJwczmk9Ee7p8dF77dixw1VQUOC68cYbPepCVldXu6xWq+vFF1905eXluZYuXer66quvXP/85z9dJ510kmvhwoXu55g5c6Zr0qRJrnXr1rnrxE+ZMiWMrwqR6KqrrnJNnjzZ9fHHH7u2bt3qmjlzpmv06NGub7/91rVnzx7X6NGjXbfddpursrLS9dprr7kKCwtdy5Ytc2+/cOFC14knnuhasWKFRw3SlpaWML4qRJqu+tmKFStcubm5rscff9z15Zdfut5//33XpEmTXDNnznRvTz+DPw4s/cX5DMFyYD/jfIZAcTgcrosuush19tlnu9avX+/avn2768EHH3QNHz7ctXXrVs5pPWBwuVyucF9IQO/0zDPP6JFHHul02QUXXKCHH35YS5Ys0ZIlS/T111+777e65pprZDS2JYk0NjbqwQcf1LvvvitJGj9+vObMmdMhzQt9W319vRYsWKAVK1aovr5eJ5xwgm6//XZ3+t9nn32mBx54QOXl5Tr88MP1m9/8RlOmTHFv73A4tHDhQi1btkzNzc0aPXq07r77bg0cODBcLwkRqLt+9vbbb2vRokXasWOHUlJSdO6552r69OnuW4joZ/DHsGHD9NBDD+nCCy+UxPkMwXFwP+N8hkDZs2ePFixYoNLSUlmtVuXn52vWrFk64YQTJHFO8xdBPAAAAAAAUYJ74gEAAAAAiBIE8QAAAAAARAmCeAAAAAAAogRBPAAAAAAAUYIgHgAAAACAKEEQDwAAAABAlCCIBwAAAAAgShDEAwCAgHG5XOFuAgAAvRpBPAAAEeLSSy/VsGHDPP4NHz5cEydO1Ny5c1VXVxe0fS9btkzDhg3TN998I0l6/PHHNWzYMK+3r6qq0jXXXKNvv/22x2355ptvNGzYMC1btuyQ67S3r7CwUA0NDZ2u89e//lXDhg3TpEmTetwmAAAiRUy4GwAAAH6Qn5+ve+65x/3/1tZWbd68WQsXLlRFRYX++te/ymAwBL0dP/vZz1RcXOz1+mvWrNGqVauC2KLO2e12rVy5Uuedd16HZW+99VbI2wMAQLARxAMAEEGSk5N13HHHeTw2evRo7d+/XyUlJdq4cWOH5cGQlZWlrKysoO+np0aNGqW33367QxC/e/dubdiwQXl5ebJarWFqHQAAgUc6PQAAUWD48OGSpF27dklqS72fNWuWpk6dquOOO05XXHGFJMlms+kPf/iDJkyYoOHDh+vcc8/tMCLtdDr11FNPaeLEiRo5cqRuuOGGDqn6naXTv/7667rgggs0cuRITZw4UQsWLFBLS4uWLVumO+64Q5L0ox/9SLfffrt7m7/97W/68Y9/7L4t4PHHH5fD4fB43uXLl+u8887TiBEjdMEFF2jLli1eH5ezzz5bH374YYeU+nfeeUfHHHOMjj32WPdjN910U4dg/7LLLtPw4cPV3NzsfuyBBx7QGWec4XUbAAAIJYJ4AACiwM6dOyVJRx55pPuxt99+W0lJSXr66ad11VVXyeVy6cYbb9TLL7+sK664Qk8//bSKioo0Y8YMvf766+7t5s2bpyeffFI//elP9cQTTygtLU0LFizocv9LlizRbbfdpoKCAj3xxBO65ppr9OKLL+r+++/XxIkTdf3110uSnnjiCd1www2SpGeffVZ33XWXxo4dq2eeeUaXXHKJnnvuOd11113u5125cqWmTp2qYcOG6cknn9RZZ52lW2+91evjcsYZZ8jhcGjlypUej7/11lv68Y9/7PHYhAkTtG3bNtXU1Ehqu+Dx6aefqrW1Vf/973/d633wwQc69dRTvW4DAAChRDo9AAARxOVyyW63u/9fV1enjz/+2B2Qt4/IS1JsbKzmzp2ruLg4SdLq1atVWlqqRx55RGeffbYkqbi4WE1NTZo/f77OOeccNTY26sUXX9QVV1yhm266yb1OdXW1SktLO22T0+nUk08+qdNOO03333+/+/Gmpib985//VEpKigYNGiRJysvL08CBA1VfX6+nnnpKF198sebMmSNJOuWUU5SWlqY5c+boiiuu0NChQ/Xkk09qxIgRmjdvnrstkrq9qNDusMMO0+jRoz1S6r/99ltt3LhRf/jDH/T000+7150wYYIkae3atTrnnHP0n//8RyaTScccc4zWr1+vMWPG6Ouvv9YXX3xBEA8AiFiMxAMAEEHWr1+vgoIC97+TTz5ZM2fO1PDhw7VgwQKPSe0GDx7sDuCltuDUYDBowoQJstvt7n+TJk3S999/r8rKSv33v/9Va2trhyD1rLPOOmSbdu7cqZqaGp1++ukej1955ZVatmyZYmNjO2zz6aefqrm5WZMmTerQFqntgkNzc7M2b97sU1s6c3BK/T//+U8VFBToqKOO8livX79+ys/P15o1ayS1Ha9Ro0Zp9OjR+vjjjyW1jcJbLBYdf/zxPrUBAIBQYSQeAIAIUlBQoLlz50qSDAaD4uPjNWDAACUnJ3dYNykpyeP/tbW1crlcGjVqVKfPXV1d7Z7kLT093WPZ4Ycffsg21dbWSpIyMzO9fh3t21xzzTWHbEtdXZ1cLleHtvTr18/r/UjS6aefrvvuu889S/3bb7+tc889t9N1J0yYoDfeeENSWxB/+umna8CAAXrjjTfU0tKi0tJSFRcXKyaGr0gAgMjEJxQAABEkKSlJhYWFfm2bkpKixMRE/eUvf+l0+VFHHaXPPvtMklRTU6PBgwe7l7UH3Z2xWCySpL1793o8vm/fPpWXl6uoqOiQ28yfP19HH310h+WHHXaY0tLSZDQatWfPHo9lXbWlMxkZGRozZozeeecdjRgxQlu2bPFIoz/QxIkT9dRTT2nz5s3avHmz7rzzTmVnZ8tms2nDhg366KOP3BdRAACIRKTTAwDQS5x44olqbGyUy+VSYWGh+9+2bdv05JNPym63q6ioSGazWe+8847Htv/+978P+byDBw9Wenp6h3XeeOMNXXPNNWptbZXR6PmVYuTIkYqNjdXu3bs92hITE6OFCxfqm2++UXx8vIqKirR8+XK5XC73tgdPUueN9pT6v//97zr++OMPWR6vsLBQGRkZeuqppxQfH6/hw4erX79+Gjx4sJ544gnZbDaNHz/e5/0DABAqjMQDANBLTJgwQaNHj9YNN9ygG264QUOGDNFnn32mkpISFRcXKyMjQ5J0ww036NFHH1VCQoLGjBmjVatWdRnEm0wm3XzzzbrvvvuUmZmpSZMmaefOnSopKdEll1yi1NRU98j7e++9p/Hjx2vIkCG66qqr9Nhjj6mhoUEnnXSSdu/erccee0wGg8Fd+m3mzJm67LLLdNNNN+niiy/Wzp079cwzz/j82k8//XTdc889Wrx4se68885Drmc0GjV+/Hi9/vrrOuWUU9xp8yeddJL++te/6oQTTlBaWprP+wcAIFQYiQcAoJcwGo1atGiRfvzjH+vZZ5/VlVde6S4398gjj7jXu/baa/Xb3/5W77zzjq6//npt3bpVt912W5fPfckll+jhhx/WRx99pGuvvVaLFy/W1VdfrdmzZ0tqC4JPPvlkLViwQL///e8lSdOnT9ftt9+u9957T1dffbXmzZun448/Xi+99JJSUlIkSSeccIKee+457d69WzfddJNeeeUVPfjggz6/dovFolNOOUUul6vbGu/ts9SfdNJJ7sfaf584caLP+wYAIJQMrgPz1wAAAAAAQMRiJB4AAAAAgChBEA8AAAAAQJQgiAcAAAAAIEoQxAMAAAAAECUI4gEAAAAAiBIE8QAAAAAARAmCeAAAAAAAogRBPAAAAAAAUYIgHgAAAACAKEEQDwAAAABAlCCIBwAAAAAgSvx/J6lzsESVh2MAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot true value as a function of predicted value, with MAPIE uncertainty error bars for visualisation.\n", + "plt.figure(figsize=(12,5))\n", + "plt.errorbar(df[config.data.response_column], df['mapie_pred'], yerr=df['mapie_unc'].abs(), fmt='o',color='black', alpha=.8, ecolor='gray', elinewidth=1, capsize=10);\n", + "plt.xlabel('Predicted Mw');\n", + "plt.ylabel('Expected Mw');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where more certain predictions have smaller error bars.\n", + "\n", + "The same analysis can be performed by plotting similarity to nn's (increasing similarity to the training set moving from left to right on the x-axis):" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7NgxLFu2DC+++CKKiooAAE6nE1VVVZg/fz5GjBiB119/HZIkQRRFAMD27dtxwgknID09HcnJyUhKSsLHH3/sCeItFguqqqqwaNGiiJ0XERENrYkTJyMzc+yQvZ5eH7td9IiIiEjdIhrEZ2dnY+7cuXj44Yfx8MMPIyUlBc8//zwsFgsuv/xy6HQ6vPjii/jtb3+Lq6++Grt378aaNWvw4IMPAugaC79o0SKUlpYiLS0NY8aMwfLly5GRkYEFCxZE8tSIiGgIdXVvZ2BNREREsS/iY+JXrlyJFStWYOnSpWhra8Mpp5yCtWvXIjMzEwDw4osv4pFHHsGFF16I4447DrfffjsuvPBCz/7FxcVwuVy45557YLfbMXPmTLz00kuIi4uL1CkREamezWaD3R7YGHKLxQyXywWLxRzQOqCr5ZpBNhEREdHgaRRFUSJdCLWRJBnNzeGfmCmctFoBJlMiWlraY3YsSDRj/ajbcKifvXt3BzWG3OGwQ6fT9xpDLkkuWCytMBpTIIq9nw+Hegz5cKijSGppacbGjf/GWWedA5MpLeD9WT/qxvpRP9aRurF+1C1a6yctLTE6JrYjIqLICPUYcovFjG3byjF7dhGMxtRe6zmGnIiIiCg0GMQTEQ1D4RhDrtVqYTSmBtVyS0RERET+CSynDhERERERERFFDIN4IiIiIiIioijBIJ6IiIiIiIgoSjCIJyIiIiIiIooSDOKJiIiIiIiIogSDeCIiIiIiIqIowSCeiIiIiIiIKEowiCciIiIiIiKKEgziiYiIiIiIiKIEg3giIiIiIiKiKMEgnoiIiIiIiChKaCNdACIiUhebzQa73RbQPhaLGS6XCxaLOeDX0+sNMBgMAe9HRERENBwxiCciIi8HDtShqqoyoH1kWYbT2Ynt27dCEALr5JWbm4+8vOkB7UNEREQ0XDGIJyIiLxMnTkZm5tghez29nq3wRERERP5iEE9ERF4MBnZvJyIiIlIrTmxHREREREREFCUYxBMRERERERFFCQbxRERERERERFGCQTwRERERERFRlGAQT0RERERERBQlGMQTERERERERRQkG8URERERERERRgkE8ERERERERUZRgEE9EREREREQUJRjEExEREREREUUJBvFEREREREREUYJBPBEREREREVGUYBBPREREREREFCW0kS4AERERhY/NZoPdbgtoH4vFDJfLBYvFHPDr6fUGJCcnBrwfERER+YdBPBERUQw7cKAOVVWVAe0jyzKczk5s374VghBYp73c3HzMmHFiQPsQERGR/xjEExERxbCJEycjM3PskL2eXm8YstciIiIajhjEExERxTCDwQCDgYE1ERFRrODEdkRERERERERRgkE8ERERERERUZRgEE9EREREREQUJRjEExEREREREUWJiE9sZzabsXLlSnz44YewWq2YMmUKbr31VpxyyimYP38+vvnmG5/7vfbaa5g5cyaOHj2KuXPn9lr/6KOP4qKLLgp38YmIiIiIiIiGTMSD+GXLluHbb7/FypUrkZ6ejldffRVXXXUV/vGPf+Dvf/87JEnybNvZ2Ykrr7wSGRkZKCgoAADs27cPOp0OGzduhEaj8WybnJw85OdCREREREREFE4RDeK/+uorbN26FevWrcPJJ58MALj33ntRXl6Od955B4sXL/ba/g9/+AMsFgv+8pe/QKvtKnptbS0mTJiAkSNHDnn5iYiIiIiIiIZSRMfEm0wmrF69Gvn5+Z5lGo0GGo0GFovFa9v9+/fjz3/+M+68806kpaV5ltfU1GDSpElDVmYiIiIiIiKiSIloS7zRaMS8efO8lr3//vv46quvcPfdd3stLysrQ3Z2Ni644AKv5bW1tTCZTPj1r3+NgwcP4vjjj8cNN9zgc5x8ILTa6J7zTxQFr5+kLqwfdWP9qB/rSN1YP+rG+lE/1pG6sX7UbTjUj0ZRFCXShXD73//+h6uvvhqFhYV48sknPcsPHTqEBQsWYNWqVViwYIFnucvlwoknnoisrCzceeedSEpKwr/+9S+88soreOWVVzB79uygyqEoitf4eiIiIiIiIiI1iPjEdm4bN25ESUkJTjrpJJSWlnqt++c//4n09HScddZZXsu1Wi0+/vhjiKIIvV4PAJg2bRrq6urw0ksvBR3Ey7ICi6UjuBNRCVEUYDQaYLHYIElypItDPbB+1I31o36sI3Vj/agb60f9WEfqxvpRt2itH6PR4HfvAVUE8a+99hoeeeQRnH322fjDH/6A+Ph4r/UbN27Ej370IwhC75NKTEzstWzy5MnYsmXLoMrkckVPhfdHkuSYOZdYxPpRN9aP+rGO1I31o26sH/VjHakb60fdYrl+Ij5QYN26dXjooYfw61//GitXruwVwFutVlRXV2POnDm9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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot true value as a function of predicted value, with MAPIE uncertainty error bars for visualisation.\n", + "plt.figure(figsize=(12,5))\n", + "plt.errorbar(df['nn'], df['mapie_pred'], yerr=df['mapie_unc'].abs(), fmt='o',color='black', alpha=.8, ecolor='gray', elinewidth=1, capsize=10);\n", + "plt.xlabel('Nearest neighbor (NN) similarity');\n", + "plt.ylabel('Expected Mw');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The MAPIE package uses the `alpha` parameter to set the uncertainty of the confidence interval, see here for details. It is possible to alter the uncertainty of the confidence interval by setting the `mapie_alpha` parameter of the QSARtuna model predictor. Here lower alpha produce larger (more conservative) prediction intervals. N.B: `alpha` is set to 0.05 by default and will hence provide more conservative predictions if not changed.\n", + "\n", + "The alpha settings as a function of uncertainty (over all point predictions) can be analysed for our toy example using the following (error bars denote deviations across all point predictions which have been extended by two standard error widths):" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAG1CAYAAAAC+gv1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABquUlEQVR4nO3deVhUZf8G8HuGGYZ1kB0UcWGVRRYBwRVNca1e9a3eSkvLtNVf+pplWrmkWbmUlZppWS5RqWm+mpppqakIiiu7LCrKvoysA8z5/UFMgpQsA4fl/lwXV3DOzJnvfJvi5pznPI9EEAQBRERERKQlFbsAIiIioraGAYmIiIioDgYkIiIiojoYkIiIiIjqYEAiIiIiqoMBiYiIiKgOBiQiIiKiOhiQiIiIiOpgQCIiIiKqQyZ2AW2RIAjQaJo/wbhUKtHJcajx2HvxsPfiYe/Fw96Lp6b3UqkEEolEZ8dlQKqHRiMgL6+4WceQyaQwNzeGSlWCykqNjiqjhmDvxcPei4e9Fw97L567e69UGkJPT3cBiZfYiIiIiOpgQCIiIiKqgwGJiIiIqA4GJCIiIqI6GJCIiIiI6mBAIiIiIqqDAYmIiIioDgYkIiIiojoYkIiIiIjqYEAiIiIiqoMBiYiIiKgOBiQiIiKiOhiQWpEgCBAErvZMRETU1jEgtRJBEPDetvN4b/t5hiQiIqI2TiZ2AZ2FukKDpPRC7fcKfT2RKyIiIqK/wzNIRERERHUwIBERERHVwYBEREREVAcDUiuprNKIXQIRERE1EANSKymrqNJ+X1RWIWIlREREdD8MSK3ExECu/f5qcp6IlRAREdH9iB6QcnNz8dprryE4OBh+fn6YMWMGrl27pt2/cOFCuLm51foaPny4dr9Go8HatWsxePBg+Pr64rnnnsONGzfEeCsNdik5V+wSiIiI6B+IHpBeeuklpKWlYePGjdi5cycMDAwwdepUlJaWAgDi4+Px/PPP4+TJk9qvnTt3ap+/bt067NixA0uXLkV4eDg0Gg2mT58OtVot1lu6r5jUXI5JIiIiasNEDUiFhYXo1q0b3n33XfTt2xdOTk548cUXkZWVhcTERAiCgKSkJHh5ecHa2lr7ZWFhAQBQq9X48ssvMWvWLISGhsLd3R1r1qxBRkYGDh8+LOZb+0dlag0SbhSIXQYRERH9DVEDkpmZGVatWgVXV1cAQF5eHrZs2QI7Ozs4Ozvj+vXrKCkpQe/evet9flxcHIqLixESEqLdplQq4eHhgcjIyFZ5Dw2lL5fC2cEMSqPqsUgXknJEroiIiIj+TptZauStt97C999/D319faxfvx5GRkZISEgAAGzduhXHjx+HVCrFkCFDMHv2bJiamiIjIwMAYG9vX+tYNjY22n1NJZM1Lzvq6Ulr/RMA3no6AFFxWfhk12VcSsrFlFESSCSSZr0O3au+3lPrYO/Fw96Lh70XT0v2vs0EpKeffhqPPfYYtm/fjpdeegk7duxAQkICpFIpbGxssGHDBly/fh0ffPABEhMT8fXXX2vHKenr69c6lkKhQGFhYZNrkUolMDc3btb7qaFUGtb6eXA/A6zfcxVZBaUoUmvgaKfUyevQver2nloPey8e9l487L14WqL3bSYgOTs7AwCWLVuGixcvYtu2bVi2bBmeeOIJmJubAwBcXV1hbW2NRx99FJcvX4aBgQGA6rFINd8DQHl5OQwNm94sjUaASlXSjHdTnWaVSkOoVKWoqjMg26OnOS5dy8Xv525g/ICezXodutc/9Z5aFnsvHvZePOy9eO7uvbGxQqdnkkQNSHl5eTh9+jRGjRoFmay6FKlUCmdnZ2RlZUEqlWrDUQ0XFxcAQEZGhvbSWlZWFhwdHbWPycrKgpubW7Nqq6zUzYe8qkpzz7H6Olni0rVcnE/Ixuggx795JjVXfb2n1sHei4e9Fw97L56WCKaiXjDNycnBnDlzcPr0ae22iooKxMTEwMnJCfPmzcPUqVNrPefy5csAqs84ubu7w8TEBBEREdr9KpUKMTExCAwMbJX30BQ+TlYAgGvphbhT0nanIyAiIuqsRA1Irq6uGDJkCN59911ERkYiISEBb7zxBlQqFaZOnYpRo0bh9OnT+PTTT3H9+nX8/vvvePPNNzF+/Hg4OTlBX18fkydPxsqVK/Hrr78iLi4Os2fPhp2dHcLCwsR8a//I0swA3W1MIAjApWucNJKIiKitEX0M0urVq7Fq1SrMnj0bd+7cQUBAALZv346uXbuia9eu+Oijj7Bx40Z88cUXMDU1xYMPPohXX31V+/xZs2ahsrISCxcuRFlZGQIDA7F582bI5fK/f9E2wMfZCjeyinAxKQcDve3v/wQiIiJqNRJBEASxi2hrqqo0yMsrbtYxZDIpzM2NkZ9fXO816eRbKrz7TRQM9PWw9v8GQ8bbQ3Xmfr2nlsPei4e9Fw97L567e69UGup0kDZ/K4ukp70pzIz1UaauQvz1ArHLISIiorswIIlEKpGgr5MlAM6qTURE1NYwIInI17n6braLSTnglU4iIqK2gwFJRB49LSDTkyKnsAzpOc0b80RERES6w4AkIoW+Hjx6Vk+EeZGX2YiIiNoMBiSR+fx5mY3jkIiIiNoOBiSR+fw5UDs5XQVVMWfVJiIiagsYkERmoTSAo60JBHBWbSIioraCAakNuPtuNiIiIhIfA1IbUDMO6UpqHio4CysREZHoGJDagB52pjAz0Ue5ugrx1/PFLoeIiKjTY0BqA6QSCXyceDcbERFRW8GA1EZwVm0iIqK2gwGpjejT0xxymRS5qnLczOas2kRERGJiQGojFHI9ePSonlWbl9mIiIjExYDUhvi4VF9mu8SAREREJCoGpDakZqB28i3Oqk1ERCQmBqQ2xNxUgR62phAAXLzGs0hERERiYUBqY3ycq9dmu5jEZUeIiIjEwoDUxvj+OQ7pakoeKiqrRK6GiIioc2JAamN62Jqii4k+yiuqEHe9QOxyiIiIOiUGpDZGIpFo12bj7f5ERETiYEBqg3w4qzYREZGoGJDaII8e5tCXSZGnKseNrCKxyyEiIup0GJDaIH25Hjx6WgCoPotERERErYsBqY2qud3/Am/3JyIianUMSG1UzTiklNsqFBaVi1wNERFR58KA1EZ1MVGgp50pAODiNZ5FIiIiak0MSG2Y7113sxEREVHrYUBqw2ous11N5azaRERErYkBqQ1ztDWBuakC6goNYtPyxS6HiIio02BAasNqz6rNcUhEREStRfSAlJubi9deew3BwcHw8/PDjBkzcO3aNe3+2NhYTJ48Gb6+vhg+fDi++eabWs/XaDRYu3YtBg8eDF9fXzz33HO4ceNGa7+NFuP75+3+nFWbiIio9YgekF566SWkpaVh48aN2LlzJwwMDDB16lSUlpYiPz8f06ZNg6OjI3bt2oWXXnoJK1euxK5du7TPX7duHXbs2IGlS5ciPDwcGo0G06dPh1qtFvFd6U6fHubQl0uRf6cc1zM5qzYREVFrEDUgFRYWolu3bnj33XfRt29fODk54cUXX0RWVhYSExPx/fffQy6XY8mSJXBycsKkSZMwdepUbNy4EQCgVqvx5ZdfYtasWQgNDYW7uzvWrFmDjIwMHD58WMy3pjNymR48Oas2ERFRqxI1IJmZmWHVqlVwdXUFAOTl5WHLli2ws7ODs7MzoqKiEBQUBJlMpn1OcHAwUlNTkZOTg7i4OBQXFyMkJES7X6lUwsPDA5GRka3+flrKX+OQGJCIiIhag+z+D2kdb731Fr7//nvo6+tj/fr1MDIyQkZGhjY81bCxsQEA3L59GxkZGQAAe3v7ex5Ts68j8HGqHoeUmnEH+XfKYW6qELkiIiKijq3NBKSnn34ajz32GLZv346XXnoJO3bsQFlZGfT19Ws9TqGoDgfl5eUoLS0FgHofU1hY2Kx6ZLLmnVzT05PW+mdzWHYxRO+uSiTfUuFKSh6G+Xdr9jE7Ml32nhqHvRcPey8e9l48Ldn7NhOQnJ2dAQDLli3DxYsXsW3bNhgYGNwz2Lq8vHpdMiMjIxgYGACoHotU833NYwwNDZtci1Qqgbm5cZOffzelsul13G1A365IvqXC1dR8THzA9f5PIJ31nhqPvRcPey8e9l48LdF7UQNSXl4eTp8+jVGjRmnHGUmlUjg7OyMrKwt2dnbIysqq9Zyan21tbVFZWand5ujoWOsxbm5uTa5LoxGgUpU0+flAdZpVKg2hUpWiqkrTrGMBgHt3MwDAhYQsZGapoC/Xa/YxOypd954ajr0XD3svHvZePHf33thYodMzSaIGpJycHMyZMwebNm3C4MGDAQAVFRWIiYnB8OHDYWVlhfDwcFRVVUFPrzoQnDlzBr169YKlpSVMTU1hYmKCiIgIbUBSqVSIiYnB5MmTm1VbZaVuPuRVVRqdHMvewggWSgXyVOW4dC1Xu04b/T1d9Z4aj70XD3svHvZePC0RTEW9YOrq6oohQ4bg3XffRWRkJBISEvDGG29ApVJh6tSpmDRpEoqKirBgwQIkJSVh9+7d2LJlC2bOnAmgeuzR5MmTsXLlSvz666+Ii4vD7NmzYWdnh7CwMDHfms7dPas2b/cnIiJqWaKPQVq9ejVWrVqF2bNn486dOwgICMD27dvRtWtXAMCmTZuwbNkyTJgwAdbW1pg3bx4mTJigff6sWbNQWVmJhQsXoqysDIGBgdi8eTPkcrlYb6nF+Dpb4dj5dO2s2hKJROySiIiIOiSJwPUr7lFVpUFeXnGzjiGTSWFuboz8/GKdnXKtqKzCrI9PoryiCm9PDUBPO6VOjtvRtETvqWHYe/Gw9+Jh78Vzd++VSkOdjkHiPYntiFymB89e1bNqX0jkZTYiIqKWwoDUzvhoF6/NFbkSIiKijosBqZ3p62QFCYC0zOpZtYmIiEj3GJDaGTNjffTqWj326OI1XmYjIiJqCQxI7ZD2dn+OQyIiImoRDEjtUM0kkTFp+SivqBK5GiIioo6HAakdcrA2hqVSgYpKDWJT88Uuh4iIqMNhQGqH7p5V+wJn1SYiItI5BqR2quYy28VrOdBwrk8iIiKdYkBqp9wczaHQ10NhkRppGXfELoeIiKhDYUBqp+QyKbx6Vs+qzcVriYiIdKtJi9WmpaXh9OnTuHnzJu7cuQNzc3N069YNgwYNgr29va5rpL/h42yFcwnZuJCUg38N7i12OURERB1GowLSkSNH8Pnnn+PKlSsQBAFKpRKGhoZQqVQoLS2FRCJB3759MXPmTAwfPrylaqY/9XWyhATA9cwi5KnKYKE0ELskIiKiDqFBASk9PR1vvPEGEhMTERYWhjlz5sDb2xsmJibax6hUKkRFReH48eOYN28eXFxc8MEHH6B79+4tVnxnpzTWR+9uSlxLV+HitVwM8+smdklEREQdQoPGIE2ePBkjR47E8ePHsWTJEoSEhNQKRwCgVCoxfPhwLFq0CCdOnMDIkSMxZcqUFima/qK9m43jkIiIiHSmQWeQfvzxR3Tp0qXBBzU0NMQzzzyDCRMmNLUuaiAfZyvs+j0ZMan5KFdXQaGvJ3ZJRERE7V6DziAdP34ceXl5jT64ubl5o59DjdPNyhhWZgaorNIgJrXx/46IiIjoXg06gzRv3jxIJBK4urpiwIABGDx4MAICAqCvr9/S9dF91Myq/eu5m4hOzIavixUkEonYZREREbVrDQpIu3btQmRkJKKiorBnzx589dVXUCgU8Pf3x8CBAzFw4ED06dOnpWulv+H7Z0A6fTUTGXmlmD/ZnyGJiIioGRoUkDw9PeHp6YmpU6cCAK5du4azZ8/i3Llz2L59O1auXAkLCwuEhIRg0KBBHHvUytwcu0Ahl6K8QoOk9EKoKzQci0RERNQMTZoo0snJCU5OTnj88ccBABEREdixYwcOHTqEAwcOMCC1MpmeFB49LRCdyDvZiIiIdKFJASkvLw8nTpzA6dOnERERgYyMDBgZGWHw4MEYNGiQrmukBvB3tdYGpMISNWz0DUWuiIiIqP1qUECqqqpCdHQ0Tpw4gRMnTiAuLg5A9aW3hx9+GIMGDYKvry9ksiblLdIBf1drbN4fCwDYdzIFz473ELkiIiKi9qtBiaZ///4oLi6Gvb09QkJC8Nxzz2HAgAEwMzNr6fqogaR3Dcr+40oGRgZ2h6OtqYgVERERtV8NmgepqKgIZmZmGDp0KEJDQzF48GCGozZGXy6Fs4MZTAzlAIDwXxMhCILIVREREbVPDTqDtHPnTpw4cQInT57EDz/8AADo27cvBg0ahEGDBqFv374tWiTdn0Qiwfwn/ZFTWIoFX5xF3PUCRCfmwN/VWuzSiIiI2h2J0MjTDEVFRTh16hROnjyJkydP4tatW+jSpQsGDBiAQYMGYeDAgbC1tW2peltFVZUGeXnFzTqGTCaFubkx8vOLUVmp0VFlDbP7+DX871QabLoYYun0/pDLGnSisMMQs/edHXsvHvZePOy9eO7uvVJpCD093f2+a/SoahMTE4SFhSEsLAxA9ZxIZ86cQUREBBYtWoTKykrExMTorEBqvLHBPXDi4m1kFZTiyLkbGNO/h9glERERtStNjloFBQU4duwY9uzZg4MHD+LkyZPQaDS83NYGGOjLMGmoEwBg3x+pKCxWi1wRERFR+9LgM0ipqak4f/689islJQWCIMDFxQUhISF49tlnERgYCGNj45aslxpogLcdfj1/E2kZd7DnRDKeHu0udklERETtRoMCUnBwMAoLCyEIArp27YqQkBC8+OKLCAkJgaWlZUvXSE0glUjw+AMuWLH9PI5fvIVhft142z8REVEDNXgepAEDBiAkJASOjo4tXRPpiGv3Lgh0t0FkXBbCf03Ea4/7cRFbIiKiBmhQQPr4449bug5qIY+EOiE6MYe3/RMRETVCgwLSU0891eADSiQSfP311w1+fEFBAVavXo3ffvsNRUVFcHNzw3//+18EBAQAAKZNm4ZTp07Vek5QUBC2bt0KACgvL8eKFStw8OBBlJWVYfjw4ViwYAEsLCwaXENHZtXFEKOCumP/6TR8fzQJ3r0tO91t/0RERI3VoIB09uxZSCQSuLi43HcG7cbO3jxnzhxkZ2dj9erVsLS0xNatW/Hss8/ixx9/RO/evREfH49FixZhxIgR2ufI5XLt94sWLUJUVBQ++eQT6Ovr45133sGsWbOwbdu2RtXRkY0L6YGTl6pv+//13E2M7s/LpERERP+kQQFp+vTp+Pnnn5GcnIyBAwdi3LhxGDFiBIyMjJr14mlpafjjjz+wY8cO9OvXDwDw1ltv4cSJE9i3bx8mT56M3Nxc+Pj4wNr63ktDmZmZ2LNnDzZs2KA947R69WqMHj0a0dHR8PPza1Z9HUXNbf9fHojFvlMpGOBlB6WxvthlERERtVkNutYyd+5c/Prrr9i+fTt69uyJVatWYcCAAXj11Vdx5MgRqNVNm2fH3NwcGzduhLe3t3abRCKBRCKBSqVCfHw8JBIJevXqVe/zz507B6D6LrsavXr1gq2tLSIjI5tUU0c1wNsOPWxNUVpehR9PJItdDhERUZvWqJm0fXx84OPjgzfeeAORkZE4cOAA3n77bajVaowcORLjxo3DgAEDIJU2bIyLUqnE0KFDa207dOgQ0tLS8OabbyIhIQGmpqZYsmQJ/vjjDxgZGWH06NF48cUXoa+vj8zMTJibm0OhUNQ6ho2NDTIyMhrz1u4ha+Y4nZrpznU57XlzTR7limXfnMPxi7cwMrB7h73tvy32vrNg78XD3ouHvRdPS/a+0UuNANVneYKCghAUFIS3334bZ86cwYEDB/DCCy9AqVTijz/+aFIx58+fx/z58xEWFobQ0FC8+eabKC8vR9++fTFt2jTExsbigw8+wK1bt/DBBx+gtLQU+vr3XipSKBQoLy9vUg0AIJVKYG6umwkvlUpDnRxHF4LNjTHI5zZOXryF749dw7vPD+jQt/23pd53Nuy9eNh78bD34mmJ3jcpIN3t4sWL+P3333Hy5ElUVFQ0+e6xI0eOYO7cufD398fKlSsBAEuWLMHrr7+uHRju6uoKuVyO2bNnY968eTAwMKj38l55eTkMDZveLI1GgEpV0uTnA9VpVqk0hEpViqqqtrN44YTBvRBxJQOXknLwa0Qq+rnZiF2SzrXV3ncG7L142HvxsPfiubv3xsYKcRerBYDo6Gj8/PPPOHz4MDIyMtCrVy9MmjQJY8eOhZOTU6OPt23bNixbtgyjR4/G+++/rz0rJJPJ7rlrzsXFBQCQkZEBOzs7FBQUQK1W1zqTlJWVBVtb26a8NS1drchcVaVpU6s7m5soEPbnbf/f/pIIjx4WHfa2/7bW+86EvRcPey8e9l48LRFMGxyQ6oai7t274+GHH8aYMWPg7t70db527NiBpUuXYsqUKViwYEGtSz5TpkyBg4MD3nvvPe22y5cvQy6Xo2fPnrC2toZGo8G5c+cQEhICAEhJSUFmZiYCAwObXFNHNzaYt/0TERH9kwYFpNDQUGRmZsLe3h7jxo3D2LFj4enp2ewXT0lJwfLlyzFy5EjMnDkTOTk52n0GBgYYNWoUli9fjr59+2LQoEG4fPkyPvjgAzz77LMwMTGBiYkJxo0bh4ULF2L58uUwNDTEO++8g6CgIPj6+ja7vo7KUMHb/omIiP6JRGjAzI7u7u6QSqWws7O776BeiUSCI0eONOjFN2zYgDVr1tS7b8KECVixYgW2b9+O7du348aNG7C2tsajjz6KGTNmaO+UKykpwfLly3Ho0CEAwJAhQ7Bw4UKYm5s3qIb6VFVpkJdX3OTnA9V3wZmbGyM/v7hNnnLVCAKWbolCWuYdDPXtiqdHN/0sYFvT1nvfkbH34mHvxcPei+fu3iuVhjodg9SggDR//vxGHfTuS2LtUWcISACQcKMAK7afh0QCvDM1sMPc9t8eet9RsffiYe/Fw96LpyUDUoMusbX3wEP1c+3eBQHuNoiKy0L4r4l47XG/Dn3bPxERUUM1KWoJgoBPP/0U2dnZtbZnZmbi008/1Ulh1DoeDXWCTE+KuOsFuJCYc/8nEBERdQJNCkgajQafffYZsrKyam3PyMjAZ599ppPCqHVYdTHEqKDuAIDvjiahgqeHiYiImhaQgOqzSNQxjA3uATNjfe1t/0RERJ1doyaKrFkAtqqqCgAQExODkpK/Zpyub9kPavsMFTJMHNobXx2I423/REREaGRAmjJlCiQSifbs0VtvvaXdJ5FIEB4ertvqqNUM9LbH0XPpSMu8gz0nkvFUB7rtn4iIqLEaFZB+/fVXANVnkMLCwrBhwwbt0h8Aak30SO2LVCLB4yNcsGL7efx+8RaG+Tugu42J2GURERGJolFjkLp166b9AgBra+t7tlH7VXPbvyAA3x5J4DgzIiLqtHS+Sil/qbZvvO2fiIioiQFJT08P7733HhwcHGpt7969OyeVbOd42z8REVEDA1JycvI92yZMmAAzM7Na2ywsLDBhwgTtz9euXWtmeSQG3vZPRESdXYMC0owZM7BixQrk5eU16KC3bt3CkiVLMGPGjGYVR+Koue0fAPadSoGqWC1yRURERK2rQQFpz549KCgowJAhQzB9+nT88MMPiIuLQ1FRETQaDQoKChAXF4ft27djxowZCAsLQ2FhIXbv3t3S9VMLGehtjx62pigtr8KeE/eeQSQiIurIJEIjRlVfvXoVn3/+OY4ePaqdLPJuCoUCQ4YMwYwZM+Dl5aXTQltTVZUGeXnFzTpGR1jdOeFGAVZsPw+JBHhnaiC625i0i8VsO0Lv2yv2XjzsvXjYe/Hc3Xul0hB6erq796xR8yB5enpi7dq1KCkpQVRUFG7cuIGioiKYm5uja9euCAgIgIGBgc6KI3HV3PYfFZeF93ecRzcrE8yf7N8uQhIREVFzNCog1TAyMsKQIUN0XQu1QY+EOiE6IRul5VVISi+EukIDhb6e2GURERG1KJ3Pg0Qdi3UXQ4wI+Gs6B972T0REnQEDEt3XqCBH7fdf/RyLyiqGJCIi6tgYkOi+DPX/uhIbnZiDz3ZfRkXlvYP0iYiIOgoGJGoUmZ4EF6/l4uOdl1CuZkgiIqKOqdEB6fPPP0dmZmZL1EJtlL5cCmcHMzg7mGH2Iz5QyPUQk5qP1d9fQGl5pdjlERER6Vyj5kECgICAAJSWliIkJAQTJ07EiBEjoK+v31L1iYLzIN2r5mMikUiQlF6INd9fRGl5JXrZm2L2o74wMZSLXOFfOlrv2xP2XjzsvXjYe/G05DxIjT7SyZMn8d5770EQBMydOxeDBw/G4sWLcenSJZ0VRW2PRCLRzn/k3M0M8x73g4mhHCm37+CDHdFcjoSIiDqURp9BultGRgb27t2LgwcPIi4uDs7Ozpg4cSIefvhhWFhY6LLOVsUzSA1zM7sIK8MvQFWshr2lEeb+xw/mpgqxy+oUvW+r2HvxsPfiYe/F06bOIN3Nzs4O06ZNw4svvoiAgAAkJibigw8+QGhoKBYtWoSioiJd1UltkIO1Cd540h/mpgrczi3B+9vPI6ewVOyyiIiImq3JAens2bNYsGABBgwYgP/7v/+DXC7H6tWrERkZiRUrVuDgwYOYM2eOLmulNsjOwgjzn/SHdRcDZBWUYsX288jMKxG7LCIiomZp9FIja9aswb59+3D79m3Y29tj6tSpmDhxIrp27ap9zNixYxEfH49vvvlGp8VS22TVxRBvPNkPK8OjcTu3BCu2n8fc//iim7WJ2KURERE1SaPPIH311Vfw9fXFpk2b8Ouvv+Lll1+uFY5qeHt749VXX9VFjdQOmJsq8PoT/nCwNkFhsRrv74hGWsYdscsiIiJqkkYP0o6JiYGzs3O9t/aXl5fj6tWr8Pf311mBYuAg7aYrKq3A6u8uIDXjDgwVMsx51AdO3cxatYbO2vu2gL0XD3svHvZePG1qkPakSZMQFxdX775Lly5h2rRpzS6K2i8TQznm/scPzg5mKC2vxMrvLiD+er7YZRERETVKg8Ygvf/++ygoKABQPWHgunXrYG5ufs/jYmNjYWpqqtMCqf0xMpDhv4/6Yu2uS4hNy8ea7y/i5Yne8OptKXZpREREDdKggNS7d2+sX78eQPWEgVeuXLnnEpuenh5MTU0xf/583VdJ7Y5CXw+vPtIXn/14BZeu5WLtrkt44WEv+Llai10aERHRfTV6DNLw4cOxbt06uLu7t1RNouMYJN2prNJg409XERWfDalEghkPeSCoj22LviZ7Lx72XjzsvXjYe/G0qTFIR48e1Wk4KigowNtvv40hQ4bA398fjz/+OKKiorT7T58+jYkTJ8LHxwejR4/G/v37az2/vLwcixcvRkhICPz8/PDf//4XeXl5OquPmkemJ8XMhz0R4mkLjSDg85+u4uSl22KXRURE9I8aPQ+SIAj44YcfcOzYMZSWlkKjqZ2WJRIJvv766wYfb86cOcjOzsbq1athaWmJrVu34tlnn8WPP/4IQRAwc+ZMTJs2DR9++CF+++03zJs3DxYWFggJCQEALFq0CFFRUfjkk0+gr6+Pd955B7NmzcK2bdsa+9aohehJpXh2vAfkMj0cv3gLXx6IRUVlFYb5O4hdGhERUb0aHZBWrVqFTZs2wcHBAXZ2dtoFTGs05opdWloa/vjjD+zYsQP9+vUDALz11ls4ceIE9u3bh9zcXLi5uWH27NkAACcnJ8TExGDTpk0ICQlBZmYm9uzZgw0bNiAgIAAAsHr1aowePRrR0dHw8/Nr7NujFiKVSPD0aDfoy6U4EnUTWw8noLxCg9H9HcUujYiI6B6NDkh79uzBtGnT8Prrrzf7xc3NzbFx40Z4e3trt9WsGq9SqRAVFYURI0bUek5wcDCWLVsGQRBw7tw57bYavXr1gq2tLSIjIxmQ2hiJRILHH3CBQq6H/afT8P2xJKgrq/DggJ73BG0iIiIxNTogFRUVITQ0VCcvrlQqMXTo0FrbDh06hLS0NLz55pv48ccfYWdnV2u/jY0NSktLkZ+fj8zMTJibm0OhUNzzmIyMjGbVJpM1b6BXzUAxXQ4Y6ygee8AFhgoZdv52DXtOpKCiSoNHQp204bi52HvxsPfiYe/Fw96LpyV73+iA1K9fP5w/fx79+/fXeTHnz5/H/PnzERYWhtDQUJSVld0znUDNz2q1GqWlpfXO6K1QKFBeXt7kOqRSCczNjZv8/LsplYY6OU5H8/SDXuhiZohNe69g/6k0nLqcATtLY7z/8iCdnU1i78XD3ouHvRcPey+eluh9owPS9OnT8dprr6GyshI+Pj4wNLy3qMDAwEYXcuTIEcydOxf+/v5YuXIlgOqgo1araz2u5mdDQ0MYGBjcsx+ovrOtvroaSqMRoFI1b0V6PT0plEpDqFSlqKribZ/1GeJth0p1Jbb8HIf8O+XIv1OO9NuFMDaUN+u47L142HvxsPfiYe/Fc3fvjY0VOj2T1OiAVLOUyGeffQYAtf7aFwQBEokEsbGxjTrmtm3bsGzZMowePRrvv/++9qyQvb09srKyaj02KysLRkZGMDU1hZ2dHQoKCqBWq2udScrKyoKtbfPm2tHVXBZVVRrOi/EPhvh0hUYj4JtD8QCA1eEX8NIkbyiN7j0z2FjsvXjYe/Gw9+Jh78XTEsG00QHpm2++0WkBO3bswNKlSzFlyhQsWLCgVuAKCAjA2bNnaz3+zJkz8Pf3h1QqRb9+/aDRaHDu3Dntbf8pKSnIzMxs0lksEkeIp502ICWmF2Lplki8PLEvethx2RoiIhJHowNSUFCQzl48JSUFy5cvx8iRIzFz5kzk5ORo9xkYGGDKlCmYMGECVq5ciQkTJuD333/HwYMHsWnTJgCAra0txo0bh4ULF2L58uUwNDTEO++8g6CgIPj6+uqsTmpZ+nIpnB3MoK6oQll5JbIKyrB82zlMHeOOEE+7+x+AiIhIxxq01Minn36KRx55BLa2tvj000//+YASCV566aUGvfiGDRuwZs2aevdNmDABK1aswPHjx/Hhhx8iNTUVDg4OeOWVVzB27Fjt40pKSrB8+XIcOnQIADBkyBAsXLiw3sV0G4pLjbS+mo9haXklNu6LwaVruQCAUUHd8e9QJ+hJG35dmb0XD3svHvZePOy9eFpyqZEGBSR3d3d8//336Nu3732XGWnKGKS2hgFJXBqNgD0nk/G/U2kAAI+e5nj+YS+YNHDwNnsvHvZePOy9eNh78bRkQGrQJba4uLh6vydqCVKpBBOHOMHRxhSb98ciJjUfS7ZE4pVJfdHdxkTs8oiIqBPQ+cxKRUVFuj4kdVIB7jZYMKUfrMwMkFNYhmVboxAVl3X/JxIRETVTowdpq9VqfP311zh79izUarV27IggCCgpKUFSUhIuXryo80Kpc3KwMcHbUwPx+d4ruJqaj3V7rmBcSA9MGNwbUimXJyEiopbR6DNIH3zwAVatWoXMzExcu3YN6enpKC0txaVLlxAbG4uZM2e2RJ3UiZkYyvHqoz4YHVS9sO3+02lYu+sSSsoqRK6MiIg6qkYHpMOHD2PatGn46aefMHnyZHh5eeGHH37A4cOH0a1bN2g0HKBGuqcnleLR4c6Y8aAH5DIpLl3LxdKvo3Arp3mD6YmIiOrT6ICUl5eHIUOGAABcXV1x+fJlANVzEs2YMQMHDhzQbYVEdwn2tMObk/vBUqlAZn4p3v0mCtEJ2WKXRUREHUyjA5Kpqal2/bMePXrg9u3b2oHZPXv2xO3bt3VbIVEdPexM8dbUQLg7dkGZugqf7L6MvSdToLn/jBVEREQN0uiAFBAQgK1bt6K0tBQ9evSAoaEhjhw5AgCIjo6GiQlvw6aWpzTSx5zHfDGinwMAYO/JFHy2+zJKyytFroyIiDqCRgekl156CRcuXMCMGTMgk8nwxBNP4K233sLEiRPx8ccfY9SoUS1RJ9E9ZHpSPDHSFc+M7QOZnhTRiTl495so3M7luCQiImqeRt/m7+7ujp9//hkJCQkAgP/+978wMTHB+fPnMXz4cN7FRq1uUF97dLUyxmc/Xsbt3BIs/jISr00JgJMdz2YSEVHTNGipkbtFRkbCw8MDxsbG9+xTqVQ4ceIExo0bp7MCxcClRtqnwqJyfLbnCpJuFkIiAf4d6oTRQY6QSDhfUmvh51487L142HvxtORSI40+0lNPPYVr167Vuy8mJgbz589vdlFETWFmosC8x/0w3L8bBAH44dg1rN9zBWVqjksiIqLGadAlttdff117d5ogCFi0aFG9g7FTU1NhZWWl2wqJGkGmJ8XUsX3Qp7cVNuy+hKj4bGTkleClid6w6WLIs0lERNQgDTqDNGrUKAiCgLuvxtX8XPMllUrh6+uL9957r8WKJWqo0SE98eaUfjAz1sfN7GIs2HgGb22OQCOvKBMRUSfV6DFIDz/8MFavXg0nJ6eWqkl0HIPUvt3d++z8UqzdeQlpmXcAAA/064ZHh7lALtP5Os0Efu7FxN6Lh70XT5sag5Sbm4v4+HidFUDUksxNFZg/2Q9mxvoAgF/PpWPZN1yihIiI/lmjA1JFRQXMzc1bohaiFqEvl2H1ywPx8kQvmBjKcT2rCEu2ROJYdDovuRERUb2adBfbRx99hOjoaJSWlrZETUQ6J5FI4O9qgyXPBsGzpznUlRpsPRSPT3dfxp0StdjlERFRG9PoiSL37t2LW7du4Yknnqh3v0QiQUxMTLMLI2oJXUwUmP2YL45E3sDO368hOjEHybfOYvp4D3j2shC7PCIiaiMaHZAeeuihlqiDqNVIJRKEBTnCvYc5Pv/pKm7nlmDVdxcQFtgdk4Y6cQA3ERE1/i62zoB3sbVvjel9eUUVvj+WhGPn0wEAjjYmmPGQJ7pa3TtTPN0fP/fiYe/Fw96Lp03dxVbj999/x3vvvYc5c+bgxo0bOHz4MNLT03VWGFFrUMj1MCXMDbMm9dUO4F68JRLHzt/kAG4iok6s0QGptLQUzzzzDGbOnIldu3bh559/hkqlwrfffouJEyciMTGxJeokalG+LlbVA7h7WaCiUoOthxPwya7LUHEANxFRp9TogLR69WpcvXoVW7ZswZkzZ7R/Zb///vuwtbXFxx9/rPMiiVpDFxMFZj/qg/884AKZngQXknLwzuazuJKSK3ZpRETUyhodkH7++WfMmTMHwcHBtda1srGxwQsvvIBz587ptECi1iSVSBAW2B0LnwpAVytjFBarsfq7iwj/NREVHFtARNRpNDogqVQqdOvWrd59ZmZmKCkpaXZRRGJztDXF208HYJh/9Wf9cOQNLP06CumcgZuIqFNodEBycXHBvn376t139OhRuLi4NLsoorZAv2YA97+rB3DfzK6egfsoB3ATEXV4jZ4H6YUXXsDLL7+MgoICDBs2DBKJBJGRkdi9ezfCw8OxatWqlqiTSDS+zlZY+mwQNu+PxZWUPGw7nIAryXmYOtYdSiN9scsjIqIW0KR5kPbt24dVq1YhIyNDu83S0hKvvvoqHnnkEZ0WKAbOg9S+tVTvNYKAI1E3sfO3JFRWCVAa62P6uD7w6m2pPaN097i8zoife/Gw9+Jh78XTkvMgNWuiyOTkZBQUFECpVKJ3796QSjvGDMQMSO1bS/f+RlYRPv/pKm79OR5pRD8HpNxWQSKVYP6T/p06JPFzLx72XjzsvXja3ESRBw4cwNtvv43evXvD398fKpUKjz76KI4ePaqzwojaqu42Jnj76QAM/3MA95FzN3HtlgpJNwuhruD/HImIOoJGB6Q9e/Zgzpw5KCgo0G7r0qULrK2t8fLLL+PIkSO6rI+oTdKX62GydgD3X0P5DkVeh0bDAdxERO1dowPS5s2bMW3aNKxdu1a7rXfv3li/fj2efvpprFu3rsnFfP7555gyZUqtbQsXLoSbm1utr+HDh2v3azQarF27FoMHD4avry+ee+453Lhxo8k1EDWGr7MVljwTBCOD6pC050QK3tt+Dhl5nO6CiKg9a3RAun79OoYOHVrvviFDhiA5OblJhWzfvh0fffTRPdvj4+Px/PPP4+TJk9qvnTt3avevW7cOO3bswNKlSxEeHg6NRoPp06dDreYSEdQ6upgaYO2sQZg6xg0G+nq4lq7Coi/P4kjUDWg4HQARUbvU6IBkbW2NS5cu1bsvLi4O5ubmjTpeZmYmnn/+eaxcuRI9e/astU8QBCQlJcHLywvW1tbaLwsLCwCAWq3Gl19+iVmzZiE0NBTu7u5Ys2YNMjIycPjw4ca+NaImk0qlGOLTDUuf7Q+PnuZQV2qw40giVn4bjZyCUrHLIyKiRmp0QBo/fjzWr1+Pbdu2ITMzExUVFcjMzER4eDg++eQTPPTQQ4063tWrVyGXy/HTTz/Bx8en1r7r16+jpKQEvXv3rve5cXFxKC4uRkhIiHabUqmEh4cHIiMjG/vWiJrN0swAcx7zxeQwV+jLpYi7XoC3vjyL4xdvcXJJIqJ2pNETRb700ktITk7Gu+++i2XLlmm3C4KA0aNH45VXXmnU8YYPH15rTNHdEhISAABbt27F8ePHq/9KHzIEs2fPhqmpqXYeJnt7+1rPs7GxqTVHE1FrkkokGO7vAM9eFvhyfywSbxZiy89xOBefjalj3GFuqhC7RCIiuo9GByS5XI61a9ciISEB586dQ2FhIUxNTdGvXz+4u7vrtLiEhARIpVLY2Nhgw4YNuH79Oj744AMkJibi66+/Rmlp9aULff3asxkrFAoUFhY267VlsubNpVAzF4Mu52Sghmkrve9mbYIFTwXg0Nnr2HnsGi4n5+KtzRF4apQbQrzsOuR8SW2l950Rey8e9l48Ldn7RgekGq6urnB1ddVlLfd44YUX8MQTT2jHNbm6usLa2hqPPvooLl++DAMDAwDVY5FqvgeA8vJyGBoaNvl1pVIJzM2Nm1f8n5TKptdBzdNWev/EGA8M8nPAmvBoJN0owIa9V3ExOQ8vTvJBlw56Nqmt9L4zYu/Fw96LpyV63+iAJAgCfvjhBxw7dgylpaXQaGpPjCeRSPD111/rpDipVHrPoO+axXAzMjK0l9aysrLg6OiofUxWVhbc3Nya/LoajQCVqnm3aevpSaFUGkKlKkVVFScPbE1tsfemCj28Odkf/zuVir0nUnD68m1cuZaDqWP7INDdRuzydKYt9r6zYO/Fw96L5+7eGxsrdHomqdEBadWqVdi0aRMcHBxgZ3fvZQJdDkSdN28esrKysGXLFu22y5cvAwCcnZ3RvXt3mJiYICIiQhuQVCoVYmJiMHny5Ga9tq6mi6+q0nDqeZG0xd6PD+kJ716W2Lw/Bjezi/HJzksI9rTFkyNdYWwgF7s8nWmLve8s2HvxsPfiaYlg2uiAtGfPHkybNg2vv/66zoupa9SoUXjxxRfx6aef4qGHHkJKSgqWLFmC8ePHw8nJCQAwefJkrFy5EhYWFujWrRs+/PBD2NnZISwsrMXrI2qKHnameOvpQPz0RwoOnEnDmauZiEvLx9QxfdDXyVLs8oiICE0ISEVFRQgNDW2BUu71wAMP4KOPPsLGjRvxxRdfwNTUFA8++CBeffVV7WNmzZqFyspKLFy4EGVlZQgMDMTmzZshl3ecv8ap45HLpJg01Am+zlbYtD8WmXkl+OiHixji0xWPDXeGoaLJwwOJiEgHJEIjr4k9++yzCAgIwAsvvNBSNYmuqkqDvLziZh2DqzuLp731vryiCrt/T8YvUdVL5FiZGeCZsX3g3qNxk662Be2t9x0Jey8e9l48d/deqTQUdwzS9OnT8dprr6GyshI+Pj713i0WGBiok+KIOgOFXA+Pj3CBn4sVvjwQi5zCMnzwbTRG9HPApFAn6P855URHnBaAiKitavQZpLpzHd39P21BECCRSBAbG6ub6kTCM0jtW3vufWl5JX44loTfLtwCANh0MYC+XA8GChnmP+nf5kNSe+59e8fei4e9F0+bOoP0zTff6OzFiag2Q4UMT412h5+rNbb8HIesgjLtvqLSCpga6f/Ds4mISFcaHZCCgoJaog4iuot3b0sseTYIWw/F42xsFgBgyZZITA5zg4+zlcjVERF1fE26zf9+/vWvfzWhFCK6m7GBHNPG9NEGpFxVOT7eeQl+LlZ4fIQLrMw4ay8RUUtpdEB644036t0ukUigp6cHPT09BiQiHdGXS+HsYAZBI8DZwQxHom4iOjEHV1Py8ODAnhgV5AgZ138iItK5RgekX3/99Z5tJSUliIqKwhdffIHPPvtMJ4URUfUfHvOf9Nd+P8jbHlsPJyDhRgF2/Z6MPy5nYHKYKzx6WohcKRFRx9LogNStW7d6t7u4uKCiogJLly7Fjh07ml0YEVW7+861btYmeP0JP5y5monvjiUhI68EK8MvIKiPDR4b7gLzDrr4LRFRa9PpuXk3NzdcvXpVl4ckojokEglCvOyw/Ln+eKCfAyQS4GxsFhZ8cQaHz15HlYa3GRMRNZfOApJarcbOnTthacm1pIhag5GBHE+OdMXbTweid1clytRVCD+ahMVfRSLhRoHY5RERtWuNvsQ2fPjweyar02g0yM/PR3l5eassYktEf+lhZ4o3p/TDyUu38cOxJNzMLsaK7ecx0NsOj4Q6Q2nMuZOIiBqrSfMg1Tebr4mJCYYNG4YBAwbopDAiajipRIIhPl3h52KFXb9fw/GLt/HH5QxEJ+Rg0tDeGOrbDVJp256Fm4ioLWn0UiOdAZcaad/Ye+BaeiG2Ho7H9cwiAEBPO1NMGeWGXvbKFn1d9l487L142HvxtORSI5xAhagDcupmhrefDsSTI11hqNBDasYdvPt1FL45FI+i0gqxyyMiavMYkIg6KKlUggf6OWD5c8EI8bSFAOC36HS8ufEMTly6Bc2fJ48FQQBPJBMR1dboMUhE1L6YmSjw3IOeGOLTFVsPJ+BWTjG+OhCHE5duY/JIV2w7nABIgPlP+tc7vpCIqDNiQCLqJNwczbFoWiCORN3E3pMpSLpZiMVfRaLm3JG6QgOFvp6oNRIRtRW8xEbUicj0pBjd3xHLnuuPADdr3H1h7Wj0TVRwgCkREYAGBqTVq1cjMzOz1raCggJo6szYm5CQgAkTJuiuOiJqERZKA7w4wRuvTPTSbvvh2DW8ufE0Tly8xdm4iajTa1BA+uKLL2oFpKqqKoSEhCA2NrbW40pLSxEXF6fbComoxXj0/Gvm+y4m+shVleOrn+OwcNNZnI3N1A7kJiLqbBo0Bqm+O1x41wtR+6cvl8LZwQwA8N9HffDbhVvYfzoNmXkl2LD3KrqfTsPEIb3R18mSA7iJqFPhIG2iTkwikWD+k/7a70cFOWKIT1f8EnkDhyKv40ZWET7eeQlO3ZSYNMQJ7j3MRa6YiKh1cJA2UScnkUhqnR0yVMjw0KBeeP/5ARjT3xH6MimupavwwbfRWBUejZTbKhGrJSJqHTyDRET1MjGU45FhzhgZ2B3/O5WK3y/cwtXUfFxNjYKfixUmDOkNB2sTscskImoRDEhE9I+6mCgwOcwNo4McsfePFJy6koHoxBxcSMxBsKctHh7UCzbmRmKXSUSkUw0OSDt37sTx48cBVA/Qlkgk+O6772BjY6N9TN2pAIio47DqYohnx3lgTP8e2HMiGVHx2Th9NRNnY7MwuK89HhzYC9bmhmKXSUSkExKhAbejubu7N/yAEsk9t/+3N1VVGuTlFTfrGFzdWTzsfetIy7iD3ceTcTk5FwAgl0kxIsABT47xgKaikr1vZfzci4e9F8/dvVcqDaGnp7uh1Q0KSJ0NA1L7xt63roQbBdj1+zUk3iwEABgq9DAqyBEj+nWHkYFMOyUIpwloWfzci4e9F09LBiSOQSKiZnHt3gVvPOmPKyl5+PF4MlIz7mDPiRT8EnkDY/o74nxiDqRSCRfDJaJ2pUEB6datW406aNeuXZtUDBG1TxKJBN69LeHrYoXYmyp8sz8Gt3KKsfP3ZO1jCovV6GKiELFKIqKGa1BAGj58eKP+8mvvY5CIqGkkEgkG9u0K925KnLh4C3tOJCNXVQ4AeHPjaYT6OmBEgAMslAYiV0pE9M8aFJCWL1/OU+NE1GBSqQQDve3h62yFVz4+AQAoU2tw8Ox1HI68gcA+NhgV1B097ZQiV0pEVL8GBaSJEye2dB1E1AEZGciq13oTgLHBjjgceQNx1wsQEZOJiJhMuHXvgrCg7vBxtoKUf4QRURvSqEHaly5dQnp6OhwdHeHp6anzYj7//HOcPHkSW7du1W6LjY3FsmXLcOXKFVhYWGDq1Kl46qmntPs1Gg0+/fRT/PDDD7hz5w4CAwPx9ttvo3v37jqvj4gap+5ab74u1kjLuIPDkddxNjYL8TcKEH+jALYWRggL7I4BXnZQyPVErpqIqIFrsalUKjz++ON47LHHMHv2bPz73//GE088gdu3b+uskO3bt+Ojjz6qtS0/Px/Tpk2Do6Mjdu3ahZdeegkrV67Erl27tI9Zt24dduzYgaVLlyI8PBwajQbTp0+HWq3WWW1E1HR113rrYWeK5x70xPvPh2BMsCOMFDJk5pVg66F4vLbuFHYfT0ZhUbmIFRMRNfAM0kcffYSYmBi88sor8PLyQnJyMjZs2IC3334bX3zxRbMKyMzMxDvvvIOIiAj07Nmz1r7vv/8ecrkcS5YsgUwmg5OTE9LS0rBx40ZMmjQJarUaX375JebOnYvQ0FAAwJo1azB48GAcPnwY48ePb1ZtRNRyLJQGeCTUGQ8O6IkTl27jl8gbyCksw/9OpeJgRBqCPewQFtSd670RkSgaFJCOHTuGOXPm4OmnnwYADBkyBLa2tpg7dy5KSkpgZNT0dZiuXr0KuVyOn376CZ999hnS09O1+6KiohAUFASZ7K8yg4OD8fnnnyMnJwe3bt1CcXExQkJCtPuVSiU8PDwQGRnJgETUDhjoyzAyoDse8HfA+YRsHIq8jmvpKpy8fBsnL9+GVy8LhAV1h2dPC94sQkStpkEBKTs7+54xR/3790dVVRVu374NJyenJhcwfPhwDB8+vN59GRkZcHV1rbWtZu2327dvIyMjAwBgb29/z2Nq9jWVTNa82ThrZvPU5aye1DDsvXia2/tgLzsEe9kh8WYBDkZcR1RcFq6k5OFKSh6625hgdH9HBHvaQf7nf5+cpfsv/NyLh70XT0v2vkEBqbKyEvr6+rW2mZmZAQDKy1turEBZWdk9r6tQKLSvW1paCgD1PqawsLDJryuVSmBubtzk599NqeTinWJh78XT3N4HmRsjyLsbMnKL8dOJZPwSkYYbWUX4Yl8Mdv52DeMG9cLo4J5Y9tVZAMD7Lw9iSPoTP/fiYe/F0xK9b/ZSIy25lJuBgcE9g61rApmRkREMDKonm1Or1drvax5jaNj0Zmk0AlSqkiY/H6hOs0qlIVSqUlRVcW2e1sTei0fXvVdIgUeG9sbY/t3x2/l0HI68gfw75dj2cxy+OxyPiqrq//9kZt2BQr9z3/3Gz7142Hvx3N17Y2NF21qLrSX/arOzs0NWVlatbTU/29raorKyUrvN0dGx1mPc3Nya9dq6WnCwqkrDxQtFwt6LR9e9V8iqF8B9oJ8DIuOycOjsdVzPLNLuX/P9BTzg74C+zpbQk3buyxz83IuHvRdPSwTTBgekRYsWwcTkr7tJas4cvfXWWzA2/utylEQiwddff62T4gIDAxEeHo6qqiro6VX/dXjmzBn06tULlpaWMDU1hYmJCSIiIrQBSaVSISYmBpMnT9ZJDUTUdsj0pAjxtEOwhy0uJefi4x8uAQBiUvMRk5oPc1MFhvp0xWCfrjA35bpvRNR0DfpTKzAwEMbGxhAEQftVs93IyKjWdo1Gdylu0qRJKCoqwoIFC5CUlITdu3djy5YtmDlzJoDqsUeTJ0/GypUr8euvvyIuLg6zZ8+GnZ0dwsLCdFYHEbUtEokE7t3NtT+PDHCAiaEc+XfKsedkCl5bdwqf7r6MKym50LTgMAAi6rgadAbp7pmtW5OlpSU2bdqEZcuWYcKECbC2tsa8efMwYcIE7WNmzZqFyspKLFy4EGVlZQgMDMTmzZshl8tFqZmIWoe+XFq9jAmA/zzggn+HOuNcfBZ+i05Hws1CnE/IxvmEbFh3MUCobzcM7GsPpZH+fY5KRFRNIuholLVarcaBAwcQHh6O8PBwXRxSNFVVGuTlFTfrGDKZFObmxsjPL+Y16VbG3ountXv/d7f5p2cX4bcLt3DqSgZKy6vHKsr0JAhws0GoXze4OJh1uLve+LkXD3svnrt7r1Qatq1B2snJyQgPD8fevXtRWFhYazwSEVFL+ruQ083aBE+OdMW/hzrhbGwmfruQjpTbd3AmJhNnYjLR1coYob5dMcDLDkYGPNtMRPdqUkCqrKzEoUOHEB4ejqioKEgkEgQHB+Phhx/m2B8iajMU+noY/Oeg7dQMFX6LTseZmEzcyinGjiOJ2PnbNQR52GKYXzf0sleKXS4RtSGNCkg3btzAd999hx9//BF5eXno2rUrAGD9+vUYOnRoixRIRKQLPe2UmDpGiUeHueD01Qz8diEd6dnFOHnpNk5euo0edqYY5tcNQX1sYKBf/b9GztRN1Hk1KCD98ssvCA8Px6lTp2BkZIQxY8Zg4sSJcHZ2RlBQULPWYiMiak1GBjI80M8Bw/27ISm9EL9FpyMyLgtpGXew5ec4fHc0ESGedhjq0xVbDycAEmD+k/4MSUSdTIMC0iuvvAI3NzesWrUKDzzwgHa5jzt37rRocURELUUikcDFoQtcHLrgPw+44I/L1WeVsvJLcfR8Oo6e/2vhbFWJGmbGnFeJqDNpUEDy9fXFhQsXsHr1akRHR2PChAnw8PBo6dqIiFqFqZE+Rvd3RFhQd8Sm5eO36HScj89GzS2+89adgp+rNfp72MK7tyVkXJSUqMNrUEAKDw9HSkoKdu3ahb1792Lbtm1wcXHB6NGjedqZiDoMqUQCz54W8OxpgYy8Ery58QwAoKJKwNnYLJyNzYKxgQz93GwQ7GEL1+5dIJXy/4FEHVGj50HSaDT4/fffsXv3bhw7dgyVlZXw9/fHxIkTERYWBqWy/d8JwnmQ2jf2XjwdqfeCIOC97ecBAfjPA844G5uFiNhMFBb9tYB2FxN9BPWxRbCnLXrYmor6B2NH6n17w96LpyXnQWrWRJH5+fnYu3cvdu/ejYSEBMjlcgwaNAjr16/XWYFiYEBq39h78XS03te9i02jERB/PR8RsZmIistGyZ+TUAKArYUR+vexQbCnHewsWv/GlY7W+/aEvRdPmw1Id7t8+TJ27dqFAwcO4OzZs7o4pGgYkNo39l48nan3FZUaXEnOxZmYTFxMyoH6rvfbw84UwR62COpj22qL5nam3rc17L142kVAqqFWq6Gv377XO2JAat/Ye/F01t6XllfiQmIOzsRk4mpKnnaBXAkAN8cu6O9hi35uNjAxbLlZuztr79sC9l48oi81Mn/+/AYfUCKRYPny5U0uiIiovTFUyBDiZYcQLzuoStSIistCREwmEm8WIu56AeKuF2Db4QR497ZEfw9b+DpbQaGvx4koidqwBgWkH3/8ERKJBLa2tpBK/zmd8T90IurMlEb6GO7vgOH+DsgpLMXZ2CycuZqJm9lFuJCUgwtJOVDI9eDrYonrmUUwMpDhzcn9+P9OojamQQFpzJgx+O2336BWqzF69GiMGzcO/fr1a+naiIjaNSszQ4wN7oGxwT2Qnl2EiNhMnLmaiZzCMkTEZGkf99WBWAzwsue0AURtSIPHIJWWluLYsWM4cOAAjh8/DisrK4wdOxbjxo1Dnz59WrrOVsUxSO0bey8e9v7+BEFA8i0VTl2+jWMXbtXa18VEH4HutujvYYte9o2bNoC9Fw97L542N0i7qKgIv/zyCw4cOIDTp0/DwcEB48ePx7hx49CrVy+dFScWBqT2jb0XD3vfcIIg4L1t51BSXoVe9qY4n5CD0rumDbDuYoCgPtVhycHa5L7HY+/Fw96Lp80FpLsVFBTgl19+wc8//4yzZ8/C1dUVu3fv1lV9omBAat/Ye/Gw941z9yDtikoNrqTkIiImExeScqCu+Kt/3ayNq8NSHxvYmNc/xxJ7Lx72Xjyi38X2T8rLy1FaWoqysjJUVVUhPT39/k8iIqJal9DkMin8XKzh52KNcnUVLiTlICImE5eTc5GeXYwfs5Px4/Fk9LJXon8fGwS24hxLRJ1RkwJSZmYmDh48iIMHD+LixYswMjLCiBEjMHPmTAwcOFDXNRIRdSoKfT3096i+vFZcVoHz8dmIiM1EbFo+Um6rkHJbhe+OJsHNsQuC+tgiwN0GXRiWiHSqwZfY7g5FFy5cgKGhIYYNG4axY8di8ODB7X5yyLvxElv7xt6Lh71vWYXFf86xFJuJpJuF2u16Ugk8e1nggaAecHdQQq7Dywx0f/zci0f0S2yPP/44Ll68CIVCgaFDh+Ljjz/G0KFDoVDwLxYiotZiZqyPB/o54IF+1XMsRf65gO71zCJcupaLS9dyIZdJ0dfJEv372MK7twX05XqcY4moCRp0Bsnd3R16enrw8PCAoaHhPx9QIsHXX3+tswLFwDNI7Rt7Lx72Xhy3c4sRFZ+Ns7FZSM8u0m6XSAATQzmeGuUG796W0JfriVhlx8XPvXhEP4MUGBio/f5+eUrHS7sREdF92FsaY8IQU0x7yAsX4jJw+nIGImIykHdHjTslFfjsxytQ6OvBx8kSAW428HayhIJhiegf6Xyx2o6AZ5DaN/ZePOy9eOr2vkqjweKvIlFUWgGJBMi/o9Y+Vl8uRd/elghwt0FfJ0sY6Df7huZOjZ978Yh+BomIiNoXPakUi58J0v6ccvsOouKzEBWXhZzCMkTFZyMqPhtymRRevSwQ4G4DX2crGCr4a4EIYEAiIuqw7h6c3burEr27KvFIqBPSMu8gKi4bUfFZyMovRXRiDqITcyDTk8CrlyX6uVnDz8UKRgZyEasnEhcDEhFRJyKRSNDTTomedkpMGtobN7KKqs8mxWUhI68EF5JycCEpB3pSCTx6WiDAzRp+rtYwMWRYos6FAYmIqJOSSCRwtDWFo60pJgzuhVs5xdqwlJ5TjMvJubicnIuvD8ajT48uCHC3gZ+rNZRG+rWWSSHqiBiQiIgIEokE3axN0M3aBA8Pqg5L5+KzEBWfjRtZRbiamo+rqfn45lA83Lp3Qa6qDCaGcix8KoAhiTokBiQiIrpHVytjdLXqhQcH9kJmXkn1AO/4bKRl3EHc9QIAQHZBGd7ffh4hXnbo52bDy3DUoTAgERHRP7K1MMK4kJ4YF9IT2QWliIjJxO7jyQCAhJuFSLhZiG2HE+DZywL9PWzh52LFqQOo3eMnmIiIGsy6iyHGhfTApeRcVFZq4O9qhci46stwNcud6Muk6Otshf59bNHXyQJyGSelpPaHAYmIiBpFIpFg/pP+2u/HD+iF9JxinI3JRERsJrLySxEVVz3nkqFCD/6u1ujfxxZ9eppDT8qFdKl9aBcBKTMzE0OGDLln+3vvvYeJEyciNjYWy5Ytw5UrV2BhYYGpU6fiqaeeEqFSIqLOoe7A7G5WxpgwpDf+NbgX0jLvICImE2djs5B/pxx/XM7AH5czYGokR4C7Dfr3sYWzgxmkHNxNbVi7CEhxcXFQKBQ4cuRIrf8oTU1NkZ+fj2nTpmH48OFYvHgxLly4gMWLF8PY2BiTJk0SsWoios7n7nmWHhnmjMQbBTgbm4XIuCzcKanAsfPpOHY+HRZKBYLcbdHfwxaOtia8E47anHYRkBISEtCzZ0/Y2Njcs+/rr7+GXC7HkiVLIJPJ4OTkhLS0NGzcuJEBiYhIRFKJBG6O5nBzNMfjI1wQm5aPszGZOJ+YjTxVOQ6evY6DZ6/D1sII/fvYoL+HLewtjQGA8yyR6NpFQIqPj4eTk1O9+6KiohAUFASZ7K+3EhwcjM8//xw5OTmwsrJqrTKJiOhvyPSk8O5tCe/elniqsgqXruUiIjYLF5NykJlXgp/+SMVPf6Siu40JgvrYaNeJm/+kP0MSiaJdBKSEhASYm5vjySefREpKCnr06IEXXngBQ4YMQUZGBlxdXWs9vuZM0+3bt5sckGSy5g0krFlRWJcrC1PDsPfiYe/F0556L5NJ0d/TDv097VBaXonzCdk4czUTV5JzcSOrCDeyirSP/SXqBgZ628PMRCFixf+sPfW+o2nJ3rf5gFRZWYnk5GQ4OzvjjTfegImJCfbv348ZM2bgq6++QllZGfT19Ws9R6Go/g+pvLy8Sa8plUpgbm7c7NoBQKk01MlxqPHYe/Gw9+Jpb703B9DVzgzjhzhDVazGqUu38Pv5m7iSnAsACP81Cd8fTUJfZ2sM8euGkL5d2+yElO2t9x1JS/S+zQckmUyGiIgI6OnpwcDAAADg5eWFxMREbN68GQYGBlCr1bWeUxOMjIyMmvSaGo0AlaqkWXXr6UmhVBpCpSpFVZWmWceixmHvxcPei6ej9L6/uzWC3Kyw6MtIFJWqYWIoR8rtO7iQmI0LidlYt+si+jpZIdjTFn6u1lDIxZ9jqaP0vj26u/fGxgqdnklq8wEJAIyN7z2b4+LigpMnT8LOzg5ZWVm19tX8bGtr2+TXrKzUzYe8qkqjs2NR47D34mHvxdNRer/wqX4AqgdpZ+WXICI2C2djMpGeU4zzCdk4n5ANhVwPfi5WCPKwhVcvC8hEvsTVUXrfHrVEMG3zASkxMRGPPfYY1q9fj/79+2u3X7lyBc7OzujTpw/Cw8NRVVUFPb3qvyTOnDmDXr16wdLSUqyyiYioGe4emG1jboQHB/TEgwN64mZWESJiMxERk4mcwjKcicnEmZhMGBvI0M+t+k44t+5dIJVyYDc1T5sPSE5OTujduzeWLFmCxYsXw9zcHN9//z0uXLiAXbt2wdLSEps2bcKCBQswffp0XLp0CVu2bMHixYvFLp2IiHTMwcYEDjYmmDikN5JvqxARk4nI2CwUFqtx/OItHL94C2Ym+to5lnrZm/IuOGoSiVAz2UQblpOTg1WrVuHEiRNQqVTw8PDA3LlzERAQAAC4dOkSli1bhpiYGFhbW+OZZ57B5MmTm/x6VVUa5OUVN6tmmUwKc3Nj5OcX85RrK2PvxcPei6cz916jERB/PR8RsZk4F5+N4rJK7T7rLgYI6lMdlhysTbTbdTnPUmfuvdju7r1SaajTMUjtIiC1Ngak9o29Fw97Lx72vlpllQZXkvMQEZuJ6MRsqCv+6kU3a2P072OLwD422Py/WEACncyzxN6LpyUDUpu/xEZERNRQMj0pfF2s4OtihXJ1FS5ey0FETCYuJ+ciPbsYu7OTsft4svbx2QWlsDFv2h3P1LExIBERUYek0NdDUB9bBPWxRXFZBc7HZyMiNhMxqfnax7zx+Rl49jRHfw87+Ltaw8iAvxapGj8JRETU4RkbyDHYpysG+3RFwZ0yvLftPO6UVqBMXYWrqfm4mpqPbw7Fw8fJEv09bOHjbAm5TPw5lkg8DEhERNSpdDE1wIrnQwAA2YVlOPvnVAG3copxLiEb5xKyYajQg7+rNYI97ODeowv0pFxGpLNhQCIiok6nZmC2TRdDjB/QE+NCeuBmdjHOxGQgIiYTeapy/HE5A39czoDSWB9B7jbo72mL3vZKThvQSTAgERFRpyeRSNDdxgTdbZwxaagTkm4WVs+xFJcFVbEaR87dxJFzN2HdxQD9PewQ7GGLrla6WbOT2iYGJCIiortIJRK4du8C1+5d8PgIF8Sk5uFMTCaiE3KQXVCG/51Kxf9OpcLRxgT9PW0xwMv+ngXOdTnPEomDAYmIiOhvyPSk6Otkhb5O1dMGXEj6a9qA61lFuJ5VhB+OXYNnb0sEulnD39UaxgYyvLftvM7mWSJxMCARERE1gEJfD/09qmflLiqtQFR8FiKuZiL+RgGuJufianIuth6KR58e5khKLwQAqCs0UOjzbrj2iAGJiIiokUwM5Qj17YZQ324oLFbjUko+jkZdR1rGHVxJydM+7uuDsRjctyvcephDyjNJ7QoDEhERUTNYmhlg4jBnDPO1x/WMO/jj8m38HHEdAHAmJgtnYrJgoVQgxNMOA7zsYG/Jwd3tAQMSERGRjnS1Msa/Q52QeLMQZepK9O6qRGRcNvJU5dh/Og37T6ehl70pBnjZI6iPDUyN9MUumf4GF6utBxerbd/Ye/Gw9+Jh78VTX+/vvoutorIKF5JycerybVxOzoPmz316Ugn6OlligJcd+jpZQS7jZJSNxcVqiYiI2pG771yTy/QQ6G6DQHcbqIrViIjJxKkrGUjLvIPoxBxEJ+bA2ECGoD62GOBlh95dORllW8CARERE1EqUxvoYGdgdIwO742Z2EU5fycDpqxkoKFLjWHQ6jkWnw9bcEAO87BDiaQerLob3HINzLLUOXmKrBy+xtW/svXjYe/Gw9+Jpbu81GgGxafk4deU2ziVkQ13x1zHcunfBAC87BLjbwFAhgyAInGPpLrzERkRE1EFJpRJ49rKAZy8LTC6vxPmEbJy6koG4tHzE3yhA/I0CbPslAf6u1gh0t+YcS62EAYmIiKiNMFTIMNDbHgO97ZFbWIYzMRk4dSUDt3NLEBGTiYiYTO1j84vKYWdhJGK1HRsDEhERURtkaWaAcSE9MTa4B1Iz7uDU5QyciclAcVklAOCtTREY5t8N44J7wMxEIXK1HQ/vKSQiImrDJBIJetkr8WSYK1bMDNFur9IIOBJ1E69vOI3vjyZBVaIWscqOhwGJiIionZDdNQh51iRv9O6qhLpSg4Nnr+P19aex6/drKCqtELHCjoOX2IiIiNoJfbkUzg5mAAAfZyv4OFvhcnIufjyRgrSMO9h/Og2/nruJsMDuCAvsDiMDucgVt1+8zb8evM2/fWPvxcPei4e9F09r976+eZAEQcCFxBz8eCIFN7OLAABGChlGBXXHiIDuMFR0zPMhvM2fiIiIANQ/QaREIoGfqzV8XKxwPj4be06m4FZOMX48kYLDkTcwJrgHHvB34LQAjcCARERE1EFIJRIEuNvA39UaZ+MysfdkKjLzSrDzt2s4dPY6xgb3QKhfNyjkDEr3w4BERETUwUilEgR72CHQ3QYRMZn46WQqsgpK8d3RJByMuI5xIT0w1Lcr5DIGpb/DgERERNRB6UmlGOBlj6A+tjh9JQM//ZGKXFUZdhxJxM8R1zF+QE8M7mtf6+44rvVWjQGJiIiog5PpSTHYpytCvOxw8tJt7DuVivw75dh6KB4HTqfhwYE9McDLDnpSCdd6+xMDEhERUSch05Mi1K8bBnrb4/jFW/jf6eozSlt+jsP+06kY078H13r7EwMSERFRJyOXSfFAPwcM7muP36LTceBMGrILyvDNoXjtYzr7LECcSZuIiKiT0pfrISzIEe8/PwCPhDrB2OCv8yarv7+onVOpM2JAIiIi6uQU+noYE9wDS6f3125LSi/Eoi8j8d3RRJSWV4pYnTg6REDSaDRYu3YtBg8eDF9fXzz33HO4ceOG2GURERG1K4b6f51B8nG2gkYQcOjsDSz44gwiYjI71WW3DhGQ1q1bhx07dmDp0qUIDw+HRqPB9OnToVZzZWMiIqKmeP4hT7z6iA9szA1RUKTG5z9dxYffRiM9p3lLcbUX7T4gqdVqfPnll5g1axZCQ0Ph7u6ONWvWICMjA4cPHxa7PCIionajZjFcZwcz6Mul6OtkiaXPBmHC4F6Qy6SIu16ARV+exffHklCm7tiX3dp9QIqLi0NxcTFCQkK025RKJTw8PBAZGSliZURERO2LRCLB/Cf9a82BJJfp4cGBvbBsen/4uVihSiPgYMR1LPgiAmdjO+5lt3YfkDIyMgAA9vb2tbbb2Nho9xEREVHDSCSSeieItOpiiFcm9cX//bsvrLsYIP9OOTbsvYpV313A7dyOd9mt3c+DVFpaCgDQ19evtV2hUKCwsLDJx5XJmpcd9f6ctl1Pr91n0HaHvRcPey8e9l48na33/dxt4O1siQOn0rDvVCpiUvPx9uazGBPcAw8P6tWqk0u2ZO/bfUAyMDAAUD0WqeZ7ACgvL4ehoWGTjimVSmBubqyT+pTKptVAzcfei4e9Fw97L57O1vtpD3tjzKDe2LjnMiJjMvG/U6k4E5OJ6Q97YYC3/d8uU9ISa721RO/bfUCqubSWlZUFR0dH7fasrCy4ubk16ZgajQCVqqRZdenpSaFUGkKlKkVVlaZZx6LGYe/Fw96Lh70XT2fuvUIKvDLRG9Fedth6KB45BaVY8XUkvHtbYvIoV9hb1j7ZIAgC3v06CgCw8OmAZoeku3tvbKzQ6Zmkdh+Q3N3dYWJigoiICG1AUqlUiImJweTJk5t83MpK3XzIq6o0OjsWNQ57Lx72XjzsvXg6c++9e1vi3en9ceBMGg6cuY7LyblYsPEMRgU5YvyAnlDIqy+7laurkHizevhLSWmlzi7HtUQwbfcBSV9fH5MnT8bKlSthYWGBbt264cMPP4SdnR3CwsLELo+IiKhT0Jfr4V+DeyPEyw47fknE5eRc7D+dhjNXM/D4CFf4uViJXWKjtPuABACzZs1CZWUlFi5ciLKyMgQGBmLz5s2Qy+Vil0ZERNSp2Job4dVH+uJCYg52HElErqoMn+6+DO/elvh3aG+xy2swidBRJzBohqoqDfLymnfLokwmhbm5MfLzizvtKVexsPfiYe/Fw96Lh73/e+UVVdh/OhUHI66jskqAnhSouRq2fs7QZl9iu7v3SqWhTscgdY57EomIiKjVKeR6mDjECUue7Q/PXhZoT2PYGZCIiIioRdlZGGHOoz6Y8aCH2KU0GAMSERERtTiJRAI/F2uxy2gwBiQiIiKiOhiQiIiIiOroELf5ExERUdunL5fC2cFM+31bxoBERERErUIikWD+k/7a79syBiQiIiJqNW09GNVo2+e3iIiIiETAgERERERUBwMSERERUR0MSERERER1MCARERER1cGARERERFQHAxIRERFRHQxIRERERHUwIBERERHVwYBEREREVAcDEhEREVEdDEhEREREdTAgEREREdUhEQRBELuItkYQBGg0zW+Lnp4UVVUaHVREjcXei4e9Fw97Lx72Xjw1vZdKJZBIJDo7LgMSERERUR28xEZERERUBwMSERERUR0MSERERER1MCARERER1cGARERERFQHAxIRERFRHQxIRERERHUwIBERERHVwYBEREREVAcDEhEREVEdDEhEREREdTAgEREREdXBgERERERUBwNSC9BoNFi7di0GDx4M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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "alpha_impact=[]\n", + "for ma in range(1,100,5):\n", + " mapie.predictor.mapie_alpha=ma/100\n", + " preds = mapie.predict_from_smiles(df[config.data.input_column], uncert=True)\n", + " unc_df = pd.DataFrame(\n", + " data={\n", + " \"pred\": preds[0],\n", + " \"unc\": preds[1],\n", + " \"alpha\": ma,\n", + " }\n", + " )\n", + " alpha_impact.append(unc_df.reset_index())\n", + "alpha_impact=pd.concat(alpha_impact).reset_index(drop=True)\n", + "\n", + "sns.lineplot(data=alpha_impact[alpha_impact['index']<=20],x='alpha',y='unc',err_style=\"bars\", errorbar=(\"se\", 2))\n", + "plt.xlabel('MAPIE Alpha');\n", + "plt.ylabel('MAPIE uncertainty (±MW)');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected larger alpha values produce smaller (less conservative) prediction intervals." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Explainability" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Model explainability is incorporated into QSARtuna using two different approaches, depending on the algorithm chosen:\n", + "1. **SHAP:** \n", + " Any shallow algorithm is compatible with the SHAP package (even traditionally unsupported packages use the `KernelExplainer`)\n", + "2. **ChemProp interpret:**\n", + " This explainability approach is based on the interpret function in the original ChemProp package" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### SHAP" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[SHAP](https://proceedings.neurips.cc/paper_files/paper/2017/hash/8a20a8621978632d76c43dfd28b67767-Abstract.html) (SHapley Additive exPlanations) are available in `QSARtuna` based on the implementation available at https://github.com/slundberg/shap. The method uses a game theoretic approach to explain the output of any machine learning model. It connects optimal credit allocation with local explanations using the classic Shapley values from game theory and their related extensions (see [here](https://shap.readthedocs.io/en/latest/index.html) for more details on the published tool and [here](https://github.com/slundberg/shap#methods-unified-by-shap) for papers using the approach).\n", + "\n", + "In the following example, a `RIDGE` regressor is trained using the a comopsite descriptor based on the `ECFP`, `MACCS` keys and `PhysChem` descriptors:" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:22:54,504] A new study created in memory with name: my_study\n", + "[I 2024-07-02 14:22:54,540] A new study created in memory with name: study_name_0\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_ridge.py:243: UserWarning: Singular matrix in solving dual problem. Using least-squares solution instead.\n", + " warnings.warn(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_ridge.py:243: UserWarning: Singular matrix in solving dual problem. Using least-squares solution instead.\n", + " warnings.warn(\n", + "[I 2024-07-02 14:22:55,559] Trial 0 finished with value: -0.34035600917066766 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.676421027478709, 'descriptor': '{\"parameters\": {\"descriptors\": [{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}, {\"name\": \"MACCS_keys\", \"parameters\": {}}, {\"name\": \"UnscaledJazzyDescriptors\", \"parameters\": {\"jazzy_names\": [\"dga\", \"dgp\", \"dgtot\", \"sa\", \"sdc\", \"sdx\"], \"jazzy_filters\": {\"NumHAcceptors\": 25, \"NumHDonors\": 25, \"MolWt\": 1000}}}, {\"name\": \"UnscaledPhyschemDescriptors\", \"parameters\": {\"rdkit_names\": [\"MaxAbsEStateIndex\", \"MaxEStateIndex\", \"MinAbsEStateIndex\", \"MinEStateIndex\", \"qed\", \"SPS\", \"MolWt\", \"HeavyAtomMolWt\", \"ExactMolWt\", \"NumValenceElectrons\", \"NumRadicalElectrons\", \"MaxPartialCharge\", \"MinPartialCharge\", \"MaxAbsPartialCharge\", \"MinAbsPartialCharge\", \"FpDensityMorgan1\", \"FpDensityMorgan2\", \"FpDensityMorgan3\", \"BCUT2D_MWHI\", \"BCUT2D_MWLOW\", \"BCUT2D_CHGHI\", \"BCUT2D_CHGLO\", \"BCUT2D_LOGPHI\", \"BCUT2D_LOGPLOW\", \"BCUT2D_MRHI\", \"BCUT2D_MRLOW\", \"AvgIpc\", \"BalabanJ\", \"BertzCT\", \"Chi0\", \"Chi0n\", \"Chi0v\", \"Chi1\", \"Chi1n\", \"Chi1v\", \"Chi2n\", \"Chi2v\", \"Chi3n\", \"Chi3v\", \"Chi4n\", \"Chi4v\", \"HallKierAlpha\", \"Ipc\", \"Kappa1\", \"Kappa2\", \"Kappa3\", \"LabuteASA\", \"PEOE_VSA1\", \"PEOE_VSA10\", \"PEOE_VSA11\", \"PEOE_VSA12\", \"PEOE_VSA13\", \"PEOE_VSA14\", \"PEOE_VSA2\", \"PEOE_VSA3\", \"PEOE_VSA4\", \"PEOE_VSA5\", \"PEOE_VSA6\", \"PEOE_VSA7\", \"PEOE_VSA8\", \"PEOE_VSA9\", \"SMR_VSA1\", \"SMR_VSA10\", \"SMR_VSA2\", \"SMR_VSA3\", \"SMR_VSA4\", \"SMR_VSA5\", \"SMR_VSA6\", \"SMR_VSA7\", \"SMR_VSA8\", \"SMR_VSA9\", \"SlogP_VSA1\", \"SlogP_VSA10\", \"SlogP_VSA11\", \"SlogP_VSA12\", \"SlogP_VSA2\", \"SlogP_VSA3\", \"SlogP_VSA4\", \"SlogP_VSA5\", \"SlogP_VSA6\", \"SlogP_VSA7\", \"SlogP_VSA8\", \"SlogP_VSA9\", \"TPSA\", \"EState_VSA1\", \"EState_VSA10\", \"EState_VSA11\", \"EState_VSA2\", \"EState_VSA3\", \"EState_VSA4\", \"EState_VSA5\", \"EState_VSA6\", \"EState_VSA7\", \"EState_VSA8\", \"EState_VSA9\", \"VSA_EState1\", \"VSA_EState10\", \"VSA_EState2\", \"VSA_EState3\", \"VSA_EState4\", \"VSA_EState5\", \"VSA_EState6\", \"VSA_EState7\", \"VSA_EState8\", \"VSA_EState9\", \"FractionCSP3\", \"HeavyAtomCount\", \"NHOHCount\", \"NOCount\", \"NumAliphaticCarbocycles\", \"NumAliphaticHeterocycles\", \"NumAliphaticRings\", \"NumAromaticCarbocycles\", \"NumAromaticHeterocycles\", \"NumAromaticRings\", \"NumHAcceptors\", \"NumHDonors\", \"NumHeteroatoms\", \"NumRotatableBonds\", \"NumSaturatedCarbocycles\", \"NumSaturatedHeterocycles\", \"NumSaturatedRings\", \"RingCount\", \"MolLogP\", \"MolMR\", \"fr_Al_COO\", \"fr_Al_OH\", \"fr_Al_OH_noTert\", \"fr_ArN\", \"fr_Ar_COO\", \"fr_Ar_N\", \"fr_Ar_NH\", \"fr_Ar_OH\", \"fr_COO\", \"fr_COO2\", \"fr_C_O\", \"fr_C_O_noCOO\", \"fr_C_S\", \"fr_HOCCN\", \"fr_Imine\", \"fr_NH0\", \"fr_NH1\", \"fr_NH2\", \"fr_N_O\", \"fr_Ndealkylation1\", \"fr_Ndealkylation2\", \"fr_Nhpyrrole\", \"fr_SH\", \"fr_aldehyde\", \"fr_alkyl_carbamate\", \"fr_alkyl_halide\", \"fr_allylic_oxid\", \"fr_amide\", \"fr_amidine\", \"fr_aniline\", \"fr_aryl_methyl\", \"fr_azide\", \"fr_azo\", \"fr_barbitur\", \"fr_benzene\", \"fr_benzodiazepine\", \"fr_bicyclic\", \"fr_diazo\", \"fr_dihydropyridine\", \"fr_epoxide\", \"fr_ester\", \"fr_ether\", \"fr_furan\", \"fr_guanido\", \"fr_halogen\", \"fr_hdrzine\", \"fr_hdrzone\", \"fr_imidazole\", \"fr_imide\", \"fr_isocyan\", \"fr_isothiocyan\", \"fr_ketone\", \"fr_ketone_Topliss\", \"fr_lactam\", \"fr_lactone\", \"fr_methoxy\", \"fr_morpholine\", \"fr_nitrile\", \"fr_nitro\", \"fr_nitro_arom\", \"fr_nitro_arom_nonortho\", \"fr_nitroso\", \"fr_oxazole\", \"fr_oxime\", \"fr_para_hydroxylation\", \"fr_phenol\", \"fr_phenol_noOrthoHbond\", \"fr_phos_acid\", \"fr_phos_ester\", \"fr_piperdine\", \"fr_piperzine\", \"fr_priamide\", \"fr_prisulfonamd\", \"fr_pyridine\", \"fr_quatN\", \"fr_sulfide\", \"fr_sulfonamd\", \"fr_sulfone\", \"fr_term_acetylene\", \"fr_tetrazole\", \"fr_thiazole\", \"fr_thiocyan\", \"fr_thiophene\", \"fr_unbrch_alkane\", \"fr_urea\"]}}]}, \"name\": \"CompositeDescriptor\"}'}. Best is trial 0 with value: -0.34035600917066766.\n" + ] + } + ], + "source": [ + "from optunaz.descriptors import CompositeDescriptor, UnscaledPhyschemDescriptors, UnscaledJazzyDescriptors\n", + " \n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " ),\n", + " descriptors=[\n", + " CompositeDescriptor.new(\n", + " descriptors=[\n", + " ECFP.new(),\n", + " MACCS_keys.new(),\n", + " UnscaledJazzyDescriptors.new(),\n", + " UnscaledPhyschemDescriptors.new(),\n", + " ]\n", + " )\n", + " ],\n", + " algorithms=[\n", + " Ridge.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " ridge = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Predictions from the algorithms can be explained like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
shap_valuedescriptorbitinfo
22272.042023e+01UnscaledPhyschemDescriptors7.0MolWt
22292.025199e+01UnscaledPhyschemDescriptors9.0ExactMolWt
22281.802158e+01UnscaledPhyschemDescriptors8.0HeavyAtomMolWt
22672.387276e+00UnscaledPhyschemDescriptors47.0LabuteASA
22302.106653e+00UnscaledPhyschemDescriptors10.0NumValenceElectrons
...............
17844.598471e-07ECFP1785.0c1(OC)c(OC)ccc(C)c1
5834.598471e-07ECFP584.0C1(c(cc)cc)=NS(=O)(=O)NC(C)=C1
9954.598471e-07ECFP996.0C(C(N)=C)(=O)N(C)C
8454.598471e-07ECFP846.0c(c(c)C)c(O)c
13754.598471e-07ECFP1376.0S1(=O)(=O)N=C(c)C=C(C)N1C
\n", + "

1570 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " shap_value descriptor bit \\\n", + "2227 2.042023e+01 UnscaledPhyschemDescriptors 7.0 \n", + "2229 2.025199e+01 UnscaledPhyschemDescriptors 9.0 \n", + "2228 1.802158e+01 UnscaledPhyschemDescriptors 8.0 \n", + "2267 2.387276e+00 UnscaledPhyschemDescriptors 47.0 \n", + "2230 2.106653e+00 UnscaledPhyschemDescriptors 10.0 \n", + "... ... ... ... \n", + "1784 4.598471e-07 ECFP 1785.0 \n", + "583 4.598471e-07 ECFP 584.0 \n", + "995 4.598471e-07 ECFP 996.0 \n", + "845 4.598471e-07 ECFP 846.0 \n", + "1375 4.598471e-07 ECFP 1376.0 \n", + "\n", + " info \n", + "2227 MolWt \n", + "2229 ExactMolWt \n", + "2228 HeavyAtomMolWt \n", + "2267 LabuteASA \n", + "2230 NumValenceElectrons \n", + "... ... \n", + "1784 c1(OC)c(OC)ccc(C)c1 \n", + "583 C1(c(cc)cc)=NS(=O)(=O)NC(C)=C1 \n", + "995 C(C(N)=C)(=O)N(C)C \n", + "845 c(c(c)C)c(O)c \n", + "1375 S1(=O)(=O)N=C(c)C=C(C)N1C \n", + "\n", + "[1570 rows x 4 columns]" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ridge.predict_from_smiles(df[config.data.input_column], explain=True).query('shap_value > 0')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Outputs are ordered by shap_value (higher is more important). We see that the `UnscaledPhyschemDescriptors` bits corresponding to e.g. `MolWt`, `ExactMolWt`, `HeavyAtomMolWt` and `NumValenceElectrons`. We can hence interpret these as the most important features contrinubting to predicting the MolWt for the DRD2 datset. `UnscaledPhyschemJazzy` descriptors are also ranked relatively high in the list.\n", + "\n", + "Other descriptor types in the composite descriptor such as the ECFP fingerprints are also shown in the output. ECFP bits are translated to the atom environments for which the bit was turned on within the training set. \n", + "\n", + "Other descriptors are less interpretable as no additional information is available in the `info` column." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ChemProp interpret" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ChemProp explainability is based on the `interpret` in the [original package](https://chemprop.readthedocs.io/en/latest/interpret.html#interpretation).\n", + "\n", + "The follow example shows the usage:" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:22:59,978] A new study created in memory with name: my_study\n", + "[I 2024-07-02 14:23:00,032] A new study created in memory with name: study_name_0\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__e0d3a442222d4b38f3aa1434851320db': 'ReLU', 'aggregation__e0d3a442222d4b38f3aa1434851320db': 'mean', 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 100, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 50, 'depth__e0d3a442222d4b38f3aa1434851320db': 3, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'features_generator__e0d3a442222d4b38f3aa1434851320db': 'none', 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db'}\n", + "[I 2024-07-02 14:23:43,818] Trial 0 finished with value: -4937.540075659691 and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': 'e0d3a442222d4b38f3aa1434851320db', 'activation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation__e0d3a442222d4b38f3aa1434851320db': , 'aggregation_norm__e0d3a442222d4b38f3aa1434851320db': 100.0, 'batch_size__e0d3a442222d4b38f3aa1434851320db': 50.0, 'depth__e0d3a442222d4b38f3aa1434851320db': 3.0, 'dropout__e0d3a442222d4b38f3aa1434851320db': 0.0, 'ensemble_size__e0d3a442222d4b38f3aa1434851320db': 1, 'epochs__e0d3a442222d4b38f3aa1434851320db': 4, 'features_generator__e0d3a442222d4b38f3aa1434851320db': , 'ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'ffn_num_layers__e0d3a442222d4b38f3aa1434851320db': 2.0, 'final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'hidden_size__e0d3a442222d4b38f3aa1434851320db': 300.0, 'init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db': -4, 'max_lr_exp__e0d3a442222d4b38f3aa1434851320db': -3, 'warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. Best is trial 0 with value: -4937.540075659691.\n", + " \r" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " training_dataset_file=\"../tests/data/DRD2/subset-50/train.csv\", # This will be split into train and test.\n", + " ),\n", + " descriptors=[SmilesFromFile.new()],\n", + " algorithms=[\n", + " ChemPropRegressor.new(epochs=4),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ")\n", + "\n", + "study = optimize(config, study_name=\"my_study\")\n", + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " chemprop = pickle.load(f)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + } + ], + "source": [ + "build_best(buildconfig_best(study), \"../target/best.pkl\")\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " chemprop = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to SHAP, ChemProp explainability inference is called using the `explain` flag from the `predict_from_smiles`" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 8 9 18 19 20 21 22 23 24\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18 19 20 21 22\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18 19 20 21 22\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17 18 19 20 21\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 14 15 16 17 18 19 20\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 12 13 14 15 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 12 13 14 15 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 9 10 11 12 13 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 8 9 10 11 12 13 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 7 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 7 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 5 6\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 17 18 19 20 21 22 23\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17 18 19 20 21\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17 18 19 20 21\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 12 13 14 15 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13 14 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 10 11 12 13 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 9 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 8 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 5 6\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18 19 20 21 22\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18 19 20 21 22\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 13 14 15 16 17 18 19\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 13 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 12 13 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 7 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 6 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 5 6 7\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 6 7\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 3 4 5\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 8 9 18 19 20\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 12 13 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 12 13 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 7 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 6 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 8 9 13 14 15 16 17 18 19\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13 14 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13 14 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12 13 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 9 10 11 12 13 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 7 8 9 10 11 12 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 7 8 9 10 11 12 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 8 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 8 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 6 7\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17 18 19 20 21\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 8 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 6 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 5 6 7\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 4 5 6\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17 18 19 20 21\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12 13 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12 13 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11 12 13 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 11 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 10 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 9 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 9 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 3 4 5\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 3 4 5\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 9 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 7 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 6 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 17 18 19\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 12 13 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 9 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 7 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 8 9 12 13 14 15 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 10 11 12 13 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 10 11 12 13 14 15 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 8 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 6 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 17 18 19\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 8 9 10 12 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18 19 20 21 22\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13 14 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 12 16\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 13 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 11 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 10 14\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 9 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 6 7\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13 14 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 8 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 8 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 10 11 12\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 6 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 4 5 8 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 10 11 12 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 15 16 17\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 8 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 5 6 7\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 12 13 14 15 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 11 12 13 14 15 16 17\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11 12 13 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 9 10\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 8 9\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 7 8 12 13 14 15 16 17 18\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11 12 13 14 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 0 1 2 3 4 5 6 12 15\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 2 3 4 10 11\n", + "[14:25:51] Can't kekulize mol. Unkekulized atoms: 6 7 16 17 18\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 6 7 12 13 14\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 6 7 8\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 6 7 13 14 15 16 17 18 19\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 6 7 12 13 14\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 0 1 4 5 6\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 8 9 13 14 15\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 9 10 11 13 14\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 8 9 10 13 14\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 8 9 12 13 14\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 7 8 9 12 13\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 7 8 11 12 13\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 6 7 11 12 13 14 15 16 17\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 5 6 9 10 11 12 13 14 15\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 5 6 7 10 11\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 10 11 12 15 16\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 9 10 11 14 15\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 13 14\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 8 9\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 7 8\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 6 7\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 10 11 12 14 15\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 15 16\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 2 3 4 14 15\n", + "[14:25:52] Can't kekulize mol. Unkekulized atoms: 11 12 13 15 16\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
smilesscorerationalerationale_score
0Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1386.097c1cc(CO[CH3:1])c[cH:1]c1389.151
0O=C(Nc1ccc(F)cc1F)Nc1sccc1-c1nc2ccccc2s1389.485c1c[cH:1]c[cH:1]c1N[CH2:1][NH2:1]388.565
0COC(=O)c1ccccc1NC(=O)c1cc([N+](=O)[O-])nn1Cc1c...384.720CO[CH2:1]c1cccc[cH:1]1389.151
0CCOC(=O)C(C)Sc1nc(-c2ccccc2)ccc1C#N387.110c1c[cH:1]c(S[CH2:1][CH3:1])n[cH:1]1388.871
0CCC(CC)NC(=O)c1nn(Cc2ccccc2)c(=O)c2ccccc12388.997n1c([CH2:1]N[CH3:1])[cH:1][cH:1][cH:1][n:1]1387.854
\n", + "
" + ], + "text/plain": [ + " smiles score \\\n", + "0 Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1 386.097 \n", + "0 O=C(Nc1ccc(F)cc1F)Nc1sccc1-c1nc2ccccc2s1 389.485 \n", + "0 COC(=O)c1ccccc1NC(=O)c1cc([N+](=O)[O-])nn1Cc1c... 384.720 \n", + "0 CCOC(=O)C(C)Sc1nc(-c2ccccc2)ccc1C#N 387.110 \n", + "0 CCC(CC)NC(=O)c1nn(Cc2ccccc2)c(=O)c2ccccc12 388.997 \n", + "\n", + " rationale rationale_score \n", + "0 c1cc(CO[CH3:1])c[cH:1]c1 389.151 \n", + "0 c1c[cH:1]c[cH:1]c1N[CH2:1][NH2:1] 388.565 \n", + "0 CO[CH2:1]c1cccc[cH:1]1 389.151 \n", + "0 c1c[cH:1]c(S[CH2:1][CH3:1])n[cH:1]1 388.871 \n", + "0 n1c([CH2:1]N[CH3:1])[cH:1][cH:1][cH:1][n:1]1 387.854 " + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chemprop.predict_from_smiles(df[config.data.input_column].head(5), explain=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output contians the following:\n", + "\n", + "* The first column is a molecule and second column is its predicted property (in this dummy case MolWt).\n", + "\n", + "* The third column is the smallest substructure that made this molecule obtain that MolWt prediction (called rationale).\n", + "\n", + "* The fourth column is the predicted MolWt of that substructure." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Log transformation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna can be used to transform input labels so that log-scaled or irregularly distributed data can be transformed to a normal distribution as required for most Machine Learning inputs. The following example shows how XC50 values can be scaled to pXC50 values by using the -Log10 to the 6th unit conversion, like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:53,892] A new study created in memory with name: transform_example\n", + "[I 2024-07-02 14:25:53,932] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:25:54,028] Trial 0 finished with value: -0.5959493772536109 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.5959493772536109.\n", + "[I 2024-07-02 14:25:54,127] Trial 1 finished with value: -0.6571993250300608 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.5959493772536109.\n", + "[I 2024-07-02 14:25:54,169] Trial 2 finished with value: -4.1511102853256885 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 5.141096648805748, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.4893466963980463e-08, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 0 with value: -0.5959493772536109.\n", + "[I 2024-07-02 14:25:54,259] Trial 3 finished with value: -1.2487063317112765 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 0 with value: -0.5959493772536109.\n", + "[I 2024-07-02 14:25:54,288] Trial 4 finished with value: -0.6714912461080983 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.5959493772536109.\n", + "[I 2024-07-02 14:25:54,329] Trial 5 finished with value: -0.2725944467796781 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,369] Trial 6 finished with value: -2.194926264155893 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6574750183038587, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,395] Trial 7 finished with value: -0.7520919188596032 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3974313630683448, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,469] Trial 8 finished with value: -0.7803723847416691 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 28, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,499] Trial 9 finished with value: -0.6397753979196248 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2391884918766034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,528] Trial 10 finished with value: -4.151110299986041 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00044396482429275296, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.3831436879125245e-10, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,558] Trial 11 finished with value: -4.151110111437006 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00028965395242758657, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.99928292425642e-07, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,584] Trial 12 finished with value: -0.5410418750776741 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,612] Trial 13 finished with value: -0.7183231137124538 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.2725944467796781.\n", + "[I 2024-07-02 14:25:54,640] Trial 14 finished with value: -0.2721824844856162 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.4060379177903557, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:54,716] Trial 15 finished with value: -1.1900929470222508 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 20, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:54,745] Trial 16 finished with value: -2.194926264155893 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.344271094811757, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:54,774] Trial 17 finished with value: -0.5585323973564646 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.670604991178476, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:54,951] Trial 18 finished with value: -1.3169218304262786 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 14 with value: -0.2721824844856162.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:54,980] Trial 19 finished with value: -0.7974925066137679 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5158832554303112, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:55,008] Trial 20 finished with value: -1.218395226466336 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:55,039] Trial 21 finished with value: -1.1474226942497083 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0009327650919528738, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.062479210472502, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:55,054] Trial 22 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:25:55,083] Trial 23 finished with value: -1.0239005731675412 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1366172066709432, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:55,160] Trial 24 finished with value: -0.7803723847416691 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:55,191] Trial 25 finished with value: -2.178901060853144 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 43.92901911959232, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 27.999026012594694, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.2721824844856162.\n", + "[I 2024-07-02 14:25:55,222] Trial 26 finished with value: -0.27137790098830755 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.5888977841391714, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 26 with value: -0.27137790098830755.\n", + "[I 2024-07-02 14:25:55,250] Trial 27 finished with value: -0.2710284516876423 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.19435298754153707, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 27 with value: -0.2710284516876423.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-0.5410418750776741]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:55,329] Trial 28 finished with value: -1.3169218304262786 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 13, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.2710284516876423.\n", + "[I 2024-07-02 14:25:55,361] Trial 29 finished with value: -3.6273152492418945 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 1.6285506249643193, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.35441495011256785, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 27 with value: -0.2710284516876423.\n", + "[I 2024-07-02 14:25:55,438] Trial 30 finished with value: -1.1900929470222508 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.2710284516876423.\n", + "[I 2024-07-02 14:25:55,469] Trial 31 finished with value: -2.194926264155893 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2457809516380005, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.2710284516876423.\n", + "[I 2024-07-02 14:25:55,496] Trial 32 finished with value: -2.1907041717628215 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6459129458824919, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 27 with value: -0.2710284516876423.\n", + "[I 2024-07-02 14:25:55,528] Trial 33 finished with value: -1.3209075619139279 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8179058888285398, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.2710284516876423.\n", + "[I 2024-07-02 14:25:55,545] Trial 34 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:25:55,577] Trial 35 finished with value: -0.2709423025014604 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0920052840435055, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:55,609] Trial 36 finished with value: -1.3133943310851415 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8677032984759461, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:55,626] Trial 37 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:25:55,657] Trial 38 finished with value: -1.257769959239938 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.2865764368847064, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:55,735] Trial 39 finished with value: -0.40359637945134746 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-0.5410418750776741]\n", + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-1.218395226466336]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:55,817] Trial 40 finished with value: -0.4127882135896648 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:55,836] Trial 41 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:25:55,905] Trial 42 finished with value: -0.5959493772536109 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 25, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:55,935] Trial 43 finished with value: -0.9246005133276612 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,003] Trial 44 finished with value: -0.8908739215746116 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,035] Trial 45 finished with value: -1.107536316777608 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.2709423025014604.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-1.2487063317112765]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:56,067] Trial 46 finished with value: -2.194926264155893 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6437201185807124, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,098] Trial 47 finished with value: -4.054360360588395 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 82.41502276709562, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.10978379088847677, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,129] Trial 48 finished with value: -0.5428179904345867 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.022707289534838138, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,160] Trial 49 finished with value: -0.5696273642213351 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,194] Trial 50 finished with value: -0.27099769667470536 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1580741708125475, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,232] Trial 51 finished with value: -0.2709564785634315 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10900413894771653, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,268] Trial 52 finished with value: -0.2709799905898163 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.13705914456987853, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,302] Trial 53 finished with value: -0.27097230608092054 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.12790870116376127, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,337] Trial 54 finished with value: -0.2709499903064464 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10123180962907431, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,374] Trial 55 finished with value: -0.2710895886052581 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.26565663774320425, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.2709423025014604.\n", + "[I 2024-07-02 14:25:56,411] Trial 56 finished with value: -0.2708711012023424 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.005637048678674678, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.2708711012023424.\n", + "[I 2024-07-02 14:25:56,446] Trial 57 finished with value: -0.27092322402109364 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.06902647427781451, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.2708711012023424.\n", + "[I 2024-07-02 14:25:56,482] Trial 58 finished with value: -0.2712140349882 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.4076704953178294, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.2708711012023424.\n", + "[I 2024-07-02 14:25:56,515] Trial 59 finished with value: -0.27090080367174 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.04187106800188596, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.2708711012023424.\n", + "[I 2024-07-02 14:25:56,550] Trial 60 finished with value: -0.27086925247190047 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.003371853599610078, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n", + "[I 2024-07-02 14:25:56,586] Trial 61 finished with value: -0.2708933298483799 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.032781796328385376, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n", + "[I 2024-07-02 14:25:56,623] Trial 62 finished with value: -0.27087205624489635 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.006806773659187283, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n", + "[I 2024-07-02 14:25:56,658] Trial 63 finished with value: -0.2708869511176179 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.025009489814943348, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n", + "[I 2024-07-02 14:25:56,695] Trial 64 finished with value: -0.2711465077924297 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.3311125627707556, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n", + "[I 2024-07-02 14:25:56,729] Trial 65 finished with value: -0.2708756855936628 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.011249102380159387, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n", + "[I 2024-07-02 14:25:56,766] Trial 66 finished with value: -0.27087301924224993 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.007985924302396141, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.27086925247190047.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:56,802] Trial 67 finished with value: -0.2708685399954944 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.00249856291483601, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.2708685399954944.\n", + "[I 2024-07-02 14:25:56,839] Trial 68 finished with value: -0.27121879554836553 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.4130244908975993, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.2708685399954944.\n", + "[I 2024-07-02 14:25:56,880] Trial 69 finished with value: -0.2708693196600531 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0034541978803366022, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.2708685399954944.\n", + "[I 2024-07-02 14:25:56,918] Trial 70 finished with value: -0.27110195265802334 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.27994943662091765, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.2708685399954944.\n", + "[I 2024-07-02 14:25:56,956] Trial 71 finished with value: -0.2708682582859318 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0021532199144365088, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:56,995] Trial 72 finished with value: -0.27087024523986086 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0045884092728113585, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,030] Trial 73 finished with value: -0.27087351807632193 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.008596600952859433, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,070] Trial 74 finished with value: -0.2710818633795896 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.2567049271070902, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,109] Trial 75 finished with value: -0.27103241786565463 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1990111983307052, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,146] Trial 76 finished with value: -0.2710350879598171 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.20214459724424078, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,183] Trial 77 finished with value: -0.2708688328221868 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.00285750520671645, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,221] Trial 78 finished with value: -0.27100832234449684 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.17064008990759916, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,258] Trial 79 finished with value: -0.27268613236193845 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.8725420109733135, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,296] Trial 80 finished with value: -0.27119617446689237 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.387533542012365, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,333] Trial 81 finished with value: -0.2708691110831552 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0031985656730512953, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,370] Trial 82 finished with value: -0.27086852174155146 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.002476186542950981, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,410] Trial 83 finished with value: -0.27135383618835024 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.5626643670396761, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,449] Trial 84 finished with value: -0.2709819654433871 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1394077979875128, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,488] Trial 85 finished with value: -0.2718548944510965 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.0858347526799794, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,528] Trial 86 finished with value: -4.1508084699212935 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.03329943145150872, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00025672309762227527, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,566] Trial 87 finished with value: -0.27249853374634975 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.702026434077893, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:25:57,604] Trial 88 finished with value: -0.27095660957755363 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10916094511173127, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,643] Trial 89 finished with value: -0.27102160995407715 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.18630665884100353, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,681] Trial 90 finished with value: -0.27095708822582026 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10973377642487026, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,721] Trial 91 finished with value: -0.27088222008661084 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.019235980282946118, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,762] Trial 92 finished with value: -0.2708703086029017 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.004666043957133775, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,799] Trial 93 finished with value: -0.27095279044622245 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1045877457096882, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,840] Trial 94 finished with value: -0.2709408288690431 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.09023455456986404, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,879] Trial 95 finished with value: -0.9289218260898663 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8200088368788958, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.2708682582859318.\n", + "[I 2024-07-02 14:25:57,917] Trial 96 finished with value: -0.27086675101898655 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.00030502148265565063, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.27086675101898655.\n", + "[I 2024-07-02 14:25:57,957] Trial 97 finished with value: -0.2710491243757999 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.21858260742423916, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.27086675101898655.\n", + "[I 2024-07-02 14:25:58,001] Trial 98 finished with value: -4.1491615840508995 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.024725853754515203, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0011658455138452, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.27086675101898655.\n", + "[I 2024-07-02 14:25:58,040] Trial 99 finished with value: -0.2709462479577586 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0967427718847167, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.27086675101898655.\n" + ] + } + ], + "source": [ + "from optunaz.utils.preprocessing.transform import (\n", + " LogBase,\n", + " LogNegative,\n", + " ModelDataTransform\n", + ")\n", + "\n", + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"Measurement\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/sdf/example.sdf\",\n", + " split_strategy=Stratified(fraction=0.4),\n", + " deduplication_strategy=KeepMedian(),\n", + " log_transform=True, # Set to True to perform\n", + " log_transform_base=LogBase.LOG10, # Log10 base will be used\n", + " log_transform_negative=LogNegative.TRUE, # Negated transform for the pXC50 calculation\n", + " log_transform_unit_conversion=6, # 6 units used for pXC50 conversion\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=100,\n", + " n_startup_trials=50,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " ),\n", + ") \n", + "\n", + "transformed_study = optimize(config, study_name=\"transform_example\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In comparison, QSARtuna does not normally transform the data:" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:00,252] A new study created in memory with name: non-transform_example\n", + "[I 2024-07-02 14:26:00,254] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:26:00,332] Trial 0 finished with value: -3501.942111261296 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -3501.942111261296.\n", + "[I 2024-07-02 14:26:00,422] Trial 1 finished with value: -5451.207265576796 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -3501.942111261296.\n", + "[I 2024-07-02 14:26:00,459] Trial 2 finished with value: -208.1049201007814 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 5.141096648805748, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.4893466963980463e-08, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,500] Trial 3 finished with value: -9964.541364058234 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,528] Trial 4 finished with value: -3543.953608539901 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,570] Trial 5 finished with value: -6837.057544630979 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,613] Trial 6 finished with value: -2507.1794330606067 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6574750183038587, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,650] Trial 7 finished with value: -21534.719219668405 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3974313630683448, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,726] Trial 8 finished with value: -2899.736555614694 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 28, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.294e+02, tolerance: 2.760e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 14:26:00,790] Trial 9 finished with value: -21674.445000284228 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2391884918766034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,819] Trial 10 finished with value: -208.1049203123567 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00044396482429275296, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.3831436879125245e-10, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 2 with value: -208.1049201007814.\n", + "[I 2024-07-02 14:26:00,849] Trial 11 finished with value: -208.1049192609138 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00028965395242758657, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.99928292425642e-07, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:00,877] Trial 12 finished with value: -3630.72768093756 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:00,907] Trial 13 finished with value: -3431.942816967268 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:00,934] Trial 14 finished with value: -6908.462045154488 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.4060379177903557, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:01,008] Trial 15 finished with value: -5964.65935954044 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 20, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:01,036] Trial 16 finished with value: -21070.107195348774 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.344271094811757, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:01,065] Trial 17 finished with value: -4977.068508997133 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.670604991178476, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 11 with value: -208.1049192609138.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:01,133] Trial 18 finished with value: -8873.669262669626 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:01,173] Trial 19 finished with value: -21387.63697424318 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5158832554303112, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:01,202] Trial 20 finished with value: -9958.573006910125 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 11 with value: -208.1049192609138.\n", + "[I 2024-07-02 14:26:01,370] Trial 21 finished with value: -180.5182695600183 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0009327650919528738, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.062479210472502, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 21 with value: -180.5182695600183.\n", + "[I 2024-07-02 14:26:01,387] Trial 22 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:01,428] Trial 23 finished with value: -20684.56412138056 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1366172066709432, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 21 with value: -180.5182695600183.\n", + "[I 2024-07-02 14:26:01,515] Trial 24 finished with value: -2899.736555614694 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 21 with value: -180.5182695600183.\n", + "[I 2024-07-02 14:26:01,544] Trial 25 finished with value: -150.3435882510586 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 43.92901911959232, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 27.999026012594694, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:01,571] Trial 26 finished with value: -7068.705383113378 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.5888977841391714, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 25 with value: -150.3435882510586.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-3630.72768093756]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:01,599] Trial 27 finished with value: -7150.482090052133 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.19435298754153707, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:01,976] Trial 28 finished with value: -8873.669262669626 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 13, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:02,077] Trial 29 finished with value: -203.93637462922368 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 1.6285506249643193, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.35441495011256785, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:02,160] Trial 30 finished with value: -5964.65935954044 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:02,193] Trial 31 finished with value: -2570.5111262532305 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2457809516380005, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:02,237] Trial 32 finished with value: -21987.659957192194 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6459129458824919, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:02,269] Trial 33 finished with value: -9889.493204596083 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8179058888285398, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,369] Trial 34 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:03,413] Trial 35 finished with value: -7172.208490771303 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0920052840435055, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,537] Trial 36 finished with value: -9804.512701665093 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8677032984759461, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,555] Trial 37 pruned. Duplicate parameter set\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-3630.72768093756]\n", + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-9958.573006910125]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:03,585] Trial 38 finished with value: -9165.74081120673 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.2865764368847064, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,665] Trial 39 finished with value: -543.0280270800017 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,745] Trial 40 finished with value: -161.1602933782954 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,763] Trial 41 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:03,831] Trial 42 finished with value: -3501.888460860864 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 25, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,864] Trial 43 finished with value: -8414.932694243476 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:03,944] Trial 44 finished with value: -2270.540799189147 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-9964.541364058234]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:03,977] Trial 45 finished with value: -10383.79559309305 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,008] Trial 46 finished with value: -20815.025469865475 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6437201185807124, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,040] Trial 47 finished with value: -206.7560385808573 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 82.41502276709562, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.10978379088847677, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,070] Trial 48 finished with value: -5264.4700789389035 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.022707289534838138, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,103] Trial 49 finished with value: -3668.255064135424 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,140] Trial 50 finished with value: -156.12174877890536 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 56.793408178086295, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 9.99902820845678, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,177] Trial 51 finished with value: -157.371632749506 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 57.88307313087517, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 8.140915461519354, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,218] Trial 52 finished with value: -153.66773675231477 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 46.177324126813716, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 40.77906017834145, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,256] Trial 53 finished with value: -186.52056745848623 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 89.4565714180547, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 93.6710444346508, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,294] Trial 54 finished with value: -153.30976119334312 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 35.62916671166313, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 40.023639423189294, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,334] Trial 55 finished with value: -181.053696900694 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 23.914617418880486, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 86.31140591484044, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,374] Trial 56 finished with value: -201.33573874994386 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 12.569769302718845, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.5781354926491789, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,412] Trial 57 finished with value: -190.1384885119049 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 95.87666716965626, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 98.2537791489618, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,451] Trial 58 finished with value: -208.076949848299 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.9559574710535281, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0032830967319653665, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,491] Trial 59 finished with value: -170.764974036324 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 15.03910427457823, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 3.406811480459925, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,528] Trial 60 finished with value: -164.4477304958181 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 17.701690847791482, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 4.819274780536123, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,567] Trial 61 finished with value: -157.87939164358104 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 28.32187661108304, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 7.660320437878754, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,607] Trial 62 finished with value: -157.01705178481896 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 38.61397716361812, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 8.603665957830847, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,645] Trial 63 finished with value: -155.73257312230092 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 40.759645965959294, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 11.503212714246787, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:04,684] Trial 64 finished with value: -154.46848394144124 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 93.8546740801317, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 15.35327336610912, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,724] Trial 65 finished with value: -161.20421802817864 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 93.57596974747163, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 51.84756262407801, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,763] Trial 66 finished with value: -190.51233215278089 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 6.3564642040401464, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 1.5034542273159819, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,802] Trial 67 finished with value: -207.68667089892196 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 24.034895878929095, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.03653571911285094, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 25 with value: -150.3435882510586.\n", + "[I 2024-07-02 14:26:04,842] Trial 68 finished with value: -102.52277054278186 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.01961499216484045, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 17.670937191883546, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 68 with value: -102.52277054278186.\n", + "[I 2024-07-02 14:26:04,881] Trial 69 finished with value: -97.28722475694815 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.012434370509176538, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 19.34222704431493, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 69 with value: -97.28722475694815.\n", + "[I 2024-07-02 14:26:04,921] Trial 70 finished with value: -93.87402050281146 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.008452015347522093, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 24.914863578437455, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 70 with value: -93.87402050281146.\n", + "[I 2024-07-02 14:26:04,960] Trial 71 finished with value: -89.38847505937936 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.01573542234868893, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 27.99307522974174, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 71 with value: -89.38847505937936.\n", + "[I 2024-07-02 14:26:04,999] Trial 72 finished with value: -81.96336195786391 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.009845516063879428, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 80.59422914099683, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 72 with value: -81.96336195786391.\n", + "[I 2024-07-02 14:26:05,039] Trial 73 finished with value: -89.19345618324213 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.009382525091504246, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 98.35573659237662, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 72 with value: -81.96336195786391.\n", + "[I 2024-07-02 14:26:05,080] Trial 74 finished with value: -86.30772721342525 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.010579672066291478, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 84.35550323165882, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 72 with value: -81.96336195786391.\n", + "[I 2024-07-02 14:26:05,117] Trial 75 finished with value: -90.23970902543148 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.013369359066405863, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 87.4744102498801, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 72 with value: -81.96336195786391.\n", + "[I 2024-07-02 14:26:05,155] Trial 76 finished with value: -81.34331248758777 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.011398351701814368, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 72.54146340620301, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 76 with value: -81.34331248758777.\n", + "[I 2024-07-02 14:26:05,195] Trial 77 finished with value: -208.104535853341 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.011708779850509646, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 1.682286191624579e-05, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 76 with value: -81.34331248758777.\n", + "[I 2024-07-02 14:26:05,235] Trial 78 finished with value: -80.0653774146952 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.009806826677473646, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 76.90274406278985, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 78 with value: -80.0653774146952.\n", + "[I 2024-07-02 14:26:05,276] Trial 79 finished with value: -81.64646042813787 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0038598153381434685, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 73.20918134828555, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 78 with value: -80.0653774146952.\n", + "[I 2024-07-02 14:26:05,316] Trial 80 finished with value: -78.68420472011734 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0032474576673554513, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 98.35551178979624, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,357] Trial 81 finished with value: -80.85985201823172 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.003187930738019005, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 89.29431603544847, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,399] Trial 82 finished with value: -80.21583898009355 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.003122319313153475, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 93.83526418992966, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:05,437] Trial 83 finished with value: -83.34787242859676 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.002781955938462633, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 89.76228981520067, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,478] Trial 84 finished with value: -194.70914272129673 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0023173546614751305, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 1.3000082904498813, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,519] Trial 85 finished with value: -208.10492031097328 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.002606064524407, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 1.7861330234653922e-10, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,558] Trial 86 finished with value: -208.1049154281806 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0029210589377408366, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 4.200933937391094e-07, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,599] Trial 87 finished with value: -208.10492028002287 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.06431564840324226, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 3.2981641934644904e-09, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,640] Trial 88 finished with value: -196.56066541774658 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0010848843623839548, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.151493073951163, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 80 with value: -78.68420472011734.\n", + "[I 2024-07-02 14:26:05,682] Trial 89 finished with value: -76.76337597039308 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.004134805589645341, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 90.88115336652716, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 89 with value: -76.76337597039308.\n", + "[I 2024-07-02 14:26:05,724] Trial 90 finished with value: -108.58009587759925 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.004763418454688096, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 22.02920758025023, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 89 with value: -76.76337597039308.\n", + "[I 2024-07-02 14:26:05,766] Trial 91 finished with value: -113.35230417583477 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0009098023238189749, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 79.57100980886017, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 89 with value: -76.76337597039308.\n", + "[I 2024-07-02 14:26:05,809] Trial 92 finished with value: -113.30807467406214 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.03739791555156691, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 27.12818940557025, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 89 with value: -76.76337597039308.\n", + "[I 2024-07-02 14:26:05,850] Trial 93 finished with value: -76.44100655116532 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.006380481141720477, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 88.4882351186755, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n", + "[I 2024-07-02 14:26:05,891] Trial 94 finished with value: -150.35181001564942 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0036244007454981787, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 5.608797806921866, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n", + "[I 2024-07-02 14:26:05,935] Trial 95 finished with value: -124.3719027482892 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0014198536004321608, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 35.05588994284273, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n", + "[I 2024-07-02 14:26:05,978] Trial 96 finished with value: -95.28568052794907 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.005434972462746285, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 30.215759789700954, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n", + "[I 2024-07-02 14:26:06,018] Trial 97 finished with value: -20325.66479442037 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.9696417046589247, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n", + "[I 2024-07-02 14:26:06,057] Trial 98 finished with value: -132.21507621375022 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0004528978867024753, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 84.80386923876023, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n", + "[I 2024-07-02 14:26:06,097] Trial 99 finished with value: -166.85570350846885 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0016948043699497222, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 5.455627755557016, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 93 with value: -76.44100655116532.\n" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"Measurement\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/sdf/example.sdf\",\n", + " split_strategy=Stratified(fraction=0.4),\n", + " deduplication_strategy=KeepMedian(),\n", + " log_transform=False, # Shown for illustration: Log transform defaults to False\n", + " log_transform_base=None, # Shown for illustration: Log10 base is None/ignored if not log scaled\n", + " log_transform_negative=None, # Shown for illustration: negation is None/ignored if not log scaled\n", + " log_transform_unit_conversion=None, # Shown for illustration: conversion is None/ignored if not log scaled\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=100,\n", + " n_startup_trials=50,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " ),\n", + ") \n", + "\n", + "default_study = optimize(config, study_name=\"non-transform_example\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The importance of scaling can be analysed by directly contrasting the two different studies with and without log transformation:" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABMUAAAHkCAYAAAA+ZphVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddZwVVf/A8c/M3N7uZZdukO4OEbED88F+MAETWx/jsQsLEeNnoCB2PAagIliENEhJ53bfvTkzvz/u7oXL7pILS3zfrxcv3TkTZ86de8/Md04opmmaCCGEEEIIIYQQQghxAlHrOgNCCCGEEEIIIYQQQhxpEhQTQgghhBBCCCGEECccCYoJIYQQQgghhBBCiBOOBMWEEEIIIYQQQgghxAlHgmJCCCGEEEIIIYQQ4oQjQTEhhBBCCCGEEEIIccKRoJgQQgghhBBCCCGEOOFIUEwIIYQQQgghhBBCnHAkKCbEMcQ0zbrOgjgA8nkJIcSxS37Djy3yeQkhhDgYEhQT4hixcOFCrr/++rrORoSysjJuvPFGOnbsSPfu3dm0aVNdZynCsmXLGDZsGH6/n23bttGqVSu++OKLw37ckpIS7r77bhYsWHDYjwUQDAa58MILueKKK6qkffHFF5x11lm0b9+eIUOGMH78eILBYMQ669at44YbbqB79+707NmTe+65h9zc3HD6vffeS6tWrWr8t3379hrz9uKLL1a7zf/93/9Vu/7OnTvp2rUrr776aniZ3+/ntNNOY8mSJQdYMkIIcXB+/vln7rnnnrrORoSsrCwuu+wy2rdvT+/evfF4PHWdpQjTp09nxIgRAMybN49WrVoxb968w37crKwsrr/++r3WRbXh/fffZ+jQoXTo0IHzzz+f2bNn73Ob3NxcHnzwQQYPHkznzp0ZPnw433//fTj9iy++2Gv9+uWXXwJw991389Zbbx22cxNCiBOZpa4zIITYP59++inr16+v62xE+Oqrr/jll1946KGHaNGiBfXr16/rLIX5fD7uuece7rrrLmw22xE99qpVq/j666+54IILjsjx3nzzTZYvX06PHj0ilr///vs8+eSTDBs2jLvuuovCwkJeeeUV1qxZEw46ZWdnc+WVV9KwYUOee+45PB4PL774Itdccw1ffvklVquVUaNGcemll0bsu7i4mFtvvZUePXqQkZFRY95Wr15Njx49GDt2bMTy6rYxTZP777+fsrKyiOU2m40777yTe+65h6+//hqHw3FA5SOEEAfqvffeq+ssVPH++++zZMkSnnvuOdLS0nA6nXWdpbD8/HweffTROgnc/Pnnn/sVoDoU7777Ls899xyjR4+mXbt2fP7559x0001MmjSJbt26VbuN3+/n2muvpbS0lFtuuYXU1FSmT5/O7bffjt/v57zzzmPQoEF8/PHHVbZ98MEHKSsrY+DAgQCMHTuWs88+m5NPPplmzZod1nMVQogTjQTFhBAHraioCIARI0agKErdZmYPU6ZMwWKxcMopp9R1Vg6r1atX88Ybb5CSkhKxXNd1JkyYQN++fXnllVfCy9u2bcvZZ5/NH3/8Qd++ffn0008pLS3l9ddfJyEhAYDExESuvPJK5s6dS//+/WnYsCENGzaM2P/NN99MXFwczz///F4/+1WrVjF8+HA6deq0z3OZMmUKGzZsqDbtlFNO4aWXXuKjjz7immuu2ee+hBDieFNUVERqaipnnHFGXWelitdff50OHTpw0kkn1XVWap3X62XChAlcc801jB49GoABAwZw6aWX8tprr/Huu+9Wu92sWbNYvXo1n376KR06dACgb9++7Nixg7fffpvzzjuPxMREEhMTI7abNGkS69evZ+rUqeG0tLQ0zjrrLJ577jkmTpx4GM9WCCFOPNJ9Uhz1Tj75ZJ588kmuuuoqOnTowAMPPBBubr5t27Yq6957773hv1u1asXkyZN54IEH6NGjB507d+bWW28lLy+vxuPtqyn77t26qsvrK6+8wjPPPEOfPn3o0KEDI0eOrNKt8I8//mDEiBF07dqVnj17MnbsWHbu3Fnjfu+9916+/PJLtm/fHu4CWNkd8N133+W0006jY8eOfP755wD89NNPjBgxgs6dO9OuXTtOO+00Jk+eHN5fZbeGOXPm8O9//5uOHTvSt29fnnvuOXRdj8jnxRdfTOfOnenevTs33XRTuLXaFVdcES6L1q1bh8u9tLSUp556ilNOOYX27dtz1lln8dlnn1Uppz0/093zdMUVV9ChQwcGDRrEp59+Sk5ODmPGjKFz584MHDhwn2/w/X4/7777LmeddVaVtOzsbG644QY6dOjAwIEDeeWVVyLOGUKt8s4880zatWvHoEGDePXVVyPWKSgoYOzYsfTt25f27dtz7rnn8tVXX4XL9sorrwTgyiuvrLZLIxzadbb7ed59991cccUVNGnSJCItLy+PoqIiBg0aFLG8ZcuWJCQkMGvWLCAU0JwyZUo4IAZgtVqBUGu76syePZsZM2Zw3333ERsbW2P+CgoKyM7Opk2bNvs8l61bt/L888/z2GOP1bjO2Wefzbvvvovf79/n/oQQR59jpT6/4oormD9/PvPnzw93Aayso6ZOncrgwYPp0qULf/zxBxCqMyqD/x06dODcc8/lhx9+iMhH27ZtWbp0KZdccgnt27dn8ODBVbqRf/vtt5xzzjl06NCBXr16ceedd5KdnR0ujy+++IIdO3ZE5D0nJ4f77ruPgQMH0qFDBy688EJ+/vnniP22atWK8ePHM3z4cDp06MD48eP54osvaN++PQsWLOCCCy6gffv2DBs2jJkzZ7JhwwauuuoqOnbsyNChQ/nuu+/2+rkWFBTw2WefVVvnrlu3jhEjRtC+fXuGDh3KBx98EJFuGAZvvvkmQ4cOpV27dgwbNqzKOlu2bOHGG2+kZ8+edOzYkUsuuSTcMuyLL77gvvvuA2DIkCER18zuXn311b1eC3sbWmHp0qWUlJQwdOjQ8DJFURg6dCjz5s3D6/VWu110dHT4895d06ZN2bJlS7Xb5OXl8dJLL/Gvf/2Ljh07RqSdffbZzJo1i7Vr19aYVyGEEAdOWoqJY8LkyZO55ppruO6664iKimLjxo37ve2LL77I0KFDGTduHFu3buWpp55C0zTGjRtX7fo1NWWvlJ6evtfjTZo0ia5du/LUU09RXFzME088wT333BPe51dffcU999zDWWedxQ033BDu0nbJJZfw5ZdfkpSUVGWfo0aNoqCggJUrVzJ+/HgaNmxIeXk5ELrRe+CBB4iOjqZjx47MmjWL0aNHc+WVV3LzzTfj9XqZMmUK//3vf2nXrl3ETdadd97JiBEjuO6665g1axZvv/02DRo04NJLL2Xr1q2MGjWKCy64gDvuuIOSkhLGjRvH9ddfz48//sjDDz/Mu+++y2effcbHH39MYmIiXq+XESNGkJ+fzy233EJmZiY//fQTDzzwAHl5edx4443hY+/5mVYGOu644w6uv/56Ro0axZtvvsnDDz9Mw4YNOf3007nsssuYMmUKTz31FF26dAm/ed3TvHnzyM7O5tRTT62S9uqrr3Leeefx2muvsXjxYiZOnEhZWRn3338/AG+88QYvvvgil19+Offddx+rVq3i1VdfZefOnTz55JMA3HXXXeGuItHR0Xz99dfcc889pKen065dOx566CH++9//8tBDD9GzZ89q83io1xnAa6+9RjAY5JZbbmHkyJERabGxsVgsFnbs2BGxvLi4mJKSErZu3QoQ8Zba5/OxatUq/vvf/9KwYUP69etX5ZimafLMM8/Qo0cPTjvttL3mb/Xq1UDobfnTTz9NTk4OLVq04Pbbbw93CYHQQ9G9997L6aefzoABA2rc32mnnca4ceOYP39+tXkTQhz9joX6/OGHH+auu+4K/3/z5s35+++/ARg/fjwPPvggXq+Xzp07M3nyZB5//HFuvvlmunbtSnFxMW+99RZ33nknnTt3Dh/DMAxuu+02rr76am677TY+++wznn32WVq2bEn//v1ZuHAhd999N6NGjaJ79+5kZWXx3HPPMXbsWD788EPGjx/PSy+9FL4PSE9PJy8vjwsvvBC73c7tt99OQkICX3zxBaNHj+bZZ5/lnHPOCZ/TxIkTGTt2LE2aNCEzM5Ply5cTDAYZO3YsY8aMoV69ejz//PPceeedJCcn869//Ysbb7yR8ePHc88999C1a9cay2vGjBkEg0EGDx5cJe2pp57iyiuvZNSoUcycOZPHH38cwzC46qqrAHjkkUf44osvuOGGG+jcuTN//fUXTz75JCUlJYwePRrDMLjhhhtITU3l2WefxWKxMGnSJG666SZ++OEHBg0axE033cTrr7/O+PHjadWqVbV5vOiii+jfv3+N18KeraF3V/kysHHjxhHLGzVqhK7rbNmyhZYtW1bZrk+fPvTp0ydiWSAQYPbs2TRv3rzaY73yyiuoqsptt91WJa1z586kpaXx7bffcscdd9SYXyGEEAdGgmLimJCRkcGdd94Z/vtAbqJbtmzJU089Ff572bJlTJs2rcb1q2vKfiBiY2OZMGECmqYBoTecr776KoWFheHuZv369eOFF14Ib9OlSxfOOOMM/u///o+77767yj4bNmxIYmIiNpst3A2tMih2+umnR4xd9e2333L++efzwAMPhJd17tyZnj17Mm/evIig2EUXXRTuCtC7d29++uknZs2axaWXXsqyZcvwer3ccMMNpKWlAaEHiJ9//pny8nKaN28evkGuzNOUKVNYu3YtU6dOpXPnzgD079+fYDDIhAkTuPTS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gYFzc3MjBjs/WHfeeScbNmzgvffeo3PnzthsNjweD5988skB72v3LgoLFy7k448/ZuLEibRu3bpKiyuAuLg4Nm/eXGV5bm4uQK2c3/5ISEgIB7D2tHvwC3Z9FklJSQQCAQCef/75KmOHwK6b+5iYGO666y7uuusuNmzYwM8//8yECRN49NFHefPNN/crj/tznSUkJFRZp379+owfP57t27dXaZEHcNJJJ/HUU08xfPhwfvnlF2JjY+natSstWrQAQt0zsrKyaNu2LRDq9uLz+SJaI1gsFlq1alVlMN/ffvuNYDC4z7HEKs2ePRuv18uwYcMilvt8PhITE9m5cydLly5l6dKl4YkKKk2YMIEJEybw888/R7RAKCkpqRJoE0Icu47V+hxCeb7++uuxWq189tlntGnTBovFwrp16/j6668PeH/9+/enf//+eDwe5s6dy6RJk3j88cfp2LFjta2C4+LiwvXr7uqizq0pULO3Oreyi+D7779fbdfLyt/6tLQ0HnnkER5++GFWr17NtGnTeOutt0hISODhhx/erzxefPHFVSae2V39+vXDn+PumjRpEm49tnnz5ojPYfPmzVit1moDk5VKS0u5/vrrWbJkCffff3+NrcCys7NZuXLlXluJQagOPFKfqxBCnCgkKCaOSZVvNrOyssJjSaxfvz781vFQJCQkHLYbjiZNmpCSkhIe96vS1q1bWbJkSZU3lLvb3y4eCxcu5JJLLokY4P3XX38Fqj507M17773H+++/z/Tp07HZbPTu3Zt27drxww8/VBm8vVL37t354YcfWLx4cUTA5ptvvsFqte61q19tysjIYPbs2ZimWaVF26xZsyK6c3z33Xc4nU46duxIIBDAarWSnZ3N2WefHV5n1apVPPvss4waNQrDMBgxYkS4hVPTpk1p2rQpS5YsCQcEd+8+W5P9vc72nLUK4PXXX6/SLafyweDRRx8NB5GmTp1KUVFRxEDT77//PpqmhQdE/vrrr5k5cyY///xz+HtVVlbG4sWL6dKlS8Qxli5dSnp6+n63hps2bRrTp0+nZ8+e4YBweXk5s2bNolevXqSmplb7wHrhhRdy8cUXc/HFF0c8tJqmSXZ2dpXWc0KIY9fRWp+rqrrPOrOwsJCNGzdy//33R/xWH0yd+8wzzzB//nw+++wznE4ngwcPpl69epx77rns2LGj2vqze/fuTJo0ie3bt0f8Ln/zzTekpKRU2yL4cMjIyGDdunXVps2aNSuiO+Z3331HvXr1aNSoUXiG48LCQnr16hVeZ/bs2XzwwQfcd999bNmyhdGjRzNx4kQ6dOhAmzZtaNOmDbNnzw7fi+zP/VFaWlp4fNS9qa7O7dy5My6Xi+nTp4c/B9M0+fHHH+nRo0e143pCqOX2jTfeyPLly3nxxRf3+kJp6dKlAFXq3T1lZWXtdx0shBBi/0hQTByTevbsicPh4Omnn+bWW2/F7XbzyiuvhB+8j1aqqnLHHXdw3333MXbsWM455xwKCwsZP348cXFxEYPg7ik2Npa8vDxmz5691zFZOnTowP/+9z9OOukk0tPTWbRoEW+++SaKoux17JU99erVi+eff57Ro0dz+eWXo2kaU6dOxWazVTvDFMDw4cOZMmUKo0eP5pZbbqF+/frMnDmTzz//nDFjxtQ4cGxt69u3L2+++SZr166tMhPVjBkzSEtLo0+fPvz+++98/PHH3HrrreEHs2uvvZaXX36ZsrIyevbsSXZ2Ni+//DKKotC6dWtiYmJIT0/n8ccfp6ysjIYNG7JixQpmz57NDTfcAOzqSjFr1izi4uLCXWlqS3Wza1W+Zd/9hv6KK65g5MiRPPnkk5x88snMmTOHN954g+uuuy788Hnttdcybdo0brrpJkaOHInf7+ett97C7XZX6Va0Zs2aGicOgFA3ooKCgvC4P5X7vu6667jhhhswDIO33noLj8fDzTffjM1mq/YBBEItOPZMW7t2LaWlpXudQUwIcWw5Wuvz2NhYFi9ezJw5c8Ita/eUlJREZmYmkydPJj09ndjYWH777TcmTZoEcMB17rvvvsu9997LOeecQyAQ4O233yY+Pj4iYLS7a665hm+++Yarr76aMWPGEB8fz1dffcXcuXN58sknD3i8tIPVt29ffvjhB0pLS6t0Jfzggw+Iioqibdu2fPfdd/z22288++yzKIpCq1atOOecc/jPf/7D9u3badeuHRs3buTFF1+kfv36NG7cmGAwiMPh4O677+bmm28mOTmZP//8k1WrVoVfJFbeW/z4448MGDCAZs2a1er5OZ1O/v3vf/Paa69htVrp3Lkzn3/+OX///Xf4s4ZQwKqyJbbNZmPy5MksWLCASy65hPT0dJYsWRKx393HyFu7di02m22vs2CapsnixYu5/PLLa/X8hBDiRCdBMXFMio2N5dVXX+WFF15g9OjRZGZmMmbMmCpdsI5Gw4cPJyoqijfeeIPRo0cTHR1N//79ueOOO6odj2v37WbPnh0OOO05eG2lp59+mscee4zHHnsMCE0h/uijj/LNN9+wYMGC/c5n69atmThxIq+99hp33HEHuq7Trl073nnnHZo2bVrtNk6nkw8++IAXXnghHFhq2rQpTzzxBBdeeOF+H/tQdevWjaSkJGbPnl0lgPTAAw/w3Xff8d5775GSksL9998f0ULvtttuIyUlhSlTpvD2228TFxdH7969ueOOO8I3++PHj2fcuHG8/PLLFBYWUq9ePcaMGRMei6xFixacddZZTJ48md9++41vv/32iJ377ipnOX399df5+OOPycjI4MEHH4wYn6ZZs2ZMnjyZF154gbvvvptgMEiPHj144oknqgTA8vPza5zuHkJdHr/88kvWrFkT3veHH37IuHHjeOCBB/D7/XTv3p0nnnhir91NavLrr7+SkpKyzzfpQohjx9Fan1922WWsWLGC6667jqeeeqrGrpYTJkzgiSee4N5778Vms9G8eXNef/11nnzySRYsWFDjeGB7GjhwIM8//zzvvPMOY8aMQVEUunbtyqRJk2oMEKakpPDRRx/xwgsv8PjjjxMIBGjdujUTJkw4oi1qBw8ejMVi4bfffqtyb/L444/z9ttv89JLL9GgQQPGjRsXMYbYU089xRtvvMHUqVPJysoiKSmJM844g9tuuw1N09A0jXfeeYcXXniBJ554gpKSEho3bsx///tfhg8fDoQCq3369OGFF15gzpw5+z2MwYEYPXo0mqbxySef8M4779C8eXMmTJhA165dw+t8+umnjB8/Ptztf8aMGQB8/PHHES22K1XWlRDqVrqvF4fLly+nsLBwv4cwEEIIsX8Uc28jlAohxDHqnXfe4aOPPmLGjBnVTgogji2maTJs2DBGjBjB1VdfXdfZEUIIsZvHHnuMf/75J6LllKhd999/P0VFRUyYMKGusyKEEMeVI9OuWgghjrARI0ZgGAbTpk2r66yIWjBjxgx0XefSSy+t66wIIYTYw4033sjq1atZtmxZXWfluLRz505mzJjBrbfeWtdZEUKI444ExYQQxyWHw8Fzzz3Hiy++WGVQenFs8fv9jBs3jmeffRaHw1HX2RFCCLGHlJQUHnnkEZ588sm6zspx6YUXXuC6667b6xAGQgghDo50nxRCCCGEEEIIIYQQJxxpKSaEEEIIIYQQQgghTjgSFBNCCCGEEEIIIYQQJxwJigkhhBBCCCGEEEKIE44ExYQQQgghhBBCCCHECcdS1xkQh07XDQoK3Ae9vaoqJCZGUVDgxjBk3gWQMtmTlEdVUiZVSZlUdbBlkpIScxhzJQ6U1LO1T8qkKimTqqRMIkl5VHUoZSJ1rRACpKWYIFSZKIqCqip1nZWjhpRJJCmPqqRMqpIyqUrKRIBcB9WRMqlKyqQqKZNIUh5VSZkIIQ6VBMWEEEIIIYQQQgghxAlHgmJCCCGEEEIIIYQQ4oQjQTEhhBBCCCGEEEIIccKRoJgQQgghhBBCCCGEOOFIUEwIIYQQQgghhBBCnHAkKCaEEEIIIYQQQgghTjgSFBNCCCGEEEIIIYQQJxwJigkhhBBCCCGEEEKIE44ExYQQQgghhBBCCCHECUeCYkIIIYQQQgghhBDihCNBsTpgGAavvPIK/fv3p1OnTlx33XVs3bq1rrMlhBBCCCGEEEIIccKQoFgdmDBhAlOmTOGxxx5j6tSpGIbBtddei9/vr+usCSHEMUlRQv8OZjshxPHnSH+3lePsx2T309nz//eWVvM+lL2k7f/+a9rnwR+75s9tf9OqHnt/8xX5/3sry/3N4962q4068mA+7719blWPV3PZ7S1fQghxKCx1nYETjd/v55133uHOO+9k0KBBALz44ov079+fGTNmcNZZZ9VtBoUQRxVFAbsaRDP9gIJhcaIF3WAYmFYn6AGUoA+sNlA08JdjGiaa3YkZ9GP43KjOGFA1TL8XUFDsLgj6MPweVGcsAIa/HEWzoWgapq8cM+BDccYQ0Fz4dAuqquA03eAtxQz6sMQmY+pBDE8pqjMaRdXQSwrxlIIrOhHT9KN73GiuOBRVQXcXg6KhRcVU5MuL4ogioEXh07WDLh+rZmA3ytGLs8EwsCRmYKhWTF3HUK3oqh1N94CiElRsaARRjCCapqAGPATyd6DanKixyXgUF7oeutNWVQWLRcUwQDP9WA0PGAa6ZseHA8Mww3nQtNA2um5Wm0chDoWiKNgMH0q5G8PvR4uKIuiIJmAc/mOrqoIt6MV0l2EGAmjR0QTtUQTMo+eJVFHApvtRPGUEioqxJSWiqirenBxQVGypKQRsLoJm7b8HVhQFe9CDUVqCPz8fW1ISakwsPosT0zz2fg80xcTmL8efmwuGgSMtDd1Tji8vH0daGprVgjcnB8VixZ6USLDMjb+wEFdGPVDAszMba3Q0ttgYAqVlBMvKcNZLB12nfMdObIkJWKOi8BUUoHu8RNXPxAgE8OUXYE9MDO0/NxfTNHGlpRF0l+PLy6M8MwO7puLZkYXqdGJPTCBQUoK/sAhng/oopolnx06ssbHY4mIJlJQQdLtx1auH4ffjycrGnpSIxeXCm5eH6Q/gysxA93jx5uRgT0/FYrPjKygEVcWeEE+wrAxffgHOjAwUTcWXm4vmdGGNjSFQXIy/qBhX/fpgmpTv3Ik1Pg5bdDT+gkIC5eVENaiPEQjgzcnFkZSEZrfhKyjADARxpKejezz48vNxpKaiWS14srJRLBqOlJSKci3CmVEPRVMJlpej2uxoVgvBwlKKNpdjT03FFgxWlGs81qhofAUFBMs9RDWojxkM4isoxJYQj2qx4svLw9CDuDLqYfgDBN3laC4XptOFX7UBYDOCqF43uteLJSYadB3Pjp1YYmOxx4TOO1BWhqt+JgSDeHZmhcrV6cSXn0/Q5ycqMwPd68WbnYMjLRXNbsebmwsoOFJTCbrd+Pb4rigK2Pzl6EWFBIqKcDUIlas3OwfN4cCamIjfHoVugN30o3jc+LKyscbEYElIIGiNrtsvjhDimKeYx2KtfQxbtmwZF110EdOmTaNJkybh5f/6179o2bIljz766AHvU9cNCgrcB50ni0UlISGKwkI3weARuMs+BlSWSVGRGwVQgIBuRjwI10TTFBxmOfjLQ4ECqwufad+vbY9GFouKXzdRNRVDN7CqCrp+5K8TVVWw40XTfaCoGDYXatALRhCsLkw9AEEvimYloDrRFVvoTaJpYtNLIehDsdgIWqIwFAtgEgxW/UwtltCD057fBasFLLoXFBXd4sSmu7FYFALYMIN+VN0PigXDakcNlINpYlpdoPtRdD9oNkzVghLwACamPRqCARR0DDR8igtFAdMkXL4W1cDhL6Bo1hR8O9eReu4tlK2ei3vFr8R2PwNLbDJFf36B5owhcfDlFMyeQiB3G6nn307pkp8pX7cQR+P2xHYZRuGsyQRLC0Npi3+k/J+FRLXpjat5Vwp/nQpA8uk3kP/juwTyt4dOWlGJ7jCYmH6XYpbmkfvFs+juYlLPuQX3P3/hXvknrlbdiWrRjbwZ74JpkHr+HRTP+x/ezSuI6TwUa1ImhbM/QrFYST33Ngp//wzfttXh/Ued1J+4gZfj1m0H/B2xW3TYupT8HyZiBv3EdBmGs3E7Shb9iF5eQtIpV+HP3Yr779+IatMbW1oTShb8QFTbPng2raBsyc+AieqIIqbbGUS36omhaKhWK/7szfh2riO6dS+K/vic8n8WgGlgS2tMwtBrCURnoGJgM8rxbV8Dpom9QVtM1YJhGBiqFb9pQ1WVg/p9TUmJOaCyEIdXXdWzqqpg9xSz/uVXKVv7T2iZ3U7mhcNJGDgYb8XD7OGgaQrWknz+eX4cnq3bAFCsVjIvOJ/EIafgVQ7t2LV17+HSPWx45VVK/l5JvbPOxBofx9apn2AGgwCoNhtNbrweR4dOBGrxXbCigNNfxtqnn6N88+Zd+WnUiJb33oXHFs2B3mHX5f2YVdEJrlvLPy++jKIotLrrDrZ89DFl/6wj/YzTsSclsuWjj7HGxtD8ljFsfOv/8GzfQaMrL8dfUMDO76fhzMyg8dVXsn7CRPwFhbS4dQwF8xeQ/+cc4tq3I/20U1k3YSKGz0+rO28na8ZPFC1aTHL/fsS2bc2mdyeh2my0HHsbm97/gPJNm8k8/1xUm41tn32BLSmRZqNuZP2EN/Dl5NDkun9TvmkL2T/9jKthQxpdPoL1r0/EX1RMy9tvJe+33ymY/xfxnTuRMnAAG954C1PXaXX3WLZ9/iWlq1aTMnAAMa1bsem9Sah2Oy3vuJWN//cenq1bqX/hcFAUtn/5NfaUFJpe92/WTXgDf14ezW66gZLVa8idNZvoFs2pP/w81r32OkF3Oa3G3kbu7F8pmL+AhO7dSOrdi41v/R+madLqrjvY9unnlK5eQ/rpw7CnpLBlylQs0dG0uO1mNr79Dp5t20kdcjLRLZqz9aOpaFFRNL3236x//U18ubk0v2UMRYsXk/fbH8Se1JZ6Z5weKlevl5Z3VB77L5L69Ca+Ywc2vvMeVBx75/fTKFq8JPy5x57Ulqa33AyYbJr4JkWLl9D4mqvwZmWRNf1HXA3q0+jyy1g34XUCRcW0uO1mCubNJ//PucR17EDakJNZP/FNzGCQVneNZfuXX1OyciUpgwYS07JFRbnaaHnHbWx674PI70rjRrS6/z50j4c1jz+JLzeXJteNpHzzFrJ//InKL5AWFUWre+/ClpbOlnfepWDuvF3XbUI8rR+8n5hmTSkqKj/g743UtUIIkJZiR1xWVhYA9erVi1iempoaTjsYlQ/yB0PT1Ij/AlhUE2uwDNPnRrHYMKxR+BX7Ad/g7Q9FUbCZXlR/GaYeQHXFYeoBTF85isWObnUROEzHrommqQTdxdiKtlG6ZAZm0E9Uu0FYUpviVVw1bmclgJm9htwZb6OXFgBgr9eMpDPH4LUn7fUcbEoALeDG8Jah2ByYtmj8iuOInveegib8tSaXqT+uJbfIQ72kKC4/vTVtGiVgqaWGAjYliBYow/CXo9qc6JYo/EQ+bFkUA61kKwUz3iZQsJPUc2+jfMNiypbPJqbDYGypjSj8/TP00nxiOg4huv0A9K2rsaY1JlCwk5w/Psfwukk8+QqsiemUr/oTBZXYHmeBqqKXl2KJScQM+vGsWwZWO3FNOmIaQQzDQNMslCz8idL1i0gcfDlm/g5yFnyPq1kXnI1OovC3TzD8HlLOGh0KOK39i4QBl6KoKsXz/ocWnUDi4BEVAaE1JA65qiLtW4Kl+SSefAXOzJZ4t61BszuJatQeTAPTW86ODx4EPUjymaMomPkB/pzN2DNbYolOJH/62wCknHEjOV+9iOErJ7bb6ZQt/5XydQtBsxDf61yyPn0a9CAJA/9F8dxv8G75G9UZQ3S7/mR/+ixgknLOLeR+NyF83QI4m3XC1awTqr+MHR89ihnwEtW2H56tq3Cv/ANUC7Gdh5L18VNgGsT1Pp+SBT/g3bwC1RGNq2knsj9/DoDEQZdR8Mtk/NkbQztXVOJ6nYuzYRt86+Zhj03BllwfI+jHDIZ+B9CDGD43is2JolkwfB4wDTS7C93nBl+Anf97JZTXpp2wJtYj54sXAEi76F7yp71JoGAnUW37Ygb8ZE15FHtGc4JFuZQt+QkALTqBlLPGUDTnS0rm/4+04XeR/cMbBItzSLvgLrI/eyaiTPzZm8ie/BCZ172Ie81c8mZPBUzi+15AQFUoWTSdQGEW1qQGxA/8F0pC/dBxNBmtQBw4u7+cVQ//F39eXniZ4fOxdfJHWKKjcfbqR/AwtVC0+dz8/Z9HCJaUhJeZgQDbpn6CNTEBR/e+dfKCZHd2M8CmiW9Q8vdKLDExxLZtzZpnX4hYx/D7Wf/KeNo//wxKQlqt1ak23ce6l16JeMgHKN+8mXUvvUKTsXfiO4xBy9qmuUv4+5nnwDDIvOB8tn/9P8r+WYclOpq49iex5pnnAah/0YVsfOsdPNt34KyfieZ0svPb7wFoeOnF/PPyeIIlJcR36kj51m3k/zkHgMzzz2XVk89gBoOkDhlM/rz5FC1ajGK1kjKwP6ueeBpMk/oXDmfrx59Svmkz1vh4opo0Zu24lwFocMlFrJ8wEV9OLlFNmmAG9VDwBGj4r4tZ+9LL6O5yEnt0o3TNWgrm/wWKQsbZZ7LqiacxdZ16Z55O9o8/U7pqNardTnL/vuFjN/zXJWye9CGerVuxJSXizMzgn5fHh4+9bvwE/AWFxLRqSaC0lNxfZoXSLrqQNc+Pw/D5SOrTm+LlKyiYvwBUlXqnD2Pl40+FyvX8c8n6fhqlq9egRbmI69CBNc88V1Guw9n0znt4tm3HGh9PQtfO4Wu5ybUj+eeV1wgUFRHXvh3enTvJ++2PULkOP4/VTz+HGQiQMnAAhYuXUDD/LxSLhdQhJ7Pqid2OPW1GREAMoOTvlbhXrWLn99MoW7sWV6OGKBaNrB+mh87t0otZ+9Ir6G43CV274N64ifw/54bK9ZyzWf1U6DNNP20YOb/MomTlSlSbjeR+fcLl2uCSi9jy0cdVvyubNuPZuJENb72NPy+f6ObNMPx+smf8GLGe7naTPX0G9uTkiIAYQKCwiFUP/5eOLz4P1prvz4UQYm8kKHaEeTweAGy2yBslu91OcXHxQe2zsiXCoYqNdQKgl5dQsvhH8v74HDPgC+UvoyUp596CLbHe3nZxUPz528n56iX8WRtIGvpvgsW5lCyajhkMjbFmr9+G1HNuxpqQVuvHrknQXUz+T+/hXvFreFn5mvnY6jUn/aK7scQkVbudd+sqdnz+bMQy3871ZE3+D5n/fg5rQmr1xystpGDmJMpW/AaE7tht9ZqRdv7YI3reu/P4gnzy0xo+m7kuvGxnvpvnPlzIyHNO4sy+TbBaDr7bG0CwtICCmR9Q9vfvYIYerpzNu5By+g1YYpPD6/myN7L9w4fANEgaeg1Fc77Ct30N1uQG2NKbkvfdBABiOg7BEp/Czg8fxtm0Exg6hb99AkDSKVfj3bqagp/fR7E5STv/DvJnvI1v2xqShv4b99KfKfv7N1RHFKnn3Ub+9Lfwbl1F2kX3sOOrFzE8ZSSefAUlC6fh2bAEa0oDHJktyPnqRQBSh48l77uJBEtycTXvihn0U/j7p6CopJx9M9lfPI/p9xDdfiDBkjxK/voulK/TrsO7aQUFP7+P6ool9ZxbyP9+AvbMlvh2rAM9iOqKRdEs+HNCN5SxnU+hYNZHANgzWuDd8Q+GrzxUfk06kv1Z6BqMatmDspV/gB5qMWFPb0Lh7NB2MR0GUfLXD4CJ6owG04wI/sT3vwgFhaJ53xDVogdmwBvaZ+te5H4TCkS5mnXCvWZ++LNzNGhN8ZwvAYg+qS8lS38O7UzVsMSl7AqIAcmnX49n0wqyPv4SLSaRlDNHk/vNy/i2ryVh0GWYfg/Ff32PJT6FpJOvIH/mBwQLs0m74E5yp72BJT4VRd11/cV2HkrO/14N5aNRO7zb1hAo2Bk61/YDyfrk6VC+2g+iaM5X4e2ShlxFXkUQLLbraZQsmkawOAdrSgMCRTkRZVJJdUQRLNhOUUVZRrXpA4pK7rev7bpmt60ie/JDpJxzC2bbfuHfVyH2l6Io+HZsjwiI7W7bx5/SpnNngpbafxBUVQXPxo0RAbHdbZ/6Ka07dEK31O11rXjd4Yf85P79yP7x5xrX3fnNt6Rf/W/8tdT1U/GUU7ZmbbVpZWvWonjcEHVsBMWsVo3cmb+AEfotj23dmu2fh37Lk/v1IefnX0Irqiq2xEQ820OtiVMHDyJr2ozQPuLi0D3e8DWTMrB/qIUSEN28GaVr/wm33kvs3o01z4fqzsRuXcmfMzfcKiiqSRO2TAm1Xk4Z0I/sn2aGDm2zoTmd+HJyQ8c+eSA7vw8FbmzJyfgLi9Dd5RV57sf6198InUub1hSv+BtT1wGI69iB1U9XvKzp0Z28334PH9uZmYl7Q6ieShk0kKwZFS9PXC4UVcFfUFhx7EFs/eSzim0y8OzYgeEL3S8n9+3DP6+EAmlx7dtRuGjJrnJt24btX30TWq9P73BQDSXUtbB8y9bw/nd+9wMAlpgYzGCAQFFRKF+DB7LpvQ8qyqox7vUbMAOB0Pn06hEOICZ06UTBvPm7jn1S2/CxI6gqligXZWvX7vpMKwJitsREgiWl6O5QK9nkAf3Y8GboZVxMyxaUrl4d/kzjO3di9TOV5dqNvN//DJerq1FDNn8wueqhHQ6MgB9/Xn7FeQ+uPo9AUq+erBv/erVpwbIyyjdvRm3Rttp0IYTYFwmKHWEOhwMIjS1W+f8APp8Pp/Pgbi4Nw6SkpPyg86RpKrGxTkpKQt26jLV/UjhrSsQ6vh1r2Tn5EVIvewyvcugBuEpOs4zsDx9CLyvC2aQjuqeE4vn/izz2tlXs/Oi/pFz6yF5badUWRQFr4ZaIgFgl/851lP79B1rbU6qMH2TDT9HPH1a7T8NThnv9EtQW/au8WbeqBp4/P6Vsj+P5d64n6+MnSL74P0fkvPdUHjD4Ytb6atMmT1tNz7bpOA6huZhNCVI2+4Mq5exZt4icb14l/sxb8WHHpgQomTUFTAPF6sASmxzqrkYoEFIZhEHViGrdk6yPnwQgpsNg8n4I3RRr0fGozhjca+YCENfjLIrmfo1v2xos8WkoFgtlf/8GQEL/iymYPRX/zvVEdxhM6dKZGJ4yFKsda2I9CmaGbkZjuwyj8I8vALAm1kMvKyRYErpZj24/iNyKQJ2zSQfK1y/C9IcC4lFt+pD9WejG0ZpcH3Qd9+rQm/TEgZeS//P7BHK3EtvtdIrnfB0qq6T6oQBZBcXmRC8rrDh2Bv7sTeE0Uw+Gg1TWxHqhFmOAYrWjl+96wLUmZVK6NPSgo0XFEyzO3fXZpDVBc8aQP+MdnE07ESzavRWrGQ5Ya9EJBItydqUEA+H/12KS8GxaEfpo7C50d2E4zV6vWeg7sfL30HkPvpy8HyYSLM7FntkKRVEo/DNUtomDLiPn65cxvG5iu51OyeKf8O34B3tmS/xZG3Yd2zQrxkwDV9NOlFYE5LSoOILFeeEy0aLi0EvyKvIfj6n7CRaHzsHZuD3ZFS3NbCmN8G1bQ3WiWveidOnM8N/R7QaQ/cXz1a6bP+P/cDQ6CQ9RB9SqpjZedIhjm6YplG3cVGN6oKgIAsHDcienaSqlGzbUmO4vKAgF2+v4LtLweMP/b4uPo3jZshrX9e7cGcqzYq2VY+sVLzn3mh6VUCvHOtwUQ8e7bXv4b2O333JrXBwlq0Jd3jW7nWBZ6a60+Dh8ubm7/n+3AK7qcBAsLQvvo3I9ANMwwsEUa3wcnu07qj92fDy+nAWhYzudBHZ7eWyNiw/v05YQH7F/xWoJfz675xEIHbciUGRLSKC0IhiEomDsNuGVLSEBX06obrBER4UDYhAKVPnzC6rkI3TiSjhAZktIiEgzgsFwoMgaH0/ZutB3TLVaCbp3dc92pKeHW8BZ42LxVQSNKsuhMvBojY/Hl7tb0Nw0wwEya/wexw4EqK6ZpCXKFXFu1vi4cOCxymdqs4UDj6HPZrdy1XeVqzU+HveGTZHHroYlykWgsGjXsfe4TnanaBqG11ttGoBnZxYxrU6qMV0IIfZG+nMcYZXdJnNyciKW5+TkkJZ28C2CgkHjoP9VPqjpuoHFX0rx759Wewy9JA+9YDu6bh7S8Sr/GYZJIGcTelkRANHtB1KyYFr151eYhVGcja4f+nH39U/FoGxR9fkAKF00A83vrrKdYvjxZ9f8EOHbtBzTrFp2mr8s/AC/p0D+dszywsN+ztX9Kyjx1jjGk9evU+L2H1o5B8pw//179fvfvALFXxYq16AP75ZVAFjiU/HlbAqvp8UkhlsDOeq3xrNxtwciVd3Veqpp53DgCcCe0Rzv5lDAJrptH0qXzarYxoIlLhX/zlAw0Nm4PeVr/wJCASzv9n92HTsqnmBh6Ni21EZ4dw+gKEo4CGZLboBvR+V2CmbAHxoHDYhu24/SZaHgimK1ozpjCOSG3hSbwQCK1Q6A4feguWJ2270KauhpVC8vjmhVp2gWUNSKtJJwmhnwozp2DUYbSgu1eNTLCrHE72rFGNNpCMXzvgUgWJyLNak+u6vMV7AoG1tKg13LLVZCI/BBsCgHa3JmKP8+D1pUfHi96HYDKFkc6h6humLBNMJBuZhOJ1Nc0YrOltoIf+5WDG/oYcHZuENobC9Cvwm21Ea7jq3WVJ1FBm6Dhdnh7SxxafhztoTTTNMIB88MXzlqVFy1e1QdUeGgJKoWalFb0RpvT4bXjeEuOeDfLiEMw8SRUXPrbC3KBZbDE5XSdQNXw4Y1plvj4kCr+/eqmssFFd99b1Y2rkaNalw3umULTEvtBMQALNHRNU+Bpyih9GOEqWrEtGkd/lu1WFC0UEtcb1Y2UY1D5ap7vaHPvoJ3Z1Y4zZeXj3O36zVQVIw9NSW8j4jPxgyNjbfnPiAUIAp/pjt34qpIC5aVYUva1Urfm7XbsXNycdbPDKfpbje2xITw/iOOraioFb01vDnZuBpU1GGmieqwR+y/8jsQKCrGvts9ui8nF2fFdt6c7IjviuHzhwapr9xHo11piqbtKtfdzs3w+7HE7KrjA0VF2FNDdbK/oBBHeno4LfR32q5za7zb99Q00ZyOXfvf7diqxVrt9ap7vFjjIz/Tynz5cvNwZu4q12BpGbakxCr5D52cEvGZ7p6m2mzVHjtQXBK+RgC82dk1/u7onshrb0/RTRpjGFJ3CiEOjgTFjrDWrVsTHR3NvHm7+sSXlJSwcuVKunfvXoc5C1GMILq7qMZ0f/am8Exrh0rT1HDwAQiNXeYtq3H9QN5W1BoffGuXEfDXmGYGfVR2cYxYjhoRnNiTJSmz2rFMzIC3xgdqgGBxHqp65Gf6sln33jXSegjj2AGYFeND1UR3h94Im6hoFcEJ0+dBq5gtEcDUAyi2UAtLxWoPB8EAFHVXcEjRLOHWTRDZokm1R4VbUGnOaIKlu97IYhpQ0UXPDPpRbbtad4IZfig0fOVorl35qrzpDaW50aLjw9souz1IqnbXrmO74iJaa5WvmU90u/4A+LM3Ys9oHj6f8nWLiGrdCwDPpuW4mnUJp3k2LiWqVU8A3KvmEN1+YPjYoW6BoRvOsuWziek8NJRHrxtME0ts6OY01HIsFLgP5G/HmpgeDqi5V80hpuPJFcdegbNpJxRLxQPG5hW4WnYL7X/lH8R0OBlQwAgSLC3AWhFAU50x4aCSJTaJQP6uVgKqfVfAyZKQRiBv624fhx6+ZsrXL8bVonv42EbAFwqwAZ6Ny3C17AGA7i7CEpccLp+SJT8R1/Ps0DaeErTdvrN6WSHWxIyKc1uGq3kXqhPI24a9YUU3DTPyM63WEfrdEscXwzBxNm6MFlV9q8F6Z52F7jg8rYgNw8TVvHmNx8686AKC9rofv0d3uEju2weAvD/+JPXkwdV+3xSLhbTTTiOg196xDYeLpL69q01L6tsb4zB9NodDIKCT0Lt3OKBS8NdCkgf0AyB/zlxSBg4I1WumiXvTZmLbhVrkZP88k3pnngGEAlFGMIij4uVv9o8/kXHuOQB4tm/HkZaGNS70G533xx+kDwvVP0XLlhPfuVM4UFW0ZCnJfUL1W97vf5A2dAioKqau492ZRUyrlhX7/5mMc0K/5YHiYlSLBVty6Pc8+6eZ4TT3xk1ENWoUDlLm/zkntE+gcMEikvr2RqkILpf8vZLEHqE6LHfWr6SfNizcgixQWEhUxQRZ2T/+ROb5oXPz5+VjiXKFg0U5v8yi3hmnA1C6eg0xrVqhVfQEKZi/gJRBA0L5mDuflAH9wsd2r99AXIf2oX3M/IX0004NlWt5OYbPFw6QZ8/4iYzzzgVCQTd7UhLW+PhQnn/7nbShoXItXvE38R07hANVxX//TULXqnWaGQxiBPVw8Cv755lknHMWAMHSUsAMBwSzf9pV5uVbtuLMzAgH8/J+2/WZFi5eQmKPbuHPtHj5ChJ7Vn3GMYNBTNMkukXzXZ/puWdXWQ9C12H9Sy6sNs2Rno4jI6NOx+AVQhzb5E79CLPZbFx++eU8//zz/Pzzz6xevZrbb7+d9PR0Tj311LrOHqaqoezlRteaWK/WZlE0DANL0q43UKHucfYa17fEpx2RGRyDhkJUuwE1prta9SaoVe3q6lNcxPa5oPqNFBVX234EqrkjV6yOvb5xt8QlH/GZK1VVITbKRmKso9r0+qnRuByH1kpAsTnYsxXP7ipbRvk1F7E9QzefwZJcLHEp4UCIe9WfxHQYFFovZxP2+rvedHs2LcPVoisA3m1rcDbtHE5TrbbwsX3Zm3BUbGf4ysMBOAgFn6LbhB56ArnbsNdrGt6u/J+FRLcOpXk2r8TVbNf+fdv/wdGoXSiPa+YRfVL/cJrhLUWLSazI8+bwsXVPacRYde5//iKqZQ+syaFAUsmiH0kedi0oKmV//0Z0u/7Y0puAoVO65GeST7sOxWKjZPGPRJ/UD1fL7hheN96tq0kYeCmoGkV/fE7SkKtC42Xlb8fUgxWBMYWCWVNIPuNGbGlNMP2R5VDwyxRSz70Va1Im7tVzsddrHg62Ff7+Gann3oolPo2SBdOI6TAYV8vumH4vZX//RvKZN6K6Yin87ROShlyNLb1pKKhUr1novN3FWOJ2vSk2g35UR+hBXC8tjEgDM/R9ATANiv4IHduaWI+Sv74j6ZSrQdXwbFqOo2FbLPGhG/myFb8R33d46BoqzMK3MzR+oe51Y02sF/7dKVk4nfh+F4Y+Yz1I+Zp5JA6+nCrXqWYhptPQUF5MA1MPhsZlq4YlLjUiYCrEgfDZo2n734exJSbuWqgoJA8aRNKQIbUa5Kn+2I9gT9ntO6iqpJ9zFnE9ex22Af4PhB8L9a+4nOSBAzACAbKnT6flbTeHgyMA9rQ02jzyEIFa/h76sNDgyitJOXlw+EWIommknDyYBldeia+u+5YeIL8jhrb/fRRng/pk//QzCZ07kXrKEEzDYOd3P9Ditluwp6aw7dPPyTz3bBJ79SBQXELhosU0u+l6rHFxbJ40mabXjyS2bVvcGzYSKCqi4eUj0KKi2PT+JFrcdgvRzZuRP2cezgb1ST99GIqqsnXqJ7QcezvO+plk/TCdpN69SD15MEYgSPaMn2hx6xjsKSlsnfoJ9S++kMQe3fHl51OyciVNr78Wa1wsmyZ9SPMxNxHTqiWlq9dgBAI0uPRiNJeLTZM+pOUdtxLVtAl5v/9BVJPG1DvrDBRVZfuXX9Py9luxp6Sw45tvSRk8mJSB/dE9HvL++IPmo2/EmhDP5skf0eiKESR07YJnx07cGzfRZOQ1WGJi2PjuJJrfPJqY1q0oXroMS3Q0mcPPQ7Xb2TLlI1recRvOBg3ImfkLcR3ak3pKKCi3/atvaHnHrTjS09n22RfUO+sMEnv1xJuTS6CwiMzzz0XRNDZ/MJmm119LbNs2lG/ejC83l0ZXXo4lOppN702ixW03E92yBQXz/sLZIJP004ahaBpbPvqYlmNvC5Xr99NIG3pKlcBYXIf2RLVoQasH7sXZoAH+vHyKl6+g6Q2hct086UOa3XQ9sW3bUrb2Hwyfjwb/ugTN5WLz+x/S8vZbiGrWlPw/5+DMzKTe2WeiWixs++QzWo69DUdGPXZ++z0pAweQMrB/5HdlyMk4mzWn+Z1jSejRHW9WFu6NG2l8zVURLS2jmjSmwWUjiOnek4ZXXh4O3gLEtm9H64cfxJ6UiBBCHCzFNCWufqTpus64ceP44osv8Hq9dO/enYceeoj69evve+Nq91d7U8UrmOhLv6X4j6pdKFVHFGlXPUuZWXtj3UQrbrLeHYvp9xLVujeqK5bSRdOrHtsVS9qVT1NmHJk3rzGah9xPn4xopQKhFi7pVz5FqVn9A7BL81M+/0tKF06jsjWZYrGRfN4d6CktCehV49B2i4lv7tRqz9uaXJ/ECx+k3Kg+OHU46Chs2FnC4jU59GxXj2cm/YXXv+vJK9pp5Ykb+xDntBxSsM6hBSn7cSKedQuqpNnSm5Jw3j2UG6FgRZTmo+SX9yhfPQdHw7bEdB4aGtTcMEgbPpbiihkPU84aQ9G8bwjkbkGx2kkbficFs6bgz95I6vCxFM6eSiB/O3G9ziWQvz3UFU+zkH7xfWR/+gxm0E/ymTdR9McXBIuyQQ2l5X7/OnpJHlFt+2FPb0LBzA9QNCtpF94VmlExZzPRHQZjS65PwcwPUR0uUs+7g7zpbxEszCKu17koqkrRn19hTcog8eTLyfn6ZTBN0i64Kzw7ZMrZN1Mwawp6RWs11RlN0tB/Ywb9eLesxN6gLY4GrfFu/hvdW46rZTdMrxtf9kasyQ2xxiTiL8zCDPqxpTUOvQH2uVGdMSgK+PN2oGga1oR0DF85enkJ1rhUwMSXvQnVEY01MR0w8ayZFx4/DcASl0Jcz7OxxKWiumJRXQmYegDD6w4FsVQNM+BBRQFHFGbAX3Hs0IOo4S0DTUOzuUKzy5YXs/PDh4FQGeR+/zqGpwxns87YUhpSPDc0nlr6JQ+Q9dkzoAdxteqJNT6N4nm7BuK1JtYjttsZWBProcYmo5gmpUt+IliST3yvc/FuX0PZitlEnzQQW2oDiud/R7Akj6h2g4hq2S00to2nhOzPnsHwuolq24+o1j0pnvsNvh3riO40hNhOp+DL3oTh92Bv2A7DHocfO05/DgXT3gJMYrufQe7/xoOx67uiWGykjXgEV4NWFBa6D6hbpEwTf3SpzXr2QLvHqqqCzV+OUVyEXl6OLTkZ3eHCX0tjY+2NpilYfeWYZaUYfh+WuPjQsc1Dm2QFDq1M9mRDR/O60cvLscbFYpqhFjYoCorLRcB2YGP6HdCxFR3NW47u9aI5HIdUPrVZJgdDVRVsAS943Ji6jiU2FiMQCJVrTDQmCnq5GxQVLcqF6Q+gez1YokPd4HW3G8VmQ7XbMH1+dL8Pa2wcZlBHL3ejOuwoVhuG14sZCGCJi8XwB9DL3WhRUSiqiuHxYhoGlpgYjIAfw+PFFh+LoRsE3eWgqmguF6bfh+H1hQaiN0LHVm02FLsdw+vF8PtDx9aD6OXlqE4HisUS2n8wiCU2FjMQQPd40KKjACU0oLxpYomNwQgEMDzeUJoZagmHpmFxuTD8fgyfD0tsDKZecWy7HcVmw/B5Mf2B0P6DQYJud2igfk3D8HgwdB1rbCxGwI9e7gl3ww1dr2CJigqVideDJSoaDB1fdg6q04EtPiHUkyEQQIuJwdB1dHf5rmNXlmtMzK5jR1Ue24tpmliiXBg+P8FyN5rThemMwq9aQzPBBzyY7lKCpaXYU1LD+VKs1tCg+L7dyjUYJFhejrb7ZxoM7CrXcg9qVBRK5bmZJlpMDKbfHypzpzPiu2IjiOotx/Tt+kyDbjeqxQJOF36LA8MwsaomFl956DO1WTEdURg2O/HxB/e9kbpWCAESFDsu1PbNepTmo/S3KbhXzA6vo8UkknrhvZTba7e1lqYqODw7yP3sGfTyElLPvZWylX9Qvnb+rnVik0m96D48tpQjNv271aoSrXopWTqT0iU/gR7A1aoXMd3Pxq3E7LUM7GoAm1GOP3crqs2BFl8Pr+IkaNTcMDNa81Ly25TQGFsV3cPs9ZqRdM7tlBHDkfqa6ii88ukSlq8PBWVaNIjnX6e2Ymt2KTmFHlo2jKd1owTsqlIr10GM5qHg+9fC43tBKCCWfN5YyszoiPN2an40bzHeLSuwxKdjT87Es30telkhUc27YOpBfDlbcGQ0p3TJT5Qu+RlFVUk+40a06AQCRTnY6zXD/ffvlP79K8mnjqR02S+Ur5mPvV4zEvpfRNGfXxEoyiblzFHkz3ibQMFOtJhEkk+7Dn/edjzrFuFs2Q1no3aUrfwDw1NGbNdhGN5yPFtXYc9ogTUuGe/mlRiGjqtJe4JlhfiyNuGo3wLNEY13+z8odieOlIZ4tq7C8JXjyGhOwc8foLuLSD79evKmv02wcNfg9tGdhhA34DI8upVAQEfTVBSF8PdBVVVM08QwzIphO5RqrxmlYkyPyjRF2TXurqoqmOautCjNR9nczylb/COVAV4tKo6UC+7F68pAr+bzP5AHOpsaRCvYSMGMt1GsNpJOvoLc7yeilxaSctZoyjcswb3yDxyNTiK281Dypr2F4S0jadi1u2ao9XtBUYlq04e4gZdRqodacFqtCqoZxMCCiYLV8GICQdWBRgDFCGKoNvzBUHloKjhNN3pJDoanDFtKQ7DaQwEzFHyKC7Oitdjuv0GqqmDHh6Z7UTQVxQhStvxXArmbsWW0xNWmD35LLLHx0RIUO8bVZVDseCVlUpWUSVVSJpGkPKo6lDKRulYIARIUOy4cjpt1hxrAopejl+Sh2l3giseD67B041NVBSduKC/C8HmwJqRj6gGCJfmhFijOuMN27JpUlklJiRvN7wZMgpoz/BC9P0IBCHO/xziwa0GswXJMXxmK1YFujcZr2o9YQEzTFJZvKuL5yQurpDVKj+Hf57SjZWYsHk/1swgdLKfqRwu6McpLUJ3RGNZoPKajxvPWtIpB5HUDTVNCbyF1A9MMnYNpgkU1sRrloZaP2PCaNlQ1NDGSRTOx6qGZVhWLDSXgxvR5UBzRoFkh6AdNQwFMbxl6eQlaTBKGIzY046iiEjA0bDYLMTEOiovLCQSM8LFD+QoFrYJBA0UJ5dkwQkGr0Jh8Sni9ymCU1fSg6b6KcVtCLasMbyladBK6JQqPcfhbhezJrgWx6uXoxbmodic44/EoLmoay/ZAb0w1TcVuulEC3tBnoYJRXoLhLceakAaGTqA4Dy0qvmLWqxKMgBdrYgamoWP4vSgWO0EtCm81rTAPlKKEvreH8ltjtaqomBioBAL6Qd+sy4360UWCYrVPyqQqKZOqpEwiSXlUJUExIcShOrYGPBBHjNewghKHEh8XCuoYUN3g8rXBMEzcuMDhAgd4DEABJT7+sB97X3QdfGbF+GE1j4VfrQMNZvl0Cz4lFhwV454c4fPWTZg2Z1O1aZuzSvng+1Xcf2W3Wj+ux7CBaoPoiqnr93Heu7fU0XUzYl29YowbvwF+du9qa6JX9GoLBCFAxWcaAIgDe1xoN0EAO1T2gLO6UOJTQ9dhxNwLJsFgaCXDMCtmFd09H7vyaJpE3KTtnmddN8L5CmIDbLuObXOBLXW3MjnyfLoFH7FQMTgykcV9yHTdoBwnaM7QfnXAHoVS+TsAUDnblAE4Y8AJnsrvoqWiG3Mtjau0e0u5gxUIVGb8MA72JIQQQgghhKgVMtC+2Ku6bEcobRiPLNOE4F6msw7qBmYdBSfrklyHR56UuRDieKdqKn4TPEETHSXcCloIIYQQR5a0FBNCAGDVFAZ3acDqTYXVpp/crQF2q4rfJy1ghBBCiIOhKBBEYcqMtcxatI2gbnBGn8YM69UYXTdwBwzsFhVFqX5sSCGEEELULgmKCSGAUBe/Lq1SqJ8azbacsoi0tEQX/TpmYOhygy6EEEIcrCAKT773Fxt3lgAw8pyTKCjxcferv+ELhF46tW6UwK2XdMZpqZ1JbYQQQghRM2mrLYQIswAPjezJlWe0ITMlmnrJUVw2rBWP39CblATXPrcXQgghRPUUBbILPeGAWPtmyXh9Ol/OWhcOiAGs3lzII2/PxS/jqAshhBCHnbQUE0KEmaaJBRjSJZN+7euBAg6LxM6FEEKIQ6VpKis35of/HtK9Ae/87+9q180uKCeroJwGSS7pRimEEEIcRvK0K4SoQg8aWJRQ1Fym/BZCCCEOnWlCUqwj/LfDZqHE7a9x/U07i1FV5UhkTQghhDhhSVBMCCGEEEKIw0zXDdo2ScKihQJdQcPAaa+500ZGcrS0EhNCCCEOMwmKCSGEEEIIcQQ4LAr3X90Di6by+5LtnNK9YbXrxbisNEiLloH2hRBCiMNMxhQTQgghxFHL5/Px9NNPM23aNLxeLyeffDIPPPAAiYmJNW7z+uuv89JLL1VZvmbNmsOYUyH2zTRMmqRFM/7OQazZUkhGSjTFbh+/Lt4eXicpzsF/rumJXZXZJ4UQQojDTYJiQgghhDhqPfLIIyxYsIBXX30Vm83Gww8/zC233MKHH35Y4zZr1qzh3HPP5a677jqCORVi/5iGiU2Bjk0SUVWFq05vzSWntCSvyENMlI0YpxWbCrouATEhhBDicJOgmBBCCCGOStnZ2Xz11VdMnDiRbt26ATBu3DhOO+00Fi9eTOfOnavdbu3atVx88cWkpKQcyewKcUAMw8QwTBTAqSk0SYsmISGKwkK3THIjhBBCHCEyppgQQgghjkoLFy4EoFevXuFlTZo0IS0tjb/++qvabfx+P5s2baJp06ZHJI9CCCGEEOLYJUExIYQQQhyVsrOzSUhIwG63RyxPTU0lKyur2m3WrVuHrutMnz6dYcOGMWjQIO666y5ycnKORJaFEEIIIcQxRLpPCiGEEKJObNu2jSFDhtSYfuutt2Kz2aost9vt+Hy+ardZu3YtAE6nk5dffpn8/HzGjRvHlVdeyVdffYXD4TiovFosB/8eUdPUiP8eTRRFwa96KQu6Kfd7iHfE4FCdaLr1sB73aC6TunIkykRRQAv6UTzlmIEAqsuF7oxGP0oH9JfrJJKUR1VSJkKIQyVBMSGEEELUibS0NL7//vsa02fPno3f76+y3Ofz4XQ6q93mvPPOY8CAARGzU7Zo0YIBAwYwc+ZMzjjjjAPOp6oqJCREHfB2e4qNrT7PdWlHaTbP/TaR7aW7Wt71qt+Fa7pcTIIz7oD2ZRoGht+ParWiaNp+bXM0lkldO5xl4tmZxbrXXqdk+QoArHFxNL7mKhK7d8USHX3Yjnuo5DqJJOVRlZSJEOJgSVBMCCGEEHXCarXSrFmzGtPXrFlDUVERfr8/osVYTk4OaWlpNW63e0AMQt0t4+Pja+xyuS+GYVJSUn5Q20KoBUNsrJOSEg+6fvQMoO7XvDzx66vkuvMjls/dtogYWxQXtToHU1f2uR8NE81dTO7sXylbsxZn/UzSTj0VIzYeXak+OHa0lkldOtxlYvO5WfngQ/jzdn3egeJidn73Pdb6GVjr1ScQOLo+C7lOIkl5VHUoZVIbLzuEEMc+CYoJIYQQ4qjUtWtXDMNg4cKF9O7dG4CNGzeSnZ1N9+7dq93mxRdfZNq0aUybNg1FCQV0tm3bRmFhIc2bNz/ovNTGbIC6bhxVswrm+wuqBMQq/bJpDme2OAVrcO+tLzRNwczezrKHHsGoaNVXvHQZWT9Mp+VdY9FatkU3aw6sHW1lcjQ4HGWiqgrlmzZFBMScmZkk3fxvlnu28sPOGaSWJHFyk35EKTEQPLq6osl1EknKoyopEyHEwTq6ajwhhBBCiAppaWmceeaZPPjgg8ybN49ly5Zxxx130KNHDzp16gSEZpvMzc0Nd7McOnQo27dv55FHHmHjxo389ddf3HzzzXTp0oX+/fvX4dkcXVRVIa+8oMb0oBHEp1fturonq9/DupdeDgfEwgyD9a+8is1/8C3sRO3RNJWyVavDf1tiY4m/41r+u/pDJv3zPYt2rmDautnc/eMTLC/4GywSXBBCCHFikKCYEEIIIY5ajz32GL1792bMmDGMHDmSpk2b8sorr4TTFy9eTL9+/Vi8eDEA7dq146233mLNmjUMHz6cMWPG0KZNGyZOnBhuOXakaJpKEIUCd4D124rw6uZRMxi0YZikRaXUmG7XbNi1qpMc7Ml0l+HNyq42Tfd4CeRX3xJN7B9FVfEZJgXlATxBE1NVOJjL2DBM7PXqhf9OOOtUJm2aQanfXWXdtxZOxq96DyXbQgghxDFDuk8KIYQQ4qjlcrl4/PHHefzxx6tN79mzJ2vWrIlY1rt373B3y7qiago7izyMm7KInEIPALFRNm4a3oFWDeLgKJjtL94eR/3Yemwr2VklbVjzQThwobP3fJrm3lsUmXrwkPJ4IjNUlU9m/sPP87eEZ4fs0iqVG4e3x6qYmAdwCem6QWz7dihWK2YggHZSC1b+/Wv165oGGwu30CamDcZRcJ0KIYQQh9PR8bpSCCGEEOI4Uu43+M8bc8IBMYASt59nPlhAXqn/oFr71DYtYOeuPjfSOnnXWGuaqnFa84Gc2nQgemDfARHNFY01rvpZKhWLBVtKaq3l90SiaCqf/7KOGXM3hwNiAIvW5DBuyiJ0DvwCCjiiafPQA2hOJ8Y+gp3+4NFxjQohhBCHm7QUE0IIIYSoRRaLysz5mwjUMOjzxzPWMPqC9hxQU5/DwDRNrAEnY7r+G6/pwRf047I6ceDE8O1fRMTviKLJjdez9tnnq5xPg8tHELTtfaB+UT1vwODH+ZurTVu9uZAyb5BYe/Uze9YkaICW0Yh2457HjY+MmDR2lFbf9bV5UhP0oLQSE0IIcfyTlmJCCCGEELVIN+GfrcU1pm/KKiGoH96Ag6oqqIqC7jcI+g1UlGrHMzNNUAIWnMEY4knCFnBhBPa/iZCum1ibt6bdM08S37ULtsREYtq2oc3D/yGub38CHFjgRoR4fMG9XiN5RZ6DasmlmwoeaxQ2ZxIju/yr2nH2hjTthwMJZgohhDgxSEsxIYQQQohapCrQIC2apf/kVklLT3LRo206NouKoR+eGf5UVaG81M//PllGXnYZAAlJLs68sD1xiU6MWm6hFlA0lKR61L9pFGoggGmxENBs+GQ8qoPmsGmoSs1DzyXE2A+poWEwaJJuS+fJIffy6d/f8k/+BuKdcZzb6lRaJ7ZA8csjghBCiBOD1HhCiFqnqgp+A4rKfHh8QVLinTis6lExsLQQQhxuetBgWM9GfP/HxvDPXoO0GK44vQ15RR5yCstZtiGfVg0TsFsUjFpuNWYETT6YOJdgYFfQrTC/nMlvzee62/qh2Wq/o4Bpgh8LWCtuLeX3/pA4rBp9OmTw+9IdVdIapMUQG2U79O63ukqcksDIDpehE0BBwWo40P2HJ1grhBBCHI0kKCaEqFWqqpBT4uPJ9/6iqMwHgKLAGX0ac/6A5qj7mKlMCCGOB1E2jfuu6s6LUxcT7bQy8uyTeGHKQkrLA7vWcVh47IY+JEVb0XcLjGkWBZ/qwR0oR1M0XJoTi27fr5kALRaVBb9vjgiIVTINkz9/Wc+gM1qhH6ZWaqKWGAZXndEGtzfA4jW7Whw2TI/hviu7Y91LK7IDYZpAQEXDDoCOXBdCCCFOLBIUE0LUKq9u8tCbc/D69fAy04Tv/thEZko0/dqlE6xh8GkhhDhumCYtMmJ58dYB+HWDp99fEBEQA3B7gzw16S+euKFP+IbMtARZXLCSD5Z+TnkgNHNlZkw6N/e8hjgtAUNnr0zDZNumwhrTd2wtxggaHMTkheII00yTMcM7UO7XKSz1EeuyEuW0YoH9CpAKIYQQYt9koH1R6xQFNE2VqbxPQJqmsnJjQURAbHef/vwPXgmICSFOEIZhhlr06Cbbc8uqXSe30IPbGwqWqarCtvLtvLHgw3BADGB7aRaPzn4Rn+apdh+7U1SF+CRXjemxcQ5UTSroY4VimkRZVeonOol1WNBME7OOZy0VQgghjicSFBO1RlUVVBSK8z2sX5VLSYEXFQVVlZvv2nK0l6WqKmzJLq0xvbDUJ8PMCCFOOIF9vAzwBUIvEnTNz8d/f1PtOp6Al2XZq7BY9n7rpusG3fs2rjG975BmyM+wEEIIIUSIdJ8UtUJVFYJ+gylvzae02BteHpfgZMR1PVA0Rd5sHiRVVcCAslIfhfnlJCS5iI6xg3r0dZ/QdYMWDeJrTE9PcqEpCsgjmRDiBBLtsmK1qNUGxzRVIT4qNJ6ToRhsLd5Z437W5K+nd1oP2Mu4T6YJzigrZ17Ynh++XBEexF9RFQYNa0l8kmufdYdqNfHjR0HBZjhk/DEhhBBCHLckKCZqhwmfTVoYERADKC708OXkxVxwZRcJgxwERVEwgiYfv7OAgjx3eHlichSX/LvbURdsNAyTFvXjiYu2UVzmr5J++bDW2DQlYkBpIYQ43jltGhef0oLJ09ZUSTt3QDPsFgXTMMFUSI1KYkdpdrX7aRSXiWHsO0BlmCaNWyRx450Dyc8pwzBNklOjUS3KXgNiigoerYxv1sxgSdZKXFYnpzcfROe09qh+2/6fsBBCCCHEMUK6T4pa4fMGyc9xV5uWtb0Ev28fIwOLainAl5MXRwTEAAry3Hw1ZclROU6yXYPHb+hDk4zY8DKn3cK157ajdaMEaXEghDjhKKbJ6b2bcPPFnUiJdwKQGOvgpuHtOaN3o1BADLAZDi5oe0a1+7CoFrpndNzviUoM08RUTJLSo0mpF7PP1sWKAm61hPt/fobZm+ZS7C1hZ2k27yz+mDcXfYhhq/qiQwghhBDiWCctxUStCNQwsHqloF/HYpMY7IEK+HSytpdUm7ZzWzEBn452lJWrrpvE2DUeuKo75T6dQFAn2mnFblExJCAmhDhBxUXb6dUmlfZNE9GNULdJu6ZEvCjQdYNW8c05v81pfL16BoYZSou2RXF77+uwG1FVWl2rqoKqKBimiaIoVV487HdrYovBx8u/wRf0VUlanrOaPG8+aVo9jqLGyUIIIYQQh0yCYqJWOF02FIVqb5ZVVcHhsh75TB0H/PsINvr9Os6jLCgGodYIKhBtU6EifxIQE0Kc6HTdwAKExso3q+1KrgSsDG0wiAENe5HvKcSuWYmzx2LVneHxwSqpikJ+lpv5v2/E79dp26EeLdqmHtSYkwElwKKdK2pMn7dtMcOb1ScQkJbfQgghhDh+SFBM1AqLVaVj9wYsmb+1Slq3Po3QrAooCr6giWGYaKpSMbbU8REo0SwqvqCBUfH2v7bOzeG0hvpQVvNsoygV6UIIIY4rZlDFhot6FldogR+MPSoCFYXZ09ayYvGO8LJtmwqZ++sGLr+hFwfav14BLKqGv4a6y67JmGJCCCGEOP5IUEzUCt0w6DekOa5oG3/9vomAX8fusNBzQBM6dKtPwIRZC7fx9a/rKS0PUD81mqvPbEvj9BjUY7wvhqEq/LZkB1/MWkdxmZ/0JBdXntGGlvXjD/ncLFaVDl0yWbZwe5W0Dt3qY7Gq6Psx6LIQQojjh6JAWYkvIiAG0LR1Cm26ZpJT7CEuzoHjALqtW007gxr3Zsb6X6tN792ga522ErNYVDwBA19Ax2rRcFhVzOPkxZoQQggh6o4ExUSt0U2Drn0a0ql7fYJBA4tFRbOq+HWTd75dyZ/Ld00zvy2njMffnc8dI7rQsUniMdtizFQUpv70Dz/N3xJelpVfzrMfLOSm4R3o2Sb1kLoN6obBgGEtcbhsLJqzOVyuXXo3okf/xhIQE0KIE5DVqrF8j5clJ5/bli1uH899vhS3N4hFUxncrT6XnNwS1dyPGSsDcGaLU1iStZIcd15E2jmthhKtxsAhVDmapqCqKrpuHHDXTkNR+H1FFh/NWENpeQBNVejfKZPLhrXCginjnAkhhBDioElQTNSqYNAABTSrilnxd7lfjwiI7e7d//3N06P7cax2AvQGjYiA2O4m/bCKTi2SsR7iFJG6YdBzQGO69m5IMKBjtWloFpXgMRpIFEIIcagUjN1eirRsl8bGEg+f/LIuvCyoG/w4bwt5hR5GX9Bhv1ou24JOHux/K6vz/2HOtkXE2KI4pWl/Em2JKIGDu2XUNAUjaLJtQxG52WXUqx9HWkYMqrp/laPFovL7iize/GrXeGe6YTJr0Tay8t3cOaILanVjDAghhBBC7AcJionDSlUVNu0srTG9sNSH1x/EatOOYK5qh6LAzjx3jeluTwC3N0i889C/ZkHdABUsdi0UbJSAmBBCnLACAZ32XTJZMn8bAK26ZPLk1EXVrrt4bS5uX5CY/ahnDcNE89vpEN+BjkntUUyFYNDADBxcPlVVobw0wIdvzMPvC4aXR0XbuOKmXhC37314AgYfzVhTbdrqzYUUuf0kymQ+QgghhDhIR9+0deK4YpoQvY/B4K3asXkZmiZEOfZxbpZj89yEEEIcvUzTJDbBSfPWKQDogHcvsxXvzHOjKPvfbFnXDYJ+k0DAOKSuiaYBn7y3ICIgBuAu8/Plh4txl/n2uQ9fQKe0vOao3Jas0v1udSaEEEIIsSdpKSYOK9M0yUiJwmm34Nnjphigc8sU7FYVDnB8kaNFYqydGJe12hv21g0TcNo0ZLATIYQQtc0wTU47/yS2bS5Cc1hQlJqrm7hoO2Yd1EXe8gBlJdUHvrJ3llJe5sdi3/vLI6tFQ1MV9BruExJjHXVybkIIIYQ4PkgzFnHY2TWF+6/qjmWPFmEpCU6uP6/9MT37pF1TeOCaHtj36JaSGOvg5ks6cex1ChVCCHGs0E2T+k0SSEuOolvrtGrXSYx1kBRrP8I5C9mzhdiegsF9z2bpsKj065hRbVqMy0q9JJe8exJCCCHEQZOWYuKwMw2T+skuXh07iOXr89iZX07bxgk0So/FpnLAs1AdTQzDJC3Owcu3D+TvDflsyymjVaMEmmbEHfPnJoQQ4uin6waKAted2468Ig8bd5aE0+Kj7Tw0sid2TUHXj3x9FBPnqLEFm9Wm4XTZMPcxSL5pGFx+Wmt25Lv5Z0tReHm008oj1/bCrilS1wohhBDioElQTBwRpmFiV6Fn61RUVQlPyW4c6HjxVh0fXtyBcpwWBw7FiRq01OlbYtMwsSnQrWUKPVqnHvy5CSGEEAfBNMGqmNx/dXeKSn1syS4jJcFJWoILhyVU59YF1aLQpVcjFs7ZXCWt/yktiI61U1rq3ed+LJjcc1lXisr8bMkuJTHWQb0klwTEhBBCCHHIJCh2AtM0FZ9u4vYE8ehl2FRlr2OS7ElVFUzTPKCAlK4b6PvuLVEt0+7nw+VfMG/b4vCb5bYpLbix2xVY/I467z5xKOd2rFI1FU/AIBDUsVs1HBa1zh6+hBDiRGaaoGGSFG0jJTapon4266SFWCXDMOk9uCmJyS7++GU95WV+YuMdDBzWksbNk7BY9m+QAdMEFZPEKCvJzZMwzdCYpRIQE0IIIcShkqDYCcpUFNZnlfLGl8vJLigHoFOLFK4/rx0uq1rjjaaigG71U+QvZkdRFkmuRFJdydh0x2G98VasBlP//oa52yKnnF+Z+w+vzHuH27pfhxKQKdmPFEWBIAqTpq3mt8Xb0Q2T2Cgb/zq1Fd1bpx7T48QJIcSx7mgKFumGQeuO6bRom4ZpmiiqgmY5+Nkij6Zzq2uqqqCbEDRMrJqCUhEsFEIIIcT+k6DYCUhVFbKKvTz2zryI1lVL/snlgYl/8vToflQXXlIUCNq8jJvzJpuKtoWXxzlieaD/zcRq8YclMKZaTTxKOb9v/ava9HUFm3Ab5UQTV+vHFtXTUXh+8iLWbCkMLytx+3njy+Uo57end9u0Wm0xpiiK3OgLIcQxKhg0QAEUMDEJBk0sFpnr6VAYisLWXDcf/biGrLxyGqRHM2Joa1LjHShSXwohhBD7Te5ITkA6MOm7VdV2Nyws9bF6UwGaVvXSMC067y35JCIgBlDsLeHp31/Dr+17XJADoaoKQZuXT9Z8xbaSnXsNihR5i1EO/sWzOEBFbn9EQGx3U2aswRs89ICYqiroVh/5Zg7/lK+lRCnAsPnlcxZCCHFCU1SFuSuzefituazeVEhRmY/l6/K57/U/WLGpAFWTilIIIYTYX9JS7ASkG7B2a/UBDYDFa3Pp2jKlSksfn+ll8c6/q92mwFNEoa+IZKX6KeEPRsDi5fHfXibXnU/3+p322loo3hGLeYKN51VXNE1h826zm+2pxO3HF9Cx2vZvrJjqqKpCuVbKM79PIMedF17ePLExt/QcicVvr/Mx5IQQQogjTdNUPLrB+9+trDb9za9WMO6W/lglLiaEEELsF2kpdoJKjHXUmJae7Ko2+OTT/XudOr3EW4ZSS814NE1lbcF6ct35ACzLXkWPzE7Vrts0oSEuNapWjiv2zTAgMa7m60dTFaz7OXhyTYIWH8/98XpEQAxCXWXfXfIxpkUioEIIIU4shs3P3yUr2ZZfQKCGFtluT4BST+AI50yIA6OqCoqpUFLgoazIh2IqqKpEcoUQdUNaip2A7JrC8MHNmfjF8ippqgL9O2QSCFQNOjgtDuyaDZ/ur3a/adHJmLU0ppiqwbzti8N//7z+d27rPRK/HmDxzhXh5S2TmjC6+zVoAetewnWiNpmmSUZyFNFOK2XV3Hj375SBw6JiGgffhbI0UEpWWW61aUt2/o23vQcH0Qe9fyGEEOJYYtj8vPrXO/yTv5HbOt2513U1CS6Io5iqKKxdkcPM71aHe6VYbRrnXNKR9PqxGNIVQAhxhElLsROQrht0a5XKoC71I5ZbNJW7Lu+G01b9ZWE3nZzT+tRq0zqktand1lqmQpw9NvxnwAjy0tx3aBiXwb39R3Fn3+t57tQHuKXbtVgDDulKd4TZNYWHr+1FlDNySoYWDeO5bFjrQwqIKQqU+MpqTDcxawzMCiGEEMebytbza/M3YGKiq26indXPuJ2S4CTKIe+8xdFJVRWKCjz8+M3KiGFaAn6dzz9chN8nPQGEEEee1JonKNU0uXxYK4YPas66bUVEOa00qheDXVEwa5ju3AjCwAZ9sKgaX6+eQXnAg6ZqDGjUk+Gtz0Dx1d7lFAjonNykLz9t+G3XMj3A16tn8PXqGVzd6SKau1qiBw1pIVYHDN0kJdbGuFv6syPPTX6xl0b1YomPtmHZayfbfTNNSHIm1JhuUS04LQ6Q3iFCCCFOALoa4KeNu+6Hvt/0A9dfNJyXP1yJvts9m82icse/umDX1FqdAVqIWmMq/P7TuhrSYOGczfQd0iw0Y60QQhwhEhQ7gammSbRNpUfrFOLiXBQWuvdZCSl+CwPr9aVXRld8hg+basWOE8NX+031Y7VYLjnpbD7++38Ry9untqZbvY7oPqkw65Khm1gVaJwaTdP0aHTdBPPQAmKVnKqLDmltWJa9qkraqc0G4MCJfPpCCCFOFLt3KVtXsJFo6wweGnU685cWkpXro3mDOAZ2ro/LIgExcfQyDYOigvIa0/Nz3Jhy+QohjjAJigmMGlqG1UQPggUHFhygc9iCE0rQQv/MPnTL6MiCHcvwBL10y+hAgi0BxVd9twFx5JmmiV7Lrd2VgIXrulzG1L+/Ys7WRRimgVWzclqzQQxrNuiwBGGFEEKIo5FmWBncuA9r8taHly3JXs6ynL9pn9aGs7ueTIu4Jvh8wQO+pxPiSFI1hbR6sRQXeqpNz2gQj6Iqh+/hQgghqiFBMXFUU4IaLmI5OXMgigLBoI4p3eZOCKrPxmWtL+TCNmfh0304NEdFq8S6zpkQoq489NBD+P1+nn766b2ut23bNh577DH++usvXC4XF154ITfffDOadmgz4wpRF3Td4KTkljSKq8/m4m3h5YZpkFOWS2ZcKj5fsA5zKMT+MUyTfqc0Z+2qbPbsWqBZVDp2r08wKOOKCSGOLAmKiWOCVJAnJjOoYsOFDRcY8uJQiBOVYRi89NJLfPzxx5x//vl7XTcQCDBy5EgaN27M1KlT2bJlCw888ACqqnLLLbccoRwLUbu0gJ07+9zAoqwVzNz4B6ZpMrBRL7pndsLidxziaJ5CHBmmCc4oKxdf3ZXvP1tBWWnoTWdCkotzLu2IZlWktaMQ4oiToJgQQgghjlrr16/ngQceYPPmzWRkZOxz/enTp7Njxw4++eQT4uLiaNmyJfn5+Tz77LPceOON2Gy2I5BrUVssFhVFUUItxU/gZ2XTBNVnp2dyN7qkdAAFbKadoM+QgJg4phimSWpGDFeO7o3PG0RVwGa3oGiKjIcnhKgTal1nQAghhBCiJnPnzqVZs2Z8++231K9ff5/rL1iwgJNOOom4uLjwsl69elFWVsaqVVUn7xBHJ1VRMHVYvSybhX9sobTIh6ooKCf4kJK6bqIGragBq8zQJ45Zum5iYmJzaFjsGgamBMSEEHVGWooJIYQQ4qh12WWXHdD6WVlZpKenRyxLTU0FYOfOnXTs2PGg8mGxHPx7RE1TI/4r9l0mm9cV8M3HS8PjDv0xcx2ZDeMZfnlnOE6HhpPrpCopk0hSHlVJmQghDpUExYQQQghRJ7Zt28aQIUNqTJ8zZw6JiYkHtE+v10tsbGzEMrvdDoDPd3AzdaiqQkJC1EFtu7vYWOch7+N4U12Z5OeURQTEKm3fUsSiuVsYdFqr4/oBWK6TqqRMIkl5VCVlIoQ4WBIUE0IIIUSdSEtL4/vvv68xffcukPvL4XDg9/sjllUGw1wu1wHvD8AwTEpKyg9qWwi1YIiNdVJS4pEuQhVqKhNNU1m9PKtKQKzSX39splPPBqja8dePUq6TqqRMIkl5VHUoZVIbLzuEEMc+CYoJIYQQok5YrVaaNWtWq/tMT09n7dq1EctycnKAUBDuYNXG+E26bsg4UHvYs0wURaG0tOYWfX5fENOAoHn8lqNcJ1VJmUSS8qhKykQIcbCO37bnQgghhDjhdO/enZUrV1JWVhZeNnfuXKKiomjdunUd5kzsD103aNYqucb0zIbxKHL3KoQQQohaIrcVQgghhDhm+f1+cnNzw10mTznlFFJSUrjttttYvXo1P/30E+PGjePf//43NputjnMr9sUwTBJTokhNj6mSpigw9Ow2cPz1nBRCCCFEHZGgmBBCCCGOWYsXL6Zfv34sXrwYCA2q//bbb2MYBhdffDGPPvooI0aMYNSoUXWcU7G/TEwuuqYr3fo0Cs/6Wa9+HFeO6k1UrB3DqGHAsROcZlEwLAGwBo/riQiEEEKI2iRjigkhhBDimPDBBx9UWdazZ0/WrFkTsaxRo0a88847RypbopaZZigw1mtwU3r0b4JpmqGB9RUkIFYNVVUIWDzM2bGEP7YuwKpaOLXZQFolNkP1S+tIIYQQYm8kKCaEEEIIIY46um6EukoqYIQiZaIaAauHx2a/RG55QXjZ2vwNnJTSkhu7XimBMSGEEGIvpG31bhYuXEirVq2q/Js3b154nTlz5jB8+HA6duzIaaedxnfffRexD5/Px6OPPkrv3r3p3LkzY8eOpaCgIGKdfe1D1D5NU7HrPhyBcmwEUWQ8EiGEEEIc4zSLwi+b/owIiFX6O3ctW0t3oKpy0yOEEELURIJiu1mzZg0NGzbk999/j/jXuXNnANavX88NN9xA//79+eKLL7jooou4++67mTNnTngfjzzyCL///juvvvoq77//Phs2bOCWW24Jp+/PPkTtchg+AksXsv6Jx1l5991sm/g6tqIcrMi0zUIIIURdsqoG0YqbaLOIKMUjY2EdIJ/i5bfN82tMn7nxd1TpFyKEEELUSKrJ3axdu5bmzZuTkpJSbfr7779Pq1atuP322wFo1qwZK1eu5O2336Z3795kZ2fz1VdfMXHiRLp16wbAuHHjOO2001i8eDGdO3fe5z5E7bKbfrI+/ZScH38KLytasJCiRYtp++jDaPUbo+vSH0MIIYQ40oIl+ZT//inu5bMw9QBaTCIJAy/DWr89XkO6/NUGRZEgoxBCCLE3UlPuZs2aNTRr1qzG9AULFlQJXPXq1YuFCxdimiYLFy4ML6vUpEkT0tLS+Ouvv/ZrH6J2KeVlEQGxMMNg4xtvYvV7jnymhBBCiBOcHS/ZX46jbMmPmHoAAL20gLxvX8XYujQ866TYO7vpYECjnjWmn9y4D0bwCGZICCGEOMYcFS3FNmzYwLZt2ygrKyMhIYGMjAwaNWp0xPPxzz//kJCQwPDhw8nOzqZly5bcfvvtdOjQAYCsrCzS09MjtklNTcXj8VBYWEh2djYJCQnY7fYq62RlZe3XPhITEw8q74dy81jZVeF467Kgqgpli/+pMd2zbTuK34slxlUl7Xgtk4Ml5VGVlElVUiZVHc9lcrTU3eIY5S7At211tUlFsyeTcvlJBKlaP4tIetBkUOM+/LZlPrnu/Ii0dqmtqB+TgeGXl65CCCFETeosKJaXl8e7777Lt99+S05OTkQrKUVRqF+/PqeffjpXXnklycnJh3y8bdu2MWTIkBrTZ82aRWlpKeXl5Tz44INomsaHH37I5ZdfzhdffEHz5s3xer3YbJHN+Sv/9vv9eDyeKukAdrsdn88HsM99HAxVVUhIiDqobXcXG+s85H0cbfwOx17TNauV6L2U3fFYJofiSJSHv7CQYGkpoGCJicGWEH/Yj3ko5BqpSsqkquOlTI503S2OLpqm4g0a+AI6VouG3aKAceABF01TCORsrDFdLyuCoA/UwxwUUxV8QZNAUMdu03BYVPTgsTfeqDXg4D8DbmPBjqX8vmU+Vs3KsGYDaZHQVGaeFEIIIfbhiAfFdF3ntdde4+233yYjI4Pzzz+f9u3bk5mZicvlori4mOzsbBYuXMjMmTOZNGkSV111FWPGjMFqtR70cdPS0vj+++9rTE9NTeWvv/7C6XSGj9O+fXtWrlzJBx98wKOPPordbq8SuKr82+l04nA4qg1s+Xw+nM7QA9G+9nEwDMOkpKT8oLaF0E1ubKyTkhJPaPrz44irWVNQVTCqnlds+3YErXYKC91V0o7nMjkYR6I8NAyM7VtY/+oEvBUtKx0Z9Wg2ZjRKRgMMjq7Zs+QaqUrKpKqDLZPaeNFRm+qq7hZHD0NRWLA6hw+nrabE7UdVFXq3q8dVZ7TBqpgcyAgQhgG2qISaV1A1FM0Kh6mBk6JAwFR4738rmbtiJ4YJcdE2rji9DZ2aJ6MeY8NZGIaJ5rPTN60XPdK7oKCgGVZ0v/wOCyGEEPtyxINiF1xwAfXr12fKlCm0a9eu2nXat2/PKaecwj333MOCBQt4++23ueiii/jqq68O+rhWq3Wv44UBxMbGRvytqirNmjUjOzsbgHr16pGTkxOxTk5ODi6Xi5iYGNLT0ykqKsLv90e0BsvJySEtLW2/9nGwgrXwZlPXjVrZz1HFFkWzUTexfvxrEYstsbE0ue5avFgx93LOx2WZHILDWR4WdyErH/4vZnDX4CfeHTtZ+dAjdHjxBfzOuMNy3EMl10hVUiZVHetlUld1tzg6aBaVRWtymfD5svAywzD5Y9kOduSWcf/V3dEOIIJlmiaWlAYoNidmNWN7RrXuQ0B1gl4r2a8iaCo8/u58tmSXhpcVl/kZ/+lSbru0M52bJR2Tgf1g0ECpuLXXZYZtIYQQYr8c8aDYvffeGzEQ/b5069aNbt26MWfOnMOYK/j111+59dZb+eabb2jQoAEAwWCQ1atXc+qpp4bzMn9+5LTXc+fOpUuXLqiqSteuXTEMg4ULF4YH09+4cSPZ2dl07959v/ZRl0zAZ0BQN7BbNeyackzeFO4uiIqzY2fav/gCuT/+hC83l7hOHYnv0gWfIxpTZp48KthUk53/+zYiIFbJDAbJ/mEaSRddQuAwPSAJIfbuaK27xZHhDRh8OK368b827iwhv8RLWqx9v1qLmdYApcFSVhbtpNNFd1PwyTOYAW843ZbWhLiB/6JU12or+xEUBXKLPBEBsd198MMq2tzUB2nfKIQQQpwYjnhQbPeb6gkTJjBs2LB9tuACqszYWNu6dOlCQkIC99xzD/fffz9Wq5U333yToqIirr76agCuuOIKzj//fJ5//nnOP/98Zs+ezbRp03j77beBUBfNM888kwcffJAnn3wSp9PJww8/TI8ePejUqdN+7aMuKArkFpbz7rer+GPZDgzDJDHWwTVntaVtowSUY6wbwZ78igVikki6ZASKaWCgUB40QAJiRw0l4Me9dm2N6aVr1pAc8IMqY6MIUReO1rpbHBmBoEFRqa/G9A3bi6kXn77PF2mmLcCHKz5n7rZFALRMbMxVF99BotuNWlaCLb0ZSnQyZcbexwM9FJqmsm5bUY3p+cVeAkEDq8x+KYQQQpwQ6rTGf+ONN9i2bVtdZiEsOjqa9957j+TkZEaOHMkll1xCUVERH374YXiw4BYtWjBhwgRmz57Neeedx6effspzzz0XcdP/2GOP0bt3b8aMGcPIkSNp2rQpr7zySjh9f/ZxpPl0k0fenstvS7ZjVAyYW1Di5YUpi1i7rfi4mTUtENDxB81jugvT8cq0WLClptSY7khLA8tRMVmuECe8o6nuPt5YrCqq1TykGaUPB4tF3WuQKDneGTHpQk37WJ63KhwQA1hbsIkH5r3Ng+unUdayK56o+rgNxwGNT3agDMMkJaHmAfztVg3LcXLfI4QQQoh9q9OnzObNm7Nx40YGDhxYl9kIa9iwYUQAqzoDBgxgwIABNaa7XC4ef/xxHn/88YPex5GkKJBd4GFLVvXdCN77biWPXd+7bi8UcdwLYCHz/PMpWrCo2vR6555NwJSHFCGOBkdb3X1c0AzclPLzut/ZWZZD6+Tm9K7fFYcRhXEUtGq2W1RO7taA6XM3V0lz2i00SosJv1SriU/x8u2an6pNy/cU8sO6X7i4xbkEAof3xZVhmDStF4vDpuH1V+2TP6R7QxwWFeMwDB9hVU1UvxcUFd3ulJd0QgghxFGgTmMdgwcPZty4cfz222+0atUKlyvyzZ2iKIwePbqOcndi0DSVNZsLa0zPLignoBtYtKNr5j9xfDFNEyU1ncYjr2Hze5Mw9dCDimKx0HjkNZCYelhbDggh9p/U3bVL0UzWlv7Dy3PfwawYrH5Z9iq+XjODhwfeRoKavM+A0+Fm6gYXDm7Otpwy/t6QH14e5bDw8LW9sGvKPvNoYlLiq/4FHEChtwhTOTLnadcUHrmuF//9v3mUe3eNZdm+WRLDBzar9YCYqoLdU0rWd99RtGAhmtNJ+llnEtOxIx718HUVFUIIIcS+Kea+2rsfRq1bt95ruqIorFq16gjl5til6wYFBe6D2lZVFZZvKuSFKdW30LFbNV6+YyC2EywmZrGoJCREUVjolje5HLnysKJj8Xvwbt8OioIjI4OAzUWwbnt6V0uukaqkTKo62DJJSTn42YgPtxOx7j6Uehb2fh0EbR7u+vFx/HqgynYN4jK4u9do1MDRMey7oSiUlPvZlFVKQoydjKSo/QqIAShWg/dXTGXe9iXVpl/XdQTdkrocsd8OVVXwGSY7ct0UlvpoXC+WWJcV9TDcFju9xay45z50d3nE8rhOHWl00yi8mh2Q39DqSJlEkvKo6lDK5Giua4UQR06dthRbvbr6mYzEkWMYJi0bJmCzqPirqUiG9miI06Ie87NQimNDAI2ALRqlaWvAxCOtw4Q46kjdXXsUBbLdedUGxAC2Fu/Aa3hwHSVzIaqmSbzTSpdmSZhmqJXvfrdiC6pc0PZMFuxcjm5EdluMd8TSLqU1Qf+Ru9cwDBMr0Dg1miZp0aHzOAwBMZtisG3qx1UCYgDFS5YSzM1Gqddon2OyCSGEEOLwOGqaX6xfv54lS5awZcuWus7KCcdlVXnkut7YbZHTn7drmsR5A5pJQEwccaZpSndJIY4BUncfuoAR3Gu6bh59dbBhmAccxDFNiCaWRweNpVliIyDUqrB7RkceHngHtqDzcGR1P/J1AIG9g6AFvBTMnV9jev5vv2O1HjW340IIIcQJp87HT//222955plnyMvLCy9LTk5m7NixnHfeeXWXsROIaZq0aZzIK3cMYvPOEopKfTStH0d8lA31KLwZ3xurVcUwFVQlNNvksUxRFLSK2b4M3ajzMWWEEKKS1N21wzQhIzoNVVExqqlvk5wJuCxO8NdB5mqBUjH0QmX8zNQVktQUbu9+AwH8WK0aFt2G4VcwDvObEEU5LA3BqlBVBUvF2GhBM1QAisWCGaw++KlYrfISSAghhKhDdRoUmzlzJnfddRe9evXijjvuIDk5mZycHL755hvuu+8+4uPjGTRoUF1m8YRhsag4LQotM2NRFCXUOuwYuktTVAW332Dm3E1syS6lVcN4+nXMxGFRMI/BYJKhKOzIL2f6vE3ousmQbg1pnB6DxrF3LkKI44vU3bXLZjoY3uZ0Plv5XcRyBYVru/4Lm+5AP9Z++1UFv26SnR/qMpiW+P/s3XdYFNfXwPHvFnoXARUrxt57jQVN7C0mJrHFkthi7y32XrH33o2J3Wjyi7EbW4wlosbeQQVEaQu7+/7By8Z1QVlYWMTzeZ48kbkzd+5e0DOcucURW2V8Vkqn06PQqXFU2+LhFL8OkD6NXsAplQpidfAiUkPYyxi83B1wslejwrzRyCqVEhtNFApdHHqFkjg7R+Le2BVUoQD7uCgir98k6PeDKGzUeH/6Kco8efCqVZOg/QcSrTtrjY/RvOcv8YQQQoj3mVUX2v/iiy/ImTMns2fPNinr168fT548YdOmTVZo2fslLRcAfh8olApuB71i4qrTaF9LgNnZqpjQpQrebnZozdzS3pp9olUoWLXnCicuPTY6XjhPFga0LoPKCn9l3/efkbQgfWJK+sRUZlxo/0OM3WkdZ/U2cdx7dZ+fA3/hWWQI+Txy83mRhrirsoD2/Zpap1coOH/jGUu2XyL2/z+rWqXku2bFKF/IG8X/x7C0/vdCqVQQEatjwqrTPH723/euaD5P+n1VOtmx1FYfS+ztm9xbu46oBw+xcXMle/NmeFSvTpTCznCeozaKf6fPIOLGTaPrPSpXIu837bgyeiwxwU+Nynzq18P7s5bEKG0B+Tc0MdInxqQ/TMlC+0KI1LLqk9b169dp0aJFomUtWrSQxXxFsmh0emZuOGeUEAOI0WiZuekvNO/RC1ilUsH94FcmCTGAq3dD+OtaMGr1+/ULkhAic5HYbXmKWDX5HPzoW6ELY2sO4ruSbfFQZH3vEmIKBYS80jD/xwuGhBhAnFbHop8v8exljGFKZVrT6PQmCTGAK7efs2L3P6B8d0PUKgXRly9ybdIUoh48BCD2RTj31qzj4foN2Onj57WqVErCzpwxSYgBhP55iujgpxQZPxa/7l1xK1WSLFUrU2T8WLw/+8yQEBNCCCGEdVj1acvDw4MXL14kWhYWFoatrTwoiHcLfakhIjrxtTqePI8kIubtixhnKAoF+47fTrJ434k7xMS9Z9NohBCZisTutKHT6VHEqlHH2qGPVb5PKxgYKJRKdhy+kWT59j9ugDJ9Hj3DI2NNEmIJTv/zhOjYd48osYmO4O7qNYmWPTt8BEVU/PRQtSaSoAO/JVnPk927ibNxwL5SNXL17kuO77qhy5GXGKVdktcIIYQQIn1YNSlWpUoV5s+fz5MnT4yOP378mAULFlCtWjUrtUy8T+LesTumVvf+DC/X6/XEvOVBXROrk23bhRBWJbFbJCVOp+PJ/68jlpjHzyPeGbMtQaGAsJcxSZbr9BCdjGHkuqhIYl+EJ1kede8+SqUC9KCPjU26Hk0sCr2euDgdGr0SjRaJ5UIIIUQGYdWF9vv370/Lli359NNPKVOmDFmzZuXZs2ecP38eNzc3BgwYYM3mifdEVjd71CqFyaK3AC6ONrg42FihVSmjVCioVTYnl24+S7S8eqkc2Nko0co6EkIIK5HYLZJio1RSIJc7Nx8mPpKwQC4PbFRKdGmcGNPrwcvdIclyG7USB7t3PwIrbN7+/KB2dkSn16Ozs8ezejUebvsp0fOy1q5FnFIN6ZAQFEIIIYR5rDpSzMvLi+3bt9OuXTuioqK4fPkyUVFRtGvXju3bt+Pr62vN5on3hK1SQZv6hRMt69K8BLaqdFrAxAK0Wh0lPvLE18vZpMzDxY66FXJJQkwIYVUSu0VStFodjarnQ51I3FUpFTSr4ZfmCbEETvZqiuXzTLSsQZW82Nu8+xFYb++Ia7GiiZapHByw9cmGXg+xWvCq649tFg+T8xxy5cK5SNH4Xb2FEEIIkeFYdffJH374gc8//5xSpUpZqwmZwoe++yTE73Z1N+gVm367RlBIJLmzudCmXmG83ewNO12Zw5p9olAoiAX+OHef307fQ6vV83FpXxpVzYudSoFOJ7tPZgTSJ6akT0xlxt0nP8TYLXE2+RRKBY9Copi79W+CQuKnUnp7ONCrVWlyejqi16XP7pMKBcShYOWeK/x5+TF6ffwIsQZV8tK0ej6UyXg2UCgU2Ee9IHDUGDQhIf8dV6spMmoket88aPXxCUClUoF9zCuCf/uNZ0eOoVSr8KpbF8+PqxOldkjWGnEf0s9JckmfGJP+MCW7TwohUsuqSbFSpUqxaNEiqlataq0mZArysB5PqVQQpwetTo9aqUBJytfsyAh9olIrDeuLWXvKZEboj4xG+sSU9ImpzJgU+xBjt8RZ86hUSmK0OiJj4tftcrRTY6dSGI2WSrc+USqIjtURrdHiYKfG3kaJ3oxRW0qlAjtNBJG3bvEyMBCHHDlwLVUSjZ2zISH2OhuVAmVMfDJQa+eY6NIOSfnQfk6SQ/rEmPSHKUmKCSFSy6rTJ8uUKcOpU6es2QSRieh0epR6PTYKUOj17/0itto4HWoFqBXIlEkhRIYhsVu8i1arQw242qlwtVOhRm+96YM6PfYqBe4OauyUmJUQg/hniyi1I6rCJfD8/CvsK39MlK1LogkxgFitnhi1AzFqB7MSYkIIIYSwDqsutF+oUCFWrFjB/v37KVy4MI6OjkblCoWCSZMmWal1QgghhHiTxG7xIdLp9Oh0796xUgghhBDvF6smxX777Te8vb2JjY3l0qVLJuUKxfuzQLoQQgjxIZDYLYQQQgghMgurJsV27NiBq6urNZsghBBCCDNI7BZCCCGEEJmFVdcUa9SoEfv27bNmE4QQQghhBondQgghhBAis7DqSDGNRoOHh4c1myBSSa3UYxMTSezz5+h1Omy9vIizdSBWb9V8qxBCiDQisVsIIYQQQmQWVk2KtW/fnoCAAOzt7SlcuDAODg7WbI4wk41ei+afy1ydvxBdTAwAChsb8nbqgFP5SmgUafvjpVIpsNFEoY+K3/pc4eBIrK2j9Xa4EkKID4DEbiGEEEIIkVlYNSm2c+dOHj16ROvWrRMtVygUXLlyJZ1bJZJL+TKUf2cFgP6/Lcf1sbHcXrKMorlzo8iWG70+bbYjVyt0KB4/5Pr8hUQ/egyAfbZs5O/VA0W2XMQlsVW6EEKI1LFm7B41ahQajYYpU6a89bxFixYREBBgcvzatWtp0i4hhBBCCPF+smpSrGnTpta8vUgFWxU82bPXKCH2ukfbfiLn973QoEqT+9tEhnNx1Fj0cXGGY9FPnnBl9DhKzppBnKN7mtw3pVQqJUqlgrg4XZolCoUQIj1YI3brdDoCAgLYsmULLVq0eOf5165do1mzZgwaNCgdWieEEEIIId5XVk2K9ezZ05q3F6kRF0f0o0dJFkc/CUIRFwtqyyfFbFTwZO8vRgmxBPq4OB7v2YP3V23Q6Kw/Wkyt0GETHUH4xYvEPHuGa/Hi2OfwJVrtIMkxIcR7Kb1j982bNxkxYgR3794lR44cybrm+vXrtGrVCi8vrzRunRBCCCGEeJ9ZNSmW4PDhw5w4cYKnT5/Sr18/AgMDKVasGL6+vtZumkiCXm2D00cf8fJq4lNRnPLlRW9jC2mQ91HEanh17XqS5a+u/YtPnAaUdpa/uRnU6NDevE7g1OnotVoAou7cxad+Pew83MHWDr2DIxqlXZolyFQqBerYGNBp0dvaZ4hEoRAic0iv2P3nn3+SP39+FixYQN++fd95vkaj4c6dO/j5+Vm0HUIIIYQQIvOxalIsKiqK77//nhMnTuDs7ExERASdO3dm06ZNXLlyhfXr11OgQAFrNlEkIVarx6fepwTtP2A6YkupJEfLz9CQRjtQqtXY+XgRcft2osV2Pt7oVTZpkpAzh40mksBpMwwJsdytv0Kv1fLvrAC0UVEAuBQujF/PHsQ4uqHTWbbB9roYoq5e4/6OncSGh+NWqhTZmzZB4+iKVtZcE0KkUHrH7jZt2ph1/o0bN9BqtRw4cICJEycSExNDhQoVGDRoEN7e3iluh1qd8pimUimN/i+kTxIjfWJK+sSY9Icp6RMhRGpZNSk2a9Ys/vnnH1avXk358uUpXrw4AFOnTuXbb79lzpw5zJ8/35pNFG8R6+hKkTGjuDl3HjHBTwGwzeJBvu7d0LplSWq5sdTfV68ke/PmhPx5OtHyHC2aEZtWCblkUioVvLp+3ZAwdC5YAKWdHXdWrTE67+XVqwSOGUeRCeOJUltuBzc7nYbHGzfy9NBhw7Hg3/7Hs8NHKDZlEjo3L5m+KYRIEUvG7gcPHlCnTp0ky0+ePEmWLFnMat/16/EjiR0cHJgzZw7Pnz9n1qxZtG/fnh07dmBvb29WfRD/b7qHh5PZ173J1VV26nyT9Ikp6RNT0ifGpD9MSZ8IIVLKqkmxX375hf79+1O5cmW0/z+aBsDb25vu3bszbtw4K7ZOvEucXoHKNy+Fxo9DHxEBej1KJyc0dk7EadMu4aLXg8LTi3xdvuPOylWGxJNCpSJPx29QZPVJs4RccimVCuJehBu+9vmkDvc3b030XM2zZ8Q8fIAyX0HLjRZ7+cIoIZZAp9Fwd9Vq8vTpQww2lrmXEOKDYsnY7ePjw759+5Isd3NzM7t9zZs3p0aNGkbJtAIFClCjRg0OHjxIw4YNza5Tp9MTHh5p9nUJVColrq4OhIdHodXqUlxPZiJ9Ykr6xJT0iTHpD1Op6RNLvOwQQrz/rJoUCw8PT3LtETc3NyIjU/4AKtKHVqtDq3KA19/OpGFCLIFGYYNDxSqULF0qfsF/vR57X1/ibB3SbMdLc8TF6XAuXMjwtdrZGc3zkCTPf3XzJq75C1kkKaZWKwn7++8ky8MvXUYZEwN2khQTQpjPkrHbxsaG/PnzW6ppBm+OLvP29sbd3Z0nT56kuM64uNT/AqrV6ixST2YifWJK+sSU9Ikx6Q9T0idCiJSy6hyzAgUKsHv37kTLDh48KOuJibeKQ0mUrTPkKwh+hYiydSY2AyTEEqg8suBSrCgQP0JL5ZT02yiHHDksuqaYUv2WfLdSCbKkmBAihTJ67J49ezb16tUzmiL+4MEDQkND+eijj6zYMiGEEEIIkdFYdaRY9+7d6dmzJ2FhYdSuXRuFQsGZM2f4+eef2bx5MzNnzrRm88R7wtpTJZMSrbQjf5/eBP+yn+cn/8Tnkzo82rHL5DyVgwOO+fMTZaGkWFycDrfSpYE1iZZnqVAera2suyCESJmMFrs1Gg0vXrzAzc0NW1tbPvnkE1asWMGYMWPo0KEDz549Y9KkSZQtW5aPP/44XdsmhBBCCCEyNquOFKtbty7Tp0/n2rVrjBkzBr1ez5QpU9i/fz9jxoyhfv361myeEKkWqbTHo2lzcnXoQLYG9clas4ZRuY2bG0XGjkZjZ9k1DXSOzvi2+sLkuI2bK7natSVWkXFG1Akh3i8ZLXafP3+e6tWrc/78eQCKFy/OsmXLuHbtGp999hk9e/akSJEiLF68GIVChskKIYQQQoj/KPQZZAu6W7duERYWhqurK35+fiiVxvm6M2fOUKxYMRwdHa3UwoxLq9UREhKR4uvVaiUeHk6EhkbIXPz/l1Z9YqePRRkdSXRQEGonR9TuWYixdcSCMycNbPUa9M+e8mTvXmLDXuBRvhwelSoRY++M1sx13+RnxJT0iSnpE1Mp7RMvL5c0bJXlfCixW+Ks5UmfmJI+MSV9Ykz6w1Rq+uR9ibVCiLRl1emTr/Pz80uyTKvV0r59e7Zt20axYsXSsVVCWFaMwgYc3FDkcyNWD7EAaZSW1ihsUXj7kr1zF9Bp0alsiIzTpctGCEKID4PEbiGEEEII8T7LMEmxd8kgA9qEsIj0+nHW60GjBVCBvFEUQqQzid1CCCGEECIjs+qaYkIIIYQQQgghhBBCWEOqk2IxMTHyJlgIIYR4z0j8FkIIIYQQH7oUTZ+8desWc+fO5cSJE7x69Yoff/yRbdu24efnR7t27SzdRiGEEEJYgMRvIYQQQggh/mP2SLHAwEA+//xz/vnnH5o0aWJ4y6xSqZg0aRLbt2+3eCOFEEIIkToSv4UQQgghhDBm9kixqVOnUrx4cVauXAnAhg0bABg5ciQxMTGsXbuWFi1aWLaVQgghhEgVid9CCCGEEEIYM3uk2N9//02HDh1Qq9UoFAqjsoYNG3Lnzh1LtU0IIYQQFiLxWwghhBBCCGNmJ8Xs7OyIjo5OtCwsLAxbW9tUN0oIIYQQliXxWwghhBBCCGNmJ8WqVavG3LlzefLkieGYQqEgIiKClStXUrVqVYs2EOLXO5k8eTI5c+a0eN1CCCHEhyC947fEbiGEEEIIkdGZvabYoEGD+PLLL6lfvz6FCxdGoVAwZcoUbt++jV6vZ9asWW+9ftiwYWbdb/LkyQCyzokQQgiRCqmJ3xK7hRBCCCFEZmR2Uix79uzs3LmT1atX8+eff5I7d24iIyNp3LgxHTt2xNvb+63Xnzp1yujr4OBg4uLiyJEjB15eXoSFhXH//n1sbW0pXLiwuc0TQliZUqlAr8ews50QImNITfyW2C2EEEIIYR69Xm+yjqvIeMxOigF4eHjQr1+/FN3w4MGDhj/v3r2bGTNmMG/ePEqWLGk4fuPGDXr06EGDBg1SdA8hRPrT28QRoYvgTuh9nG0dyemaAxutPXqttVsmhEiQ0vgtsVsIIYQQ7xN/f38qVqzIlClT0uV+hQoVomfPnvTq1QuNRsOMGTMoXrw4TZs2BWDo0KGcPn3a6JlKZAxmJ8XOnDnzznMqVKiQrLpmz55N//79jR6qAT766CP69u3L5MmT+eabb8xtohAinentYll7cRunH543HLNT2dK/ahdy2edCr5U3JEJYm6Xit8RuIYQQQghjW7ZsIVu2bED8iPo1a9YYlpMQGZvZSbF27dqhUCiMpka9OSQwMDAwWXWFhobi6uqaeMPUaiIjI81tnhAinanVCv64f8ooIQYQo9Uw7fgiZnzyA7ZaRyu1TgiRwFLxW2K3EEIIIYSx0qVLW7sJIoXMToqtXbvW5FhkZCRnz55l586dzJs3L9l1lS5dmkWLFlG2bFnc3NwMx4ODg5k3bx6VKlUyt3lCiHQWo4hm7/XfEy3T6rRcDA6kslcF4uJ06dwyIcTrLBW/JXYLIYQQ1uXv70+TJk2Iiopi+/btKJVKatasyfDhw3F3dwfgxx9/ZNOmTdy6dQudTke+fPno1q2bYZmDn3/+mZEjRzJ27FgCAgKIjY1l48aN5MuXjxUrVrBr1y7u3buHUqmkcOHC9O3bl8qVKwMwb9489u7dy4ABA5gzZw53797Fz8+PMWPGoFAomDhxIteuXSN37tyMGDGCKlWqABAdHc2UKVM4ePAgISEh5MyZky+++ILOnTub9flDQkKYN28ehw4d4unTpzg6OlKhQgWGDRuW5K7XwcHBTJ48mePHj6PX62nQoAEeHh7s3r3bMKVRq9WyefNmNm/ezN27d8mSJQuNGzemV69e2NnZAfHTIB8/fkzevHnZvXs32bJlY/fu3RQtWpSePXvSokUL6tSpA8RvVDR//nyjKZM///wzS5Ys4dGjR+TLl48BAwZQs2ZNQ9no0aNZtWoVkydP5vr16+TIkYMhQ4aQN29exo4dy99//423tzd9+/alUaNGye6zBw8eUKdOHQICAvjll184evQoNjY2fPrppwwfPhxHR0fD92jBggUcOHCAR48eYWtrS6lSpRg8eDBFihQx9MHTp0/59NNPWbZsGcHBwRQtWpTJkydz584dZs2axb179yhYsCDjxo0zXAdw9uxZAgICuHTpEnZ2dtSuXZshQ4aQJUuWZH8WSzM7KVaxYsVEj9eqVQtHR0cWLVrEkiVLklXXkCFDaNeuHbVr16ZMmTK4u7vz/Plzzp8/j5ubG4sWLTK3eUKIdKZHz0tNRJLlwa+eovCW6ZNCWJul4rfEbiGEEML6Nm7cSJ48eZg8eTIhISHMnDmTu3fvsnnzZjZu3MiECRPo1asX5cqV48WLFyxbtoyBAwdSpkwZwzQ/rVbLypUrmThxIqGhoeTPn59p06axadMmBgwYQKFChQgKCmLBggX06dOHQ4cO4eDgAMCTJ0+YMmUK/fr1w9HRkfHjx9O7d29sbGzo1q0b2bNnN5QfOnQIe3t7Jk2axLFjxxgyZAhZs2blyJEjTJs2DXd3d1q2bJmsz63X6+natSsvXrxg4MCBZM2alWvXrhEQEMDo0aNZsWKFyTUajYZvvvmGyMhIhg8fjrOzM0uXLiUwMBAvLy/DeaNGjWLnzp189913lC9fnitXrrBgwQICAwNZvny5YYT92bNnsbOzY8GCBURGRqJSqQx1eHt7M3/+fHr27En37t359NNPDWWPHz9m6dKl9OnTB0dHR2bPnk3v3r05ePAgnp6eAMTFxTFgwAB69uxJ9uzZmTFjhuFzfv3113Tr1o358+czZMgQypUrZ/heJtfo0aNp2bIlCxcu5OLFi8yePRsPDw8GDBgAwODBgzl79iz9+/cnd+7c3L17lzlz5jBgwAD27t1r6IPz588THBzM0KFDiYmJYcyYMXTp0gWFQkHv3r1xcHBg9OjRDBw4kL179wLxS3l07NiRypUrExAQwIsXL5gzZw7t27dn27Zt2Nvbm/VZLCVFC+0npXz58ixbtizZ5xcuXJg9e/awevVq/vrrLx48eICHhwedOnXim2++MWS5hRAZlxIVudxycP/Fo0TLi3gVQKuVUWJCZGTmxG+J3UIIIYT1KZVKVq1ahYuLCwBZsmTh+++/5+jRo9y/f5/OnTvTo0cPw/m+vr589tlnnDt3zmiEUbdu3ahVq5bh6+DgYPr160e7du0Mx+zs7OjVqxfXrl0zTBOMiopi9OjR1KhRA4jfcGfmzJlMnDiRzz//HIgfkd67d29u375NkSJFOH36NNWqVTPcv1KlSjg6OhoSQskRHByMg4MDQ4YMoXz58oZ67t27x5YtWxK9ZteuXdy6dYuffvqJ4sWLA1C5cmXq1q1rOOfGjRts27aNAQMG0KVLFwCqVauGt7c3gwcP5siRI4YRXXFxcYwbNy7RhJStra1hZFTu3LkpWrSooUyn07FgwQLy589v6NcOHTrw999/G0aX6XQ6unXrxhdffAFAeHg4/fr145tvvqFjx44AuLi40LJlSy5fvmx2UqxmzZoMGTIEgCpVqnD8+HEOHTrEgAED0Gg0REREMHLkSBo2bAjEv1R99eoVU6ZM4dmzZ4YkYkREBAEBAYbPcvr0aTZv3szq1asNIwPv3r3L1KlTCQ8Px9XVlZkzZ5IvXz6WLFliSCSWKlWKRo0a8dNPP9GmTRuzPoulWDQpdvDgQZycnMy6xsfHx/BNEUK8f2x0trQp0YIpxxaYlGV1zEJu15zoNPpErhRCZBTmxm+J3UIIIYR1+fv7GxJiCV+r1WrOnDnD0KFDgfiEyq1bt7h79y6nTp0C4kdNve71qW0AM2fOBOKnKCZc+8cffyR6bdmyZQ1/zpo1KxCf5EiQ8KIsPDwciE9ebd68mSdPnlCzZk1q1qzJ999/b9bn9vHxYe3atej1eh48eMDdu3e5desWf/31l0n7Evz555/kypXLkBADcHZ2pnbt2oZ+OX36NIDJlMRGjRoxbNgwTp06ZUiKubu7m52MgvhdwBOSSIBhqufLly+NzitTpozhzwkJw7f1qzneXPssW7ZsPHz4EIhP6CWMtAsKCuL27dvcuXMn0e+/m5ub0Wd51/ffxsaGCxcu0LlzZ/R6PXFxcQDkypWL/Pnzc/z48fcnKda+fXuTYzqdjidPnvDw4UO+++47s+rTaDRs27aNEydO8PTpUyZNmsTp06cpVqyYyc5WQliCQgEolWjidCgUYKdSWm0kk0qtJCZOh14PtmoFeu37lzzSavXkdMxJ3yrfsvbvbYREhaFAQalsRelQ+gts4uzR8f59LiEyG0vGb4ndQgghhHX5+PgYfa1UKvHw8ODFixfcu3ePUaNGcfLkSWxsbPDz86Nw4cIARhvuAIa1pBJcunSJsWPHcunSJRwcHPjoo4/IkSNHotc6OzubtCthemViRowYQbZs2di1axfjx49n/PjxlClThjFjxhjalxy7du1i1qxZPH78GHd3d4oUKfLWqXehoaGJjkZ7/diLFy8AjKZTQvwmQh4eHkaJK3MHAiV4s68TpiLqdMa/i5rbr+Z4sx6lUmn0fT169CiTJk3i1q1bODk5UbhwYUO7Xz8vsTaC6WdMEB4ejk6nY9myZYnOTkhYs80azE6KvfkXAeI7smDBgnTt2jXZc4EhPvv8zTffcOvWLfz8/Lhx4wbR0dEcOnSIKVOmsHr1aqMsqRCppVQqeBmjZcv/rnLh36c4O9rS9GM/KhTxRqlL38SNVqHg6N+P2HfiDlExcZQt7M0X/gVwtFGiT+e2pJYiTkVh50KMqTGAaF00aqUaO+xRxKrQJfJvhhAi/VkqfkvsFkIIIawvNDTU6GutVktoaChZsmShS5cu2NjYsG3bNooUKYJarebGjRvs3LnzrXW+evWKb7/9lkKFCrF37178/PxQKpUcPnyYAwcOpLrNtra2dO/ene7du/Po0SP++OMPFi5caFivKjnOnj1rWN+0c+fOhuTgtGnTOHfuXKLX+Pj4cOfOHZPjz58/N/w5YfOgp0+f4uvrazgeGxtLaGgoHh4eyf2Y76179+7x/fffU7duXZYsWUKuXLlQKBRs2LCBo0ePpqpuJycnFAoFHTp0SHSDAEsl/VLC7KTYunXrLHbzadOmERERwb59+/D19TUMZ5w7dy6dO3dm7ty5rFq1ymL3Ex82hUJBaGQsg+cfI/b/d0J8GRnLku2XOH3Fm+8/K4EynRI4WhTM3nyeK7dDDMcOnXvAn5ceM733xzjbKHnfcklarR6V1g4n7EAbf+w9+whCZGqWit8Su4UQQgjrO3LkCBqNBltbWwB+//134uLiKFiwIIsWLWL48OGUKFHC6HwwHZX0ulu3bhEWFkb79u356KOPzLr2XaKjo2nWrBlffvklnTp1IkeOHLRp04a7d+/y448/Jrue8+fPo9Pp6NWrl2H6qFar5cSJE4Y2KpVKo2sqVqzITz/9RGBgoGG6aHR0NEePHjX0X8KGRHv37jWsKZbwtVarpVy5cslu4+sL779PLl++TExMDF26dCF37tyG4wkJscResCaXs7MzRYsW5datW0Y/l9HR0fTu3ZuaNWsa/cylp2QlxR49SnwB7aQkDK98lz/++IPhw4eTJ08etFqt4bidnR2dOnUyzIUWwhJ0Clix+x9DQux1568FE/IyBi8X2zRPRikUCh49izBKiCWI1mjZdOAa3zUpynuXFRNCZDhpEb8ldgshhBDW9/jxY7p370779u15/Pgxs2bN4uOPP6Zhw4bMmDGDDRs2kC1bNlxdXTl69Chr164F4hfIT0q+fPlwdnZm8eLFqNVq1Go1Bw4cYNu2be+89l3s7e0pVqwY8+fPx8bGhkKFCnH79m22b99OvXr1kl1PwjIN48aNo2XLlrx48YINGzZw9epVIH5x/zen9jVu3JilS5fy/fff06dPH1xdXVm1ahXPnz83PPt89NFHtGjRgrlz5xIVFUWFChUIDAxk/vz5VKpUiY8//jjZbUxI1p08eZL8+fMbrbOVkRUrVgy1Ws306dPp1KkTGo2Gn3/+mUOHDgHxfZsa/fv3p0uXLgwYMICmTZsadj+9cOGC0aYQ6S1ZSTF/f3/DfNfkCAwMTNZ5MTExSe5SpVKpiI2NTfY9hXiXWK2eyzefJ1l+5koQTavlJTZWm+Q5lmBjo+T4xaR/UT19JYgOjYpadhcMIcQHKS3it8RuIYQQwvoaNWqEq6srffv2xdHRkRYtWtCvXz8AFi5cyMSJExk6dCi2trZ89NFHLFq0iEmTJnH27FmjnSVf5+LiwsKFC5k2bRp9+vTBycmJIkWKsH79er777jvOnj2Lv79/its8btw4AgICWLlyJU+fPsXT05PPP/+cPn36JLuOSpUqMWrUKFatWsX+/fvJmjUrlSpVYv78+Xz//fecO3fOsCB+ArVazYoVK5g4cSJjxoxBrVbTtGlT3N3duX37tuG8iRMnkidPHn766SeWLVuGt7c37du3p0ePHiajz97G2dmZjh07smXLFg4fPszx48eTfa015cmTh5kzZzJ//ny6d++Om5sbpUuXZt26dbRr146zZ89SqFChFNdfvXp1VqxYwfz58+nduzc2NjYUK1aMVatWmWwAkJ4U+mSMgfv555/Neqhu0aJFss5r164djo6OLFmyBK1WS7Fixfjpp58oVqwYAwcOJCgoyKLTNTMrrVZHSEhEiq9Xq5V4eDgRGhpBXCKjqDKLWD18P+MP4pJYzL59gyLULedLXJwuTfvExkbFj4dusuvorUTLnezVzO5bE3U6Tj60USlQRUeAJgaFjQ1x9k7E6v77O/+h/IyYQ/rElPSJqZT2iZeXy7tPSoa0iN8fYuyWOGt50iempE9MSZ8Yk/4wlZo+sVSstQZ/f38qVqzIlClTrN2U98K///7LrVu3+PTTT42eiz7//HOyZcvG/Pnzrdg6YW3JGozy2WefpcnN+/TpQ4cOHWjWrBk1a9ZEoVCwZ88e5s2bx7Fjx1i+fHma3Fd8mGzVSmqUzsnBc/cTLa9Q1CddHjBiY7XULOubZFLsk4p5sFMp0KbTTpT2eg0vjhzn4bafiHv5CqWtLd71PsGnSROilEnv4iKEyPjSIn5L7BZCCCGEpel0umStWaZWmz+fJjIykj59+tC6dWs++eQTtFot+/bt4/LlywwcODAlzc0wtFrtO9f6UigU7+06Z+khRTO0Ll68yKlTp9BoNIZvgF6vJzIyknPnzrF169Zk1VO+fHlWrVrFzJkzWb58OXq9ntWrV1O0aFGWLFlC5cqVU9I8IRKl1+r4sm5BLt16xtNQ4/nwbeoXxtFWlW7reLk52tKiZn62H75pdNzXy5mG1fKi1abP2z8bJYT89jsPNm0xHNNpNDzZvRfN02f4du5MjMI2XdoihEh7lojfEruFEEIIYWnDhw9n+/bt7zzv2rVrZtddqlQpAgICWLFiBTt27ECv11O0aFGWL1/+3j+3dOjQgdOnT7/1HF9fXw4ePJhOLXr/mJ0U27BhAxMmTEhya/fq1asnu66TJ09SpkwZNm/eTHR0NC9evMDZ2RknJydzmyVEstipYGLXqly5E8LJS49xd7Hj00q5cXe0RZGOC9sr9XoaVc1LlRLZ+fXUPV5FaaheypeCudyxIf12bVRHR/Do5x2JloX8eYqcrb8CR0mKCZEZWCp+S+wWQgghrCszJjh69uxJmzZt0qz++vXrU79+/TSr31rGjh1LRMTbl3hI2GFTJM7spNj69eupUaMG06ZNY8mSJbx69Yrhw4dz+PBhhg4dStOmTZNdV69evRg1ahRNmzbF3t4ee3uZqiXSlk6nRw2Uye9J2QJZURA/ndEaOz0q9Xq8XGz5pkEh0McPGdZq9enaFG1kBLqYmCTLY4KfosjnkX4NEkKkGUvFb4ndQgghhLC0nDlzkjNnTms3473j5+dn7Sa895K/hcL/e/DgAa1bt8bNzY3ixYtz7tw57O3tqVevHl26dDFs9Zocrq6u8jAtrEKr1REXq03znSbfRa+HWE18O9JrDbHXKe3s3lqudnG2Rr5QCJEGLBW/JXYLIYQQQojMwuyRYjY2NoaH4Tx58nD37l1iY2OxsbGhXLlyrFq1Ktl1de3alQkTJnD79m0KFy6Mo6OjyTkVKlQwt4lCiGTS2zviWqI44Zcum5TZemZB5eZBrBXaJYSwPEvFb4ndQgghhBAiszA7KVakSBH++OMPKlWqRL58+dDpdFy4cIHy5cvz5MkTs+oaPXo0ALNnzwYw2h5Vr9ejUCgIDAw0t4lCiGTSKG3w69GdaxMmEvXwkeG42tWVQiOGE2vnCFYYwSaEsDxLxW+J3UIIIYQQIrMwOynWsWNHevbsSXh4OJMmTaJOnToMHjyYTz/9lN27d1OuXLlk12XOVEshhOXp9RBl60zBUaOIffaUyLv3sM/mg132HMTYOaGThJgQmYal4rfEbiGEEEIIkVmYnRSrW7cuixcv5ubNmwCMGzeOAQMGsHnzZkqUKMGoUaOSXVfFihXNvb0QwsL0ej1RKnsU2XLhkCMPOp2eKL0edJIQEyIzsVT8ltgthBBCCCEyC7OTYlqtllq1alGrVi0APDw8WLlyZYobcPHiRU6dOoVGozFsE6/X64mMjOTcuXNs3bo1xXULIYypVApUKhV6vd5kkwG9Pn4DAiFE5mTJ+J2esfvx48dMnz7dcL+SJUsydOhQChQokOQ1gYGBTJw4kcuXL5MlSxY6dOhA+/btLdYmIYQQ4kPSrl07Tp8+bXTMxsaGrFmz4u/vz6BBg3BwcEiz+/v7+9OiRQt69eqVZvcoVKhQkmWLFy+mdu3aaXbvd/n33395+PCh4RnO2t+PzMbspFj16tVp1KgRzZo1o0SJEqm6+YYNG5gwYYLhgfp1SqWS6tWrp6p+IUQ8pVKBnSaCyMB/efbXeWy9vfCsVhWtoyuxqKzdPCFEOrBU/E7P2K3RaOjSpQvu7u4sXrwYe3t75s2bxzfffMOePXvIkiWLyTWhoaF07NgRf39/xo4dy99//83YsWNxcnKiZcuWFmubEEII8SFp0KABI0aMMHwdGRnJsWPHmDx5MjqdjjFjxlivcRYyfPhwGjZsaHLczc3NCq35T9euXWnRooUhKQYfxvcjvZidFGvcuDH79+9nw4YN5MmTh+bNm9OkSRN8fX3Nvvn69eupUaMG06ZNY8mSJbx69Yrhw4dz+PBhhg4dStOmTc2uU4gPiUIBtrpYlNGRaGOiUTk6EWfvRKxOYXSOXfRLAkeNQfPsmeH4w63b+Khvb2yLlSROEmNCZHqWit/pGbvPnj3L9evXOXLkCD4+PgBMnz6dSpUqcfDgQT7//HOTa7Zu3YqNjQ3jxo1DrVaTP39+7t69y9KlSyUpJoQQ4r315HkEv566S9DzSHw8Hfm0Uh6yeTql2/3t7e3x8vIyOpYnTx4uX77Mvn37MkUSxsXFxeQzZlQfwvcjvSjNvWDEiBEcOXKElStXUr58eVatWsUnn3xC27Zt+fHHH3n58mWy63rw4AGtW7fGzc2N4sWLc+7cOezt7alXrx5dunRJs8V8R40axdChQ02Onzx5ks8++4xSpUpRv3599u7da1QeExPD2LFjqVKlCmXKlGHAgAGEhIRYvI6MSKkGrW0McbbRYKM12m0sM1GplGhtYnhFOE8jnqNQZdx1tRQKcIiN4N6C+Vzo1YfLA4dwsXdfQnb8hIMuxnCejV7L/bVrjRJiAOj13JgzD5uYyHRuuRDCGiwVv9MzdhcoUIClS5caEmIQPxoNIDw8PNFrzp49S8WKFVGr/3vvV7lyZe7cucOzN/8dFEIIId4Dv5+5R9cpv/Pj7/9y5O+H/Pj7v3Sb8ju/n7ln7aZhZ2dniLmPHj2iX79+VKlShWLFilGjRg2mT5+OThe/RMvPP//MJ598Yvh/8eLF+eyzzzh37pyhvpcvXzJkyBDKly9P5cqVWbVqlck9z58/T/v27SlXrhyVKlVi2LBhhIaGGsr9/f1ZunQpXbp0oVSpUvj7+/O///2P//3vf9SrV4/SpUvTuXNnnj9/btZnDQsLY+zYsdSsWZOSJUvy1VdfcerUKUP5vHnzaNu2Lf369aNs2bKMHz8egL/++os2bdpQsmRJatWqxdixY3n16pXhuosXL9K6dWvKlClDhQoV6NWrF48ePTJ8locPHzJ//nzatWv3zja+/v2A+FH306dP5+OPP6ZMmTK0atWKY8eOGV1z7NgxWrRoQYkSJWjcuDE//fQThQoV4sGDB4Y2TJ06lYYNG1KpUiVOnz6NXq9n2bJl1KlTh1KlStGsWTN27dplVO+KFSuoW7cuxYsXx9/fnwULFhhmGkRFRTFixAiqVatGiRIlaN68Ob/++qvhWq1Wy+rVq6lXrx4lSpSgXr16bNq0yVB+6tQpihYtytKlS6lUqRKfffaZ4efMXGYnxSB++/UqVaowYcIEjh07xsKFC8mePTtjx47l448/TnY9NjY22NvbA/FZzbt37xIbGwtAuXLluHPnTkqalySdTsesWbPYsmWLSdnNmzfp2rUrH3/8MT///DNffPEFgwcP5uTJk4ZzxowZw7Fjx5g3bx5r1qzh1q1b9O7d26J1ZDQKhQKtXQy7bv3CoP9NoO/+0Sz5ey3hilAUmWxwkd4mjgthFxl9ZAYDfh1H31/G8tO/e9DZaazdtETZxcXw77QZvPj7guGYPi6Ox7v28HT/fmyU8f/gqDRRhJw+m3glOh2vrl1DpcqcSU4hhDFLxO/0jN1eXl7UrFnT6Ni6deuIjo6mWrVqiV7z5MkTsmXLZnTM29sbiF+fTAghhHifPHkewdytf6N7YxMsrU7PvK1/8+R5hFXaFRcXx6FDh9i5cyfNmjUDoHv37rx8+ZJVq1axf/9+OnXqxPLlyzl48KDhusePH7N582amT5/O9u3bcXBwYOjQoYZkSd++fbl48SKLFy9m1apVHDp0iIcPHxquv3jxIu3ataNAgQJs3bqVOXPmcOHCBTp37oxW+9+ayQsXLqRhw4bs3r2bwoULM3jwYBYvXsz06dNZvHgxly5dYtmyZcn+vFqtlk6dOnH27FmmT5/Ozz//TMGCBencuTMXL140nHfmzBmyZs3Kzp07adeuHVevXqVjx458/PHH7Nq1ixkzZvDPP//QqVMn9Ho9Wq2Wrl27UqFCBXbt2sXq1at59OgRw4cPB2Dbtm1ky5aNTp06MW/ePLO+HwDDhg3j+PHjzJgxg+3bt9OgQQO6devGoUOHgPh1WLt27UqVKlXYuXMn3bt3Z+rUqSb1r1+/npEjR7J8+XJKly7N7Nmz2bRpEz/88AO7d++mffv2jBkzhg0bNgBw8OBBlixZwtixY/n1118ZOHAgixYtMiTO5syZw7Vr11i6dCn79u2jRo0a9OvXz5CImzJlCgsXLqRnz57s3r2bNm3aMHHiRFavXm30PTl8+DBbtmxh4sSJhhen5jJ7+uTr4uLiOHbsGL/88gtHjhwBoEqVKsm+vkiRIvzxxx9UqlSJfPnyodPpuHDhAuXLl+fJkyepaZqJmzdvMmLECO7evUuOHDlMytesWUOhQoXo168fAPnz5+fKlSssX76cKlWqEBQUxI4dO1i8eDHly5cHYNasWdSvX5/z589TpkwZi9SR0cTZRDP12AIevvzv+3ExKJArT/9lYp0huCjcSGRZmfeOSq3gr2f/sPTcBsOxWG0sB24c5mH4E7qVaY8i1saKLTSlexFKxK3biZY92bMXr7p1iLV1Rq/Vwluy5trISEABZIJvpBAiWVITvy0Zux88eECdOnWSLD958qTRumG//fYbM2fOpEOHDkkuiBsdHY2tra3RMTs7OyB+tHZKqdUpe9CC+FHIr/9fSJ8kRvrElPSJMekPUx9Cn/x66q5JQiyBVqfn11N3ad+waJq3Y/fu3Rw4cMDwdXR0NDly5KBz585069aN6OhomjVrRoMGDciePTsAHTp0YNmyZVy7do26desCEBsby9ixYylSpAgAHTt25Pvvv+fp06e8evWKY8eOsXr1asPvyzNnzjRa5H7lypUUKlSIH374AYj/nXvWrFk0a9aMY8eOGV6m1apVi+bNmwPQqlUrfv/9d/r160fJkiUBqFq1Kv/++6/RZxw9erRhdFeCrl270q1bN44dO8Y///zD7t27KViwIABjx47l0qVLrFixgjlz5hiu6d27Ny4uLgAMGjSIatWq0a1bNwDy5s3LzJkzqVu3LqdPn6Zw4cKEhobi7e2Nr68vuXLlIiAgwDCKLUuWLKhUKhwdHXF3d0/29wPg7t277Nmzhx07dhj199WrV1mxYgW1atVi9erVFC9enMGDBwPg5+fH8+fPmThxolE/1KxZk6pVqwLx65etXr2aWbNmGdY5y507Nw8fPmTFihW0adOGe/fuYWtri6+vLzly5CBHjhx4e3sbcjH37t3DycmJXLly4erqSp8+fahQoQJubm68evWKTZs2MXToUJo0aWLotwcPHrB06VK++eYbQ7s6depE3rx5SQ2zk2J6vZ4///yTvXv38ttvv/HixQtKlixJ7969adiwIR4eHsmuq2PHjvTs2ZPw8HAmTZpEnTp1GDx4MJ9++im7d++mXLly5jYvSX/++Sf58+dnwYIF9O3b16T87Nmzhr+oCSpXrszEiRPR6/WGIZ2VK1c2lOfLlw8fHx/OnDlDmTJlLFJHRqJUKrgV/sAoIZYgThfH1su76FyyDcS+/0EoRhHF5su7Ei27HHyNl3EvccV0QWdrUSoVRAcFJVmu02jQxcSArTPY2uOQ05eoBw8TPdelSGFiZNdJITI9S8VvS8ZuHx8f9u3bl2T56wvbbtq0ifHjx9O0aVPDg1ti7O3t0WiMR/gmJMMcHR2T3bbXKZUKPDxSv26Lq6vsBPUm6RNT0iempE+MSX+Yysx9EvT87UudBIWkz1Io/v7+DBw4EL1ez8WLF5k4cSJVq1alW7duqNVq1Go1bdu2Zf/+/Vy8eJG7d+9y7do1nj17ZjKtLX/+/IY/JySPYmNjuX79OoDRhkBZs2YlV65chq+vX79uMlq8cOHCuLi4cO3aNUNSLE+ePIbyhJ0Yc+fObThmb29vMn2yd+/efPrpp0bHEp5Frl+/jouLiyEhBvEj8MuXL280HdHT09PwmQCuXLnC3bt3E/1d/+bNm1SqVIlvv/2W8ePHM3fuXCpXrkzNmjVp0KCByfmve9f3I+HeAK1btza6NjY2FldXV8M5CcmuBBUqVDC53+v9eePGDWJiYhgwYIDR6Ky4uDg0Gg3R0dE0bdqUn376iXr16vHRRx9RtWpV6tWrZ0iKfffdd3Tr1o0qVapQsmRJqlWrRpMmTXBxceHixYvExsaaPFNWrFiRNWvWGH3fUpsQgxQkxT7++GOeP39Ojhw5aN26Nc2aNUtxQ+rWrcvixYu5efMmAOPGjWPAgAFs3ryZEiVKMGrUqBTVm5g2bdq8tTyp6RZRUVGEhoYSFBSEh4eH4W3z6+ckvBm3RB0plRZvsG1sVJz+93yS110MvopWGYut+v0PQhE6DeExSa+ncz/8EWU8vZJ8S2MNdlk9kyxTqFQo7exQq5XobB3J1+U7rowey5vD+jwqVkDp5v7On58P4S2cuaRPTEmfmMpIfWKp+G3J2G1jY2P0YJyU6dOns3z5cjp27MiQIUPeuq5ltmzZCA4ONjqW8PXra5OZQ6fTEx6e8l86VColrq4OhIdHoZWXEID0SWKkT0xJnxiT/jCVmj6xxMuO9ODj+fYXOj5ZUvbCx1xOTk6GxEjevHnx9vamY8eOqFQqxowZQ2RkJG3btiU6Opr69evTokULSpYsmejv4W+O6Ib4l3cJ8f3NJNrra2Qltvt1wnEbm/9m9rx+TYJ3rYvt6elplPx5s/6kjr9+r4QlJhLodDqaNGliGL31uoTR8AMHDqR169YcPnyYkydPMn78eJYvX86OHTsS7St49/fj9TZv2LABJyfjn/eEZJZKpUrWWlyvf66EegMCAvDz8zM519bWFnt7e3bu3Mn58+c5fvw4x44dY+3atfTq1YuePXtSpkwZDh8+zPHjxzl58iQ7duxg0aJFLF++PMmXmAntfL2/38ytpITZSTF/f3+aNm1qGM6YWrVq1TIMufPw8GDlypVm12Hu9IvEJDbdIuFrjUZDVFRUoj+QdnZ2hjfQlqgjJdLyDbabnUsiZ8ZztHHAxkaNh+v7EVDeRvMqEoVCkeQ/dh6Obri5pU/ASa4YnQ923l7EBD81KfOqWQMHzyw428f/I6EtVICS0yZxZ/U6Xl69ho2bGzmaN8GrxsfYmjG6MzO/hUsp6RNT0iemMkKfWDJ+WyJ2J1dCQmzIkCF06tTpnedXqFCBzZs3o9VqUaniF7/8888/yZcvH56eSb9MeJe4uNT/AqrV6ixST2YifWJK+sSU9Ikx6Q9TmblPPq2Uh5//uIE2kZfzKqWCTyslnsRJa5UrV6Zjx46sWLECf39/oqOj+eeffzh+/DhZs2YF4hemf/78eZK/Y70pYYrfX3/9ZXjOCA8P5969/zYUKFSokNHC/ABXr17l1atXyXrRllKFChXi5cuXXL9+3TBaLGE22EcffZTkdQUKFODGjRtGybabN28yffp0+vfvz9OnT1mzZg3Dhw/n66+/5uuvv+bcuXO0bt2aq1evGqZ7vsub348aNWpQoEABAJ4+fUrRov9NsZ09ezZKpZI+ffpQuHBhozXRIH4jg7fx8/NDrVbz6NEjo6mta9eu5caNG4wbN45du3bx8uVL2rRpQ7ly5ejduzcjR45k37599OzZk7lz51KuXDnq1KlDnTp1GDZsGI0aNeLAgQMMHDgQGxsbzp07Z/iZgPjZfV5eXkYzCSzB7KTYuHHjLHbzhB0V3iax9b/eZM70i6TY2dmZTLdI+NrBwSHR6RgQPyUjYTimJepIibR8g/1xnkrsuf57otfVz18TdawtodHWWdzRkmxUdlTKUZo/H5r+A+Bo44CPozehoRnrcyrV9hT+YQTXJk0l+rXFoz3Kl8P3qy8Jj4qDqDjDcYV3TvL1748iLha9QoHO3okInZ6IZHwueTNpSvrElPSJqZT2SVq8vbZU/LZU7E6OU6dOsXz5ctq1a0eTJk14+vS/lwCOjo44OTkRHR3Ny5cvDWtutGzZkuXLlzNixAi+/fZbLl68yOrVqxk7dqxF2iSEEEKkp2yeTvRqVZp5W/82SoyplAp6f1mabJ7WG6DQp08ffv/9d8aMGWNYnH3Xrl3Uq1ePx48fM2vWLGJjYxP9HTgxuXPnpn79+owbNw5bW1uyZs3KrFmzjK7v2LEjrVu3Zvz48bRu3Zpnz54xfvx4ihYtatb65uaqXr06RYoUYcCAAfzwww94enqyfv16rl+/zujRo5O8rlOnTrRp04axY8fStm1bwsPDGTt2LNHR0eTNm5eIiAj27t1LdHQ0Xbp0QalUsn37dtzc3AyjsJycnAy7aCckHBPz+vdj9+7dFChQgNq1azN69GhGjRpFgQIF2L9/P0uWLGHy5MmG9jVv3pwZM2bQsmVLbty4wdy5c4GkR9a5uLjw1VdfMWfOHJydnSlbtiynTp1i+vTpdO3aFYjPcUydOhUnJyfDurNnzpwxvJy9f/8+u3btYvz48eTOnZsLFy7w6NEjypQpg7OzM19++SVz587F3d2dEiVKcOzYMTZu3Ej//v3fOeLPXKlaaD+1/P393/mBAgMD31lPcqdfvE327NkTnW7h6OiIi4sL2bJlIywsDI1GYzTaKzg42DAdwxJ1pFRavcF2UjvTukRzNl7aYXS8oKcfH+euREyMlkwhTkHrki149CqIey/++4XPXm3H0OrfYxNnT1wG/CVf6eRBwdGj0L16SVx4OLaenugdnIhQ2kIiPxOxqEH1/3/tNeZ/71L6Fk6tVhKjiEKj06BWqrHDHl1s5tjxMjO/mUwp6RNTmalPLBW7k2PPnj1A/I6T69atMyrr2bMnvXr1Yt++fQwbNozff/+dnDlz4unpyfLly5k4cSItWrTAy8uLwYMH06JFC4u0SQghhEhvdSrkppifJ7+euktQSCQ+WRz5tFIeqybEIH5QyPjx42nfvj0HDhxg2LBhrF69moCAAHx8fGjYsCHZs2fn0qVLya5z6tSpTJ06lX79+qHT6fjyyy8JCQkxlJcqVYrly5cTEBBA8+bNcXZ2pm7dugwYMMBo+qSlqVQqVq5cydSpU+nZsycajYbixYuzevVqSpcuneR1pUuXZvny5cyZM4cWLVrg6OhIlSpVGDJkCLa2ttja2rJs2TJmzpxJq1at0Gq1lC5dmlWrVuHs7AxAu3btmDp1Kv/++69h98bEvP79mD17NiNHjmT27NnMnj2bUaNG8eLFC3Lnzm14RgIoWLAg8+fPZ9asWaxevZp8+fLRtm1b5s2b99b+HDZsGB4eHsyZM4fg4GCyZ89O7969+fbbbwH44osvCAsLY+HChTx+/Bg3Nzfq1avHwIEDgfhNDaZOncqgQYMICwvD19eXgQMHGnbOTKh/xowZPHv2jLx58zJq1ChatWpl1vctORT65I5lTAM///yzyYN1ZGQkZ8+e5dSpU0yaNMkwbNKS2rVrh6+vL1OmTDEcGzVqFDdu3GDjxo2GYwMGDCAsLIwVK1YQFBREzZo1WbVqlSEDffv2berXr8+WLVsoXbq0RepICa1WR0hIykcxqdVKPDycCA2NSPSXNr06jkh9JKcf/sUrTSQVcpTC29ELpSbx+c3vK4UCtDYankeHcCv0Ht7OnuRy8cU2zv5tmzdmGAqFyZJhFvOun5G30dvEcfl5IJsv7yQsOhy1Us3HeSryWeGGKGPe35+h1PRJZiV9YiqlfeLllfTUdWuzVuy2prSOsx8i6RNT0iempE+MSX+YSk2fZORYK0R6uXjxImq12mh65e7duxk+fDjnz59PdG22zMaqn/Czzz5L9HibNm2YPHkyu3fvTrcH63bt2tGiRQtmzJhBixYtOHz4MPv372f58uVA/BTNRo0aMXLkSCZNmoSDgwOjR4+mYsWKhmSWJerIiBRxapxw5dNc8eu2xcXp0GsyzoLzlqLXg1Jji7cqGzlz5MTV1SE+wL4PGTHSLiGWGiq1gr+eXWHpufWGY3G6OP64fYKH4U/oVaEzSk3avdERQlheRordQgghhBAi5QIDA5k+fTpTp06lSJEi3L17l3nz5tGoUaMPIiEGVk6KvY2/vz89evRIt/sVKFCAhQsXMn36dNasWUPOnDmZPn260bzk8ePHM2nSJHr27AlAjRo1GDlypEXryMhiYzPJVMl30OuR9ZAsJEYRzZbLOxMtu/78FuGacNxJ+cLXQoiMJb1jtxBCCCGESLlWrVrx9OlTJk2aRFBQEJ6enjRq1IjevXtbu2npJsVJscOHD3PixAmCg4Pp378/gYGBFCtWDF9fX4s07MKFC2mWmXxzXZIENWrUoEaNGkle5+joyIQJE5gwYUKS51iiDiEyC40uhhcxL5Msv/viAZ5ZsqLVZsBhbkJkUmkZv9MydgshhBBCCMtSKBT07NnTMGjnQ2T2k2tUVBTff/89J06cwNnZmYiICL799ls2bdrElStXWL9+vWHrz3cZNmyYyTGdTmfYmeDzzz83t3lCiAxErVSjUijR6hMfeedh7/ZerNcmRGZgqfgtsVsIIYQQQmQWZifFZs2axT///MPq1aspX748xYsXB+J3ifj222+ZM2cO8+fPT1Zdp06dMjmmUChwdnbmu+++o1u3buY2TwiRgdjhQJVc5Tl277RJmYONPTlcsmXK9emEyIgsFb8ldgshhBBCiMzC7KTYL7/8Qv/+/alcuTJa7X9rTHl7e9O9e3fGjRuX7LoOHjxo7u2FEO8RfayCVsWa8OjlE26F3jMcd1DbM6x6T2y1DuiQpJgQ6cFS8Vtit8golMr4XVB1OokjQgghhEgZs5Ni4eHhSa474ubmRmRkZKobJYTIPNQaO/pV6kJoTBi3w+7j6eBBTtfs2Gkd0claYkKkG4nfIrOwUWqx10cRG3QHnTYWWx8/YlWOxOhkN2MhhBBCmMfspFiBAgXYvXs31atXNyk7ePBgstcTg/hdqhQKRbLOVSgU/O9//0t23UKIjEGvB6XGlqxKb7yzZkOv16PT6GWEmBDpzFLxW2K3dSkUCpQKDOsxqtQK4uKsszijWq1EGxf/b7lSpUCn06FP43/abZVxcP9vHv2yGHRxhuOuFRrjWL4pkVrbFNUb368KdDo9KpUCnVZPxCsNcbFaXNzsUakVaN+jEWmvf28UCkAhI+qEEEKIxJidFOvevTs9e/YkLCyM2rVro1AoOHPmDD///DObN29m5syZya6rRYsWrF+/Hoh/yPbx8SEsLIyjR4/y6NEj6tevj729vblNFEJkQHo9aLWyqr4Q1mKp+C2x23qUSgVRr2L545er3LsViqOzLZVr5KNQ8WxJbmiSFhQKUKDk3PF7nD99j1iNloJFffj4kwKobZVpmnyx1YTxeK/p2nfhZ/Zgm6swKp8SZu9orFQoiI6M5eC+q+h0eipWz8febZeIjNAAoFAqqFLTjzKVc6FL66yfBaiUCm5cecrJQzd5+SKG7Lnc8G9YGBc3u/ei/UIIIUR6MjspVrduXaZPn87MmTM5fPgwAFOmTMHT05MxY8ZQv379ZNf16tUr8uXLx4oVK3BycjIcj4uLo0ePHri4uJi1RpkQQgghEmep+C2x2zqUSgUvw2JYt+ikYTTWyxfR/LY7kNs3nlOvedF0S3goULB15RmeBr0yHLty4TH/BgbTuXc1FOrkjSQ0l42Nkldnf0uyPPzEz7g3L0gUyR8tplQqiHgRw5pFf6LX6Wn9bUW2rj5rNPpOr9Nz4o+bePk4kyt/lgz9gkepUHDkwL9cPPfQcOzBnVDWLjzJl53K45XdJUO3XwghhEhvypRc1KRJEw4dOsS+ffvYuHEje/bs4ejRo3zxxRdm1bNjxw66dOli9FANoFaradu2LXv37k1J84QQQgiRCEvEb4ndVqKHA9svJzo98UZgMFERsenSDKVSwZMH4UYJsQSxGi3HD95ApUrR4+W7763XEhcWlGS59lUICr02yfJE6eHAzivodXpy5HLnwb3QJKejHvnt3wy/FmZsjNYoIfa6Azv+yfDtF0JkXLt27aJVq1aULl2aMmXK0LJlSzZv3gzAsGHDqFq1qtFGPq9btGgR5cuXJzo6mnnz5lGoUCGj/4oWLUrlypXp0aMH9+/fT8+PJYT5I8W+//57mjdvTq1atfDz80t1A8LCwhI9/uDBA+zs7FJdvxBCCCEsG78ldqc/bZyOoMcvkyy/e/M5RctkT/P1xdRqJf/8/SjJ8n8Dn/LxpwXT5N5aVNjlKUHUrb8TLbfN/hFapS2YkRfTafU8fvACAGdXO0KfJ73hRFhIJArIsCtiKpUKHj4MT7I8LCSKOI0WlW3aJC2FEGkrNiyIl+f/R2xYEDbuPriUqYuNu0+63Hvbtm1MnDiRESNGUK5cOfR6PcePH2fChAk8e/aMli1b8vPPP3P8+HFq1Khhcv2OHTto3LixYXmFbNmysW3btv8+W2wsgYGBjB8/nm7durFnz55kr18qRGqZnRR78OABvXr1ws3Njfr169OsWTPKli2bopvXqlWLmTNnkjVrVsNfHr1ez//+9z/mzJlD8+bNU1SvEEIIIYxZKn5L7LYOhUKBQqlAn8R6XXb2Nmm+yH0Ce/ukHx9t7VRpdt+4OB0uBSsRfuIndDFvJK8UStyrf0mEzrz7KxTxySSdTk9YSCTFyyS+QyuAl48LGTorxrv7X6mSXzKFeB+9vPgHT/cshNfWjwz7cydejbrjUrJ2mt9/48aNtGzZks8//9xwzM/Pj6CgINauXUvPnj3Jmzcvu3fvNkmK/f3339y5c8do7VKVSoWXl5fReTly5ODly5cMGTKEa9euUbhw4bT9UEL8P7OTYjt37uTmzZvs2bOHffv2sWXLFnLmzEnTpk1p1qwZefLkSXZdw4cPp3PnznTp0gUbGxvc3d0JDQ1Fq9VSo0YNBgwYYG7zhBBCCJEIS8Vvid3WobJRUqRENq5ceGxaqIA8fumz1lVsrJbSlXLz95kHiZaXr5Ln/3fETJvMUYTCBZ+24wn5ZQkxj64DoPbIjmf9LsTYZcHc/QaUaiVFS2Xn8vlHBD9+iXcDF+zs1cREx5mcW6tBIRRKzBqJlp50Oj1e2V1QqZSJ/izk/cgTtY3yvdpFUwgRP0LszYQYADotT/cuwj530TQfMaZUKjl//jwvXrzAzc3NcLxLly60bNkSgJYtW7Jo0SKioqJwcHAwnLN9+3YKFy5M8eLF33kfW9v4NSFtbGws/AmESJpCr0/de8VLly6xb98+Dhw4wOPHjylZsiRbtmxJ9vV6vZ5Dhw5x7tw5Xrx4gYeHB1WqVKFKlSqpadYHRavVERISkeLr1WolHh5OhIZGWG1b94xG+sSY9Icp6RNT0iemUtonXl4uadiqeKmJ3x9a7M4ocVahV7Bh6SlehEYZHW/8RUnyfJQl3RbaVyoUnD1+l1NHbhsdz5Hbjc/alE3WTpip6ROlUoEdMai0Ueh1OvQ2DsQoHFOcFFToFWxcdoqwkCh8srvg37Awv+0O5Flw/LppdvZq/BsWxq9Q1jTtY0v8nCSs+fbzur+MRg46udjRrlsllGolqXz0T1cSV4xJf5hKTZ+kR6y1hJA/NhB24ucky92rfkaW2m3StA379++nX79+2NraUqlSJcqXL0/lypUpUaKEYZpjcHAwtWrVYtq0aTRu3BgAjUZD9erV6d27N23btgVg3rx5bN++nYMHDxrd49q1awwYMAB7e3u2bt2KUilTvUX6MHuk2Jty585N/vz5KVSoEEFBQdy7d8+s6xUKBbVr16Z27fhhn3Fxcbx6Zbp4qxBCCCEsJzXxW2K3dShU0KZrJR7fD+NGYDAubg4UL5sDG1tVuiXEAHR6PeWr5aFY6RxcOveQmJg4ipXOTpasTuhI+1/UdTp9/A6TCltQQfwtU5FsVEGbLpV4/OAF/14JIuhxOK06lCM2Toc2Toe9gw1KteK92LVRp9OTzdeVLgNqEHjhMSHPIvAr6EXOfB4olPHlQoj3S+xbNhgBiH0RnOZtqF+/PtmyZWPt2rUcP37csIt13rx5mTRpEuXKlcPb25saNWqwe/duQ1Ls4MGDREdH06RJE6P6Hj16RJkyZQxfazQanJ2d8ff3Z9CgQZIQE+kqRUmxyMhI/ve//7Fv3z6OHz+OUqmkZs2azJ07l5o1aya7nri4OBYvXkyePHlo0qQJp06donfv3oSHh1OxYkXmzp1rNDxTCCGEEClnifgtsdt6EhIavnndyZ3fE71eT2ysNl0TYoa26PXYOaqpWscPUBAXp41v33uYc0no1xx53Mjll8XQr2pbJWpbJXr0aN+jXRt1ej1KtYLSlXOhUMQn87RandlTS4UQGcO7pkbauHmnSztKly5N6dKl0el0XL16lcOHD7N+/Xq+++47fvvtNzw9Pfn888/p06cPISEhZMmShR07dvDJJ5+YPBd4e3uzbt06ID5BNmXKFBwdHenfvz9ZsmRJl88jRAKzU7B9+vShWrVqDBkyhJcvX/LDDz9w7Ngx5s6dS506dVCrk59nmzt3LosWLSI8PH6nnAkTJuDu7s6wYcO4d++e0WJ8QgghhEg5S8Vvid3Wp9Xq0WjiiI21/uJWGo0WjSYuU4xAykj9agmxsfHfm/dhhJsQImkuZeqCMolNNJSq+PI09OTJE8aOHcuTJ0/ib6lUUrRoUbp3787q1auJiIjgzJkzQPxmPO7u7vzyyy+EhIRw9OhRo8X5E6jVavLkyUOePHmoUqUKK1as4P79+3Tp0gWNRpOmn0eIN5mdFLt27ZohG7xhwwZatWqFi0vK5mPv3buX/v3706ZNG27evMm///5L9+7dad++Pf369TOZZyyEEEKIlLFU/JbYLYQQQqQfG3cfvBp1N02MKVV4NeqR5ovs29ra8uOPP7Jr1y6TMldXVwCyZs0KxCe7mjZtyi+//ML+/fvJli0blStXfuc9smbNysSJE7ly5Qpz58617AcQ4h3Mnj65f/9+i908ODiYUqVKAXDo0CGUSqVhC9ds2bLx8uVLi91LCCGE+JBZKn5L7BZCCCHSl0vJ2tjnLsrL8/8j9kUwNm7euJSpm+YJMYAsWbLw7bffMmfOHCIiIqhfvz7Ozs7cuHGDhQsXGhbeT/D555+zZs0aIiIiaNmypWEh/nepWbMmTZs2ZdWqVTRs2JCiRYum1UcSwkiykmLDhg2jR48e5MqVi2HDhr31XIVCwaRJk5J1c29vbx48eED58uU5ePAgRYoUMcwhPn/+PNmyZUtWPUIIIYQwlRbxW2K3EEIIkf5s3H3SfJfJpPTt25e8efOydetWNmzYQHR0NDly5KBBgwZ07drV6Nz8+fNTsmRJLly4wKJFi8y6z/Dhwzl27BgjR47kxx9/RKVKYtqoEBaUrKTYqVOn+Oabbwx/tpTGjRszefJkdu/ezblz5xg1ahQAEydOZNOmTXTr1s1i9xJCCCE+NGkRvyV2CyGEEB+e5s2b07x582Sdu3nz5iTLevXqRa9evRIt8/Dw4OTJkylpnhAplqyk2Ovrg1hyrZC+ffvi6OjImTNnGDBgAK1btwbg0qVLdOrUiR49eljsXkIIIcSHJi3it8RuIYQQQgiRWZi90P6wYcO4f/9+omW3bt0y6w2xQqGga9euLF++nO+++85wfPPmzfTv3x+lMr55er2eYcOG8ejRI3ObK4QQQggsF78ldgshhBBCiMwiWSPFXn+g3b59O3Xr1k10fu+RI0c4ceKE5Vr3/3Q6HTt27KBt27bkyJHD4vULIYQQmZE147fEbiGEEEIIkdElKyk2duxYjhw5AsS/Ie7Zs2ei5+n1eqpVq2a51r1RtxBCCCGSz9rxW2K3EEIIIYTIyJKVFBs3bhwnTpxAr9czfPhwunfvTu7cuY3OUSqVuLq6UqlSpTRpqBBCCCHMI/FbCCGEEEKIpCUrKebj40OLFi2A+DfNtWrVwtXV1TAFIzo6mtjYWFxcXNKupUIIIYQwi8RvIYQQQgghkmb2QvuNGzcmICCAVq1aGY799ddfVKlShalTp6LT6SzaQCGEEEKknsRvIYQQQgghjJmdFJs3bx67du2icePGhmNFixZl4MCBbN26leXLl1u0gUIIIYRIPYnfQgghhBBCGEvW9MnX7d69myFDhvDVV18Zjrm7u9OhQwfUajVr166lS5cuFm2kEEIIIVJH4rcQQgghhBDGzE6KhYaGkitXrkTL/Pz8ePLkSaoblRiFQpEm9QohhBAfAmvEb4ndQgghxPvP39+fhw8fGr5WKBQ4OjpStGhR+vTpQ4UKFWjXrh2+vr5MmTIlyXqCgoKYO3cuR44cITQ0FHd3d6pWrUrPnj0NGwE9ePCAOnXqmFzr6OhInjx5+O6772jUqJHlP2Q6SviMa9eulY2OMgCzp0/6+flx4MCBRMsOHjxInjx5Ut2oxMi27kIIIUTKWSN+S+wWQgghModOnTpx7Ngxjh07xpEjR9i8eTPOzs58++23PHr06J3XazQa2rdvz7Nnz5g7dy4HDhxg9uzZPH78mK+//pqQkBCj8+fNm2e439GjR1m/fj25c+dm4MCB/P3332n0KdNH9uzZOXbsGGXKlLF2UwQpGCnWvn17hg4dSlhYGHXr1sXT05OQkBD++OMPfvnlFyZPnmx2I168eEFUVFSii/zmyJEDlUrF1atXza5XCCGEEPEsHb8ldgshhBDpJ/jVM36/dZygiGf4OGWljl81vJ2zptv9HR0d8fLyMnzt7e3N2LFjqVGjBr/99ts7rz9+/Dh37txh69atuLm5AeDr68uCBQuoVq0ae/bsoX379obz3dzcTO43Y8YMKlSowC+//ELp0qUt9+HSmUqlMvpswrrMToo1b96ciIgIFi5cyK+//mo47uHhwQ8//EDz5s2TXdfdu3cZMmQIFy5cSPKcwMBAc5sohBBCiDdYKn5L7BZCCCHS16HbJ1l8Zj06/X8vonZd/ZWuFdpSK18Vq7VLrY5PJ9ja2r7zXKUyfpLaoUOHaNasmeG4q6sru3btIkuWLMmqQ61WG+4LcPPmTaZMmcLZs2dxcnKiUqVKDB061JB00mq1zJ07l59++olXr15Ro0YNfHx8uHr1KuvWrePUqVN07NiRvn37smLFCnx9fdm2bRtPnz5lypQpHD16FJVKRZkyZRg6dCh58+YF4Pnz54wdO5ZTp04RFRVF0aJF6d+/PxUrVgTg4sWLTJkyhcDAQNRqNZUrV2bYsGHkyJHDZPqkVqtl3bp1bNq0iUePHpEjRw46dOjA119/DWBo46JFi5g+fTp37twhZ86cDBw4kLp16ybjOyXexuykGECbNm1o3bo1t2/fJiwsDFdXV/z8/Aw/6Mk1fvx47ty5Q8+ePcmWLZvZ1wshhBAi+SwRv9M7dj9+/Jjp06dz6tQpNBoNJUuWZOjQoRQoUCDJa0aOHMmPP/5odMzX15eDBw+maVuFEEIISwt+9cwkIQag1etYcmY9Rb0KpOuIsQRBQUFMmjQJR0dHatasyb59+956fpUqVShevDiDBw9m4cKFVK1alfLly1O1alXy5cv3zvu9ePGCefPmERUVZdhJOygoiNatW9OkSROGDh1KVFQU8+bN48svv2TPnj04OjoyY8YMtm/fzvjx4/Hz82Pjxo2sW7eOChUqGOrWarUcPnyYLVu2EBUVRXR0NO3ataNYsWKsX78epVLJqlWraNWqFbt378bHx4cxY8ag0WhYv349tra2LF68mB49enDkyBHs7Ozo2rUrrVq1YurUqYSHhzNq1CiGDx/O6tWrTT7blClT2LlzJz/88AMlSpTgyJEjTJw4kZiYGDp06GBo4/Tp0xkxYgTZs2dn1qxZDBkyhCNHjuDk5JT8b5wwkaKkGEB4eDi3b98mODiYevXqcefOHfLly2fWorpnzpxh4sSJRtvDCyGEECLtpDZ+p2fs1mg0dOnSBXd3dxYvXoy9vT3z5s3jm2++Yc+ePUm+Vb527RrdunWjbdu2hmMqlSrN2yuEEEJY2u+3jpskxBJo9Tp+v3Wcr0s2S7TckpYsWcLKlSsBiIuLQ6PRkD9/fgICAsiRI8c7r7e1tWXDhg2sXbuW/fv3s2nTJjZu3IharebLL79k2LBh2NjYGM7/7rvvDLFbp9MRFxdHyZIlWblyJUWKFAFg06ZNZMuWjZEjRxquCwgIoHLlyuzfv58GDRqwceNGhg0bxieffALEvzg7f/68Sfs6depkGAX2448/Eh4ezvTp0w2j0iZOnMipU6fYunUrvXr14t69exQsWJBcuXJhb2/PiBEjaNKkCSqVilevXhEaGoq3tze+vr7kypWLgIAAnj9/bnLfV69esWnTJoYOHUqTJk0AyJs3Lw8ePGDp0qV88803hnP79u1LlSrxIwN79OjBgQMHuH79uqxNlkopSootWrSIJUuWEB0djUKhoGTJkgQEBBAaGsrKlStxdXVNVj3Ozs6G+cRCCCGESFuWiN/pGbvPnj3L9evXOXLkCD4+PgBMnz6dSpUqcfDgQT7//HOTa/R6PTdu3KBLly6yXocQQoj3XlDEs7eWB7+j3FK++uor2rVrB8RPY3R3d8fFxcWsOuzt7enSpQtdunQhNDSU06dPs2PHDjZs2ICDgwODBg0ynDthwgRKlSpFdHQ0W7ZsYe/evXTu3JnKlSsbzrly5Qr//vuvSVIoJiaGmzdvcvPmTaKjo43WH1MoFJQrV85k3dOEhFhCvS9evDAaTfZ6vQA9e/Zk0KBBHDhwgHLlylG9enUaN26MnZ0ddnZ2fPvtt4wfP565c+dSuXJlatasSYMGDUz65NatW8TGxlKuXDmj4xUrVmTNmjVGiTQ/Pz/Dn52dnQGIjY1NtK9F8pk952H9+vXMmzePjh07snXrVsPOUm3btuX+/fvMmTMn2XU1a9aMDRs2yO5UQgghRBqzVPxOz9hdoEABli5dakiIwX9rkoSHhyd6zb1794iMjDR6cBRCCCHeVz5Ob58a6f2Ocktxc3MjT5485MmTh1y5cpmdEPvxxx/ZuHGj4WsPDw/q1avHokWLqFevHocPHzY638fHhzx58lCoUCFGjRqFv78/ffv25dy5c4ZzdDodlStXZseOHUb/HThwgM6dOxtGeSXnmcXOzs6o3nz58pnU+8svvzBixAgAPvnkE44ePcqUKVPw9fVl1apV1K9fn3///ReAgQMHcvDgQfr27Yter2f8+PG0bNkSjUZjdN+k2pawkdHr66cltnab5FJSz+yRYuvWraNLly706dMHrVZrOF6zZk369u3L0qVL+eGHH5JVl4ODA+fOneOTTz6hRIkS2NvbG5UrFAomTZpkbhOFEEII8QZLxe/0jN1eXl7UrFnT5HNER0dTrVq1RK+5fv264bwjR46gVCqpUaMG/fr1M/sB/nVqdcrXTlOplEb/F9IniZE+MSV9Ykz6w9SH0Cd1/Kqx6+qvaBOZQqlSKKnjl3g8zGhu3LjB7t27adq0qWGUUwJXV1c8PT3fev3IkSM5ffo0gwcPZs+ePTg4OFCgQAH27dtH9uzZDQmjsLAwhgwZQseOHSlVqhT29vb8/fffhimXABcuXDBKgr2pYMGC7Ny5ExcXF8NSDbGxsQwYMID69etTt25dZs6cSbNmzWjYsCENGzY0PJscOnQIlUrFmjVrGD58OF9//TVff/01586do3Xr1ly9etVo+Yf8+fNjY2PDuXPnjNp49uxZvLy8ZGZdOjA7Kfbo0SPDjgpv8vPz49mz5A/f3L59Oy4uLuh0ukR3sTJnfTIhhBBCJM1S8duSsTth96WknDx50ujB8bfffmPmzJl06NCBQoUKJXrN9evXUSqVeHt7s3jxYu7du8e0adP4999/WbNmTYo2BlAqFXh4pH4RW1dXh1TXkdlIn5iSPjElfWJM+sNUZu4Tb+esdK3QliVn1hslxlQKJd0qtLPKIvtJCQoK4siRIybHa9SoQceOHdm7dy/t2rXj+++/p3DhwoSGhnL8+HF27drFkiVL3lq3k5MT48ePp2PHjsyZM4ehQ4fSunVrtmzZwsCBA+nRowcAU6dO5dq1axQsWBAHBwfatWvH3Llz8fLyIn/+/GzdupULFy4k+UwE0LRpU5YuXUrv3r0ZNGgQzs7OLFy4kCNHjtCnTx9sbW25dOkSZ8+e5YcffiBr1qwcOXKEyMhIypQpg4eHB3v37iU6OpouXbqgVCrZvn07bm5u+Pn5ERYWZriXs7MzX375JXPnzsXd3Z0SJUpw7NgxNm7cSP/+/SUnkg7MToplz56d8+fPU7VqVZOyy5cvkz179mTXJbtACSGEEOnDUvHbkrHbx8fnrbtVvf52dNOmTYwfP56mTZsyePDgJK/p3r07rVu3xsPDA4h/2+vl5UWrVq24dOkSpUqVMrudOp2e8PBIs69LoFIpcXV1IDw8Cq028cWSPzTSJ6akT0xJnxiT/jCVmj6xxMuO9FIrXxWKehXg91vHCY54hrdTVur4VctQCTGAEydOcOLECZPj165dI1u2bPz4448sWLCASZMm8fTpU+zs7ChVqhQrVqwwWb8rMVWrVuWzzz5j7dq1NGrUiBIlSrB+/XpmzpzJ119/jUqlomzZsqxdu9bwUq1Pnz7ExsYycuRIoqKiqF27NnXq1CEmJibJ+7i4uLB+/XqmTZtG586d0Wq1FCtWjJUrV5I/f34AZs+ezeTJk+nevTsvX77Ez8+PGTNmUL58eQCWLVvGzJkzadWqFVqtltKlS7Nq1SqcnZ2NkmIAw4YNw8PDgxkzZvDs2TPy5s3LqFGjaNWqVXK7XqSCQm/mJNSlS5cyb948+vbtS61atWjUqBHr1q0jJCSEH374gY4dO9K9e3eLNO7WrVuyJkgyaLU6QkIiUny9Wq3Ew8OJ0NAI4uIkwIL0yZukP0xJn5iSPjGV0j7x8kr5NL+kpFf8TovYPX36dJYvX07Hjh0ZMmSI2W9NE97czp07l3r16pl9f4mzlid9Ykr6xJT0iTHpD1Op6ZO0iLUi4/ntt98oV66c0cjzTp06kS1bNlmqSQApGCn23Xff8eDBA2bMmMGMGTMAaN++PQBNmjSha9euya4rLCyMgIAATp8+jUajMSwSp9friYyM5MWLFwQGBprbRCGEEEK8wVLxO71jd0JCbMiQIXTq1Omd5w8ePJjg4GBWr15tOHbp0iUAPvroI4u1SwghhBAZ34oVK9i4cSODBw/G2dmZ33//nT///JOVK1dau2kigzA7KaZQKBg3bhwdO3bk1KlThIWF4eLiQoUKFShYsKBZdU2ePJm9e/fy8ccfc+vWLRwcHMibNy/nzp0jPDyccePGmds8IYQQQiTCUvE7PWP3qVOnWL58Oe3ataNJkyY8ffrUUObo6IiTkxPR0dG8fPmSLFmyoFKpqFevHj169GD+/Pk0bdqU27dvM27cOBo3bmyY8iCEEEKID8OMGTOYMmUKHTp0IDo6mo8++og5c+ZQuXJlazdNZBBmJ8US5MuXD51OR3h4OJ6enuTOndvsOo4ePUqvXr3o2rUrK1eu5PTp0wQEBBAREUHbtm25ceNGSpsnhBBCiESkNn6nZ+zes2cPEL+T5Lp164zKevbsSa9evdi3bx/Dhg3j999/J2fOnNSpU4eAgACWLl3KsmXLcHFxoUmTJvTt29di7RJCCCHE+yFnzpzMnz/f2s0QGViKkmLr1q1jyZIlPH/+3HAse/bs9O/fn8aNGye7nvDwcMqUKQPEb0WaMITRycmJTp06MX/+fIYNG5aSJgohhBDiDZaI3+kZu8ePH8/48ePfes5nn33GZ599ZnSsQYMGNGjQwCJtEEIIIYQQmZfZSbH169czceJE6tatyyeffIKnpydPnz5l7969DBo0CJVKlewHUQ8PD16+fAlA3rx5ef78OWFhYbi7u+Pj40NQUJC5zRNCCCFEIiwVvyV2CyGEEEKIzEJp7gVr166lbdu2zJ8/n2bNmlG9enVatGjB8uXL+eyzz8wamlilShUWL17Mw4cPyZ07N25ubmzfvh2AP/74w7CduhBCCCFSx1LxW2K3EEIIIYTILMxOij158gR/f/9Eyxo3bsz9+/eTXVefPn14/vy5YXv1rl27MnXqVCpVqsTq1atp2bKluc0TQgghRCIsFb8ldgshhBBCiMzC7OmTJUqU4OTJk1StWtWk7MqVKxQqVCjZdfn6+rJv3z7u3LkDQMeOHcmaNSt//fUXJUuWpEWLFuY2TwghhBCJsFT8ltgthBBCCCEyi2Qlxc6cOWP4c6NGjZg8eTJRUVE0aNAALy8vwsLCOHz4MOvWrWPChAlmNcDe3p7ChQsDEBMTQ+PGjWnSpIlZdQghhBDCVFrFb4ndQgghhBAiM1Do9Xr9u04qXLgwCoXC8HXCJUkdCwwMTHYDbt26xdy5czlx4gSvXr3ixx9/ZNu2bfj5+dGuXbtk1/Mh02p1hIREpPh6tVqJh4cToaERxMXpLNiy95f0iTHpD1PSJ6akT0yltE+8vFwscv+0it8fWuyWOGt50iempE9MSZ8Yk/4wlZo+sVSsFUK835I1Umzt2rVpcvPAwEDatGmDp6cnTZo0YePGjQCoVComTZqEs7OzTMMQQgghUigt4rfEbiGEEOLD0q5dO06fPm10zMbGhqxZs+Lv78+gQYNwcHDA39+fFi1a0KtXr0TrmTdvHtu3b+fgwYPp0WwhkiVZSbGKFSumyc2nTp1K8eLFWblyJQAbNmwAYOTIkcTExLB27Vp5sBZCCCFSKC3it8RuIYQQ4sPToEEDRowYYfg6MjKSY8eOMXnyZHQ6HWPGjGHbtm3Y2dlZsZVCmC9ZSbH58+fzxRdf4OPjk6wt2x0dHcmdOze1atVCrU76Fn///TezZs1CrVaj1WqNyho2bMiePXuS0zwhhBBCJCIt4rfEbiGEECL9RQcFEfTr/4gOCsLexwefT+ti7+OTbve3t7fHy8vL6FiePHm4fPky+/btY8yYMWTJkiXd2iOEpSQ7KVajRo1kP1RD/NokTZo0Ydq0aUmeY2dnR3R0dKJlYWFh2NraJuteQgghhDCVFvFbYrcQQgiRvoIP/sG/8xaC7r910x5u38lHPbvj7V/bii2Lfy5IeJH25vTJLVu2sHz5coKCgqhatSo5c+Y0ujYkJITx48dz9OhRVCoVX3zxBRcvXqRChQqGOv744w/mzZvHjRs38PHxoVGjRvTo0UOeN4TFJCspdvXq1UT/nBSNRsPixYvfuZZJtWrVmDt3LmXLljVknRUKBREREaxcuTLRbeOFEEIIkTxpEb8ldgshhBDpJzooyCQhBqDXarkxfxGuxYqm64ixBHFxcRw7doydO3fy1VdfmZTv2bOHcePGMXz4cKpWrcpvv/3G7NmzyZ49OwA6nY6uXbui1WpZvnw5NjY2TJ48mbNnz1KhQgUAjhw5Qt++fRk2bBhVq1bl3r17jB8/ntu3bzNnzpx0/bwi80pWUiwxL1++RK/X4+rqalJma2tLtWrVuHbt2lvrGDRoEF9++SX169c37JA1ZcoUbt++jV6vZ9asWSltnhBCCCESkdr4LbFbCCGESD9Bv/7PJCGWQK/VEvTr/8jTrk2at2P37t0cOHDA8HV0dDQ5cuSgc+fOdOvWzeT8devW0bBhQ9q0iW9bly5d+Pvvvw0v6U6fPs3Fixf55Zdf8PPzAyAgIAB/f39DHYsXL6ZVq1aGpFvu3LkZO3Ys33zzDQ8ePDAZeSZESpiVFLt58ybLli3j999/59WrVwA4OTlRp04dOnXqRKFChQznlitXjnLlyr21vuzZs7Nz505Wr17Nn3/+Se7cuYmMjKRx48Z07NgRb2/vFHwkIYQQQrzOkvFbYrcQQgiRfqKDgt5eHhycLu3w9/dn4MCB6PV6Ll68yMSJE6latSrdunVLdB3S69ev06hRI6NjZcqUMSTFrly5gpubmyEhBpA1a1by5ctn+PrKlStcvHiRbdu2GY7p9Xog/tlGkmLCEpKdFNu3bx/Dhg1DqVRStWpVcufOjVqt5v79+xw8eJBffvmFSZMm0bhxY7Ma4OHhQb9+/cxuuBBCCCHeLS3it8RuIYQQIn28a2qkfTq9jHJyciJPnjwA5M2bF29vbzp27IhKpWLMmDGJXqN7Y4SbjY2N4c8qlcqkPLHrv/3220R3tX5z0X8hUipZSbGbN28ybNgwatasyfjx43FzczMqf/XqFaNHj2bkyJEUKVKE/PnzJ7sBQUFBXL58mZcvXyZa3rx582TXJYQQQoj/pFX8ltgthBBCpA+fT+vycPtO9G/s+AygUKnw+bSuFVoFlStXpmPHjqxYsQJ/f39q1KhhVF6kSBH++usvOnToYDh26dIlw58LFy7My5cvuXnzpuH5IzQ0lLt37xrOKVCgALdv3zYk4wBOnTrF2rVrGTNmDI6Ojmn06cSHJFlJsdWrV/PRRx8xe/ZsVCqVSbmzszPTp0+ndevWrFmzhnHjxiXr5vv27WPo0KFoNJpEyxUKhTxYCyGEECmUFvFbYrcQQgiRfux9fPioZ3duzF9klBhTqFR81LOHVRbZT9CnTx9+//13xowZw+7du43KunTpQvfu3Vm+fDl169bl6NGjHDhwwLDMQqVKlShVqhSDBw/mhx9+wN7enunTpxMVFYVCoQDgu+++o2/fvsyfP59GjRrx5MkTRowYQc6cOWWkmLCYZCXFTp48Sffu3RN9oE6gVCr56quvkr3lO8QvpFeyZEmGDRuGu7t7sq8TQgghxLulRfyW2C2EEEKkL2//2rgWK0rQr/8jOjgYe29vfD6ta9WEGICdnR3jx4+nffv2zJ4926isVq1azJw5k3nz5jFnzhxKly5Np06d2LNnj+GcefPmMW7cODp06ICdnR2tW7fm1q1bhmmW9evXZ/bs2SxZsoTFixfj7u5uWNtMCEtJVlIsODjYaMhiUnLmzMnTp0+TffPg4GDGjRtHsWLFkn2NEEIIIZInLeK3xG4hhBAi/dn7+KTLLpOJWbduXZJlFStWNCyeP3LkSKOyhg0b0rBhQ6Nj/fv3ByAkJIQrV64QEBBgSIJpNBpWr16Nz2vJvgYNGtCgQQOLfA4hEqNMzkmurq4EJ2NXi+DgYLJkyZLsm5cuXdrwF0gIIYQQlpUW8VtitxBCCCFSS61W069fP2bOnMndu3e5ceMGo0ePxtbW1mR9MiHSUrJGipUtW5YdO3aYZHnf9PPPP1O2bNlk33z06NF069aNV69eUaJEiUQXyqtQoUKy6xNCCCHEf9IifkvsFkIIIURqubq6snjxYgICAtiyZQtKpZKyZcuydu1aswbaCJFayUqKffPNN7Rt25aFCxfSo0ePRM+ZOXMmJ0+eZNOmTcm++Z07d3j27JlhHZOEBfUA9Ho9CoWCwMDAZNcnhBBCiP+kRfyW2C2EEEIIS6hcuTKbN2+2djPEBy5ZSbFy5crRr18/Zs2axd69e6lduza+vr6o1WoePnzIr7/+yu3btxkyZAglS5ZM9s2nTp1K7ty5+e6778iaNWuKP4QQQgghTKVF/JbYLYQQQgghMotkJcUgfkvVAgUKMH/+fJYvX25UVrp0aZYtW0b16tXNuvmjR49YvHgxVatWNes6IYQQQiSPpeO3xG4hhBBCCJFZJDspBlC7dm1q165NaGgoDx8+RK/X4+vrm+I5vwULFuTx48cpulYIIYQQyWPJ+C2xWwghhBBCZBZmJcUSeHh44OHhkeqbDxs2jIEDB6LVaildujTOzs4m5+TIkSPV9xFCCCGEZeK3xG4hhBBCCJFZpCgpZikdO3YkLi6OUaNGGS3U+zpZrFcIIYTIOCR2CyGEEEKIzMKqSbGxY8da5b6jRo1Co9EwZcoUo+MdO3bkxIkTRscqVqzIunXrAIiJiWHKlCns37+f6Oho/P39GTFihNH0k5MnTzJ9+nRu3rxJ9uzZ6dWrF40aNTKUJ6cOIYQQIqOyVuwWQgghhBDC0qyaFGvRokWyztPr9QwfPpxevXqlakqGTqcjICCALVu2JHrva9euMWbMGOrWrWs4ZmNjY/jzmDFjOHv2LPPmzcPW1pbRo0fTu3dv1q9fD8DNmzfp2rUrHTt2ZPr06Rw6dIjBgweTJUsWqlSpkqw6hBBCiIwsvWO3EEIIIYQQaUVp7QYkh06nY8eOHYSGhqa4jps3b9K6dWt+/PHHRB/Onz9/zvPnzylVqhReXl6G/9zd3QEICgpix44djBw5kvLly1OyZElmzZrFmTNnOH/+PABr1qyhUKFC9OvXj/z589O5c2fq169v2O0rOXUIIYQQmYElYrcQQgghrM/f35958+ZZuxlCpIn3IikG8W+cU+PPP/8kf/787Nmzh5w5c5qUX7t2DYVCQb58+RK9/ty5cwBUrlzZcCxfvnz4+Phw5swZAM6ePWsYEZagcuXKnDt3Dr1en6w6hBBCiMwitbFbCCGEEPFCn0dycN9Vflr3Fwf3XSX0eaS1myREpmDV6ZPpqU2bNm8tv379Oi4uLowbN47jx4/j6OhI/fr16dGjB7a2tgQFBeHh4YGdnZ3Rdd7e3jx58gSAJ0+ekC1bNpPyqKgoQkNDk1VHSqnVKc9vqlRKo/8L6ZM3SX+Ykj4xJX1iSvpECCGEEKl14cx9dm29iF7338umE3/cpEmrkpSqkMuKLRPi/ZcpkmIPHjygTp06SZafPHnynQvZX79+nZiYGEqWLEnHjh0JDAxk2rRpPHr0iGnTphEVFYWtra3JdXZ2dsTExAAQHR1tck7C1xqNJll1pIRSqcDDwynF1ydwdXVIdR2ZjfSJMekPU9InpqRPTEmfCCGEECIlQp9HmiTEAHQ6Pbu3XiS3nyceno5Wal3877mzZ8/mwIEDBAcH4+joSJUqVRg9erThd/AdO3awbNky7t27h7u7O/Xr12fQoEHY2tqi1WqZNWsWe/bs4fnz5+TMmZNvvvmGr7/+2nCPHTt2sHLlSu7cuUPWrFn5/PPP6dq1KyqVylofW2QimSIp5uPjw759+5Isd3Nze2cd48aNY8iQIYZzCxYsiI2NDf369WPw4MHY29uj0WhMrouJicHBIf6XHTs7O5NzEr52cHBIVh0podPpCQ9P+fBZlUqJq6sD4eFRaLW6FNeTmUifGJP+MCV9Ykr6xFRK+8QSLzqEEEII8f47f+qeSUIsgU6n5/ype/g3LJzOrfrPtGnT+OOPP5gyZQq+vr5cu3aNYcOGsWjRIkaMGMHVq1cZOXIkM2bMoGTJkty8eZMBAwbg4eFBjx492LhxI/v372f27Nn4+Pjwxx9/MGbMGAoUKED58uVZvXo1M2fOZOjQoVSrVo0LFy4wbtw4QkNDGTFihNU+t8g8MkVSzMbGhvz586eqDrVabZI8K1CgAPDftMiwsDA0Go3RaK/g4GB8fHwAyJ49O8HBwUZ1JGTLXVxcklVHSsXFpf4XUK1WZ5F6MhPpE2PSH6akT0xJn5iSPhFCCCFESrxr7bCwEOuuLVaiRAnq169P+fLlAfD19aVq1apcv34diJ/VpVAo8PX1JUeOHOTIkYMVK1bg7OwMwL1793B0dCRnzpx4e3vTtm1b/Pz8yJcvH3q9nmXLltG2bVvDckh58+YlLCyM6dOn07t3b1xcXKzzwUWmIYuc/L927doxbNgwo2OXLl3CxsaGvHnzUq5cOXQ6nWGxfIDbt28TFBREhQoVAChfvjynT582quPPP/+kbNmyKJXKZNUhhBBCiP/cu3eP7t27U758ecqXL0///v0JCgp66zUPHjyga9eulC1blurVqxMQEIBWq02nFgshhBCW866pke5ZrDd1EqBZs2ZoNBpmzJhBz549adiwIfv370eni38Z+PHHH1OmTBk+//xz6tSpw6hRowgJCSFv3rxA/Nrfr169ombNmnz22WfMnDmTLFmy4OnpSUhICM+ePaNcuXJG96xYsSKxsbHcunUrvT+uyITem6SYQqFI0/rr1avHzp072bRpE/fv32ffvn1MmzaNzp074+zsjI+PD40aNWLkyJGcOnWKixcv0r9/fypWrEjp0qWB+MTaxYsXmTFjBjdv3mTlypXs37+fb7/9FiBZdQghhBCZRWpjt0ajoUOHDuh0OjZu3Mi6desIDg6mW7duSe5sGRsbS+fOnQHYvHkzY8aMYdOmTSxYsCBVbRFCCCGsoUyl3CiVicdTpVJBmUq507lFxkaNGkW/fv2IjY3F39+fmTNn0qhRI0O5nZ0da9euZfv27Xz55ZfcuXOHbt26MXz4cCB+5Nevv/7K8uXLqVy5MocOHaJ58+Zs3749yVifkHBTqzPFxDdhZe/NT1Fab+vetm1bFAoF69atY9KkSXh5edGhQwe6dOliOGf8+PFMmjSJnj17AlCjRg1GjhxpKC9QoAALFy5k+vTprFmzhpw5czJ9+nSqVKmS7DqEEEKIzCK1sfvx48eUKFHCaLHeDh068P333xMaGproJjoHDhzg0aNHbN26FTc3NwoWLMjz58+ZNm0a3bp1S3TDGyGEECKj8vB0pEmrkuzeehHda2uLKZUKmnxZyqqL7IeGhrJlyxZmz55Nw4YNDcdv3bqFo2N8uw4fPsylS5fo2bMnRYsWpUuXLixatIjFixczefJk1q5di6enJ40aNaJatWoMHjyYjh07sm/fPlq0aEHWrFk5d+4cdevWNdR/9uxZbGxsyJ3buglBkTlYNSn26NGjJMuUSiWOjo64urqiUqm4evWqxe67bt26RI+3adPGMFc5MY6OjkyYMIEJEyYkeU6NGjWoUaNGquoQQgghMqr0jN158uRhzpw5RvfetGkTxYoVw8PDI9Frzp49S7FixYzWCa1cuTKvXr0iMDCQUqVKpapNQgghRHorVSEXuf08OX/qHmEhkbhncaRMpdzpmhC7e/cuR44cMTpmb2+Pi4sLv//+O8WKFSM6Opr169fzzz//GOKtjY0NCxYswNnZmTp16vDixQsOHTpEmTJlAAgJCWHBggXY29tTuHBhbt26RWBgIO3btwegc+fOzJ49m1y5clGtWjUuXrzI/Pnz+fLLL2U9MWERVk2K+fv7v3NqhZubG+3bt6dHjx7p1CohhBBCJMVasbtTp04cP34cNzc31qxZk2QbEjbHeZ23tzcQP/JMkmJCCCHeRx6ejlbdZXL37t3s3r3b6Jivry9z5sxhypQpNGnSBDc3NypVqkT//v1ZsmQJUVFRVK1alYkTJ7Jy5Upmz56Nvb09NWvWZOjQoQD07NmT2NhYJkyYwNOnT/Hy8uLrr7+ma9euQHz8t7W1Zc2aNUyaNIls2bLx3XffGZZKECK1FPq0npf4Fjt27GDUqFFUrFiRxo0b4+npyfPnz/n11185dOgQPXr0ICIigg0bNjB06FBat25traZmaFqtjpCQiBRfr1Yr8fBwIjQ0QnZH+3/SJ8akP0xJn5iSPjGV0j7x8sq4bz4tGbsfPHhAnTp1kiw/efKkYYpkYGAgGo2GBQsWcOHCBXbs2EH27NlNrunQoQPe3t5MmzbNcEyn01GkSBGmTZtGs2bNzP7MWq2O8PAos69LoFIpcXV1IDw8Cq1W/m6A9ElipE9MSZ8Yk/4wlZo+8fBwSqNWCSHeJ1YdKbZ3714aNWrE5MmTjY43b96c0aNHc/nyZRYvXoy7uzubNm2SpJgQQghhZZaM3T4+Puzbty/J8tenQBYpUgSAgIAAateuzU8//WRYn/N19vb2aDQao2MxMTEAhvVNzKVUKizyy5Orq0Oq68hspE9MSZ+Ykj4xJv1hSvpECJFSVk2KnT59moULFyZa9umnn/L9998DUKZMGRYtWpSeTRNCCCFEIiwZu21sbMifP3+S5Y8fP+bChQvUr1/fcMzR0ZGcOXMSHByc6DXZsmXj+vXrRscSzvXx8Xlre5Ki0+kJD49M0bUgozsSI31iSvrElPSJMekPUzJSTAiRWlZNirm7u3P16lWqVatmUnb16lWcnZ0BiIyMxMFBsv9CCCGEtaVn7L569Sp9+vThl19+wc/PD4Dw8HBu375N06ZNE72mQoUK7Nixg1evXhna8ueff+Lk5EThwilfi8USU4K1Wp1MLX6D9Ikp6RNT0ifGpD9MSZ8IIVJKac2bN2nShLlz57JmzRqCgoKIjY3lyZMnrFu3jvnz59OkSRNevHjBmjVrZGFcIYQQIgNIz9hdrVo1ChcuzJAhQ7h8+TL//PMPvXv3xsPDg5YtWwKg0Wh4+vSpYcpk3bp18fLyom/fvly9epX//e9/zJo1y7BQrxBCCCGEEAmsOlKsb9++PH/+nClTpjBlyhTDcaVSScuWLenXrx8HDhzgypUrrFmzxootFUIIIQSkb+y2tbVl2bJlTJ06lW+//RaNRkP16tVZv369YRTY+fPnad++PWvXrqVSpUrY2dmxfPlyxo4dS6tWrXBzc6N169ayi7UQQgghhDBh1d0nE9y7d49Tp04RGhqKj48PZcuWJVeuXAC8ePECBwcHebv7FrL7pOVJnxiT/jAlfWJK+sRUZtx9MsGHFLslzlqe9Ikp6RNT0ifGpD9MpaZP3odYK4RIe1YdKZYgZ86cREZGEhwcTNmyZYmLizOUvb7zlBBCCCEyBondQgghhBDifWf1pNjOnTuZOXMmT58+RaFQ8OOPPzJv3jxsbGyYOXNmpnnLLIQQQmQWEruFEEIIIURmYNWF9vft28eQIUOoXLkys2bNQqeLH/L6ySefcPjw4SS3fBdCCCGEdUjsFkIIIYQQmYVVR4otXryYr776ijFjxqDVag3HW7ZsSUhICFu3bqVv377Wa6AQQgghjEjsFkIIIYQQmYVVR4rdvn2bTz75JNGyUqVKERQUlM4tEkIIIcTbSOwWQgghhBCZhVWTYp6enty8eTPRsps3b+Lp6ZnOLRJCCCHE20jsFkIIIYQQmYVVk2INGzZk7ty57N+/H41GA4BCoeDy5cssXLiQ+vXrW7N5QgghhHiDxG4hhBBCCJFZWHVNsb59+3L9+nX69u2LUhmfn2vXrh2RkZGUL1+ePn36WLN5QgghhHiDxG4hhBBCCJFZWDUpZmtry/Llyzl+/DgnT57kxYsXuLi4ULFiRWrWrIlCobBm84QQQgjxBondQgghhBAis7BqUixBtWrVqFatmrWbIYQQQohkktgthBBCCCHed1ZPih0/fpw//viDqKgodDqdUZlCoWDSpElWapkQQgghEiOxWwghhBBCZAZWTYqtXLmSadOmYWdnR5YsWUymXMgUDCGEECJjkdgthBBCCCEyC6smxdavX0+TJk2YOHEitra21myKEEIIIZJBYrcQQgghhMgslNa8+bNnz/j888/loVoIIYR4T0jsFkIIIYQQmYVVk2JFixbl33//tWYThBBCCGEGid1CCCGEECKzsOr0pUaJzgAALQlJREFUyeHDh9O3b18cHR0pVaoUDg4OJufkyJHDCi0TQgghRGIkdgshhBBCiMzCqkmxr7/+Gp1Ox/Dhw5NcmDcwMDCdWyWEEEKIpEjsFkIIIYQQmYVVk2ITJkyw5u2FEEIIYSaJ3UIIIYQQIrOwalKsRYsW1ry9EEIIIcwksVsIIYQQQmQW6b7Q/uDBg3n27JlZ1zx58oQBAwakUYuEEEII8TYSu4UQQgghRGaU7kmxwoUL07hxYyZMmMDFixffeu7FixcZMWIETZo0oUiRIunUQiGEEEK8TmK3EEIIIYTIjNJ9+mSnTp2oWbMmM2bM4Msvv8Tb25sSJUqQM2dOHBwcePnyJY8fP+b8+fOEhoZSq1YtNmzYQMGCBdO7qUIIIYRAYrcQQgghhMicrLKmWP78+Vm0aBHXr19n9+7dnDp1inPnzvHy5Us8PDzw9fXl66+/5tNPP6VQoULWaKIQQgghXiOxWwghhBBCZDZWXWi/YMGCst6IEEII8R6R2C2EEEIIITKLdF9TTAghhBBCCCGEEEIIa5OkmBBCCCGEEEIIIYT44EhSTAghhBBCCCGEEEJ8cCQpJoQQQgghhBBCCCE+OJIUE0IIIYQQQgghhBAfHEmKCSGEEEIIIYQQQogPjiTFhBBCCCGEEEIIIcQHR5JiQgghhBBCCCGEEOKDI0kxIYQQQgghhBBCCPHBkaSYEEIIIYQQQgghhPjgqK3dACGEEEKIpNy7d4/Jkydz5swZAGrUqMGQIUPw8fFJ8ppFixYREBBgcvzatWtp1UwhhBBCCPEekpFiQgghhMiQNBoNHTp0QKfTsXHjRtatW0dwcDDdunVDr9cned21a9do1qwZx44dM/pPCCGEEEKI10lSTAghhBAZ0uPHjylRogSTJ0+mYMGCFClShA4dOnDlyhVCQ0OTvO769esULVoULy8vo/+EEEIIIYR4nUyfFEIIIUSGlCdPHubMmWP4+tGjR2zatIlixYrh4eGR6DUajYY7d+7g5+eXXs0UQgghhBDvKUmKCSGEECLD69SpE8ePH8fNzY01a9agUCgSPe/GjRtotVoOHDjAxIkTiYmJoUKFCgwaNAhvb+90brUQQgghhMjIJCkmhBBCCKt48OABderUSbL85MmTZMmSBYBBgwbRp08fFixYQIcOHdixYwfZs2c3ueb69esAODg4MGfOHJ4/f86sWbNo3749O3bswN7ePkVtVatTvuKESqU0+r+QPkmM9Ikp6RNj0h+mpE+EEKml0L9tpVrxXtBqdYSERKT4erVaiYeHE6GhEcTF6SzYsveX9Ikx6Q9T0iempE9MpbRPvLxc0rBVGUdsbCz37t1Lsjxv3ryoVCqjY5GRkdSuXfv/2rv3+Kiqc//j370n90BC5BKQiyAIgRAggSRwEkQQKYeKR1FrexQvoGIVrFor9niKgNJaQUBBX1RRasELbaW01NtPjkoVuQUQL9wEAQ0SgnIJ5D57r98faQbHSUBhkkkyn7evvCRrzd6z8sxkPzvPrL22xo4dq4kTJ9a43eHDh33FNEkqLCzUhRdeqNmzZ2vUqFE/eJzGmFpnpgEAAKDxYqYYAAAIicjISHXt2rXW/gMHDmjLli0aOXKkry0uLk4dOnRQYWFhrdt9uyAmSW3atFGLFi1UUFBwRuN0XaOiopIz2laqmsGQkBCroqJSOQ4FY4mY1ISYBCIm/ohHoLOJSVJSfB2NCkBjQlEMAAA0SNu3b9cvfvELvf76676F84uKirRnzx5ddtllNW4zZ84cvfHGG3rjjTd8s7vy8/N15MgRdevW7YzHEozZj47jMovyO4hJIGISiJj4Ix6BiAmAM8XF1wAAoEHKyclRSkqKJk+erE8++USffvqp7rzzTiUlJenKK6+UVHW3yUOHDqmiokKSdMkll2j//v2aOnWq9uzZow0bNmjSpEnKyMjQ4MGDQ/njAAAAoIGhKAYAABqkqKgoPfPMM+rUqZNuvvlmjR07VgkJCVqyZImaNWsmSdq8ebNyc3O1efNmSVLv3r31zDPPaMeOHRozZowmTpyonj17asGCBawLBgAAAD9cPgkAABqsNm3a6LHHHqu1Pzs7Wzt27PBrGzRokAYNGlTXQwMAAEAjx0wxAAAAAAAAhB1migEAAKDJ83hsRZsS2d4yyfbI64lVuRshY0I9MgAAECoUxQAAANCkRdmOIo7u0eE3n1Hl4a8kWYrt0ldJl4xTsZ0o16UyBgBAOOLySQAAADRZlmUpsrRQB1+a/u+CmCQZle75UAdfnKI4FYd0fAAAIHQoigEAAKDJirYrdHTVC5ICZ4M5J46q4stP5fFwSgwAQDjiDAAAAABNlsdUqnz/Z7X2l+3eLI/HqscRAQCAhoKiGAAAAJosI1ue+Ba19ke0aMNi+wAAhCmKYgAAAGiyKuw4JQz8r1p6LcX1HqLKSqdexwQAABoGimIAAABosrxeV1Fd+is+dbB/h+1Rq9GTVBGREJqBAQCAkIsI9QAAAACAulTsRCt+8FglDLxc5ft3yIqKVXS7biqz4lTpekI9PAAAECIUxQAAANDklbpRkqelPF1yZYxRhWtquiElAAAIIxTFAAAAEDYcxw31EAAAQAPBmmIAAAAAAAAIOxTFAAAAAAAAEHYoigEAAAAAACDsUBQDAAAAAABA2AmbotiBAwd0zz33KCcnR5mZmRo/frw+++wzv8e8/vrrGjVqlPr06aPLL79ca9as8es/cuSIfvnLXyozM1NZWVmaNm2aSktLg74PAAAAAAAA1K2wKIpVVFTo1ltv1aFDh7RgwQK9+OKLio+P1w033KDDhw9LktauXatf/epX+ulPf6q//e1vGjRokG699Vbt3r3bt58777xT+/bt0x//+Ec9/vjjWrVqlaZOnerrD8Y+AAAAAAAAUPfCoiiWl5ennTt3atasWUpLS9MFF1ygmTNnqqSkRG+//bYk6ZlnntHw4cN1/fXXq2vXrpo8ebJSU1P1/PPPS5I2b96s9evX6/e//71SU1M1aNAgTZ8+XX//+9918ODBoO0DAAAAAAAAdS8simIXXHCBnn76aSUnJ/vabLvqRy8qKpLrutq0aZMGDRrkt112drY2bNggqaqw1rp1a3Xt2tXXn5WVJcuytHHjxqDsAwAAAAAAAPUjLIpirVu31pAhQ/zaFi9erLKyMuXk5KioqEglJSVq27at32PatGmjgoICSdLBgwfVrl07v/6oqCi1aNFCBw4cCMo+AAAAAAAAUD8iQj2AYMjPz9fFF19ca/+aNWt0zjnn+L5/66239Nhjj+nGG29Ujx49fEWrqKgov+2io6NVXl4uSSotLQ3o//ZjysrKznofZyMi4szrmx6P7fd/EJPvIh6BiEkgYhKImAAAAAANV5MoiiUnJ+u1116rtT8xMdH375deekkPPfSQLrvsMt13332SqopSUtWC/N9WXl6u2NhYSVJMTExAf/Vj4uLigrKPM2XblpKS4s94+2oJCbFnvY+mhpj4Ix6BiEmgph6TygqvyssdRUZ6FB3z/dJoU48JAAAA0Bg1iaJYZGSk3zpdtZk5c6YWLlyom266SZMnT5ZlWZKkFi1aKC4uToWFhX6PLyws9K1D1rZtW61cudKvv6KiQkePHlWbNm2Cso8z5bpGRUUlZ7y9x2MrISFWRUWlchz3jPfTlBATf8QjEDEJ1NRjYkkqLa7U6rd3q2B/kZJaxilnWFclnhNb1VmDM41JMD7oAAAAAHBqTaIo9n1UF8QmT56scePG+fVZlqWMjAytX79eV199ta993bp1GjBggCQpMzNTs2bN0r59+3TeeedJktavXy9J6t+/f1D2cTa83rP/A9Rx3KDspykhJv6IRyBiEqgpxsTjsfR1QbFefm6DjKlqO/x1sXbvOKQfXd5L3Xq1keuaWrdvijEBAAAAGruwWORk3bp1WrhwocaOHavRo0fr0KFDvq/i4mJJ0k033aRXX31VixYt0u7du/Xoo49q27ZtuuGGGyRJffv2VUZGhu6++2599NFHWrt2raZMmaLLL7/cNxMsGPsAADQ8riP9868f+wpi37ZyxXa5Tu0FMQAAAAANU1gUxf75z39KqrrjZG5urt/Xc889J0nKzc3Vb3/7W7300ku64oortHbtWi1YsMB3WaZlWZo/f746dOigG264QXfddZcuvPBCTZ061fc8wdgHAKDhqSjz6vixshr7HMfVscOlsmq5hBIAAABAw2QZU9Pn3mhMHMfV4cPFZ7x9RIStpKR4HTlSzOU9/0ZM/BGPQMQkUFOOibfc0TNz3q+1/9oJ2UpIigloP9OYtG7d/IzGibpBng0+YhKImAQiJv6IR6CziQm5FoAUJjPFgLoQ4bFl/fu/iAh+lYCmLDI6Qi3OqfkuwRGRthJbcHdJAAAAoLEJm4X2gWCxbUvGkVb/325t3XJAliWlZbRXZm5nydYpF9sG0DjZHkuXXdNHLzy9PuAukj++qo9sj9QEb7gJAAAANGkUxYAfyDjS809+oOITFb629e/v1fZPCjT2toEhHFnj4fHYkjEypqrYwCUAaOgcx1VCUoxuuTtXm9Z9oa++PKZzWsYpc3AXxcRFyKEYDgAAADQ6FMWAH8DjsbVl/Zd+BbFqRUfL9Nm2QnXvnRwwkwQn2Zal/D1HtPGDffJ6XfXqd65Seiczyw4NnuMaWRGWsod0kesYX0GX9y0AAADQOFEUA34A1zHa/lFBrf1btxzQBb2S63FEjYttWXrtlU+0Z+fXvrYD+ceUt3qvrpuQHcKRAd9f9cxG10sxDAAAAGjMWB0c+AEsS4qMqr2WHBXlkcVvVY1s29I3hcV+BbFqx46UavO6L7lhAQAAAACg3vAXKJosy7IUFeVRZKQnePu0LWXmnldrf2ZOZxnD7JGaeDy2Plz/Za39H2/cL6eS2AEAAAAA6gdFMTRJtmWp6HCp3l+5Wxve26uKMke2ZZ31fh3HVcfOSerao1VAX88+bdWqbTPWFzpTZ//yAGji8vLy1LNnT61bt+6Uj8vPz9eECROUkZGh3NxczZ07V47j1NMoAQAA0FiwphiaHI9ta8XLW7Tv88O+tjXvfq5BF52vjEGd5J7lTC7HGI0c01tHD5fq47x8WZalPpkdlNAi5qz33ZQ5jqt+WR21/eOa12RLy2gvT6QlL+s0AajB8ePHdd9998l1T30jk8rKSo0fP16dO3fWyy+/rC+++EIPPPCAbNvWnXfeWU+jBQAAQGNAUQxNSkSEre0fFfgVxKqtefdz9ejdVnHNI3W2tSvXGCWeE6uhP+4hyVJlpZeC2Gm4rlHL1vHq0r1VwLpiiUmxSs/u6FvAHAC+a+rUqerYsaP2799/yse9+eab+uqrr/TnP/9ZiYmJ6t69u7755hs9+uijuu222xQVFVVPIwYAAEBDx+WTaFIcr1He6n219m9e94UiIoKzxpgxRhUVjioqvGddZAsXroxGXdlbV1ybro5dktSuQ6KGj+5ZdedJjkYAavH3v/9dmzdv1v/8z/+c9rF5eXlKTU1VYmKir23gwIE6ceKEtm3bVpfDBAAAQCPDTDE0LcaovMxba3dpSWWtfZZlsUh+PXCNUfvOiTq3Uz9JRrbHqpohxiQxADXIz8/XjBkz9NRTTyk+Pv60jy8oKFDbtm392tq0aSNJOnDggPr27XtG4zibu+N6PLbf/0FMakJMAhETf8QjEDEBcLYoiqFJsSNsdU1prY831nx5Ta++7fwWwrdtS8aRio6VqrzMq5at4+U5iz988P04jpFU9Tq4rCEGhK38/HxdfPHFtfavXr1av/rVr3TNNddowIABys/PP+0+y8rKlJCQ4NcWHR0tSSovLz+jcdq2paSk0xfkTichIfas99HUEJNAxCQQMfFHPAIREwBniqIYmhTHcZUztKu2f1ygygr/O40ltYxT+04t5DhVU5Js21LR4TL9+Y95frPL0rM7Knd4t3odNwCEo+TkZL322mu19r/88ssqLS3VpEmTvvc+Y2JiVFFR4ddWXQyLi4s7o3G6rlFRUckZbStVzWBISIhVUVGpLweFO2ISqK5iEq0yqfgblX+5TXZsM0V36KnKiGbymuAsJ1GXeJ/4Ix6BziYmwfiwA0DjR1EMdcayJNu25TpGliTLY9VLAvdE2Ro36T/0zps79dnWQkVE2OqX1VFZuZ1lLFVPUJJxjF5cuF7OdxZ337zuS7Vu21zZg7vU+VgBIJxFRkaqa9eutfYvW7ZMhYWFys7OliTfJe633HKLLr/8ck2fPj1gm7Zt22rnzp1+bYWFhZKqinBnKhg3AnEclxuKfAcxCRTMmDTzlOnIa/NVtu+Tk42WrdaX3y0ruZcq3YZfGJN4n3wX8QhETACcKYpiqBMejyVvuat3/t827fj0oDweW336t9fAIedLtvwuYQw21zXyRNkacVkvXXJpT0mqWrfKcX0FsYgIW599WhhQEKv2wdu7ldr33DobIwDg9BYvXiyv9+RM3oMHD2rs2LF6+OGHlZOTU+M2mZmZWr58uU6cOKFmzZpJktauXav4+HilpKTUy7iBhiAyQirZstK/ICZJxtWh5XN07i1zVamEmjcGACBMsHgS6oRTabRo/gfa9lGBXMeossLRxjVfaMkf1vkWVPd4bEVGehQZ6ZFlBff5jZEc15UrI1emqiD2LZZl6ZvCE7Vuf+J4uVyXT5sAIJTat2+v8847z/d17rlVH1YkJyerZcuWkqSKigodOnTId8nk8OHD1bp1a911113avn27Vq5cqdmzZ2vcuHGKiooK2c8C1Lcot0TH82q5PNm4Kt2Vd1Y3kAAAoCkgEyLoIjy21r+3p8a7QB47Uqr8L47IY9n68vPDemPZp1r1xk6VHq+UHezK2Ck4jqsOXc6ptb9Vm2byRDSOSwoAIJxt3rxZubm52rx5s6SqRfUXLlwo13X1k5/8RNOmTdN///d/6/bbbw/xSIH6ZRkjt7z2tfC8xw/LqsdzLwAAGiIun0TQOV5Xn20rrLHP9lhq0SJOLzy9Tke+OXmitmVDvnKGdVW/7I5yTd3fjdB1jc7tkKj45tEqPh54N7JhP05Rs+bROnIksLAHAAiNDh06aMeOHX5t2dnZAW3nnXeennvuufocGtDgOFakotqer4qCz2vsj+3cR+Us1g4ACHPMFEPwWZaio2uut/ZMa6eP8vL9CmLVVr+9u8bZZXXGlsZOyFb7Ti18TbFxkRr9kz5KPrd5/Y0DAAAgyMoVraSLb6yxL/KcdvK07Fina7wCANAYMFMMQeeJsJSZ21mvvfJJQF/31GSt+POWWrfdtuWA+uecp8pKpy6HKKlqtpgdaevya/vJW1l1x5ro6AjZEZbE1QQAAKARc10jb/NzlfzTKTr81rOq/Ga/ZEcovud/KHHwNTph4uS7AxEAAGGKohiCzut1dX73VurSvZX27Pzar695Ykytd3yUpIry+r1c0RgjI8mOsBQV4ZGRkeOYRrHwbPUYuf00ADRe9Xkst21Ltm3LdV25riGPhIEKN0JOUledc/VvZDsVkm2r0o7TcccWBTFIUmSkR8ZIXm/dfyB9JixLivRIlnHlVYQcLvkFEGQUxVAnHGM06sreKjpSpk+3fKXISI9S+52r+OZR6pbSptY1x1LS2jXYpNxQ2JalshKvtu84IDvCVtcerRUZ5amXtdgAAMERa1fIU35MpTs2S7ZHzc5PlzeyucrcyKA/l21bitMJeQ/uUcWhLxTXLUOWZalkxxZZnkg1O7+fKiOaq9zltLApchyjEsVIVkxVHYzTLEiKtctllx1V6ScbJNtWswsy5Y1OVJnbcO7SG2NXyFPytY5vfF1O8VHFdstU8279VaxmXPoLIGg4+0GdcY1R86QYDb6km4yRKisdOa6roaN6aO/ub1RZ4X9W1rlrSyUkxVDcOQXbsrTqzc/0yab9vrb/++d25Q7vpr6ZHYgdADQCcZ5ynVi9VMUfve1rO/rOYiUMvFyx6aNU6gTvj1LbthRXcUgHX5oqt/SEWv3nBB1bs0wlO9affNDbzytx8DWKSb24Qf1BDKBuxHnKdeK9F1T8yb98bcfe/7Oa9R+puMwxKm0Ax4Fo26vKT/9Ph95b6msr2/uxita8ouRrH9IJK0Gc9gIIhoZ/jRgaNWOMKioc3xphxkiR0REad2eO0vq3V1x8lJJaxmnEf/XSpdf0oahzCh6Pra++OOZXEKv2/spdOlFULu6sDgANm21bcg/u8iuIVStau1xWUYGsIB7MY1SiQ8tmyi09ochWHWW8Ff4FsX879t5SeYq/Jo8ATZzvGPStgli1ExvfkI7mB/UYdKYivcd19FsFsWpO8TEdffcFRdlMeQQQHBTFUO9c15UdYWnIyO66ceIg/eyWLHXvnSzHZY2AUzGu0dpVNd9WXZLyVu+Vx8OvNAA0ZFFWhYrW/b3W/uMb/qkoT/DyoV1+Qt6jByVJzXrl6PhH79T+3JveUKQnaE8NoAGKsipUtP4ftfYfz/unojyhLThFRNgq+/zDWvtLPtugSLe0/gYEoEnjL2iEjOO4Mpb+vbg9BbHTMa5RSXFFrf3FxytkWF8BABo0y3XklByvtd8pOSbLBO8PUuM9mTfsqJhTPrdbfFSWyMdAU2a5rtyy4lr73ZLjstzQz8IyTuUpOl1x7SSAYKEoBjQSdoSt87u3qrW/W882suzQT3cHANTO8UQrtkufWvtju/aXV8FbbN+OTZDsqulf5Qf3KqZjz1ofG3PBAHkNy80CTZnXE63Y89Nr7Y+9IFNeK7Rrinm9rmLO71drf0ynXnLsmPobEIAmjaIY0Eg4jqvsC7soIjLw1zauWZR6pCbL6+UTfgBoyCq8lpoP+LGsyMA/6OzY5opLyZHXCd4MiApPnBL6/6ckqXjbB2reZ6isiMA/eD3xiYrt2p+Z20ATV+mVmqWPkBUdF9BnxyUormdwj0Fnyo1OVFyv3IB2KyJKScNvUpkJ/c0AADQNFMWARsQTaevGif+h87qeI0myLKlH72Rd//NBsvhwHwAahRI7QW2vn6GYzv+eMWbZir1ggNpe97BK7OZBfa5yx6O4AaOVNPwmWVExOvL+n5V85a8U07GX77njemQr+dqHVKxmQX1uAA1Tid1cbcf+VrEXDJAsu+o4kDKw6hhkNYzjQKkbrYQhY9Xqsl8oKrmLPM1bKj7tIrW76VGVRbWS4fJJAEHCn9FAI+K6RlExERp9TV85jitLlmyPJde4chrAp3oAgNNzXKk4opWa/+ckJbnlkixV2jE64Xpk6mCmVrETrYjuF6lNtyxZrlfGE6nE0fcoySnzf27WpQTCguNIxZ4Wih/+c7UYViZZliqt6H8fgxrOcaDYiZanfX+1uKKXLOPK8cTouNcSSx8CCCaKYkAjY4yRY4xUfZMC/ogBgEbHGKMyJ1KqXj+sjte19nqNvIr9znM1q5fnBtDwGFM1k7Rc8VIDPpV0HFeliq76xhvasQBomrh8EgAAAAAAAGGHohgAAAAAAADCDkUxAAAAAAAAhB2KYgAAAAAAAAg7FMUAAAAAAAAQdiiKAQAAAAAAIOxQFAMAAAAAAEDYoSgGAAAAAACAsENRDAAAAAAAAGGHohgAAAAAAADCDkUxAAAAAAAAhB3LGGNCPQicHWOMXPfsXkaPx5bjuEEaUdNATPwRj0DEJBAxCXQmMfF4+MyqISHP1g1iEoiYBCIm/ohHoDONCbkWgERRDAAAAAAAAGGI8jgAAAAAAADCDkUxAAAAAAAAhB2KYgAAAAAAAAg7FMUAAAAAAAAQdiiKAQAAAAAAIOxQFAMAAAAAAEDYoSgGAAAAAACAsENRDAAAAAAAAGGHohgAAAAAAADCDkUxAAAAAAAAhB2KYgAAAAAAAAg7FMUAAAAAAAAQdiiKhTHXdfXEE09o8ODB6tevn2655RZ9+eWXoR5WvTp69KimTJmiCy+8UBkZGfrZz36mvLw8X/+aNWs0ZswY9e3bVyNHjtSrr74awtHWrz179ig9PV3Lli3ztW3btk3XXXed+vXrp2HDhulPf/pTCEdYf5YvX65Ro0YpLS1NP/7xj/X666/7+vLz8zVhwgRlZGQoNzdXc+fOleM4IRxt3fN6vXr88cc1dOhQpaen69prr9WHH37o6w+398kf/vAHjR071q/tdDHg+BseeJ3Js6dCnvVHrj2JPOuPPAugThmErXnz5pns7GzzzjvvmG3btplx48aZESNGmPLy8lAPrd7cdNNN5tJLLzUbNmwwn3/+uZk2bZrp06eP2b17t9m1a5dJS0szs2fPNrt27TILFy40vXr1Mh988EGoh13nKioqzJgxY0z37t3NK6+8Yowx5vDhwyY7O9v8+te/Nrt27TJ//etfTVpamvnrX/8a4tHWreXLl5tevXqZJUuWmH379pmnnnrKpKSkmE2bNpmKigozYsQIc+utt5odO3aYt956y2RlZZnHH3881MOuU0888YTJyckx7733ntm7d6954IEHTP/+/c3BgwfD7n2yZMkSk5KSYq677jpf2/eJAcff8MDrTJ6tDXnWH7nWH3n2JPIsgLpGUSxMlZeXm/T0dPPCCy/42o4dO2b69OljVqxYEcKR1Z+9e/ea7t27m7y8PF+b67pm+PDhZu7cueY3v/mNueqqq/y2ueeee8y4cePqe6j17rHHHjPXX3+938n6ggULTG5urqmsrPR73IgRI0I1zDrnuq4ZOnSoeeSRR/zax40bZxYsWGBWrFhhevfubY4ePerre/nll01GRkaTPum67LLLzO9+9zvf98ePHzfdu3c3b775Zti8TwoKCsyECRNMv379zMiRI/1O1k8XA46/4YHXmTx7KuTZk8i1gciz5FkA9YfLJ8PU9u3bVVxcrEGDBvnaEhIS1KtXL23YsCGEI6s/SUlJevrpp5WWluZrsyxLlmWpqKhIeXl5fvGRpIEDB2rjxo0yxtT3cOvNhg0btHTpUj3yyCN+7Xl5ecrKylJERISvbeDAgdq7d6++/vrr+h5mvdizZ4/279+v0aNH+7U/++yzmjBhgvLy8pSamqrExERf38CBA3XixAlt27atvodbb1q2bKl33nlH+fn5chxHS5cuVVRUlFJSUsLmffLpp58qMjJS//jHP9S3b1+/vtPFgONveOB1Js/Whjzrj1wbiDxLngVQfyiKhamCggJJUrt27fza27Rp4+tr6hISEjRkyBBFRUX52t58803t27dPgwcPVkFBgdq2beu3TZs2bVRaWqojR47U93DrRVFRke677z797//+b8B7o7Z4SNKBAwfqbYz1ac+ePZKkkpISjR8/XoMGDdLVV1+tt99+W1J4xkSSHnjgAUVGRuriiy9WWlqa5syZoyeeeEKdOnUKm5gMGzZM8+bNU8eOHQP6ThcDjr/hgdeZPFsT8mwgcm0g8ix5FkD9oSgWpkpLSyXJ70RVkqKjo1VeXh6KIYXcpk2b9Otf/1ojRozQRRddpLKysoD4VH9fUVERiiHWualTpyo9PT3g01pJNcYjOjpakprse+bEiROSpMmTJ+vSSy/Vc889p5ycHN1+++1as2ZNWMZEknbt2qXmzZvrySef1NKlSzVmzBjde++92rZtW9jG5NtOFwOOv+GB1zkQeZY8WxNybSDy7KmRZwEEU8TpH4KmKCYmRlLVSWf1v6WqRBIbGxuqYYXMypUrde+99yojI0OzZs2SVJU4v3tSXv19U4zR8uXLlZeXpxUrVtTYHxMTExCP6hOLuLi4Oh9fKERGRkqSxo8fryuuuEKS1LNnT23dulWLFi0Ky5gcOHBAv/zlL/XHP/5RAwYMkCSlpaVp165dmjdvXljG5LtOFwOOv+GB19kfeZY8WxtyrT/y7OmRZwEEEzPFwlT1dOLCwkK/9sLCQiUnJ4diSCGzZMkSTZo0SUOHDtWCBQt8nzS1a9euxvjExcWpefPmoRhqnXrllVf0zTff6KKLLlJ6errS09MlSQ8++KBuvvlmtW3btsZ4SGqy75nqn6t79+5+7d26dVN+fn5YxmTLli2qrKz0WyNIkvr27at9+/aFZUy+63Qx4PgbHnidTyLPViHP1oxc6488e3rkWQDBRFEsTKWkpKhZs2Zat26dr62oqEhbt25VZmZmCEdWv1588UU99NBDuvbaazV79my/adYDBgzQ+vXr/R6/du1aZWRkyLab3q/OrFmz9Nprr2n58uW+L0m68847NWPGDGVmZmrjxo1yHMe3zdq1a9WlSxe1bNkyRKOuW6mpqYqPj9eWLVv82nfu3KlOnTopMzNTW7du9V36IVXFJD4+XikpKfU93HpRvYbHjh07/Np37typzp07h+X75LtOFwOOv+GB17kKefYk8mzNyLX+yLOnR54FEFShvv0lQmf27NkmKyvLrFy50mzbts2MGzfOjBgxwlRUVIR6aPXi888/N6mpqeaOO+4whYWFfl9FRUVm586dJjU11cycOdPs2rXLPPvss6ZXr17mgw8+CPXQ6823bxX/9ddfm8zMTDN58mTz2WefmVdeecWkpaWZZcuWhXiUdevJJ5806enpZsWKFWbfvn3mqaeeMikpKWbt2rWmrKzMDB8+3IwfP95s27bNvPXWWyYrK8vMmzcv1MOuM47jmJ/97Gdm5MiRZs2aNWbPnj1mzpw5pmfPnubDDz8My/fJ5MmT/W4V/31iEO7H33AR7q8zefb0yLNVyLUnkWcDkWcB1CXLmCZ8z2uckuM4mj17tpYtW6aysjJlZmZqypQp6tChQ6iHVi8WLFigOXPm1Nh3xRVX6JFHHtG//vUvzZw5U3v37lWHDh00adIkjRo1qp5HGjo9evTQ7373O40ZM0aS9NFHH2nGjBnaunWrWrdurXHjxum6664L8Sjr3qJFi7RkyRIdPHhQXbt21aRJkzR8+HBJ0r59+zRt2jTl5eUpMTFRV111lSZNmtQkZzlUO3bsmObOnat3331Xx44dU/fu3XXPPfcoKytLUvi9T+6//37t379fixcv9rWdLgbhfvwNF+H+OpNnT488exK59iTyrD/yLIC6RFEMAAAAAAAAYadpfrwCAAAAAAAAnAJFMQAAAAAAAIQdimIAAAAAAAAIOxTFAAAAAAAAEHYoigEAAAAAACDsUBQDAAAAAABA2KEoBgAAAAAAgLBDUQwAAAAAAABhJyLUAwBQ/+6//3797W9/O+VjsrKytHjx4hr7xo4dK0m19tdk2LBhysrK0iOPPPL9B1rPevTooYkTJ2rSpEmhHgoAoBEjz9aMPAsAaGgoigFh6Pbbb9dPf/pT3/dPPfWUtm7dqvnz5/vamjVrVuv2Dz74YJ2ODwCAxow8CwBA40BRDAhDnTp1UqdOnXzfn3POOYqKilK/fv2+1/bdunWro5EBAND4kWcBAGgcWFMMQK2WLVumXr166S9/+YtycnKUlZWlXbt2aezYsb5LOyTp8OHDmjZtmoYOHarevXsrKytLd9xxh/Lz87/3c82bN0+XXHKJ3n33XY0ePVq9e/fWj370Iy1fvtxvPD169AjY77Bhw3T//ff7vu/Ro4deeukl3X///erfv7+ysrL08MMPq6ysTL///e81cOBAZWdn64EHHlB5ebnfvk6cOKF7771X6enpGjRokB5++GGVlpb6PWblypUaM2aM0tLSlJOTo4cfflglJSUBP8v8+fOVlZWl3NxcHTt27HvHAgAQHsiz5FkAQGgxUwzAKTmOo+eee04zZszQkSNH1LVrV79+Y4wmTJigY8eO6d5771WrVq20Y8cOzZ07Vw8++KCeffbZ7/1chw4d0vTp0/Xzn/9c7du317PPPqvJkycrLS0t4HlPZ+bMmbr00ks1f/58vfPOO3r++ef1/vvvKyUlRbNmzdKHH36oefPmqUuXLrr55pt92y1evFhDhgzR3LlztWfPHs2ZM0cHDhzQk08+KUlasWKF7r33Xo0ePVp33XWX9u/frzlz5mjXrl1atGiRLMuSJH311VdatWqV5syZo6NHjyoxMfEHjR8AEB7Is+RZAEDoUBQDcFq33XabLrroohr7CgsLFRsbq8mTJ2vAgAGSpOzsbH3xxRdaunTpD3qe0tJSzZgxQ4MGDZIkde7cWUOHDtWqVat+8Ml6t27dNH36dElVixn/5S9/UWVlpWbNmqWIiAjl5ubqzTff1KZNm/y269q1q5588knZtq0hQ4bIsiz99re/1c6dO3XBBRdo1qxZGjx4sGbNmuXbpnPnzrrxxhu1atUqX5y8Xq9fTAAAqA15ljwLAAgNLp8EcFo9e/astS85OVl/+tOf1L9/f+Xn52v16tVavHixNm3apIqKih/8XN9eb6Vt27aS5HfJxPeVnp7u+7fH41FSUpJSU1MVEXHys4AWLVro+PHjftuNHDlStn3y0DhixAhJ0oYNG/T555+roKBAw4YNk9fr9X1lZmaqWbNmWr16td++ThU3AACqkWfJswCA0GCmGIDTiouLO2X/P/7xD82ePVsHDhxQixYt1LNnT8XExJzRc8XGxvr+XX3SbIz5wfup6a5ep/s5JKl169Z+37ds2VKSVFRUpKNHj0qSpk2bpmnTpgVsW1hY6Pd9fHz89x0uACCMkWfJswCA0KAoBuCs5OXlafLkyRo7dqzGjx+v5ORkSdKjjz6qjRs3BvW5qtcRcV3Xr724uDhoz1F9Ql7t0KFDkqpO2hMSEiRJ9913n7KysgK2ZT0TAECwkWdPIs8CAIKNyycBnJXNmzfLdV1NmjTJd6LuOI4++OADSYEn1mej+lPpgoICX9vu3bsDTrDPxr/+9S+/71999VVZlqWsrCydf/75atmypfLz85WWlub7Sk5O1mOPPaatW7cGbRwAAEjkWfIsAKAuMVMMwFnp06ePJGn69Om68sordezYMb3wwgvavn27pKp1Smq6xOJMZGdnKyYmRo888oh+8YtfqLi4WE888YRatGgRlP1L0scff6wHHnhAl156qT7++GM98cQTuuqqq9S5c2dJ0t13360pU6bI4/Fo6NChKioq0lNPPaWDBw8qNTU1aOMAAEAiz5JnAQB1iaIYgLOSnZ2tKVOmaNGiRXrjjTfUqlUrZWdna/78+brjjju0ceNGDRkyJCjPlZCQoHnz5umxxx7THXfcofbt22vixIlavnx5UPYvSXfccYc++eQT3XbbbWrevLluvvlmTZw40dd/9dVXKz4+XgsXLtTSpUsVFxenjIwMzZo1Sx07dgzaOAAAkMiz5FkAQF2yzJmsrAkAAAAAAAA0YqwpBgAAAAAAgLBDUQwAAAAAAABhh6IYAAAAAAAAwg5FMQAAAAAAAIQdimIAAAAAAAAIOxTFAAAAAAAAEHYoigEAAAAAACDsUBQDAAAAAABA2KEoBgAAAAAAgLBDUQwAAAAAAABhh6IYAAAAAAAAwg5FMQAAAAAAAISd/w8VBgJ3z1lu0QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "\n", + "comparison = pd.concat((default_study.trials_dataframe().assign(run=f'no transform (best ={study.best_value:.2f})'),\n", + " transformed_study.trials_dataframe().assign(run=f'transform (best ={transformed_study.best_value:.2f})')))\n", + "\n", + "default_reg_scoring= config.settings.scoring\n", + "ax = sns.relplot(data=comparison, x=\"number\", y=\"value\", \n", + " col='run',hue='params_algorithm_name', \n", + " facet_kws={\"sharey\":False})\n", + "ax.set(xlabel=\"Trial number\",ylabel=f\"Ojbective value\\n({default_reg_scoring})\")\n", + "ax.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example shows the influence of scaling the pXC50 values to the log scale. The non-noramlised distribution of the unlogged data yields very large (negative) model evaluation scores, since evaluation metrics such as MSE are relative, and the scale of the error is reported in performance values.\n", + "\n", + "Users generate predictions for a model trained on log transformed data in the same way as the normal models, like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1126.56968721, 120.20237903])" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the best Trial from the log transformed study and build the model.\n", + "buildconfig = buildconfig_best(transformed_study)\n", + "best_build = build_best(buildconfig, \"../target/best.pkl\")\n", + "\n", + "# generate predictions\n", + "import pickle\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " model = pickle.load(f)\n", + "model.predict_from_smiles([\"CCC\", \"CC(=O)Nc1ccc(O)cc1\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NB: Please note that outputs have automatically been reversed transformed at inference, back onto the original XC50 scale, as shown by large values outside the log pXC50.\n", + "\n", + "This is the default behaviour of QSARtuna; reverse transform is performed at inference when log transformation was applied, so that users can action on prediction the original input data scale. Importantly, a user can easily override this behaviour by providing the transform parameter as `None`:" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2.94824194, 3.92008694])" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.predict_from_smiles([\"CCC\", \"CC(=O)Nc1ccc(O)cc1\"], transform=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will instruct QSARtuna to avoid the reverse transform on the predictions. This transform parameter is ignored if no transformation was applied in the user config.\n", + "\n", + "Log transformation can also be combined with the PTR transform. In this situation, all user inputs are expected to be on the untransformed scale. For example, if a user wishes to create a PTR model, trained on pXC50 data and a cut-off for pXC50 values of 5 (10um), the following config can be used:" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:10,518] A new study created in memory with name: ptr_and_transform_example\n", + "[I 2024-07-02 14:26:10,558] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:26:10,728] Trial 0 finished with value: -0.002341918451736245 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.002341918451736245.\n", + "[I 2024-07-02 14:26:10,805] Trial 1 finished with value: -0.0024908979029632677 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.002341918451736245.\n", + "[I 2024-07-02 14:26:10,847] Trial 2 finished with value: -0.007901407671048116 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 5.141096648805748, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.4893466963980463e-08, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 0 with value: -0.002341918451736245.\n", + "[I 2024-07-02 14:26:10,888] Trial 3 finished with value: -0.00496231674623194 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 0 with value: -0.002341918451736245.\n", + "[I 2024-07-02 14:26:10,917] Trial 4 finished with value: -0.0026848278110363512 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -0.002341918451736245.\n", + "[I 2024-07-02 14:26:10,959] Trial 5 finished with value: -0.0010872728889471893 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,000] Trial 6 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6574750183038587, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,027] Trial 7 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3974313630683448, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,093] Trial 8 finished with value: -0.002999462459688867 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 28, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,120] Trial 9 finished with value: -0.00825680029907454 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2391884918766034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,148] Trial 10 finished with value: -0.007901407993550248 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00044396482429275296, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.3831436879125245e-10, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,174] Trial 11 finished with value: -0.007901405163828307 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00028965395242758657, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.99928292425642e-07, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,201] Trial 12 finished with value: -0.0021653695362066753 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,227] Trial 13 finished with value: -0.002869169486971014 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 5 with value: -0.0010872728889471893.\n", + "[I 2024-07-02 14:26:11,255] Trial 14 finished with value: -0.0010855652626111146 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.4060379177903557, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,329] Trial 15 finished with value: -0.00550533804299308 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 20, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,359] Trial 16 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.344271094811757, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,386] Trial 17 finished with value: -0.002236800860454562 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.670604991178476, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,466] Trial 18 finished with value: -0.006105985607235417 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 14 with value: -0.0010855652626111146.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:11,495] Trial 19 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5158832554303112, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,523] Trial 20 finished with value: -0.004846526544994462 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,550] Trial 21 finished with value: -0.006964668794465202 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0009327650919528738, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.062479210472502, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,565] Trial 22 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:11,594] Trial 23 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1366172066709432, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,670] Trial 24 finished with value: -0.002999462459688867 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,699] Trial 25 finished with value: -0.008384326901042542 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 43.92901911959232, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 27.999026012594694, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 14 with value: -0.0010855652626111146.\n", + "[I 2024-07-02 14:26:11,730] Trial 26 finished with value: -0.001082194093844804 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.5888977841391714, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 26 with value: -0.001082194093844804.\n", + "[I 2024-07-02 14:26:11,761] Trial 27 finished with value: -0.0010807084256204563 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.19435298754153707, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 27 with value: -0.0010807084256204563.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-0.0021653695362066753]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:11,839] Trial 28 finished with value: -0.006105985607235417 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 13, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.0010807084256204563.\n", + "[I 2024-07-02 14:26:11,868] Trial 29 finished with value: -0.008384326901042542 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 1.6285506249643193, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.35441495011256785, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 27 with value: -0.0010807084256204563.\n", + "[I 2024-07-02 14:26:11,948] Trial 30 finished with value: -0.005505338042993082 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.0010807084256204563.\n", + "[I 2024-07-02 14:26:11,979] Trial 31 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.2457809516380005, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.0010807084256204563.\n", + "[I 2024-07-02 14:26:12,008] Trial 32 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6459129458824919, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 27 with value: -0.0010807084256204563.\n", + "[I 2024-07-02 14:26:12,039] Trial 33 finished with value: -0.005247934991526694 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8179058888285398, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 27 with value: -0.0010807084256204563.\n", + "[I 2024-07-02 14:26:12,057] Trial 34 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:12,089] Trial 35 finished with value: -0.0010803393728928605 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0920052840435055, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,120] Trial 36 finished with value: -0.005218354425190125 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.8677032984759461, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,138] Trial 37 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:12,169] Trial 38 finished with value: -0.004999207507691546 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.2865764368847064, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,245] Trial 39 finished with value: -0.0015694919308122948 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-0.0021653695362066753]\n", + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-0.004846526544994462]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:12,326] Trial 40 finished with value: -0.0019757694194001384 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,343] Trial 41 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:26:12,421] Trial 42 finished with value: -0.002341918451736244 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 25, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,453] Trial 43 finished with value: -0.00368328296527152 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,521] Trial 44 finished with value: -0.003412828259848677 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 9, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.0010803393728928605.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}, return [-0.00496231674623194]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:12,551] Trial 45 finished with value: -0.004412110711416997 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,583] Trial 46 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6437201185807124, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,616] Trial 47 finished with value: -0.008384326901042542 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 82.41502276709562, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.10978379088847677, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,647] Trial 48 finished with value: -0.0021743798524909573 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.022707289534838138, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,679] Trial 49 finished with value: -0.0022761245849848527 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,715] Trial 50 finished with value: -0.0010805768178458735 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1580741708125475, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,750] Trial 51 finished with value: -0.001080400188305814 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10900413894771653, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,784] Trial 52 finished with value: -0.0010805009783570441 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.13705914456987853, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,817] Trial 53 finished with value: -0.0010804680472500541 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.12790870116376127, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,853] Trial 54 finished with value: -0.0010803723579987025 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10123180962907431, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,890] Trial 55 finished with value: -0.001080969596032512 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.26565663774320425, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 35 with value: -0.0010803393728928605.\n", + "[I 2024-07-02 14:26:12,925] Trial 56 finished with value: -0.0010800333715082816 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.005637048678674678, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.0010800333715082816.\n", + "[I 2024-07-02 14:26:12,962] Trial 57 finished with value: -0.0010802574700236845 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.06902647427781451, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.0010800333715082816.\n", + "[I 2024-07-02 14:26:13,000] Trial 58 finished with value: -0.0010814994986419817 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.4076704953178294, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.0010800333715082816.\n", + "[I 2024-07-02 14:26:13,037] Trial 59 finished with value: -0.001080161136846237 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.04187106800188596, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 56 with value: -0.0010800333715082816.\n", + "[I 2024-07-02 14:26:13,071] Trial 60 finished with value: -0.0010800254136811547 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.003371853599610078, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n", + "[I 2024-07-02 14:26:13,107] Trial 61 finished with value: -0.0010801290036870739 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.032781796328385376, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n", + "[I 2024-07-02 14:26:13,142] Trial 62 finished with value: -0.001080037482216557 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.006806773659187283, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n", + "[I 2024-07-02 14:26:13,179] Trial 63 finished with value: -0.0010801015705851358 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.025009489814943348, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n", + "[I 2024-07-02 14:26:13,217] Trial 64 finished with value: -0.0010812122378841013 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.3311125627707556, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n", + "[I 2024-07-02 14:26:13,254] Trial 65 finished with value: -0.0010800531021304936 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.011249102380159387, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:13,291] Trial 66 finished with value: -0.00108004162698813 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.007985924302396141, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 60 with value: -0.0010800254136811547.\n", + "[I 2024-07-02 14:26:13,328] Trial 67 finished with value: -0.0010800223466649803 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.00249856291483601, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.0010800223466649803.\n", + "[I 2024-07-02 14:26:13,364] Trial 68 finished with value: -0.0010815197263834202 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.4130244908975993, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.0010800223466649803.\n", + "[I 2024-07-02 14:26:13,402] Trial 69 finished with value: -0.0010800257029027847 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0034541978803366022, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.0010800223466649803.\n", + "[I 2024-07-02 14:26:13,439] Trial 70 finished with value: -0.0010810223438672223 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.27994943662091765, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 67 with value: -0.0010800223466649803.\n", + "[I 2024-07-02 14:26:13,475] Trial 71 finished with value: -0.0010800211339555509 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0021532199144365088, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,513] Trial 72 finished with value: -0.0010800296871141684 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0045884092728113585, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,548] Trial 73 finished with value: -0.0010800437739166451 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.008596600952859433, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,587] Trial 74 finished with value: -0.0010809366267195716 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.2567049271070902, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,627] Trial 75 finished with value: -0.001080725386603206 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1990111983307052, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,664] Trial 76 finished with value: -0.0010807368035830652 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.20214459724424078, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,704] Trial 77 finished with value: -0.0010800236072155854 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.00285750520671645, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,741] Trial 78 finished with value: -0.0010806223050773966 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.17064008990759916, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,779] Trial 79 finished with value: -0.0010876516369772728 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.8725420109733135, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,819] Trial 80 finished with value: -0.00108142358144501 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.387533542012365, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,857] Trial 81 finished with value: -0.0010800248050489667 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0031985656730512953, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,894] Trial 82 finished with value: -0.001080022268085466 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.002476186542950981, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,932] Trial 83 finished with value: -0.0010820922958715991 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.5626643670396761, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:13,969] Trial 84 finished with value: -0.0010805094397523254 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1394077979875128, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,007] Trial 85 finished with value: -0.0010841993753324146 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.0858347526799794, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,048] Trial 86 finished with value: -0.007899735988203994 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.03329943145150872, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00025672309762227527, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:14,086] Trial 87 finished with value: -0.0010868762004637347 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.702026434077893, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,124] Trial 88 finished with value: -0.001080400750193767 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10916094511173127, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,163] Trial 89 finished with value: -0.0010806791616300314 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.18630665884100353, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,201] Trial 90 finished with value: -0.0010804028029753213 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.10973377642487026, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,240] Trial 91 finished with value: -0.0010800812188506515 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.019235980282946118, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,277] Trial 92 finished with value: -0.0010800299598580359 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.004666043957133775, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,316] Trial 93 finished with value: -0.0010803843696362083 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.1045877457096882, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,353] Trial 94 finished with value: -0.001080333048974234 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.09023455456986404, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,394] Trial 95 finished with value: -0.008706109201510277 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.8200088368788958, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 71 with value: -0.0010800211339555509.\n", + "[I 2024-07-02 14:26:14,432] Trial 96 finished with value: -0.001080014645182176 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.00030502148265565063, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.001080014645182176.\n", + "[I 2024-07-02 14:26:14,473] Trial 97 finished with value: -0.0010807968027851892 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.21858260742423916, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.001080014645182176.\n", + "[I 2024-07-02 14:26:14,516] Trial 98 finished with value: -0.007907028395366658 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.024725853754515203, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0011658455138452, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.001080014645182176.\n", + "[I 2024-07-02 14:26:14,553] Trial 99 finished with value: -0.0010803563024666294 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.0967427718847167, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 96 with value: -0.001080014645182176.\n" + ] + } + ], + "source": [ + "ptr_config_log_transform = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"Measurement\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/sdf/example.sdf\",\n", + " split_strategy=Stratified(fraction=0.4),\n", + " deduplication_strategy=KeepMedian(),\n", + " log_transform=True, # Set to True to perform\n", + " log_transform_base=LogBase.LOG10, # Log10 base will be used\n", + " log_transform_negative=LogNegative.TRUE, # Negated transform for the pXC50 calculation\n", + " log_transform_unit_conversion=6, # 6 units used for pXC50 conversion\n", + " probabilistic_threshold_representation=True, # This enables PTR\n", + " probabilistic_threshold_representation_threshold=5, # This defines the activity threshold for 10um\n", + " probabilistic_threshold_representation_std=0.6, # This captures the deviation/uncertainty in the dataset\n", + "\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=100,\n", + " n_startup_trials=50,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " ),\n", + ") \n", + "\n", + "ptr_transformed_study = optimize(ptr_config_log_transform, study_name=\"ptr_and_transform_example\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Analysis of the study is performed in the same manner as above:" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TxceaFuNuxtVwGDVfogiIvllMpny/CFVRJzDqQnis88+y9ChQ4mNjeWee+7BYDCwa9cuPv30U9auXcucOXOc2T0RKeYMNhs1y/sy+akWpFttGI0G3M0GLNd4PlFERESkqDLYnLzCwsaNG5kzZw4RERH2ssDAQEaOHMlDDz3kxJ7dvCwWK9HRiQXaptlsxN/fi5iYRNL14bdQKdaOo1g7luLtOIq14xRUrAMCvDCZbordxURErsqpI4gA3bp1o1u3bhw9epTY2Fh8fHyoWrUqRmPWX6K7du2iTp06eHp6OqmnIiIiIiIit7ab5qusqlWr0qhRI6pXr54tObRYLPTr149jx445qXciIiIiIiK3vpsmQbwW7TUmIiIiIiJSuJw+xVRE5GZhc0sjMS379jpeLp4YUlyc0CMRERERx7rhBDElJQVXV1cMBkNB9EdExGkS05IY++20bOUzQ8bjja8TeiQiIiLiWNeVIB49epQFCxawfft2EhISWLduHf/73/+oWrUqjz/+eEH3UURERERERBwg388gHjhwgF69evHXX3/RrVs3+7OBJpOJ0NBQ1q9fX+CdFBERERERkcKX7xHEmTNnUrduXZYvXw7AmjVrAJgwYQIpKSmsWrWKHj16FGwvRUREREREpNDlewTxt99+48knn8RsNmd77rBz584cP368oPomIiIiIiIiDpTvEUQ3NzeSk5NzPBYbG4urq+sNd0pExBm8XDyZGTI+x3JSnNAhEREREQfL9whiq1atWLBgAREREfYyg8FAYmIiy5cv58477yzQDkLG843Tp0+nQoUKBd62iEgmQ4oL3lbfbH+0xYWIiIgUF/keQXzhhRd4+OGH6dSpE7Vq1cJgMDBjxgyOHTuGzWZj7ty5Vz1/3Lhx+bre9OnTAfRco4iIiIiISCHLd4JYtmxZPvvsM9577z127txJcHAwSUlJdO3alf79+1O6dOmrnh8WFpbl56ioKNLT0ylXrhylSpUiNjaWkydP4urqSq1atfLbPREREREREblO17UPor+/P88///x1XXDr1q32v2/cuJHZs2ezcOFC6tevby//559/GDJkCPfdd991XUNERERERETyL98J4q5du65Zp2nTpnlqa968eYwaNSpLcghQvXp1Ro4cyfTp03niiSfy20URERERERG5DvlOEB9//HEMBgM2m81eduV2FwcO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ihUrmDNnDsuWLcNms/Hee+9Ru3Zt3n77bSWHIiIiIiIiDpTvBHHNmjVMnTo11+0uWrdunee2duzYQcOGDVm7di3JycnExcXh7e2Nl1fh7PEnIiIiIiIiucv3XIfVq1fTtm1bwsLCGDBgAL179+a3337jjTfewM3NLV9bNwwbNsy+0qe7uztBQUFKDkVERERERJwk3wlieHg4ffr0wdfXl7p167Jnzx7c3d3p2LEjTz/9NKtWrcpzWz4+PvYN50VERERERMS58j3F1MXFxZ7UVapUiX///Ze0tDRcXFxo3Lhxnja2zzR48GCmTp3KsWPHqFWrFp6entnq5LZPoYiIiIiIiBSsfCeIt99+O9999x3NmzenSpUqWK1Wfv/9d5o0aUJERES+2po4cSIA8+bNA8iylYbNZsNgMOR5T0URERERERG5MflOEPv378/QoUOJj48nNDSU9u3b8+KLL3LvvfeyceNGGjdunOe28jMdVURERERERApXvhPEkJAQlixZwpEjRwB47bXXGD16NGvXrqVevXq8+uqreW6rWbNm+b28iIiIiIiIFJJ8J4gWi4W7776bu+++GwB/f3+WL19+3R0oqD0VRUQcweaWRmJaUrZyLxdPDCkuTuiRiIiISMHJd4LYunVrunTpwgMPPEC9evVu6OIFuaeiiIgjJKYlMfbbadnKZ4aMxxtfJ/RIREREpODke5uLrl27smXLFnr37k2nTp1YsmQJp06duq6LF+SeiiIiIiIiInJj8p0gjh8/nh9++IHly5fTpEkTVqxYQYcOHejbty/r1q3jwoULeW6rIPdUFBERERERkRuT7wQRMrajaNmyJVOnTuWnn37irbfeomzZskyePJk2bdrkuZ3c9lQEaNy4McePH7+e7omIiIiIiMh1uK4EMVN6ejo//fQTmzdv5ocffgCgZcuWeT4/c09FIMueikC+91QUERERERGRG5PvRWpsNhs7d+7kiy++4JtvviEuLo769eszfPhwOnfujL+/f57bKsg9FUVEHMHLxZOZIeNzLCfFCR0SERERKUD5ThDbtGnD+fPnKVeuHH369OGBBx6gcuXK13XxgtxTUUTEEQwpLjmvVqrkUERERG4B+U4Q27Vrx/3330+TJk0KpAMFuaeiiIiIiIiIXL98J4ivvfZagV389OnT16xTrly5ArueiIiIiIiI5C7fCWJBateuHQaD4ap1Dhw44KDeiIiIiIiIFG9OTRBDQ0OzJYhJSUns3r2bsLAwQkNDndQzERERERGR4sepCeKDDz6YY/ljjz3G9OnT2bhxo/35RBERERERESlcN7QPYmFq164d33//vbO7ISIiIiIiUmxc9wjitm3b2L59O1FRUYwaNYoDBw5Qp04dypcvXyAd+/333zGbnTrAKSIiIiIiUqzkOwO7ePEizz33HNu3b8fb25vExESeeuopPvzwQ/bv38/q1au57bbb8tTWuHHjspVZrVYiIiLYtWsXvXr1ym/3RERERERE5DrlO0GcO3cuf/31F++99x5NmjShbt26AMycOZOnnnqKN954g0WLFuWprbCwsGxlBoMBb29vBg0axDPPPJPf7omIiIiIiMh1yneC+OWXXzJq1ChatGiBxWKxl5cuXZpnn302X/skbt26Nb+XFxERERERkUKS70Vq4uPjc33O0NfXl6SkpBvulIiIiIiIiDhevkcQb7vtNjZu3Ejr1q2zHdu6dWuenz+EjJVKr9wHMTcGg4Fvv/02z22L3GxsbmkkpiVhsEFCXBwWmxWbEbxcPDGkuDi7eyIiIiIi+U8Qn332WYYOHUpsbCz33HMPBoOBXbt28emnn7J27VrmzJmT57Z69OjB6tWrgYxkMSgoiNjYWH788UdOnz5Np06dcHd3z28XRW5KiWlJjP12WrbymSHj8cbXCT0SEREREckq3wliSEgIr7/+OnPmzGHbtm0AzJgxg8DAQCZNmkSnTp3y3FZCQgJVqlTh3XffxcvLy16enp7OkCFDKFGiRL6eaRQREREREZHrd10bDXbr1o1u3bpx9OhRYmNj8fHxoWrVqhiN+XukccOGDUyfPj1LcghgNpvp27cvzz//vBJEERERERERB8l3gvjcc8/RvXt37r77bqpWrXrDHYiNjc2xPDw8HDc3txtuX0RERERERPIm36uYhoeHM2zYMFq3bs3EiRP59ddfr/vid999N3PmzOGHH36wl9lsNr755hveeOMNunXrdt1tXyklJYXJkyfTsmVLGjZsyOjRo4mOjr7qOeHh4QwePJhGjRrRunVr5s+fn2VrD4A1a9bQvn176tevT58+fdi/f3+W44sXL6ZmzZrZ/oiIiIiIiNxsDDabzZbfk44cOcKmTZvYvHkz//77LxUqVOD+++/ngQceoFKlSnlu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fUe99i3123fUa9+pqV6HhQXpKKSINAiNIiD6+fnRoUOHC04/cOAAeXl5lJeXex3xy8nJISoqqtploqOjOXjwoNdYTk4OUBFIK08tzcnJ8XruH6/zgQceYOTIkeTk5NC8eXPS09OxLIs2bdpc+Yaex+msnQ8ELpe71tYt3tRr31GvfUv99h312nfUaxFpKhpFQLyUXr164Xa72bFjh+emMkePHiU7O5uEhIRql0lISGDjxo0UFhYSGhoKwNatWwkJCaFTp074+/vTvn17tm3b5lmn0+kkLS2NBx98EKi4E+r777/PggULPKFx06ZN3HDDDRcNtJdimgaRkTrFtKFTr31HvfYt9dt31GvfudZem6ZRQ5WIiNSuJhEQo6KiuOuuu0hOTvZ8FcUzzzxDYmIiPXr0ACpOFc3Pzyc8PBx/f3+GDh1KamoqTzzxBFOmTCEzM5N58+YxduxYz1HIsWPHMmvWLG666SZiY2M9X18xcuRIADp27MjHH3/MG2+8wfDhw9m2bRuvvvoqs2fPvqbtMQwDm612djQ6/cV31GvfUa99S/32HfXad9RrEWkqDMuyrLouwheKi4uZPXs2mzZtAuD2228nOTmZiIgIALZt28ZDDz3E8uXL6d27N1DxNRUzZ84kLS2N8PBwRo4cycSJEzHNf+8klixZwvLly8nLy6Nbt24kJyfTuXNnz/SPP/6Y+fPnc+zYMVq3bk1SUhL33HOPD7dcRERERETk8jSZgCgiIiIiIiIXp/MlREREREREBFBAFBERERERkXMUEEVERERERARQQBQREREREZFzFBBFREREREQEUEAUERERERGRcxQQRUREREREBFBAFBERERERkXMUEEVERERERARQQBQREREREZFzFBBFREREREQEUEAUwO12s2DBAgYMGECPHj341a9+xffff1/XZTV4eXl5TJ8+ndtvv52ePXvyy1/+krS0NM/0r776ivvuu4/bbruN4cOH8/7779dhtY3H0aNHiYuLY/369Z6xffv2MXr0aHr06MHgwYNZvnx5HVbYOGzcuJGf/vSnxMbGctddd/Hhhx96pmVmZpKUlETPnj3p378/qampuFyuOqy24XI6nfz5z39m0KBBxMXFMWrUKHbt2uWZrtd2zXjttdcYM2aM19ileqt9p4g0VgqIwiuvvMI777zDc889x+rVq3G73YwfP57y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Whrh4eGMHDmSiRMn6uj4VcjPzyc1NZVPP/2U/Px8YmJimDx5MomJiYBe2zXl6aef5vjx46xYscIzdqneat8pIo2VAqKIiIiIiIgAOsVUREREREREzlFAFBEREREREUABUURERERERM5RQBQRERERERFAAVFERERERETOUUAUERERERERQAFRREREREREzrHXdQEiIjXt6aefZsOGDRedJzEx0etLsc83ZswYgAtOr87gwYNJTExkzpw5l1+oj91666089thjTJw4sa5LERERkXpKAVFEGp1HH32UX/ziF57Hr7zyCnv37uXll1/2jIWGhl5w+WeeeaZW6xMRERGprxQQRaTRadu2LW3btvU8joyMxN/fnx49elzW8h07dqylykRERETqN12DKCJN1vr16+nSpQtr166lX79+JCYmcujQIcaMGeM5zRTgzJkzzJw5k0GDBtGtWzcSExOZMGECmZmZl/1cCxcu5M477+TTTz/l7rvvplu3bvzkJz9h48aNXvXceuutVdY7ePBgnn76ac/jW2+9lVWrVvH000/Tq1cvEhMTef755yktLeVPf/oTffr0oXfv3kybNo2ysjKvdRUWFjJlyhTi4uLo27cvzz//PCUlJV7zbN68mfvuu4/Y2Fj69evH888/T3FxcZVtefnll0lMTKR///7k5+dfdi9ERESk/tIRRBFp0lwuF2+++SazZs0iNzeXDh06eE23LIukpCTy8/OZMmUK119/PQcOHCA1NZVnnnmGJUuWXPZznTx5kmeffZbf/OY33HjjjSxZsoSpU6cSGxtb5Xkv5cUXX2TEiBG8/PLLfPLJJyxbtozPP/+cTp06kZKSwq5du1i4cCHt27dn/PjxnuVWrFjBwIEDSU1N5ejRo8yfP58TJ06waNEiAN577z2mTJnC3XffzRNPPMHx48eZP38+hw4dYunSpRiGAcAPP/zAli1bmD9/Pnl5eYSHh19R/SIiIlI/KSCKSJP3yCOPcMcdd1Q7LScnh6CgIKZOnUp8fDwAvXv35tixY6xZs+aKnqekpIRZs2bRt29fANq1a8egQYPYsmXLFQfEjh078uyzzwIVN9xZu3YtDoeDlJQU7HY7/fv3Z9OmTXz99ddey3Xo0IFFixZhmiYDBw7EMAxmz57NwYMHueWWW0hJSWHAgAGkpKR4lmnXrh3//d//zZYtWzx9cjqdXj0RERGRxkGnmIpIk9e5c+cLTouKimL58uX06tWLzMxMvvjiC1asWMHXX39NeXn5FT/X+ddBRkdHA3idvnm54uLiPP+22WxERETQtWtX7PZ//93vuuuu4+zZs17LDR8+HNP891v/sGHDANi+fTtHjhwhKyuLwYMH43Q6PT8JCQmEhobyxRdfeK3rYn0TERGRhklHEEWkyQsODr7o9HfffZd58+Zx4sQJrrvuOjp37kxgYOBVPVdQUJDn35VBzbKsK15PdXdhvdR2ALRo0cLrcfPmzQEoKCggLy8PgJkzZzJz5swqy+bk5Hg9DgkJudxyRUREpIFQQBQRuYi0tDSmTp3KmDFjGDduHFFRUQDMnTuXHTt21OhzVV7f53a7vcaLiopq7DkqQ2ClkydPAhVBMSwsDICnnnqKxMTEKsvqOkMREZHGT6eYiohcxM6dO3G73UycONETDl0uF19++SVQNcxdi8qjgllZWZ6xw4cPVwl11+Kzzz7zevz+++9jGAaJiYncfPPNNG/enMzMTGJjYz0/UVFRvPTSS+zdu7fG6hAREZH6SUcQRUQuonv37gA8++yz3H///eTn57Ny5Ur2798PVFw/WN3pnlejd+/eBAYGMmfOHCZNmkRRURELFizguuuuq5H1A+zZs4dp06YxYsQI9uzZw4IFCxg5ciTt2rUD4Le//S3Tp0/HZrMxaNAgCgoKeOWVV8jOzqZr1641VoeIiIjUTwqIIiIX0bt3b6ZPn87SpUv56KOPuP766+nduzcvv/wyEyZMYMeOHQwcOLBGnissLIyFCxfy0ksvMWHCBG688UYee+wxr+9KvFYTJkzgX//6F4888gjNmjVj/PjxPPbYY57pDzzwACEhIbzxxhusWbOG4OBgevbsSUpKCm3atKmxOkRERKR+MqyruTuCiIiIiIiINDq6BlFEREREREQABUQRERERERE5RwFRREREREREAAVEEREREREROUcBUURERERERAAFRBERERERETlHAVFEREREREQABUQRERERERE5RwFRREREREREAAVEEREREREROUcBUURERERERAAFRBERERERETnn/wN8UbjU/WzqsQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set_theme(style=\"darkgrid\")\n", + "default_reg_scoring= config.settings.scoring\n", + "ax = sns.scatterplot(data=ptr_transformed_study.trials_dataframe(), x=\"number\", \n", + " y=\"value\",style='params_algorithm_name',hue='params_algorithm_name')\n", + "ax.set(xlabel=\"Trial number\",ylabel=f\"Ojbective value\\n({default_reg_scoring})\")\n", + "sns.move_legend(ax, \"upper right\", bbox_to_anchor=(1.6, 1), ncol=1, title=\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In comparison to log scaled models trained without the PRF transform, log-transformed models trained with PTR functions will always output the probabilistic class membership likelihoods from the PTR function: " + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False])" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the best Trial from the log transformed study and build the model.\n", + "buildconfig = buildconfig_best(ptr_transformed_study)\n", + "best_build = build_best(buildconfig, \"../target/best.pkl\")\n", + "\n", + "# generate predictions\n", + "import pickle\n", + "with open(\"../target/best.pkl\", \"rb\") as f:\n", + " model = pickle.load(f)\n", + "model.predict_from_smiles([\"CCC\"]) == model.predict_from_smiles([\"CCC\"], transform=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is intended behaviour since 1.) the PTR is only inteded to alter model outputs so that predictions opterate on a probabilstic scale, and 2.) the PTR transform is a lossy transformation anyway (values at the extremes of the probability transformation scale are intentionally clipped and cannot be reversed). Hence, reverse transform the of PTR is not possible at inference time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Covariate modelling" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Modelling one simple covariate, e.g. dose or time point" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A covariate, such as dose or timepoint, can be used as an auxiliary descriptor to account for the effect of this parameter in predictions. In this situation, a compound can be represented more than once across n distinct covariate measurements. Each of the covariate response values can now be used in training an algorithm in this approach. Replicates across each compound-covariate pair may be deduplicated using the standard deduplication approaches.\n", + "\n", + "To activate this function in QSARtuna, the `aux_column` setting can be used according to the column denoting the covariate to be modelled, like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:17,282] A new study created in memory with name: covariate_example\n", + "[I 2024-07-02 14:26:17,323] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:26:17,422] Trial 0 finished with value: -5186.767663956718 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -5186.767663956718.\n", + "[I 2024-07-02 14:26:17,522] Trial 1 finished with value: -4679.740824270968 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 1 with value: -4679.740824270968.\n", + "[I 2024-07-02 14:26:17,575] Trial 2 finished with value: -4890.6705099499995 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 5.141096648805748, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.4893466963980463e-08, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 1 with value: -4679.740824270968.\n", + "[I 2024-07-02 14:26:17,628] Trial 3 finished with value: -3803.9324375833753 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 3 with value: -3803.9324375833753.\n", + "[I 2024-07-02 14:26:17,667] Trial 4 finished with value: -3135.6497388676926 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -3135.6497388676926.\n", + "[I 2024-07-02 14:26:17,722] Trial 5 finished with value: -551.2518812859375 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 5 with value: -551.2518812859375.\n", + "[I 2024-07-02 14:26:17,778] Trial 6 finished with value: -4309.124112370974 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6574750183038587, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 5 with value: -551.2518812859375.\n", + "[I 2024-07-02 14:26:17,818] Trial 7 finished with value: -362.30159424580074 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3974313630683448, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 7 with value: -362.30159424580074.\n", + "[I 2024-07-02 14:26:17,897] Trial 8 finished with value: -4357.02827013125 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 28, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 7 with value: -362.30159424580074.\n", + "[I 2024-07-02 14:26:17,963] Trial 9 finished with value: -386.1437929337522 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2391884918766034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 7 with value: -362.30159424580074.\n" + ] + } + ], + "source": [ + "aux_col_config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/aux_descriptors_datasets/train_with_conc.csv\",\n", + " aux_column=\"aux1\" # use column aux1 as a co-variate in modelling\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=10,\n", + " random_seed=42,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " ),\n", + ") \n", + "\n", + "aux_col_study = optimize(aux_col_config, study_name=\"covariate_example\")\n", + "build_best(buildconfig_best(aux_col_study), \"../target/aux1_model.pkl\")\n", + "with open(\"../target/aux1_model.pkl\", \"rb\") as f:\n", + " aux1_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Predictions from a covariate-trained model can now be generated like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([52.45281013, 52.45281013])" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aux1_model.predict_from_smiles([\"CCC\", \"CCC\"], aux=[10,5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the `aux` parameter of `predict_from_smiles` is used (and required) to generate predictions for a an input covariate auxiliary query, and the shape of the `aux` query must be the same shape as the SMILES input query, otherwise a ValueError will be thrown.\n", + "\n", + "So, for this toy example query the predicitons are for the SMILES `CCC` and two separate auxiliary covariate queries of `10` and `5`.\n", + "\n", + "\n", + "N.B: For this particular toy training example, the molecular weight response column (`molwt`) is the same regardless of the modelled covariate value, and so the predictions are the same regardless the `aux` query, as expected." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Transformation of co-variates: Proteochemometric (PCM) modelling + more" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### VectorFromSmiles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to utilise more than one type of covariate value at a time, an auxiliary transformation must be applied to process co-variates in a manner expected for the algorithms.\n", + "\n", + "Pre-computed covariates (in a similar manner to pre-computed descriptors), can be processed using the `VectorFromColumn`. Similar to pre-computed descriptors, the VectorFromColumn will split covariates on `,` or comma seperations like so: " + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:26:18,237] A new study created in memory with name: vector_aux_example\n", + "[I 2024-07-02 14:26:18,278] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:26:18,353] Trial 0 finished with value: -2200.6817959410578 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.011994365911634164, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 0 with value: -2200.6817959410578.\n", + "[I 2024-07-02 14:26:18,396] Trial 1 finished with value: -2200.95660880078 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.029071783512897825, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. Best is trial 0 with value: -2200.6817959410578.\n", + "[I 2024-07-02 14:26:18,454] Trial 2 finished with value: -5798.564494725643 and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.022631709120790048, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.2198637677605415, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 0 with value: -2200.6817959410578.\n", + "[I 2024-07-02 14:26:18,499] Trial 3 finished with value: -972.2899178898048 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.8916194399474267, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 3 with value: -972.2899178898048.\n", + "[I 2024-07-02 14:26:18,556] Trial 4 finished with value: -647.3336440433073 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5914093983615214, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -647.3336440433073.\n", + "[I 2024-07-02 14:26:18,614] Trial 5 finished with value: -653.3036472748931 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.6201811079699818, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -647.3336440433073.\n", + "[I 2024-07-02 14:26:18,657] Trial 6 finished with value: -3807.8035919667395 and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -647.3336440433073.\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.901e+01, tolerance: 1.892e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/sklearn/linear_model/_coordinate_descent.py:678: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.986e+01, tolerance: 1.914e+01\n", + " model = cd_fast.enet_coordinate_descent(\n", + "[I 2024-07-02 14:26:18,752] Trial 7 finished with value: -5019.459500770764 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.1376436589359351, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. Best is trial 4 with value: -647.3336440433073.\n", + "[I 2024-07-02 14:26:18,836] Trial 8 finished with value: -2756.4017711284796 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 25, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -647.3336440433073.\n", + "[I 2024-07-02 14:26:18,893] Trial 9 finished with value: -771.797115414836 and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.74340620175102, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. Best is trial 4 with value: -647.3336440433073.\n" + ] + } + ], + "source": [ + "from optunaz.utils.preprocessing.transform import VectorFromColumn\n", + "\n", + "vector_covariate_config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/precomputed_descriptor/train_with_fp.csv\",\n", + " aux_column=\"fp\", # use a comma separated co-variate vector in column `fp`\n", + " aux_transform=VectorFromColumn.new(), # split the comma separated values into a vector\n", + " split_strategy=Stratified(fraction=0.2),\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=10,\n", + " n_startup_trials=0,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " ),\n", + ") \n", + "\n", + "vector_covariate_study = optimize(vector_covariate_config, study_name=\"vector_aux_example\")\n", + "build_best(buildconfig_best(vector_covariate_study), \"../target/vector_covariate_model.pkl\")\n", + "with open(\"../target/vector_covariate_model.pkl\", \"rb\") as f:\n", + " vector_covariate_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can inspect the input query for the auxiliary co-variates used in the modelling like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([[0., 0., 0., ..., 0., 0., 0.],\n", + " [1., 0., 0., ..., 1., 0., 0.],\n", + " [1., 0., 0., ..., 1., 0., 1.],\n", + " ...,\n", + " [1., 1., 0., ..., 0., 0., 1.],\n", + " [1., 0., 0., ..., 0., 0., 0.],\n", + " [1., 0., 1., ..., 0., 0., 0.]]),\n", + " (40, 512))" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_smiles, train_y, train_aux, test_smiles, test_y, test_aux = vector_covariate_config.data.get_sets()\n", + "\n", + "train_aux, train_aux.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this toy example, the co-variate descriptors 512 in legth for the 40 training instances are used in training. Inference for the model can be performed on the test like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([454.39754917, 465.06352766, 340.52031134, 341.89875316,\n", + " 371.5516046 , 389.85042171, 436.33406203, 504.91439129,\n", + " 237.80585907, 346.48565041])" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vector_covariate_model.predict_from_smiles(test_smiles, aux=test_aux)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Z-Scales (for PCM)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Proteochemometric modelling (PCM) is the term used for the approach of training protein-descriptors as a distinct input space alongside the chemical ones. This can be performed in QSARtuna by providing Z-Scales as an auxiliary transformation to a user input column containing sequence information. Protein sequence is transformed to Z-Scales based on [this publication](https://pubs.acs.org/doi/10.1021/jm9700575) using the `Peptides` Python package.\n", + "\n", + "N:B. Note that Z-Scales as covariates are a distinct method separate to `ZScales` descriptors, since the former treats Z-Scales as a distinct input parameter (for PCM modelling), whereas the latter treates them as a descriptor trial that may or may not be selected during optimisation (e.g. for Protein-peptide interaction modelling). In other words, Z-scales will always be an input descriptor parameter when applied as a covariate and duplicates are treated on a compound-`ZScale` pair basis).\n", + "\n", + "Now let us consider the following toy data set file:" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "head: ../tests/data/peptide/toxinpred3/train.csv: No such file or directory\r\n" + ] + } + ], + "source": [ + "!head -n 5 ../tests/data/peptide/toxinpred3/train.csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following example demponstrates how Z-Scales may be utilised for PCM by specifying the `ZScales` data transform on the \"Peptide\" column containing our peptide sequence, like so: " + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:31:29,029] A new study created in memory with name: zscale_aux_example\n", + "[I 2024-07-02 14:31:29,089] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:31:54,458] Trial 0 finished with value: 0.8886986575836505 and parameters: {'algorithm_name': 'KNeighborsClassifier', 'KNeighborsClassifier_algorithm_hash': 'e51ca55089f389fc37a736adb2aa0e42', 'metric__e51ca55089f389fc37a736adb2aa0e42': , 'n_neighbors__e51ca55089f389fc37a736adb2aa0e42': 5, 'weights__e51ca55089f389fc37a736adb2aa0e42': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 128, \"returnRdkit\": false}}'}. Best is trial 0 with value: 0.8886986575836505.\n" + ] + } + ], + "source": [ + "from optunaz.utils.preprocessing.transform import ZScales\n", + "from optunaz.config.optconfig import KNeighborsClassifier\n", + "\n", + "zscale_covariate_config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"Class\",\n", + " response_type=\"classification\",\n", + " training_dataset_file=\"../tests/data/peptide/toxinpred3/train.csv\",\n", + " aux_column=\"Peptide\", # Name of the column containing peptide/protein amino acid sequence\n", + " aux_transform=ZScales.new(), # Zscales transform is used to transform sequence into a Z-scales vector\n", + " split_strategy=Stratified(fraction=0.2),\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(nBits=128), \n", + " ],\n", + " algorithms=[\n", + " KNeighborsClassifier.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.CLASSIFICATION,\n", + " cross_validation=2,\n", + " n_trials=1,\n", + " n_startup_trials=0,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " ),\n", + ") \n", + "\n", + "zscale_covariate_study = optimize(zscale_covariate_config, study_name=\"zscale_aux_example\")\n", + "build_best(buildconfig_best(zscale_covariate_study), \"../target/zscale_covariate_model.pkl\")\n", + "with open(\"../target/zscale_covariate_model.pkl\", \"rb\") as f:\n", + " zscale_covariate_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "N:B. Unlike the `ZScale` descriptor (which works on SMILES level of a peptide/protein), the `ZScale` data transform expects amino acid sequence as inputs.\n", + "\n", + "We can inspect the input query for the auxiliary co-variates used in the modelling like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([[ 0.21269231, -0.91153846, 0.29038462, -0.69846154, -0.22230769],\n", + " [-0.99521739, -0.59826087, -0.34695652, -0.03086957, 0.13391304],\n", + " [ 0.08083333, -0.6125 , 0.82916667, -0.05083333, -0.56083333],\n", + " ...,\n", + " [-0.02178571, -0.91785714, 0.45392857, -0.37642857, -0.03107143],\n", + " [ 0.93357143, -0.78964286, 0.62928571, -0.50857143, -0.50107143],\n", + " [-0.1232 , -0.3364 , 0.2328 , -0.1368 , 0.2304 ]]),\n", + " (7062, 5))" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_smiles, train_y, train_aux, test_smiles, test_y, test_aux = zscale_covariate_config.data.get_sets()\n", + "\n", + "train_aux, train_aux.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this toy example, the Z-scale co-variate descriptors 7062 with the expected length of 5 Z-Scale descriptors used in training. Inference for the model can be performed on the test by providing the auxiliary co-variate Z-Scales like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.2, 0. , 1. , ..., 0.2, 0.8, 0.2])" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "zscale_covariate_model.predict_from_smiles(test_smiles, aux=test_aux)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We may also inspect the X-matrix (descriptor) used to train the toy model like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax = sns.heatmap(zscale_covariate_model.predictor.X_,\n", + " vmin=-1, vmax=1, cmap='Spectral',\n", + " cbar_kws={'label': 'Fingerprint value'})\n", + "ax.set(ylabel=\"Compound input\", xlabel=f\"Input descriptor (248bit ECFP & Z-Scale))\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the (continuous) Z-scales covariates can be seen in the final columns (129-132) after the 128bit ECFP fingerprints used in this example " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Advanced options for QSARtuna runs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multi-objective prioritization of performance and standard deviation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QSARtuna can optimize for the minimzation of the standard deviation of performance across the folds. This should in theory prioritize hyperparameters that are consistently performative across different splits of the data, and so should be more generalizable/performative in production. This can be performed with the `minimize_std_dev` in the example below:" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:32:36,740] A new study created in memory with name: example_multi-parameter_analysis\n", + "[I 2024-07-02 14:32:36,779] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:32:37,080] Trial 0 finished with values: [-1.4008740644240856, 0.9876203329634794] and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 5, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:37,331] Trial 1 finished with values: [-1.3561484909673425, 0.9875061220991906] and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 7, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:37,472] Trial 2 finished with values: [-2.7856521165563053, 0.21863029956806662] and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 5.141096648805748, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.4893466963980463e-08, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:37,525] Trial 3 finished with values: [-0.9125905675311808, 0.7861693342190089] and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 5, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. \n", + "[I 2024-07-02 14:32:37,603] Trial 4 finished with values: [-0.5238765412750027, 0.2789424384877304] and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 3, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:37,657] Trial 5 finished with values: [-0.5348363849100434, 0.5741725628917808] and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.7896547008552977, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:37,746] Trial 6 finished with values: [-2.0072511048320134, 0.2786318125997387] and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.6574750183038587, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. \n", + "[I 2024-07-02 14:32:37,786] Trial 7 finished with values: [-0.9625764609276656, 0.27575381401822424] and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.3974313630683448, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:38,036] Trial 8 finished with values: [-1.1114006274062536, 0.7647766019001522] and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 28, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:38,080] Trial 9 finished with values: [-0.7801680863916906, 0.2725738454485389] and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.2391884918766034, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:38,121] Trial 10 finished with values: [-2.785652116470164, 0.21863029955530786] and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00044396482429275296, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.3831436879125245e-10, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:38,152] Trial 11 finished with values: [-2.785651973436432, 0.21863032832257323] and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.00028965395242758657, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 2.99928292425642e-07, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:38,180] Trial 12 finished with values: [-0.6101359993004856, 0.3011280543457062] and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:38,209] Trial 13 finished with values: [-0.5361950698070447, 0.23560786523195643] and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 2, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:38,274] Trial 14 finished with values: [-0.5356113574175657, 0.5769721187181905] and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.4060379177903557, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:38,439] Trial 15 finished with values: [-0.543430366921729, 0.514747412346662] and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 20, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. \n", + "[I 2024-07-02 14:32:38,479] Trial 16 finished with values: [-2.0072511048320134, 0.2786318125997387] and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.344271094811757, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:38,508] Trial 17 finished with values: [-0.5194661889628072, 0.40146744515282495] and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.670604991178476, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:38,659] Trial 18 finished with values: [-0.659749443628722, 0.6659085938841998] and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 22, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 6, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. \n", + "[I 2024-07-02 14:32:38,876] Trial 19 finished with values: [-1.1068495306229729, 0.24457822094737378] and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 0.5158832554303112, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:32:38,918] Trial 20 finished with values: [-0.8604898820838102, 0.7086875504668667] and parameters: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"MACCS_keys\", \"parameters\": {}}'}. \n", + "[I 2024-07-02 14:32:38,949] Trial 21 finished with values: [-0.5919869916997383, 0.2367498627927979] and parameters: {'algorithm_name': 'SVR', 'SVR_algorithm_hash': 'ea7ccc7ef4a9329af0d4e39eb6184933', 'gamma__ea7ccc7ef4a9329af0d4e39eb6184933': 0.0009327650919528738, 'C__ea7ccc7ef4a9329af0d4e39eb6184933': 6.062479210472502, 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n", + "[I 2024-07-02 14:32:38,977] Trial 22 pruned. Duplicate parameter set\n", + "[I 2024-07-02 14:32:39,009] Trial 23 finished with values: [-1.2497762395862362, 0.10124660026536195] and parameters: {'algorithm_name': 'Lasso', 'Lasso_algorithm_hash': '5457f609662e44f04dcc9423066d2f58', 'alpha__5457f609662e44f04dcc9423066d2f58': 1.1366172066709432, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}. \n", + "[I 2024-07-02 14:32:39,151] Trial 24 finished with values: [-1.1114006274062536, 0.7647766019001522] and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 26, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 8, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}'}. \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Duplicated trial: {'algorithm_name': 'PLSRegression', 'PLSRegression_algorithm_hash': '9f2f76e479633c0bf18cf2912fed9eda', 'n_components__9f2f76e479633c0bf18cf2912fed9eda': 4, 'descriptor': '{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}'}, return [-0.6101359993004856, 0.3011280543457062]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:32:39,205] A new study created in memory with name: study_name_1\n", + "INFO:root:Enqueued ChemProp manual trial with sensible defaults: {'activation__668a7428ff5cdb271b01c0925e8fea45': 'ReLU', 'aggregation__668a7428ff5cdb271b01c0925e8fea45': 'mean', 'aggregation_norm__668a7428ff5cdb271b01c0925e8fea45': 100, 'batch_size__668a7428ff5cdb271b01c0925e8fea45': 50, 'depth__668a7428ff5cdb271b01c0925e8fea45': 3, 'dropout__668a7428ff5cdb271b01c0925e8fea45': 0.0, 'features_generator__668a7428ff5cdb271b01c0925e8fea45': 'none', 'ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300, 'ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45': 2, 'final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300, 'init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'max_lr_exp__668a7428ff5cdb271b01c0925e8fea45': -3, 'warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45': 0.1, 'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': '668a7428ff5cdb271b01c0925e8fea45'}\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:669)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:669)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/joblib/memory.py:577: JobLibCollisionWarning: Possible name collisions between functions 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:-1) and 'calculate_from_smi' (/Users/kljk345/PycharmProjects/Public_Qptuna/D/QSARtuna/venv/lib/python3.10/site-packages/optunaz/descriptors.py:669)\n", + " return self._cached_call(args, kwargs, shelving=False)[0]\n", + "[I 2024-07-02 14:33:47,802] Trial 0 finished with values: [-2.0621601907738047, 0.2749020946925899] and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': '668a7428ff5cdb271b01c0925e8fea45', 'activation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation_norm__668a7428ff5cdb271b01c0925e8fea45': 100.0, 'batch_size__668a7428ff5cdb271b01c0925e8fea45': 50.0, 'depth__668a7428ff5cdb271b01c0925e8fea45': 3.0, 'dropout__668a7428ff5cdb271b01c0925e8fea45': 0.0, 'ensemble_size__668a7428ff5cdb271b01c0925e8fea45': 1, 'epochs__668a7428ff5cdb271b01c0925e8fea45': 5, 'features_generator__668a7428ff5cdb271b01c0925e8fea45': , 'ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300.0, 'ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45': 2.0, 'final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300.0, 'init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'max_lr_exp__668a7428ff5cdb271b01c0925e8fea45': -3, 'warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. \n", + "[I 2024-07-02 14:34:59,830] Trial 1 finished with values: [-2.0621601907738047, 0.2749020946925899] and parameters: {'algorithm_name': 'ChemPropRegressor', 'ChemPropRegressor_algorithm_hash': '668a7428ff5cdb271b01c0925e8fea45', 'activation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation__668a7428ff5cdb271b01c0925e8fea45': , 'aggregation_norm__668a7428ff5cdb271b01c0925e8fea45': 100.0, 'batch_size__668a7428ff5cdb271b01c0925e8fea45': 45.0, 'depth__668a7428ff5cdb271b01c0925e8fea45': 3.0, 'dropout__668a7428ff5cdb271b01c0925e8fea45': 0.0, 'ensemble_size__668a7428ff5cdb271b01c0925e8fea45': 1, 'epochs__668a7428ff5cdb271b01c0925e8fea45': 5, 'features_generator__668a7428ff5cdb271b01c0925e8fea45': , 'ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300.0, 'ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45': 2.0, 'final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'hidden_size__668a7428ff5cdb271b01c0925e8fea45': 300.0, 'init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45': -4, 'max_lr_exp__668a7428ff5cdb271b01c0925e8fea45': -3, 'warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45': 0.1, 'descriptor': '{\"name\": \"SmilesFromFile\", \"parameters\": {}}'}. \n" + ] + } + ], + "source": [ + "config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"Smiles\",\n", + " response_column=\"pXC50\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/sdf/example.sdf\",\n", + " ),\n", + " descriptors=[\n", + " ECFP.new(), \n", + " ECFP_counts.new(), \n", + " MACCS_keys.new(),\n", + " SmilesFromFile.new(),\n", + " ],\n", + " algorithms=[\n", + " SVR.new(),\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ChemPropRegressor.new(epochs=5),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=3,\n", + " n_trials=25,\n", + " n_startup_trials=25,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " n_chemprop_trials=3,\n", + " minimise_std_dev=True # Multi-objective optimization for performance and std. dev.\n", + " ),\n", + ") \n", + "\n", + "study = optimize(config, study_name=\"example_multi-parameter_analysis\")\n", + "default_reg_scoring= config.settings.scoring\n", + "study.set_metric_names([default_reg_scoring.value,'Standard deviation']) # Set the names of the multi-parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note the multi-parameter performance reported for each trial, e.g. ` Trial 1 finished with values: [XXX, XXX]`, which correspond to negated MSE and deviation of negated MSE performance across the 3-folds, respectively. The two objectives may be plot as a function of trial number, as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Standard Deviation across folds')" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABD4AAAF9CAYAAADso6iwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACZX0lEQVR4nOzdeVwU5R8H8M/ssuyy3CCXIt6AF4KKR96aVmZppp3eWqmVZWVamqkdWpq35pFl2k8t08zM8ixLS9PCW8ADUZRLQc5ddtmd3x/EJnLuCjsjfN6vl690Zvb5fjgadr7MPI8giqIIIiIiIiIiIqJqSCF1ACIiIiIiIiKiqsLGBxERERERERFVW2x8EBEREREREVG1xcYHEREREREREVVbbHwQERERERERUbXFxgcRERERERERVVtsfBARERERERFRtcXGBxERERERERFVW2x8EBEREREREVG1dU80PsxmMxYvXowuXbogPDwczz33HK5evVrq8enp6Xj99dcRGRmJdu3aYebMmdDpdHZMTERERERERCQPK1euxNChQ8s8piLX0T/99BP69u2LsLAwDBgwAH/++afVY0jhnmh8LF++HBs2bMB7772HTZs2wWw2Y8yYMTAYDCUeP2HCBMTHx2Pt2rVYtGgRDhw4gBkzZtg3NBEREREREZHE/ve//2HhwoXlHlfedfThw4cxadIkPPXUU/juu+/QsWNHPP/887h48WKFx5CKIIqiKHWIshgMBnTo0AFvvPEGnnnmGQBAZmYmunTpgg8++AD9+vUrcnxUVBSeeuop7Ny5E40aNQIAHDx4EGPGjMGBAwfg5+dn94+BiIiIiIiIyJ6Sk5Px7rvv4siRI/D390etWrWwfv36Eo+tyHX06NGj4erqWqSJ8tRTTyE4OBizZs2S9bW47O/4iI6ORk5ODjp27GjZ5ubmhmbNmuHo0aPFjj927Bh8fHwsn2gAaNeuHQRBwN9//22XzERERERERERSOnPmDFQqFbZv345WrVqVeWx519Fmsxn//PNPketyAGjfvr3lulzO1+IOklavgKSkJABAQEBAke2+vr6WfbdLTk4udqyjoyM8PDyQmJhYap1evXqVum/v3r0QBMGa2ERERERERER3JTs7G/379y91/759+0rd17NnT/Ts2bNCdcq7js7MzERubi78/f2LHHP7dbmt1+L2IPvGR+FEKI6OjkW2q9VqZGRklHj8nccWHp+Xl2dzDlEUZd38EM1miGYzYDYDCgWEf//UtAxERERERETVhUqlskud8q6j9Xo9gJKvywuvs6vqWrwyyL7xodFoABTM9VH4dwDIy8uDk5NTiceXNOlpXl4etFptqXXK6pQBBY2PzEzpZ6MtiYMuC5eWr0DG8ROWbe4R4Wg47gXkO7nWmAwAoFAIcHHRIDtbD7NZmulrpM4gdX05ZJC6vhwySF1fDhmkri+HDFLXl0MGqeszgzzqyyGD1PXlkEHq+nLIIHV9OWSQur5cMlSEq6sGarW63GvVylDedbRarQaAYsfcfl1u67W4Pci+8VF4q0xKSgqCgoIs21NSUhASElLseH9/f+zdu7fINoPBgFu3bsHX1/eusuTl5d/V66uCWjQWazgAQEbUcVz6dCWCxr+IPKFqu4RyyFDIwaHgDhOj0YT8fLNdasotg9T15ZBB6vpyyCB1fTlkkLq+HDJIXV8OGaSuzwzyqC+HDFLXl0MGqevLIYPU9eWQQer6cslQEa72+/1xudfRHh4e0Gq1SElJKXJMSkqKZdLSqrwWv1uyfw4hNDQULi4uOHLkiGVbZmYmzp49i8jIyGLHR0ZGIikpCfHx8ZZtf/31FwCgTZs2VR/YzgRdTrGGQ6GMqOMQdDk1IgMRERERERHZprzraEEQ0Lp1a8u2QkeOHEHbtm0rNIaUZN/4cHR0xJAhQzBv3jzs27cP0dHRmDhxIvz9/dGnTx+YTCakpqZanjlq1aoVWrdujYkTJ+LkyZM4fPgwpk+fjgEDBlTLpWxNubl3tb+6ZCAiIiIiIqKKseU6euTIkfjxxx/xxRdf4OLFi/j4449x7tw5DB8+vMJjSEX2jQ8AmDBhAgYNGoRp06bh6aefhlKpxJo1a6BSqZCYmIjOnTtj586dAABBELB06VIEBgZi+PDhePXVV9G1a1fMmDFD2g+iiijLeVaqvP3VJQMRERERERFVjC3X0Z07d8aHH36IjRs34rHHHsPhw4exYsUKy/K1cr4Wl/0cHwCgVCoxadIkTJo0qdi+wMBAxMTEFNnm7e2NxYsX2yuepEQnZ7hHhCMj6nixfe4R4RCdnGtEBiIiIiIiIirZnDlzivzb1uvoAQMGYMCAAaXul+u1+D1xxweVLk9QocHYF+AeEV5ku3tEOBqMfcEuk4rKIQMRERERERFRSe6JOz6obLlKJwSNfxEKfQ5EvR6CRgOzxhm5dmw4yCEDERERERER0Z3Y+Kgm8gQVHFy94BnkjPT0HEmWZZJDBiIiIiIiIqLb8VEXIiIiIiIiIqq22PggIiIiIiIiomqLjQ8iIiIiIiIiqrbY+CAiIiIiIiKiaouNDyIiIiIiIiKqttj4ICIiIiIiIqJqi40PIiIiIiIiIqq22PggIiIiIiIiomqLjQ8iIiIiIiIiqrbY+CAiIiIiIiKiaouNDyIiIiIiIiKqttj4ICIiIiIiIqJqi40PIiIiIiIiIqq22PggIiIiIiIiomqLjQ8iIiIiIiIiqrbY+CAiIiIiIiKiaouNDyIiIiIiIiKqttj4ICIiIiIiIqJqi40PIiIiIiIiIqq22PggIiIiIiIiomqLjQ8iIiIiIiIiqrbY+CAiIiIiIiKiaouNDyIiIiIiIiKqttj4ICIiIiIiIqJqi40PIiIiIiIiIqq22PggIiIiIiIiomqLjQ8iIiIiIiIiqrbY+CAiIiIiIiKiastB6gBERERERERERPm5Oph0Oqi9vWDOz0fijp3IS0mFd6cOcG/e3OZxeccHEREREREREUkqKyYWx8a8gMQfdwIA4lavweW165B64DecnjYDN48ctXlsNj6IiIiIiIiISFLx/9sIbWAg/B/oDVNeHlJ+OQD/hx5A+/99Cb/evZCweYvNY7PxQURERERERESSyo49j7pPDoLGzw+3oo7DbDTCt3s3AECtzp2Qe+WKzWOz8UFERERERERE0lIIEFQqAMCtqONwcNbCJbgJAMCk00GhVts8NCc3JSIiIiIiIiJJuTRqhOQ9e6FUq3Hj0B/wbNsWgiDAcCsD17Z8B5fGjWwem3d8EBEREREREZGk6o8YhowTJ3Fy8tsQFErUfeJxAMDxCa9Cdz0R9Z592uaxeccHEREREREREUnKpVFDtF6xHLqrV6GtFwSlRgMAaDj2ebg1DYWjp6fNY98Td3zk5eVh5syZ6NixIyIiIvD6668jLS2tzNd8+umnCAkJKfaHiIiIiIiIqLozm81YvHgxunTpgvDwcDz33HO4evVqqcffvHkTr7/+Ojp06ID27dtj4sSJSE5Otuw3mUxYvHgxevTogbCwMAwcOBC//vprkTHOnDmD4cOHIyIiAh06dMD06dORlZVV4cwOWie4hgRbmh4AUOu+jnfV9ADukTs+ZsyYgWPHjmHJkiVwdHTEu+++iwkTJuCrr74q9TUxMTHo378/Jk2aZMekRERERERERNJbvnw5NmzYgDlz5sDf3x9z587FmDFj8MMPP8DR0bHY8a+++iry8/PxxRdfQBRFzJw5Ey+++CK+/fZbAMCiRYuwefNmzJ49G40aNcKOHTswfvx4fPPNN2jRogVu3LiBkSNH4v7778eMGTOQnp6Od955B1OmTMGyZctKzHh62rtWfUwt3p9p/ScC98AdH8nJydi2bRumTZuGtm3bIiwsDPPnz8fRo0cRFRVV6utiY2PRrFkz+Pj4FPlDREREREREVJ0ZDAZ8/vnnmDBhArp3747Q0FAsWLAASUlJ2L17d7HjMzMz8ddff+G5555D06ZN0axZMzz//PM4deoUbt26BQAwGo2YOnUqunfvjrp162LcuHFwdnbG4cOHAQDXrl1D586dMWvWLDRo0ACtW7fGE088gUOHDpWaUxTFIn8yz0UjMzoGoihC5eEOQalE9oWLyDp/ASoPd5s/HxW642PuV8cw9KGm8Pd2tmy7kHALQX6ucFQp/9t29RbeWfkHNr7f1+ZAd/r7778BAB06dLBsa9CgAfz8/HD06FFEREQUe43BYMDly5fRsGHDSstBREREREREdC+Ijo5GTk4OOnbsaNnm5uaGZs2a4ejRo+jXr1+R4zUaDZydnbFt2za0a9cOAPD999+jQYMGcHNzAwBMnjzZcrxer8fmzZuh0+nQvn17AECrVq0wf/58yzEXL17E999/j06dOpWas+UHsyx/v/b9DzBmZKD5jOlQ1/K2bDdmZuLsrA+g8fOz5VMBoIJ3fPx+/BoycwyWf5vMIl5feABXkos+q2Mym5GrN9ocpiTJycnw9PSE+o41e319fZGUlFTiay5cuACTyYRdu3bhgQceQPfu3TFp0iSkpKRUajYiuREFAZl6E2Li05CVZ4IoCFJHIiKiGo4/m4iI7K/wWjkgIKDI9tKuox0dHTFnzhz89ddfaNu2LSIjI3HixAmsXr0aCkXRtsH27dsRHh6O999/H2PHjkXLli2LjffAAw+gb9++uHXrFqZOnVqhzNe++x71nn26SNMDAFRubggc/DiSdu2p0DglsXmOD9HmkkUlJCSgV69epe5/5ZVXSnz+SK1WIy8vr8TXxMbGAgCcnJywaNEi3Lx5E/Pnz8ewYcOwbds2aG6bKKVQWRl27doFpVIJtVreU6IoFAVvJFQqJZRKaZ5ikjqD1PWlzGAwifh2/3nExKdbtoXU88Tgnk3gqLTfm0yTCOiNJlxOzIBapYTG0QF2LA+gZn8fyKW+HDJIXV8OGaSuL/X5QOr6haT+OkiZQS4/mwDpvw5S15dDBqnryyGD1PXlkEHq+nLJUFHXr1/H0KFDS92/b9++ErfrdDoAKHYtrVarkZGRUex4URRx7tw5REREYMyYMTCZTFiwYAHGjx+PjRs3wsXFxXJsZGQktm3bhkOHDmH+/Pnw8vLCM888U2S8efPmQafTYe7cuRg2bBi+//57ODs731m2CLMhD6JYcqfBpNPhbroQkl/J+/n5YefOnaXuP3DgAAwGQ7HteXl5cHJyKvE1AwYMQNeuXeHl5WXZ1qRJE3Tt2hX79+9H3762PYrj5lZyPblxcSne2KlpGaSuL1WGcY+3sntNOaup3wdyqi+HDFLXl0MGqetTATl8HfizSfqvg9T15ZBB6vpyyCB1fTlkkLq+XDJUlcJf9hsMhiK/+C/tOvqnn37CV199hV9++cXS5FixYgV69OiBb7/9FiNGjLAcGxAQgICAAISGhiI+Ph5r1qwp1vgovAtk6dKl6NatG/bs2YMBAwaUmdm9ZUvEr98AbVAQtIF1LNuzL17Cla82wLNNG6s+B7eTvPGhUqnQqFGjUvfHxMTg1q1bMBgMRbpVKSkp8CvjGZ/bmx5AwS09Hh4epT4eU1qnrJAoisjM1JV5jNQUCgEuLhpkZ+thNlfWPTn3Vgap60uVISfPhI/WHyt1/+ShbeGsVpa6vzKYRGDT3tgiv9UrFFLPE0/dH2y337TW1O8DOdWXQwap68shg1T1pT4fSF2/kMEkYrOM7naoiT+bbldT/3+UUwap68shg9T15ZBB6vpyyVARrq4a1K5du9xr1ZIUPuKSkpKCoKAgy/aUlBSEhIQUO/7YsWNo0KBBkTs73N3d0aBBA8THxyM/Px+//vormjVrhtq1a1uOCQkJwdatWwEAly5dwpUrV9C9e3fLfj8/P3h4eBRZFrc0DceMwqm3pyHq5Veh8feHys0VxlsZ0KekQBtUFw3GjLT681BI8sZHedq0aQOz2Yy///7bMjFLXFwckpOTERkZWeJrFixYgJ9//hk///wzhH+fI01ISEB6ejoaN25sc5a8vHybX2sPDg4Ft2kZjSbk55trZAap60uV4Va2ARevFb9l7b/9eXBA8UfGKlNuvhk7/7hc4r6L1zLQ97760DrY51bCmvp9IKf6csggdX05ZJCqvtTnA6nrAwXzWizdchJRsanF6ifezMFLA8MglHI7b1WoqT+bbldT/3+UUwap68shg9T15ZBB6vpyyVARrq62vzY0NBQuLi44cuSIpfGRmZmJs2fPYsiQIcWO9/f3x48//oi8vDzL/Jq5ublISEjAo48+CqVSiXfeeQeDBg3C66+/bnndiRMnLNfYf/zxBz7++GMcPHjQMiHqlStXkJ6eXubNDoXUPrUQsXQRUvbuR+a5c8jPyoY62BeBgwfCp3s3KBxsb1/c1U99e/yuws/PDw8//DCmTZuGI0eO4OTJk3jttdfQrl07hIeHAyi4fSc1NdXySEzv3r1x7do1zJgxA3FxcTh69ChefvlltG7dGl26dLFDaiL70mrKPgmUt78y5OrLbgyWt5+Iqg+pzwdS1wcAndFUrOlRKComFTqjqcozSE0OP5uIiGoqR0dHDBkyBPPmzcO+ffsQHR2NiRMnwt/fH3369IHJZEJqair0ej0AWB5DefXVVxEdHY3o6Gi89tprUKvVGDhwIARBwKhRo7Bu3Tr88MMPuHz5MlatWoUdO3bg5ZdfBgD069cPHh4emDRpEs6fP49jx45hwoQJCAsLQ48ePSqUW6lWI+DhhxDyxmtoPnM6Ql5/FX7397qrpgdgxR0fm/bEwN25oPMj/jupyMbdMXDV/tepz8gpebLRu/Xee+/hww8/xEsvvQQA6Nq1K6ZNm2bZHxUVhWHDhmHdunVo3749WrRogdWrV2PRokUYOHAgHB0d0atXL0yePNlyBwhRdeKkUiIixAdRMcXfZEeE+MBJpQSq+DeLfINLRIWkPh9IXR+oWPNF62K/ux2kIIefTURENdmECROQn5+PadOmQa/XIzIyEmvWrIFKpbIsMjJ79mwMHDgQvr6+2LBhA+bOnYvhw4dDoVCgbdu22LBhA1z/vfVk9OjRUKlUWLJkCRITE9GwYUMsXrzYslCIh4cHvvzyS8yZMwdPP/00lEolevXqhSlTpkCpLPnRxiubvqnwxyMIAuo+Odimz4UgljZt6m1Gv78bsKJhsGZqb5vCyJkoirhxI1vqGGVycFDA09MZ6ek5kt42JmUGqetLmcEkCFi+9WSRN5gRIT4YPzAMSju8sRQFAUvvqH97Dnve1l2Tvw/kUl8OGaSuL4cMUtWX+nwgdX2g4HGbl+b9Wur+pW90t9vjf0DN/dl0u5r6/6NcMoiCAJ3RDL0hH05qB2gcFHZ93KuQ1F8HqevLIYPU9eWSoSJq1XKp9r+4PzRgUMUPFgR0+m6zTXUq9CuPNdP62DQ4EdmPUhTx0sAwy5sKjaMDnFT2e1MhiCLGDwwr9Q2uFG9uiEgaUp8PpK4P8G6HQlL/bCJ5MAkClt8x541UDTAikpdO2761Sx3ee05UjQiiCDeNEvUC3CTpYPMNLpF8iIKATL0JKfFpkvx2VerzgdT15dB8kQupfzaRtMQSmh5AwVw3y7eetPtEv0Qkf/nZOciKjUV+dg5U7m5wadIYDlrtXY1Z4caHySzi8OlE+Htp0SjQAwCQeCMHX+48i6vJWagf4IZnHghFHR+XsgciomqNb3CJpCeX365KfT6Qur7UzRciOajIRL/2fOyLiOQt4dutuPrNtzD/u3AJAChUKgQOGmjz/B5ABRsfurx8TFtxCBeu3sKQh5qiUaAHsnVGTFn2OzJzjGjb1BdXkrIwafFvWDixO3y97q4bQ0RERLbhb1flRermC5HUONEvEVVU8t79iP9qA/zu7wWf7l2h8vCAMT0dKb8ewJVN30DtUwu+PSu2OsydKtT42PrLBSTeyMHbI9qhbVM/AMD23y7iVlYexg8KxwMd6sFkFjFtxSFs2hODCU9G2BSG6F6nFo1QZOUgK/UaVBonKDXOyBNUUsciohqEv10lIjmRwypLRHRvuL79B/g/+AAajX3uv42BdeDesgUUjo64/sOPVdv4+OPUdTzeownatwiwbPvzVCKc1A64v10QAECpEPBQx/r4YsdZm4IQ3eu0Jh3iPl2BjOMnLNvcI8LRYOwLyFU6SZiMiGoS/naViOSEE/0SUUXpE5PQYNSIEvd5t2+HlL37bR67Qr/ySU7LReO6HpZ/Z+YYcCUpE80b1oJS8d/yOt7uTsjIzrM5DNG9Si0aizU9ACAj6jjiVqyEWjRKlIyIahr+dpWouMLJfmPi05CVZ4JYzZeHlJPCiX4jQnyKbK+JE/0SUdkcvbygTyn5rlV9cjKUdzHBaYXe/SgVAkym/05KZ+NuQgTQsnGtIsdl5uRB48g3VFTzCLqcYk2PQhlRxyHocgCth31DEVGNxN+uEhUll8l+azJO9EtEFeHVri2ubNgI5/r14BrcxLI9KyYWVzZ+Da92bW0eu0Jdinr+bjgbdxOtQ30BFDzmIgBo8++/C/1xMhH1AlxtDkN0rzLl5pa/n40PIrIDLqNK9B9O9isfnOiXiMpT9+kncevESZyc/DY0vj4Fk5veugV9Siq0gXVQb9gQm8euUOOjT/t6WPbtCUAAzGYRB/5JQMvGtVDXr6DJYTCasOPgJfx2/BrGP97K5jBE96rybrtSarXgwy5EZC/87SpRAU72S0Qkb7rEJGj8fCEoFHDQatFq3kdI3rcfmafPIj87G+rGjVF7wKPw7dkDSrXa5joVanzc3y4Iqem52PLrBRiMJgQHeWLi060t+0e9vxtZOQZ0CQ/EAx3q2RyG6F4lOjnDPSIcGVHHi+1zjwiH6ORs/1BEVKPxt6tEnOyXiEjuTk6ajNC3JsO9eTOcX7wMdZ8chICHHkTAQw9Wap0KT8jx9AOhGHx/MHJ0Rri7FO20PHF/MIL8XBEe7FvKq4mqtzxBhQZjX0DcipVFmh+WVV24pC3ZEZdVJiIqwMl+iYriewSSG7PBCN3VBLg3b4aU/b/A/6EHoPHzq/Q6Vp3tHZSKYk0PAHi0S6NKC0R0r8pVOiFo/ItQ6HMg6vUQNBqYNc5sepBdcVllIqL/cLJfov/wPQLJkXtYS1xcsQoXV64GAJx8860yj+/03Wab6lSo8bH/2BWrBu3ZNsimMET3ujxBBQdXL3gGOfPWcrK78pZVDhr/In+rQ0Q1Cif7JSrA9wgkV8GvvYrUX36FMSsLVzd9A79ePeFYy7vS61So8bFwUxQKVzsv78eDADY+iIikwGWViYiK42S/RHyPQPLloHVCwMMPAQAyTp1G7QGPQBsYWPl1KnKQp6sG6Vl6NKzjjq7hgWjX3A+ODspKD0NERLbjsspERCXjZL9U0/E9At0LWn4wq8rGrlDjY+30Pjh96SZ+j7qGrb+ex9d7Y9C+uT+6tQ5EeLAvlAqh/EGIiKhKcVllIiIiKgnfI1BNV6HGhyAIaNmoFlo2qoUXBobhRGwqfj9+DfO++hsKhYD7wmqja0QdtGxUq6rzEhFRKbisMhEREZWE7xGoplNY+wKlQkDrUF+88lQE1s98EBOeCIc+Lx/vrTmCEbN2Yc3201WRk4iIylG4rLJ7RHiR7YUztttz0jJREJCpNyEmPg1ZeSaIAu8MJCIikoqc3iMQSeGuFi93UCrQvkUAfL208HBVY8fBOGz/7SJGP9qisvIREZEV5LCsskkQsHzLSUTFFl9BQcnJBImIiCQhh/cIRFKxufERdz0DB09cx6ET15B4Iwc+nlr079oQncPrVGY+IiKykpTLKoslND0AIComFcu3nsRLXD6SiIhIMlK+RyCqiIzTZ6BQqeAaEoy81FRcXLkaeSmpqNXpPtR9crDN41rV+Li92XH9Rg683TTo1KoOuoTXRkg9L5tDEBFR9aAzmoo1PQpFxaRCZzRB62D1U5ZEREREVM2l/PIrzi9ehjoDHoVrSDAuLF+JzLPn4BHeClc3b4Hg4IDAxx+zaewKNT7W/3TOcmeHh6sa97WsjZefqIPmDb1tKkpERNVTrj6/3P1aF0c7pSEiIiKie8X173fAt2d31B8+FIb0dNw6fgL1hw1Bncf649q27UjatbtqGx+b98VCIQho1tAbLRrWgkIh4OSFGzh54UaxYwUBeKp3iE1hiIjo3qbVlP1jpbz9RERERFQz6a5dQ4MxIwEA6X//AwDwah8JAHBp0giG/920eewKvwM1iyLOXLqJM5fKLiaAjQ8ioprKSaVERIgPomKKP+4SEeIDJ5US4BwfRERERHQHpbMWptxcAED6P1FQ+9SCU+3aAAB9YjIcXF1tHrtCjY/t8/rbXICIiGoOQRQxfmAYlm89WaT5UbiqCyc2JSIiIqKSuLdsiSubvkHulatIO3IUtfs/AgC48cefuLJhIzzuWI7ZGrznmIiIKpVSFPHSwDDojGboDfnQODrASaVg04OIiIiIStXwuVGI/WQhrn69GR6tWiJw0OMAgLg1a6Gu5YN6Q4fYPDYbH0REVOkEUYSbRol6AW5cLo+ISAZEQUCm3oSU+DQ4qR2gcWBDmojkReXmhuYzpxfbHjbnfah9fO5qbDY+iIiIiIiqMbMgIDrmOgKdAZVBB6PaCXE5QGhwbSjY/CAiGcnP1cGk00Ht7QVzfj4Sd+xEXkoqvDt1gHvz5jaPy8YHEREREVF1JQjQ3bgJr10bkXTipGWzZ6sw6LxHwNnbm5NOE5EsZMXE4szM9+H/YB/UHzYEcavXIGnXHjg4OyPxp58ROuVNeP+7you1FJWclYiIiIiIZEKRn4esDWuReVvTAwCyTpxE5v/WQpGfJ1EyIqKi4v+3EdrAQPg/0BumvDyk/HIA/g89gPb/+xJ+vXshYfMWm8dm44OIiIiIqJpS6nOKNT0KZZ04CaU+x86JiIhKlh17HnWfHASNnx9uRR2H2WiEb/duAIBanTsh98oVm8eu0KMuoz/YA8GKQT+b2tvGOET3Nk4cRkRERHIi6nTl73f2tFMaIqIyKAQIKhUA4FbUcTg4a+ES3AQAYNLpoFCrbR66Qo2PFg29Ifzb+RBF4Leoa3B2ckCbUD94uWmQlWtAVEwKMnIMeLBDfZvDEN3LTIKA5VtOIio21bItIsQH4weGQcnmBxEREUnAQastd3++nbIQEZXFpVEjJO/ZC6VajRuH/oBn27YQBAGGWxm4tuU7uDRuZPPYFWp8THy6teXva3ecQXCQB2Y+3xEax/9enm8y473Pj0Bv4KmTah6xhKYHAETFpGL51pN4aWAY7/wgIiIiuxOdnOEeEY6MqOPF9rlHhEN0crZ/KCKiEtQfMQxnZ76HG78fgsrNDXWfeBwAcHzCqxDNIprPeMfmsa2e42P3kXg83rNJkaYHADgoFXikc0P8fvyazWGI7lU6o6lY06NQVEwqdEaTnRMRERERAXmCCg3GvgD3iPAi290jwtFg7AvIE1TSBCMiuoNLo4ZovWI5wj76EG1WLYdT7doAgIZjn0fEkgVVf8fHnbJzDSVuT03PhaOD0uYwRPeqXH3Zdzrl6vOhdXG0UxoiIiKi/+QqnRA0/kUo9DkQ9XoIGg3MGmfksulBRDLjoHWCU506yDx7DvnZOVC5ucIjvFW5j+2VO661L2jX3B9rd5yFp6sGESG+AABRFHH4dCLW/3QO3dvUvatARPcirabs/5XK20/VCye5JSIiuckTVHBw9YJnkDPS03OQn2+WOhIRUTEJ327F1W++hdloLJhgFIBCpULgoIGo++Rgm8e1+mpsTP+WeDf5D7y7+k+olAq4aB2RmWOA2WxGeIgvRjzczOYwRPcqJ5USESE+iIop/rhLRIgPnFRKy/+4VL1xklsiIiIiIusl792P+K82wO/+XvDp3hUqDw8Y09OR8usBXNn0DdQ+teDbs4dNY1vd+HBxUmHehK44di4ZZy7dRLbOCDdnR7Rq4oNWTXxsCkF0rxNEEeMHhmH51pNFmh+FF7z8bX/NwEluiYiIiIhsc337D/B/8AE0GvvcfxsD68C9ZQsoHB1x/Ycf7df4AABBEBDZzB+RzfxhMJrgoFRAoRBsCmCt6dOnw2AwYM6cOWUel5CQgPfeew9Hjx6FVqvFoEGD8PLLL0Op5BwkVDWUooiXBoZBZzRDb8iHxtEBTio+4lCTVGSSW62D1XNKExERERFZzWw2Y+nSpdi8eTOysrIQGRmJ6dOno27dkqenMBqNWLx4MbZt24asrCy0aNECU6dORdOmTS3HxMXFYfbs2Zbr7AceeACTJk2Ck5MTjhw5gmHDhpU4dmBgIPbt21dmXn1iEhqMGlHiPu/27ZCyd3/FPvAS2PQOPCElCx+tO4qnp+3E4Ld/xKXrGfh0ywn88Pslm4OUx2w2Y/78+fj666/LPdZoNGL06NEAgE2bNmHGjBnYuHEjli1bVmX5iICCOz/cNEqE1POCm0bJpkcNU5FJbomIyP7UohGqrDRkxcZClZUGtWiUOhIRUZVbvnw5NmzYgPfeew+bNm2C2WzGmDFjYDCUvFjJjBkzsHXrVnz44YfYsmULvLy88NxzzyErKwsAkJ6ejiFDhsDBwQGbN2/G3LlzsWfPHnz00UcAgIiICBw8eLDIn6VLl0IQBIwfP77cvI5eXtCnlPxLRH1yMpR3McGp1Xd8XLqWgSnLDsLDRY1urQPx0x9xAAClUoHPvj8FrcYBvSKDbA5UkosXL2Lq1KmIj49H7X+XtCnLrl27cP36dXzzzTdwd3dHcHAwbt68iY8//hhjx46FoyNX1yCiysdJbomI5Edr0iHu0xXIOH7Csq1wKddcpZOEyYiIqo7BYMDnn3+ON954A927dwcALFiwAF26dMHu3bvRr1+/IsdfvXoVW7ZswYoVK9ClSxcAwPvvv48BAwbg9OnT6NixI7766is4ODhgwYIFUKvVaNy4MSZMmICNGzdCFEU4OjrCx+e/6S9yc3Mxe/ZsPPbYY3j88cfLzezVri2ubNgI5/r14BrcxLI9KyYWVzZ+Da92bW3+fFh9x8fnP5xGk7oe+HRyTzzXvwUKf5/9/ICW6N2+HrZXwV0fhw8fRqNGjbBjxw4EBgaWe/yxY8fQvHlzuLu7W7Z16NAB2dnZOHfuXKXnIyIC/pvktiSWSW6JiMhu1KKxWNMDADKijiNuxUre+UFE1VZ0dDRycnLQsWNHyzY3Nzc0a9YMR48eLXb8oUOH4Orqiq5duxY5fv/+/ZYxDh48iN69e0OtVluOGTx4MLZu3QpBKD71xYoVK6DT6TB58uQKZa779JNQubnh5OS38fcL4//775SpULm6ot6wIRX++O9k9a8fo+PT8eaQtlAqFTCZi97G3yW8Dg78k2BzmNI8++yzVh2flJQEf3//Itt8fQuW3k1MTESrVq2KvaZXr16ljrdr1y4olUqo1fL+bW3hPCsqlRJKpTTzCEidQer6csggdX05ZJCy/oTB4di8/zxi4tMt20LqeWJwryZwtNNcSID0XwM5ZJC6vhwySF1fDhmkrs8M0tZX3LpVrOlRKCPqOBT6HKg9atknC78PJK8vhwxS15dDBqnryyVDRV2/fh1Dhw4tdX9p82YkJSUBAAICAops9/X1tey7XVxcHOrWrYvdu3dj1apVSE5ORrNmzTBlyhQ0atTIckyvXr0we/Zs7Nq1CyqVCr1798Yrr7xSpBkCAGlpaVi7di1ef/11eHh4VOhjddBq0WreR0jetx+Zp88iPzsb6saNUXvAo/Dt2QPKO2pYw+oreUcHBfIMphL3ZeUaoHKw7jeaCQkJZTYd/vzzT3h5eVk1pl6vh5ubW5FthV+IvLw8q8a6nZvbvXE7pIuLRuoIkmeQur4cMkhdXw4ZpKo/7vHizVWpSP01kEMGqevLIYPU9eWQQer6zCBN/awkXZn7Rb3e7u/vpP4ayCGD1PXlkEHq+nLIIHV9uWSoKjpdwfnvzmke1Go1MjIyih2fnZ2N+Ph4LF++HG+++Sbc3Nzw6aef4plnnsHOnTvh7e2N7OxsrF69Gg8//DCWLl2K69ev47333kNqairmzp1bZLwNGzbA1dUVTz75ZIUzn3l3FuoMHICAhx5EwEMP2vBRl87qxkdEsC/+tysaTRt4wdOt4BtFAKDLy8d3v15AeLB1S9r6+flh586dpe6//XGVitJoNMUmbClseGhLmRClvBlmRVFEZmbZPzylplAIcHHRIDtbD7NZmkk1pc4gdX05ZJC6vhwySF1fDhmkri+HDFLXl0MGqevLIYPU9ZlB2voKTdlNDUGjsdv7O6m/BnLIIHV9OWSQur4cMkhdXy4ZKsLVVYPatWuXe61aEo2m4FrdYDBY/g4UXBc7ORU/Nzo4OCA7OxsLFiyw3OGxYMECdOvWDd999x3GjBkDBwcHNGjQADNmzAAAtGjRAiaTCa+++iqmTJkCb29vy3jbtm3DgAEDitQuT2Z0DOqU8MhMZbC68TGiX3NMWvIbxn60Dw1ru0MA8PkPZ5CQkg1RFDFpiHUTjqhUKssntrL4+/sjNja2yLaUlBQABY0WW+XlyXtFBod/l8k0Gk3IzzfXyAxS15dDBqnryyGD1PXlkEHq+nLIIHV9OWSQur4cMkhdnxmkra/WOMM9IhwZUceL7XOPCIdZ42y393dSfw3kkEHq+nLIIHV9OWSQur5cMlSEq6vtry18xCUlJQVBQf8tPpKSkoKQkJBix/v7+8PBwaHItblGo0HdunWRkJBgOaZJkyZFXlf472vXrlkaH9HR0bh69SoeeeQRqzJ7to5A6oHf4NasKRQOlTvNhNWj+Xg6YfHrPbDtwAWcvHAD/t7O0OXlo1vrQAzo1ghebtLfLhQZGYlt27YhOzsbLi4uAAomSHV2dkZoaKjE6YiIiIjIHvIEFRqMfQFxK1YWaX5YVnURVNKFIyKqQqGhoXBxccGRI0csjY/MzEycPXsWQ4YUnyQ0MjIS+fn5OHXqFFq2bAmgYAqJq1ev4uGHH7Ycc/LkSYiiaJnMNDY2FkqlssgiJMeOHYO3t7fV194KRxVSf/0NNw7+AW3dQCjvvFtEENDivRlWjVnI6sZHSnouvNw0GNa3WbF9BqMJ5+LS0LSBdXNy3C2DwYCMjAy4u7vD0dER999/PxYuXIhXX30Vb7zxBhISEjB//nyMGjWKS9kSERER1SC5SicEjX8RCn0ORL0egkYDs8aZTQ8iqtYcHR0xZMgQzJs3D15eXqhTpw7mzp0Lf39/9OnTByaTCWlpaXB1dYVGo0Hbtm1x3333YfLkyZg1axY8PDywePFiKJVK9O/fHwAwevRoDBw4EO+++y5GjhyJhIQEfPTRR+jfv3+ReTnPnj1b4l0l5cm7cROuof+9ThTveAzpzn9bwerGx3Mf7MHcCV0RHORZbF/slXS8u/owtszpV8Irq05UVBSGDRuGdevWoX379lCr1fjss88wc+ZMPPHEE3B3d8czzzyD8ePH2zUXEREREUkvT1DBwdULnkHOSE/PkfWt7URElWXChAnIz8/HtGnToNfrERkZiTVr1kClUlkWGZk9ezYGDhwIAFiyZAnmzZuHl156CXq9Hq1bt8a6dessTY2GDRti3bp1+Pjjj9G/f3+4urri0UcfxcSJE4vUTU1NrfBKLrdr+cGsu/6YS1Ohxsea7aeRnVuwzrkIYNOeGLg7F19K5tK1DDhrqnbJ1/Xr1xfb1r59e8TExBTZVq9ePXz++edVmoWIiIiIiIhIjpRKJSZNmoRJkyYV2xcYGFjsGtrFxQUzZsywTF5akrCwMHz11Vdl1l29erVNeQEg9fdDyDh1Go3HvwAAyDwXjbg1X6DuE4Pg1S7S5nEr1KWo6+eKr/cWTBYqALiYcAsOdyxbqxQEODs5YEz/FjaHISKiuycKAjL1JqTEp8FJ7QCNgwLCXdwaSEREd4fnZZILfi+SnKXs/xXnFy+Fd8cOlm0Orq5w9PTEudkfI3TKJHi3b2fT2BVqfPRpXw992tcDAIz+YA+mjmiHhnWsX2aWiIiqlkkQsHzLSUTFplq2RYT4YPzAMCj5xoaIyO54Xia54Pciyd21bd+jdv9H0GDkcMs2bWAdNJ06BXFffImrX39rc+NDYe0L1kztXWbTI1dvtCkIERHdHbGENzQAEBWTiuVbT0KsonXRiYioZDwvk1zwe5HuBfrEJHi2aV3iPs82raH7d1ldW1g9IYcx34Ttv13CqYs3YLxtYiizKEJvMOFKUpbdJzclIiJAZzQVe0NTKComFTqjCVoHq/vdRERkI56XSS74vUj3AkcvT2SfvwCPsJbF9uXExUHl5mrz2FY3Pr7YcRY7Dl5CPX83ZGTnwVGlhLuLIy4nZiHfZMYzfaxftoaIiO5erj6/3P1aFy7pTURkLzwvk1zwe5HuBbW6dsHVb76FUqOGV4f2ULm7w5iRifSjx3B14zcI6NfX5rGtbnz8cfI6BnRrjFGPNMc3e2Nx6XoGpgyLxM0MHd5adghmPh5GRCQJbTmrapW3n4iIKhfPyyQX/F6ke0HdJwdDl3ANl1Z/jkufffHfDlGE930dEfT0kzaPbfV3eEZ2HtqE+gIA6ge4YdfhywAAb3cnDOrVBNsOXMDTvOuDiMjunFRKRIT4ICqm+K2sESE+cFIpAU5eRkRkNzwvk1zwe5HuBQoHB4ROfgM58VeQefYc8rOz4eDsDLdmoXCuX//uxrb2Bc5OKsvcHgG1nHHjls4yoWntWs5ITdfdVSAiIrKNIIoYPzAMESE+RbYXztjO5eqIiOyL52WSC34v0r3EuV4QAh56AHUHP46Avg9amh75ubk2j2n1HR/NGnjjh4OX0KKRN2rXcoba0QGHTyeiZ9sgRMenQ6tR2RyGiIjujlIU8dLAMOiMZugN+dA4OsBJpeAbGiIiifC8THLB70WSO7PRiOs//IjM06dhNuZb7kISRRFmvR65V66i4+aNNo1t9R0fzzwQipjLaZj12REolQr0va8+lm4+gVcX/IqvfjqH+8ICbApCRESVQxBFuGmUCKnnBTeNkm9oiIgkxvMyyQW/F0nOLq9dh/h1XyHvZhpyr16FPiUFJn0esmPPI/tSHAIHP27z2Fbf8VE/wA2fTu6Fy4mZAIDhDzeDVqPCuctpaH+/Pwb1CrY5DBERERERERHVPDf/PIza/R9Bg5HDcXXzFuTExSH0zTeQd/MmTr89HaLZbPPYNk3f6+mmgaebBgAgCAKeuJ/NDiIiIiIiIiKyjTEjE55tWgMomOcjefceAIDa2xuBgx7DtW0/IOipJ2wa2+rGx8bdMaXuUwiARu2AgFrOiAj2hcrB6idpiIiIiIiIiKiGcXDWQjQWLJyiCQhA3o2byM/VwUHrBE3tAOTduGH72Na+4Je/r+LmLR2MJjOUCgGuWkdk5RpgMosQABQ+JVbXzxUfjusEdxe1zeGIiIiIiIiIqPpza9YU13fshFuL5nCqHQClWo20w0fg27M7sqJj4aDV2jy21bdkDHkwFCoHBSY92xZb5jyCdTMexNaPHsFbw9vBzVmNyUMjseSNHhAArNt5zuZgRERERERERFQz1H3qSWTFxODsrA8gKJXwf+gBXFi+Asdfm4Qr/9sI744dbB7b6js+NuyKwZCHmqJLRB3LNkEQ0LFlAG5l5+Grn8/h08m98MT9wViz/YzNwYiIiIiIiKoLURCQqTchJT4NTmoHaBy4lCzR7Zzr10PrZYuRG38FAFBv2BAotVpknYuG1xORCHz8MZvHtrrxkXpLh9q1XErc5+epRUpaLgDA290J2bkGm4MRERERERFVByZBwPItJxEVm2rZFhHig/EDw6Bk84PIwtHTE46engAKbrCoexdL2N7O6kddgvxdsevI5RL37f4rHnV8C5oi11Oz4eWuuatwRHTvUYtGqLLSkBUbC1VWGtSiUepIRFRD8XxERHIgltD0AIComFQs33oSoiBIlIyo5rD6jo9n+oTggy/+wivzf8V9YQHwcFHjVlYeDp9ORNz1TLw1PBIXE27hix1n0btdUFVkJiKZ0pp0iPt0BTKOn7Bsc48IR4OxLyBX6SRhMiKqaXg+IiK50BlNxZoehaJiUqEzmqDlaphEVcrq/8Mim/lj1gsd4aR2wMZdMVj27Qls2hMLrUaFD8Z1QvsWAbiZoUfXiDoY8lBoVWQmIhlSi8ZiFxkAkBF1HHErVvI3rURkNzwfEZGc5Orz72o/Ed09q+/4AICwxj4Ia+wDY74Z2bkGuLuooVD8d4tWu+b+aNfcv9JCEpH8CbqcYhcZhTKijkPQ5QBaD/uGIqIaiecjIpITrabsS67y9hPR3bP5nqpj55Lx5Y9n8dn3p5GSnos/Tl63TGxKRDWPKbfs///L209EVFl4PiIiOXFSKRER4lPivogQHziplHZORFTzWN1e1Bvy8cEXf+HE+VRo1Q7Q5eXjsR6N8dMfl3HxWgZmv9gJ9fzdqiIrEcmYUqstdz9vLicie+D5iIjkRBBFjB8YhuVbTyIqpviqLlzSlqiAKS8PCd98i7Rjf8Osz4MomovsFwQBbVYut2lsqxsf63eew8WEW3h/7H1o3sAbj03+AQAw8ZnWeHfVn/jfz9F4e0Q7m8IQ0b1LdHKGe0Q4MqKOF9vnHhEO0cnZ/qGIqEbi+YiI5EYpinhpYBh0RjP0hnxoHB3gpFKw6UF0m7jPPkfy3v1wb9Ecjg28IVTiikdWNz5+P34Nw/o2Q1hjH5jM//2P6uWmwZO9g7Fi68lKC0dE9448QYUGY19A3IqVRS42LKsoCCrpwhFRjcLzERHJkSCKcNMoUS/ADenpOcjPN5f/IqIa5Oafh1FvyDMIfPyxSh/b6sZHjs4IX6+SbyF1cVJBl2e661B0bxIFAZl6E1Li0+CkdoDGgV3smiZX6YSg8S9Coc+BqNdD0Ghg1jjzIoOI7I7nIyIionuLmG+CS5PGVTK21Y2PoAA3HPgnAa1DfIvt++tsMur5u1ZKMLq3mAQBy7ecLLJGeeFzi0o2P2qUPEEFB1cveAY587cZRCQpno+IiIjuHR4R4bj1TxQ8wlpW+thWNz6evD8YH679C5k5BrRr7g8BwOmLN7Hvryv46c/LmDSkbaWHJHkTS2h6AEBUTCqWbz2JlzhpExEREREREZWhVudOuPjpShgzMuASHAylWl3sGN+e3W0a2+rGR4cWAXjtmTb48sez+Ds6GQDw+Q+n4e6ixvhBrdCpVW2bgtC9S2c0FWt6FIqKSYXOaILWweaVk4mIiIiIiKiai5n7CQAg5ZcDSPnlQPEDBMF+jQ8A6N46EN1bByIhJQtZOUY4Ozkg0NcVCkXlzbpK945cfX65+7UujnZKQ0RERERERPeaNqtsW6q2ImxqfBQK9OV8HnIh5cSiWk3Z30bl7SciIiIiIqKaTeP73zyiprw8mHJz4eDqCoXD3V9PVmiEqZ8esmrQD8Z1sikM2UbqiUWdVEpEhPggKqb44y4RIT5wUikBzvFBREREREREZcg4cxaX165D9oWLlm2uTRojaMgzdzXpaYUmXjCLIkQRZf65mHALpy7ewNm4mzaHIeuVN7GoKFT940eCKGL8wDBEhPgU2V7YfOHEpkRERERERFSWzHPRODN9Jky5uaj75GA0euE51B38OIxZ2Tg7831kRsfYPHaF7viYPb5zqfuydUas3nYKpy/dQJCfK159qrXNYch6cplYVCmKeGlgGHRGM/SGfGgcHeCkst/jNkRERERERHTvuvK/jXBr1hTNZ7wDQam0bK/71BM4M+M9XN34NZrPnG7T2Hf1sMzRs0lY9u0JZGQbMLhXMJ7uEwIHJVfvsCc5TSwqiCLcNErUC3BDenoO8vPNdqlLRERERERE97as8xcQ8vqrRZoeACAoFAh4uC/OL1ps89g2NT6ydUas+u4kDvyTgCB/N0wb1R6NAz1sDkG248SiREREREREdK9TOmkgmkwl7hNN+cBdPExg9VXxX2eTsGzzCWTm5GHw/cF4qjfv8pASJxYlIiKSL7VohCIrB1mp16DSOEGpcUaeoJI6FhERkey4hYYiYct38GgdAaVabdlu0utxbct3cGvW1OaxK9z4yNYZsfLfuzzqB7jh3TEd0LCOu82FqXIUTiy6fOvJIs0PTixKREQkLa1Jh7hPVyDj+AnLNveIcDQY+wJylU4SJiMiIpKfesOH4MRrb+Lv58bBM7INHD08YLh1C+lH/4bZYEDjl8fbPHaFGh9HTidi+ZYTyMo14uneIXiidwiUiqpfLYQqhhOLEhERyYtaNBZregBARtRxxK1YiaDxL/LODyIiots4BQQg7KMPcWXTN0g/9g/ys7Ph4OICtxbNEfTUE9AG1bV57Ao1Pj5Y+xcAQK1SYt+xq9h37GqpxwoCsPrt3jYHKs/06dNhMBgwZ86cMo/79NNPsXDhwmLbY2JsXwJHzjixKBERkXwIupxiTY9CGVHHIehyAK2HfUMREVGNYjabsXTpUmzevBlZWVmIjIzE9OnTUbduyQ2E7du3Y9KkScW279u3D4GBgQCAn376CUuWLEFCQgIaNmyIyZMno2PHjpZj09PT8f777+O3336DIAh4+OGH8eabb8LJqWJ3OmqD6iL0zddt+GjLVqHGR482dSFIfIOH2WzGwoUL8fXXX+Oxxx4r9/iYmBj079+/xC8cERERUVUy5eaWv5+NDyIiqkLLly/Hhg0bMGfOHPj7+2Pu3LkYM2YMfvjhBzg6Fl/5MyYmBu3atcP8+fOLbPfy8gIAHD58GJMmTcKbb76JTp064dtvv8Xzzz+Pbdu2oVGjRgCACRMmQKfTYe3atcjMzMTUqVORm5uLjz76qMSMKft/hWfbNlC5uSJl/6/lfky+Pbtb90n4V4UaHxOfbm3T4JXl4sWLmDp1KuLj41G7du0KvSY2NhZPPPEEfHx8qjgdERERUVFKrbbc/UY7ZSEioprHYDDg888/xxtvvIHu3bsDABYsWIAuXbpg9+7d6NevX7HXxMbGIiQkpNRr6NWrV+P+++/HsGHDAACTJ09GVFQUvvzyS8yaNQtRUVH466+/sHPnTksjZNasWRgzZgxee+01+Pn5FRvz/OKlCPt4NlRurji/eGnZH5QgVG3jQ2qHDx9Go0aNsGzZMrz66qvlHm8wGHD58mU0bNiw6sMRERER3UF0coZ7RDgyoo4X2+ceEQ7Rydn+oYiIqMaIjo5GTk5OkcdQ3Nzc0KxZMxw9erTExkdMTAx69uxZ4nhmsxn//PMPpkyZUmR7+/btsXv3bgDAsWPH4OPjY2l6AEC7du0gCAL+/vtv9O3bt9i4bVYth6Onp+XvVeWeaHw8++yzVh1/4cIFmEwm7Nq1Cx988AHy8vIQGRmJSZMmwdfXt8TX9OrVq9Txdu3aBaVSCbVa3p8uxb8TzqpUSiglWmJY6gxS15dDBqnryyGD1PXlkEHq+nLIIHV9OWSQur4cMkhX3wENx72AS5+uLNL8cI8IR8NxY5GvcYK69BdXupr7dZBPBqnryyGD1PXlkEHq+nLIIHV9uWSoqOvXr2Po0KGl7t+3b1+J25OSkgAAAQEBRbb7+vpa9t0uIyMDycnJOHbsGDZs2ID09HSEhYVh0qRJaNCgATIzM5Gbmwt/f/9Sx0tOTi5Wz9HRER4eHkhMTCwxp+a26/PM02ctj73cyZCejpRfDiBw4IASxymP5FfyCQkJZTYd/vzzT8szRRUVGxsLAHBycsKiRYtw8+ZNzJ8/H8OGDcO2bdug0Whsyurmdm8sPefiYtvHV50ySF1fDhmkri+HDFLXl0MGqevLIYPU9eWQQer6csggSX03J4S8MRHGWxkw5eZCqdVC5eEOlYuL/bP8q0Z+HWSWQer6csggdX05ZJC6vhwySF1fLhmqik6nA4Bic3mo1WpkZGQUO/78+fMAAFEUMXv2bOj1enz66ad45pln8MMPPyA/P7/U8fLy8iw1S5o75PZjynJ+yTLLYy93yom7jCsbNt27jQ8/Pz/s3Lmz1P3u7u5WjzlgwAB07dq1SMOkSZMm6Nq1K/bv31/iLTaldcoKiaKIzEyd1VnsSaEQ4OKiQXa2HmazNEvZSp1B6vpyyCB1fTlkkLq+HDJIXV8OGaSuL4cMUteXQwap6wNKKDy84RpYB9nZeujMInQSvJ+Q+vMgdX05ZJC6vhwySF1fDhmkri+HDFLXl0uGinB11aB27drlXquWpPCX/QaDocgv/vPy8kpcYaVt27b4888/4enpCeHflU2WLl2K7t27Y+vWrRg8eLBlvNvdPp5Goym2v/AYbSlzX52d9QFyExIK/iGKiP7wIwiq4m0K460MaPyLzxFSUZI3PlQqVZFngCrLnXeJ+Pr6wsPDo8TbeioqLy//bmNVKQeHgtu0jEaTZMvZSp1B6vpyyCB1fTlkkLq+HDJIXV8OGaSuL4cMUteXQwap6zODPOrLIYPU9eWQQer6csggdX05ZJC6vlwyVIRr8RsfKqzwkZOUlBQEBQVZtqekpCAkJKTE19x5De3k5ITAwEAkJyfDw8MDWq0WKSkpRY5JSUmxTFrq7++PvXv3FtlvMBhw69atUqecCBz8OJJ37/13rF/h3LABVG5uRQ9SKODg4gy/Xj3K+ahLZ3XjIzPHgD9PJeLk+VQkp+UiR2+Em7MjfD21aBPqi7bN/OHipLI5UGVYsGABfv75Z/z888+WblVCQgLS09PRuHFjSbMRERERERERVaXQ0FC4uLjgyJEjlsZHZmYmzp49iyFDhhQ7/uuvv8b8+fPxyy+/WO7OyM7OxuXLlzFo0CAIgoDWrVvjr7/+stz9AQBHjhxB27ZtAQCRkZGYN28e4uPjUa9ePQDAX3/9BQBo06ZNiTndmobCrWmo5d91nxwEzR3ziFSGCs/kkpGdh9XbTmHMB7ux6ruTSEjNhpe7Bo3rekCrUSE+KRMLNkVhxKxdWLP9NG5llf8MT2UxGAxITU213FbTu3dvXLt2DTNmzEBcXByOHj2Kl19+Ga1bt0aXLl3slouIiIiIiIjI3hwdHTFkyBDMmzcP+/btQ3R0NCZOnAh/f3/06dMHJpMJqamp0Ov1AICuXbvCbDbjzTffxPnz53Hq1Cm8/PLL8PLywsCBAwEAI0eOxI8//ogvvvgCFy9exMcff4xz585h+PDhAIBWrVqhdevWmDhxIk6ePInDhw9j+vTpGDBgQIlL2d6pySsvldr0MOn1SP8nyubPR4Xu+Dh44hpWbj2FJkEeeGlwONo194fGsfhLc/VG/B2dgl2HL+PFufsxdmAYuoTXsTlcRUVFRWHYsGFYt24d2rdvjxYtWmD16tVYtGgRBg4cCEdHR/Tq1QuTJ0+23AFCREREREREVF1NmDAB+fn5mDZtGvR6PSIjI7FmzRqoVCrLIiOzZ8/GwIEDERAQgLVr1+KTTz7B008/DVEU0alTJ6xbtw5qdcE6ZJ07d8aHH36I5cuXY8GCBWjcuDFWrFhhmbpCEAQsXboUM2fOxPDhw6FWq/Hggw/irbfeqlDevNRUXPx0JTJOnYE5v+RpJjp9t9mmz0WFGh8/HorDzOc7omGdsica1WpU6BJeB13C6+D81XSs2X6m0hsf69evL7atffv2iImJKbKtY8eORdYsJiIiIiIiIqoplEolJk2ahEmTJhXbFxgYWOwaunnz5vj888/LHHPAgAEYMGBAqfu9vb2xePFim/Je+uwLZJ6LgV+f+5F5LgZKtSNcQ0NwK+oEcuLjETrlTZvGBSr4qMvs8Z3LbXrcqUldT8x5sbNNoYiIiIiIiIio5sg8cwb1hjyNhs+Nhl+v7lA4OqL+8KFo9clHcG/RHGn/zhdiiwrP8XEns1lE3PUM/B2djFy9EVm5xZetISIiIiIiIiIqj0mnh7Z+waSoTnXqIPtSHABAUCrh/9ADyDh52uaxbVrO9pe/r+LLH88iLVMPQRDwyStdsXFXDJRKAZOGtIXKweZ+ChERERERERHVMI5enjDeygAAaGoHID87G4b0dDh6ekLl6grjrVs2j211h+L349ewYOM/CGtcC28ObQtRFAEAHVv64+9zyfh6T0w5IxARERERERER/cezTRvEf7URmdEx0Pj6Qu3thWvbtiM/V4fkvfvh6O1l89hWNz6+2RuLBzvWx2vPtEHHlrUt2+9vVw/PPBCK36Ku2RyGiIiIiIiIiGqeoGeegoOzM678b2PBv4c8i+vbd+DIs8OQ+tvvqN3/UZvHtvpRl2up2Rj1SPMS9wXX88SGXdE2hyEiIiIiIiKimkfl5opW8+bAkJYOAPDt3hUaXx9kRsfANbgJ3FuU3IeoCKsbH+4ualxNyUJEiG+xfQnJWXB3VdschoiIiIiIiIhqLkcvT8vf3Zo1hVuzpnc9ptWNj67hdbDh52h4uzmhTdOC5ocA4MLVW9i0JxZdI+rcdSgiIiIiIiIiqt5OT3sXDcc+B21gIE5Pe7fsgwUBLd6bYVMdqxsfQx4KxeWkTHy0/igEQQAAvP3pIejz8tGsoTeGPHT33RgiIiIiIiIiqt4KF0u58++lHGxzHasbHyoHJWY+1xHHY1Nw4vwNZOUa4KxRoUUjb7Rt6mdphhARERERERERlablB7NK/Htls7rxAQDZOiNMZhHDH24GAEhOy8Wxc8nI1efD2UlVqQGJiIiIiIiIqHo79+FH8O3RHZ6RbaBwsKlVUSqrl7O9mpyFFz/ej+VbTlq2Jd3MwWffn8LEhQeQkp5bqQGJiIiIiIiIqHrLS0lB9EdzcXTEaFz8dCUyz1XeirFWNz6+2HEG3u4afPxSZ8u2Vk188MU7D8BN64gvfjhTaeGIiIiIiIiIqPoLX/gJIpYshP9DD+LWyVM49dY0/P3CeFzZsAm6xMS7Gtvq+0fOxaXh9WfbwNvdqch2D1c1nrg/GIu+jrqrQERERERERERU82jrBqLes0+j3rNPI+v8Bdw4eAgpvxzA1c1b4NqkMcI+nm3TuFbf8SEIQJ7BVOK+fJMZ+SazTUGIiIiIiIiIiADAKcAf2rqBcK5fD4IgQJ+UZPNYVt/x0aJRLWzaE4MWjbzh7qK2bM/KNWDzvli0bFTL5jBEREREREREVDOZ9HrcPPwXbhw8iFvHT0IQBHi2bYOQyZPg1ba1zeNa3fgY/nAzvL7oN4z5YA9C63nB3UWNjJw8xMSnQ+WgwBtD2tochoiIiIiIiIhqnuiP5yH97yiYDQa4hYag4fOjUavTfXBwdr7rsa1ufNTxccGyST2w7cBFnLuchpSruXB2UuGBDvXQv2sj1PJwKn8QIiIiIiIiIqJ/5V6OR+Djj8GnW1do/HwrdWybFsf1dnfC6EdbVGoQIiIiIiIiIqqZWi9fUuTfZoMBgkoFQRDuemybGh85OiNOXkiF3mCCKIrF9vdsG3TXwYiIiIiIiIio5shNuIYrGzYh48RJ5OfmotW8j5C8Zx+cAuugdr++No9rdePjn+gUzP7yL+QZS17ZRQAbH0RERERUQC0aocjKQVbqNag0TlBqnJEnqKSORUREMpN9KQ6n334HKnd3+HTrgsSfdgEABKUCcWu+gIPWCb49e9g0ttWNjy9/PItAP1eMebQFvN01UFTCbSdEREREVP1oTTrEfboCGcdPWLa5R4SjwdgXkKvkvHBERPSfy198CZfGjdB85nQAQOLOnwEADZ8bDbPBgOs//Ghz40Nh7QuupmRh6INN0byhN/y9neHrpS32h4iIiIhqNrVoLNb0AICMqOOIW7ESatEoUTIiIpKjrJhY1H60HwSlsti+Wl06Q3c90eaxrW58+Ho6ITePP6iIiIiIqHSCLqdY06NQRtRxCLocOyciIiI5UziqYMozlLgvPysLCpXtj0la3fgY1DMYG3fHIDkt1+aiRERERFS9mXLLfq9Y3n4iIqpZPMJb4erGTci7cfO/jQJg0ulw7bvt8GgVZvPYVs/xceCfBNzM0OP5D/fAzUUNtarobSiCAKx+u7fNgYiIiIjo3qfUlv34s1KrBe8hJiKiQvWHD8PJyW/hn/Evw7lBfUAQcPnzL6G7dh2iaEbIpIk2j21148PbQwNvD3+bCxIRERFR9Sc6OcM9IhwZUceL7XOPCIfo5Gz/UEREJFtqn1oIXzgf17/fjoxTp6Hx94NJr0etrp1Rp/+jcPTytHlsqxsfrz7V2uZiRERERFQz5AkqNBj7AuJWrCzS/LCs6sIlbYmI6A4qN1fUG/pspY9rdeOj0K2sPBjzzRAhAgBEEdAb8nH20k08dF+DSgtIRERERPemXKUTgsa/CIU+B6JeD0GjgVnjzKYHEREVIYoiMk6dRta5aBjSbwECoK5VC+4tmsM1JPiux7e68RF3PQPz/vc3EpKzSj5AENj4ICIiIiIABXd+OLh6wTPIGenpOcjPN0sdiYiIZCQr9jzOL1oK3fXrBXdU3E4Q4Fy/HppMeKlg3g8bWd34+PyHM8jONWLkIy1w9GwSVA4KtGvuj2PnkvF3dAo+HNfJ5jBEREREREREVDPkXk3A6XdmwNHDA43GPgeP8HA4enpAFEUYbt7EreMncf377Tg1dTrC538Mjb9t841avZxt7JV0DHkwFAO6NUKX8DrQG0zoe18DTB/dAR1a+OOHg5dsCkJERERERERENcfVb76F2tsLrRbMhf8DfaDx84XC0RFKtRpOtWsjoO+DaLXgEzh6eSJhy3c217G68WHMN6O2jwsAoI6PCy5fz7Dsuz8yCDGX02wOQ0REREREREQ1Q+aZM6gzcAAcylgC3UHrhICH++LWiZM217G68eHj4YSkmzkAgNo+zsjNy0dyWi4AQOWgQJaOK7ITERERERERUdmMmVkVenxFWzcQhrR0m+tY3fi4L6w2vvzxLA6dvA5vdycE+rrgq5/O4XJiJr47cBEB3lyTnYiIiIiIiIjKJubnQ+HoWO5xCpUKoslkcx2rGx9P9wlBswbe2HMkHgAw5tGW+ONUIl755BecPJ+Kp/uE2ByGiIiIiIiIiKgyWb2qi6NKiSnDI5FvKliKrHWoL5a+0QMXr91CozoeCKjFOz6IiIiIiIiIqHw5l+JgNhrKPCb3ytW7qmF148PyQuV/N4sE1HJmw4OIiIiIiIiIrHJx5eryDxJFQBBsrmF14yM714D//RyNs5fTkFPCRKaCAKx+u7fNgYiIiIiIiIio+mvx/ky71LG68bFk83EcOZ2ENqF+aFDbrSoyFZOYmIi5c+fiyJEjMBgMCAsLw5QpU9CkSZNSX3Pu3Dl88MEHOH36NLy8vDBixAgMGzbMLnmJiIiIiIiIpGQ2m7F06VJs3rwZWVlZiIyMxPTp01G3bt0Sjz9z5gw+/vhjnDx5Emq1Gn369MGkSZPg6uoKADCZTFi2bBm+++473Lx5E40bN8aECRPQvXv3Co9xJ/cWzSv94y6J1ZObnohNxQuPtcQ7o9vj1adal/inMhkMBjz//PNITU3FihUrsGHDBjg7O2P48OFIS0sr8TXp6ekYOXIkgoKCsGXLFrz44ouYN28etmzZUqnZiIiIiIiIiORo+fLl2LBhA9577z1s2rQJZrMZY8aMgcFQfD6NGzduYOTIkahTpw62bt2K5cuX4++//8aUKVMsxyxatAgbN27Eu+++ix9//BG9e/fG+PHjcfr06QqPIRWrGx9Oagf4edlvPo9jx44hNjYW8+bNQ8uWLdGkSRPMnTsXubm52L9/f4mv+eabb6BSqTBr1iw0atQIjz/+OEaMGIFVq1bZLTcRSUMUBGTqTYiJT0NWngniXTwLSERUHfC8SERU8xgMBnz++eeWOzJCQ0OxYMECJCUlYffu3cWOv3btGjp37oxZs2ahQYMGaN26NZ544gkcOnTIcozRaMTUqVPRvXt31K1bF+PGjYOzszMOHz5c4TGkYvWjLg93boitv55H0wZecFLbPDdqhTVp0gSrVq2Cn5+fZZtCUdCvyczMLPE1x44dQ7t27eDg8F++Dh06YOXKlbhx4wZq1apVtaGJSBImQcDyLScRFZtq2RYR4oPxA8OgFEUJkxERSYPnRSKimik6Oho5OTno2LGjZZubmxuaNWuGo0ePol+/fkWOb9WqFebPn2/598WLF/H999+jU6dOlm2TJ0+2/F2v12Pz5s3Q6XRo3759hceQitWdi36dGmDf0SsYOWsX6vi6QONYfIgPxlXeB+bj44Nu3boV2bZ+/Xro9fpSP4FJSUkIDg4uss3X1xdAwXwhbHwQVT9iCW/uASAqJhXLt57ESwPDIPBNPhHVIDwvEhHVXElJSQCAgICAItt9fX0t+0rzwAMP4PLly6hTpw6WLl1abP/27dvx5ptvQhRFvPzyy2jZsqXVY9ib1Y2PZd+ewLXUbAT6ukCtcsDd/rxMSEhAr169St3/559/wsvLy/LvPXv24JNPPsGIESMQEhJS4mv0ej0cHR2LbFOr1QCAvLy8El9TVoZdu3ZBqVRCbYc7XO6GQlFw66pKpYRSafVTTNUig9T15ZBB6vpSZcjJMyEzx4BGddyL7cvMNsAkAs52/H9Y6q+D1PXlkEHq+nLIIHV9OWSQur6UGeR0XqzJXwe51JdDBqnryyGD1PXlkEHq+nLJUFHXr1/H0KFDS92/b9++ErfrdDoAKPG6OCMjo8ya8+bNg06nw9y5czFs2DB8//33cHb+b7qLyMhIbNu2DYcOHcL8+fPh5eWFZ555xqox7M3qn3ZHziRheN9meLxn6SuqWMPPzw87d+4sdb+7+38/rDdu3Ij33nsPjz76KN58881SX6PRaIpN2FLY8NBqtTZndXNzsvm19uTiopE6guQZpK4vhwxS17d3BjcAC1/rbrd6FSX110Hq+nLIIHV9OWSQur4cMkhdX4oMcjwv1sSvg9zqyyGD1PXlkEHq+nLIIHV9uWSoKhpNwcdmMBgsfwcKroudnMq+ri28g2Pp0qXo1q0b9uzZgwEDBlj2BwQEICAgAKGhoYiPj8eaNWuKNT7KG6PQ+cXLrPq4mkx40arjC1nd+FA5KNC4rodNxUocT6VCo0aNyj1u7ty5+OyzzzBy5EhMnjwZQhkTc/n7+yMlJaXItsJ/3z5XyO1K65QVEkURmZm6cnNKSaEQ4OKiQXa2HmazNLeuSp1B6vpyyCB1faky5OSZ8NH6Y6Xunzy0LZzVSrtkAaT/OkhdXw4ZpK4vhwxS15dDBqnrS5lBTufFmvx1kEt9OWSQur4cMkhdXw4ZpK4vlwwV4eqqQe3atcu9Vi1J4SMuKSkpCAoKsmxPSUkp8cmJS5cu4cqVK0WWpvXz84OHhweSk5ORn5+PX3/9Fc2aNUPt2rUtx4SEhGDr1q0VGqMkGadOAfjv2t6QlgbRZILapxYcPT1hzMqCPikZCpUKzvXrW/15KGR146NHm7r46Y/LaNmoluUWoapW2PSYPHkyRo0aVe7xkZGR2LRpE0wmE5TKgh/ohw8fRoMGDeDt7W1zjry8fJtfaw8ODgW3aRmNJuTnm2tkBqnryyGD1PWlyqAUBLi5OCIqJrXYvogQHygF+/4/LPXXQer6csggdX05ZJC6vhwySF1fygxyOi/W5K+DXOrLIYPU9eWQQer6UmcQBQE6oxnXbubCSe0AjYPC7nMNySFDRbm62v7a0NBQuLi44MiRI5bGR2ZmJs6ePYshQ4YUO/6PP/7Axx9/jIMHD8LNzQ0AcOXKFaSnp6NRo0ZQKpV45513MGjQILz++uuW1504cQKNGzeu0Bglabt6heXvqQd+x+Uv1yN0yiS4Bv/3hEnulas49+Ec1Opyn82fD6sbH85OKuz5Kx6jP9iD4CAPaNWqIvsFAZjwZITNge505MgRfPbZZxg6dCgeeeQRpKb+98Nbq9XC2dkZer0eWVlZ8PLyglKpxOOPP47PPvsMU6dOxZgxY3Dy5EmsXbsWM2fOrLRcRCQvgihi/MAwLN96ssib/MLVC+T6A42IqKrwvEhEciKHVabkkMFeHB0dMWTIEMybNw9eXl6oU6cO5s6dC39/f/Tp0wcmkwlpaWlwdXWFRqNBv379sGrVKkyaNAlvvPEGMjIy8P777yMsLAw9evSAIAgYNWoUli5diuDgYLRs2RK7d+/Gjh07sGTJEgAod4zyxH+1AfWGPVuk6QEA2qC6CHr2GVz+fC1qP9KvlFeXzerGx96jV+CiLZgg5UJC8UlRKvsekB07dgAoWMll/fr1Rfa99NJLePnll7Fz50689dZb2LdvHwIDA+Ht7Y3PPvsMH3zwAR577DH4+PjgzTffxGOPPVbJ6YhITpSiiJcGhkFnNENvyIfG0QFOKvl28YmIqhrPi0QkB3JYZUoOGextwoQJyM/Px7Rp06DX6xEZGYk1a9ZApVJZFhmZPXs2Bg4cCA8PD3z55ZeYM2cOnn76aSiVSvTq1QtTpkyxPEUxevRoqFQqLFmyBImJiWjYsCEWL15sWSikImOUxZiZCYdSJkBVOChh0utt/lwIomjdVzdbZ4SLk6r8A6sZURRx40a21DHK5OCggKenM9LTcyS9dU7KDFLXl0MGqevLIYPU9eWQQer6csggdX05ZJC6vhwySF2fGeRRXw4ZpK4vhwxS15dDBqnrS5UhN9+Ml+b9Wur+pW90h9ahaldXkUMGa9Wq5VLm3JbVzenpM2HS6dD83WlwcHGxbDekpePMjFnQ+Puh6dtTbBrb6js+Xvx4P8b0b4Eu4XVsKkhERERVTy0aocjKQVbqNag0TlBqnJEn1LxfXBARkfRy9WXPJ5Srz4fWxbHMY6pDBipbg1HDcert6Tg2ZixcQ4Lh4OYG461byIqOgYOrCxqMfsvmsa1ufBjzTXDT8huCiIhIrrQmHeI+XYGM4ycs29wjwtFg7AvIVd4bS7MTEVH1odWUfdlZ3v7qkoHK5ly/PiKWLMT17T8g61w09CmpULm5ovaAR1H70X5Q3cVsr1Z/dR/t2gjrfz4HtaMS9Wu7QePIbxAiIiK5UIvGYk0PAMiIOo64FSsRNP5F3vlBRER25aRSIiLEp9RVppxUSqCK59eQQwYq29VvvoV3xw5oMHJ4pY9tdddi/7GrSE3PxeSlv5d8gCDg+7mP3m0uIiIisoGgyynW9CiUEXUcgi4H0HrYNxQREdVoclhlSg4ZqGwJm7fApVFDaOsGVvrYVjc+erSu/BBERERUOUy5ueXvZ+ODiIjsTA6rTMkhA5VOG1QXumvX4dmmdaWPbXXj4+kHQis9BBEREVUOpVZb7n6jnbIQERHdThBFuGmUqBfgJtnKNnLIQCXzjGyL+PX/Q/rf/8C5QX0oNJoi+wVBQN0nB9s0tk0TdBjzTdj71xWcungTOToj3Jwd0ayhN3q2rQu1qvz1eYmoanAVB34OiEQnZ7hHhCMj6nixfe4R4RCdnO0fiiTF8yIREd0Lrm76BgBw68RJ3DpxsvgB9mx8ZOuMmLr8EOISM+DjqYWnqxoJKVk4EJWAnYfiMOfFznB24g9TInvjKg7y+RzwIoOklCeo0GDsC4hbsbJI88Py/wK/F2sUuZwXiYiIytNp27dVNrbVjY91P57FjQwdZo/vjOYNvS3bz1y6iTlfHsVXP5/DC4+FVWpIIiobV3GQz+eAFxkF2PyRVq7SCUHjX4RCnwNRr4eg0cCscWbTo4aRy3mRiKiQHN4fyCED2SY/NxcO5TzSWxqrGx+HTydiyENNizQ9AKB5Q28882Aovt4Tw8YHkZ1xFQd5fA54kVGAzR95yBNUcHD1gmeQM59hrqHkcF4kIiokh/cHcshApTMbjbj+w4/IPH0aZmO+ZXlhURRh1uuRe+UqOm7eaNPYCmtfoDfkw9+r5C6Lv5cWWTkGm4IQke0qtIpDNSeHz0GFLjKqufKaP2qR02oS2YsczotERIA83h/IIQOV7fLadYhf9xXybqYh9+pV6FNSYNLnITv2PLIvxSFw8OM2j21146OOryuOnksucd9fZ5MQUIuTphHZW0VWcaju5PA54EUGmz9EciKH8yIRESCP9wdyyEBlu/nnYdTu/wgiFs1HwMN94dK4EVrNm4PWK5ZC4+sL0Wz73atWNz4GdmuMHw9ewqdbTuDMpZu4npqNM5duYvmWE9j5x2X069zQ5jBEZJvCVRxKUlNWcZDD54AXGWz+EMmJHM6LRESAPN4fyCEDlc2YkQnPNq0BAM71gpB9/gIAQO3tjcBBj+HG74dsHtvqOT66RNTB9RvZ+GZvLH7+8zIAQASgUirw1P3BeLBjfZvDEJFtuIqDPD4HXEa0Ys0f3khKZB9yOC8SEQHyeH8ghwxUNgdnLURjwVdBExCAvBs3kZ+rg4PWCZraAci7ccP2sSty0Dd7Y9Ersi683QsmfHmydwge7twQMfFpyMo1wlWrQkiQJ1y0jjYHIaK7w1UcpP8c8CKDzR8iuZH6vEhEBMjj/YEcMlDZ3Jo1xfUdO+HWojmcagdAqVYj7fAR+PbsjqzoWJtXdAEq+KjLN/tikZxWcOtP/ze+R+yVdLg4qdAm1A/dWweiTagfmx5EMpAnqGB09YJrcBMYXb1qxAoid5L6c1B4kdFqyUKEzZ2DVksWImj8izVmpvDC5s+dt9cXNn9q4vckkdSkPi8SEcnh/YEcMlDZ6j71JLJiYnB21gcQlEr4P/QALixfgeOvTcKV/22Ed8cONo9doTs+tGoHbDtwEYk3ciACOHo2GQkpWaUe37NtkM2BiIjudTV9GVH+hpmIiIjuJIf3B3LIQKVzrl8PrZctRm78FQBAvWFDoNRqkXUuGl5PRCLw8cdsHrtCjY/HezbB5z+cweHTiRAAfL03ptRjBbDxQURU09X05g8R0e3UohGKrBxkpV6DSuMEpcaZv12mGkkO7w/kkIFK5+jpCUdPTwCAIAioexdL2N6uQo2P/l0boXe7IGTnGjHmwz14e0Q7NKztXikBiIiIiIiqK61Jh7hPVxRZRtMy91MNeQySiKg0Kft/tep4357dbapT4VVdtBoVtBoVnnkgFK5aR/h6Vf9lGYmIiIiIbKUWjcWaHgCQEXUccStWImj8izXmzg/e9UJEJTm/eGnRDYJQ8F9RLL4Ndmh8FPp2/3k0DvSwqRgRERHVHLzQoZpO0OUUa3oUyog6DkGXA2g97BtKArzrhYhK02bVcsvfc+IuI3b+ItR9cjBqdboPjl6eMGZmIe2vo7i68Ws0nvCizXWsbnzU9XPF9dRsoKmfzUWJiIioeuOFDhFgys0tf381b3zwrhciKovG19fy9+g581D3ycEIHDjAsk3t7YWAhx6AmG9E/Jfr4dW2jU11rG58tGvmjy9/PItj55LRoLY7NOqiQwgC8FTvEJvCEBER0b2PFzpEBZTash8NV2q1MNopi1R41wsRVZTu6lW4NGxQ4j6nOnWgT06xeWyrGx8bd0cDAI6fT8Xx86nF9gtg44OIiKgm44UOUQHRyRnuEeHIiDpebJ97RDhEJ2f7h7Iz3vVCRBXlVKc2Ug/8Bo/wVsX2Je3aA20921ePtbrxsX1ef5uLERERUfXHCx2iAnmCCg3GvoC4FSuLND8sj33VgDufeNcLEVVU3ScHI/rjT6C7lgivdm3h4OYK460M3PzjMHKvXkWzd6fZPLbVjY/b5eiMSMvUw99bC4VCAaVCKP9FRFWEk+gRUSE5nA/kkEEqvNAh+k+u0glB41+EQp8DUa+HoNHArHGuEU0PgHe9EFHFeXfsgKZvvYmrX29G/P82FqzsIghwCw1Bi/dmwK1ZU5vHtqnxcerCDaz98QwuXL0FCAI+eaUrtuw/j1oeThj9aAubwxDZipPoEVEhOZwP5JBBSrzQISoqT1DBwdULnkHOSE/PQX6+WepIdsO7XojIGl7tIuHVLhJmgwH52TlwcHWBQnX35wmFtS84cT4V01f9AUeVEsMfbm5ZX7dBbXds//0Sth24cNehiKxR3iR6apG/VySqKeRwPpBDBqkVXui4R4QX2V54oVNT7nwhogKFd720WrIQYXPnoNWShQga/2KNaAQTkfXys7NhzMyCaMqH8dYt5KWmWv7Yyuo7Ptb/dA7tWwRgyrBImExmrP3xDADgifuDoTfkY/eReAzo1tjmQETW4iR6RFRIDucDOWSQg5p+ez8RFVWT73ohoorRJSbi/MIlyIo9X+oxnb7bbNPYVjc+4q5l4Ok+/67aIhSd0yMi2Bff/3bJpiBEtuIkekRUSA7nAzlkkAte6BAREVFFXVq1BrrriQh66gk4entDqMQ5RK1ufGidVEjP1Je4L/VWLpw1dzVfKpHVOIkeERWSw/lADhmIiIiI7jWZp8+g8cvj4dO1S6WPbfUcH+2b+2P9T+dw/mq6ZZsA4MYtHb7Zex6RzfwrMx9RuQon0SsJJ9EjqlnkcD6QQwYiIiKie41Sq4WDi0uVjG1142PEw83g7qLGG4t+w6j3dgMA5n71N8Z+tA+CAAzra/sSM0S24CR6RFRIDucDOWQgIiIiutf49uiGxJ0/Q/x3AZXKZPVzKS5aR3zySlfsP3YVJ8/fQGauAc5OKjzSuQF6tQuCxpGPupD9cRI9Iiokh/OBHDIQERER3UsUajUyz57DP2NfhEvjxlCo1UUPEIAmL79o09g2dSlUDko80KE+HuhQ36aiRFWBk+gRUSE5nA/kkIGIiIjoXpGy/1c4ODtDNIslr+xyF3OdVrjx8U90Crb/fhEp6ToEeDujX+cGiAjxtb0yERERERERERGAtqs/rbKxKzTHx19nkzDzsz8RHZ8OrdoBsVfSMWP1n/jxUFyVBSMiIiIiIiIiAoDchGs2v7ZCd3x8u+88Wjauhakj28NJ7YB8kxkLNv6Dr/fE4OFODWwuTkRERERERERkzMrClf9tRMapMxDzjf9NciqKMOnzkJ+djU7fbbZp7Ard8RGflIkB3RrDSV3QJ3FQKvBU7xBkZOchNV1nU2EiIiIiIiIiIgCIW7MWyXv2wal2AKBQwEHrDJfGjSHmm5CfnY3G41+weewKNT70eflw1Radid7PSwsRQLbOYHNxIiIiIiIiIqJb/0Qh6Okn0XTqFPg/0AeOtbwR+ubraL18MZzr10Pulas2j12hxocIQBCKTqGqVBa81GSu/DV275SYmIjXXnsNnTp1QmRkJEaPHo3z50uY5fU206ZNQ0hISJE/PXv2rPKsRERERERERFIzm81YvHgxunTpgvDwcDz33HO4erX85oHZbMaYMWOwZMmSYvtOnjyJZ599FmFhYejWrRsWL14Ms7lg5bqtW7cWuwYv/DNs2LBy6+bn5MA1NAQAoK0biOwLFwEASicn1BnQH2nH/rbmwy+iQo0PKRkMBjz//PNITU3FihUrsGHDBjg7O2P48OFIS0sr9XUxMTEYO3YsDh48aPnz7bff2jE5ERERERERkTSWL1+ODRs24L333sOmTZssDQ2DofSnNgwGA95++238/vvvxfbFxcVh2LBhaNSoEbZv3463334ba9euxZo1awAAffv2LXL9ffDgQUybNg1KpRJjx44tN6/KzQ35ObkAAE3tABgzMmDMygIAOHp7wXCz9Ov/8lR4OduL1zJgMJos/zaLIgQAFxMyoM/LL3Jsi0a1bA50p2PHjiE2Nha//fYb/Pz8AABz585F+/btsX//fgwaNKjYa0RRxIULF/D888/Dx8en0rIQERERERERyZ3BYMDnn3+ON954A927dwcALFiwAF26dMHu3bvRr1+/Yq/5559/MH36dOj1eri5uRXbv3LlSjRu3BgzZ86EIAioX78+YmJi8M8//wAANBoNNBqN5fikpCQsWrQI48ePx3333VduZvewlkjYvAXODepB4+8PBxcXpOz/BXX6P4q0o8egcnO18bNhReNjxZYTxbaJAJZ9exzCbf8WAHw/r7/Nge7UpEkTrFq1ytL0AACFouBGlczMzBJfc+XKFeTm5qJhw4aVloOIiIiIiIjoXhAdHY2cnBx07NjRss3NzQ3NmjXD0aNHS2x8HDhwAF26dMGLL76IRx99tNj+gwcPYsyYMUWmwZgwYUKpGebOnQtfX188//zzFcoc9OxTOD11Os4vXIKWH76HwEGP4fIX65CweQvyc3JR98nBFRqnJBVqfHwwrpPNBe6Wj48PunXrVmTb+vXrodfr0alTybliY2Mtx/32229QKBTo2rUrJk6cCFfXkrtE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YNKkSdi9ezdcXV0/6mvV94QafX39d5736aefKm3LiyYVFRV4/PgxAGDkyJH1nltaWqr4t4GBwfumSkRERP8HWPggIiL6F8nOzoa/vz88PDzg5eUFU1NTAMDatWs/eo0O+ZSX5cuXY9iwYUrHNDQ0UFNTo7Tv77///qh4b6qoqFDafvDgAYBXBZAWLVoAAHbt2lVvYcPMzEyluRAREVHTwakuRERE/yKXL1/Gy5cvMX/+fEXRo6amBj///DOAV08++VCGhoYICwvDrVu36qwXYmBggEePHqGqqkqxT1WLocqdOXNGafvo0aNo164dOnbsqFjP5NGjR7C1tVW8ysvLsXHjRsWIECIiIlI/HPFBRET0LyJfDDQ0NBQTJkxARUUFUlJSUFBQAODVKIz6ppq8L0dHR0ycOBGpqalK+52cnJCcnIwVK1bgq6++QmFhIXbu3AktLa0P/zBvSE5OhoGBAaytrXH06FGcP38ea9euhYaGBqysrDBmzBisXLkSJSUlsLGxwc2bN7Fhwwa0b98enTp1UlkeRERE1LRwxAcREdG/iIODA1atWoXLly/Dx8cH3333HczMzCCTyQCoZhRGQEAA2rVrp7TP0dER/v7+yMnJgY+PD44dOwaZTKbSwkdYWBhOnDiBWbNm4dKlS4iOjsbYsWMVxyMjIzFz5kzs27cP3t7eiIuLw4gRI7Bjxw6V5kFERERNi0ZtbW1tYydBRERERERERCQEjvggIiIiIiIiIrXFwgcRERERERERqS0WPoiIiIiIiIhIbbHwQURERERERERqi4UPIiIiIiIiIlJbLHwQERERERERkdpi4YOIiIiIiIiI1BYLH0RERERERESktlj4ICIiIiIiIiK1xcIHEREREREREaktFj6IiIiIiIiISG2x8EFEREREREREauu/nOIXczdmXLQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df = study.trials_dataframe()\n", + "df.number = df.number+1\n", + "fig=plt.figure(figsize=(12,4))\n", + "ax = sns.scatterplot(data=df, x=\"number\", y=\"values_neg_mean_squared_error\",\n", + " legend=False, color=\"b\")\n", + "ax2 = sns.scatterplot(data=df, x=\"number\", y=\"values_Standard deviation\",\n", + " ax=ax.axes.twinx(), legend=False, color=\"r\")\n", + "\n", + "a = df['values_neg_mean_squared_error'].apply(np.floor).min()\n", + "b = df['values_neg_mean_squared_error'].apply(np.ceil).max()\n", + "c = df['values_Standard deviation'].apply(np.floor).min()\n", + "d = df['values_Standard deviation'].apply(np.ceil).max()\n", + "\n", + "# Align both axes\n", + "ax.set_ylim(a,b);\n", + "ax.set_yticks(np.linspace(a,b, 7));\n", + "ax2.set_ylim(c,d);\n", + "ax2.set_yticks(np.linspace(c,d, 7));\n", + "ax.set_xticks(df.number);\n", + "\n", + "# Set the colors of labels\n", + "ax.set_xlabel('Trial Number')\n", + "ax.set_ylabel('(Performance) Negated MSE', color='b')\n", + "ax2.set_ylabel('Standard Deviation across folds', color='r')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We may plot the Pareto front of this multi-objective study using the Optuna plotting functionaility directly:" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "%{text}Trial", + "marker": { + "color": [ + 0, + 1, + 2, + 3, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 14, + 15, + 16, + 18, + 19, + 20, + 21, + 24, + 25, + 26 + ], + "colorbar": { + "title": { + "text": "Trial" + } + }, + "colorscale": [ + [ + 0, + "rgb(247,251,255)" + ], + [ + 0.125, + "rgb(222,235,247)" + ], + [ + 0.25, + "rgb(198,219,239)" + ], + [ + 0.375, + "rgb(158,202,225)" + ], + [ + 0.5, + "rgb(107,174,214)" + ], + [ + 0.625, + "rgb(66,146,198)" + ], + [ + 0.75, + "rgb(33,113,181)" + ], + [ + 0.875, + "rgb(8,81,156)" + ], + [ + 1, + "rgb(8,48,107)" + ] + ], + "line": { + "color": "Grey", + "width": 0.5 + } + }, + "mode": "markers", + "showlegend": false, + "text": [ + "{
\"number\": 0,
\"values\": [
-1.4008740644240856,
0.9876203329634794
],
\"params\": {
\"algorithm_name\": \"RandomForestRegressor\",
\"RandomForestRegressor_algorithm_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\",
\"max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3\": 6,
\"n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3\": 5,
\"max_features__f1ac01e1bba332215ccbd0c29c9ac3c3\": \"auto\",
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.8974639446129832,
0.7963222851094782,
0.9689476735963439
],
\"max_error\": [
-1.48840242088,
-3.0909646684,
-0.8731823597700004
],
\"neg_mean_absolute_error\": [
-0.3398577206596666,
-0.37011928744749995,
-0.1801785928111111
],
\"neg_mean_squared_error\": [
-0.27358848548388487,
-0.4992568230539897,
-0.08109988798375499
],
\"neg_median_absolute_error\": [
-0.1781329040249997,
-0.07859362806250036,
-0.07024148360000071
],
\"r2\": [
0.8855646464210463,
0.7874092730870651,
0.967646275281887
]
},
\"test_scores\": {
\"explained_variance\": [
0.9639016049394578,
0.03701636076517145,
-0.03610583384733812
],
\"max_error\": [
-0.47698010700000104,
-3.5934751852,
-3.35365075223
],
\"neg_mean_absolute_error\": [
-0.1955445833724998,
-0.9818172778531251,
-0.8300816350316663
],
\"neg_mean_squared_error\": [
-0.05489658915425563,
-2.396894317818735,
-1.7508312862992663
],
\"neg_median_absolute_error\": [
-0.14457091122499977,
-0.2862653911375008,
-0.5112363306699992
],
\"r2\": [
0.9626493715156704,
-0.0863255729554766,
-0.08531642263032624
]
},
\"trial_ran\": true,
\"alg_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\"
}
}", + "{
\"number\": 1,
\"values\": [
-1.3561484909673425,
0.9875061220991906
],
\"params\": {
\"algorithm_name\": \"RandomForestRegressor\",
\"RandomForestRegressor_algorithm_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\",
\"max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3\": 7,
\"n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3\": 6,
\"max_features__f1ac01e1bba332215ccbd0c29c9ac3c3\": \"auto\",
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9084162894985426,
0.8181445295200109,
0.9548650651827988
],
\"max_error\": [
-1.3312607501388882,
-2.575803890333333,
-0.8789508147777774
],
\"neg_mean_absolute_error\": [
-0.3185379542458334,
-0.3721876234467591,
-0.2186742885794444
],
\"neg_mean_squared_error\": [
-0.23237176364322487,
-0.43077113594783456,
-0.11338600111806732
],
\"neg_median_absolute_error\": [
-0.16167386033333386,
-0.12968758635416666,
-0.10968790037500042
],
\"r2\": [
0.9028045903055967,
0.8165714624307546,
0.9547661586438142
]
},
\"test_scores\": {
\"explained_variance\": [
0.9639828426250994,
0.028300593780869132,
0.08298265241577563
],
\"max_error\": [
-0.5291279881666675,
-3.633238043666667,
-3.2079123220277777
],
\"neg_mean_absolute_error\": [
-0.17840332446180518,
-0.9769728427812499,
-0.7746915789652774
],
\"neg_mean_squared_error\": [
-0.054949446552472574,
-2.445966975522084,
-1.5675290508274706
],
\"neg_median_absolute_error\": [
-0.14555937145833298,
-0.2359308740624999,
-0.4445126476111101
],
\"r2\": [
0.9626134083151535,
-0.10856638791328899,
0.02831013180650499
]
},
\"trial_ran\": true,
\"alg_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\"
}
}", + "{
\"number\": 2,
\"values\": [
-2.7856521165563053,
0.21863029956806662
],
\"params\": {
\"algorithm_name\": \"SVR\",
\"SVR_algorithm_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\",
\"gamma__ea7ccc7ef4a9329af0d4e39eb6184933\": 5.141096648805748,
\"C__ea7ccc7ef4a9329af0d4e39eb6184933\": 2.4893466963980463e-08,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
2.9603077433826286e-08,
2.9336498785781373e-08,
2.8653315498061716e-08
],
\"max_error\": [
-2.4076986573565327,
-3.7846304921065332,
-3.8912634246065334
],
\"neg_mean_absolute_error\": [
-1.4215399907231998,
-1.3879988835327637,
-1.442631704156533
],
\"neg_mean_squared_error\": [
-2.5275741396195497,
-3.0279379111768083,
-3.3797629894439454
],
\"neg_median_absolute_error\": [
-1.7373697358565328,
-0.8078731446065337,
-0.7077567928565331
],
\"r2\": [
-0.057222272541218366,
-0.28933945788999327,
-0.348311620292739
]
},
\"test_scores\": {
\"explained_variance\": [
0.0,
0.0,
-2.220446049250313e-16
],
\"max_error\": [
-2.1665475247500012,
-3.5460698895,
-2.9176861759999992
],
\"neg_mean_absolute_error\": [
-1.6446862333125005,
-1.3746714857500002,
-1.1807020024375001
],
\"neg_mean_squared_error\": [
-2.9717560322100764,
-2.906429088642059,
-2.4787712288167807
],
\"neg_median_absolute_error\": [
-1.785473097000001,
-1.25575307125,
-0.8571504162500005
],
\"r2\": [
-1.0219280872487388,
-0.3172580123794684,
-0.5365564595688672
]
},
\"trial_ran\": true,
\"alg_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\"
}
}", + "{
\"number\": 3,
\"values\": [
-0.9125905675311808,
0.7861693342190089
],
\"params\": {
\"algorithm_name\": \"PLSRegression\",
\"PLSRegression_algorithm_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\",
\"n_components__9f2f76e479633c0bf18cf2912fed9eda\": 5,
\"descriptor\": \"{\\\"name\\\": \\\"MACCS_keys\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9849639641402015,
0.9828800440413418,
0.9820949506759404
],
\"max_error\": [
-0.5197622619148001,
-0.578258209487684,
-0.6097236247421289
],
\"neg_mean_absolute_error\": [
-0.15225290925233773,
-0.1395965446158482,
-0.16234470149067756
],
\"neg_mean_squared_error\": [
-0.03594768705569173,
-0.04020521001484897,
-0.04488192649150811
],
\"neg_median_absolute_error\": [
-0.1234255208002697,
-0.11725579182404289,
-0.11763114886180226
],
\"r2\": [
0.9849639641402015,
0.9828800440413418,
0.9820949506759404
]
},
\"test_scores\": {
\"explained_variance\": [
0.7493168066493779,
0.8439890027037464,
-0.24060711891241326
],
\"max_error\": [
-1.2144772276577216,
-1.1632774960663061,
-3.7013161826996095
],
\"neg_mean_absolute_error\": [
-0.41354910413217183,
-0.4816216137839231,
-0.8966876551868384
],
\"neg_mean_squared_error\": [
-0.3692197929485835,
-0.344243524438586,
-2.024308385206373
],
\"neg_median_absolute_error\": [
-0.1919907903167175,
-0.4369218096563432,
-0.4779689126890929
],
\"r2\": [
0.7487896510886491,
0.8439812130464401,
-0.25484114438952377
]
},
\"trial_ran\": true,
\"alg_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\"
}
}", + "{
\"number\": 5,
\"values\": [
-0.5348363849100434,
0.5741725628917808
],
\"params\": {
\"algorithm_name\": \"Ridge\",
\"Ridge_algorithm_hash\": \"cfa1990d5153c8812982f034d788d7ee\",
\"alpha__cfa1990d5153c8812982f034d788d7ee\": 1.7896547008552977,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9992953526981213,
0.9991026642455866,
0.9995175846362686
],
\"max_error\": [
-0.10766042163284606,
-0.1075140823295726,
-0.07460654622187857
],
\"neg_mean_absolute_error\": [
-0.03156890558158965,
-0.03649203341737044,
-0.02743892276836289
],
\"neg_mean_squared_error\": [
-0.0016846488614926615,
-0.002107340261104867,
-0.0012092527924104882
],
\"neg_median_absolute_error\": [
-0.02561682757298156,
-0.028191061706472453,
-0.024285917350927555
],
\"r2\": [
0.9992953526981213,
0.9991026642455866,
0.9995175846362686
]
},
\"test_scores\": {
\"explained_variance\": [
0.8935768285340041,
0.9636788736288304,
0.19714578534324456
],
\"max_error\": [
-0.774352519041904,
-0.737606816780155,
-3.0739619860946146
],
\"neg_mean_absolute_error\": [
-0.33687126397921885,
-0.20883221082561076,
-0.6894395118728371
],
\"neg_mean_squared_error\": [
-0.16851231132189992,
-0.09041081602749307,
-1.3455860273807372
],
\"neg_median_absolute_error\": [
-0.2676544331750077,
-0.1533721343043899,
-0.35319599551719927
],
\"r2\": [
0.885347326087343,
0.9590238164476862,
0.16588958341895155
]
},
\"trial_ran\": true,
\"alg_hash\": \"cfa1990d5153c8812982f034d788d7ee\"
}
}", + "{
\"number\": 6,
\"values\": [
-2.0072511048320134,
0.2786318125997387
],
\"params\": {
\"algorithm_name\": \"Lasso\",
\"Lasso_algorithm_hash\": \"5457f609662e44f04dcc9423066d2f58\",
\"alpha__5457f609662e44f04dcc9423066d2f58\": 1.6574750183038587,
\"descriptor\": \"{\\\"name\\\": \\\"MACCS_keys\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
-2.220446049250313e-16,
2.220446049250313e-16,
2.220446049250313e-16
],
\"max_error\": [
-2.777570688350001,
-2.9603145737666665,
-2.956865269583333
],
\"neg_mean_absolute_error\": [
-1.4282473280400005,
-1.4387520675488887,
-1.493614843444444
],
\"neg_mean_squared_error\": [
-2.3907689094972278,
-2.348441205803191,
-2.5066631026365753
],
\"neg_median_absolute_error\": [
-1.4789578996499992,
-1.4262595417333341,
-1.4297088459166676
],
\"r2\": [
0.0,
0.0,
0.0
]
},
\"test_scores\": {
\"explained_variance\": [
-2.220446049250313e-16,
0.0,
-2.220446049250313e-16
],
\"max_error\": [
-1.7966755186499999,
-2.7217539462666664,
-1.983287996083332
],
\"neg_mean_absolute_error\": [
-1.4597502302624998,
-1.3746714857500002,
-1.1697984021874999
],
\"neg_mean_squared_error\": [
-2.201962094075194,
-2.2065759996699903,
-1.613215220750856
],
\"neg_median_absolute_error\": [
-1.4749943137500003,
-1.1956921469833337,
-1.1850802254166668
],
\"r2\": [
-0.49817446547138133,
-6.909745304128911e-05,
-1.0101498061798608e-05
]
},
\"trial_ran\": true,
\"alg_hash\": \"5457f609662e44f04dcc9423066d2f58\"
}
}", + "{
\"number\": 7,
\"values\": [
-0.9625764609276656,
0.27575381401822424
],
\"params\": {
\"algorithm_name\": \"Lasso\",
\"Lasso_algorithm_hash\": \"5457f609662e44f04dcc9423066d2f58\",
\"alpha__5457f609662e44f04dcc9423066d2f58\": 0.3974313630683448,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.6309849216096366,
0.6507390643936857,
0.7152691170875705
],
\"max_error\": [
-2.252632607405257,
-2.175450613956933,
-1.706171237738615
],
\"neg_mean_absolute_error\": [
-0.7938599755102753,
-0.7401987497888673,
-0.6895007958617582
],
\"neg_mean_squared_error\": [
-0.8822297765513636,
-0.8202187727552434,
-0.7137243983777222
],
\"neg_median_absolute_error\": [
-0.7885181658671447,
-0.7501373635815645,
-0.5611223597767765
],
\"r2\": [
0.6309849216096364,
0.6507390643936857,
0.7152691170875705
]
},
\"test_scores\": {
\"explained_variance\": [
0.5935872735161616,
0.6194826453868792,
0.17203437251585474
],
\"max_error\": [
-1.395224586235262,
-1.8000052968656917,
-2.494567849472519
],
\"neg_mean_absolute_error\": [
-0.6933313261473552,
-0.8003665596137148,
-0.8987725327249799
],
\"neg_mean_squared_error\": [
-0.7033126801898267,
-0.839924844272171,
-1.3444918583209988
],
\"neg_median_absolute_error\": [
-0.5545466636288294,
-0.5638571491740674,
-0.7465466926544182
],
\"r2\": [
0.5214790020510424,
0.6193274643314883,
0.16656784388811308
]
},
\"trial_ran\": true,
\"alg_hash\": \"5457f609662e44f04dcc9423066d2f58\"
}
}", + "{
\"number\": 8,
\"values\": [
-1.1114006274062536,
0.7647766019001522
],
\"params\": {
\"algorithm_name\": \"RandomForestRegressor\",
\"RandomForestRegressor_algorithm_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\",
\"max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3\": 28,
\"n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3\": 8,
\"max_features__f1ac01e1bba332215ccbd0c29c9ac3c3\": \"auto\",
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9206324471278879,
0.8559333726266467,
0.961180851069245
],
\"max_error\": [
-1.0117299001249993,
-2.412809048812499,
-0.86672411225
],
\"neg_mean_absolute_error\": [
-0.322024124525,
-0.3365692731249999,
-0.21982626677291656
],
\"neg_mean_squared_error\": [
-0.20283154301796763,
-0.34722452595138703,
-0.10165721518937171
],
\"neg_median_absolute_error\": [
-0.21598249059374997,
-0.13718304440624962,
-0.12420240787499992
],
\"r2\": [
0.9151605401039691,
0.8521468090862285,
0.9594452022362135
]
},
\"test_scores\": {
\"explained_variance\": [
0.9718126094330066,
0.22890773779793905,
0.21343834363644043
],
\"max_error\": [
-0.4565383455625005,
-3.2067649035625,
-3.1492960391250007
],
\"neg_mean_absolute_error\": [
-0.23419817084375005,
-0.8567377529921876,
-0.6864807362656249
],
\"neg_mean_squared_error\": [
-0.07067602728333097,
-1.8867023442811073,
-1.3768235106543227
],
\"neg_median_absolute_error\": [
-0.20883106609375002,
-0.2070725905937496,
-0.41695414499999917
],
\"r2\": [
0.9519133323494763,
0.14490472528934695,
0.14652589380261938
]
},
\"trial_ran\": true,
\"alg_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\"
}
}", + "{
\"number\": 9,
\"values\": [
-0.7801680863916906,
0.2725738454485389
],
\"params\": {
\"algorithm_name\": \"Lasso\",
\"Lasso_algorithm_hash\": \"5457f609662e44f04dcc9423066d2f58\",
\"alpha__5457f609662e44f04dcc9423066d2f58\": 0.2391884918766034,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.7358450089950654,
0.7138202856549503,
0.7948804037600925
],
\"max_error\": [
-2.0949820822909455,
-2.0906327941397294,
-1.5918151203814253
],
\"neg_mean_absolute_error\": [
-0.6557327871134385,
-0.6571336339465875,
-0.5940423569437646
],
\"neg_mean_squared_error\": [
-0.6315335397831173,
-0.6720762334329013,
-0.5141657235222882
],
\"neg_median_absolute_error\": [
-0.5979734798770764,
-0.6566486168416157,
-0.4804268744621516
],
\"r2\": [
0.7358450089950654,
0.7138202856549503,
0.7948804037600925
]
},
\"test_scores\": {
\"explained_variance\": [
0.6836083752661624,
0.6966716816699435,
0.2867220579848473
],
\"max_error\": [
-1.226090481431986,
-1.494693861320691,
-2.361646437233209
],
\"neg_mean_absolute_error\": [
-0.5558366160388878,
-0.7399472892266868,
-0.8485251777144946
],
\"neg_mean_squared_error\": [
-0.5158538524332629,
-0.6693267648386103,
-1.1553236419031985
],
\"neg_median_absolute_error\": [
-0.39106556854575514,
-0.5988148150541805,
-0.7632441315512826
],
\"r2\": [
0.6490225368956033,
0.6966462910348781,
0.2838306398665221
]
},
\"trial_ran\": true,
\"alg_hash\": \"5457f609662e44f04dcc9423066d2f58\"
}
}", + "{
\"number\": 10,
\"values\": [
-2.785652116470164,
0.21863029955530786
],
\"params\": {
\"algorithm_name\": \"SVR\",
\"SVR_algorithm_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\",
\"gamma__ea7ccc7ef4a9329af0d4e39eb6184933\": 0.00044396482429275296,
\"C__ea7ccc7ef4a9329af0d4e39eb6184933\": 2.3831436879125245e-10,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
3.51216833394119e-11,
4.623668115044666e-11,
4.652633833757136e-11
],
\"max_error\": [
-2.407698682236905,
-3.7846305169848202,
-3.8912634494534357
],
\"neg_mean_absolute_error\": [
-1.4215400155888405,
-1.387998906730042,
-1.4426317290108275
],
\"neg_mean_squared_error\": [
-2.527574210296399,
-3.0279379800043413,
-3.3797630611425133
],
\"neg_median_absolute_error\": [
-1.73736976072626,
-0.8078731694136589,
-0.7077568176915539
],
\"r2\": [
-0.0572223021036109,
-0.2893394871977455,
-0.3483116488959317
]
},
\"test_scores\": {
\"explained_variance\": [
3.695310724083356e-11,
3.196509723579766e-11,
3.306266371794209e-11
],
\"max_error\": [
-2.1665475246885846,
-3.546069889503773,
-2.917686175962171
],
\"neg_mean_absolute_error\": [
-1.6446862332734806,
-1.3746714857242122,
-1.1807020024072323
],
\"neg_mean_squared_error\": [
-2.9717560320594796,
-2.9064290886106505,
-2.478771228740361
],
\"neg_median_absolute_error\": [
-1.7854730969470158,
-1.2557530712042917,
-0.8571504162245955
],
\"r2\": [
-1.0219280871462755,
-0.3172580123652333,
-0.5365564595214956
]
},
\"trial_ran\": true,
\"alg_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\"
}
}", + "{
\"number\": 11,
\"values\": [
-2.785651973436432,
0.21863032832257323
],
\"params\": {
\"algorithm_name\": \"SVR\",
\"SVR_algorithm_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\",
\"gamma__ea7ccc7ef4a9329af0d4e39eb6184933\": 0.00028965395242758657,
\"C__ea7ccc7ef4a9329af0d4e39eb6184933\": 2.99928292425642e-07,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
1.0042828013645533e-07,
1.2201057308924845e-07,
1.1946357847403277e-07
],
\"max_error\": [
-2.407698483275782,
-3.784630419617357,
-3.8912632434668657
],
\"neg_mean_absolute_error\": [
-1.4215399488000382,
-1.3879988187073213,
-1.4426316383422448
],
\"neg_mean_squared_error\": [
-2.5275739932894736,
-3.027937838296765,
-3.3797627274551605
],
\"neg_median_absolute_error\": [
-1.737369648298217,
-0.8078729699590448,
-0.7077567183897604
],
\"r2\": [
-0.057222211334936324,
-0.28933942685662384,
-0.3483115157757879
]
},
\"test_scores\": {
\"explained_variance\": [
8.476231749821039e-08,
8.974784559967475e-08,
9.749491269861466e-08
],
\"max_error\": [
-2.166547505060172,
-3.54606983564109,
-2.9176859960038835
],
\"neg_mean_absolute_error\": [
-1.6446861757757678,
-1.3746714277448118,
-1.180701917475541
],
\"neg_mean_squared_error\": [
-2.9717558552690067,
-2.9064290286099874,
-2.4787710364303033
],
\"neg_median_absolute_error\": [
-1.785473043619366,
-1.2557529712063742,
-0.8571503548245416
],
\"r2\": [
-1.021927966861293,
-0.3172579851716042,
-0.5365563403111151
]
},
\"trial_ran\": true,
\"alg_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\"
}
}", + "{
\"number\": 12,
\"values\": [
-0.6101359993004856,
0.3011280543457062
],
\"params\": {
\"algorithm_name\": \"PLSRegression\",
\"PLSRegression_algorithm_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\",
\"n_components__9f2f76e479633c0bf18cf2912fed9eda\": 4,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9977100736908402,
0.9975427640313913,
0.9968195578599012
],
\"max_error\": [
-0.2167986167477789,
-0.2277990799414109,
-0.20980298817103638
],
\"neg_mean_absolute_error\": [
-0.055854002084797474,
-0.05645785050051896,
-0.0720026052862923
],
\"neg_mean_squared_error\": [
-0.00547468462497904,
-0.005770674201062414,
-0.007972296962656158
],
\"neg_median_absolute_error\": [
-0.0476138511534252,
-0.04300842479088396,
-0.06452439449761282
],
\"r2\": [
0.9977100736908402,
0.9975427640313913,
0.9968195578599012
]
},
\"test_scores\": {
\"explained_variance\": [
0.8886597774000782,
0.6722676099050113,
0.5125354270829542
],
\"max_error\": [
-0.6878749296055089,
-2.15435471941149,
-2.426892457483266
],
\"neg_mean_absolute_error\": [
-0.3897525804896699,
-0.555957492705223,
-0.5955349500027809
],
\"neg_mean_squared_error\": [
-0.19483222604638134,
-0.7361837217462683,
-0.8993920501088071
],
\"neg_median_absolute_error\": [
-0.3760392229997924,
-0.2733259086216404,
-0.36468915433905247
],
\"r2\": [
0.8674397407207732,
0.6663452379267604,
0.44247914119156395
]
},
\"trial_ran\": true,
\"alg_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\"
}
}", + "{
\"number\": 14,
\"values\": [
-0.5356113574175657,
0.5769721187181905
],
\"params\": {
\"algorithm_name\": \"Ridge\",
\"Ridge_algorithm_hash\": \"cfa1990d5153c8812982f034d788d7ee\",
\"alpha__cfa1990d5153c8812982f034d788d7ee\": 1.4060379177903557,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.999517094017306,
0.9994020294133303,
0.9996516810167624
],
\"max_error\": [
-0.08555683896758026,
-0.08555379923076956,
-0.06975837183481826
],
\"neg_mean_absolute_error\": [
-0.02628178610683247,
-0.029832661411189114,
-0.023240052093104483
],
\"neg_mean_squared_error\": [
-0.0011545166096350072,
-0.0014042987655932706,
-0.0008731183432294868
],
\"neg_median_absolute_error\": [
-0.020374460673226125,
-0.022559597416789146,
-0.01924940342623671
],
\"r2\": [
0.999517094017306,
0.9994020294133303,
0.9996516810167624
]
},
\"test_scores\": {
\"explained_variance\": [
0.8935387516249337,
0.9646018619542002,
0.19469890517579236
],
\"max_error\": [
-0.7768335199576253,
-0.7364046007808875,
-3.081177105864297
],
\"neg_mean_absolute_error\": [
-0.3373361317047229,
-0.20254120602107317,
-0.6870056344543213
],
\"neg_mean_squared_error\": [
-0.16873349121216252,
-0.0878643336631266,
-1.350236247377408
],
\"neg_median_absolute_error\": [
-0.265542253953738,
-0.144226455352797,
-0.35230079981759177
],
\"r2\": [
0.8851968393624541,
0.9601779386352713,
0.16300697549965926
]
},
\"trial_ran\": true,
\"alg_hash\": \"cfa1990d5153c8812982f034d788d7ee\"
}
}", + "{
\"number\": 15,
\"values\": [
-0.543430366921729,
0.514747412346662
],
\"params\": {
\"algorithm_name\": \"RandomForestRegressor\",
\"RandomForestRegressor_algorithm_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\",
\"max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3\": 20,
\"n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3\": 8,
\"max_features__f1ac01e1bba332215ccbd0c29c9ac3c3\": \"auto\",
\"descriptor\": \"{\\\"name\\\": \\\"MACCS_keys\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.8969240974700634,
0.8006428572427549,
0.9354463388985946
],
\"max_error\": [
-1.1089528326874998,
-2.5305006679999993,
-1.2147494705000002
],
\"neg_mean_absolute_error\": [
-0.3882621802999999,
-0.3752013252250003,
-0.2797012135854168
],
\"neg_mean_squared_error\": [
-0.24821934610451973,
-0.46835869923315343,
-0.16568085389341727
],
\"neg_median_absolute_error\": [
-0.38021252496875046,
-0.13201332959375023,
-0.1504819008437499
],
\"r2\": [
0.8961759352321845,
0.8005661380511462,
0.9339038206932756
]
},
\"test_scores\": {
\"explained_variance\": [
0.9445386713483314,
0.8716143998386577,
0.21756160180475825
],
\"max_error\": [
-0.5202287482500001,
-1.0801857144374996,
-2.5865519054374992
],
\"neg_mean_absolute_error\": [
-0.24804613069531256,
-0.4189198933749999,
-0.8129752672265629
],
\"neg_mean_squared_error\": [
-0.08466611775687974,
-0.2833241151942194,
-1.262300867814088
],
\"neg_median_absolute_error\": [
-0.2058811024687497,
-0.37633277553125044,
-0.7446450660000004
],
\"r2\": [
0.942394732381974,
0.8715912380940694,
0.21751691732965106
]
},
\"trial_ran\": true,
\"alg_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\"
}
}", + "{
\"number\": 16,
\"values\": [
-2.0072511048320134,
0.2786318125997387
],
\"params\": {
\"algorithm_name\": \"Lasso\",
\"Lasso_algorithm_hash\": \"5457f609662e44f04dcc9423066d2f58\",
\"alpha__5457f609662e44f04dcc9423066d2f58\": 1.344271094811757,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
-2.220446049250313e-16,
2.220446049250313e-16,
2.220446049250313e-16
],
\"max_error\": [
-2.777570688350001,
-2.9603145737666665,
-2.956865269583333
],
\"neg_mean_absolute_error\": [
-1.4282473280400005,
-1.4387520675488887,
-1.493614843444444
],
\"neg_mean_squared_error\": [
-2.3907689094972278,
-2.348441205803191,
-2.5066631026365753
],
\"neg_median_absolute_error\": [
-1.4789578996499992,
-1.4262595417333341,
-1.4297088459166676
],
\"r2\": [
0.0,
0.0,
0.0
]
},
\"test_scores\": {
\"explained_variance\": [
-2.220446049250313e-16,
0.0,
-2.220446049250313e-16
],
\"max_error\": [
-1.7966755186499999,
-2.7217539462666664,
-1.983287996083332
],
\"neg_mean_absolute_error\": [
-1.4597502302624998,
-1.3746714857500002,
-1.1697984021874999
],
\"neg_mean_squared_error\": [
-2.201962094075194,
-2.2065759996699903,
-1.613215220750856
],
\"neg_median_absolute_error\": [
-1.4749943137500003,
-1.1956921469833337,
-1.1850802254166668
],
\"r2\": [
-0.49817446547138133,
-6.909745304128911e-05,
-1.0101498061798608e-05
]
},
\"trial_ran\": true,
\"alg_hash\": \"5457f609662e44f04dcc9423066d2f58\"
}
}", + "{
\"number\": 18,
\"values\": [
-0.659749443628722,
0.6659085938841998
],
\"params\": {
\"algorithm_name\": \"RandomForestRegressor\",
\"RandomForestRegressor_algorithm_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\",
\"max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3\": 22,
\"n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3\": 6,
\"max_features__f1ac01e1bba332215ccbd0c29c9ac3c3\": \"auto\",
\"descriptor\": \"{\\\"name\\\": \\\"MACCS_keys\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.8771866885159154,
0.7605767073884709,
0.9165904980399754
],
\"max_error\": [
-1.3841658855833332,
-2.73272604925,
-1.399110700083333
],
\"neg_mean_absolute_error\": [
-0.38187799954999974,
-0.3971412162944445,
-0.30359108279166686
],
\"neg_mean_squared_error\": [
-0.29654130407841844,
-0.5648996958669534,
-0.20992361132685675
],
\"neg_median_absolute_error\": [
-0.2927916572083329,
-0.11474098924999998,
-0.1609640780416668
],
\"r2\": [
0.8759640453326875,
0.7594575949054889,
0.9162537593879075
]
},
\"test_scores\": {
\"explained_variance\": [
0.9574469041668595,
0.8643988273760793,
0.022603500535386067
],
\"max_error\": [
-0.6513723423333344,
-0.9304495610000005,
-2.5495979194166667
],
\"neg_mean_absolute_error\": [
-0.20517391297916698,
-0.45735540975,
-0.99868224721875
],
\"neg_mean_squared_error\": [
-0.07485325580276948,
-0.31299982148410066,
-1.591395253599296
],
\"neg_median_absolute_error\": [
-0.13923866258333328,
-0.48702888212499973,
-0.9981938518333333
],
\"r2\": [
0.9490712229775209,
0.8581415509724649,
0.013515798385129396
]
},
\"trial_ran\": true,
\"alg_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\"
}
}", + "{
\"number\": 19,
\"values\": [
-1.1068495306229729,
0.24457822094737378
],
\"params\": {
\"algorithm_name\": \"Lasso\",
\"Lasso_algorithm_hash\": \"5457f609662e44f04dcc9423066d2f58\",
\"alpha__5457f609662e44f04dcc9423066d2f58\": 0.5158832554303112,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.5531147799581386,
0.6007290929175806,
0.6710850220156985
],
\"max_error\": [
-2.298478369320666,
-2.2303250317057834,
-1.838346644735612
],
\"neg_mean_absolute_error\": [
-0.884276617370655,
-0.8095758892055421,
-0.7542552062854129
],
\"neg_mean_squared_error\": [
-1.06839929018991,
-0.9376642504707711,
-0.8244790392177702
],
\"neg_median_absolute_error\": [
-0.7997337260383168,
-0.8255203756112515,
-0.6010572531757918
],
\"r2\": [
0.5531147799581384,
0.6007290929175806,
0.6710850220156985
]
},
\"test_scores\": {
\"explained_variance\": [
0.4824659350945505,
0.572247959208814,
0.10292090653410846
],
\"max_error\": [
-1.5646578805177356,
-1.923118160270179,
-2.52285079257018
],
\"neg_mean_absolute_error\": [
-0.8351781840542875,
-0.841734435970192,
-0.9158632951536998
],
\"neg_mean_squared_error\": [
-0.9236950134129185,
-0.9443233135299345,
-1.4525302649260659
],
\"neg_median_absolute_error\": [
-0.7060567633436148,
-0.6052039733202146,
-0.7720757854308395
],
\"r2\": [
0.37153492028676904,
0.5720117666434388,
0.09959630991973412
]
},
\"trial_ran\": true,
\"alg_hash\": \"5457f609662e44f04dcc9423066d2f58\"
}
}", + "{
\"number\": 20,
\"values\": [
-0.8604898820838102,
0.7086875504668667
],
\"params\": {
\"algorithm_name\": \"PLSRegression\",
\"PLSRegression_algorithm_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\",
\"n_components__9f2f76e479633c0bf18cf2912fed9eda\": 4,
\"descriptor\": \"{\\\"name\\\": \\\"MACCS_keys\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9729380997999632,
0.9634263118198302,
0.9656682096655208
],
\"max_error\": [
-0.5571499986930784,
-0.7228948575726584,
-0.854153006336114
],
\"neg_mean_absolute_error\": [
-0.1973467502577083,
-0.21308212257099363,
-0.22458331075011997
],
\"neg_mean_squared_error\": [
-0.06469874963016482,
-0.08589115637050779,
-0.08605823207889407
],
\"neg_median_absolute_error\": [
-0.15758839122192647,
-0.14998189671792428,
-0.14162605994908728
],
\"r2\": [
0.9729380997999632,
0.9634263118198303,
0.9656682096655208
]
},
\"test_scores\": {
\"explained_variance\": [
0.7436061621507988,
0.8489165070699433,
-0.13142410450882003
],
\"max_error\": [
-1.2208220182819107,
-1.354109371017831,
-3.527307328138104
],
\"neg_mean_absolute_error\": [
-0.43256728384960125,
-0.3953856066990531,
-0.8748509822063061
],
\"neg_mean_squared_error\": [
-0.380290900048737,
-0.3387404579485774,
-1.8624382882541157
],
\"neg_median_absolute_error\": [
-0.26145563417924356,
-0.17011265265548037,
-0.45298046781931856
],
\"r2\": [
0.7412570736630077,
0.8464753246196242,
-0.15450008015918115
]
},
\"trial_ran\": true,
\"alg_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\"
}
}", + "{
\"number\": 21,
\"values\": [
-0.5919869916997383,
0.2367498627927979
],
\"params\": {
\"algorithm_name\": \"SVR\",
\"SVR_algorithm_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\",
\"gamma__ea7ccc7ef4a9329af0d4e39eb6184933\": 0.0009327650919528738,
\"C__ea7ccc7ef4a9329af0d4e39eb6184933\": 6.062479210472502,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.7842374546454186,
0.8207501586619763,
0.8388394351354407
],
\"max_error\": [
-1.8596758351735492,
-1.6805747542871234,
-1.823107918819086
],
\"neg_mean_absolute_error\": [
-0.4788321327361404,
-0.42546001672177636,
-0.38994606620179817
],
\"neg_mean_squared_error\": [
-0.5464285493502418,
-0.42829517458369093,
-0.43385236090831564
],
\"neg_median_absolute_error\": [
-0.13655484937476903,
-0.10024968956182745,
-0.1000060432903016
],
\"r2\": [
0.7714423392492777,
0.8176257623459602,
0.8269203546132793
]
},
\"test_scores\": {
\"explained_variance\": [
0.8254406163671446,
0.6552430770093162,
0.5453694933369965
],
\"max_error\": [
-1.0076626563695585,
-2.0858951505234673,
-1.7743667608724891
],
\"neg_mean_absolute_error\": [
-0.43420821310566426,
-0.5926528159732936,
-0.6682670932269509
],
\"neg_mean_squared_error\": [
-0.2578508097186242,
-0.7775078661368594,
-0.7406022992437313
],
\"neg_median_absolute_error\": [
-0.3759822002948092,
-0.2889592578375364,
-0.4746849364956609
],
\"r2\": [
0.8245630567115607,
0.6476162207572188,
0.5409107409166944
]
},
\"trial_ran\": true,
\"alg_hash\": \"ea7ccc7ef4a9329af0d4e39eb6184933\"
}
}", + "{
\"number\": 24,
\"values\": [
-1.1114006274062536,
0.7647766019001522
],
\"params\": {
\"algorithm_name\": \"RandomForestRegressor\",
\"RandomForestRegressor_algorithm_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\",
\"max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3\": 26,
\"n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3\": 8,
\"max_features__f1ac01e1bba332215ccbd0c29c9ac3c3\": \"auto\",
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9206324471278879,
0.8559333726266467,
0.961180851069245
],
\"max_error\": [
-1.0117299001249993,
-2.412809048812499,
-0.86672411225
],
\"neg_mean_absolute_error\": [
-0.322024124525,
-0.3365692731250001,
-0.21982626677291656
],
\"neg_mean_squared_error\": [
-0.20283154301796763,
-0.34722452595138714,
-0.10165721518937171
],
\"neg_median_absolute_error\": [
-0.21598249059374997,
-0.13718304440625007,
-0.12420240787499992
],
\"r2\": [
0.9151605401039691,
0.8521468090862284,
0.9594452022362135
]
},
\"test_scores\": {
\"explained_variance\": [
0.9718126094330066,
0.22890773779793905,
0.21343834363644043
],
\"max_error\": [
-0.4565383455625005,
-3.2067649035625,
-3.1492960391250007
],
\"neg_mean_absolute_error\": [
-0.23419817084375005,
-0.8567377529921874,
-0.6864807362656249
],
\"neg_mean_squared_error\": [
-0.07067602728333097,
-1.8867023442811073,
-1.3768235106543227
],
\"neg_median_absolute_error\": [
-0.20883106609375002,
-0.20707259059374916,
-0.41695414499999917
],
\"r2\": [
0.9519133323494763,
0.14490472528934695,
0.14652589380261938
]
},
\"trial_ran\": true,
\"alg_hash\": \"f1ac01e1bba332215ccbd0c29c9ac3c3\"
}
}", + "{
\"number\": 25,
\"values\": [
-2.0621601907738047,
0.2749020946925899
],
\"params\": {
\"algorithm_name\": \"ChemPropRegressor\",
\"ChemPropRegressor_algorithm_hash\": \"668a7428ff5cdb271b01c0925e8fea45\",
\"activation__668a7428ff5cdb271b01c0925e8fea45\": \"ReLU\",
\"aggregation__668a7428ff5cdb271b01c0925e8fea45\": \"mean\",
\"aggregation_norm__668a7428ff5cdb271b01c0925e8fea45\": 100.0,
\"batch_size__668a7428ff5cdb271b01c0925e8fea45\": 50.0,
\"depth__668a7428ff5cdb271b01c0925e8fea45\": 3.0,
\"dropout__668a7428ff5cdb271b01c0925e8fea45\": 0.0,
\"ensemble_size__668a7428ff5cdb271b01c0925e8fea45\": 1,
\"epochs__668a7428ff5cdb271b01c0925e8fea45\": 5,
\"features_generator__668a7428ff5cdb271b01c0925e8fea45\": \"none\",
\"ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45\": 300.0,
\"ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45\": 2.0,
\"final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45\": -4,
\"hidden_size__668a7428ff5cdb271b01c0925e8fea45\": 300.0,
\"init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45\": -4,
\"max_lr_exp__668a7428ff5cdb271b01c0925e8fea45\": -3,
\"warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45\": 0.1,
\"descriptor\": \"{\\\"name\\\": \\\"SmilesFromFile\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
-0.0030084298221983996,
-0.012161707538054234,
0.0017298120410219608
],
\"max_error\": [
-2.7373101426203617,
-3.0090429497797855,
-3.187341899975098
],
\"neg_mean_absolute_error\": [
-1.4223092754175861,
-1.444010474785221,
-1.4795137982689128
],
\"neg_mean_squared_error\": [
-2.4052068497915142,
-2.377039226122409,
-2.5361493212169677
],
\"neg_median_absolute_error\": [
-1.5480976110290525,
-1.4536747993286134,
-1.3328660971721193
],
\"r2\": [
-0.006039036327154967,
-0.012177447852877998,
-0.011763135839585992
]
},
\"test_scores\": {
\"explained_variance\": [
-0.0046704465761211456,
0.033093602781103404,
-0.030933512786851303
],
\"max_error\": [
-1.8682299333981938,
-2.637490054671143,
-2.252076107950927
],
\"neg_mean_absolute_error\": [
-1.5042553457710572,
-1.3561058906000063,
-1.1782307308885192
],
\"neg_mean_squared_error\": [
-2.3574440069269023,
-2.13352134988607,
-1.6955152155084416
],
\"neg_median_absolute_error\": [
-1.5117784228234865,
-1.2060612994278563,
-1.0778323309564208
],
\"r2\": [
-0.6039614961854176,
0.033040887285793796,
-0.05102674518712691
]
},
\"trial_ran\": true,
\"alg_hash\": \"668a7428ff5cdb271b01c0925e8fea45\"
}
}", + "{
\"number\": 26,
\"values\": [
-2.0621601907738047,
0.2749020946925899
],
\"params\": {
\"algorithm_name\": \"ChemPropRegressor\",
\"ChemPropRegressor_algorithm_hash\": \"668a7428ff5cdb271b01c0925e8fea45\",
\"activation__668a7428ff5cdb271b01c0925e8fea45\": \"ReLU\",
\"aggregation__668a7428ff5cdb271b01c0925e8fea45\": \"mean\",
\"aggregation_norm__668a7428ff5cdb271b01c0925e8fea45\": 100.0,
\"batch_size__668a7428ff5cdb271b01c0925e8fea45\": 45.0,
\"depth__668a7428ff5cdb271b01c0925e8fea45\": 3.0,
\"dropout__668a7428ff5cdb271b01c0925e8fea45\": 0.0,
\"ensemble_size__668a7428ff5cdb271b01c0925e8fea45\": 1,
\"epochs__668a7428ff5cdb271b01c0925e8fea45\": 5,
\"features_generator__668a7428ff5cdb271b01c0925e8fea45\": \"none\",
\"ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45\": 300.0,
\"ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45\": 2.0,
\"final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45\": -4,
\"hidden_size__668a7428ff5cdb271b01c0925e8fea45\": 300.0,
\"init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45\": -4,
\"max_lr_exp__668a7428ff5cdb271b01c0925e8fea45\": -3,
\"warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45\": 0.1,
\"descriptor\": \"{\\\"name\\\": \\\"SmilesFromFile\\\", \\\"parameters\\\": {}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
-0.0030084298221983996,
-0.012161707538054234,
0.0017298120410219608
],
\"max_error\": [
-2.7373101426203617,
-3.0090429497797855,
-3.187341899975098
],
\"neg_mean_absolute_error\": [
-1.4223092754175861,
-1.444010474785221,
-1.4795137982689128
],
\"neg_mean_squared_error\": [
-2.4052068497915142,
-2.377039226122409,
-2.5361493212169677
],
\"neg_median_absolute_error\": [
-1.5480976110290525,
-1.4536747993286134,
-1.3328660971721193
],
\"r2\": [
-0.006039036327154967,
-0.012177447852877998,
-0.011763135839585992
]
},
\"test_scores\": {
\"explained_variance\": [
-0.0046704465761211456,
0.033093602781103404,
-0.030933512786851303
],
\"max_error\": [
-1.8682299333981938,
-2.637490054671143,
-2.252076107950927
],
\"neg_mean_absolute_error\": [
-1.5042553457710572,
-1.3561058906000063,
-1.1782307308885192
],
\"neg_mean_squared_error\": [
-2.3574440069269023,
-2.13352134988607,
-1.6955152155084416
],
\"neg_median_absolute_error\": [
-1.5117784228234865,
-1.2060612994278563,
-1.0778323309564208
],
\"r2\": [
-0.6039614961854176,
0.033040887285793796,
-0.05102674518712691
]
},
\"trial_ran\": true,
\"alg_hash\": \"668a7428ff5cdb271b01c0925e8fea45\"
}
}" + ], + "type": "scatter", + "x": [ + -1.4008740644240856, + -1.3561484909673425, + -2.7856521165563053, + -0.9125905675311808, + -0.5348363849100434, + -2.0072511048320134, + -0.9625764609276656, + -1.1114006274062536, + -0.7801680863916906, + -2.785652116470164, + -2.785651973436432, + -0.6101359993004856, + -0.5356113574175657, + -0.543430366921729, + -2.0072511048320134, + -0.659749443628722, + -1.1068495306229729, + -0.8604898820838102, + -0.5919869916997383, + -1.1114006274062536, + -2.0621601907738047, + -2.0621601907738047 + ], + "y": [ + 0.9876203329634794, + 0.9875061220991906, + 0.21863029956806662, + 0.7861693342190089, + 0.5741725628917808, + 0.2786318125997387, + 0.27575381401822424, + 0.7647766019001522, + 0.2725738454485389, + 0.21863029955530786, + 0.21863032832257323, + 0.3011280543457062, + 0.5769721187181905, + 0.514747412346662, + 0.2786318125997387, + 0.6659085938841998, + 0.24457822094737378, + 0.7086875504668667, + 0.2367498627927979, + 0.7647766019001522, + 0.2749020946925899, + 0.2749020946925899 + ] + }, + { + "hovertemplate": "%{text}Best Trial", + "marker": { + "color": [ + 4, + 13, + 17, + 23 + ], + "colorbar": { + "title": { + "text": "Best Trial" + }, + "x": 1.1, + "xpad": 40 + }, + "colorscale": [ + [ + 0, + "rgb(255,245,240)" + ], + [ + 0.125, + "rgb(254,224,210)" + ], + [ + 0.25, + "rgb(252,187,161)" + ], + [ + 0.375, + "rgb(252,146,114)" + ], + [ + 0.5, + "rgb(251,106,74)" + ], + [ + 0.625, + "rgb(239,59,44)" + ], + [ + 0.75, + "rgb(203,24,29)" + ], + [ + 0.875, + "rgb(165,15,21)" + ], + [ + 1, + "rgb(103,0,13)" + ] + ], + "line": { + "color": "Grey", + "width": 0.5 + } + }, + "mode": "markers", + "showlegend": false, + "text": [ + "{
\"number\": 4,
\"values\": [
-0.5238765412750027,
0.2789424384877304
],
\"params\": {
\"algorithm_name\": \"PLSRegression\",
\"PLSRegression_algorithm_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\",
\"n_components__9f2f76e479633c0bf18cf2912fed9eda\": 3,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9922459602118696,
0.9948903572938944,
0.9908331622153396
],
\"max_error\": [
-0.48320288560891855,
-0.3497078087721057,
-0.5450843085444221
],
\"neg_mean_absolute_error\": [
-0.09635794782292499,
-0.079523297746737,
-0.10440879548883496
],
\"neg_mean_squared_error\": [
-0.01853811724846648,
-0.011999695477949981,
-0.022978174042663006
],
\"neg_median_absolute_error\": [
-0.07185892843485808,
-0.05230960537443474,
-0.06809658540781305
],
\"r2\": [
0.9922459602118696,
0.9948903572938944,
0.9908331622153396
]
},
\"test_scores\": {
\"explained_variance\": [
0.9222201387814873,
0.6681556476215966,
0.6039775004142351
],
\"max_error\": [
-0.6124704321639136,
-2.08836938740287,
-2.1141890356053565
],
\"neg_mean_absolute_error\": [
-0.33136953691333026,
-0.5400418425280401,
-0.5590265707291404
],
\"neg_mean_squared_error\": [
-0.13043450193697356,
-0.7454138307155094,
-0.6957812911725253
],
\"neg_median_absolute_error\": [
-0.3174537679481202,
-0.27641233643037877,
-0.40048721917971086
],
\"r2\": [
0.9112547664901909,
0.6621619481838996,
0.5686946721950459
]
},
\"trial_ran\": true,
\"alg_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\"
}
}", + "{
\"number\": 13,
\"values\": [
-0.5361950698070447,
0.23560786523195643
],
\"params\": {
\"algorithm_name\": \"PLSRegression\",
\"PLSRegression_algorithm_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\",
\"n_components__9f2f76e479633c0bf18cf2912fed9eda\": 2,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.969087200519737,
0.9773711155694136,
0.9634238244756783
],
\"max_error\": [
-0.8234729672493231,
-0.6504845617093373,
-0.9927621260087944
],
\"neg_mean_absolute_error\": [
-0.21796730972158723,
-0.1791131163270336,
-0.23469322888109886
],
\"neg_mean_squared_error\": [
-0.073905359902935,
-0.05314260463814745,
-0.09168414962237614
],
\"neg_median_absolute_error\": [
-0.16601233852332387,
-0.13362521709731867,
-0.2035233156958971
],
\"r2\": [
0.969087200519737,
0.9773711155694136,
0.9634238244756783
]
},
\"test_scores\": {
\"explained_variance\": [
0.8783843090874257,
0.6785299073459821,
0.6058243711409221
],
\"max_error\": [
-0.6534154925349531,
-2.104949941574862,
-1.9858065636263413
],
\"neg_mean_absolute_error\": [
-0.4125432362254887,
-0.5577045030922277,
-0.5938653126077945
],
\"neg_mean_squared_error\": [
-0.20433488253395957,
-0.7279749471185875,
-0.6762753797685868
],
\"neg_median_absolute_error\": [
-0.4193825877264077,
-0.35228446136692293,
-0.4442159437032447
],
\"r2\": [
0.8609743082130376,
0.6700656363333088,
0.5807861204977627
]
},
\"trial_ran\": true,
\"alg_hash\": \"9f2f76e479633c0bf18cf2912fed9eda\"
}
}", + "{
\"number\": 17,
\"values\": [
-0.5194661889628072,
0.40146744515282495
],
\"params\": {
\"algorithm_name\": \"Ridge\",
\"Ridge_algorithm_hash\": \"cfa1990d5153c8812982f034d788d7ee\",
\"alpha__cfa1990d5153c8812982f034d788d7ee\": 1.670604991178476,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"nBits\\\": 2048, \\\"returnRdkit\\\": false}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.9991674813978301,
0.9993001311528956,
0.9993814596790304
],
\"max_error\": [
-0.11044190626170458,
-0.10105963906130011,
-0.10858642397661944
],
\"neg_mean_absolute_error\": [
-0.03227726729519196,
-0.02998499983167487,
-0.02875269745141784
],
\"neg_mean_squared_error\": [
-0.001990359590645845,
-0.0016436008391980173,
-0.0015504722000676788
],
\"neg_median_absolute_error\": [
-0.017986631052985036,
-0.022831765939194337,
-0.01587690802440811
],
\"r2\": [
0.9991674813978301,
0.9993001311528956,
0.9993814596790304
]
},
\"test_scores\": {
\"explained_variance\": [
0.9478331336825377,
0.8226268061556614,
0.4534912361723785
],
\"max_error\": [
-0.583111805231578,
-1.613625027558136,
-2.7751131872118266
],
\"neg_mean_absolute_error\": [
-0.26113818851689663,
-0.3815732915771106,
-0.5746999515213917
],
\"neg_mean_squared_error\": [
-0.09812196210856176,
-0.4005689680325697,
-1.05970763674729
],
\"neg_median_absolute_error\": [
-0.23978989929238637,
-0.1230775690306789,
-0.26197335243555786
],
\"r2\": [
0.9332396236390536,
0.81845327494365,
0.34310169669196866
]
},
\"trial_ran\": true,
\"alg_hash\": \"cfa1990d5153c8812982f034d788d7ee\"
}
}", + "{
\"number\": 23,
\"values\": [
-1.2497762395862362,
0.10124660026536195
],
\"params\": {
\"algorithm_name\": \"Lasso\",
\"Lasso_algorithm_hash\": \"5457f609662e44f04dcc9423066d2f58\",
\"alpha__5457f609662e44f04dcc9423066d2f58\": 1.1366172066709432,
\"descriptor\": \"{\\\"name\\\": \\\"ECFP_counts\\\", \\\"parameters\\\": {\\\"radius\\\": 3, \\\"useFeatures\\\": true, \\\"nBits\\\": 2048}}\"
},
\"user_attrs\": {
\"train_scores\": {
\"explained_variance\": [
0.49919889928208194,
0.485769413846579,
0.5965792144210624
],
\"max_error\": [
-2.078675180044696,
-2.00754418204583,
-1.8737360817191515
],
\"neg_mean_absolute_error\": [
-0.9947443028365607,
-0.9736841508601317,
-0.8892226290652387
],
\"neg_mean_squared_error\": [
-1.1972997014383888,
-1.207640297807022,
-1.0112399980473843
],
\"neg_median_absolute_error\": [
-1.001240218403781,
-0.9026347572075428,
-0.7422932303483329
],
\"r2\": [
0.4991988992820817,
0.4857694138465789,
0.5965792144210624
]
},
\"test_scores\": {
\"explained_variance\": [
0.4065556114872124,
0.4412005601775002,
0.1443276921579536
],
\"max_error\": [
-1.6559985383136917,
-1.9949646681399216,
-2.240398709741827
],
\"neg_mean_absolute_error\": [
-0.9805882414834669,
-0.9869012222585254,
-0.8993014056306694
],
\"neg_mean_squared_error\": [
-1.1348798102701512,
-1.233228380052796,
-1.3812205284357613
],
\"neg_median_absolute_error\": [
-0.8142109872843268,
-0.9370077589180785,
-0.812315131026196
],
\"r2\": [
0.22784867291739785,
0.4410735940310567,
0.14380024248136636
]
},
\"trial_ran\": true,
\"alg_hash\": \"5457f609662e44f04dcc9423066d2f58\"
}
}" + ], + "type": "scatter", + "x": [ + -0.5238765412750027, + -0.5361950698070447, + -0.5194661889628072, + -1.2497762395862362 + ], + "y": [ + 0.2789424384877304, + 0.23560786523195643, + 0.40146744515282495, + 0.10124660026536195 + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Pareto-front Plot" + }, + "xaxis": { + "title": { + "text": "neg_mean_squared_error" + } + }, + "yaxis": { + "title": { + "text": "Standard deviation" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from optuna.visualization import plot_pareto_front\n", + "\n", + "plot_pareto_front(study)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Further visualization of QSARtuna runs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is possible to evaluate the parameter importances on regression metric performance across descriptor vs. algorithm choice, based on the completed trials in our study:" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "cliponaxis": false, + "hovertemplate": [ + "descriptor (CategoricalDistribution): 0.1796787107197743", + "algorithm_name (CategoricalDistribution): 0.8203212892802257" + ], + "name": "Objective Value", + "orientation": "h", + "text": [ + "0.18", + "0.82" + ], + "textposition": "outside", + "type": "bar", + "x": [ + 0.1796787107197743, + 0.8203212892802257 + ], + "y": [ + "descriptor", + "algorithm_name" + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hyperparameter Importances" + }, + "xaxis": { + "title": { + "text": "Hyperparameter Importance" + } + }, + "yaxis": { + "title": { + "text": "Hyperparameter" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from optuna.visualization import plot_param_importances\n", + "\n", + "plot_param_importances(study, target=lambda t: t.values[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Parameter importances are represented by non-negative floating point numbers, where higher values mean that the parameters are more important. The returned dictionary is of type collections.OrderedDict and is ordered by its values in a descending order (the sum of the importance values are normalized to 1.0). Hence we can conclude that choice of algortihm is more important than choice of descriptor for our current study.\n", + "\n", + "It is also possible to analyse the importance of these hyperparameter choices on the impact on trial duration:" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "cliponaxis": false, + "hovertemplate": [ + "descriptor (CategoricalDistribution): 0.3823267632304901", + "algorithm_name (CategoricalDistribution): 0.6176732367695099" + ], + "name": "duration", + "orientation": "h", + "text": [ + "0.38", + "0.62" + ], + "textposition": "outside", + "type": "bar", + "x": [ + 0.3823267632304901, + 0.6176732367695099 + ], + "y": [ + "descriptor", + "algorithm_name" + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hyperparameter Importances" + }, + "xaxis": { + "title": { + "text": "Hyperparameter Importance" + } + }, + "yaxis": { + "title": { + "text": "Hyperparameter" + } + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_param_importances(\n", + " study, target=lambda t: t.duration.total_seconds(), target_name=\"duration\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Optuna also allows us to plot the parameter relationships for our study, like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "dimensions": [ + { + "label": "Objective Value", + "range": [ + -2.7856521165563053, + -0.5194661889628072 + ], + "values": [ + -1.4008740644240856, + -1.3561484909673425, + -2.7856521165563053, + -0.9125905675311808, + -0.5238765412750027, + -0.5348363849100434, + -2.0072511048320134, + -0.9625764609276656, + -1.1114006274062536, + -0.7801680863916906, + -2.785652116470164, + -2.785651973436432, + -0.6101359993004856, + -0.5361950698070447, + -0.5356113574175657, + -0.543430366921729, + -2.0072511048320134, + -0.5194661889628072, + -0.659749443628722, + -1.1068495306229729, + -0.8604898820838102, + -0.5919869916997383, + -1.2497762395862362, + -1.1114006274062536, + -2.0621601907738047, + -2.0621601907738047 + ] + }, + { + "label": "algorithm_name", + "range": [ + 0, + 5 + ], + "ticktext": [ + "RandomForestRegressor", + "SVR", + "PLSRegression", + "Ridge", + "Lasso", + "ChemPropRegressor" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "values": [ + 0, + 0, + 1, + 2, + 2, + 3, + 4, + 4, + 0, + 4, + 1, + 1, + 2, + 2, + 3, + 0, + 4, + 3, + 0, + 4, + 2, + 1, + 4, + 0, + 5, + 5 + ] + }, + { + "label": "descriptor", + "range": [ + 0, + 3 + ], + "ticktext": [ + "{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}", + "{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}", + "{\"name\": \"MACCS_keys\", \"parameters\": {}}", + "{\"name\": \"SmilesFromFile\", \"parameters\": {}}" + ], + "tickvals": [ + 0, + 1, + 2, + 3 + ], + "values": [ + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 3, + 3 + ] + } + ], + "labelangle": 30, + "labelside": "bottom", + "line": { + "color": [ + -1.4008740644240856, + -1.3561484909673425, + -2.7856521165563053, + -0.9125905675311808, + -0.5238765412750027, + -0.5348363849100434, + -2.0072511048320134, + -0.9625764609276656, + -1.1114006274062536, + -0.7801680863916906, + -2.785652116470164, + -2.785651973436432, + -0.6101359993004856, + -0.5361950698070447, + -0.5356113574175657, + -0.543430366921729, + -2.0072511048320134, + -0.5194661889628072, + -0.659749443628722, + -1.1068495306229729, + -0.8604898820838102, + -0.5919869916997383, + -1.2497762395862362, + -1.1114006274062536, + -2.0621601907738047, + -2.0621601907738047 + ], + "colorbar": { + "title": { + "text": "Objective Value" + } + }, + "colorscale": [ + [ + 0, + "rgb(247,251,255)" + ], + [ + 0.125, + "rgb(222,235,247)" + ], + [ + 0.25, + "rgb(198,219,239)" + ], + [ + 0.375, + "rgb(158,202,225)" + ], + [ + 0.5, + "rgb(107,174,214)" + ], + [ + 0.625, + "rgb(66,146,198)" + ], + [ + 0.75, + "rgb(33,113,181)" + ], + [ + 0.875, + "rgb(8,81,156)" + ], + [ + 1, + "rgb(8,48,107)" + ] + ], + "reversescale": true, + "showscale": true + }, + "type": "parcoords" + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Parallel Coordinate Plot" + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from optuna.visualization import plot_parallel_coordinate\n", + "\n", + "plot_parallel_coordinate(study,\n", + " params=[\"algorithm_name\", \"descriptor\"],\n", + " target=lambda t: t.values[0]) # First performance value taken" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The same can be done for the relationships for the standard deviation of performance:" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "dimensions": [ + { + "label": "Objective Value", + "range": [ + 0.10124660026536195, + 0.9876203329634794 + ], + "values": [ + 0.9876203329634794, + 0.9875061220991906, + 0.21863029956806662, + 0.7861693342190089, + 0.2789424384877304, + 0.5741725628917808, + 0.2786318125997387, + 0.27575381401822424, + 0.7647766019001522, + 0.2725738454485389, + 0.21863029955530786, + 0.21863032832257323, + 0.3011280543457062, + 0.23560786523195643, + 0.5769721187181905, + 0.514747412346662, + 0.2786318125997387, + 0.40146744515282495, + 0.6659085938841998, + 0.24457822094737378, + 0.7086875504668667, + 0.2367498627927979, + 0.10124660026536195, + 0.7647766019001522, + 0.2749020946925899, + 0.2749020946925899 + ] + }, + { + "label": "algorithm_name", + "range": [ + 0, + 5 + ], + "ticktext": [ + "RandomForestRegressor", + "SVR", + "PLSRegression", + "Ridge", + "Lasso", + "ChemPropRegressor" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "values": [ + 0, + 0, + 1, + 2, + 2, + 3, + 4, + 4, + 0, + 4, + 1, + 1, + 2, + 2, + 3, + 0, + 4, + 3, + 0, + 4, + 2, + 1, + 4, + 0, + 5, + 5 + ] + }, + { + "label": "descriptor", + "range": [ + 0, + 3 + ], + "ticktext": [ + "{\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}", + "{\"name\": \"ECFP_counts\", \"parameters\": {\"radius\": 3, \"useFeatures\": true, \"nBits\": 2048}}", + "{\"name\": \"MACCS_keys\", \"parameters\": {}}", + "{\"name\": \"SmilesFromFile\", \"parameters\": {}}" + ], + "tickvals": [ + 0, + 1, + 2, + 3 + ], + "values": [ + 0, + 0, + 1, + 2, + 0, + 1, + 2, + 1, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 2, + 1, + 2, + 0, + 1, + 0, + 3, + 3 + ] + } + ], + "labelangle": 30, + "labelside": "bottom", + "line": { + "color": [ + 0.9876203329634794, + 0.9875061220991906, + 0.21863029956806662, + 0.7861693342190089, + 0.2789424384877304, + 0.5741725628917808, + 0.2786318125997387, + 0.27575381401822424, + 0.7647766019001522, + 0.2725738454485389, + 0.21863029955530786, + 0.21863032832257323, + 0.3011280543457062, + 0.23560786523195643, + 0.5769721187181905, + 0.514747412346662, + 0.2786318125997387, + 0.40146744515282495, + 0.6659085938841998, + 0.24457822094737378, + 0.7086875504668667, + 0.2367498627927979, + 0.10124660026536195, + 0.7647766019001522, + 0.2749020946925899, + 0.2749020946925899 + ], + "colorbar": { + "title": { + "text": "Objective Value" + } + }, + "colorscale": [ + [ + 0, + "rgb(247,251,255)" + ], + [ + 0.125, + "rgb(222,235,247)" + ], + [ + 0.25, + "rgb(198,219,239)" + ], + [ + 0.375, + "rgb(158,202,225)" + ], + [ + 0.5, + "rgb(107,174,214)" + ], + [ + 0.625, + "rgb(66,146,198)" + ], + [ + 0.75, + "rgb(33,113,181)" + ], + [ + 0.875, + "rgb(8,81,156)" + ], + [ + 1, + "rgb(8,48,107)" + ] + ], + "reversescale": true, + "showscale": true + }, + "type": "parcoords" + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Parallel Coordinate Plot" + } + } + }, + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from optuna.visualization import plot_parallel_coordinate\n", + "\n", + "plot_parallel_coordinate(study,\n", + " params=[\"algorithm_name\", \"descriptor\"],\n", + " target=lambda t: t.values[1]) # Second standard deviation value taken" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Precomputed descriptors from a file example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Precomputed descriptors can be supplied to models using the \"PrecomputedDescriptorFromFile\" descriptor, and supplying the `input_column` and `response_column` like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(512,)" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from optunaz.descriptors import PrecomputedDescriptorFromFile\n", + "\n", + "descriptor=PrecomputedDescriptorFromFile.new(\n", + " file=\"../tests/data/precomputed_descriptor/train_with_fp.csv\",\n", + " input_column=\"canonical\", # Name of the identifier for the compound\n", + " response_column=\"fp\") # Name of the column with the pretrained (comma separated) descriptors\n", + "\n", + "descriptor.calculate_from_smi(\"Cc1cc(NC(=O)c2cccc(COc3ccc(Br)cc3)c2)no1\").shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this toy example there are 512 precomputed bit descriptor vectors, and a model can be trained with precomputed descriptors from a file (in a composite descriptor with ECFP), like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[I 2024-07-02 14:38:07,785] A new study created in memory with name: precomputed_example\n", + "[I 2024-07-02 14:38:07,788] A new study created in memory with name: study_name_0\n", + "[I 2024-07-02 14:38:07,919] Trial 0 finished with value: -3014.274803630188 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.011994365911634164, 'descriptor': '{\"parameters\": {\"descriptors\": [{\"name\": \"PrecomputedDescriptorFromFile\", \"parameters\": {\"file\": \"../tests/data/precomputed_descriptor/train_with_fp.csv\", \"input_column\": \"canonical\", \"response_column\": \"fp\"}}, {\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}]}, \"name\": \"CompositeDescriptor\"}'}. Best is trial 0 with value: -3014.274803630188.\n", + "[I 2024-07-02 14:38:08,439] Trial 1 finished with value: -3014.471088599086 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 0.03592375122963953, 'descriptor': '{\"parameters\": {\"descriptors\": [{\"name\": \"PrecomputedDescriptorFromFile\", \"parameters\": {\"file\": \"../tests/data/precomputed_descriptor/train_with_fp.csv\", \"input_column\": \"canonical\", \"response_column\": \"fp\"}}, {\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}]}, \"name\": \"CompositeDescriptor\"}'}. Best is trial 0 with value: -3014.274803630188.\n", + "[I 2024-07-02 14:38:10,511] Trial 2 finished with value: -3029.113810544919 and parameters: {'algorithm_name': 'Ridge', 'Ridge_algorithm_hash': 'cfa1990d5153c8812982f034d788d7ee', 'alpha__cfa1990d5153c8812982f034d788d7ee': 1.8153295905650357, 'descriptor': '{\"parameters\": {\"descriptors\": [{\"name\": \"PrecomputedDescriptorFromFile\", \"parameters\": {\"file\": \"../tests/data/precomputed_descriptor/train_with_fp.csv\", \"input_column\": \"canonical\", \"response_column\": \"fp\"}}, {\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}]}, \"name\": \"CompositeDescriptor\"}'}. Best is trial 0 with value: -3014.274803630188.\n", + "[I 2024-07-02 14:38:12,177] Trial 3 finished with value: -4358.575772003129 and parameters: {'algorithm_name': 'RandomForestRegressor', 'RandomForestRegressor_algorithm_hash': 'f1ac01e1bba332215ccbd0c29c9ac3c3', 'max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3': 14, 'n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3': 10, 'max_features__f1ac01e1bba332215ccbd0c29c9ac3c3': , 'descriptor': '{\"parameters\": {\"descriptors\": [{\"name\": \"PrecomputedDescriptorFromFile\", \"parameters\": {\"file\": \"../tests/data/precomputed_descriptor/train_with_fp.csv\", \"input_column\": \"canonical\", \"response_column\": \"fp\"}}, {\"name\": \"ECFP\", \"parameters\": {\"radius\": 3, \"nBits\": 2048, \"returnRdkit\": false}}]}, \"name\": \"CompositeDescriptor\"}'}. Best is trial 0 with value: -3014.274803630188.\n" + ] + } + ], + "source": [ + "from optunaz.descriptors import PrecomputedDescriptorFromFile\n", + "\n", + "precomputed_config = OptimizationConfig(\n", + " data=Dataset(\n", + " input_column=\"canonical\",\n", + " response_column=\"molwt\",\n", + " response_type=\"regression\",\n", + " training_dataset_file=\"../tests/data/precomputed_descriptor/train_with_fp.csv\",\n", + " split_strategy=Stratified(fraction=0.2),\n", + " ),\n", + " descriptors=[\n", + " CompositeDescriptor.new(\n", + " descriptors=[\n", + " PrecomputedDescriptorFromFile.new(file=\"../tests/data/precomputed_descriptor/train_with_fp.csv\",\n", + " input_column=\"canonical\", response_column=\"fp\"),\n", + " ECFP.new()])\n", + " ],\n", + " algorithms=[\n", + " RandomForestRegressor.new(n_estimators={\"low\": 5, \"high\": 10}),\n", + " Ridge.new(),\n", + " Lasso.new(),\n", + " PLSRegression.new(),\n", + " ],\n", + " settings=OptimizationConfig.Settings(\n", + " mode=ModelMode.REGRESSION,\n", + " cross_validation=2,\n", + " n_trials=4,\n", + " n_startup_trials=0,\n", + " direction=OptimizationDirection.MAXIMIZATION,\n", + " track_to_mlflow=False,\n", + " random_seed=42,\n", + " ),\n", + ") \n", + "\n", + "precomputed_study = optimize(precomputed_config, study_name=\"precomputed_example\")\n", + "build_best(buildconfig_best(precomputed_study), \"../target/precomputed_model.pkl\")\n", + "with open(\"../target/precomputed_model.pkl\", \"rb\") as f:\n", + " precomputed_model = pickle.load(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "N.B: The `qsartuna-predict` CLI command for QSARtuna contains the options `--input-precomputed-file`, `input-precomputed-input-column` and `--input-precomputed-response-column` for generating predictions at inference time. However this is not available within python notebooks and calling predict on a new set of unseen molecules will cause \"Could not find descriptor errors\" like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Could not find descriptor for CCC in file ../tests/data/precomputed_descriptor/train_with_fp.csv.\n", + "Could not find descriptor for CC(=O)Nc1ccc(O)cc1 in file ../tests/data/precomputed_descriptor/train_with_fp.csv.\n" + ] + }, + { + "data": { + "text/plain": [ + "array([nan, nan])" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_molecules = [\"CCC\", \"CC(=O)Nc1ccc(O)cc1\"]\n", + "\n", + "precomputed_model.predict_from_smiles(new_molecules)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A new file with precomputed desciptors from a file should be provided like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([292.65709987, 302.64327077])" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import tempfile # For this example we use a temp file to store a temporary inference dataset\n", + "\n", + "# extract precomputed descriptor (i.e the 1st descriptor in the composite descriptor for this example)\n", + "precomputed_descriptor = precomputed_model.descriptor.parameters.descriptors[0]\n", + "\n", + "# example fp with 0's for illustration purposes\n", + "example_fp = str([0] * 512)[1:-1]\n", + "\n", + "with tempfile.NamedTemporaryFile() as temp_file:\n", + " # write the query data to a new file\n", + " X = pd.DataFrame(\n", + " data={\"canonical\": new_molecules,\n", + " \"fp\": [example_fp for i in range(len(new_molecules))]})\n", + " X.to_csv(temp_file.name)\n", + " \n", + " # set precomputed descriptor to the new file\n", + " precomputed_descriptor.parameters.file=temp_file.name\n", + " preds = precomputed_model.predict_from_smiles([\"CCC\", \"CC(=O)Nc1ccc(O)cc1\"])\n", + "\n", + "preds" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/sphinx-builddir/html/searchindex.js b/docs/sphinx-builddir/html/searchindex.js index 70900df..7354c41 100644 --- a/docs/sphinx-builddir/html/searchindex.js +++ b/docs/sphinx-builddir/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "algorithms", "deduplicator", "descriptors", "index", "modules", "notebooks/QSARtuna_Tutorial", "notebooks/preprocess_data", "optunaz", "optunaz.config", "optunaz.utils", "optunaz.utils.enums", "optunaz.utils.preprocessing", "splitters", "transform"], "filenames": ["README.md", "algorithms.rst", "deduplicator.rst", "descriptors.rst", "index.rst", "modules.rst", "notebooks/QSARtuna_Tutorial.ipynb", "notebooks/preprocess_data.ipynb", "optunaz.rst", "optunaz.config.rst", "optunaz.utils.rst", "optunaz.utils.enums.rst", "optunaz.utils.preprocessing.rst", "splitters.rst", "transform.rst"], "titles": ["QSARtuna \ud80c\udd9b: QSAR using Optimization for Hyperparameter Tuning (formerly Optuna AZ and QPTUNA)", "Available algorithms", "Available deduplicators", "Available descriptors", "Welcome to QSARtuna Documentation!", "optunaz", "QSARtuna CLI Tutorial", "Preprocessing data for QSARtuna", "optunaz package", "optunaz.config package", "optunaz.utils package", "optunaz.utils.enums package", "optunaz.utils.preprocessing package", "Available splitters", "Available transform"], "terms": {"build": [0, 4, 8, 9, 10, 11], "predict": [0, 1, 3, 5, 6, 7, 9, 10, 11], "compchem": 0, "develop": [0, 3, 8], "uncertainti": [0, 1, 4, 7, 8, 9, 12, 14], "quantif": 0, "explain": [0, 1, 4, 5, 9], "mind": 0, "thi": [0, 1, 3, 4, 7, 8, 9, 10, 11, 12, 13], "librari": [0, 7], "search": [0, 1, 3, 8, 9], "best": [0, 1, 8, 9], "ml": [0, 4, 9], "algorithm": [0, 3, 4, 7, 8, 9, 10, 11, 12, 13], "molecular": [0, 1, 3, 4, 6, 7, 8, 9], "descriptor": [0, 4, 5, 9, 11], "given": [0, 1, 3, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 8, 9, 11, 12, 13, 14], "itself": [0, 6], "done": [0, 6], "emploi": [0, 3, 6, 7, 8], "latest": [0, 9], "state": [0, 6, 12], "art": [0, 6], "estim": [0, 1, 3, 4, 7, 8, 9, 11], "packag": [0, 1, 3, 5, 6, 7], "further": [0, 9], "document": [0, 6, 7], "github": [0, 6, 8, 12], "page": 0, "here": [0, 3, 6, 7, 8, 9, 12, 13], "structur": [0, 1, 3, 6, 7, 8, 9], "around": [0, 6, 7], "train": [0, 1, 3, 4, 7, 8, 9, 11, 12, 13], "mani": [0, 1, 6, 9], "differ": [0, 1, 3, 6, 8, 9, 12], "paramet": [0, 1, 3, 6, 7, 8, 9, 11, 12, 13, 14], "onli": [0, 1, 3, 7, 8, 9, 12, 13], "dataset": [0, 1, 7, 8, 9, 11, 12], "usual": [0, 1, 6, 7, 9], "cross": [0, 1, 6, 9, 12], "valid": [0, 1, 3, 7, 8, 9, 11, 12], "pick": 0, "evalu": [0, 4, 5, 6], "its": [0, 1, 6, 9, 11], "perform": [0, 3, 8, 11, 12, 14], "test": [0, 1, 4, 7, 8, 9, 11, 12, 13], "prod": [0, 6], "re": [0, 6, 8], "merg": [0, 7, 8, 12], "ha": [0, 1, 6, 7, 8, 9, 12], "drawback": [0, 6], "left": [0, 6, 7], "result": [0, 1, 3, 6, 7, 8, 9], "big": [0, 6], "benefit": [0, 6], "final": [0, 1, 6, 9], "all": [0, 1, 3, 6, 7, 8, 9, 11, 12], "avail": [0, 4, 6, 7, 8], "let": [0, 6, 7], "s": [0, 6, 7], "look": [0, 1, 6, 7, 9], "trivial": 0, "exampl": [0, 3, 7, 8, 9], "weight": [0, 1, 3, 6, 8, 9, 11], "set": [0, 3, 4, 7, 8, 9, 10, 11, 12, 13], "50": [0, 1, 3, 6, 8, 9], "molecul": [0, 1, 3, 6, 7, 8, 9], "we": [0, 3, 6, 7, 8, 9, 12, 13], "start": [0, 4, 6, 7], "format": [0, 3, 6, 7, 8, 10], "It": [0, 1, 3, 6, 7, 8, 9], "contain": [0, 3, 6, 8], "four": 0, "main": [0, 3, 6, 7, 8], "section": [0, 6, 7], "locat": [0, 6], "column": [0, 3, 7, 8, 11, 12, 13, 14], "detail": [0, 3, 6, 7, 8, 9, 10], "about": [0, 6, 7], "which": [0, 1, 3, 6, 7, 8, 9, 12], "below": [0, 3, 6, 7, 8], "task": [0, 3, 7, 8, 9, 11], "training_dataset_fil": [0, 6, 7, 8], "drd2": [0, 6], "subset": [0, 1, 6, 7, 9], "csv": [0, 3, 4, 6, 8], "input_column": [0, 3, 6, 7, 8, 11], "canon": [0, 6, 8, 12], "response_column": [0, 3, 6, 7, 8, 11], "molwt": [0, 6], "mode": [0, 6, 8, 9, 11], "regress": [0, 1, 7, 9, 11, 12], "cross_valid": [0, 6, 9, 11, 12], "5": [0, 1, 3, 6, 7, 8, 9, 12], "direct": [0, 1, 6, 9, 11], "maxim": [0, 1, 6, 9], "n_trial": [0, 6, 8, 9, 11], "100": [0, 1, 3, 6, 7, 8, 9, 10], "n_startup_tri": [0, 6, 8, 9], "30": [0, 1, 6, 7, 9], "name": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "ecfp": [0, 4, 6, 8, 9, 11], "radiu": [0, 3, 6, 8, 11], "3": [0, 1, 3, 4, 6, 7, 8, 9], "nbit": [0, 3, 6, 8, 9, 11], "2048": [0, 3, 6, 8], "maccs_kei": [0, 4, 6, 8, 11], "randomforestregressor": [0, 4, 6, 9, 11], "max_depth": [0, 1, 9, 11], "low": [0, 1, 3, 6, 7, 8, 9, 11], "2": [0, 1, 3, 6, 7, 8, 9, 12, 13], "high": [0, 1, 3, 6, 8, 9, 11], "32": [0, 1, 6, 9], "n_estim": [0, 1, 6, 9, 11], "10": [0, 1, 3, 6, 7, 8, 9, 12], "250": [0, 1, 6, 9], "max_featur": [0, 1, 9, 11], "auto": [0, 1, 6, 8, 9], "ridg": [0, 4, 6, 9, 11], "alpha": [0, 1, 6, 7, 8, 9, 11], "0": [0, 1, 3, 4, 6, 7, 8, 9, 12, 13], "lasso": [0, 4, 6, 9, 11], "xgbregressor": [0, 4, 6, 9, 11], "learning_r": [0, 1, 9, 11], "1": [0, 1, 3, 4, 6, 7, 8, 9, 10, 12, 13], "specifi": [0, 1, 6, 7, 8, 9, 11], "In": [0, 1, 3, 6, 7, 8, 9], "rel": [0, 6], "path": [0, 1, 3, 6, 7, 8, 9, 10], "folder": [0, 6, 7], "ar": [0, 1, 3, 6, 7, 8, 9, 11, 12, 13], "want": [0, 6, 7], "fold": [0, 1, 6, 7, 9, 12, 13], "valu": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "object": [0, 1, 5, 7, 9, 10, 11, 12], "function": [0, 1, 3, 4, 7, 8, 9, 10, 11, 12, 14], "standard": [0, 1, 7, 9, 12, 14], "scikit": [0, 6, 8, 12, 13], "learn": [0, 1, 3, 7, 8, 9, 12, 13], "have": [0, 3, 6, 7, 8, 9, 12], "total": [0, 6, 7], "trial": [0, 1, 9, 10, 11], "first": [0, 1, 3, 6, 7, 8, 9, 12], "startup": [0, 6], "should": [0, 1, 3, 6, 7, 8, 9, 12], "random": [0, 1, 4, 9, 12], "explor": [0, 6], "get": [0, 6, 7, 8], "stuck": 0, "earli": [0, 1, 6, 8, 9], "one": [0, 3, 7, 8, 9, 12, 13], "local": [0, 6], "minimum": [0, 1, 3, 8, 9, 12, 13], "two": [0, 1, 6, 7, 9, 12, 13], "free": [0, 3, 8], "pair": [0, 6], "ani": [0, 3, 6, 7, 8, 9, 12], "when": [0, 1, 6, 7, 8, 9, 12, 13], "our": [0, 6, 7], "time": [0, 1, 3, 7, 8, 9], "can": [0, 1, 3, 6, 7, 8, 9, 12, 13], "deploi": 0, "singular": [0, 6], "To": [0, 6, 7], "insid": [0, 8], "follow": [0, 3, 6, 7, 8, 9], "syntax": 0, "exec": 0, "sif": 0, "project": [0, 1, 9], "cc": [0, 6, 7], "mai": [0, 1, 3, 6, 7, 8, 9], "qsartuna_latest": 0, "opt": 0, "venv": [0, 6], "bin": [0, 6, 7, 12, 13], "config": [0, 1, 5, 6, 8], "regression_drd2_50": 0, "buildconfig": [0, 5, 6, 8, 10], "outpath": 0, "target": [0, 1, 6, 7, 9, 12, 14], "pkl": [0, 1, 6, 9], "sinc": [0, 3, 6, 7, 8, 12], "long": [0, 7], "avoid": [0, 6, 12], "login": 0, "node": 0, "queue": 0, "instead": [0, 1, 3, 6, 7, 8, 9, 12], "script": 0, "give": [0, 6], "sbatch": 0, "sh": 0, "ntask": 0, "cpu": 0, "per": [0, 1, 7, 9], "mem": 0, "4g": 0, "partit": 0, "core": [0, 7, 9], "illustr": [0, 6, 7], "how": [0, 1, 3, 6, 7, 8, 9], "chose": 0, "chang": [0, 6], "directori": [0, 6, 10], "cd": 0, "project_fold": 0, "optunaaz": 0, "version": [0, 7, 9], "optunaaz_latest": 0, "complet": [0, 3, 6, 8], "creat": [0, 7, 10], "pickl": [0, 6], "your": [0, 6, 7], "home": 0, "under": [0, 6], "built": [0, 3, 7, 8, 9], "infer": [0, 6, 7, 8], "input": [0, 1, 3, 4, 6, 8, 9, 12, 13, 14], "smile": [0, 3, 6, 7, 8, 10, 11, 12, 13], "output": [0, 1, 6, 7, 8, 9, 12, 14], "note": [0, 1, 3, 7, 8, 9, 11, 12, 13], "_": [0, 6], "point": [0, 1, 7, 9, 12, 13], "most": [0, 6, 7], "recent": [0, 6], "legaci": 0, "requir": [0, 3, 6, 7, 8], "same": [0, 1, 6, 7, 9], "modifi": [0, 8], "abov": [0, 6, 7], "suppli": [0, 1, 3, 6, 7, 8, 9], "qsartuna_": 0, "replac": [0, 6, 10], "e": [0, 1, 3, 7, 8, 9, 12, 14], "g": [0, 3, 7, 8, 12, 14], "qsartuna_2": 0, "1_model": 0, "would": [0, 3, 6, 7, 8], "gener": [0, 1, 3, 6, 7, 8, 9, 12, 13], "tri": 0, "dure": [0, 1, 3, 6, 7, 8, 9], "mlflow": [0, 5, 8, 11], "track": [0, 3, 5, 8, 9], "ui": 0, "modul": [0, 5, 6], "load": [0, 1, 6, 7, 9], "Then": 0, "open": [0, 1, 6, 9], "link": 0, "browser": 0, "If": [0, 1, 3, 6, 8, 9, 12, 13], "you": [0, 1, 6, 7, 9], "scp": 0, "forward": [0, 1, 9], "port": 0, "separ": [0, 3, 7, 8], "ssh": 0, "session": 0, "non": [0, 1, 3, 6, 7, 8, 9], "machin": [0, 1, 3, 6, 7, 8, 9], "n": [0, 1, 6, 7, 9, 10], "l": 0, "localhost": 0, "5000": 0, "user": [0, 1, 3, 4, 6, 8, 9, 11, 12, 13, 14], "intranet": 0, "net": 0, "just": [0, 6], "execut": 0, "select": [0, 1, 3, 6, 7, 8, 9], "experi": [0, 7, 10], "after": [0, 1, 3, 6, 7, 8, 9, 10], "choos": [0, 4], "compar": [0, 6], "comparison": [0, 6, 7], "show": [0, 6, 7], "call": [0, 1, 3, 6, 8, 9, 12], "well": [0, 6, 7], "metric": [0, 1, 6, 8, 9, 11], "At": 0, "bottom": 0, "plot": [0, 6, 7, 9, 11], "For": [0, 1, 3, 6, 7, 8, 9, 12], "x": [0, 1, 3, 6, 7, 8, 9, 12, 13], "axi": [0, 6, 7], "number": [0, 1, 3, 6, 7, 8, 9, 10], "y": [0, 1, 7, 8, 9, 12, 13], "cvmean": 0, "r2": [0, 6, 7, 9], "more": [0, 1, 3, 7, 8, 9, 10], "click": 0, "individu": [0, 1, 6, 7, 9], "There": [0, 1, 6, 7, 9], "access": [0, 3, 8], "conda": 0, "environ": [0, 3, 6, 8], "instal": [0, 6], "purg": 0, "miniconda3": 0, "my_env_with_qsartuna": 0, "pip": [0, 6], "activ": [0, 1, 6, 7, 9, 11, 12, 14], "case": [0, 1, 6, 7, 8, 9], "check": [0, 6, 8, 11, 12], "m": [0, 6, 8], "http": [0, 3, 6, 7, 8, 9, 12], "com": [0, 6, 7, 8, 12], "molecularai": [0, 6], "14742594": 0, "tar": [0, 6], "gz": [0, 6], "three_step_opt_build_merg": [0, 5, 6], "import": [0, 6], "buildconfig_best": [0, 6, 8], "build_best": [0, 6, 8], "build_merg": [0, 6, 8], "modelmod": [0, 6, 8, 9], "optimizationdirect": [0, 6, 9], "optconfig": [0, 1, 5, 6, 8, 10, 11], "optimizationconfig": [0, 6, 8, 9], "svr": [0, 4, 6, 9, 11], "randomforest": 0, "pl": [0, 1, 9], "dataread": [0, 5, 6], "ecfp_count": [0, 4, 6, 8, 11], "prepar": [0, 4, 7], "new": [0, 1, 6, 7, 9], "studi": [0, 3, 6, 8, 9, 10, 11], "study_nam": [0, 6, 8], "my_studi": [0, 6], "make": [0, 1, 6, 7, 9, 12, 13, 14], "write": [0, 6], "out": [0, 1, 6, 7, 9], "print": [0, 6, 7], "dump": [0, 6], "indent": [0, 6], "save": [0, 6], "class": [1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "optunaz": [1, 3, 6, 7, 13, 14], "sourc": [1, 3, 8, 9, 10, 11, 12, 13, 14], "adaboost": [1, 9], "classifi": [1, 6, 8, 9, 11], "an": [1, 3, 6, 7, 8, 9, 10, 12, 13], "meta": [1, 6, 9], "begin": [1, 6, 7, 9, 12, 13], "fit": [1, 3, 6, 7, 8, 9], "origin": [1, 3, 6, 7, 8, 9, 12], "addit": [1, 6, 9], "copi": [1, 7, 9, 10], "where": [1, 6, 7, 9], "incorrectli": [1, 9], "instanc": [1, 6, 7, 9], "adjust": [1, 9], "subsequ": [1, 9], "focu": [1, 9], "difficult": [1, 6, 9], "adaboostclassifierparametersnestim": [1, 9], "adaboostclassifierparameterslearningr": [1, 9], "The": [1, 3, 7, 8, 9, 10, 12, 14], "maximum": [1, 3, 6, 7, 8, 9, 12, 13], "boost": [1, 3, 8, 9], "termin": [1, 9], "perfect": [1, 9], "procedur": [1, 3, 7, 8, 9], "stop": [1, 6, 9], "titl": [1, 3, 6, 7, 8, 9, 10, 12, 13, 14], "appli": [1, 3, 6, 7, 8, 9, 12, 13, 14], "each": [1, 3, 6, 7, 8, 9, 12], "classifierat": [1, 9], "iter": [1, 6, 9, 12, 13], "A": [1, 3, 7, 8, 9], "higher": [1, 6, 9], "rateincreas": [1, 9], "contribut": [1, 3, 6, 8, 9], "trade": [1, 9], "off": [1, 6, 7, 9, 12, 13], "between": [1, 6, 7, 9], "learning_rateand": [1, 9], "int": [1, 3, 8, 9, 12, 13], "float": [1, 6, 7, 9, 10, 12, 13, 14], "linear": [1, 7, 9], "model": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14], "l1": [1, 9], "prior": [1, 7, 9], "regular": [1, 6, 9], "spars": [1, 9], "coeffici": [1, 9], "tend": [1, 9], "prefer": [1, 9], "solut": [1, 6, 9], "fewer": [1, 9], "zero": [1, 3, 8, 9], "effect": [1, 6, 7, 9, 12], "reduc": [1, 6, 9], "featur": [1, 3, 6, 8, 9], "upon": [1, 6, 9], "depend": [1, 6, 7, 9], "lassoparametersalpha": [1, 9], "constant": [1, 9], "multipli": [1, 9], "term": [1, 6, 9], "control": [1, 6, 7, 9, 12], "strength": [1, 3, 8, 9], "must": [1, 6, 9], "neg": [1, 6, 7, 9], "i": [1, 3, 6, 7, 8, 9], "inf": [1, 6, 8, 9], "equival": [1, 9], "ordinari": [1, 9], "least": [1, 6, 9], "squar": [1, 6, 9], "solv": [1, 6, 9], "linearregress": [1, 9], "numer": [1, 7, 9], "reason": [1, 7, 9], "us": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14], "advis": [1, 6, 7, 9], "implement": [1, 3, 6, 8, 9, 12], "k": [1, 6, 7, 9, 12, 13], "nearest": [1, 6, 9], "neighbor": [1, 6, 9, 12, 13], "vote": [1, 9], "principl": [1, 9], "behind": [1, 9], "method": [1, 3, 7, 8, 9, 11, 12], "find": [1, 6, 9], "predefin": [1, 4, 9, 12, 14], "sampl": [1, 6, 9, 12, 13], "closest": [1, 9], "distanc": [1, 6, 9], "label": [1, 6, 7, 8, 9, 12, 13], "from": [1, 3, 4, 8, 9, 10, 12, 13, 14], "defin": [1, 3, 6, 7, 8, 9, 10, 12], "despit": [1, 6, 9], "simplic": [1, 9], "success": [1, 6, 9], "larg": [1, 7, 9], "classif": [1, 4, 7, 8, 9, 11, 12], "problem": [1, 6, 7, 8, 9], "n_neighbor": [1, 9, 11], "kneighborsclassifierparametersn_neighbor": [1, 9], "default": [1, 7, 8, 9, 12, 13], "kneighbor": [1, 9], "queri": [1, 6, 7, 9], "list": [1, 3, 4, 6, 7, 8, 9, 12, 14], "comput": [1, 3, 7, 8, 9, 12], "minkowski": [1, 6, 9], "euclidean": [1, 9], "regressor": [1, 6, 8, 9, 11], "kneighborsregressorparametersn_neighbor": [1, 9], "logist": [1, 9], "rather": [1, 3, 6, 7, 8, 9], "than": [1, 3, 6, 7, 8, 9], "also": [1, 3, 6, 7, 8, 9, 12], "known": [1, 3, 6, 7, 8, 9], "literatur": [1, 9], "logit": [1, 9], "entropi": [1, 7, 9], "maxent": [1, 9], "log": [1, 4, 9, 10, 11, 12, 14], "probabl": [1, 4, 7, 9], "describ": [1, 3, 6, 8, 9, 12], "possibl": [1, 6, 7, 9, 12, 13], "outcom": [1, 9], "singl": [1, 6, 9], "solver": [1, 9, 11], "c": [1, 3, 6, 7, 8, 9, 11], "logisticregressionparametersparameterc": [1, 9], "try": [1, 6, 7, 9], "sag": [1, 9], "saga": [1, 9], "fast": [1, 6, 9], "converg": [1, 6, 9], "guarante": [1, 9], "approxim": [1, 6, 9], "scale": [1, 3, 7, 8, 9, 12, 14], "preprocess": [1, 4, 8, 9, 10, 13, 14], "scaler": [1, 3, 8, 9], "invers": [1, 9], "posit": [1, 3, 6, 8, 9], "like": [1, 3, 6, 7, 8, 9], "support": [1, 6, 8, 9], "vector": [1, 3, 6, 8, 9, 12, 14], "smaller": [1, 6, 9], "stronger": [1, 9], "decomposit": [1, 9], "partial": [1, 6, 9], "form": [1, 3, 6, 7, 8, 9, 12], "compon": [1, 3, 6, 8, 9], "fundament": [1, 9], "relat": [1, 3, 6, 7, 8, 9], "matric": [1, 9], "thei": [1, 3, 6, 7, 8, 9], "latent": [1, 9], "variabl": [1, 6, 7, 9], "approach": [1, 3, 6, 7, 8, 9], "covari": [1, 4, 8, 9], "space": [1, 7, 9, 12, 13], "multidimension": [1, 9], "varianc": [1, 6, 7, 9], "other": [1, 6, 7, 9, 12], "word": [1, 6, 9], "both": [1, 6, 7, 9], "lower": [1, 6, 9], "dimension": [1, 9], "subspac": [1, 6, 8, 9], "transform": [1, 4, 8, 9, 10], "n_compon": [1, 9, 11], "ncompon": [1, 9], "keep": [1, 6, 7, 9, 12], "min": [1, 6, 7, 9, 12], "n_sampl": [1, 9], "n_featur": [1, 9], "n_target": [1, 9], "forest": [1, 4, 7, 9], "decis": [1, 6, 7, 9, 12, 14], "tree": [1, 6, 9], "variou": [1, 6, 8, 9], "sub": [1, 6, 9], "averag": [1, 3, 6, 7, 8, 9, 12], "improv": [1, 3, 6, 8, 9], "accuraci": [1, 6, 9], "over": [1, 6, 9], "randomforestclassifierparametersmaxdepth": [1, 9], "randomforestclassifierparametersnestim": [1, 6, 9], "depth": [1, 6, 9, 11], "considerwhen": [1, 9], "split": [1, 4, 8, 9, 12, 13, 14], "thenconsid": [1, 9], "sqrt": [1, 6, 7, 9], "log2": [1, 7, 9, 12, 14], "randomforestregressorparametersmaxdepth": [1, 9], "randomforestregressorparametersnestim": [1, 9], "l2": [1, 9], "loss": [1, 3, 6, 8, 9], "norm": [1, 7, 9], "tikhonov": [1, 9], "base": [1, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14], "libsvm": [1, 9], "quadrat": [1, 9], "impract": [1, 9], "beyond": [1, 9], "ten": [1, 9], "thousand": [1, 9], "svcparametersparameterc": [1, 9], "1e": [1, 9], "gamma": [1, 9, 11], "0001": [1, 9], "proport": [1, 6, 9], "strictli": [1, 9], "penalti": [1, 9], "kernel": [1, 9], "epsilon": [1, 9], "complex": [1, 6, 9], "hard": [1, 3, 8, 9], "coupl": [1, 9], "10000": [1, 9], "svrparametersparameterc": [1, 9], "svrparametersgamma": [1, 9], "maxdepth": [1, 9], "nestim": [1, 9], "learningr": [1, 9], "xgboost": [1, 9, 11], "gradient": [1, 9], "stand": [1, 9], "extrem": [1, 6, 9], "paper": [1, 3, 6, 8, 9], "greedi": [1, 9], "friedman": [1, 9], "learner": [1, 9], "round": [1, 6, 7, 9], "prf": [1, 4, 7, 9], "probabilist": [1, 4, 9], "seen": [1, 6, 7, 9], "hybrid": [1, 6, 9], "similar": [1, 3, 6, 7, 8, 9, 12, 13], "take": [1, 3, 6, 7, 8, 9, 12], "real": [1, 6, 7, 9, 12, 13], "threshold": [1, 3, 4, 6, 8, 9, 12, 13, 14], "represent": [1, 3, 4, 8, 9], "ptr": [1, 4, 6, 9, 12], "howev": [1, 3, 6, 7, 8, 9], "belong": [1, 3, 6, 7, 8, 9], "inact": [1, 6, 7, 9, 12, 14], "use_py_gini": [1, 9, 11], "use_py_leaf": [1, 9, 11], "prfclassifierparametersmaxdepth": [1, 9], "prfclassifierparametersnestim": [1, 9], "min_py_sum_leaf": [1, 9, 11], "prfclassifierparametersminpysumleaf": [1, 9], "gini": [1, 9], "true": [1, 3, 6, 7, 8, 9, 12, 13], "py": [1, 6, 7, 9], "leav": [1, 9], "leaf": [1, 9], "allow": [1, 3, 6, 7, 8, 9], "prune": [1, 6, 9], "propag": [1, 9], "small": [1, 7, 9], "thu": [1, 6, 9], "pth": [1, 9], "scheme": [1, 9], "public": [1, 3, 4, 6, 8, 9], "noisi": [1, 9], "chemprop": [1, 3, 4, 8, 9], "deep": [1, 6, 9], "properti": [1, 3, 6, 7, 8, 9, 10], "network": [1, 3, 6, 8, 9], "messag": [1, 6, 9], "pass": [1, 3, 6, 7, 8, 9, 12], "neural": [1, 6, 8, 9], "d": [1, 3, 6, 8, 9], "mpnn": [1, 9], "encod": [1, 9], "graph": [1, 3, 6, 8, 9], "feed": [1, 9], "ffnn": [1, 9], "multi": [1, 3, 8, 9], "layer": [1, 3, 6, 8, 9], "perceptron": [1, 9], "wa": [1, 3, 6, 7, 8, 9], "present": [1, 6, 7, 9], "analyz": [1, 6, 9], "optuna": [1, 4, 6, 8, 9, 10, 11], "optims": [1, 9], "hyperopt": [1, 9], "ensemble_s": [1, 6, 9, 11], "epoch": [1, 6, 9, 11], "aggreg": [1, 6, 7, 9, 11, 12, 13], "aggregation_norm": [1, 6, 9, 11], "chempropparametersaggregation_norm": [1, 9], "200": [1, 6, 9], "q": [1, 3, 6, 8, 9, 11], "batch_siz": [1, 6, 9, 11], "chempropparametersbatch_s": [1, 9], "chempropparametersdepth": [1, 9], "6": [1, 6, 7, 9], "dropout": [1, 9, 11], "chempropparametersdropout": [1, 9], "4": [1, 3, 6, 7, 8, 9, 12, 13], "04": [1, 6, 9], "features_gener": [1, 6, 9, 11], "ffn_hidden_s": [1, 6, 9, 11], "chempropparametersffn_hidden_s": [1, 9], "300": [1, 6, 9], "2400": [1, 9], "ffn_num_lay": [1, 6, 9, 11], "chempropparametersffn_num_lay": [1, 9], "final_lr_ratio_exp": [1, 6, 9, 11], "chempropparametersfinal_lr_ratio_exp": [1, 9], "hidden_s": [1, 6, 9, 11], "chempropparametershidden_s": [1, 9], "init_lr_ratio_exp": [1, 6, 9, 11], "chempropparametersinit_lr_ratio_exp": [1, 9], "max_lr_exp": [1, 6, 9, 11], "chempropparametersmax_lr_exp": [1, 9], "warmup_epochs_ratio": [1, 6, 9, 11], "chempropparameterswarmup_epochs_ratio": [1, 9], "ensembl": [1, 9, 11], "initialis": [1, 6, 9], "provid": [1, 3, 6, 7, 8, 9, 12], "size": [1, 3, 6, 7, 8, 9], "run": [1, 3, 4, 7, 8, 9, 10], "increas": [1, 6, 7, 9, 12, 13], "400": [1, 9], "sum": [1, 6, 9], "atom": [1, 3, 6, 8, 9, 12, 13], "divid": [1, 6, 9], "up": [1, 3, 6, 8, 9, 10], "batch": [1, 9, 12], "step": [1, 7, 8, 9], "visibl": [1, 9], "randomli": [1, 6, 7, 9], "some": [1, 3, 6, 7, 8, 9], "element": [1, 9, 12, 13], "tensor": [1, 9], "p": [1, 3, 8, 9], "bernoulli": [1, 9], "distribut": [1, 6, 7, 9], "channel": [1, 9], "independ": [1, 7, 9], "everi": [1, 6, 9], "proven": [1, 9], "techniqu": [1, 7, 9], "prevent": [1, 6, 9], "co": [1, 7, 9], "adapt": [1, 3, 8, 9], "neuron": [1, 9], "hidden": [1, 6, 9], "ffn": [1, 6, 9], "exponenti": [1, 7, 9], "rate": [1, 9], "bond": [1, 3, 8, 9], "ratio": [1, 9], "linearli": [1, 9], "init_lr": [1, 9], "max_lr": [1, 9], "afterward": [1, 7, 9], "decreas": [1, 7, 9], "final_lr": [1, 9], "without": [1, 6, 9, 12], "within": [1, 3, 8, 9, 12, 13], "hyperparamet": [1, 4, 6, 8, 9], "side": [1, 3, 8, 9], "inform": [1, 3, 8, 9, 10], "nb": [1, 3, 6, 7, 8, 9], "quick": [1, 4, 9], "simpl": [1, 7, 9], "sensibl": [1, 6, 7, 8, 9], "author": [1, 6, 8, 9], "do": [1, 6, 7, 9, 12], "num_it": [1, 6, 9, 11], "search_parameter_level": [1, 6, 9, 11], "dictat": [1, 9], "larger": [1, 3, 6, 7, 8, 9], "chempropregressorpretrain": [1, 6, 9], "pretrin": [1, 9], "pretrain": [1, 6, 9], "carri": [1, 9], "previous": [1, 9], "qsartuna": [1, 9], "chempropparametersepoch": [1, 6, 9], "frzn": [1, 9, 11], "pretrained_model": [1, 6, 9, 11], "none": [1, 3, 6, 8, 9, 10, 12, 13, 14], "fine": [1, 9], "tune": [1, 3, 4, 6, 8, 9], "decid": [1, 9], "freez": [1, 9], "transfer": [1, 9], "frozen": [1, 9], "str": [1, 3, 6, 8, 9, 10, 11, 12, 13, 14], "calibr": [1, 4, 8, 9], "isoton": [1, 6, 9], "vennab": [1, 9], "cv": [1, 6, 9], "With": [1, 3, 8, 9], "across": [1, 6, 7, 9, 12], "fals": [1, 3, 6, 7, 8, 9, 12], "obtain": [1, 6, 7, 9], "unbias": [1, 9], "offer": [1, 3, 6, 8, 9], "p0": [1, 6, 9], "vs": [1, 6, 7, 9], "p1": [1, 6, 9], "discord": [1, 6, 9], "type": [1, 3, 6, 7, 8, 9, 12], "union": [1, 3, 8, 9], "calibratedclassifiercvensembl": [1, 9], "calibratedclassifiercvmethod": [1, 9], "n_fold": [1, 6, 9, 11], "whether": [1, 3, 7, 8, 9, 12, 14], "agnost": [1, 6, 9], "interv": [1, 6, 9], "encompass": [1, 9], "aleator": [1, 9], "epistem": [1, 9], "back": [1, 6, 9], "strong": [1, 9], "theoret": [1, 6, 9], "thank": [1, 9], "conform": [1, 9], "mapie_alpha": [1, 6, 9, 11], "05": [1, 6, 7, 9], "01": [1, 6, 9], "99": [1, 6, 9], "see": [3, 6, 7, 8, 9, 12, 13], "gedeck": [3, 8], "et": [3, 7, 8], "al": [3, 7, 8], "qsar": [3, 4, 6, 7, 8], "good": [3, 6, 7, 8], "practic": [3, 8], "fingerprint": [3, 8, 9], "wai": [3, 6, 7, 8], "daylight": [3, 8], "enumer": [3, 6, 8, 9], "custom": [3, 6, 8], "ref": [3, 8, 10], "16": [3, 6, 7, 8], "hash": [3, 6, 8, 9, 10], "code": [3, 6, 7, 8], "style": [3, 6, 7, 8], "implicitli": [3, 8], "largest": [3, 6, 8], "refer": [3, 6, 8, 10, 11], "toward": [3, 6, 7, 8], "binari": [3, 6, 8, 9], "extend": [3, 6, 7, 8], "connect": [3, 6, 8], "roger": [3, 8], "circular": [3, 8], "morgan": [3, 8, 9], "invari": [3, 8], "getmorganfingerprintasbitvect": [3, 8], "rdkit": [3, 6, 7, 8, 9], "systemat": [3, 8], "record": [3, 6, 7, 8], "neighborhood": [3, 8, 9], "h": [3, 6, 7, 8], "multipl": [3, 6, 8, 12, 13], "runtim": [3, 8], "substructur": [3, 6, 8], "map": [3, 6, 7, 8], "integ": [3, 7, 8, 12, 13], "length": [3, 6, 8], "identifi": [3, 6, 7, 8], "diamet": [3, 8], "append": [3, 6, 7, 8, 9], "ecfp4": [3, 8], "correspond": [3, 6, 7, 8, 9], "returnrdkit": [3, 6, 8], "consid": [3, 6, 8, 12, 13], "while": [3, 6, 7, 8, 12], "bit": [3, 6, 8], "sometim": [3, 6, 7, 8], "bool": [3, 8, 9, 12, 13], "calculate_from_mol": [3, 8], "mol": [3, 6, 7, 8], "return": [3, 6, 7, 8, 10, 11, 12, 13], "numpi": [3, 6, 7, 8, 12, 13], "arrai": [3, 6, 8, 12, 13], "count": [3, 6, 8, 9], "gethashedmorganfingerprint": [3, 8], "appear": [3, 8, 11], "usefeatur": [3, 6, 8, 11], "fcfp": [3, 8], "normal": [3, 6, 7, 8, 9], "ones": [3, 6, 8], "definit": [3, 8, 12], "gobbi": [3, 8], "popping": [3, 8], "biotechnolog": [3, 8], "bioengin": [3, 8], "61": [3, 6, 8], "47": [3, 6, 8], "54": [3, 6, 8], "1998": [3, 6, 8], "lead": [3, 7, 8], "score": [3, 4, 8, 9, 10, 12, 14], "fp": [3, 6, 8], "maxpath": [3, 6, 8, 11], "fpsize": [3, 6, 8, 11], "macc": [3, 6, 8], "system": [3, 7, 8], "often": [3, 6, 8], "mdl": [3, 8], "kei": [3, 6, 7, 8, 10, 11], "compani": [3, 8], "calcul": [3, 6, 8, 12, 13, 14], "keyset": [3, 8], "construct": [3, 8, 11], "optim": [3, 4, 7, 8, 9, 11], "durant": [3, 8], "reoptim": [3, 8], "drug": [3, 8], "discoveri": [3, 8], "166": [3, 6, 8], "2d": [3, 8, 9], "essenti": [3, 7, 8], "answer": [3, 8], "fragment": [3, 8], "question": [3, 8], "explicitli": [3, 6, 7, 8], "exist": [3, 8], "sens": [3, 8], "matter": [3, 8], "becaus": [3, 6, 7, 8], "address": [3, 8], "specif": [3, 6, 7, 8, 11], "repres": [3, 6, 7, 8], "9": [3, 6, 7, 8], "1049": [3, 8], "distinct": [3, 6, 7, 8, 9], "rdkit_nam": [3, 6, 8, 11], "unscal": [3, 8], "These": [3, 6, 7, 8, 12], "physchem": [3, 6, 8], "caution": [3, 7, 8], "208": [3, 6, 8], "includ": [3, 6, 7, 8], "clogp": [3, 6, 8], "mw": [3, 6, 8], "ring": [3, 7, 8], "rotat": [3, 8], "fraction": [3, 6, 7, 8, 12, 13], "sp3": [3, 8], "kier": [3, 8], "indic": [3, 6, 7, 8, 12, 13], "etc": [3, 6, 8], "tpsa": [3, 6, 8], "slogp": [3, 8], "group": [3, 7, 8, 12, 13], "vsa": [3, 8], "moe": [3, 8], "charg": [3, 8], "www": [3, 8], "org": [3, 6, 8], "doc": [3, 6, 8], "gettingstartedinpython": [3, 8], "html": [3, 6, 7, 8, 9], "whose": [3, 8], "been": [3, 6, 7, 8], "level": [3, 6, 7, 8, 9], "One": [3, 7, 8], "advantag": [3, 8], "interpret": [3, 8], "mean": [3, 6, 7, 8, 9, 12], "physicochem": [3, 8], "intuit": [3, 8], "understood": [3, 8], "option": [3, 4, 7, 8, 9, 11, 12, 13, 14], "jazzy_nam": [3, 6, 8, 11], "jazzy_filt": [3, 6, 8], "jazzi": [3, 8], "hydrat": [3, 8], "energi": [3, 8], "hydrogen": [3, 8], "acceptor": [3, 6, 8], "donor": [3, 6, 8], "found": [3, 6, 8], "doi": [3, 6, 8], "1038": [3, 8], "s41598": [3, 8], "023": [3, 8], "30089": [3, 8], "mmff94": [3, 8], "minimis": [3, 8], "1000da": [3, 8], "compound": [3, 6, 7, 8, 12, 13], "dict": [3, 8, 9, 10, 11], "calculate_from_smi": [3, 6, 8], "smi": [3, 8, 10], "string": [3, 6, 7, 8, 11, 12, 13, 14], "ndarrai": [3, 8], "z": [3, 8, 12, 14], "peptid": [3, 6, 8, 12, 14], "unfittedsklearnscal": [3, 8], "mol_data": [3, 8], "moldata": [3, 8], "file_path": [3, 8], "smiles_column": [3, 8], "fittedsklearnscal": [3, 8], "alia": [3, 8, 9], "precomput": [3, 7, 8], "file": [3, 7, 8, 10, 11, 12, 13], "header": [3, 8], "line": [3, 4, 6, 7, 8, 10], "row": [3, 6, 7, 8], "comma": [3, 6, 7, 8], "respons": [3, 7, 8], "pre": [3, 7, 8], "zscalesdescriptor": [3, 8, 11], "were": [3, 6, 7, 8], "propos": [3, 8], "sandberg": [3, 8], "proteogen": [3, 8], "amino": [3, 6, 8], "acid": [3, 6, 8], "nmr": [3, 8], "thin": [3, 8], "chromatographi": [3, 8], "tlc": [3, 8], "1021": [3, 6, 8], "jm9700575": [3, 8], "captur": [3, 6, 7, 8], "lipophil": [3, 8], "steric": [3, 8], "bulk": [3, 8], "polariz": [3, 8], "electron": [3, 8], "polar": [3, 8], "electroneg": [3, 8], "heat": [3, 8], "electrophil": [3, 8], "anoth": [3, 6, 8], "optimis": [3, 6, 8, 9, 10], "either": [3, 7, 8, 9], "through": [3, 6, 8], "_and_": [3, 8], "auxiliari": [3, 6, 8, 12, 14], "continu": [3, 6, 8], "learnt": [3, 6, 8], "manner": [3, 6, 8], "intent": [3, 6, 8], "much": [3, 8], "remain": [3, 7, 8, 12], "deriv": [3, 6, 7, 8], "cautiou": [3, 8], "upload": [3, 8], "_all_": [3, 8], "ruder": [3, 8], "io": [3, 6, 8, 9], "index": [3, 6, 7, 8], "auxiliarytask": [3, 8], "aux_weight_pc": [3, 6, 8, 9, 11], "20": [3, 6, 7, 8], "info": [3, 6, 8], "percentag": [3, 8], "wrap": [3, 6, 8], "certain": [3, 6, 7, 8], "rang": [3, 6, 7, 8, 12, 13], "scaleddescriptorparamet": [3, 8], "cach": [3, 6, 7, 8, 9], "composit": [3, 6, 8], "concaten": [3, 8], "button": [3, 8], "pleas": [3, 6, 7, 8, 10], "compat": [3, 6, 8], "intro": 4, "background": 4, "json": [4, 6, 9, 11], "command": [4, 6], "interfac": [4, 6, 8, 11, 12], "python": [4, 6, 8, 12], "jupyt": [4, 6], "notebook": [4, 6], "introduct": 4, "translat": [4, 6], "sdf": [4, 6, 8], "need": 4, "deal": [4, 12], "duplic": [4, 8, 9, 12], "dedupl": [4, 6, 8, 10], "experiment": [4, 6, 12, 14], "error": [4, 6], "cli": 4, "tutori": 4, "remov": [4, 7, 8, 9, 12, 13], "advanc": [4, 7, 8], "functoinail": 4, "adaboostclassifi": [4, 6, 9, 11], "kneighborsclassifi": [4, 6, 9, 11], "kneighborsregressor": [4, 6, 9, 11], "logisticregress": [4, 6, 9, 11], "plsregress": [4, 6, 9, 11], "randomforestclassifi": [4, 6, 9, 11], "svc": [4, 6, 9, 11], "prfclassifi": [4, 6, 9, 11], "chempropregressor": [4, 6, 9, 11], "chempropclassifi": [4, 6, 9, 11], "chemprophyperoptclassifi": [4, 6, 9, 11], "chemprophyperoptregressor": [4, 6, 9, 11], "chemprophyperoptregressorpretrain": 4, "calibratedclassifiercvwithva": [4, 6, 9, 11], "mapi": [4, 9, 11], "avalon": [4, 8, 9, 11], "pathfp": [4, 6, 8, 11], "unscaledphyschemdescriptor": [4, 6, 8, 11], "unscaledjazzydescriptor": [4, 6, 8, 11], "unscaledzscalesdescriptor": [4, 8, 11], "physchemdescriptor": [4, 8, 11], "jazzydescriptor": [4, 8, 11], "precomputeddescriptorfromfil": [4, 6, 8, 11], "zscale": [4, 6, 8, 12], "smilesfromfil": [4, 6, 8, 11], "smilesandsideinfofromfil": [4, 6, 8, 11], "scaleddescriptor": [4, 8, 11], "compositedescriptor": [4, 6, 8, 11], "tempor": [4, 6, 12], "stratifi": [4, 6, 12], "scaffoldsplit": [4, 7, 12], "modeldatatransform": [4, 6, 7, 8, 12], "vectorfromcolumn": [4, 6, 8, 12], "keepfirst": [4, 7, 12], "keeplast": [4, 7, 12], "keeprandom": [4, 7, 12], "keepmin": [4, 7, 12], "keepmax": [4, 7, 12], "keepavg": [4, 7, 12], "keepmedian": [4, 6, 7, 12], "keepkeepallnodedupl": 4, "report": [4, 6, 7], "coverag": 4, "releas": [4, 6, 7], "subpackag": 5, "submodul": 5, "build_from_opt": [5, 8], "content": 5, "util": [5, 6, 7, 8, 13, 14], "files_path": [5, 8], "load_json": [5, 8], "schema": [5, 8, 11], "builder": 5, "metirc": 5, "model_writ": 5, "optbuild": 5, "schemagen": 5, "visual": [5, 9, 11], "intend": 6, "necessari": 6, "gui": 6, "autom": [6, 7], "reinvent": 6, "varieti": 6, "them": [6, 7, 9], "so": [6, 7, 9], "hyper": [6, 9], "influenc": [6, 7, 9], "automat": [6, 7], "idea": [6, 7], "read": [6, 7, 8], "otherwis": [6, 12], "might": [6, 7, 12], "skip": [6, 7], "download": 6, "toi": 6, "chosen": 6, "whole": [6, 7], "less": [6, 7], "minut": 6, "holdout": [6, 7], "readi": 6, "next": [6, 7], "few": [6, 7], "head": [6, 7], "molwt_gt_330": 6, "cc1cc": 6, "nc": [6, 7], "o": [6, 7], "c2cccc": 6, "coc3ccc": 6, "br": [6, 7], "cc3": [6, 7], "c2": [6, 7], "no1": 6, "387": 6, "233": 6, "nc1ccc": 6, "f": [6, 7, 12], "cc1f": 6, "nc1sccc1": 6, "c1nc2ccccc2s1": 6, "4360000000001": 6, "coc": 6, "c1ccccc1nc": 6, "c1cc": 6, "nn1cc1ccccc1": 6, "380": 6, "36000000000007": 6, "ccoc": 6, "sc1nc": 6, "c2ccccc2": 6, "ccc1c": 6, "312": 6, "39400000000006": 6, "ccc": [6, 7], "c1nn": [6, 7], "cc2ccccc2": 6, "c2ccccc12": 6, "349": 6, "4340000000001": 6, "brc1ccccc1occcoc1cccc2cccnc12": 6, "358": 6, "235": 6, "ccccn1c": 6, "coc2cccc": 6, "oc": 6, "nc2ccccc21": 6, "310": 6, "39700000000005": 6, "ccoc1cccc": 6, "c2sc3nc": 6, "c4ccc": 6, "cc4": 6, "ccc3c2n": 6, "c1": [6, 7], "407": 6, "4700000000001": 6, "coc1ccc": 6, "nc2ccc": 6, "cc2": 6, "c2ccc": 6, "cc1oc": 6, "454": 6, "54800000000023": 6, "sy": [6, 7], "sklearn": [6, 11], "kljk345": [6, 7], "pycharmproject": 6, "public_qptuna": 6, "lib": [6, 7], "python3": [6, 7], "site": [6, 7], "tqdm": 6, "21": [6, 7], "tqdmwarn": 6, "iprogress": 6, "updat": [6, 7], "ipywidget": 6, "readthedoc": [6, 9], "en": [6, 9], "stabl": [6, 8], "user_instal": 6, "autonotebook": 6, "notebook_tqdm": 6, "typic": [6, 7], "test_dataset_fil": [6, 8], "random_se": [6, 9], "42": [6, 7, 12, 13], "seed": [6, 7, 8, 12, 13], "reproduc": [6, 12, 14], "setup": [6, 9], "basic": [6, 8, 9], "importlib": 6, "reload": 6, "basicconfig": 6, "getlogg": 6, "disabl": [6, 7, 11], "np": [6, 7], "seterr": 6, "ignor": 6, "warn": [6, 7], "filterwarn": 6, "categori": 6, "futurewarn": 6, "runtimewarn": 6, "functool": 6, "partialmethod": 6, "__init__": [6, 9], "flood": 6, "decpreci": 6, "simplefilt": 6, "def": [6, 7, 9], "arg": [6, 8, 9], "kwarg": [6, 9], "stderr": 6, "render": [6, 7], "red": 6, "2024": 6, "07": 6, "02": 6, "13": [6, 7], "17": [6, 7], "26": [6, 7], "561": 6, "memori": [6, 8], "714": 6, "study_name_0": 6, "27": [6, 7], "022": 6, "finish": 6, "3594": 6, "2228073972638": 6, "39": [6, 7], "algorithm_nam": [6, 11], "randomforestregressor_algorithm_hash": 6, "f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "max_features__f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "lt": [6, 7], "randomforestmaxfeatur": [6, 9], "gt": [6, 7], "34": [6, 7], "171": 6, "5029": 6, "734616310275": 6, "svr_algorithm_hash": 6, "ea7ccc7ef4a9329af0d4e39eb6184933": 6, "gamma__ea7ccc7ef4a9329af0d4e39eb6184933": 6, "039054412752107935": 6, "c__ea7ccc7ef4a9329af0d4e39eb6184933": 6, "1242780840717016e": 6, "429": 6, "4242": 6, "092751193529": 6, "579": 6, "3393": 6, "577488426015": 6, "ridge_algorithm_hash": 6, "cfa1990d5153c8812982f034d788d7e": 6, "alpha__cfa1990d5153c8812982f034d788d7e": 6, "06877704223043679": 6, "644": 6, "427": 6, "45250420148204": 6, "lasso_algorithm_hash": 6, "5457f609662e44f04dcc9423066d2f58": 6, "alpha__5457f609662e44f04dcc9423066d2f58": 6, "7896547008552977": 6, "698": 6, "3387": 6, "245629616474": 6, "plsregression_algorithm_hash": 6, "9f2f76e479633c0bf18cf2912fed9eda": 6, "n_components__9f2f76e479633c0bf18cf2912fed9eda": 6, "853": 6, "734620250011": 6, "3661540064603184": 6, "1799882524170321": 6, "28": [6, 7], "029": 6, "7": [6, 7, 9], "9650": 6, "026568221794": 6, "kneighborsregressor_algorithm_hash": 6, "1709d2c39117ae29f6c9debe7241287b": 6, "metric__1709d2c39117ae29f6c9debe7241287b": 6, "kneighborsmetr": [6, 9], "n_neighbors__1709d2c39117ae29f6c9debe7241287b": 6, "weights__1709d2c39117ae29f6c9debe7241287b": 6, "kneighborsweight": [6, 9], "uniform": [6, 9], "070": 6, "8": [6, 7, 9], "5437": 6, "151635569594": 6, "05083825348819038": 6, "336": 6, "2669": 6, "8534551928174": 6, "373": 6, "4341": 6, "586120152291": 6, "7921825998469865": 6, "532": 6, "11": [6, 7], "5514": 6, "404088878843": 6, "680": 6, "12": [6, 7], "5431": 6, "634989239215": 6, "722": 6, "3530": 6, "5496618991288": 6, "765": 6, "14": [6, 7], "3497": 6, "6833185436312": 6, "793": 6, "15": [6, 7], "4382": 6, "16208862162": 6, "831": 6, "734620031822": 6, "002825619931800395": 6, "309885135051862e": 6, "09": 6, "870": 6, "679": 6, "3109044887755": 6, "16827992999009767": 6, "932": 6, "18": [6, 7], "2550": 6, "114129318373": 6, "974": 6, "19": [6, 7], "4847": 6, "085792360169": 6, "735431606118867": 6, "29": 6, "016": 6, "268760278916": 6, "0014840820994557746": 6, "04671166881768783": 6, "096": 6, "4783": 6, "0470154796785": 6, "135": 6, "22": [6, 7], "3905": 6, "0064899852296": 6, "259": 6, "23": [6, 7], "4030": 6, "45773791647": 6, "340": 6, "24": [6, 7], "4681": 6, "602145939593": 6, "381": 6, "25": [6, 7], "4398": 6, "544034028325": 6, "6452011213193165": 6, "474": 6, "4454": 6, "143979828408": 6, "503": 6, "533": 6, "600": 6, "4397": 6, "330360587512": 6, "617": 6, "682": 6, "31": [6, 7], "2602": 6, "7561184287083": 6, "715": 6, "5267": 6, "388279961089": 6, "2015560027548533": 6, "794": 6, "33": 6, "4863": 6, "581760751052": 6, "836": 6, "388": 6, "96473594016675": 6, "5528259214839937": 6, "906": 6, "35": 6, "5539": 6, "698232987626": 6, "6400992020612235": 6, "962": 6, "36": 6, "5180": 6, "5533034102455": 6, "8968910439566395": 6, "005": 6, "37": 6, "4989": 6, "929984864281": 6, "04458440839692226": 6, "492108041427977": 6, "034": 6, "38": [6, 7], "103": 6, "6528": 6, "215066535042": 6, "16700143339733753": 6, "240": 6, "40": [6, 7], "4168": 6, "7955967552625": 6, "311": 6, "41": 6, "6177": 6, "060727800014": 6, "401": 6, "3963": 6, "906954658343": 6, "435": 6, "43": 6, "6805334166565": 6, "013186009009851564": 6, "001008958590140135": 6, "501": 6, "44": 6, "9300": 6, "86840721566": 6, "547": 6, "45": [6, 7], "83": 6, "87968210939489": 6, "382674443425525e": 6, "565": 6, "46": 6, "594": 6, "626": 6, "48": 6, "717": 6, "49": 6, "3660": 6, "9359502556": 6, "767": 6, "688": 6, "5244070398325": 6, "5267860995545326": 6, "813": 6, "51": 6, "690": 6, "6494438072099": 6, "8458809314722497": 6, "848": 6, "52": 6, "691": 6, "1197058420935": 6, "9167866889210807": 6, "898": 6, "53": 6, "3111710449325": 6, "945685900574672": 6, "934": 6, "9665592812149": 6, "8936837761725833": 6, "970": 6, "55": 6, "4682747008223": 6, "5183865279530455": 6, "030": 6, "56": 6, "687": 6, "5230947231512": 6, "3771771681361766": 6, "078": 6, "57": 6, "4503442069594": 6, "3663259819415374": 6, "127": 6, "58": 6, "686": 6, "9553733616618": 6, "2925652230875628": 6, "174": 6, "59": 6, "370": 6, "2038330506566": 6, "3962903248948568": 6, "222": 6, "60": 6, "377": 6, "25988028857313": 6, "45237513161879": 6, "270": 6, "379": 6, "8933285317637": 6, "4741161933311207": 6, "319": 6, "62": 6, "374": 6, "50897467366013": 6, "4290962207409417": 6, "356": 6, "63": [6, 7], "376": 6, "5588572940058": 6, "4464295711264585": 6, "416": 6, "64": 6, "237448916406": 6, "4687500034684213": 6, "65": 6, "375": 6, "7474776359051": 6, "4395650011783436": 6, "504": 6, "66": 6, "362": 6, "2834906299732": 6, "3326755354190032": 6, "542": 6, "67": 6, "357": 6, "3474880122588": 6, "2887212943233457": 6, "591": 6, "68": 6, "354": 6, "279045046449": 6, "2577677164664005": 6, "642": 6, "69": 6, "347": 6, "36894395697703": 6, "1672928587680225": 6, "706": 6, "70": 6, "345": 6, "17697390093394": 6, "1242367255308854": 6, "757": 6, "71": 6, "74610809299037": 6, "1728352983905301": 6, "807": 6, "72": 6, "23464281634324": 6, "1265380781508565": 6, "856": 6, "73": 6, "344": 6, "6848312222365": 6, "0829896313820404": 6, "902": 6, "74": [6, 7], "9111966504334": 6, "1070414661080543": 6, "966": 6, "75": 6, "70116419828565": 6, "0875643695329498": 6, "026": 6, "76": 6, "62647974688133": 6, "0716281620790837": 6, "089": 6, "77": 6, "6759429204596": 6, "0456289319914898": 6, "141": 6, "78": 6, "343": 6, "58131497761616": 6, "0010195360522613": 6, "193": 6, "79": 6, "342": 6, "7290581014813": 6, "9073210715005748": 6, "254": 6, "80": [6, 7], "67866114080107": 6, "9166305667100072": 6, "317": 6, "81": 6, "6440308445311": 6, "9248722692093634": 6, "367": 6, "82": 6, "02085648448934": 6, "8776928646870886": 6, "1662266300702": 6, "867592364677856": 6, "457": 6, "84": 6, "30158716569775": 6, "8599491178327108": 6, "497": 6, "85": 6, "2803074848341": 6, "8396948389352923": 6, "86": 6, "28301101884045": 6, "8396651775801683": 6, "587": 6, "87": 6, "6781906268143": 6, "8356021935129933": 6, "639": 6, "88": 6, "0405418264898": 6, "7430046191126949": 6, "677": 6, "89": 6, "77203208258476": 6, "9015965341429055": 6, "90": 6, "363": 6, "1622720320929": 6, "6746575663752555": 6, "91": 6, "7403796626193": 6, "9057564666836629": 6, "797": 6, "92": 6, "63579667712696": 6, "9332275205203372": 6, "93": [6, 7], "6886425884964": 6, "9433063264508291": 6, "94": 6, "9341048659705": 6, "884739221967487": 6, "935": 6, "95": [6, 7], "63507445779743": 6, "9381000493689634": 6, "986": 6, "96": 6, "06021011302374": 6, "963138023068903": 6, "97": 6, "9990546212019": 6, "9601651093867907": 6, "066": 6, "98": 6, "3821": 6, "2267845437514": 6, "117": 6, "6786067133016": 6, "721603508336166": 6, "seaborn": [6, 7], "sn": [6, 7], "set_them": 6, "darkgrid": 6, "default_reg_scor": 6, "ax": [6, 7], "scatterplot": 6, "trials_datafram": 6, "xlabel": [6, 7], "ylabel": [6, 7], "ojbect": 6, "interest": [6, 7], "neg_mean_squared_error": [6, 9], "highlight": 6, "color": [6, 7], "cv_test": 6, "user_attrs_test_scor": 6, "lambda": [6, 12], "item": [6, 10], "idx": [6, 7], "v": 6, "hue": 6, "palett": 6, "set1": 6, "inspect": 6, "apischema": [6, 8], "buildconfig_as_dict": 6, "serial": 6, "response_typ": [6, 7, 8], "deduplication_strategi": [6, 7, 8], "split_strategi": [6, 7, 8], "nosplit": [6, 12], "save_intermediate_fil": [6, 8], "log_transform": [6, 7, 8], "log_transform_bas": [6, 7, 8], "null": 6, "log_transform_neg": [6, 7, 8], "log_transform_unit_convers": [6, 7, 8], "probabilistic_threshold_represent": [6, 7, 8], "probabilistic_threshold_representation_threshold": [6, 7, 8], "probabilistic_threshold_representation_std": [6, 7, 8], "metadata": [6, 8, 9, 10, 11], "shuffl": [6, 9, 11, 12, 13], "best_trial": [6, 9, 11], "best_valu": [6, 9, 11], "tracking_rest_endpoint": [6, 9], "best_build": 6, "rb": 6, "predict_from_smil": [6, 8], "cc1": [6, 7], "43103985": 6, "177": 6, "99850936": 6, "now": [6, 7, 9], "panda": [6, 7], "pd": [6, 7], "df": [6, 12, 13], "read_csv": 6, "expect": [6, 7, 10], "matplotlib": [6, 7], "pyplot": [6, 7], "plt": [6, 7], "scatter": 6, "lim": 6, "max": [6, 7, 12], "diagon": 6, "r2_score": 6, "mean_squared_error": 6, "mean_absolute_error": 6, "y_true": [6, 8, 11], "y_pred": [6, 8, 11], "rmse": 6, "ad": [6, 7, 12, 13], "mae": 6, "absolut": 6, "8566354978126369": 6, "204909888075044": 6, "298453946973815": 6, "accept": [6, 7], "again": 6, "hopefulli": [6, 7], "littl": 6, "better": [6, 7, 8, 12], "send": 6, "strategi": [6, 8], "current": 6, "observ": [6, 7], "last": [6, 7, 12], "alreadi": [6, 7], "sort": [6, 7, 12, 13], "oldest": [6, 7, 12, 13], "newest": [6, 7, 12, 13], "end": [6, 7, 12, 13], "extern": 6, "tool": 6, "excel": 6, "ensur": [6, 7, 8, 9], "unballanc": 6, "work": [6, 7], "come": [6, 7], "measur": [6, 7], "fact": 6, "disregard": 6, "stereochemistri": [6, 7], "even": [6, 7], "sever": 6, "median": [6, 7, 12], "factor": [6, 7], "replic": [6, 7], "robust": [6, 7], "outlier": [6, 7], "acorss": 6, "trust": 6, "kept": 6, "splitter": [6, 7, 8, 10], "track_to_mlflow": [6, 9], "my_study_stratified_split": 6, "922": 6, "963": 6, "046": 6, "1856": 6, "4459752935309": 6, "123": 6, "1692": 6, "0451328577294": 6, "2918844591266672": 6, "592": 6, "1378": 6, "9731014410709": 6, "471164936778079": 6, "2658": 6, "13214897931": 6, "804": 6, "2059": 6, "3079659969176": 6, "330": [6, 7], "280": 6, "17777558722315": 6, "7001901522391756": 6, "422": 6, "3551": 6, "475476217507": 6, "466": 6, "2124": 6, "9660426577593": 6, "509": 6, "1686": 6, "5737716985532": 6, "9841058851292832": 6, "552": 6, "1702": 6, "174704715547": 6, "861494545249233": 6, "578": 6, "621": 6, "1204": 6, "636967895143": 6, "5238298142840006": 6, "676": 6, "228": 6, "44505332657158": 6, "9836853549192415": 6, "729": 6, "3949": 6, "499774068696": 6, "04535826280986047": 6, "012999584021838e": 6, "829": 6, "2856": 6, "917927507731": 6, "linear_model": 6, "_coordinate_desc": 6, "678": 6, "convergencewarn": 6, "did": 6, "regularis": 6, "dualiti": 6, "gap": 6, "306e": 6, "toler": 6, "824e": 6, "cd_fast": 6, "enet_coordinate_desc": 6, "882": 6, "2554": 6, "2079198900733": 6, "10588223712643852": 6, "1261": 6, "484274761188": 6, "0950442632698256": 6, "965": 6, "282": 6, "6478019258886": 6, "2920636100136971": 6, "004": 6, "1814": 6, "6019641143478": 6, "048": 6, "1284": 6, "7430070920798": 6, "1729012287538991": 6, "237": 6, "98783693000647": 6, "1721667984096773": 6, "192": 6, "2129": 6, "55317061882": 6, "4997740833423": 6, "779895470793612": 6, "260941957410989e": 6, "279": 6, "1740": 6, "8894369939983": 6, "02841448247455669": 6, "698e": 6, "280e": 6, "820e": 6, "352e": 6, "770e": 6, "3317": 6, "417858905051": 6, "003050380617617421": 6, "404": 6, "448": 6, "1256": 6, "7270466276807": 6, "1594144041655936": 6, "491": 6, "1245": 6, "1399766270456": 6, "336730512398918": 6, "583": 6, "2908": 6, "3563960057677": 6, "628": 6, "1775": 6, "55204856041": 6, "721": 6, "1257": 6, "9288888831513": 6, "1441514794000534": 6, "808": 6, "98174313112844": 6, "1939105579414777": 6, "900": 6, "3054": 6, "7066202193805": 6, "944": 6, "1227": 6, "082986184029": 6, "909508127148669": 6, "988": 6, "1676": 6, "7481962719485": 6, "4307837873914335": 6, "079": 6, "307965996918": 6, "168": 6, "3441": 6, "9109103644514": 6, "211": 6, "1670": 6, "5213862925175": 6, "07945856808433427": 6, "264": 6, "2756": 6, "046839500092": 6, "320": 6, "4997735530674": 6, "022099719935614482": 6, "4657380646234507e": 6, "08": 6, "0862402902634642": 6, "12519632281925502": 6, "467": 6, "3438": 6, "566583971217": 6, "524": 6, "4422556954731": 6, "19967589906728334": 6, "016e": 6, "618": 6, "359": [6, 7], "7639743940817": 6, "059252880514551576": 6, "662": 6, "1246": 6, "7813032646238": 6, "3074782262329858": 6, "755": 6, "2224": 6, "3845873049813": 6, "810": 6, "1673": 6, "9639799911165": 6, "2737740844660712": 6, "896": 6, "3163": 6, "129883232068": 6, "987": 6, "2753": 6, "414173913392": 6, "057": 6, "263": 6, "1352845182604": 6, "627030918721665": 6, "105": 6, "271": 6, "2979718788249": 6, "8548903728617034": 6, "165": 6, "277": 6, "86441431259567": 6, "9605867591283856": 6, "227": 6, "4329099850367": 6, "9537398361705693": 6, "274": 6, "3838070241422": 6, "9045589309769144": 6, "334": 6, "260": 6, "4460398258507": 6, "5589021326002044": 6, "383": 6, "257": 6, "95032410206767": 6, "5053759377103249": 6, "444": 6, "256": 6, "5958038666581": 6, "4789082433356577": 6, "495": 6, "253": 6, "4269973575198": 6, "4281024602273042": 6, "560": 6, "249": 6, "40822811603962": 6, "3546313579812586": 6, "620": 6, "245": 6, "71101688809983": 6, "2913960369109012": 6, "675": 6, "247": 6, "88538215472033": 6, "3274897484709072": 6, "737": 6, "244": 6, "23847775159297": 6, "2647865635312279": 6, "803": 6, "59033004585282": 6, "3228443521984092": 6, "863": 6, "243": 6, "40694430653753": 6, "2489205103047292": 6, "928": 6, "223": 6, "85145692792733": 6, "8934822741396387": 6, "990": [6, 7], "221": 6, "94026043724057": 6, "8552798675517863": 6, "219": 6, "60947928367543": 6, "8149866573467666": 6, "108": 6, "84441955310717": 6, "8531301788095305": 6, "170": 6, "24134912135943": 6, "8418420411160932": 6, "232": 6, "34805357903284": 6, "883998932301903": 6, "293": 6, "99342925522842": 6, "8564564664338091": 6, "353": 6, "50886633416462": 6, "8672069097403997": 6, "415": 6, "61235541906441": 6, "8482856353268698": 6, "479": 6, "217": 6, "7749814513912": 6, "7823980442129331": 6, "538": 6, "216": 6, "00225784039503": 6, "7113129125761161": 6, "601": 6, "8736767409489": 6, "6250904023479531": 6, "666": 6, "94414119442342": 6, "6227757503715069": 6, "731": 6, "45936690929625": 6, "6343056785694773": 6, "63861804615567": 6, "6302707941523814": 6, "860": 6, "1969": 6, "3749442111905": 6, "00019861806798724335": 6, "586529041453": 6, "923": 6, "215": 6, "82051598778696": 6, "6518244359516081": 6, "06387687700067": 6, "6440087841656821": 6, "041": 6, "24994687849525": 6, "6393212787552464": 6, "106": 6, "92984604804667": 6, "6232144947646524": 6, "25506613319246": 6, "603388647930941": 6, "2733": 6, "5772576431627": 6, "287": 6, "29854648789728": 6, "5873312673596333": 6, "16592450348784": 6, "4337907998582289": 6, "410": 6, "68514116107337": 6, "6695836226711808": 6, "475": 6, "220": 6, "8939514172608": 6, "4420925048614356": 6, "535": 6, "72299797702155": 6, "6960582933068138": 6, "69285146262294": 6, "69078828949453": 6, "665": 6, "0538787714827": 6, "7144357045239296": 6, "728": 6, "4213281391621": 6, "7353090312302926": 6, "74724725664498": 6, "92653950485437e": 6, "858": 6, "12287184152592": 6, "7183304951103088": 6, "22186485689846": 6, "7234233661662641": 6, "977": 6, "2720": 6, "793752592223": 6, "042": 6, "3855763846717": 6, "4726201914486088": 6, "By": 6, "roc_auc": [6, 9], "model_evalu": 6, "amongst": 6, "regression_scor": 6, "classification_scor": 6, "explained_vari": [6, 9], "max_error": [6, 9], "neg_mean_absolute_error": [6, 9], "neg_median_absolute_error": [6, 9], "average_precis": [6, 9], "balanced_accuraci": [6, 9], "f1": [6, 9], "f1_macro": [6, 9], "f1_micro": [6, 9], "f1_weight": [6, 9], "jaccard": [6, 9], "jaccard_macro": [6, 9], "jaccard_micro": [6, 9], "jaccard_weight": [6, 9], "neg_brier_scor": [6, 9], "precis": [6, 7, 9], "precision_macro": [6, 9], "precision_micro": [6, 9], "precision_weight": [6, 9], "recal": [6, 9], "recall_macro": [6, 9], "recall_micro": [6, 9], "recall_weight": [6, 9], "auc_pr_cal": [6, 8, 9], "bedroc": [6, 8, 9], "concordance_index": [6, 8, 9], "my_study_r2": 6, "945": 6, "947": 6, "072": 6, "011171868665159623": 6, "197": 6, "08689402230378174": 6, "283": 6, "12553701248394863": 6, "141096648805748": 6, "4893466963980463e": 6, "3039309544203818": 6, "20182749628697164": 6, "485": 6, "8187194367176578": 6, "558": 6, "4647239019719945": 6, "6574750183038587": 6, "611": 6, "8614818478547979": 6, "3974313630683448": 6, "705": 6, "12769795082909816": 6, "773": 6, "8639946428338224": 6, "2391884918766034": 6, "838": 6, "12553701248377633": 6, "00044396482429275296": 6, "3831436879125245e": 6, "892": 6, "12553700871203702": 6, "00028965395242758657": 6, "99928292425642e": 6, "2935582042429075": 6, "976": 6, "18476333152695587": 6, "8190707459213998": 6, "4060379177903557": 6, "118": 6, "12206148974315871": 6, "3105263811279067": 6, "344271094811757": 6, "3562469062424869": 6, "670604991178476": 6, "316": [6, 7], "045959695906983344": 6, "8583939656024446": 6, "5158832554303112": 6, "433": 6, "3062574078515544": 6, "487": 6, "11657354998283716": 6, "0009327650919528738": 6, "062479210472502": 6, "586": 6, "629": 6, "8498478905829554": 6, "1366172066709432": 6, "733": 6, "1276979508290982": 6, "786": 6, "13519830637607919": 6, "92901911959232": 6, "999026012594694": 6, "839": 6, "8198078293055633": 6, "5888977841391714": 6, "878": 6, "8201573964824842": 6, "19435298754153707": 6, "958": 6, "013": 6, "6285506249643193": 6, "35441495011256785": 6, "11934070343348298": 6, "145": 6, "4374125584543907": 6, "2457809516380005": 6, "213": 6, "3625576518621392": 6, "6459129458824919": 6, "36175556871883746": 6, "8179058888285398": 6, "285": 6, "8202473217121523": 6, "0920052840435055": 6, "372": 6, "3672927879319306": 6, "8677032984759461": 6, "402": 6, "445": 6, "40076792599874356": 6, "2865764368847064": 6, "26560316846701765": 6, "632": 6, "41215254857081174": 6, "671": 6, "763": 6, "00461414372160085": 6, "27282533524183633": 6, "919": 6, "10220127407364991": 6, "975": 6, "30323404130582854": 6, "3044553805553568": 6, "6437201185807124": 6, "076": 6, "41502276709562": 6, "10978379088847677": 6, "120": 6, "36160209098547913": 6, "022707289534838138": 6, "175": 6, "2916101445983833": 6, "936e": 6, "782e": 6, "434e": 6, "977e": 6, "276": 6, "8609413020928532": 6, "04987590926279814": 6, "794e": 6, "830e": 6, "906e": 6, "578e": 6, "8610289662757457": 6, "019211413400468974": 6, "754e": 6, "843e": 6, "507e": 6, "493": 6, "8610070549049179": 6, "018492644772509947": 6, "840e": 6, "513e": 6, "924e": 6, "8569771623635769": 6, "008783442408928633": 6, "243e": 6, "014e": 6, "700": 6, "8624781673814641": 6, "05782221001517797": 6, "113e": 6, "935e": 6, "122e": 6, "798": 6, "8618589507037001": 6, "02487072255316275": 6, "886": 6, "864754359721037": 6, "2079910754941946": 6, "946": 6, "8622236413326235": 6, "333215560931422": 6, "009": 6, "861832165638517": 6, "3628098560209365": 6, "068": 6, "8620108533993581": 6, "34240779695521706": 6, "142": 6, "8638540565650902": 6, "26493714991266293": 6, "8629799500771645": 6, "30596394512914815": 6, "8621408609583922": 6, "33648829357762355": 6, "351": 6, "8638132124078156": 6, "2679814646317183": 6, "424": 6, "863983758876634": 6, "24062119162159595": 6, "500": 6, "8627356047945115": 6, "3141728910335158": 6, "8639203054085788": 6, "23391390640786494": 6, "8570103863991635": 6, "6124885145996103": 6, "742": 6, "8647961976727571": 6, "2059976546070975": 6, "830": 6, "8648312544921793": 6, "20266060662750784": 6, "926": 6, "8648431452862716": 6, "20027647978240445": 6, "010": 6, "8648491459660418": 6, "1968919999787333": 6, "8650873115156988": 6, "174598921162764": 6, "204": 6, "8650350577921149": 6, "16468002989641095": 6, "8649412283687147": 6, "1606717091615047": 6, "986e": 6, "396": [6, 7], "8649537211609554": 6, "14694925097689848": 6, "506": 6, "8649734575435447": 6, "147612713300643": 6, "446e": 6, "8648761002838515": 6, "14440434705706803": 6, "398e": 6, "775": 6, "8639826593122782": 6, "1265357179513065": 6, "690e": 6, "875": 6, "864435565531768": 6, "1374245525868926": 6, "938": 6, "8590221951825531": 6, "49890830155012533": 6, "8649098880804443": 6, "1573428812070292": 6, "405e": 6, "864536410656637": 6, "13886104722511608": 6, "8597401050431873": 6, "47746341180045787": 6, "8537465461603838": 6, "050e": 6, "8642643827090003": 6, "13446778921611002": 6, "175e": 6, "8641621818665252": 6, "1286796719653316": 6, "625": 6, "864182755916388": 6, "13303218726548235": 6, "693": 6, "1255357440899417": 6, "021711452917433944": 6, "559714273835951e": 6, "758": 6, "8604596648091501": 6, "43644874418279245": 6, "463e": 6, "861": 6, "8635689909135862": 6, "10940922083495383": 6, "951": 6, "8648544336551733": 6, "1912756875742137": 6, "8648496595672595": 6, "19628449928540487": 6, "8452625121122099": 6, "4324661283995224": 6, "149": 6, "8378670635846416": 6, "839206620815206": 6, "002e": 6, "082e": 6, "8649365368153895": 6, "07270781179126021": 6, "8875676754699953": 6, "0006995169897945908": 6, "586e": 6, "618e": 6, "234e": 6, "484": 6, "8730555131061773": 6, "0018186269840273495": 6, "12553508835019533": 6, "04867556317570456": 6, "0011658455138452": 6, "284e": 6, "177e": 6, "664": 6, "8586292788613132": 6, "005078762921098462": 6, "anyalgorithm": 6, "__args__": 6, "consider": [6, 7], "modif": [6, 12], "establish": 6, "rf": 6, "account": [6, 7, 8], "though": 6, "treat": [6, 7], "pdf": [6, 9], "denot": [6, 12, 13], "determinist": [6, 7], "quantiti": 6, "tradit": [6, 7], "discret": 6, "discretis": [6, 12, 14], "bioactiv": [6, 7], "integr": 6, "afford": [6, 7], "particularli": 6, "liklihood": 6, "membership": [6, 7], "iopscienc": 6, "iop": 6, "articl": [6, 7], "3847": 6, "1538": 6, "3881": 6, "aaf101": 6, "pxc50": [6, 7], "p24863": 6, "enabl": [6, 7], "alwai": [6, 7], "734": 6, "joblib": [6, 8], "577": 6, "joblibcollisionwarn": 6, "collis": 6, "180": 6, "self": [6, 9], "_cached_cal": 6, "shelv": 6, "00": 6, "764": 6, "08099580623289632": 6, "prfclassifier_algorithm_hash": 6, "efe0ba9870529a6cde0dd3ad22447cbb": 6, "max_depth__efe0ba9870529a6cde0dd3ad22447cbb": 6, "n_estimators__efe0ba9870529a6cde0dd3ad22447cbb": 6, "max_features__efe0ba9870529a6cde0dd3ad22447cbb": 6, "prfclassifiermaxfeatur": [6, 9], "min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb": 6, "use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb": 6, "use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb": 6, "408": [6, 7], "07261454017489567": 6, "780": 6, "08791063872794351": 6, "911": 6, "07114663955819509": 6, "879": 6, "06537440628140882": 6, "446": 6, "05680450487193368": 6, "968": 6, "543": 6, "0656836821774901": 6, "333": 6, "07863564862376404": 6, "329": 6, "0648840199215795": 6, "014": 6, "07861037073288182": 6, "608": 6, "06669924317660021": 6, "997": 6, "06734611679947522": 6, "526": 6, "06810559387741143": 6, "0528189695245453": 6, "best_built": 6, "demonstr": [6, 7], "purpos": [6, 7], "transduct": 6, "example_smil": 6, "get_set": [6, 7, 8], "b": [6, 7], "outsid": [6, 7, 8], "likelihood": 6, "problemat": 6, "except": [6, 8], "valueerror": 6, "As": [6, 7], "raw": [6, 7, 8, 12], "760": 6, "800": 6, "w": 6, "801": 6, "fail": 6, "traceback": 6, "_optim": 6, "196": 6, "_run_trial": 6, "value_or_valu": 6, "func": 6, "128": 6, "__call__": 6, "_validate_algo": 6, "rais": [6, 8], "summaris": 6, "handl": 6, "via": [6, 7, 12], "convent": [6, 7], "classic": 6, "relev": 6, "cutoff": [6, 7, 12], "ouput": 6, "reflect": [6, 7], "arguabl": 6, "mpo": 6, "pub": 6, "ac": 6, "full": [6, 9], "jcim": 6, "9b00237": 6, "slide": 6, "googl": 6, "14pbd9ltxzfpsjhyxykflxnk8q80lhvnjimg8a3wqcrm": 6, "edit": 6, "calcault": 6, "directli": [6, 7], "later": [6, 7], "smilesbaseddescriptor": 6, "architectur": [6, 7], "quickli": 6, "867": 6, "868": 6, "root": [6, 9, 10], "enqueu": [6, 8], "manual": 6, "activation__668a7428ff5cdb271b01c0925e8fea45": 6, "relu": [6, 9], "aggregation__668a7428ff5cdb271b01c0925e8fea45": 6, "aggregation_norm__668a7428ff5cdb271b01c0925e8fea45": 6, "batch_size__668a7428ff5cdb271b01c0925e8fea45": 6, "depth__668a7428ff5cdb271b01c0925e8fea45": 6, "dropout__668a7428ff5cdb271b01c0925e8fea45": 6, "features_generator__668a7428ff5cdb271b01c0925e8fea45": 6, "ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45": 6, "ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45": 6, "final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45": 6, "hidden_size__668a7428ff5cdb271b01c0925e8fea45": 6, "init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45": 6, "max_lr_exp__668a7428ff5cdb271b01c0925e8fea45": 6, "warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45": 6, "chempropregressor_algorithm_hash": 6, "668a7428ff5cdb271b01c0925e8fea45": 6, "301": 6, "6833": 6, "034983241957": 6, "chempropactiv": [6, 9], "chempropaggreg": [6, 9], "ensemble_size__668a7428ff5cdb271b01c0925e8fea45": 6, "epochs__668a7428ff5cdb271b01c0925e8fea45": 6, "chempropfeatures_gener": [6, 9], "6445": 6, "608102397302": 6, "1700": 6, "2300": 6, "safe": 6, "nan": [6, 8, 12, 13], "prompt": 6, "due": [6, 7, 8], "deactiv": 6, "own": 6, "still": 6, "commun": 6, "facilit": [6, 7, 9], "preset": 6, "enqu": 6, "bayesian": 6, "suggest": 6, "split_chemprop": [6, 9], "flag": [6, 7, 12, 13], "n_chemprop_tri": [6, 9], "desir": 6, "undirect": 6, "shown": [6, 7], "aspect": [6, 8], "princip": [6, 7], "expand": 6, "differnt": 6, "rememb": 6, "unless": 6, "alter": [6, 9], "characterist": [6, 7], "too": [6, 9], "limit": [6, 7, 9], "vice": [6, 9], "versa": [6, 9], "extens": [6, 9], "trail": [6, 9], "applic": [6, 7, 9], "chanc": 6, "help": 6, "caruana": 6, "particular": 6, "achiev": [6, 7], "st": 6, "figur": [6, 7], "signal": 6, "aka": 6, "could": [6, 7], "share": [6, 12, 13], "until": [6, 9], "longer": [6, 7], "mt": 6, "onc": [6, 7, 12], "knowledg": 6, "order": [6, 7, 9, 12], "earlier": [6, 7], "accompi": 6, "train_side_info": 6, "clog": 6, "surfac": 6, "area": [6, 7], "psa": 6, "265": 6, "22475": 6, "8088": 6, "883": 6, "32297": 6, "6237": 6, "835": 6, "33334": 6, "2804": 6, "314": 6, "26075": 6, "2533": 6, "498": 6, "278": 6, "18917": 6, "5102": 6, "694": 6, "246": 6, "12575": 6, "7244": 6, "255": 6, "14831": 6, "4338": 6, "895": 6, "302": 6, "26838": 6, "2041": 6, "22298": 6, "match": 6, "train_side_info_cl": 6, "clogp_gt2": 6, "clogs_gt": 6, "acceptors_gt5": 6, "donors_gt0": 6, "area_gt250": 6, "psa_lt0": 6, "aux": [6, 8, 10], "03": 6, "350": 6, "443": 6, "5817": 6, "944008002311": 6, "chemprophyperoptregressor_algorithm_hash": 6, "db9e60f9b8f0a43eff4b41917b6293d9": 6, "ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9": 6, "epochs__db9e60f9b8f0a43eff4b41917b6293d9": 6, "features_generator__db9e60f9b8f0a43eff4b41917b6293d9": 6, "num_iters__db9e60f9b8f0a43eff4b41917b6293d9": 6, "search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9": 6, "chempropsearch_parameter_level": [6, 9], "aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9": 6, "5796": 6, "34392897437": 6, "439": 6, "5795": 6, "086720713623": 6, "470": 6, "241": 6, "5820": 6, "227555999914": 6, "322": 6, "5852": 6, "160071204277": 6, "inlfuenc": 6, "henc": [6, 7], "percent": 6, "product": 6, "user_attrs_trial_ran": 6, "drop": [6, 7, 8], "erron": 6, "__": 6, "params_aux_weight_pc": 6, "conclud": [6, 7], "produc": 6, "overrid": [6, 9], "situat": [6, 7], "along": 6, "potenti": [6, 7], "compris": 6, "incompat": 6, "whilst": [6, 7], "desciptor": 6, "grei": [6, 7], "tial": 6, "what": 6, "design": 6, "unpromis": 6, "why": [6, 7], "poor": 6, "sampler": 6, "incompta": 6, "repeatedli": 6, "hyerparamet": 6, "ident": 6, "9525489095524835": 6, "aux_weight_pc__cfa1990d5153c8812982f034d788d7e": 6, "777": 6, "4824": 6, "686269039228": 6, "7731425652872588": 6, "819": 6, "849": 6, "4409": 6, "946844928445": 6, "791002332112292": 6, "021": [6, 7], "167": 6, "329624779366306": 6, "00015024763718638216": 6, "269": 6, "523": 6, "4396": 6, "722635068717": 6, "559": 6, "753": 6, "4577379164707": 6, "790": 6, "960": 6, "consult": 6, "incompitbl": 6, "algo": [6, 9], "occur": 6, "assign": [6, 7], "doe": [6, 7, 8, 9, 12], "params_algorithm_nam": 6, "move_legend": 6, "upper": [6, 7], "bbox_to_anchor": [6, 7], "overview": 6, "never": 6, "successfulli": 6, "absenc": 6, "8th": 6, "miss": [6, 8, 12, 13], "associ": [6, 7], "asid": 6, "mitig": 6, "overal": [6, 7], "serv": [6, 11], "argument": [6, 8], "tl": 6, "wider": 6, "activation__e0d3a442222d4b38f3aa1434851320db": 6, "aggregation__e0d3a442222d4b38f3aa1434851320db": 6, "aggregation_norm__e0d3a442222d4b38f3aa1434851320db": 6, "batch_size__e0d3a442222d4b38f3aa1434851320db": 6, "depth__e0d3a442222d4b38f3aa1434851320db": 6, "dropout__e0d3a442222d4b38f3aa1434851320db": 6, "features_generator__e0d3a442222d4b38f3aa1434851320db": 6, "ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db": 6, "ffn_num_layers__e0d3a442222d4b38f3aa1434851320db": 6, "final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db": 6, "hidden_size__e0d3a442222d4b38f3aa1434851320db": 6, "init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db": 6, "max_lr_exp__e0d3a442222d4b38f3aa1434851320db": 6, "warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db": 6, "e0d3a442222d4b38f3aa1434851320db": 6, "4937": 6, "540075659691": 6, "ensemble_size__e0d3a442222d4b38f3aa1434851320db": 6, "epochs__e0d3a442222d4b38f3aa1434851320db": 6, "retrain": 6, "954": 6, "043": 6, "5114": 6, "7131239123555": 6, "chempropregressorpretrained_algorithm_hash": 6, "dfc518a76317f23d95e5aa5a3eac77f0": 6, "frzn__dfc518a76317f23d95e5aa5a3eac77f0": 6, "chempropfrzn": [6, 9], "epochs__dfc518a76317f23d95e5aa5a3eac77f0": 6, "cover": 6, "global": 6, "job": [6, 7], "fair": 6, "1545": 6, "tl_studi": 6, "loc": [6, 7], "params_epoch": 6, "fillna": 6, "astyp": [6, 7], "agg": 6, "join": [6, 7], "params_chempropregressor_algorithm_hash": 6, "isna": 6, "annot": 6, "172": 6, "5891": 6, "7552821093905": 6, "140": 6, "5890": 6, "94653501547": 6, "77dfc8230317e08504ed5e643243fbc2": 6, "frzn__77dfc8230317e08504ed5e643243fbc2": 6, "epochs__77dfc8230317e08504ed5e643243fbc2": 6, "181": 6, "right": [6, 7], "ncol": 6, "world": [6, 7, 12, 13], "penultim": [6, 9], "chemprop_model": 6, "heatmap": 6, "predictor": [6, 8], "chemprop_fingerprint": 6, "fingerprint_typ": 6, "mpn": 6, "cbar_kw": 6, "semi": 6, "supervis": 6, "altern": [6, 7], "last_ffn": 6, "howeev": 6, "respect": [6, 7], "kind": [6, 7, 12], "confid": 6, "calibratedclassifiercv": 6, "understand": 6, "predict_proba": [6, 8], "among": 6, "gave": 6, "close": [6, 7], "actual": [6, 7], "topic": 6, "sigmoid": [6, 9], "review": 6, "those": [6, 7, 8], "calibration_curv": 6, "collect": 6, "defaultdict": 6, "precision_scor": 6, "recall_scor": 6, "f1_score": 6, "brier_score_loss": 6, "log_loss": 6, "roc_auc_scor": 6, "n_job": [6, 9, 11], "calibrated_rf": 6, "calibrated_model": 6, "173": 6, "110": 6, "8353535353535354": 6, "calibratedclassifiercvwithva_algorithm_hash": 6, "e788dfbfc5075967acb5ddf9d971ea20": 6, "n_folds__e788dfbfc5075967acb5ddf9d971ea20": 6, "max_depth__e788dfbfc5075967acb5ddf9d971ea20": 6, "n_estimators__e788dfbfc5075967acb5ddf9d971ea20": 6, "max_features__e788dfbfc5075967acb5ddf9d971ea20": 6, "uncalibr": 6, "uncalibrated_rf": 6, "uncalibrated_model": 6, "566": 6, "915": 6, "8185858585858585": 6, "randomforestclassifier_algorithm_hash": 6, "167e1e88dd2a80133e317c78f009bdc9": 6, "max_depth__167e1e88dd2a80133e317c78f009bdc9": 6, "n_estimators__167e1e88dd2a80133e317c78f009bdc9": 6, "max_features__167e1e88dd2a80133e317c78f009bdc9": 6, "conserv": 6, "1000": [6, 7], "random_st": [6, 12, 13], "calibrated_predict": 6, "uncalibrated_predict": 6, "cal_df": 6, "datafram": [6, 7, 8, 11, 12], "boxplot": 6, "melt": 6, "set_ylabel": [6, 7], "behaviour": [6, 7], "curv": [6, 7], "reliabl": 6, "diagram": 6, "against": 6, "figsiz": [6, 7], "ax1": 6, "subplot2grid": 6, "rowspan": 6, "ax2": 6, "perfectli": [6, 7], "pred": 6, "fraction_of_posit": 6, "mean_predicted_valu": 6, "n_bin": 6, "brier": 6, "2f": 6, "hist": 6, "histtyp": 6, "lw": 6, "set_ylim": 6, "legend": [6, 7], "set_titl": 6, "set_xlabel": [6, 7], "center": [6, 7], "tight_layout": [6, 7], "compos": 6, "refin": 6, "notic": 6, "significantli": 6, "cell": 6, "accur": 6, "alloc": 6, "y_prob": 6, "ye": 6, "score_nam": 6, "__name__": 6, "capit": 6, "score_df": 6, "set_index": 6, "decim": 6, "roc": 6, "auc": [6, 8], "184705": 6, "547129": 6, "830565": 6, "744048": 6, "784929": 6, "716536": 6, "175297": 6, "529474": 6, "811209": 6, "818452": 6, "814815": 6, "714104": 6, "va": 6, "multipoint": 6, "0c00476": 6, "margin": [6, 7], "bounari": 6, "548": 6, "537": 6, "8213131313131313": 6, "79765fbec1586f3c917ff30de274fdb4": 6, "n_folds__79765fbec1586f3c917ff30de274fdb4": 6, "max_depth__79765fbec1586f3c917ff30de274fdb4": 6, "n_estimators__79765fbec1586f3c917ff30de274fdb4": 6, "max_features__79765fbec1586f3c917ff30de274fdb4": 6, "uncert": [6, 8], "chem": [6, 7, 8], "allchem": 6, "pandastool": [6, 7], "rdconfig": 6, "datastruct": 6, "train_df": 6, "addmoleculecolumntofram": 6, "includefingerprint": 6, "getmorganfingerprint": 6, "nn": 6, "bulktanimotosimilar": 6, "add": [6, 7, 8, 10], "va_pr": 6, "va_uncert": 6, "dtm": 6, "trelli": 6, "fig": [6, 7], "subplot": [6, 7], "sharei": 6, "regplot": 6, "referenc": 6, "boundari": [6, 7, 12, 14], "neither": 6, "nor": 6, "dissimilar": 6, "cp_pred_ensembl": 6, "cp_uncert_ensembl": 6, "916": 6, "959": 6, "activation__fd833c2dde0b7147e6516ea5eebb2657": 6, "aggregation__fd833c2dde0b7147e6516ea5eebb2657": 6, "aggregation_norm__fd833c2dde0b7147e6516ea5eebb2657": 6, "batch_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "depth__fd833c2dde0b7147e6516ea5eebb2657": 6, "dropout__fd833c2dde0b7147e6516ea5eebb2657": 6, "features_generator__fd833c2dde0b7147e6516ea5eebb2657": 6, "ffn_hidden_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "ffn_num_layers__fd833c2dde0b7147e6516ea5eebb2657": 6, "final_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657": 6, "hidden_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "init_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657": 6, "max_lr_exp__fd833c2dde0b7147e6516ea5eebb2657": 6, "warmup_epochs_ratio__fd833c2dde0b7147e6516ea5eebb2657": 6, "chempropclassifier_algorithm_hash": 6, "fd833c2dde0b7147e6516ea5eebb2657": 6, "65625": 6, "ensemble_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "epochs__fd833c2dde0b7147e6516ea5eebb2657": 6, "midpoint": 6, "mont": 6, "carlo": 6, "virtual": [6, 8], "468": 6, "activation__c73885c5d5a4182168b8b002d321965a": 6, "aggregation__c73885c5d5a4182168b8b002d321965a": 6, "aggregation_norm__c73885c5d5a4182168b8b002d321965a": 6, "batch_size__c73885c5d5a4182168b8b002d321965a": 6, "depth__c73885c5d5a4182168b8b002d321965a": 6, "dropout__c73885c5d5a4182168b8b002d321965a": 6, "features_generator__c73885c5d5a4182168b8b002d321965a": 6, "ffn_hidden_size__c73885c5d5a4182168b8b002d321965a": 6, "ffn_num_layers__c73885c5d5a4182168b8b002d321965a": 6, "final_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a": 6, "hidden_size__c73885c5d5a4182168b8b002d321965a": 6, "init_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a": 6, "max_lr_exp__c73885c5d5a4182168b8b002d321965a": 6, "warmup_epochs_ratio__c73885c5d5a4182168b8b002d321965a": 6, "c73885c5d5a4182168b8b002d321965a": 6, "46875": 6, "ensemble_size__c73885c5d5a4182168b8b002d321965a": 6, "epochs__c73885c5d5a4182168b8b002d321965a": 6, "cp_pred_dropout": 6, "cp_uncert_dropout": 6, "previou": 6, "proabil": 6, "va_predict": 6, "correl": [6, 7], "drouput": 6, "uncertatinti": 6, "cp_uncert_delta": 6, "categor": [6, 12], "unit": [6, 7], "parsabl": 6, "date": 6, "cast": 6, "appropri": 6, "befor": [6, 7, 12], "choic": [6, 12], "822": 6, "862": 6, "4430": 6, "271946796234": 6, "mapie_algorithm_hash": 6, "976d211e4ac64e5568d369bcddd3aeb1": 6, "mapie_alpha__976d211e4ac64e5568d369bcddd3aeb1": 6, "max_depth__976d211e4ac64e5568d369bcddd3aeb1": 6, "n_estimators__976d211e4ac64e5568d369bcddd3aeb1": 6, "max_features__976d211e4ac64e5568d369bcddd3aeb1": 6, "analysi": [6, 7, 8], "perfom": 6, "post": 6, "mapie_pr": 6, "mapie_unc": 6, "bar": 6, "visualis": 6, "errorbar": 6, "yerr": 6, "ab": 6, "fmt": 6, "black": [6, 7], "ecolor": 6, "grai": 6, "elinewidth": 6, "capsiz": 6, "move": [6, 10], "analys": [6, 7], "width": 6, "alpha_impact": 6, "ma": 6, "unc_df": 6, "unc": 6, "reset_index": [6, 7], "concat": 6, "lineplot": 6, "err_styl": 6, "se": 6, "incorpor": 6, "tradition": 6, "unsupport": 6, "kernelexplain": [6, 8], "shaplei": 6, "explan": 6, "slundberg": 6, "game": 6, "credit": 6, "theori": 6, "publish": 6, "comopsit": 6, "540": 6, "_ridg": 6, "userwarn": [6, 7], "matrix": 6, "dual": 6, "34035600917066766": 6, "676421027478709": 6, "dga": 6, "dgp": 6, "dgtot": 6, "sa": 6, "sdc": 6, "sdx": 6, "numhacceptor": 6, "numhdonor": 6, "maxabsestateindex": 6, "maxestateindex": 6, "minabsestateindex": 6, "minestateindex": 6, "qed": 6, "sp": 6, "heavyatommolwt": 6, "exactmolwt": 6, "numvalenceelectron": 6, "numradicalelectron": 6, "maxpartialcharg": 6, "minpartialcharg": 6, "maxabspartialcharg": 6, "minabspartialcharg": 6, "fpdensitymorgan1": 6, "fpdensitymorgan2": 6, "fpdensitymorgan3": 6, "bcut2d_mwhi": 6, "bcut2d_mwlow": 6, "bcut2d_chghi": 6, "bcut2d_chglo": 6, "bcut2d_logphi": 6, "bcut2d_logplow": 6, "bcut2d_mrhi": 6, "bcut2d_mrlow": 6, "avgipc": 6, "balabanj": 6, "bertzct": 6, "chi0": 6, "chi0n": 6, "chi0v": 6, "chi1": 6, "chi1n": 6, "chi1v": 6, "chi2n": 6, "chi2v": 6, "chi3n": 6, "chi3v": 6, "chi4n": 6, "chi4v": 6, "hallkieralpha": 6, "ipc": 6, "kappa1": 6, "kappa2": 6, "kappa3": 6, "labuteasa": 6, "peoe_vsa1": 6, "peoe_vsa10": 6, "peoe_vsa11": 6, "peoe_vsa12": 6, "peoe_vsa13": 6, "peoe_vsa14": 6, "peoe_vsa2": 6, "peoe_vsa3": 6, "peoe_vsa4": 6, "peoe_vsa5": 6, "peoe_vsa6": 6, "peoe_vsa7": 6, "peoe_vsa8": 6, "peoe_vsa9": 6, "smr_vsa1": 6, "smr_vsa10": 6, "smr_vsa2": 6, "smr_vsa3": 6, "smr_vsa4": 6, "smr_vsa5": 6, "smr_vsa6": 6, "smr_vsa7": 6, "smr_vsa8": 6, "smr_vsa9": 6, "slogp_vsa1": 6, "slogp_vsa10": 6, "slogp_vsa11": 6, "slogp_vsa12": 6, "slogp_vsa2": 6, "slogp_vsa3": 6, "slogp_vsa4": 6, "slogp_vsa5": 6, "slogp_vsa6": 6, "slogp_vsa7": 6, "slogp_vsa8": 6, "slogp_vsa9": 6, "estate_vsa1": 6, "estate_vsa10": 6, "estate_vsa11": 6, "estate_vsa2": 6, "estate_vsa3": 6, "estate_vsa4": 6, "estate_vsa5": 6, "estate_vsa6": 6, "estate_vsa7": 6, "estate_vsa8": 6, "estate_vsa9": 6, "vsa_estate1": 6, "vsa_estate10": 6, "vsa_estate2": 6, "vsa_estate3": 6, "vsa_estate4": 6, "vsa_estate5": 6, "vsa_estate6": 6, "vsa_estate7": 6, "vsa_estate8": 6, "vsa_estate9": 6, "fractioncsp3": 6, "heavyatomcount": 6, "nhohcount": 6, "nocount": 6, "numaliphaticcarbocycl": 6, "numaliphaticheterocycl": 6, "numaliphaticr": 6, "numaromaticcarbocycl": 6, "numaromaticheterocycl": 6, "numaromaticr": 6, "numheteroatom": 6, "numrotatablebond": 6, "numsaturatedcarbocycl": 6, "numsaturatedheterocycl": 6, "numsaturatedr": 6, "ringcount": 6, "mollogp": 6, "molmr": 6, "fr_al_coo": 6, "fr_al_oh": 6, "fr_al_oh_notert": 6, "fr_arn": 6, "fr_ar_coo": 6, "fr_ar_n": 6, "fr_ar_nh": 6, "fr_ar_oh": 6, "fr_coo": 6, "fr_coo2": 6, "fr_c_o": 6, "fr_c_o_nocoo": 6, "fr_c_": 6, "fr_hoccn": 6, "fr_imin": 6, "fr_nh0": 6, "fr_nh1": 6, "fr_nh2": 6, "fr_n_o": 6, "fr_ndealkylation1": 6, "fr_ndealkylation2": 6, "fr_nhpyrrol": 6, "fr_sh": 6, "fr_aldehyd": 6, "fr_alkyl_carbam": 6, "fr_alkyl_halid": 6, "fr_allylic_oxid": 6, "fr_amid": 6, "fr_amidin": 6, "fr_anilin": 6, "fr_aryl_methyl": 6, "fr_azid": 6, "fr_azo": 6, "fr_barbitur": 6, "fr_benzen": 6, "fr_benzodiazepin": 6, "fr_bicycl": 6, "fr_diazo": 6, "fr_dihydropyridin": 6, "fr_epoxid": 6, "fr_ester": 6, "fr_ether": 6, "fr_furan": 6, "fr_guanido": 6, "fr_halogen": 6, "fr_hdrzine": 6, "fr_hdrzone": 6, "fr_imidazol": 6, "fr_imid": 6, "fr_isocyan": 6, "fr_isothiocyan": 6, "fr_keton": 6, "fr_ketone_topliss": 6, "fr_lactam": 6, "fr_lacton": 6, "fr_methoxi": 6, "fr_morpholin": 6, "fr_nitril": 6, "fr_nitro": 6, "fr_nitro_arom": 6, "fr_nitro_arom_nonortho": 6, "fr_nitroso": 6, "fr_oxazol": 6, "fr_oxim": 6, "fr_para_hydroxyl": 6, "fr_phenol": 6, "fr_phenol_noorthohbond": 6, "fr_phos_acid": 6, "fr_phos_est": 6, "fr_piperdin": 6, "fr_piperzin": 6, "fr_priamid": 6, "fr_prisulfonamd": 6, "fr_pyridin": 6, "fr_quatn": 6, "fr_sulfid": 6, "fr_sulfonamd": 6, "fr_sulfon": 6, "fr_term_acetylen": 6, "fr_tetrazol": 6, "fr_thiazol": 6, "fr_thiocyan": 6, "fr_thiophen": 6, "fr_unbrch_alkan": 6, "fr_urea": 6, "shap_valu": 6, "2227": 6, "042023e": 6, "2229": 6, "025199e": 6, "2228": 6, "802158e": 6, "2267": 6, "387276e": 6, "2230": 6, "106653e": 6, "1784": 6, "598471e": 6, "1785": 6, "584": 6, "ns": 6, "995": 6, "996": 6, "845": 6, "846": 6, "1375": 6, "1376": 6, "s1": 6, "n1c": 6, "1570": 6, "contrinubt": 6, "datset": 6, "unscaledphyschemjazzi": 6, "rank": [6, 8], "usag": 6, "978": 6, "032": 6, "818": 6, "t": [6, 7, 9], "kekul": 6, "unkekul": 6, "rational": 6, "rationale_scor": 6, "386": 6, "097": 6, "ch3": 6, "ch": 6, "389": [6, 7], "151": 6, "c1c": 6, "c1n": 6, "ch2": 6, "nh2": 6, "nn1cc1c": 6, "384": 6, "720": 6, "c1cccc": 6, "871": 6, "854": 6, "contian": 6, "second": 6, "dummi": 6, "third": 6, "smallest": 6, "made": [6, 7], "fourth": 6, "irregularli": 6, "xc50": [6, 7], "log10": [6, 7, 12, 14], "6th": 6, "convers": [6, 7, 12, 14], "logbas": [6, 7, 12, 14], "logneg": [6, 7, 12, 14], "negat": [6, 7, 12, 14], "transformed_studi": 6, "transform_exampl": 6, "028": 6, "5959493772536109": 6, "6571993250300608": 6, "169": 6, "1511102853256885": 6, "2487063317112765": 6, "288": 6, "6714912461080983": 6, "2725944467796781": 6, "369": 6, "194926264155893": 6, "395": 6, "7520919188596032": 6, "469": 6, "7803723847416691": 6, "499": 6, "6397753979196248": 6, "528": 6, "151110299986041": 6, "151110111437006": 6, "5410418750776741": 6, "612": 6, "7183231137124538": 6, "640": 6, "2721824844856162": 6, "716": 6, "1900929470222508": 6, "745": 6, "774": 6, "5585323973564646": 6, "3169218304262786": 6, "980": 6, "7974925066137679": 6, "008": 6, "218395226466336": 6, "039": 6, "1474226942497083": 6, "054": 6, "083": 6, "0239005731675412": 6, "160": 6, "191": 6, "178901060853144": 6, "27137790098830755": 6, "2710284516876423": 6, "361": 6, "6273152492418945": 6, "438": 6, "496": 6, "1907041717628215": 6, "3209075619139279": 6, "545": 6, "2709423025014604": 6, "609": 6, "3133943310851415": 6, "657": 6, "257769959239938": 6, "735": 6, "40359637945134746": 6, "817": 6, "4127882135896648": 6, "905": 6, "9246005133276612": 6, "003": 6, "8908739215746116": 6, "035": 6, "107536316777608": 6, "067": 6, "098": 6, "054360360588395": 6, "129": 6, "5428179904345867": 6, "5696273642213351": 6, "194": 6, "27099769667470536": 6, "1580741708125475": 6, "2709564785634315": 6, "10900413894771653": 6, "268": 6, "2709799905898163": 6, "13705914456987853": 6, "27097230608092054": 6, "12790870116376127": 6, "337": 6, "2709499903064464": 6, "10123180962907431": 6, "2710895886052581": 6, "26565663774320425": 6, "411": 6, "2708711012023424": 6, "005637048678674678": 6, "27092322402109364": 6, "06902647427781451": 6, "482": 6, "2712140349882": 6, "4076704953178294": 6, "515": 6, "27090080367174": 6, "04187106800188596": 6, "550": 6, "27086925247190047": 6, "003371853599610078": 6, "2708933298483799": 6, "032781796328385376": 6, "623": 6, "27087205624489635": 6, "006806773659187283": 6, "658": 6, "2708869511176179": 6, "025009489814943348": 6, "695": 6, "2711465077924297": 6, "3311125627707556": 6, "2708756855936628": 6, "011249102380159387": 6, "766": 6, "27087301924224993": 6, "007985924302396141": 6, "802": 6, "2708685399954944": 6, "00249856291483601": 6, "27121879554836553": 6, "4130244908975993": 6, "880": 6, "2708693196600531": 6, "0034541978803366022": 6, "918": 6, "27110195265802334": 6, "27994943662091765": 6, "956": 6, "2708682582859318": 6, "0021532199144365088": 6, "27087024523986086": 6, "0045884092728113585": 6, "27087351807632193": 6, "008596600952859433": 6, "2710818633795896": 6, "2567049271070902": 6, "109": 6, "27103241786565463": 6, "1990111983307052": 6, "146": 6, "2710350879598171": 6, "20214459724424078": 6, "183": 6, "2708688328221868": 6, "00285750520671645": 6, "27100832234449684": 6, "17064008990759916": 6, "258": 6, "27268613236193845": 6, "8725420109733135": 6, "296": 6, "27119617446689237": 6, "387533542012365": 6, "2708691110831552": 6, "0031985656730512953": 6, "27086852174155146": 6, "002476186542950981": 6, "27135383618835024": 6, "5626643670396761": 6, "449": 6, "2709819654433871": 6, "1394077979875128": 6, "488": [6, 8], "2718548944510965": 6, "0858347526799794": 6, "1508084699212935": 6, "03329943145150872": 6, "00025672309762227527": 6, "27249853374634975": 6, "702026434077893": 6, "604": 6, "27095660957755363": 6, "10916094511173127": 6, "643": 6, "27102160995407715": 6, "18630665884100353": 6, "681": 6, "27095708822582026": 6, "10973377642487026": 6, "27088222008661084": 6, "019235980282946118": 6, "762": 6, "2708703086029017": 6, "004666043957133775": 6, "799": 6, "27095279044622245": 6, "1045877457096882": 6, "840": 6, "2709408288690431": 6, "09023455456986404": 6, "9289218260898663": 6, "8200088368788958": 6, "917": 6, "27086675101898655": 6, "00030502148265565063": 6, "957": 6, "2710491243757999": 6, "21858260742423916": 6, "001": 6, "1491615840508995": 6, "024725853754515203": 6, "040": 6, "2709462479577586": 6, "0967427718847167": 6, "default_studi": 6, "252": 6, "332": 6, "3501": 6, "942111261296": 6, "5451": 6, "207265576796": 6, "459": 6, "1049201007814": 6, "9964": 6, "541364058234": 6, "3543": 6, "953608539901": 6, "570": 6, "6837": 6, "057544630979": 6, "613": 6, "2507": 6, "1794330606067": 6, "650": 6, "21534": 6, "719219668405": 6, "726": 6, "2899": 6, "736555614694": 6, "294e": 6, "760e": 6, "21674": 6, "445000284228": 6, "1049203123567": 6, "1049192609138": 6, "877": 6, "3630": 6, "72768093756": 6, "907": 6, "3431": 6, "942816967268": 6, "6908": 6, "462045154488": 6, "5964": 6, "65935954044": 6, "036": 6, "21070": 6, "107195348774": 6, "065": 6, "4977": 6, "068508997133": 6, "133": 6, "8873": 6, "669262669626": 6, "21387": 6, "63697424318": 6, "202": 6, "9958": 6, "573006910125": 6, "5182695600183": 6, "428": 6, "20684": 6, "56412138056": 6, "544": 6, "150": 6, "3435882510586": 6, "571": 6, "7068": 6, "705383113378": 6, "599": 6, "7150": 6, "482090052133": 6, "077": 6, "203": 6, "93637462922368": 6, "2570": 6, "5111262532305": 6, "21987": 6, "659957192194": 6, "9889": 6, "493204596083": 6, "413": 6, "7172": 6, "208490771303": 6, "9804": 6, "512701665093": 6, "555": 6, "585": 6, "9165": 6, "74081120673": 6, "0280270800017": 6, "161": 6, "1602933782954": 6, "888460860864": 6, "864": 6, "8414": 6, "932694243476": 6, "2270": 6, "540799189147": 6, "10383": 6, "79559309305": 6, "20815": 6, "025469865475": 6, "206": 6, "7560385808573": 6, "5264": 6, "4700789389035": 6, "3668": 6, "255064135424": 6, "156": 6, "12174877890536": 6, "793408178086295": 6, "99902820845678": 6, "157": 6, "371632749506": 6, "88307313087517": 6, "140915461519354": 6, "218": 6, "153": 6, "66773675231477": 6, "177324126813716": 6, "77906017834145": 6, "186": 6, "52056745848623": 6, "4565714180547": 6, "6710444346508": 6, "294": 6, "30976119334312": 6, "62916671166313": 6, "023639423189294": 6, "053696900694": 6, "914617418880486": 6, "31140591484044": 6, "201": 6, "33573874994386": 6, "569769302718845": 6, "5781354926491789": 6, "412": 6, "190": 6, "1384885119049": 6, "87666716965626": 6, "2537791489618": 6, "451": 6, "076949848299": 6, "9559574710535281": 6, "0032830967319653665": 6, "764974036324": 6, "03910427457823": 6, "406811480459925": 6, "164": 6, "4477304958181": 6, "701690847791482": 6, "819274780536123": 6, "567": 6, "87939164358104": 6, "32187661108304": 6, "660320437878754": 6, "607": 6, "01705178481896": 6, "61397716361812": 6, "603665957830847": 6, "645": 6, "155": 6, "73257312230092": 6, "759645965959294": 6, "503212714246787": 6, "684": 6, "154": 6, "46848394144124": 6, "8546740801317": 6, "35327336610912": 6, "724": 6, "20421802817864": 6, "57596974747163": 6, "84756262407801": 6, "51233215278089": 6, "3564642040401464": 6, "5034542273159819": 6, "207": 6, "68667089892196": 6, "034895878929095": 6, "03653571911285094": 6, "842": 6, "102": 6, "52277054278186": 6, "01961499216484045": 6, "670937191883546": 6, "881": 6, "28722475694815": 6, "012434370509176538": 6, "34222704431493": 6, "921": 6, "87402050281146": 6, "008452015347522093": 6, "914863578437455": 6, "38847505937936": 6, "01573542234868893": 6, "99307522974174": 6, "999": 6, "96336195786391": 6, "009845516063879428": 6, "59422914099683": 6, "19345618324213": 6, "009382525091504246": 6, "35573659237662": 6, "080": 6, "30772721342525": 6, "010579672066291478": 6, "35550323165882": 6, "23970902543148": 6, "013369359066405863": 6, "4744102498801": 6, "34331248758777": 6, "011398351701814368": 6, "54146340620301": 6, "195": 6, "104535853341": 6, "011708779850509646": 6, "682286191624579e": 6, "0653774146952": 6, "009806826677473646": 6, "90274406278985": 6, "64646042813787": 6, "0038598153381434685": 6, "20918134828555": 6, "68420472011734": 6, "0032474576673554513": 6, "35551178979624": 6, "85985201823172": 6, "003187930738019005": 6, "29431603544847": 6, "399": 6, "21583898009355": 6, "003122319313153475": 6, "83526418992966": 6, "437": 6, "34787242859676": 6, "002781955938462633": 6, "76228981520067": 6, "478": 6, "70914272129673": 6, "0023173546614751305": 6, "3000082904498813": 6, "519": 6, "10492031097328": 6, "002606064524407": 6, "7861330234653922e": 6, "1049154281806": 6, "0029210589377408366": 6, "200933937391094e": 6, "10492028002287": 6, "06431564840324226": 6, "2981641934644904e": 6, "56066541774658": 6, "0010848843623839548": 6, "151493073951163": 6, "76337597039308": 6, "004134805589645341": 6, "88115336652716": 6, "58009587759925": 6, "004763418454688096": 6, "02920758025023": 6, "113": 6, "35230417583477": 6, "0009098023238189749": 6, "57100980886017": 6, "809": 6, "30807467406214": 6, "03739791555156691": 6, "12818940557025": 6, "850": 6, "44100655116532": 6, "006380481141720477": 6, "4882351186755": 6, "891": 6, "35181001564942": 6, "0036244007454981787": 6, "608797806921866": 6, "124": 6, "3719027482892": 6, "0014198536004321608": 6, "05588994284273": 6, "28568052794907": 6, "005434972462746285": 6, "215759789700954": 6, "06": 6, "018": 6, "20325": 6, "66479442037": 6, "9696417046589247": 6, "132": 6, "21507621375022": 6, "0004528978867024753": 6, "80386923876023": 6, "85570350846885": 6, "0016948043699497222": 6, "455627755557016": 6, "contrast": [6, 7], "relplot": 6, "col": [6, 7], "facet_kw": 6, "axisgrid": [6, 7], "facetgrid": 6, "0x7fb3797f6b30": 6, "noramlis": 6, "unlog": 6, "yield": [6, 7, 12, 13], "mse": 6, "1126": 6, "56968721": 6, "20237903": 6, "revers": [6, 7, 12, 14], "onto": 6, "action": 6, "importantli": 6, "easili": [6, 7], "94824194": 6, "92008694": 6, "instruct": 6, "untransform": 6, "wish": 6, "cut": [6, 7], "10um": 6, "ptr_config_log_transform": 6, "ptr_transformed_studi": 6, "ptr_and_transform_exampl": 6, "518": 6, "002341918451736245": 6, "805": 6, "0024908979029632677": 6, "847": 6, "007901407671048116": 6, "888": 6, "00496231674623194": 6, "0026848278110363512": 6, "0010872728889471893": 6, "000": 6, "008706109201510277": 6, "027": 6, "093": 6, "002999462459688867": 6, "00825680029907454": 6, "148": 6, "007901407993550248": 6, "007901405163828307": 6, "0021653695362066753": 6, "002869169486971014": 6, "0010855652626111146": 6, "00550533804299308": 6, "002236800860454562": 6, "006105985607235417": 6, "004846526544994462": 6, "006964668794465202": 6, "670": 6, "699": 6, "008384326901042542": 6, "730": 6, "001082194093844804": 6, "761": 6, "0010807084256204563": 6, "948": 6, "005505338042993082": 6, "979": 6, "005247934991526694": 6, "0010803393728928605": 6, "005218354425190125": 6, "138": 6, "004999207507691546": 6, "0015694919308122948": 6, "326": 6, "0019757694194001384": 6, "421": 6, "002341918451736244": 6, "453": 6, "00368328296527152": 6, "521": 6, "003412828259848677": 6, "551": 6, "004412110711416997": 6, "616": 6, "647": 6, "0021743798524909573": 6, "0022761245849848527": 6, "0010805768178458735": 6, "750": 6, "001080400188305814": 6, "784": 6, "0010805009783570441": 6, "0010804680472500541": 6, "0010803723579987025": 6, "890": 6, "001080969596032512": 6, "925": 6, "0010800333715082816": 6, "0010802574700236845": 6, "0010814994986419817": 6, "037": 6, "001080161136846237": 6, "071": 6, "0010800254136811547": 6, "107": 6, "0010801290036870739": 6, "001080037482216557": 6, "179": 6, "0010801015705851358": 6, "0010812122378841013": 6, "0010800531021304936": 6, "291": 6, "00108004162698813": 6, "328": 6, "0010800223466649803": 6, "364": 6, "0010815197263834202": 6, "0010800257029027847": 6, "0010810223438672223": 6, "0010800211339555509": 6, "513": 6, "0010800296871141684": 6, "0010800437739166451": 6, "0010809366267195716": 6, "627": 6, "001080725386603206": 6, "0010807368035830652": 6, "704": 6, "0010800236072155854": 6, "741": 6, "0010806223050773966": 6, "779": 6, "0010876516369772728": 6, "00108142358144501": 6, "857": 6, "0010800248050489667": 6, "894": 6, "001080022268085466": 6, "0010820922958715991": 6, "969": 6, "0010805094397523254": 6, "007": 6, "0010841993753324146": 6, "007899735988203994": 6, "086": 6, "0010868762004637347": 6, "001080400750193767": 6, "163": 6, "0010806791616300314": 6, "0010804028029753213": 6, "0010800812188506515": 6, "0010800299598580359": 6, "0010803843696362083": 6, "001080333048974234": 6, "394": [6, 7], "432": 6, "001080014645182176": 6, "473": 6, "0010807968027851892": 6, "516": 6, "007907028395366658": 6, "553": 6, "0010803563024666294": 6, "inted": 6, "opter": 6, "probabilst": 6, "lossi": 6, "anywai": 6, "intention": 6, "clip": [6, 7], "cannot": 6, "timepoint": 6, "aux_column": [6, 8], "accord": [6, 7, 8], "aux_col_config": 6, "aux_descriptors_dataset": 6, "train_with_conc": 6, "aux1": 6, "aux_col_studi": 6, "covariate_exampl": 6, "aux1_model": 6, "323": 6, "5186": 6, "767663956718": 6, "522": 6, "4679": 6, "740824270968": 6, "575": 6, "4890": 6, "6705099499995": 6, "3803": 6, "9324375833753": 6, "667": 6, "3135": 6, "6497388676926": 6, "2518812859375": 6, "778": 6, "4309": 6, "124112370974": 6, "30159424580074": 6, "897": 6, "4357": 6, "02827013125": 6, "1437929337522": 6, "45281013": 6, "shape": [6, 7], "thrown": [6, 8], "prediciton": 6, "regardless": 6, "utilis": [6, 7], "seper": 6, "vector_covariate_config": 6, "precomputed_descriptor": 6, "train_with_fp": 6, "aux_transform": [6, 8], "vector_covariate_studi": 6, "vector_aux_exampl": 6, "vector_covariate_model": 6, "2200": 6, "6817959410578": 6, "011994365911634164": 6, "95660880078": 6, "029071783512897825": 6, "5798": 6, "564494725643": 6, "022631709120790048": 6, "2198637677605415": 6, "972": 6, "2899178898048": 6, "8916194399474267": 6, "556": 6, "3336440433073": 6, "5914093983615214": 6, "614": 6, "653": 6, "3036472748931": 6, "6201811079699818": 6, "3807": 6, "8035919667395": 6, "901e": 6, "892e": 6, "914e": 6, "752": 6, "5019": 6, "459500770764": 6, "1376436589359351": 6, "4017711284796": 6, "893": 6, "771": 6, "797115414836": 6, "74340620175102": 6, "train_smil": [6, 8], "train_i": [6, 8], "train_aux": [6, 8], "test_smil": [6, 8], "test_i": [6, 8], "test_aux": [6, 8], "512": 6, "legth": 6, "39754917": 6, "465": 6, "06352766": 6, "52031134": 6, "341": 6, "89875316": 6, "371": 6, "5516046": 6, "85042171": 6, "436": 6, "33406203": 6, "91439129": 6, "80585907": 6, "346": 6, "48565041": 6, "protein": [6, 12, 14], "alongsid": 6, "chemic": [6, 7, 12, 13], "sequenc": [6, 12, 14], "former": 6, "wherea": 6, "latter": [6, 7], "interact": 6, "basi": [6, 7], "toxinpred3": 6, "No": [6, 9, 12], "demponstr": 6, "zscale_covariate_config": 6, "zscale_covariate_studi": 6, "zscale_aux_exampl": 6, "zscale_covariate_model": 6, "458": 6, "8886986575836505": 6, "kneighborsclassifier_algorithm_hash": 6, "e51ca55089f389fc37a736adb2aa0e42": 6, "metric__e51ca55089f389fc37a736adb2aa0e42": 6, "n_neighbors__e51ca55089f389fc37a736adb2aa0e42": 6, "weights__e51ca55089f389fc37a736adb2aa0e42": 6, "unlik": 6, "21269231": 6, "91153846": 6, "29038462": 6, "69846154": 6, "22230769": 6, "99521739": 6, "59826087": 6, "34695652": 6, "03086957": 6, "13391304": 6, "08083333": 6, "6125": 6, "82916667": 6, "05083333": 6, "56083333": 6, "02178571": 6, "91785714": 6, "45392857": 6, "37642857": 6, "03107143": 6, "93357143": 6, "78964286": 6, "62928571": 6, "50857143": 6, "50107143": 6, "1232": 6, "3364": 6, "2328": 6, "1368": 6, "2304": 6, "7062": 6, "x_": 6, "vmin": 6, "vmax": 6, "cmap": 6, "spectral": 6, "248bit": 6, "128bit": 6, "minimz": 6, "consist": 6, "generaliz": 6, "minimize_std_dev": 6, "minimise_std_dev": [6, 9], "std": [6, 7, 12, 14], "dev": [6, 7], "example_multi": 6, "parameter_analysi": 6, "set_metric_nam": 6, "740": 6, "4008740644240856": 6, "9876203329634794": 6, "331": 6, "3561484909673425": 6, "9875061220991906": 6, "472": 6, "7856521165563053": 6, "21863029956806662": 6, "525": 6, "9125905675311808": 6, "7861693342190089": 6, "603": 6, "5238765412750027": 6, "2789424384877304": 6, "5348363849100434": 6, "5741725628917808": 6, "746": 6, "0072511048320134": 6, "2786318125997387": 6, "9625764609276656": 6, "27575381401822424": 6, "1114006274062536": 6, "7647766019001522": 6, "7801680863916906": 6, "2725738454485389": 6, "121": 6, "785652116470164": 6, "21863029955530786": 6, "152": 6, "785651973436432": 6, "21863032832257323": 6, "6101359993004856": 6, "3011280543457062": 6, "209": 6, "5361950698070447": 6, "23560786523195643": 6, "5356113574175657": 6, "5769721187181905": 6, "543430366921729": 6, "514747412346662": 6, "508": [6, 8], "5194661889628072": 6, "40146744515282495": 6, "659": 6, "659749443628722": 6, "6659085938841998": 6, "876": 6, "1068495306229729": 6, "24457822094737378": 6, "8604898820838102": 6, "7086875504668667": 6, "949": 6, "5919869916997383": 6, "2367498627927979": 6, "2497762395862362": 6, "10124660026536195": 6, "205": 6, "study_name_1": 6, "669": 6, "0621601907738047": 6, "2749020946925899": 6, "xxx": 6, "values_neg_mean_squared_error": 6, "values_standard": 6, "twinx": 6, "r": 6, "floor": 6, "ceil": 6, "align": 6, "set_ytick": 6, "linspac": 6, "set_xtick": 6, "text": [6, 7, 8, 12], "pareto": 6, "front": 6, "plot_pareto_front": 6, "plot_param_import": 6, "dictionari": [6, 10], "ordereddict": 6, "descend": 6, "algortihm": 6, "impact": 6, "durat": 6, "total_second": 6, "target_nam": 6, "relationship": 6, "plot_parallel_coordin": [6, 8, 9, 11], "param": [6, 7, 9, 10], "taken": [6, 7], "101": 6, "precomputed_config": 6, "precomputed_studi": 6, "precomputed_exampl": 6, "precomputed_model": 6, "785": 6, "788": 6, "3014": 6, "274803630188": 6, "471088599086": 6, "03592375122963953": 6, "511": 6, "3029": 6, "113810544919": 6, "8153295905650357": 6, "4358": 6, "575772003129": 6, "unseen": 6, "caus": 6, "111": 6, "new_molecul": 6, "112": 6, "tempfil": 6, "temp": [6, 7], "store": [6, 7, 11], "temporari": [6, 10], "extract": 6, "1st": 6, "example_fp": 6, "namedtemporaryfil": 6, "temp_fil": 6, "len": [6, 7], "to_csv": 6, "292": 6, "65709987": 6, "64327077": 6, "common": 7, "proper": 7, "optuna_az": 7, "process": [7, 8], "draw": 7, "ipythonconsol": 7, "ipython": 7, "displai": 7, "os": 7, "listdir": 7, "isfil": 7, "walk": 7, "handi": 7, "var": 7, "1v": 7, "9y_z128d7gvcp8mf8q0pz3ch0000gq": 7, "ipykernel_82497": 7, "796203442": 7, "deprecationwarn": 7, "deprec": 7, "med": 7, "titles": 7, "fontsiz": 7, "labels": 7, "xtick": 7, "ytick": 7, "rcparam": 7, "whitegrid": 7, "set_styl": 7, "white": 7, "inlin": 7, "3336016810": 7, "matplotlibdeprecationwarn": 7, "ship": 7, "v0_8": 7, "api": [7, 8], "boolean": 7, "nomin": 7, "convert": [7, 12], "conduct": 7, "primarydf": 7, "loadsdf": 7, "inchi": 7, "skeletonspher": 7, "nm": 7, "id": 7, "romol": 7, "ic50": 7, "\u00b5m": 7, "c1ccc2c": 7, "co2": 7, "004320939": 7, "1s": 7, "c8h7no2": 7, "c10": 7, "qrcgftxrxymjo": 7, "uhfffaoysa": 7, "86075": 7, "kinas": 7, "p38": 7, "rdchem": 7, "0x7fd1c0d34040": 7, "c1ccc": 7, "ccc2ccccc2occ3ccc": 7, "882397308": 7, "c22h20o3": 7, "c23": 7, "ytdaoqyeyfcini": 7, "89637": 7, "kd": 7, "retinoid": 7, "receptor": 7, "0x7fd1f8f965e0": 7, "130299026": 7, "0x7fd1f8f96650": 7, "nh": 7, "48148606": 7, "c9h7no": 7, "c11": 7, "lisfmebwquvkpj": 7, "n93": 7, "n82": 7, "n65": 7, "n36": 7, "n33": 7, "ki": 7, "nki": 7, "carbon": 7, "anhydras": 7, "xii": 7, "ncarbon": 7, "0x7fd1f8f966c0": 7, "nc1ccccn1": 7, "c7h8n2o": 7, "h2": 7, "5h": 7, "qrokotbwfzitjz": 7, "86233": 7, "nicotin": 7, "phosphoribosyltransferas": 7, "0x7fd1f8f96730": 7, "renam": 7, "conveni": [7, 8, 9, 12], "rest": 7, "moltosmil": 7, "isomericsmil": 7, "c1coc2ccccc2n1": 7, "004321": 7, "coc2ccccc2ccc2ccccc2": 7, "882397": 7, "130299": 7, "c1ccc2ccccc2": 7, "481486": 7, "stick": 7, "engin": 7, "assum": [7, 12, 13], "stage": 7, "slightli": 7, "pose": 7, "wise": 7, "uniqu": 7, "outlin": 7, "occurr": 7, "preserv": 7, "vari": 7, "recommend": 7, "abil": 7, "being": 7, "df_po": 7, "dedup": [7, 12], "df_rnd": 7, "df_max": 7, "df_avg": 7, "df_med": 7, "deduplidc": 7, "397": 7, "indici": 7, "coc1cc2ncnc": 7, "nc3ccc": 7, "scc4ccccc4": 7, "cl": 7, "c3": 7, "c2cc1oc": 7, "282579": 7, "912929": 7, "cc1cccc": 7, "nc2ncnc3ccc": 7, "c4ccccc4": 7, "cc23": 7, "n2cc": 7, "cc2c": 7, "nc2cccc": 7, "n2": 7, "065502": 7, "390": 7, "958607": 7, "392": 7, "oc2cccc": 7, "cn1nc": 7, "c2cnc": 7, "c3ccc": 7, "nc1c1": 7, "oc1nc": 7, "oc2cc": 7, "c3ccccc3": 7, "c3cccc": 7, "cn": 7, "936291": 7, "uniquify_by_posit": 7, "uniquify_randomli": 7, "essenc": 7, "uniquify_by_valu": 7, "highest": 7, "minim": [7, 9], "densiti": 7, "dpi": 7, "kdeplot": 7, "shade": 7, "orang": 7, "ndigit": 7, "blue": 7, "keepaverag": 7, "deeppink": 7, "hold": [7, 8], "assess": 7, "aim": 7, "simpli": 7, "sai": 7, "veri": 7, "intern": [7, 10], "resembl": 7, "easiest": 7, "especi": 7, "reli": 7, "stochast": 7, "initi": [7, 8, 9], "train_ran": 7, "test_ran": 7, "time_column": 7, "old": 7, "datapoint": [7, 10, 12, 13], "accru": 7, "entri": [7, 12, 13], "timestamp": 7, "top": 7, "df_med_tempor": 7, "fake": 7, "insert": 7, "nccccccoc1ccc2c": 7, "n1cc": 7, "cc1c": 7, "684240": 7, "1037": 7, "481464": 7, "1036": 7, "c1cn": 7, "n2c": 7, "nc3cccc": 7, "n3": 7, "cc3cc3": 7, "732625": 7, "1035": 7, "568332": 7, "1034": 7, "790259": 7, "1033": 7, "train_tempor": 7, "test_tempor": 7, "highli": 7, "skew": 7, "respcol": 7, "fd": [7, 12, 13], "histogram": [7, 12, 13], "determin": [7, 12, 13], "balanc": 7, "train_str": 7, "test_str": 7, "realist": 7, "deplopi": 7, "emul": [7, 12, 13], "hop": 7, "opportun": 7, "seri": 7, "push": 7, "domain": 7, "realibl": 7, "challeng": 7, "scaf_split": 7, "train_sca": 7, "test_sca": 7, "ground": 7, "df_val": 7, "roughli": [7, 9], "evid": 7, "pronounc": 7, "dodgerblu": 7, "middl": 7, "saffold": 7, "discuss": 7, "propreti": 7, "endpoint": 7, "routin": 7, "linearis": 7, "variat": 7, "gaussian": 7, "realiti": 7, "nearli": 7, "exhibit": 7, "superior": 7, "wide": 7, "xc50_data": 7, "keepallnodedupl": [7, 12], "pxc50_data": 7, "zip": 7, "jointplot": 7, "suptitl": 7, "plot_margin": 7, "rugplot": 7, "crimson": 7, "height": 7, "clip_on": 7, "jointgrid": 7, "0x7fd1f984f670": 7, "heteroscedast": 7, "homoscedast": 7, "transorm": 7, "0x7fd1eb924700": 7, "logartihm": 7, "power": [7, 12, 14], "um": 7, "dataset_transform": 7, "THe": 7, "0x7fd1db908550": 7, "had": 7, "reverse_transform": [7, 12], "0x7fd1bc05b4c0": 7, "mervin": 7, "framework": 7, "somewher": 7, "unavoid": 7, "ideal": 7, "deviat": [7, 12, 14], "\u03c3": 7, "heterogen": 7, "versu": 7, "assimil": 7, "hypothesi": 7, "degre": 7, "p_": 7, "activityt": 7, "cumul": 7, "cdf": 7, "eq": 7, "equal": [7, 9], "delta": 7, "vec": 7, "frac": 7, "erf": 7, "overrightarrow": 7, "sigma": 7, "concret": 7, "arbitrari": 7, "unknown": 7, "therefor": 7, "schemat": 7, "lookup": 7, "tabl": 7, "sd": 7, "scenario": [7, 12, 13], "philosoph": 7, "delimit": [7, 12, 14], "operand": 7, "censor": 7, "far": 7, "granular": 7, "therebi": 7, "combin": 7, "becom": 7, "jcheminf": 7, "biomedcentr": 7, "1186": 7, "s13321": 7, "00539": 7, "sec12": 7, "pxc50_threshold": 7, "pxc50_std": 7, "exmapl": 7, "ptr_data": 7, "gather": 7, "certainti": 7, "lower_reproduc": 7, "upper_reproduc": 7, "dataload": 7, "somewhat": 7, "invert": 7, "bell": 7, "kde": 7, "behav": 7, "patch": 7, "mpatch": 7, "line2d": 7, "ax_joint": 7, "axhlin": 7, "linestyl": 7, "ax_marg_x": 7, "axvlin": 7, "ax_marg_i": 7, "region": 7, "uncert_color": 7, "purpl": 7, "uncert_region": 7, "rectangl": 7, "fill": 7, "add_patch": 7, "box": 7, "nthreshold": 7, "nptr": 7, "nregion": 7, "fancybox": 7, "borderaxespad": 7, "leg": 7, "get_legend": 7, "legendhandl": 7, "set_color": 7, "set_alpha": 7, "tight": 7, "layout": 7, "subplots_adjust": 7, "set_size_inch": 7, "1725493911": 7, "attribut": 7, "minor": 7, "legend_handl": 7, "dash": 7, "histrogram": 7, "aforement": 7, "ptrtransform": [7, 12, 14], "ptr_transform": 7, "histplot": 7, "stat": 7, "scipi": 7, "resp_col": [7, 8], "pearsonr": 7, "std_df": 7, "groupbi": 7, "mdn_df": 7, "std_vs_median": 7, "suffix": 7, "_std": 7, "_median": 7, "dropna": 7, "activity_std": 7, "activity_median": 7, "088539": 7, "674782": 7, "265123": 7, "138620": 7, "157605": 7, "stdev": 7, "stat_func": 7, "plot_joint": 7, "zorder": 7, "0x7fd1def2f8b0": 7, "signific": 7, "assumpt": 7, "fulfil": 7, "ptr_train_ran": 7, "ptr_test_ran": 7, "ptr_train_str": 7, "ptr_test_str": 7, "ptr_train_tempor": 7, "ptr_test_tempor": 7, "ptr_train_sca": 7, "ptr_test_sca": 7, "xlim": 7, "pypoetri": 7, "virtualenv": 7, "_qsktrft": 7, "py3": 7, "warn_singular": 7, "msg": 7, "peak": 7, "extem": 7, "dsitribut": 7, "awai": 7, "bias": 7, "enum": [8, 9, 10, 12], "building_configuration_enum": [8, 10], "configuration_enum": [8, 10], "interface_enum": [8, 10], "model_runner_enum": [8, 10], "objective_enum": [8, 10], "optimization_configuration_enum": [8, 10], "prediction_configuration_enum": [8, 10], "return_values_enum": [8, 10], "visualization_enum": [8, 10], "merge_train_and_test_data": 8, "isvalid": 8, "read_data": 8, "filenam": [8, 10], "smiles_col": [8, 10, 12, 13], "aux_col": 8, "invalid": 8, "pars": [8, 9, 11], "tupl": [8, 12, 13], "ambigu": 8, "smiles_": 8, "y_": [8, 10, 12], "aux_": 8, "factori": [8, 9], "intermediate_training_dataset_fil": 8, "intermediate_test_dataset_fil": 8, "get_merged_set": 8, "check_set": 8, "scalingfittingerror": 8, "descriptor_str": 8, "insuffici": 8, "unfittedsklearnscla": 8, "novalidsmil": 8, "mol_from_smi": 8, "numpy_from_rdkit": 8, "dtype": [8, 12], "moldescriptor": 8, "nameparameterdataclass": [8, 9, 12], "abc": [8, 9, 12], "abstract": [8, 9, 12], "parallel_compute_descriptor": 8, "n_core": 8, "parallel": 8, "rdkitdescriptor": 8, "liter": [8, 9, 12, 13], "pathlib": 8, "get_fitted_scaler_for_fp": 8, "saved_param": 8, "get_fitted_scal": 8, "set_unfitted_scaler_data": 8, "fp_info": 8, "canonicalsmil": 8, "scaffold": [8, 12, 13], "genericscaffold": 8, "validdescriptor": 8, "descriptor_from_config": 8, "return_failed_idx": 8, "configur": [8, 9, 10, 11], "score_al": 8, "get_scor": 8, "score_all_smil": 8, "get_train_test_scor": 8, "get_merged_train_scor": 8, "get_ecfp_fpinfo": 8, "get_ecfpcount_fpinfo": 8, "explain_ecfp": 8, "len_feat": 8, "get_fp_info": 8, "exp_df": 8, "descript": [8, 9], "fp_idx": 8, "strt_idx": 8, "runshap": 8, "x_pred": 8, "shap": 8, "shapexplain": 8, "popul": 8, "explainpr": 8, "shallow": 8, "validate_cls_input": 8, "pi_zero": 8, "pr": 8, "melloddi": 8, "sparsechem": 8, "imbal": 8, "bedroc_scor": [8, 9], "truchon": 8, "j": 8, "bayli": 8, "screen": 8, "bad": 8, "recognit": 8, "2007": 8, "concord": 8, "statist": 8, "qualiti": 8, "harald": 8, "On": 8, "surviv": 8, "bound": 8, "2008": 8, "1209": 8, "1216": 8, "posterior": 8, "mark": 8, "abstractmethod": [8, 9], "predict_uncert": 8, "quantifi": 8, "qsartunamodel": 8, "nonetyp": [8, 9], "sent": 8, "get_metadata": 8, "train_scor": [8, 11], "test_scor": [8, 10, 11], "get_transform": 8, "perform_ptr": 8, "wrap_model": 8, "save_model": 8, "novaliddescriptor": 8, "null_scor": 8, "predict_pl": 8, "model_path": 8, "inference_path": 8, "argserror": 8, "issu": [8, 12], "uncertaintyerror": 8, "correctli": 8, "auxcovariatemiss": 8, "precomputederror": 8, "validate_arg": 8, "validate_uncertainti": 8, "check_precomp_arg": 8, "validate_set_precomput": 8, "validate_aux": 8, "doctitl": 8, "docstr": 8, "type_base_schema": 8, "tp": 8, "wyfo": 8, "json_schema": 8, "patch_schema_gener": 8, "patch_schema_optunaz": 8, "split_optim": 8, "base_chemprop_param": 8, "alg": [8, 9], "pop": 8, "fix": [8, 9], "run_studi": 8, "storag": [8, 11], "trial_number_offset": [8, 10], "log_scor": 8, "main_scor": 8, "outfnam": 8, "plot_by_configur": 8, "conf": 8, "plot_slic": [8, 9, 11], "folder_path": 8, "file_format": [8, 9, 11], "png": [8, 9], "plot_contour": [8, 9, 11], "static": 8, "plot_histori": [8, 9, 11], "set_build_cach": 9, "preexist": 9, "remove_algo_hash": 9, "buildconfig_from_tri": 9, "encode_nam": 9, "cenam": 9, "suggest_alg_param": 9, "suggest_aux_param": 9, "desc": 9, "check_invalid_descriptor_param": 9, "adaboostclassifierparamet": 9, "lassoparamet": 9, "kneighborsclassifierparamet": 9, "kneighborsregressorparamet": 9, "logisticregressionparamet": 9, "plsparamet": 9, "randomforestparamet": 9, "ridgeparamet": 9, "svcparamet": 9, "svrparamet": 9, "xgbregressorparamet": 9, "prfclassifierparamet": 9, "bootstrap": 9, "new_syn_data_frac": 9, "chempropregressorparamet": 9, "chempropclassifierparamet": 9, "chempropregressorpretrainedparamet": 9, "chemprophyperoptclassifierparamet": 9, "chemprophyperoptregressorparamet": 9, "calibratedclassifiercvparamet": 9, "mapieparamet": 9, "regressionscor": 9, "classificationscor": 9, "closer": 9, "greater": 9, "manhattan": 9, "trainarg": 9, "tanh": 9, "leakyrelu": 9, "prelu": 9, "selu": 9, "elu": 9, "turn": [9, 12, 13], "morgan_count": 9, "rdkit_2d": 9, "rdkit_2d_norm": 9, "mpnn_first_ffn": 9, "mpnn_last_ffn": 9, "linked_hidden_s": 9, "constrain": 9, "l3": 9, "init_lr_exp": 9, "final_lr_exp": 9, "warmup_epoch": 9, "l4": 9, "l5": 9, "l6": 9, "l7": 9, "l8": 9, "isanyof": 9, "obj": [9, 10], "detect_mode_from_alg": 9, "copy_path_for_scaled_descriptor": 9, "cv_split_strategi": 9, "use_cach": 9, "optuna_storag": 9, "set_cach": 9, "set_algo_hash": 9, "declar": 9, "pydant": 9, "don": 9, "classmethod": 9, "1024": 9, "shorter": 9, "output_fold": [9, 11], "use_xvfb": [9, 11], "imagefileformat": 9, "jpeg": 9, "jpg": 9, "svg": 9, "move_up_directori": 10, "attach_root_path": 10, "attach": 10, "loadjson": 10, "add_ellipsi": 10, "max_length": 10, "shorten_nam": 10, "mlflowcallback": 10, "tracking_uri": 10, "callback": 10, "uri": 10, "server": 10, "set_tracking_uri": 10, "prepare_tag": 10, "tag": 10, "tmp_buildconfig": 10, "create_depend": 10, "remove_schema_properti": 10, "add_boolean_guards_for_schema_properti": 10, "replacekei": 10, "input_": 10, "replacevalu": 10, "addsibl": 10, "delsibl": 10, "sibl": 10, "getref": 10, "context": 10, "recurs": 10, "nest": 10, "copytitl": 10, "oneof": 10, "replaceenum": 10, "singleton": 10, "const": 10, "addtitl": 10, "get_authorization_head": 10, "trackingdata": 10, "trial_numb": [10, 11], "trial_valu": 10, "trial_stat": 10, "all_cv_test_scor": 10, "dataclass": 10, "removeprefix": 10, "prefix": 10, "round_scor": 10, "internaltrackingcallback": 10, "progress": 10, "buildtrackingdata": 10, "response_column_nam": 10, "test_point": 10, "track_build": 10, "mkdict": 10, "load_df_from_fil": 10, "remove_failed_idx": 10, "failed_idx": 10, "md5_hash": 10, "md5": 10, "buildingconfigurationenum": 11, "configurationenum": 11, "general_hyperparamet": 11, "hyper_paramet": 11, "general_regressor": 11, "general_classifi": 11, "metadata_besttri": 11, "metadata_bestvalu": 11, "general_dis": 11, "general_paramet": 11, "task_optim": 11, "task_build": 11, "data_inputcolumn": 11, "data_responsecolumn": 11, "data_train": 11, "data_test": 11, "descriptors_avalon": 11, "descriptors_avalon_nbit": 11, "descriptors_ecfp": 11, "descriptors_ecfp_radiu": 11, "descriptors_ecfp_nbit": 11, "descriptors_ecfpcount": 11, "descriptors_ecfpcounts_radiu": 11, "descriptors_ecfpcounts_usefeatur": 11, "descriptors_pathfp": 11, "descriptors_pathfp_maxpath": 11, "descriptors_pathfp_fps": 11, "descriptors_maccskei": 11, "descriptors_unsc_physchem": 11, "descriptors_physchem": 11, "descriptors_physchem_rdkitnam": 11, "descriptors_unsc_jazzi": 11, "descriptors_jazzi": 11, "descriptors_jazzy_jazzynam": 11, "descriptors_precomput": 11, "descriptors_precomputed_fil": 11, "descriptors_precomputed_input_columnn": 11, "descriptors_precomputed_response_column": 11, "descriptors_unsc_zscal": 11, "descriptors_zscal": 11, "descriptors_smil": 11, "descriptors_smiles_and_si": 11, "descriptors_smiles_and_si_fil": 11, "descriptors_smiles_and_si_input_column": 11, "descriptors_smiles_and_si_aux_weight_pc": 11, "descriptors_sc": 11, "descriptors_scaled_descriptor": 11, "descriptors_scaled_descriptor_paramet": 11, "descriptors_composit": 11, "settings_mod": 11, "settings_mode_regress": 11, "settings_mode_classif": 11, "settings_cross_valid": 11, "settings_direct": 11, "settings_n_tri": 11, "settings_n_job": 11, "settings_shuffl": 11, "algorithms_low": 11, "algorithms_high": 11, "algorithms_q": 11, "algorithms_interface_sklearn": 11, "algorithms_interface_xgboost": 11, "algorithms_rfregressor": 11, "algorithms_rfclassifi": 11, "algorithms_rf_max_featur": 11, "algorithms_rf_max_depth": 11, "algorithms_rf_n_estim": 11, "algorithms_svr": 11, "algorithms_svr_c": 11, "algorithms_svr_gamma": 11, "algorithms_svc": 11, "algorithms_svc_c": 11, "algorithms_svc_gamma": 11, "algorithms_lasso": 11, "algorithms_lasso_alpha": 11, "algorithms_kneighborsclassifi": 11, "algorithms_kneighborsregressor": 11, "algorithms_kneighbors_n_neighbor": 11, "algorithms_kneighbors_metr": 11, "algorithms_kneighbors_weight": 11, "algorithms_ridg": 11, "algorithms_ridge_alpha": 11, "algorithms_plsregress": 11, "algorithms_plsregression_n_compon": 11, "algorithms_logisticregress": 11, "algorithms_logisticregression_solv": 11, "algorithms_logisticregression_c": 11, "algorithms_adaboostclassifi": 11, "algorithms_adaboostclassifier_n_estim": 11, "algorithms_adaboostclassifier_learning_r": 11, "algorithms_xgbregressor": 11, "algorithms_xgbregressor_max_depth": 11, "algorithms_xgbregressor_n_estim": 11, "algorithms_xgbregressor_learning_r": 11, "algorithms_prf": 11, "algorithms_prf_max_featur": 11, "algorithms_prf_max_depth": 11, "algorithms_prf_n_estim": 11, "algorithms_prf_minpysumleaf": 11, "algorithms_prf_use_py_gini": 11, "algorithms_prf_use_py_leaf": 11, "algorithms_chemprop": 11, "basechemprop": 11, "algorithms_chemprop_regressor": 11, "algorithms_chemprop_hyperopt_regressor": 11, "algorithms_chemprop_classifi": 11, "algorithms_chemprop_hyperopt_classifi": 11, "algorithms_chemprop_activ": 11, "algorithms_chemprop_aggreg": 11, "algorithms_chemprop_aggregation_norm": 11, "algorithms_chemprop_batch_s": 11, "algorithms_chemprop_depth": 11, "algorithms_chemprop_dropout": 11, "algorithms_chemprop_epoch": 11, "algorithms_chemprop_ensemble_s": 11, "algorithms_chemprop_features_gener": 11, "algorithms_chemprop_ffn_hidden_s": 11, "algorithms_chemprop_ffn_num_lay": 11, "algorithms_chemprop_frzn": 11, "algorithms_chemprop_final_lr_ratio_exp": 11, "algorithms_chemprop_hidden_s": 11, "algorithms_chemprop_num_it": 11, "algorithms_chemprop_init_lr_ratio_exp": 11, "algorithms_chemprop_max_lr_exp": 11, "algorithms_chemprop_pretrained_model": 11, "algorithms_chemprop_search_parameter_level": 11, "algorithms_chemprop_startup_random_it": 11, "startup_random_it": 11, "algorithms_chemprop_warmup_epochs_ratio": 11, "algorithms_calibratedclassifiercv": 11, "algorithms_calibratedclassifiercv_ensembl": 11, "algorithms_calibratedclassifiercv_estim": 11, "algorithms_calibratedclassifiercv_method": 11, "algorithms_calibratedclassifiercv_n_fold": 11, "algorithms_calibratedclassifiercv_param": 11, "calibrated_param": 11, "algorithms_mapi": 11, "algorithms_mapie_alpha": 11, "interfaceenum": 11, "sklearn_set": 11, "xgboost_set": 11, "chemprop_set": 11, "prf_set": 11, "calibrated_set": 11, "modelrunnerdataframeenum": 11, "modelrunn": 11, "objectiveenum": 11, "attribute_trial_train_scor": 11, "extra_column_besthit": 11, "besthit": 11, "optimizationconfigurationenum": 11, "predictionconfigurationenum": 11, "data_dataset": 11, "sklearnreturnvalueenum": 11, "cross_validate_fit_tim": 11, "fit_tim": 11, "cross_validate_score_tim": 11, "score_tim": 11, "cross_validate_test_scor": 11, "cross_validate_train_scor": 11, "xgboostreturnvalueenum": 11, "visualizationenum": 11, "visualization_regressor": 11, "visualization_classifi": 11, "visualization_use_xvfb": 11, "visualization_output_fold": 11, "visualization_file_format": 11, "visualization_plot": 11, "visualization_plots_histori": 11, "visualization_plots_contour": 11, "visualization_plots_parallel_coordin": 11, "visualization_plots_slic": 11, "optuna_system_attrs_numb": 11, "_number": 11, "optuna_system_attrs_intermediate_valu": 11, "intermediate_valu": 11, "optuna_system_attrs_trial_id": 11, "trial_id": 11, "studyuserattr": 11, "trialuserattr": 11, "trialparam": 11, "algorithm_hash": 11, "mlflowlogparam": 11, "sklearnsplitt": 12, "get_n_split": 12, "cvsplitter": 12, "although": 12, "underli": 12, "get_sklearn_splitt": 12, "n_split": 12, "repeat": [12, 13], "edg": [12, 13], "stratifiedshufflesplit": [12, 13], "revert": [12, 13], "empti": 12, "kfold": 12, "affect": 12, "consecut": 12, "fd_bin": 12, "11879": 12, "10297": 12, "adjac": 12, "downstream": 12, "nativ": 12, "histogramstratifiedshufflesplit": 12, "test_fract": 12, "groupingsplitt": 12, "column_nam": [12, 13], "butina_clust": [12, 13], "cluster": [12, 13], "butina": [12, 13], "make_scaffold_gener": [12, 13], "murcko": [12, 13], "hetero": [12, 13], "difficulti": [12, 13], "novel": [12, 13], "datatransform": 12, "logarithm": [12, 14], "base_dict": 12, "ufunc": 12, "base_neg": 12, "reverse_dict": 12, "exp": 12, "transform_df": 12, "transform_on": 12, "reverse_transform_df": 12, "reverse_transform_on": 12, "auxtransform": 12, "transfor": 12, "auxiliary_data": 12, "usabl": [12, 14]}, "objects": {"": [[8, 0, 0, "-", "optunaz"]], "optunaz": [[8, 0, 0, "-", "builder"], [9, 0, 0, "-", "config"], [8, 0, 0, "-", "datareader"], [8, 0, 0, "-", "descriptors"], [8, 0, 0, "-", "evaluate"], [8, 0, 0, "-", "explainability"], [8, 0, 0, "-", "metircs"], [8, 0, 0, "-", "model_writer"], [8, 0, 0, "-", "objective"], [8, 0, 0, "-", "optbuild"], [8, 0, 0, "-", "predict"], [8, 0, 0, "-", "schemagen"], [8, 0, 0, "-", "three_step_opt_build_merge"], [10, 0, 0, "-", "utils"], [8, 0, 0, "-", "visualizer"]], "optunaz.builder": [[8, 1, 1, "", "build"]], "optunaz.config": [[9, 2, 1, "", "Algorithm"], [9, 2, 1, "", "ModelMode"], [9, 2, 1, "", "NameParameterDataclass"], [9, 2, 1, "", "OptimizationDirection"], [9, 2, 1, "", "Task"], [9, 2, 1, "", "Visualization"], [9, 0, 0, "-", "build_from_opt"], [9, 0, 0, "-", "buildconfig"], [9, 0, 0, "-", "optconfig"]], "optunaz.config.ModelMode": [[9, 3, 1, "", "CLASSIFICATION"], [9, 3, 1, "", "REGRESSION"]], "optunaz.config.NameParameterDataclass": [[9, 4, 1, "", "new"]], "optunaz.config.OptimizationDirection": [[9, 3, 1, "", "MAXIMIZATION"], [9, 3, 1, "", "MINIMIZATION"]], "optunaz.config.Task": [[9, 3, 1, "", "BUILDING"], [9, 3, 1, "", "OPTIMIZATION"], [9, 3, 1, "", "PREDICTION"]], "optunaz.config.Visualization": [[9, 2, 1, "", "ImageFileFormat"], [9, 2, 1, "", "Plots"], [9, 3, 1, "", "file_format"], [9, 3, 1, "", "output_folder"], [9, 3, 1, "", "plots"], [9, 3, 1, "", "use_xvfb"]], "optunaz.config.Visualization.ImageFileFormat": [[9, 3, 1, "", "JPEG"], [9, 3, 1, "", "JPG"], [9, 3, 1, "", "PDF"], [9, 3, 1, "", "PNG"], [9, 3, 1, "", "SVG"]], "optunaz.config.Visualization.Plots": [[9, 3, 1, "", "plot_contour"], [9, 3, 1, "", "plot_history"], [9, 3, 1, "", "plot_parallel_coordinate"], [9, 3, 1, "", "plot_slice"]], "optunaz.config.build_from_opt": [[9, 1, 1, "", "buildconfig_from_trial"], [9, 1, 1, "", "check_invalid_descriptor_param"], [9, 1, 1, "", "encode_name"], [9, 1, 1, "", "remove_algo_hash"], [9, 1, 1, "", "set_build_cache"], [9, 1, 1, "", "suggest_alg_params"], [9, 1, 1, "", "suggest_aux_params"]], "optunaz.config.buildconfig": [[9, 2, 1, "", "AdaBoostClassifier"], [9, 2, 1, "", "Algorithm"], [9, 2, 1, "", "BuildConfig"], [9, 2, 1, "", "CalibratedClassifierCVWithVA"], [9, 2, 1, "", "ChemPropClassifier"], [9, 2, 1, "", "ChemPropHyperoptClassifier"], [9, 2, 1, "", "ChemPropHyperoptRegressor"], [9, 2, 1, "", "ChemPropRegressor"], [9, 2, 1, "", "ChemPropRegressorPretrained"], [9, 2, 1, "", "KNeighborsClassifier"], [9, 2, 1, "", "KNeighborsRegressor"], [9, 2, 1, "", "Lasso"], [9, 2, 1, "", "LogisticRegression"], [9, 2, 1, "", "Mapie"], [9, 2, 1, "", "PLSRegression"], [9, 2, 1, "", "PRFClassifier"], [9, 2, 1, "", "RandomForestClassifier"], [9, 2, 1, "", "RandomForestRegressor"], [9, 2, 1, "", "Ridge"], [9, 2, 1, "", "SVC"], [9, 2, 1, "", "SVR"], [9, 2, 1, "", "XGBRegressor"]], "optunaz.config.buildconfig.AdaBoostClassifier": [[9, 2, 1, "", "AdaBoostClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.AdaBoostClassifier.AdaBoostClassifierParameters": [[9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.buildconfig.Algorithm": [[9, 4, 1, "", "estimator"]], "optunaz.config.buildconfig.BuildConfig": [[9, 2, 1, "", "Metadata"], [9, 2, 1, "", "Settings"], [9, 3, 1, "", "algorithm"], [9, 3, 1, "", "data"], [9, 3, 1, "", "descriptor"], [9, 3, 1, "", "metadata"], [9, 3, 1, "", "settings"], [9, 3, 1, "", "task"]], "optunaz.config.buildconfig.BuildConfig.Metadata": [[9, 3, 1, "", "best_trial"], [9, 3, 1, "", "best_value"], [9, 3, 1, "", "cross_validation"], [9, 3, 1, "", "n_trials"], [9, 3, 1, "", "name"], [9, 3, 1, "", "shuffle"], [9, 3, 1, "", "visualization"]], "optunaz.config.buildconfig.BuildConfig.Settings": [[9, 3, 1, "", "direction"], [9, 3, 1, "", "mode"], [9, 3, 1, "", "n_trials"], [9, 3, 1, "", "scoring"], [9, 3, 1, "", "tracking_rest_endpoint"]], "optunaz.config.buildconfig.CalibratedClassifierCVWithVA": [[9, 2, 1, "", "CalibratedClassifierCVParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.CalibratedClassifierCVWithVA.CalibratedClassifierCVParameters": [[9, 3, 1, "", "ensemble"], [9, 3, 1, "", "estimator"], [9, 3, 1, "", "method"], [9, 3, 1, "", "n_folds"]], "optunaz.config.buildconfig.ChemPropClassifier": [[9, 2, 1, "", "ChemPropClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropClassifier.ChemPropClassifierParameters": [[9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.buildconfig.ChemPropHyperoptClassifier": [[9, 2, 1, "", "ChemPropHyperoptClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropHyperoptClassifier.ChemPropHyperoptClassifierParameters": [[9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.buildconfig.ChemPropHyperoptRegressor": [[9, 2, 1, "", "ChemPropHyperoptRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropHyperoptRegressor.ChemPropHyperoptRegressorParameters": [[9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.buildconfig.ChemPropRegressor": [[9, 2, 1, "", "ChemPropRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropRegressor.ChemPropRegressorParameters": [[9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.buildconfig.ChemPropRegressorPretrained": [[9, 2, 1, "", "ChemPropRegressorPretrainedParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropRegressorPretrained.ChemPropRegressorPretrainedParameters": [[9, 3, 1, "", "epochs"], [9, 3, 1, "", "frzn"], [9, 3, 1, "", "pretrained_model"]], "optunaz.config.buildconfig.KNeighborsClassifier": [[9, 2, 1, "", "KNeighborsClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.KNeighborsClassifier.KNeighborsClassifierParameters": [[9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.buildconfig.KNeighborsRegressor": [[9, 2, 1, "", "KNeighborsRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.KNeighborsRegressor.KNeighborsRegressorParameters": [[9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.buildconfig.Lasso": [[9, 2, 1, "", "LassoParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.Lasso.LassoParameters": [[9, 3, 1, "", "alpha"]], "optunaz.config.buildconfig.LogisticRegression": [[9, 2, 1, "", "LogisticRegressionParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.LogisticRegression.LogisticRegressionParameters": [[9, 3, 1, "", "C"], [9, 3, 1, "", "solver"]], "optunaz.config.buildconfig.Mapie": [[9, 2, 1, "", "MapieParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.Mapie.MapieParameters": [[9, 3, 1, "", "estimator"], [9, 3, 1, "", "mapie_alpha"]], "optunaz.config.buildconfig.PLSRegression": [[9, 2, 1, "", "PLSParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.PLSRegression.PLSParameters": [[9, 3, 1, "", "n_components"]], "optunaz.config.buildconfig.PRFClassifier": [[9, 2, 1, "", "PRFClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.PRFClassifier.PRFClassifierParameters": [[9, 3, 1, "", "bootstrap"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "min_py_sum_leaf"], [9, 3, 1, "", "n_estimators"], [9, 3, 1, "", "new_syn_data_frac"], [9, 3, 1, "", "use_py_gini"], [9, 3, 1, "", "use_py_leafs"]], "optunaz.config.buildconfig.RandomForestClassifier": [[9, 2, 1, "", "RandomForestParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.RandomForestClassifier.RandomForestParameters": [[9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.buildconfig.RandomForestRegressor": [[9, 2, 1, "", "RandomForestParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.RandomForestRegressor.RandomForestParameters": [[9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.buildconfig.Ridge": [[9, 2, 1, "", "RidgeParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.Ridge.RidgeParameters": [[9, 3, 1, "", "alpha"]], "optunaz.config.buildconfig.SVC": [[9, 2, 1, "", "SVCParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.SVC.SVCParameters": [[9, 3, 1, "", "C"], [9, 3, 1, "", "gamma"]], "optunaz.config.buildconfig.SVR": [[9, 2, 1, "", "SVRParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.SVR.SVRParameters": [[9, 3, 1, "", "C"], [9, 3, 1, "", "gamma"]], "optunaz.config.buildconfig.XGBRegressor": [[9, 2, 1, "", "XGBRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.XGBRegressor.XGBRegressorParameters": [[9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig": [[9, 2, 1, "", "AdaBoostClassifier"], [9, 2, 1, "", "Algorithm"], [9, 2, 1, "", "CalibratedClassifierCVEnsemble"], [9, 2, 1, "", "CalibratedClassifierCVMethod"], [9, 2, 1, "", "CalibratedClassifierCVWithVA"], [9, 2, 1, "", "ChemPropActivation"], [9, 2, 1, "", "ChemPropAggregation"], [9, 2, 1, "", "ChemPropClassifier"], [9, 2, 1, "", "ChemPropFeatures_Generator"], [9, 2, 1, "", "ChemPropFrzn"], [9, 2, 1, "", "ChemPropHyperoptClassifier"], [9, 2, 1, "", "ChemPropHyperoptRegressor"], [9, 2, 1, "", "ChemPropRegressor"], [9, 2, 1, "", "ChemPropRegressorPretrained"], [9, 2, 1, "", "ChemPropSearch_Parameter_Level"], [9, 2, 1, "", "ClassificationScore"], [9, 2, 1, "", "KNeighborsClassifier"], [9, 2, 1, "", "KNeighborsMetric"], [9, 2, 1, "", "KNeighborsRegressor"], [9, 2, 1, "", "KNeighborsWeights"], [9, 2, 1, "", "Lasso"], [9, 2, 1, "", "LogisticRegression"], [9, 2, 1, "", "Mapie"], [9, 2, 1, "", "OptimizationConfig"], [9, 2, 1, "", "PLSRegression"], [9, 2, 1, "", "PRFClassifier"], [9, 2, 1, "", "PRFClassifierMaxFeatures"], [9, 2, 1, "", "RandomForestClassifier"], [9, 2, 1, "", "RandomForestMaxFeatures"], [9, 2, 1, "", "RandomForestRegressor"], [9, 2, 1, "", "RegressionScore"], [9, 2, 1, "", "Ridge"], [9, 2, 1, "", "SVC"], [9, 2, 1, "", "SVR"], [9, 2, 1, "", "XGBRegressor"], [9, 1, 1, "", "copy_path_for_scaled_descriptor"], [9, 1, 1, "", "detect_mode_from_algs"], [9, 1, 1, "", "isanyof"]], "optunaz.config.optconfig.AdaBoostClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.AdaBoostClassifier.Parameters": [[9, 2, 1, "", "AdaBoostClassifierParametersLearningRate"], [9, 2, 1, "", "AdaBoostClassifierParametersNEstimators"], [9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.AdaBoostClassifier.Parameters.AdaBoostClassifierParametersLearningRate": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.AdaBoostClassifier.Parameters.AdaBoostClassifierParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.CalibratedClassifierCVEnsemble": [[9, 3, 1, "", "FALSE"], [9, 3, 1, "", "TRUE"]], "optunaz.config.optconfig.CalibratedClassifierCVMethod": [[9, 3, 1, "", "ISOTONIC"], [9, 3, 1, "", "SIGMOID"], [9, 3, 1, "", "VENNABERS"]], "optunaz.config.optconfig.CalibratedClassifierCVWithVA": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.CalibratedClassifierCVWithVA.Parameters": [[9, 3, 1, "", "ensemble"], [9, 3, 1, "", "estimator"], [9, 3, 1, "", "method"], [9, 3, 1, "", "n_folds"]], "optunaz.config.optconfig.ChemPropActivation": [[9, 3, 1, "", "ELU"], [9, 3, 1, "", "LEAKYRELU"], [9, 3, 1, "", "PRELU"], [9, 3, 1, "", "RELU"], [9, 3, 1, "", "SELU"], [9, 3, 1, "", "TANH"]], "optunaz.config.optconfig.ChemPropAggregation": [[9, 3, 1, "", "MEAN"], [9, 3, 1, "", "NORM"], [9, 3, 1, "", "SUM"]], "optunaz.config.optconfig.ChemPropClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters": [[9, 2, 1, "", "ChemPropParametersAggregation_Norm"], [9, 2, 1, "", "ChemPropParametersBatch_Size"], [9, 2, 1, "", "ChemPropParametersDepth"], [9, 2, 1, "", "ChemPropParametersDropout"], [9, 2, 1, "", "ChemPropParametersFFN_Hidden_Size"], [9, 2, 1, "", "ChemPropParametersFFN_Num_Layers"], [9, 2, 1, "", "ChemPropParametersFinal_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersHidden_Size"], [9, 2, 1, "", "ChemPropParametersInit_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersMax_Lr_Exp"], [9, 2, 1, "", "ChemPropParametersWarmup_Epochs_Ratio"], [9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersAggregation_Norm": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersBatch_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersDropout": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersFFN_Hidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersFFN_Num_Layers": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersFinal_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersHidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersInit_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersMax_Lr_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersWarmup_Epochs_Ratio": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropFeatures_Generator": [[9, 3, 1, "", "MORGAN"], [9, 3, 1, "", "MORGAN_COUNT"], [9, 3, 1, "", "NONE"], [9, 3, 1, "", "RDKIT_2D"], [9, 3, 1, "", "RDKIT_2D_NORMALIZED"]], "optunaz.config.optconfig.ChemPropFrzn": [[9, 3, 1, "", "MPNN"], [9, 3, 1, "", "MPNN_FIRST_FFN"], [9, 3, 1, "", "MPNN_LAST_FFN"], [9, 3, 1, "", "NONE"]], "optunaz.config.optconfig.ChemPropHyperoptClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropHyperoptClassifier.Parameters": [[9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.optconfig.ChemPropHyperoptRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropHyperoptRegressor.Parameters": [[9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.optconfig.ChemPropRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters": [[9, 2, 1, "", "ChemPropParametersAggregation_Norm"], [9, 2, 1, "", "ChemPropParametersBatch_Size"], [9, 2, 1, "", "ChemPropParametersDepth"], [9, 2, 1, "", "ChemPropParametersDropout"], [9, 2, 1, "", "ChemPropParametersFFN_Hidden_Size"], [9, 2, 1, "", "ChemPropParametersFFN_Num_Layers"], [9, 2, 1, "", "ChemPropParametersFinal_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersHidden_Size"], [9, 2, 1, "", "ChemPropParametersInit_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersMax_Lr_Exp"], [9, 2, 1, "", "ChemPropParametersWarmup_Epochs_Ratio"], [9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersAggregation_Norm": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersBatch_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersDropout": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersFFN_Hidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersFFN_Num_Layers": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersFinal_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersHidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersInit_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersMax_Lr_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersWarmup_Epochs_Ratio": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressorPretrained": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropRegressorPretrained.Parameters": [[9, 2, 1, "", "ChemPropParametersEpochs"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "frzn"], [9, 3, 1, "", "pretrained_model"]], "optunaz.config.optconfig.ChemPropRegressorPretrained.Parameters.ChemPropParametersEpochs": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropSearch_Parameter_Level": [[9, 3, 1, "", "AUTO"], [9, 3, 1, "", "L1"], [9, 3, 1, "", "L2"], [9, 3, 1, "", "L3"], [9, 3, 1, "", "L4"], [9, 3, 1, "", "L5"], [9, 3, 1, "", "L6"], [9, 3, 1, "", "L7"], [9, 3, 1, "", "L8"]], "optunaz.config.optconfig.ClassificationScore": [[9, 3, 1, "", "ACCURACY"], [9, 3, 1, "", "AUC_PR_CAL"], [9, 3, 1, "", "AVERAGE_PRECISION"], [9, 3, 1, "", "BALANCED_ACCURACY"], [9, 3, 1, "", "BEDROC"], [9, 3, 1, "", "CONCORDANCE_INDEX"], [9, 3, 1, "", "F1"], [9, 3, 1, "", "F1_MACRO"], [9, 3, 1, "", "F1_MICRO"], [9, 3, 1, "", "F1_WEIGHTED"], [9, 3, 1, "", "JACCARD"], [9, 3, 1, "", "JACCARD_MACRO"], [9, 3, 1, "", "JACCARD_MICRO"], [9, 3, 1, "", "JACCARD_WEIGHTED"], [9, 3, 1, "", "NEG_BRIER_SCORE"], [9, 3, 1, "", "PRECISION"], [9, 3, 1, "", "PRECISION_MACRO"], [9, 3, 1, "", "PRECISION_MICRO"], [9, 3, 1, "", "PRECISION_WEIGHTED"], [9, 3, 1, "", "RECALL"], [9, 3, 1, "", "RECALL_MACRO"], [9, 3, 1, "", "RECALL_MICRO"], [9, 3, 1, "", "RECALL_WEIGHTED"], [9, 3, 1, "", "ROC_AUC"]], "optunaz.config.optconfig.KNeighborsClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.KNeighborsClassifier.Parameters": [[9, 2, 1, "", "KNeighborsClassifierParametersN_Neighbors"], [9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.optconfig.KNeighborsClassifier.Parameters.KNeighborsClassifierParametersN_Neighbors": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.KNeighborsMetric": [[9, 3, 1, "", "EUCLIDEAN"], [9, 3, 1, "", "MANHATTAN"], [9, 3, 1, "", "MINKOWSKI"]], "optunaz.config.optconfig.KNeighborsRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.KNeighborsRegressor.Parameters": [[9, 2, 1, "", "KNeighborsRegressorParametersN_Neighbors"], [9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.optconfig.KNeighborsRegressor.Parameters.KNeighborsRegressorParametersN_Neighbors": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.KNeighborsWeights": [[9, 3, 1, "", "DISTANCE"], [9, 3, 1, "", "UNIFORM"]], "optunaz.config.optconfig.Lasso": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.Lasso.Parameters": [[9, 2, 1, "", "LassoParametersAlpha"], [9, 3, 1, "", "alpha"]], "optunaz.config.optconfig.Lasso.Parameters.LassoParametersAlpha": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.LogisticRegression": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.LogisticRegression.Parameters": [[9, 3, 1, "", "C"], [9, 2, 1, "", "LogisticRegressionParametersParameterC"], [9, 3, 1, "", "solver"]], "optunaz.config.optconfig.LogisticRegression.Parameters.LogisticRegressionParametersParameterC": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.Mapie": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.Mapie.Parameters": [[9, 3, 1, "", "estimator"], [9, 3, 1, "", "mapie_alpha"]], "optunaz.config.optconfig.OptimizationConfig": [[9, 2, 1, "", "Settings"], [9, 3, 1, "", "algorithms"], [9, 3, 1, "", "data"], [9, 3, 1, "", "description"], [9, 3, 1, "", "descriptors"], [9, 3, 1, "", "mode"], [9, 3, 1, "", "name"], [9, 4, 1, "", "set_algo_hashes"], [9, 4, 1, "", "set_cache"], [9, 3, 1, "", "settings"], [9, 3, 1, "", "task"], [9, 3, 1, "", "visualization"]], "optunaz.config.optconfig.OptimizationConfig.Settings": [[9, 3, 1, "", "cross_validation"], [9, 3, 1, "", "cv_split_strategy"], [9, 3, 1, "", "direction"], [9, 3, 1, "", "minimise_std_dev"], [9, 3, 1, "", "mode"], [9, 3, 1, "", "n_chemprop_trials"], [9, 3, 1, "", "n_jobs"], [9, 3, 1, "", "n_startup_trials"], [9, 3, 1, "", "n_trials"], [9, 3, 1, "", "optuna_storage"], [9, 3, 1, "", "random_seed"], [9, 3, 1, "", "scoring"], [9, 3, 1, "", "shuffle"], [9, 3, 1, "", "split_chemprop"], [9, 3, 1, "", "track_to_mlflow"], [9, 3, 1, "", "tracking_rest_endpoint"], [9, 3, 1, "", "use_cache"]], "optunaz.config.optconfig.PLSRegression": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.PLSRegression.Parameters": [[9, 2, 1, "", "NComponents"], [9, 3, 1, "", "n_components"]], "optunaz.config.optconfig.PLSRegression.Parameters.NComponents": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.PRFClassifier.Parameters": [[9, 2, 1, "", "PRFClassifierParametersMaxDepth"], [9, 2, 1, "", "PRFClassifierParametersMinPySumLeaf"], [9, 2, 1, "", "PRFClassifierParametersNEstimators"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "min_py_sum_leaf"], [9, 3, 1, "", "n_estimators"], [9, 3, 1, "", "use_py_gini"], [9, 3, 1, "", "use_py_leafs"]], "optunaz.config.optconfig.PRFClassifier.Parameters.PRFClassifierParametersMaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifier.Parameters.PRFClassifierParametersMinPySumLeaf": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifier.Parameters.PRFClassifierParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifierMaxFeatures": [[9, 3, 1, "", "AUTO"], [9, 3, 1, "", "LOG2"], [9, 3, 1, "", "SQRT"]], "optunaz.config.optconfig.RandomForestClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.RandomForestClassifier.Parameters": [[9, 2, 1, "", "RandomForestClassifierParametersMaxDepth"], [9, 2, 1, "", "RandomForestClassifierParametersNEstimators"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.RandomForestClassifier.Parameters.RandomForestClassifierParametersMaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RandomForestClassifier.Parameters.RandomForestClassifierParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RandomForestMaxFeatures": [[9, 3, 1, "", "AUTO"], [9, 3, 1, "", "LOG2"], [9, 3, 1, "", "SQRT"]], "optunaz.config.optconfig.RandomForestRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.RandomForestRegressor.Parameters": [[9, 2, 1, "", "RandomForestRegressorParametersMaxDepth"], [9, 2, 1, "", "RandomForestRegressorParametersNEstimators"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.RandomForestRegressor.Parameters.RandomForestRegressorParametersMaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RandomForestRegressor.Parameters.RandomForestRegressorParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RegressionScore": [[9, 3, 1, "", "EXPLAINED_VARIANCE"], [9, 3, 1, "", "MAX_ERROR"], [9, 3, 1, "", "NEG_MEAN_ABSOLUTE_ERROR"], [9, 3, 1, "", "NEG_MEAN_SQUARED_ERROR"], [9, 3, 1, "", "NEG_MEDIAN_ABSOLUTE_ERROR"], [9, 3, 1, "", "R2"]], "optunaz.config.optconfig.Ridge": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.Ridge.Parameters": [[9, 2, 1, "", "Alpha"], [9, 3, 1, "", "alpha"]], "optunaz.config.optconfig.Ridge.Parameters.Alpha": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVC": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.SVC.Parameters": [[9, 3, 1, "", "C"], [9, 2, 1, "", "Gamma"], [9, 2, 1, "", "SVCParametersParameterC"], [9, 3, 1, "", "gamma"]], "optunaz.config.optconfig.SVC.Parameters.Gamma": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVC.Parameters.SVCParametersParameterC": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVR": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.SVR.Parameters": [[9, 3, 1, "", "C"], [9, 2, 1, "", "SVRParametersGamma"], [9, 2, 1, "", "SVRParametersParameterC"], [9, 3, 1, "", "gamma"]], "optunaz.config.optconfig.SVR.Parameters.SVRParametersGamma": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVR.Parameters.SVRParametersParameterC": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.XGBRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.XGBRegressor.Parameters": [[9, 2, 1, "", "LearningRate"], [9, 2, 1, "", "MaxDepth"], [9, 2, 1, "", "NEstimators"], [9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.XGBRegressor.Parameters.LearningRate": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.XGBRegressor.Parameters.MaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.XGBRegressor.Parameters.NEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.datareader": [[8, 2, 1, "", "Dataset"], [8, 1, 1, "", "deduplicate"], [8, 1, 1, "", "isvalid"], [8, 1, 1, "", "merge"], [8, 1, 1, "", "read_data"], [8, 1, 1, "", "split"], [8, 1, 1, "", "transform"]], "optunaz.datareader.Dataset": [[8, 3, 1, "", "aux_column"], [8, 3, 1, "", "aux_transform"], [8, 4, 1, "", "check_sets"], [8, 3, 1, "", "deduplication_strategy"], [8, 4, 1, "", "get_merged_sets"], [8, 4, 1, "", "get_sets"], [8, 3, 1, "", "input_column"], [8, 3, 1, "", "intermediate_test_dataset_file"], [8, 3, 1, "", "intermediate_training_dataset_file"], [8, 3, 1, "", "log_transform"], [8, 3, 1, "", "log_transform_base"], [8, 3, 1, "", "log_transform_negative"], [8, 3, 1, "", "log_transform_unit_conversion"], [8, 3, 1, "", "probabilistic_threshold_representation"], [8, 3, 1, "", "probabilistic_threshold_representation_std"], [8, 3, 1, "", "probabilistic_threshold_representation_threshold"], [8, 3, 1, "", "response_column"], [8, 3, 1, "", "response_type"], [8, 3, 1, "", "save_intermediate_files"], [8, 3, 1, "", "split_strategy"], [8, 3, 1, "", "test_dataset_file"], [8, 3, 1, "", "training_dataset_file"]], "optunaz.descriptors": [[8, 2, 1, "", "Avalon"], [8, 2, 1, "", "CanonicalSmiles"], [8, 2, 1, "", "CompositeDescriptor"], [8, 2, 1, "", "ECFP"], [8, 2, 1, "", "ECFP_counts"], [8, 2, 1, "", "FittedSklearnScaler"], [8, 2, 1, "", "GenericScaffold"], [8, 2, 1, "", "JazzyDescriptors"], [8, 2, 1, "", "MACCS_keys"], [8, 2, 1, "", "MolDescriptor"], [8, 5, 1, "", "NoValidSmiles"], [8, 2, 1, "", "PathFP"], [8, 2, 1, "", "PhyschemDescriptors"], [8, 2, 1, "", "PrecomputedDescriptorFromFile"], [8, 2, 1, "", "RdkitDescriptor"], [8, 2, 1, "", "Scaffold"], [8, 2, 1, "", "ScaledDescriptor"], [8, 5, 1, "", "ScalingFittingError"], [8, 2, 1, "", "SmilesAndSideInfoFromFile"], [8, 2, 1, "", "SmilesFromFile"], [8, 2, 1, "", "UnfittedSklearnScaler"], [8, 2, 1, "", "UnscaledJazzyDescriptors"], [8, 2, 1, "", "UnscaledPhyschemDescriptors"], [8, 2, 1, "", "UnscaledZScalesDescriptors"], [8, 2, 1, "", "ValidDescriptor"], [8, 2, 1, "", "ZScalesDescriptors"], [8, 1, 1, "", "descriptor_from_config"], [8, 1, 1, "", "mol_from_smi"], [8, 1, 1, "", "numpy_from_rdkit"]], "optunaz.descriptors.Avalon": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.Avalon.Parameters": [[8, 3, 1, "", "nBits"]], "optunaz.descriptors.CanonicalSmiles": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.CompositeDescriptor": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 4, 1, "", "fp_info"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.CompositeDescriptor.Parameters": [[8, 3, 1, "", "descriptors"]], "optunaz.descriptors.ECFP": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ECFP.Parameters": [[8, 3, 1, "", "nBits"], [8, 3, 1, "", "radius"], [8, 3, 1, "", "returnRdkit"]], "optunaz.descriptors.ECFP_counts": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ECFP_counts.Parameters": [[8, 3, 1, "", "nBits"], [8, 3, 1, "", "radius"], [8, 3, 1, "", "useFeatures"]], "optunaz.descriptors.FittedSklearnScaler": [[8, 4, 1, "", "get_fitted_scaler"], [8, 3, 1, "", "name"], [8, 3, 1, "", "saved_params"]], "optunaz.descriptors.GenericScaffold": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.JazzyDescriptors": [[8, 2, 1, "", "Parameters"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.JazzyDescriptors.Parameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "jazzy_filters"], [8, 3, 1, "", "jazzy_names"], [8, 3, 1, "", "scaler"]], "optunaz.descriptors.MACCS_keys": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.MolDescriptor": [[8, 4, 1, "", "calculate_from_smi"], [8, 4, 1, "", "parallel_compute_descriptor"]], "optunaz.descriptors.PathFP": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.PathFP.Parameters": [[8, 3, 1, "", "fpSize"], [8, 3, 1, "", "maxPath"]], "optunaz.descriptors.PhyschemDescriptors": [[8, 2, 1, "", "Parameters"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.PhyschemDescriptors.Parameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "rdkit_names"], [8, 3, 1, "", "scaler"]], "optunaz.descriptors.PrecomputedDescriptorFromFile": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.PrecomputedDescriptorFromFile.Parameters": [[8, 3, 1, "", "file"], [8, 3, 1, "", "input_column"], [8, 3, 1, "", "response_column"]], "optunaz.descriptors.RdkitDescriptor": [[8, 4, 1, "", "calculate_from_mol"], [8, 4, 1, "", "calculate_from_smi"]], "optunaz.descriptors.Scaffold": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ScaledDescriptor": [[8, 2, 1, "", "ScaledDescriptorParameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"], [8, 4, 1, "", "set_unfitted_scaler_data"]], "optunaz.descriptors.ScaledDescriptor.ScaledDescriptorParameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "scaler"]], "optunaz.descriptors.SmilesAndSideInfoFromFile": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.SmilesAndSideInfoFromFile.Parameters": [[8, 2, 1, "", "Aux_Weight_Pc"], [8, 3, 1, "", "aux_weight_pc"], [8, 3, 1, "", "file"], [8, 3, 1, "", "input_column"]], "optunaz.descriptors.SmilesAndSideInfoFromFile.Parameters.Aux_Weight_Pc": [[8, 3, 1, "", "high"], [8, 3, 1, "", "low"], [8, 3, 1, "", "q"]], "optunaz.descriptors.SmilesFromFile": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.UnfittedSklearnScaler": [[8, 2, 1, "", "MolData"], [8, 4, 1, "", "get_fitted_scaler_for_fp"], [8, 3, 1, "", "mol_data"], [8, 3, 1, "", "name"]], "optunaz.descriptors.UnfittedSklearnScaler.MolData": [[8, 3, 1, "", "file_path"], [8, 3, 1, "", "smiles_column"]], "optunaz.descriptors.UnscaledJazzyDescriptors": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.UnscaledJazzyDescriptors.Parameters": [[8, 3, 1, "", "jazzy_filters"], [8, 3, 1, "", "jazzy_names"]], "optunaz.descriptors.UnscaledPhyschemDescriptors": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.UnscaledPhyschemDescriptors.Parameters": [[8, 3, 1, "", "rdkit_names"]], "optunaz.descriptors.UnscaledZScalesDescriptors": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ValidDescriptor": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ZScalesDescriptors": [[8, 2, 1, "", "Parameters"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ZScalesDescriptors.Parameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "scaler"]], "optunaz.evaluate": [[8, 1, 1, "", "get_merged_train_score"], [8, 1, 1, "", "get_scores"], [8, 1, 1, "", "get_train_test_scores"], [8, 1, 1, "", "score_all"], [8, 1, 1, "", "score_all_smiles"]], "optunaz.explainability": [[8, 1, 1, "", "ExplainPreds"], [8, 1, 1, "", "ShapExplainer"], [8, 1, 1, "", "explain_ECFP"], [8, 1, 1, "", "get_ecfp_fpinfo"], [8, 1, 1, "", "get_ecfpcount_fpinfo"], [8, 1, 1, "", "get_fp_info"], [8, 1, 1, "", "runShap"]], "optunaz.metircs": [[8, 1, 1, "", "auc_pr_cal"], [8, 1, 1, "", "bedroc_score"], [8, 1, 1, "", "concordance_index"], [8, 1, 1, "", "validate_cls_input"]], "optunaz.model_writer": [[8, 2, 1, "", "Predictor"], [8, 2, 1, "", "QSARtunaModel"], [8, 1, 1, "", "get_metadata"], [8, 1, 1, "", "get_transform"], [8, 1, 1, "", "perform_ptr"], [8, 1, 1, "", "save_model"], [8, 1, 1, "", "wrap_model"]], "optunaz.model_writer.Predictor": [[8, 4, 1, "", "explain"], [8, 4, 1, "", "predict"], [8, 4, 1, "", "predict_proba"], [8, 4, 1, "", "predict_uncert"]], "optunaz.model_writer.QSARtunaModel": [[8, 3, 1, "", "aux_transform"], [8, 3, 1, "", "descriptor"], [8, 3, 1, "", "metadata"], [8, 3, 1, "", "mode"], [8, 4, 1, "", "predict_from_smiles"], [8, 3, 1, "", "predictor"], [8, 3, 1, "", "transform"]], "optunaz.objective": [[8, 5, 1, "", "NoValidDescriptors"], [8, 2, 1, "", "Objective"], [8, 1, 1, "", "null_scores"]], "optunaz.objective.Objective": [[8, 3, 1, "", "cache"], [8, 3, 1, "", "optconfig"], [8, 3, 1, "", "train_aux"], [8, 3, 1, "", "train_smiles"], [8, 3, 1, "", "train_y"]], "optunaz.optbuild": [[8, 1, 1, "", "main"], [8, 1, 1, "", "predict_pls"]], "optunaz.predict": [[8, 5, 1, "", "ArgsError"], [8, 5, 1, "", "AuxCovariateMissing"], [8, 5, 1, "", "PrecomputedError"], [8, 5, 1, "", "UncertaintyError"], [8, 1, 1, "", "check_precomp_args"], [8, 1, 1, "", "main"], [8, 1, 1, "", "validate_args"], [8, 1, 1, "", "validate_aux"], [8, 1, 1, "", "validate_set_precomputed"], [8, 1, 1, "", "validate_uncertainty"]], "optunaz.schemagen": [[8, 1, 1, "", "doctitle"], [8, 1, 1, "", "main"], [8, 1, 1, "", "patch_schema_generic"], [8, 1, 1, "", "patch_schema_optunaz"], [8, 1, 1, "", "type_base_schema"]], "optunaz.three_step_opt_build_merge": [[8, 1, 1, "", "base_chemprop_params"], [8, 1, 1, "", "build_best"], [8, 1, 1, "", "build_merged"], [8, 1, 1, "", "buildconfig_best"], [8, 1, 1, "", "log_scores"], [8, 1, 1, "", "optimize"], [8, 1, 1, "", "run_study"], [8, 1, 1, "", "split_optimize"]], "optunaz.utils": [[11, 0, 0, "-", "enums"], [10, 0, 0, "-", "files_paths"], [10, 1, 1, "", "load_df_from_file"], [10, 0, 0, "-", "load_json"], [10, 1, 1, "", "md5_hash"], [10, 1, 1, "", "mkdict"], [10, 0, 0, "-", "mlflow"], [12, 0, 0, "-", "preprocessing"], [10, 1, 1, "", "remove_failed_idx"], [10, 0, 0, "-", "schema"], [10, 0, 0, "-", "tracking"]], "optunaz.utils.enums": [[11, 2, 1, "", "MlflowLogParams"], [11, 2, 1, "", "StudyUserAttrs"], [11, 2, 1, "", "TrialParams"], [11, 2, 1, "", "TrialUserAttrs"], [11, 0, 0, "-", "building_configuration_enum"], [11, 0, 0, "-", "configuration_enum"], [11, 0, 0, "-", "interface_enum"], [11, 0, 0, "-", "model_runner_enum"], [11, 0, 0, "-", "objective_enum"], [11, 0, 0, "-", "optimization_configuration_enum"], [11, 0, 0, "-", "prediction_configuration_enum"], [11, 0, 0, "-", "return_values_enum"], [11, 0, 0, "-", "visualization_enum"]], "optunaz.utils.enums.MlflowLogParams": [[11, 3, 1, "", "TRIAL_NUMBER"]], "optunaz.utils.enums.StudyUserAttrs": [[11, 3, 1, "", "OPTCONFIG"]], "optunaz.utils.enums.TrialParams": [[11, 3, 1, "", "ALGORITHM_HASH"], [11, 3, 1, "", "ALGORITHM_NAME"], [11, 3, 1, "", "DESCRIPTOR"]], "optunaz.utils.enums.TrialUserAttrs": [[11, 3, 1, "", "TEST_SCORES"], [11, 3, 1, "", "TRAIN_SCORES"]], "optunaz.utils.enums.building_configuration_enum": [[11, 2, 1, "", "BuildingConfigurationEnum"]], "optunaz.utils.enums.building_configuration_enum.BuildingConfigurationEnum": [[11, 3, 1, "", "GENERAL_CLASSIFIER"], [11, 3, 1, "", "GENERAL_HYPERPARAMETERS"], [11, 3, 1, "", "GENERAL_REGRESSOR"], [11, 3, 1, "", "METADATA"], [11, 3, 1, "", "METADATA_BESTTRIAL"], [11, 3, 1, "", "METADATA_BESTVALUE"]], "optunaz.utils.enums.configuration_enum": [[11, 2, 1, "", "ConfigurationEnum"]], "optunaz.utils.enums.configuration_enum.ConfigurationEnum": [[11, 3, 1, "", "ALGORITHMS"], [11, 3, 1, "", "ALGORITHMS_ADABOOSTCLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_ADABOOSTCLASSIFIER_LEARNING_RATE"], [11, 3, 1, "", "ALGORITHMS_ADABOOSTCLASSIFIER_N_ESTIMATORS"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_ENSEMBLE"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_ESTIMATOR"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_METHOD"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_N_FOLDS"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_PARAMS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_ACTIVATION"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_AGGREGATION"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_AGGREGATION_NORM"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_BATCH_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_CLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_DEPTH"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_DROPOUT"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_ENSEMBLE_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_EPOCHS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FEATURES_GENERATOR"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FFN_HIDDEN_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FFN_NUM_LAYERS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FINAL_LR_RATIO_EXP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FRZN"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_HIDDEN_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_HYPEROPT_CLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_HYPEROPT_REGRESSOR"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_INIT_LR_RATIO_EXP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_MAX_LR_EXP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_NUM_ITERS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_PRETRAINED_MODEL"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_REGRESSOR"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_SEARCH_PARAMETER_LEVEL"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_STARTUP_RANDOM_ITERS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_WARMUP_EPOCHS_RATIO"], [11, 3, 1, "", "ALGORITHMS_HIGH"], [11, 3, 1, "", "ALGORITHMS_INTERFACE_SKLEARN"], [11, 3, 1, "", "ALGORITHMS_INTERFACE_XGBOOST"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORSCLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORSREGRESSOR"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORS_METRIC"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORS_N_NEIGHBORS"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORS_WEIGHTS"], [11, 3, 1, "", "ALGORITHMS_LASSO"], [11, 3, 1, "", "ALGORITHMS_LASSO_ALPHA"], [11, 3, 1, "", "ALGORITHMS_LOGISTICREGRESSION"], [11, 3, 1, "", "ALGORITHMS_LOGISTICREGRESSION_C"], [11, 3, 1, "", "ALGORITHMS_LOGISTICREGRESSION_SOLVER"], [11, 3, 1, "", "ALGORITHMS_LOW"], [11, 3, 1, "", "ALGORITHMS_MAPIE"], [11, 3, 1, "", "ALGORITHMS_MAPIE_ALPHA"], [11, 3, 1, "", "ALGORITHMS_PLSREGRESSION"], [11, 3, 1, "", "ALGORITHMS_PLSREGRESSION_N_COMPONENTS"], [11, 3, 1, "", "ALGORITHMS_PRF"], [11, 3, 1, "", "ALGORITHMS_PRF_MAX_DEPTH"], [11, 3, 1, "", "ALGORITHMS_PRF_MAX_FEATURES"], [11, 3, 1, "", "ALGORITHMS_PRF_MINPYSUMLEAF"], [11, 3, 1, "", "ALGORITHMS_PRF_N_ESTIMATORS"], [11, 3, 1, "", "ALGORITHMS_PRF_USE_PY_GINI"], [11, 3, 1, "", "ALGORITHMS_PRF_USE_PY_LEAFS"], [11, 3, 1, "", "ALGORITHMS_Q"], [11, 3, 1, "", "ALGORITHMS_RFCLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_RFREGRESSOR"], [11, 3, 1, "", "ALGORITHMS_RF_MAX_DEPTH"], [11, 3, 1, "", "ALGORITHMS_RF_MAX_FEATURES"], [11, 3, 1, "", "ALGORITHMS_RF_N_ESTIMATORS"], [11, 3, 1, "", "ALGORITHMS_RIDGE"], [11, 3, 1, "", "ALGORITHMS_RIDGE_ALPHA"], [11, 3, 1, "", "ALGORITHMS_SVC"], [11, 3, 1, "", "ALGORITHMS_SVC_C"], [11, 3, 1, "", "ALGORITHMS_SVC_GAMMA"], [11, 3, 1, "", "ALGORITHMS_SVR"], [11, 3, 1, "", "ALGORITHMS_SVR_C"], [11, 3, 1, "", "ALGORITHMS_SVR_GAMMA"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR_LEARNING_RATE"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR_MAX_DEPTH"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR_N_ESTIMATORS"], [11, 3, 1, "", "DATA"], [11, 3, 1, "", "DATA_INPUTCOLUMN"], [11, 3, 1, "", "DATA_RESPONSECOLUMN"], [11, 3, 1, "", "DATA_TEST"], [11, 3, 1, "", "DATA_TRAINING"], [11, 3, 1, "", "DESCRIPTORS"], [11, 3, 1, "", "DESCRIPTORS_AVALON"], [11, 3, 1, "", "DESCRIPTORS_AVALON_NBITS"], [11, 3, 1, "", "DESCRIPTORS_COMPOSITE"], [11, 3, 1, "", "DESCRIPTORS_ECFP"], [11, 3, 1, "", "DESCRIPTORS_ECFPCOUNTS"], [11, 3, 1, "", "DESCRIPTORS_ECFPCOUNTS_RADIUS"], [11, 3, 1, "", "DESCRIPTORS_ECFPCOUNTS_USEFEATURES"], [11, 3, 1, "", "DESCRIPTORS_ECFP_NBITS"], [11, 3, 1, "", "DESCRIPTORS_ECFP_RADIUS"], [11, 3, 1, "", "DESCRIPTORS_JAZZY"], [11, 3, 1, "", "DESCRIPTORS_JAZZY_JAZZYNAMES"], [11, 3, 1, "", "DESCRIPTORS_MACCSKEYS"], [11, 3, 1, "", "DESCRIPTORS_PATHFP"], [11, 3, 1, "", "DESCRIPTORS_PATHFP_FPSIZE"], [11, 3, 1, "", "DESCRIPTORS_PATHFP_MAXPATH"], [11, 3, 1, "", "DESCRIPTORS_PHYSCHEM"], [11, 3, 1, "", "DESCRIPTORS_PHYSCHEM_RDKITNAMES"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED_FILE"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED_INPUT_COLUMNN"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED_RESPONSE_COLUMN"], [11, 3, 1, "", "DESCRIPTORS_SCALED"], [11, 3, 1, "", "DESCRIPTORS_SCALED_DESCRIPTOR"], [11, 3, 1, "", "DESCRIPTORS_SCALED_DESCRIPTOR_PARAMETERS"], [11, 3, 1, "", "DESCRIPTORS_SMILES"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI_AUX_WEIGHT_PC"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI_FILE"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI_INPUT_COLUMN"], [11, 3, 1, "", "DESCRIPTORS_UNSC_JAZZY"], [11, 3, 1, "", "DESCRIPTORS_UNSC_PHYSCHEM"], [11, 3, 1, "", "DESCRIPTORS_UNSC_ZSCALES"], [11, 3, 1, "", "DESCRIPTORS_ZSCALES"], [11, 3, 1, "", "GENERAL_DISABLED"], [11, 3, 1, "", "GENERAL_PARAMETERS"], [11, 3, 1, "", "SETTINGS"], [11, 3, 1, "", "SETTINGS_CROSS_VALIDATION"], [11, 3, 1, "", "SETTINGS_DIRECTION"], [11, 3, 1, "", "SETTINGS_MODE"], [11, 3, 1, "", "SETTINGS_MODE_CLASSIFICATION"], [11, 3, 1, "", "SETTINGS_MODE_REGRESSION"], [11, 3, 1, "", "SETTINGS_N_JOBS"], [11, 3, 1, "", "SETTINGS_N_TRIALS"], [11, 3, 1, "", "SETTINGS_SHUFFLE"], [11, 3, 1, "", "TASK"], [11, 3, 1, "", "TASK_BUILDING"], [11, 3, 1, "", "TASK_OPTIMIZATION"]], "optunaz.utils.enums.interface_enum": [[11, 2, 1, "", "InterfaceEnum"]], "optunaz.utils.enums.interface_enum.InterfaceEnum": [[11, 3, 1, "", "CALIBRATED_SET"], [11, 3, 1, "", "CHEMPROP_SET"], [11, 3, 1, "", "PRF_SET"], [11, 3, 1, "", "SKLEARN_SET"], [11, 3, 1, "", "XGBOOST_SET"]], "optunaz.utils.enums.model_runner_enum": [[11, 2, 1, "", "ModelRunnerDataframeEnum"]], "optunaz.utils.enums.model_runner_enum.ModelRunnerDataframeEnum": [[11, 3, 1, "", "SET"], [11, 3, 1, "", "SMILES"], [11, 3, 1, "", "TEST"], [11, 3, 1, "", "TRAIN"], [11, 3, 1, "", "Y_PRED"], [11, 3, 1, "", "Y_TRUE"]], "optunaz.utils.enums.objective_enum": [[11, 2, 1, "", "ObjectiveEnum"]], "optunaz.utils.enums.objective_enum.ObjectiveEnum": [[11, 3, 1, "", "ATTRIBUTE_TRIAL_TRAIN_SCORE"], [11, 3, 1, "", "EXTRA_COLUMN_BESTHIT"]], "optunaz.utils.enums.optimization_configuration_enum": [[11, 2, 1, "", "OptimizationConfigurationEnum"]], "optunaz.utils.enums.prediction_configuration_enum": [[11, 2, 1, "", "PredictionConfigurationEnum"]], "optunaz.utils.enums.prediction_configuration_enum.PredictionConfigurationEnum": [[11, 3, 1, "", "DATA_DATASET"]], "optunaz.utils.enums.return_values_enum": [[11, 2, 1, "", "SklearnReturnValueEnum"], [11, 2, 1, "", "XGBoostReturnValueEnum"]], "optunaz.utils.enums.return_values_enum.SklearnReturnValueEnum": [[11, 3, 1, "", "CROSS_VALIDATE_FIT_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_SCORE_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_TEST_SCORE"], [11, 3, 1, "", "CROSS_VALIDATE_TRAIN_SCORE"]], "optunaz.utils.enums.return_values_enum.XGBoostReturnValueEnum": [[11, 3, 1, "", "CROSS_VALIDATE_FIT_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_SCORE_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_TEST_SCORE"], [11, 3, 1, "", "CROSS_VALIDATE_TRAIN_SCORE"]], "optunaz.utils.enums.visualization_enum": [[11, 2, 1, "", "VisualizationEnum"]], "optunaz.utils.enums.visualization_enum.VisualizationEnum": [[11, 3, 1, "", "OPTUNA_SYSTEM_ATTRS_INTERMEDIATE_VALUES"], [11, 3, 1, "", "OPTUNA_SYSTEM_ATTRS_NUMBER"], [11, 3, 1, "", "OPTUNA_SYSTEM_ATTRS_TRIAL_ID"], [11, 3, 1, "", "VISUALIZATION"], [11, 3, 1, "", "VISUALIZATION_CLASSIFIER"], [11, 3, 1, "", "VISUALIZATION_FILE_FORMAT"], [11, 3, 1, "", "VISUALIZATION_OUTPUT_FOLDER"], [11, 3, 1, "", "VISUALIZATION_PLOTS"], [11, 3, 1, "", "VISUALIZATION_PLOTS_CONTOUR"], [11, 3, 1, "", "VISUALIZATION_PLOTS_HISTORY"], [11, 3, 1, "", "VISUALIZATION_PLOTS_PARALLEL_COORDINATE"], [11, 3, 1, "", "VISUALIZATION_PLOTS_SLICE"], [11, 3, 1, "", "VISUALIZATION_REGRESSOR"], [11, 3, 1, "", "VISUALIZATION_USE_XVFB"]], "optunaz.utils.files_paths": [[10, 1, 1, "", "attach_root_path"], [10, 1, 1, "", "move_up_directory"]], "optunaz.utils.load_json": [[10, 1, 1, "", "loadJSON"]], "optunaz.utils.mlflow": [[10, 2, 1, "", "MLflowCallback"], [10, 1, 1, "", "add_ellipsis"], [10, 1, 1, "", "shorten_names"]], "optunaz.utils.mlflow.MLflowCallback": [[10, 3, 1, "", "optconfig"], [10, 4, 1, "", "prepare_tags"], [10, 4, 1, "", "tmp_buildconfig"], [10, 3, 1, "", "tracking_uri"], [10, 3, 1, "", "trial_number_offset"]], "optunaz.utils.preprocessing": [[12, 0, 0, "-", "deduplicator"], [12, 0, 0, "-", "splitter"], [12, 0, 0, "-", "transform"]], "optunaz.utils.preprocessing.deduplicator": [[12, 2, 1, "", "Deduplicator"], [12, 2, 1, "", "KeepAllNoDeduplication"], [12, 2, 1, "", "KeepAvg"], [12, 2, 1, "", "KeepFirst"], [12, 2, 1, "", "KeepLast"], [12, 2, 1, "", "KeepMax"], [12, 2, 1, "", "KeepMedian"], [12, 2, 1, "", "KeepMin"], [12, 2, 1, "", "KeepRandom"]], "optunaz.utils.preprocessing.deduplicator.Deduplicator": [[12, 4, 1, "", "dedup"]], "optunaz.utils.preprocessing.deduplicator.KeepAllNoDeduplication": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepAvg": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepFirst": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepLast": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepMax": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepMedian": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepMin": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepRandom": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"], [12, 3, 1, "", "seed"]], "optunaz.utils.preprocessing.splitter": [[12, 2, 1, "", "GroupingSplitter"], [12, 2, 1, "", "HistogramStratifiedShuffleSplit"], [12, 2, 1, "", "KFold"], [12, 2, 1, "", "NoSplitting"], [13, 2, 1, "", "Predefined"], [13, 2, 1, "", "Random"], [13, 2, 1, "", "ScaffoldSplit"], [12, 2, 1, "", "SklearnSplitter"], [12, 2, 1, "", "Splitter"], [13, 2, 1, "", "Stratified"], [13, 2, 1, "", "Temporal"], [12, 1, 1, "", "butina_cluster"], [12, 1, 1, "", "fd_bin"], [12, 1, 1, "", "stratify"]], "optunaz.utils.preprocessing.splitter.GroupingSplitter": [[12, 4, 1, "", "groups"]], "optunaz.utils.preprocessing.splitter.HistogramStratifiedShuffleSplit": [[12, 3, 1, "", "bins"], [12, 4, 1, "", "get_n_splits"], [12, 3, 1, "", "n_splits"], [12, 3, 1, "", "random_state"], [12, 4, 1, "", "split"], [12, 3, 1, "", "test_fraction"]], "optunaz.utils.preprocessing.splitter.KFold": [[12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 3, 1, "", "random_state"], [12, 3, 1, "", "shuffle"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.NoSplitting": [[12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Predefined": [[12, 3, 1, "", "column_name"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 4, 1, "", "groups"], [12, 3, 1, "", "name"], [13, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Random": [[12, 3, 1, "", "fraction"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 3, 1, "", "seed"]], "optunaz.utils.preprocessing.splitter.ScaffoldSplit": [[12, 3, 1, "", "bins"], [12, 3, 1, "", "butina_cluster"], [12, 4, 1, "", "get_n_splits"], [12, 4, 1, "", "get_sklearn_splitter"], [13, 4, 1, "", "groups"], [12, 3, 1, "", "make_scaffold_generic"], [12, 3, 1, "", "name"], [12, 3, 1, "", "random_state"], [13, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.SklearnSplitter": [[12, 4, 1, "", "get_n_splits"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Splitter": [[12, 4, 1, "", "get_sklearn_splitter"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Stratified": [[12, 3, 1, "", "bins"], [12, 3, 1, "", "fraction"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 3, 1, "", "seed"]], "optunaz.utils.preprocessing.splitter.Temporal": [[12, 3, 1, "", "fraction"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [13, 4, 1, "", "split"]], "optunaz.utils.preprocessing.transform": [[12, 2, 1, "", "AuxTransformer"], [12, 2, 1, "", "DataTransform"], [12, 2, 1, "", "LogBase"], [12, 2, 1, "", "LogNegative"], [14, 2, 1, "", "ModelDataTransform"], [14, 2, 1, "", "PTRTransform"], [14, 2, 1, "", "VectorFromColumn"], [14, 2, 1, "", "ZScales"]], "optunaz.utils.preprocessing.transform.AuxTransformer": [[12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.DataTransform": [[12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.LogBase": [[12, 3, 1, "", "LOG"], [12, 3, 1, "", "LOG10"], [12, 3, 1, "", "LOG2"]], "optunaz.utils.preprocessing.transform.LogNegative": [[12, 3, 1, "", "FALSE"], [12, 3, 1, "", "TRUE"]], "optunaz.utils.preprocessing.transform.ModelDataTransform": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "base_dict"], [12, 3, 1, "", "base_negation"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 3, 1, "", "reverse_dict"], [12, 4, 1, "", "reverse_transform"], [12, 4, 1, "", "reverse_transform_df"], [12, 4, 1, "", "reverse_transform_one"], [12, 4, 1, "", "transform"], [12, 4, 1, "", "transform_df"], [12, 4, 1, "", "transform_one"]], "optunaz.utils.preprocessing.transform.ModelDataTransform.Parameters": [[12, 3, 1, "", "base"], [12, 3, 1, "", "conversion"], [12, 3, 1, "", "negation"]], "optunaz.utils.preprocessing.transform.PTRTransform": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 4, 1, "", "reverse_transform"], [12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.PTRTransform.Parameters": [[12, 3, 1, "", "std"], [12, 3, 1, "", "threshold"]], "optunaz.utils.preprocessing.transform.VectorFromColumn": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.VectorFromColumn.Parameters": [[12, 3, 1, "", "delimiter"]], "optunaz.utils.preprocessing.transform.ZScales": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 4, 1, "", "transform"]], "optunaz.utils.schema": [[10, 1, 1, "", "add_boolean_guards_for_schema_properties"], [10, 1, 1, "", "addsibling"], [10, 1, 1, "", "addtitles"], [10, 1, 1, "", "copytitle"], [10, 1, 1, "", "create_dependency"], [10, 1, 1, "", "delsibling"], [10, 1, 1, "", "getref"], [10, 1, 1, "", "remove_schema_properties"], [10, 1, 1, "", "replaceenum"], [10, 1, 1, "", "replacekey"], [10, 1, 1, "", "replacevalue"]], "optunaz.utils.tracking": [[10, 2, 1, "", "BuildTrackingData"], [10, 2, 1, "", "Datapoint"], [10, 2, 1, "", "InternalTrackingCallback"], [10, 2, 1, "", "TrackingData"], [10, 1, 1, "", "get_authorization_header"], [10, 1, 1, "", "removeprefix"], [10, 1, 1, "", "round_scores"], [10, 1, 1, "", "track_build"]], "optunaz.utils.tracking.BuildTrackingData": [[10, 3, 1, "", "response_column_name"], [10, 3, 1, "", "test_points"], [10, 3, 1, "", "test_scores"]], "optunaz.utils.tracking.Datapoint": [[10, 3, 1, "", "expected"], [10, 3, 1, "", "predicted"], [10, 3, 1, "", "smiles"]], "optunaz.utils.tracking.InternalTrackingCallback": [[10, 3, 1, "", "optconfig"], [10, 3, 1, "", "trial_number_offset"]], "optunaz.utils.tracking.TrackingData": [[10, 3, 1, "", "all_cv_test_scores"], [10, 3, 1, "", "buildconfig"], [10, 3, 1, "", "scoring"], [10, 3, 1, "", "trial_number"], [10, 3, 1, "", "trial_state"], [10, 3, 1, "", "trial_value"]], "optunaz.visualizer": [[8, 2, 1, "", "Visualizer"]], "optunaz.visualizer.Visualizer": [[8, 4, 1, "", "plot_by_configuration"], [8, 4, 1, "", "plot_contour"], [8, 4, 1, "", "plot_history"], [8, 4, 1, "", "plot_parallel_coordinate"], [8, 4, 1, "", "plot_slice"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "exception", "Python exception"]}, "titleterms": {"qsartuna": [0, 4, 6, 7], "\ud80c\udd9b": 0, "qsar": 0, "us": 0, "optim": [0, 6], "hyperparamet": 0, "tune": 0, "formerli": 0, "optuna": 0, "az": 0, "qptuna": 0, "background": [0, 6], "The": [0, 6], "three": [0, 6], "step": [0, 6], "process": [0, 6], "json": 0, "base": [0, 7], "command": 0, "line": 0, "interfac": 0, "configur": [0, 6], "file": [0, 6], "run": [0, 6], "via": 0, "singulart": 0, "submit": 0, "slurm": 0, "model": [0, 6], "option": [0, 6], "inspect": 0, "from": [0, 6, 7], "python": 0, "jupyt": 0, "notebook": 0, "avail": [1, 2, 3, 13, 14], "algorithm": [1, 6], "adaboostclassifi": 1, "lasso": 1, "kneighborsclassifi": 1, "kneighborsregressor": 1, "logisticregress": 1, "plsregress": 1, "randomforestclassifi": 1, "randomforestregressor": 1, "ridg": 1, "svc": 1, "svr": 1, "xgbregressor": 1, "prfclassifi": 1, "chempropregressor": 1, "chempropclassifi": 1, "chemprophyperoptclassifi": 1, "chemprophyperoptregressor": 1, "chemprophyperoptregressorpretrain": 1, "calibratedclassifiercvwithva": 1, "mapi": [1, 6], "dedupl": [2, 7, 12], "keepfirst": 2, "keeplast": 2, "keeprandom": 2, "keepmin": 2, "keepmax": 2, "keepavg": 2, "keepmedian": 2, "keepkeepallnodedupl": 2, "descriptor": [3, 6, 8], "avalon": 3, "ecfp": 3, "ecfp_count": 3, "pathfp": 3, "maccs_kei": 3, "unscaledphyschemdescriptor": 3, "unscaledjazzydescriptor": 3, "unscaledzscalesdescriptor": 3, "physchemdescriptor": 3, "jazzydescriptor": 3, "precomputeddescriptorfromfil": 3, "zscale": [3, 14], "smilesfromfil": 3, "smilesandsideinfofromfil": 3, "scaleddescriptor": 3, "compositedescriptor": 3, "welcom": 4, "document": 4, "develop": 4, "optunaz": [5, 8, 9, 10, 11, 12], "cli": 6, "tutori": 6, "thi": 6, "prepar": 6, "regress": 6, "exampl": 6, "creat": 6, "visual": [6, 8], "progress": 6, "pick": 6, "best": [6, 7], "trial": 6, "build": 6, "merg": 6, "preprocess": [6, 7, 12], "split": [6, 7], "data": [6, 7], "train": 6, "test": 6, "set": 6, "remov": 6, "duplic": [6, 7], "dataset": 6, "choos": 6, "score": 6, "function": 6, "advanc": 6, "functoinail": 6, "probabilist": [6, 7], "random": [6, 7, 13], "forest": 6, "prf": 6, "interlud": [6, 7], "cautionari": 6, "advic": 6, "y": 6, "respons": 6, "column": 6, "valid": 6, "chemprop": 6, "simpl": 6, "separ": 6, "shallow": 6, "method": 6, "default": 6, "behavior": 6, "turn": 6, "hyperopt": 6, "within": [6, 7], "functionail": 6, "veri": 6, "larg": 6, "comput": 6, "cost": 6, "A": 6, "note": 6, "mpnn": 6, "search": 6, "space": 6, "side": 6, "inform": 6, "multi": 6, "task": 6, "learn": 6, "mtl": 6, "combin": 6, "onli": 6, "recommend": 6, "long": 6, "time": 6, "pre": 6, "adapt": 6, "transfer": 6, "fingerprint": 6, "encod": 6, "latent": 6, "represent": [6, 7], "probabl": 6, "calibr": 6, "classif": 6, "uncertainti": 6, "estim": 6, "vennab": 6, "ensembl": 6, "dropout": 6, "explain": [6, 8], "shap": 6, "interpret": 6, "log": [6, 7], "transform": [6, 7, 12, 14], "covari": 6, "one": 6, "e": 6, "g": 6, "dose": 6, "point": 6, "co": 6, "variat": 6, "proteochemometr": 6, "pcm": 6, "more": 6, "vectorfromsmil": 6, "z": 6, "scale": 6, "object": [6, 8], "priorit": 6, "perform": [6, 7], "standard": 6, "deviat": 6, "further": 6, "precomput": 6, "introduct": 7, "translat": 7, "sdf": 7, "csv": 7, "need": 7, "deal": 7, "compar": 7, "differ": 7, "unif": 7, "strategi": 7, "tempor": [7, 13], "stratifi": [7, 13], "scaffold": 7, "input": 7, "user": 7, "import": 7, "logarithm": 7, "dataread": [7, 8], "threshold": 7, "ptr": [7, 14], "experiment": 7, "error": 7, "definit": 7, "implement": 7, "conclus": 7, "calcul": 7, "evalu": [7, 8], "reproduc": 7, "practic": 7, "packag": [8, 9, 10, 11, 12], "subpackag": [8, 10], "submodul": [8, 9, 10, 11, 12], "builder": 8, "modul": [8, 9, 10, 11, 12], "metirc": 8, "model_writ": 8, "optbuild": 8, "predict": 8, "schemagen": 8, "three_step_opt_build_merg": 8, "content": [8, 9, 10, 11, 12], "config": 9, "build_from_opt": 9, "buildconfig": 9, "optconfig": 9, "util": [10, 11, 12], "files_path": 10, "load_json": 10, "mlflow": 10, "schema": 10, "track": 10, "enum": 11, "building_configuration_enum": 11, "configuration_enum": 11, "interface_enum": 11, "model_runner_enum": 11, "objective_enum": 11, "optimization_configuration_enum": 11, "prediction_configuration_enum": 11, "return_values_enum": 11, "visualization_enum": 11, "splitter": [12, 13], "predefin": 13, "scaffoldsplit": 13, "modeldatatransform": 14, "vectorfromcolumn": 14}, "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, "nbsphinx": 4, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "algorithms", "deduplicator", "descriptors", "index", "modules", "notebooks/QSARtuna_Tutorial", "notebooks/preprocess_data", "optunaz", "optunaz.config", "optunaz.utils", "optunaz.utils.enums", "optunaz.utils.preprocessing", "splitters", "transform"], "filenames": ["README.md", "algorithms.rst", "deduplicator.rst", "descriptors.rst", "index.rst", "modules.rst", "notebooks/QSARtuna_Tutorial.ipynb", "notebooks/preprocess_data.ipynb", "optunaz.rst", "optunaz.config.rst", "optunaz.utils.rst", "optunaz.utils.enums.rst", "optunaz.utils.preprocessing.rst", "splitters.rst", "transform.rst"], "titles": ["QSARtuna \ud80c\udd9b: QSAR using Optimization for Hyperparameter Tuning (formerly Optuna AZ and QPTUNA)", "Available algorithms", "Available deduplicators", "Available descriptors", "Welcome to QSARtuna Documentation!", "optunaz", "QSARtuna CLI Tutorial", "Preprocessing data for QSARtuna", "optunaz package", "optunaz.config package", "optunaz.utils package", "optunaz.utils.enums package", "optunaz.utils.preprocessing package", "Available splitters", "Available transform"], "terms": {"build": [0, 4, 8, 9, 10, 11], "predict": [0, 1, 3, 5, 6, 7, 9, 10, 11], "compchem": 0, "develop": [0, 3, 8], "uncertainti": [0, 1, 4, 7, 8, 9, 12, 14], "quantif": 0, "explain": [0, 1, 4, 5, 9], "mind": 0, "thi": [0, 1, 3, 4, 7, 8, 9, 10, 11, 12, 13], "librari": [0, 7], "search": [0, 1, 3, 8, 9], "best": [0, 1, 8, 9], "ml": [0, 4, 9], "algorithm": [0, 3, 4, 7, 8, 9, 10, 11, 12, 13], "molecular": [0, 1, 3, 4, 6, 7, 8, 9], "descriptor": [0, 4, 5, 9, 11], "given": [0, 1, 3, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 8, 9, 11, 12, 13, 14], "itself": [0, 6], "done": [0, 6], "emploi": [0, 3, 6, 7, 8], "latest": [0, 9], "state": [0, 6, 12], "art": [0, 6], "estim": [0, 1, 3, 4, 7, 8, 9, 11], "packag": [0, 1, 3, 5, 6, 7], "further": [0, 9], "document": [0, 6, 7], "github": [0, 6, 8, 12], "page": 0, "here": [0, 3, 6, 7, 8, 9, 12, 13], "public": [0, 1, 3, 4, 6, 8, 9], "avail": [0, 4, 6, 7, 8], "structur": [0, 1, 3, 6, 7, 8, 9], "around": [0, 6, 7], "train": [0, 1, 3, 4, 7, 8, 9, 11, 12, 13], "mani": [0, 1, 6, 9], "differ": [0, 1, 3, 6, 8, 9, 12], "paramet": [0, 1, 3, 6, 7, 8, 9, 11, 12, 13, 14], "onli": [0, 1, 3, 7, 8, 9, 12, 13], "dataset": [0, 1, 7, 8, 9, 11, 12], "usual": [0, 1, 6, 7, 9], "cross": [0, 1, 6, 9, 12], "valid": [0, 1, 3, 7, 8, 9, 11, 12], "pick": 0, "evalu": [0, 4, 5, 6], "its": [0, 1, 6, 9, 11], "perform": [0, 3, 8, 11, 12, 14], "test": [0, 1, 4, 7, 8, 9, 11, 12, 13], "prod": [0, 6], "re": [0, 6, 8], "merg": [0, 7, 8, 12], "ha": [0, 1, 6, 7, 8, 9, 12], "drawback": [0, 6], "left": [0, 6, 7], "result": [0, 1, 3, 6, 7, 8, 9], "big": [0, 6], "benefit": [0, 6], "final": [0, 1, 6, 9], "all": [0, 1, 3, 6, 7, 8, 9, 11, 12], "let": [0, 6, 7], "s": [0, 6, 7], "look": [0, 1, 6, 7, 9], "trivial": 0, "exampl": [0, 3, 7, 8, 9], "weight": [0, 1, 3, 6, 8, 9, 11], "set": [0, 3, 4, 7, 8, 9, 10, 11, 12, 13], "50": [0, 1, 3, 6, 8, 9], "molecul": [0, 1, 3, 6, 7, 8, 9], "we": [0, 3, 6, 7, 8, 9, 12, 13], "start": [0, 4, 6, 7], "format": [0, 3, 6, 7, 8, 10], "It": [0, 1, 3, 6, 7, 8, 9], "contain": [0, 3, 6, 8], "four": 0, "main": [0, 3, 6, 7, 8], "section": [0, 6, 7], "locat": [0, 6], "column": [0, 3, 7, 8, 11, 12, 13, 14], "detail": [0, 3, 6, 7, 8, 9, 10], "about": [0, 6, 7], "which": [0, 1, 3, 6, 7, 8, 9, 12], "below": [0, 3, 6, 7, 8], "task": [0, 3, 7, 8, 9, 11], "training_dataset_fil": [0, 6, 7, 8], "drd2": [0, 6], "subset": [0, 1, 6, 7, 9], "csv": [0, 3, 4, 6, 8], "input_column": [0, 3, 6, 7, 8, 11], "canon": [0, 6, 8, 12], "response_column": [0, 3, 6, 7, 8, 11], "molwt": [0, 6], "mode": [0, 6, 8, 9, 11], "regress": [0, 1, 7, 9, 11, 12], "cross_valid": [0, 6, 9, 11, 12], "5": [0, 1, 3, 6, 7, 8, 9, 12], "direct": [0, 1, 6, 9, 11], "maxim": [0, 1, 6, 9], "n_trial": [0, 6, 8, 9, 11], "100": [0, 1, 3, 6, 7, 8, 9, 10], "n_startup_tri": [0, 6, 8, 9], "30": [0, 1, 6, 7, 9], "name": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "ecfp": [0, 4, 6, 8, 9, 11], "radiu": [0, 3, 6, 8, 11], "3": [0, 1, 3, 4, 6, 7, 8, 9], "nbit": [0, 3, 6, 8, 9, 11], "2048": [0, 3, 6, 8], "maccs_kei": [0, 4, 6, 8, 11], "randomforestregressor": [0, 4, 6, 9, 11], "max_depth": [0, 1, 9, 11], "low": [0, 1, 3, 6, 7, 8, 9, 11], "2": [0, 1, 3, 6, 7, 8, 9, 12, 13], "high": [0, 1, 3, 6, 8, 9, 11], "32": [0, 1, 6, 9], "n_estim": [0, 1, 6, 9, 11], "10": [0, 1, 3, 6, 7, 8, 9, 12], "250": [0, 1, 6, 9], "max_featur": [0, 1, 9, 11], "auto": [0, 1, 6, 8, 9], "ridg": [0, 4, 6, 9, 11], "alpha": [0, 1, 6, 7, 8, 9, 11], "0": [0, 1, 3, 4, 6, 7, 8, 9, 12, 13], "lasso": [0, 4, 6, 9, 11], "xgbregressor": [0, 4, 6, 9, 11], "learning_r": [0, 1, 9, 11], "1": [0, 1, 3, 4, 6, 7, 8, 9, 10, 12, 13], "specifi": [0, 1, 6, 7, 8, 9, 11], "In": [0, 1, 3, 6, 7, 8, 9], "rel": [0, 6], "path": [0, 1, 3, 6, 7, 8, 9, 10], "folder": [0, 6, 7], "ar": [0, 1, 3, 6, 7, 8, 9, 11, 12, 13], "want": [0, 6, 7], "fold": [0, 1, 6, 7, 9, 12, 13], "valu": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "object": [0, 1, 5, 7, 9, 10, 11, 12], "function": [0, 1, 3, 4, 7, 8, 9, 10, 11, 12, 14], "standard": [0, 1, 7, 9, 12, 14], "scikit": [0, 6, 8, 12, 13], "learn": [0, 1, 3, 7, 8, 9, 12, 13], "have": [0, 3, 6, 7, 8, 9, 12], "total": [0, 6, 7], "trial": [0, 1, 9, 10, 11], "first": [0, 1, 3, 6, 7, 8, 9, 12], "startup": [0, 6], "should": [0, 1, 3, 6, 7, 8, 9, 12], "random": [0, 1, 4, 9, 12], "explor": [0, 6], "get": [0, 6, 7, 8], "stuck": 0, "earli": [0, 1, 6, 8, 9], "one": [0, 3, 7, 8, 9, 12, 13], "local": [0, 6], "minimum": [0, 1, 3, 8, 9, 12, 13], "two": [0, 1, 6, 7, 9, 12, 13], "free": [0, 3, 8], "pair": [0, 6], "ani": [0, 3, 6, 7, 8, 9, 12], "when": [0, 1, 6, 7, 8, 9, 12, 13], "our": [0, 6, 7], "time": [0, 1, 3, 7, 8, 9], "can": [0, 1, 3, 6, 7, 8, 9, 12, 13], "deploi": 0, "singular": [0, 6], "To": [0, 6, 7], "insid": [0, 8], "follow": [0, 3, 6, 7, 8, 9], "syntax": 0, "exec": 0, "sif": 0, "project": [0, 1, 9], "cc": [0, 6, 7], "mai": [0, 1, 3, 6, 7, 8, 9], "qsartuna_latest": 0, "opt": 0, "venv": [0, 6], "bin": [0, 6, 7, 12, 13], "config": [0, 1, 5, 6, 8], "regression_drd2_50": 0, "buildconfig": [0, 5, 6, 8, 10], "outpath": 0, "target": [0, 1, 6, 7, 9, 12, 14], "pkl": [0, 1, 6, 9], "sinc": [0, 3, 6, 7, 8, 12], "long": [0, 7], "avoid": [0, 6, 12], "login": 0, "node": 0, "queue": 0, "instead": [0, 1, 3, 6, 7, 8, 9, 12], "script": 0, "give": [0, 6], "sbatch": 0, "sh": 0, "ntask": 0, "cpu": 0, "per": [0, 1, 7, 9], "mem": 0, "4g": 0, "partit": 0, "core": [0, 7, 9], "illustr": [0, 6, 7], "how": [0, 1, 3, 6, 7, 8, 9], "chose": 0, "chang": [0, 6], "directori": [0, 6, 10], "cd": 0, "project_fold": 0, "optunaaz": 0, "version": [0, 7, 9], "optunaaz_latest": 0, "complet": [0, 3, 6, 8], "creat": [0, 7, 10], "pickl": [0, 6], "your": [0, 6, 7], "home": 0, "under": [0, 6], "built": [0, 3, 7, 8, 9], "infer": [0, 6, 7, 8], "input": [0, 1, 3, 4, 6, 8, 9, 12, 13, 14], "smile": [0, 3, 6, 7, 8, 10, 11, 12, 13], "output": [0, 1, 6, 7, 8, 9, 12, 14], "note": [0, 1, 3, 7, 8, 9, 11, 12, 13], "_": [0, 6], "point": [0, 1, 7, 9, 12, 13], "most": [0, 6, 7], "recent": [0, 6], "legaci": 0, "requir": [0, 3, 6, 7, 8], "same": [0, 1, 6, 7, 9], "modifi": [0, 8], "abov": [0, 6, 7], "suppli": [0, 1, 3, 6, 7, 8, 9], "qsartuna_": 0, "replac": [0, 6, 10], "e": [0, 1, 3, 7, 8, 9, 12, 14], "g": [0, 3, 7, 8, 12, 14], "qsartuna_2": 0, "1_model": 0, "would": [0, 3, 6, 7, 8], "gener": [0, 1, 3, 6, 7, 8, 9, 12, 13], "tri": 0, "dure": [0, 1, 3, 6, 7, 8, 9], "mlflow": [0, 5, 8, 11], "track": [0, 3, 5, 8, 9], "ui": 0, "modul": [0, 5, 6], "load": [0, 1, 6, 7, 9], "Then": 0, "open": [0, 1, 6, 9], "link": 0, "browser": 0, "If": [0, 1, 3, 6, 8, 9, 12, 13], "you": [0, 1, 6, 7, 9], "scp": 0, "forward": [0, 1, 9], "port": 0, "separ": [0, 3, 7, 8], "ssh": 0, "session": 0, "non": [0, 1, 3, 6, 7, 8, 9], "machin": [0, 1, 3, 6, 7, 8, 9], "n": [0, 1, 6, 7, 9, 10], "l": 0, "localhost": 0, "5000": 0, "user": [0, 1, 3, 4, 6, 8, 9, 11, 12, 13, 14], "intranet": 0, "net": 0, "just": [0, 6], "execut": 0, "select": [0, 1, 3, 6, 7, 8, 9], "experi": [0, 7, 10], "after": [0, 1, 3, 6, 7, 8, 9, 10], "choos": [0, 4], "compar": [0, 6], "comparison": [0, 6, 7], "show": [0, 6, 7], "call": [0, 1, 3, 6, 8, 9, 12], "well": [0, 6, 7], "metric": [0, 1, 6, 8, 9, 11], "At": 0, "bottom": 0, "plot": [0, 6, 7, 9, 11], "For": [0, 1, 3, 6, 7, 8, 9, 12], "x": [0, 1, 3, 6, 7, 8, 9, 12, 13], "axi": [0, 6, 7], "number": [0, 1, 3, 6, 7, 8, 9, 10], "y": [0, 1, 7, 8, 9, 12, 13], "cvmean": 0, "r2": [0, 6, 7, 9], "more": [0, 1, 3, 7, 8, 9, 10], "click": 0, "individu": [0, 1, 6, 7, 9], "There": [0, 1, 6, 7, 9], "access": [0, 3, 8], "conda": 0, "environ": [0, 3, 6, 8], "instal": [0, 6], "purg": 0, "miniconda3": 0, "my_env_with_qsartuna": 0, "pip": [0, 6], "activ": [0, 1, 6, 7, 9, 11, 12, 14], "case": [0, 1, 6, 7, 8, 9], "check": [0, 6, 8, 11, 12], "m": [0, 6, 8], "http": [0, 3, 6, 7, 8, 9, 12], "com": [0, 6, 7, 8, 12], "molecularai": [0, 6], "releas": [0, 4, 6, 7], "download": [0, 6], "tar": [0, 6], "gz": [0, 6], "three_step_opt_build_merg": [0, 5, 6], "import": [0, 6], "buildconfig_best": [0, 6, 8], "build_best": [0, 6, 8], "build_merg": [0, 6, 8], "modelmod": [0, 6, 8, 9], "optimizationdirect": [0, 6, 9], "optconfig": [0, 1, 5, 6, 8, 10, 11], "optimizationconfig": [0, 6, 8, 9], "svr": [0, 4, 6, 9, 11], "randomforest": 0, "pl": [0, 1, 9], "dataread": [0, 5, 6], "ecfp_count": [0, 4, 6, 8, 11], "prepar": [0, 4, 7], "new": [0, 1, 6, 7, 9], "studi": [0, 3, 6, 8, 9, 10, 11], "study_nam": [0, 6, 8], "my_studi": [0, 6], "make": [0, 1, 6, 7, 9, 12, 13, 14], "write": [0, 6], "out": [0, 1, 6, 7, 9], "print": [0, 6, 7], "dump": [0, 6], "indent": [0, 6], "save": [0, 6], "class": [1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14], "optunaz": [1, 3, 6, 7, 13, 14], "sourc": [1, 3, 8, 9, 10, 11, 12, 13, 14], "adaboost": [1, 9], "classifi": [1, 6, 8, 9, 11], "an": [1, 3, 6, 7, 8, 9, 10, 12, 13], "meta": [1, 6, 9], "begin": [1, 6, 7, 9, 12, 13], "fit": [1, 3, 6, 7, 8, 9], "origin": [1, 3, 6, 7, 8, 9, 12], "addit": [1, 6, 9], "copi": [1, 7, 9, 10], "where": [1, 6, 7, 9], "incorrectli": [1, 9], "instanc": [1, 6, 7, 9], "adjust": [1, 9], "subsequ": [1, 9], "focu": [1, 9], "difficult": [1, 6, 9], "adaboostclassifierparametersnestim": [1, 9], "adaboostclassifierparameterslearningr": [1, 9], "The": [1, 3, 7, 8, 9, 10, 12, 14], "maximum": [1, 3, 6, 7, 8, 9, 12, 13], "boost": [1, 3, 8, 9], "termin": [1, 9], "perfect": [1, 9], "procedur": [1, 3, 7, 8, 9], "stop": [1, 6, 9], "titl": [1, 3, 6, 7, 8, 9, 10, 12, 13, 14], "appli": [1, 3, 6, 7, 8, 9, 12, 13, 14], "each": [1, 3, 6, 7, 8, 9, 12], "classifierat": [1, 9], "iter": [1, 6, 9, 12, 13], "A": [1, 3, 7, 8, 9], "higher": [1, 6, 9], "rateincreas": [1, 9], "contribut": [1, 3, 6, 8, 9], "trade": [1, 9], "off": [1, 6, 7, 9, 12, 13], "between": [1, 6, 7, 9], "learning_rateand": [1, 9], "int": [1, 3, 8, 9, 12, 13], "float": [1, 6, 7, 9, 10, 12, 13, 14], "linear": [1, 7, 9], "model": [1, 3, 4, 7, 8, 9, 10, 12, 13, 14], "l1": [1, 9], "prior": [1, 7, 9], "regular": [1, 6, 9], "spars": [1, 9], "coeffici": [1, 9], "tend": [1, 9], "prefer": [1, 9], "solut": [1, 6, 9], "fewer": [1, 9], "zero": [1, 3, 8, 9], "effect": [1, 6, 7, 9, 12], "reduc": [1, 6, 9], "featur": [1, 3, 6, 8, 9], "upon": [1, 6, 9], "depend": [1, 6, 7, 9], "lassoparametersalpha": [1, 9], "constant": [1, 9], "multipli": [1, 9], "term": [1, 6, 9], "control": [1, 6, 7, 9, 12], "strength": [1, 3, 8, 9], "must": [1, 6, 9], "neg": [1, 6, 7, 9], "i": [1, 3, 6, 7, 8, 9], "inf": [1, 6, 8, 9], "equival": [1, 9], "ordinari": [1, 9], "least": [1, 6, 9], "squar": [1, 6, 9], "solv": [1, 6, 9], "linearregress": [1, 9], "numer": [1, 7, 9], "reason": [1, 7, 9], "us": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14], "advis": [1, 6, 7, 9], "implement": [1, 3, 6, 8, 9, 12], "k": [1, 6, 7, 9, 12, 13], "nearest": [1, 6, 9], "neighbor": [1, 6, 9, 12, 13], "vote": [1, 9], "principl": [1, 9], "behind": [1, 9], "method": [1, 3, 7, 8, 9, 11, 12], "find": [1, 6, 9], "predefin": [1, 4, 9, 12, 14], "sampl": [1, 6, 9, 12, 13], "closest": [1, 9], "distanc": [1, 6, 9], "label": [1, 6, 7, 8, 9, 12, 13], "from": [1, 3, 4, 8, 9, 10, 12, 13, 14], "defin": [1, 3, 6, 7, 8, 9, 10, 12], "despit": [1, 6, 9], "simplic": [1, 9], "success": [1, 6, 9], "larg": [1, 7, 9], "classif": [1, 4, 7, 8, 9, 11, 12], "problem": [1, 6, 7, 8, 9], "n_neighbor": [1, 9, 11], "kneighborsclassifierparametersn_neighbor": [1, 9], "default": [1, 7, 8, 9, 12, 13], "kneighbor": [1, 9], "queri": [1, 6, 7, 9], "list": [1, 3, 4, 6, 7, 8, 9, 12, 14], "comput": [1, 3, 7, 8, 9, 12], "minkowski": [1, 6, 9], "euclidean": [1, 9], "regressor": [1, 6, 8, 9, 11], "kneighborsregressorparametersn_neighbor": [1, 9], "logist": [1, 9], "rather": [1, 3, 6, 7, 8, 9], "than": [1, 3, 6, 7, 8, 9], "also": [1, 3, 6, 7, 8, 9, 12], "known": [1, 3, 6, 7, 8, 9], "literatur": [1, 9], "logit": [1, 9], "entropi": [1, 7, 9], "maxent": [1, 9], "log": [1, 4, 9, 10, 11, 12, 14], "probabl": [1, 4, 7, 9], "describ": [1, 3, 6, 8, 9, 12], "possibl": [1, 6, 7, 9, 12, 13], "outcom": [1, 9], "singl": [1, 6, 9], "solver": [1, 9, 11], "c": [1, 3, 6, 7, 8, 9, 11], "logisticregressionparametersparameterc": [1, 9], "try": [1, 6, 7, 9], "sag": [1, 9], "saga": [1, 9], "fast": [1, 6, 9], "converg": [1, 6, 9], "guarante": [1, 9], "approxim": [1, 6, 9], "scale": [1, 3, 7, 8, 9, 12, 14], "preprocess": [1, 4, 8, 9, 10, 13, 14], "scaler": [1, 3, 8, 9], "invers": [1, 9], "posit": [1, 3, 6, 8, 9], "like": [1, 3, 6, 7, 8, 9], "support": [1, 6, 8, 9], "vector": [1, 3, 6, 8, 9, 12, 14], "smaller": [1, 6, 9], "stronger": [1, 9], "decomposit": [1, 9], "partial": [1, 6, 9], "form": [1, 3, 6, 7, 8, 9, 12], "compon": [1, 3, 6, 8, 9], "fundament": [1, 9], "relat": [1, 3, 6, 7, 8, 9], "matric": [1, 9], "thei": [1, 3, 6, 7, 8, 9], "latent": [1, 9], "variabl": [1, 6, 7, 9], "approach": [1, 3, 6, 7, 8, 9], "covari": [1, 4, 8, 9], "space": [1, 7, 9, 12, 13], "multidimension": [1, 9], "varianc": [1, 6, 7, 9], "other": [1, 6, 7, 9, 12], "word": [1, 6, 9], "both": [1, 6, 7, 9], "lower": [1, 6, 9], "dimension": [1, 9], "subspac": [1, 6, 8, 9], "transform": [1, 4, 8, 9, 10], "n_compon": [1, 9, 11], "ncompon": [1, 9], "keep": [1, 6, 7, 9, 12], "min": [1, 6, 7, 9, 12], "n_sampl": [1, 9], "n_featur": [1, 9], "n_target": [1, 9], "forest": [1, 4, 7, 9], "decis": [1, 6, 7, 9, 12, 14], "tree": [1, 6, 9], "variou": [1, 6, 8, 9], "sub": [1, 6, 9], "averag": [1, 3, 6, 7, 8, 9, 12], "improv": [1, 3, 6, 8, 9], "accuraci": [1, 6, 9], "over": [1, 6, 9], "randomforestclassifierparametersmaxdepth": [1, 9], "randomforestclassifierparametersnestim": [1, 6, 9], "depth": [1, 6, 9, 11], "considerwhen": [1, 9], "split": [1, 4, 8, 9, 12, 13, 14], "thenconsid": [1, 9], "sqrt": [1, 6, 7, 9], "log2": [1, 7, 9, 12, 14], "randomforestregressorparametersmaxdepth": [1, 9], "randomforestregressorparametersnestim": [1, 9], "l2": [1, 9], "loss": [1, 3, 6, 8, 9], "norm": [1, 7, 9], "tikhonov": [1, 9], "base": [1, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14], "libsvm": [1, 9], "quadrat": [1, 9], "impract": [1, 9], "beyond": [1, 9], "ten": [1, 9], "thousand": [1, 9], "svcparametersparameterc": [1, 9], "1e": [1, 9], "gamma": [1, 9, 11], "0001": [1, 9], "proport": [1, 6, 9], "strictli": [1, 9], "penalti": [1, 9], "kernel": [1, 9], "epsilon": [1, 9], "complex": [1, 6, 9], "hard": [1, 3, 8, 9], "coupl": [1, 9], "10000": [1, 9], "svrparametersparameterc": [1, 9], "svrparametersgamma": [1, 9], "maxdepth": [1, 9], "nestim": [1, 9], "learningr": [1, 9], "xgboost": [1, 9, 11], "gradient": [1, 9], "stand": [1, 9], "extrem": [1, 6, 9], "paper": [1, 3, 6, 8, 9], "greedi": [1, 9], "friedman": [1, 9], "learner": [1, 9], "round": [1, 6, 7, 9], "prf": [1, 4, 7, 9], "probabilist": [1, 4, 9], "seen": [1, 6, 7, 9], "hybrid": [1, 6, 9], "similar": [1, 3, 6, 7, 8, 9, 12, 13], "take": [1, 3, 6, 7, 8, 9, 12], "real": [1, 6, 7, 9, 12, 13], "threshold": [1, 3, 4, 6, 8, 9, 12, 13, 14], "represent": [1, 3, 4, 8, 9], "ptr": [1, 4, 6, 9, 12], "howev": [1, 3, 6, 7, 8, 9], "belong": [1, 3, 6, 7, 8, 9], "inact": [1, 6, 7, 9, 12, 14], "use_py_gini": [1, 9, 11], "use_py_leaf": [1, 9, 11], "prfclassifierparametersmaxdepth": [1, 9], "prfclassifierparametersnestim": [1, 9], "min_py_sum_leaf": [1, 9, 11], "prfclassifierparametersminpysumleaf": [1, 9], "gini": [1, 9], "true": [1, 3, 6, 7, 8, 9, 12, 13], "py": [1, 6, 7, 9], "leav": [1, 9], "leaf": [1, 9], "allow": [1, 3, 6, 7, 8, 9], "prune": [1, 6, 9], "propag": [1, 9], "small": [1, 7, 9], "thu": [1, 6, 9], "pth": [1, 9], "scheme": [1, 9], "noisi": [1, 9], "chemprop": [1, 3, 4, 8, 9], "deep": [1, 6, 9], "properti": [1, 3, 6, 7, 8, 9, 10], "network": [1, 3, 6, 8, 9], "messag": [1, 6, 9], "pass": [1, 3, 6, 7, 8, 9, 12], "neural": [1, 6, 8, 9], "d": [1, 3, 6, 8, 9], "mpnn": [1, 9], "encod": [1, 9], "graph": [1, 3, 6, 8, 9], "feed": [1, 9], "ffnn": [1, 9], "multi": [1, 3, 8, 9], "layer": [1, 3, 6, 8, 9], "perceptron": [1, 9], "wa": [1, 3, 6, 7, 8, 9], "present": [1, 6, 7, 9], "analyz": [1, 6, 9], "optuna": [1, 4, 6, 8, 9, 10, 11], "optims": [1, 9], "hyperopt": [1, 9], "ensemble_s": [1, 6, 9, 11], "epoch": [1, 6, 9, 11], "aggreg": [1, 6, 7, 9, 11, 12, 13], "aggregation_norm": [1, 6, 9, 11], "chempropparametersaggregation_norm": [1, 9], "200": [1, 6, 9], "q": [1, 3, 6, 8, 9, 11], "batch_siz": [1, 6, 9, 11], "chempropparametersbatch_s": [1, 9], "chempropparametersdepth": [1, 9], "6": [1, 6, 7, 9], "dropout": [1, 9, 11], "chempropparametersdropout": [1, 9], "4": [1, 3, 6, 7, 8, 9, 12, 13], "04": [1, 6, 9], "features_gener": [1, 6, 9, 11], "ffn_hidden_s": [1, 6, 9, 11], "chempropparametersffn_hidden_s": [1, 9], "300": [1, 6, 9], "2400": [1, 9], "ffn_num_lay": [1, 6, 9, 11], "chempropparametersffn_num_lay": [1, 9], "final_lr_ratio_exp": [1, 6, 9, 11], "chempropparametersfinal_lr_ratio_exp": [1, 9], "hidden_s": [1, 6, 9, 11], "chempropparametershidden_s": [1, 9], "init_lr_ratio_exp": [1, 6, 9, 11], "chempropparametersinit_lr_ratio_exp": [1, 9], "max_lr_exp": [1, 6, 9, 11], "chempropparametersmax_lr_exp": [1, 9], "warmup_epochs_ratio": [1, 6, 9, 11], "chempropparameterswarmup_epochs_ratio": [1, 9], "ensembl": [1, 9, 11], "initialis": [1, 6, 9], "provid": [1, 3, 6, 7, 8, 9, 12], "size": [1, 3, 6, 7, 8, 9], "run": [1, 3, 4, 7, 8, 9, 10], "increas": [1, 6, 7, 9, 12, 13], "400": [1, 9], "sum": [1, 6, 9], "atom": [1, 3, 6, 8, 9, 12, 13], "divid": [1, 6, 9], "up": [1, 3, 6, 8, 9, 10], "batch": [1, 9, 12], "step": [1, 7, 8, 9], "visibl": [1, 9], "randomli": [1, 6, 7, 9], "some": [1, 3, 6, 7, 8, 9], "element": [1, 9, 12, 13], "tensor": [1, 9], "p": [1, 3, 8, 9], "bernoulli": [1, 9], "distribut": [1, 6, 7, 9], "channel": [1, 9], "independ": [1, 7, 9], "everi": [1, 6, 9], "proven": [1, 9], "techniqu": [1, 7, 9], "prevent": [1, 6, 9], "co": [1, 7, 9], "adapt": [1, 3, 8, 9], "neuron": [1, 9], "hidden": [1, 6, 9], "ffn": [1, 6, 9], "exponenti": [1, 7, 9], "rate": [1, 9], "bond": [1, 3, 8, 9], "ratio": [1, 9], "linearli": [1, 9], "init_lr": [1, 9], "max_lr": [1, 9], "afterward": [1, 7, 9], "decreas": [1, 7, 9], "final_lr": [1, 9], "without": [1, 6, 9, 12], "within": [1, 3, 8, 9, 12, 13], "hyperparamet": [1, 4, 6, 8, 9], "side": [1, 3, 8, 9], "inform": [1, 3, 8, 9, 10], "nb": [1, 3, 6, 7, 8, 9], "quick": [1, 4, 9], "simpl": [1, 7, 9], "sensibl": [1, 6, 7, 8, 9], "author": [1, 6, 8, 9], "do": [1, 6, 7, 9, 12], "num_it": [1, 6, 9, 11], "search_parameter_level": [1, 6, 9, 11], "dictat": [1, 9], "larger": [1, 3, 6, 7, 8, 9], "chempropregressorpretrain": [1, 6, 9], "pretrin": [1, 9], "pretrain": [1, 6, 9], "carri": [1, 9], "previous": [1, 9], "qsartuna": [1, 9], "chempropparametersepoch": [1, 6, 9], "frzn": [1, 9, 11], "pretrained_model": [1, 6, 9, 11], "none": [1, 3, 6, 8, 9, 10, 12, 13, 14], "fine": [1, 9], "tune": [1, 3, 4, 6, 8, 9], "decid": [1, 9], "freez": [1, 9], "transfer": [1, 9], "frozen": [1, 9], "str": [1, 3, 6, 8, 9, 10, 11, 12, 13, 14], "calibr": [1, 4, 8, 9], "isoton": [1, 6, 9], "vennab": [1, 9], "cv": [1, 6, 9], "With": [1, 3, 8, 9], "across": [1, 6, 7, 9, 12], "fals": [1, 3, 6, 7, 8, 9, 12], "obtain": [1, 6, 7, 9], "unbias": [1, 9], "offer": [1, 3, 6, 8, 9], "p0": [1, 6, 9], "vs": [1, 6, 7, 9], "p1": [1, 6, 9], "discord": [1, 6, 9], "type": [1, 3, 6, 7, 8, 9, 12], "union": [1, 3, 8, 9], "calibratedclassifiercvensembl": [1, 9], "calibratedclassifiercvmethod": [1, 9], "n_fold": [1, 6, 9, 11], "whether": [1, 3, 7, 8, 9, 12, 14], "agnost": [1, 6, 9], "interv": [1, 6, 9], "encompass": [1, 9], "aleator": [1, 9], "epistem": [1, 9], "back": [1, 6, 9], "strong": [1, 9], "theoret": [1, 6, 9], "thank": [1, 9], "conform": [1, 9], "mapie_alpha": [1, 6, 9, 11], "05": [1, 6, 7, 9], "01": [1, 6, 9], "99": [1, 6, 9], "see": [3, 6, 7, 8, 9, 12, 13], "gedeck": [3, 8], "et": [3, 7, 8], "al": [3, 7, 8], "qsar": [3, 4, 6, 7, 8], "good": [3, 6, 7, 8], "practic": [3, 8], "fingerprint": [3, 8, 9], "wai": [3, 6, 7, 8], "daylight": [3, 8], "enumer": [3, 6, 8, 9], "custom": [3, 6, 8], "ref": [3, 8, 10], "16": [3, 6, 7, 8], "hash": [3, 6, 8, 9, 10], "code": [3, 6, 7, 8], "style": [3, 6, 7, 8], "implicitli": [3, 8], "largest": [3, 6, 8], "refer": [3, 6, 8, 10, 11], "toward": [3, 6, 7, 8], "binari": [3, 6, 8, 9], "extend": [3, 6, 7, 8], "connect": [3, 6, 8], "roger": [3, 8], "circular": [3, 8], "morgan": [3, 8, 9], "invari": [3, 8], "getmorganfingerprintasbitvect": [3, 8], "rdkit": [3, 6, 7, 8, 9], "systemat": [3, 8], "record": [3, 6, 7, 8], "neighborhood": [3, 8, 9], "h": [3, 6, 7, 8], "multipl": [3, 6, 8, 12, 13], "runtim": [3, 8], "substructur": [3, 6, 8], "map": [3, 6, 7, 8], "integ": [3, 7, 8, 12, 13], "length": [3, 6, 8], "identifi": [3, 6, 7, 8], "diamet": [3, 8], "append": [3, 6, 7, 8, 9], "ecfp4": [3, 8], "correspond": [3, 6, 7, 8, 9], "returnrdkit": [3, 6, 8], "consid": [3, 6, 8, 12, 13], "while": [3, 6, 7, 8, 12], "bit": [3, 6, 8], "sometim": [3, 6, 7, 8], "bool": [3, 8, 9, 12, 13], "calculate_from_mol": [3, 8], "mol": [3, 6, 7, 8], "return": [3, 6, 7, 8, 10, 11, 12, 13], "numpi": [3, 6, 7, 8, 12, 13], "arrai": [3, 6, 8, 12, 13], "count": [3, 6, 8, 9], "gethashedmorganfingerprint": [3, 8], "appear": [3, 8, 11], "usefeatur": [3, 6, 8, 11], "fcfp": [3, 8], "normal": [3, 6, 7, 8, 9], "ones": [3, 6, 8], "definit": [3, 8, 12], "gobbi": [3, 8], "popping": [3, 8], "biotechnolog": [3, 8], "bioengin": [3, 8], "61": [3, 6, 8], "47": [3, 6, 8], "54": [3, 6, 8], "1998": [3, 6, 8], "lead": [3, 7, 8], "score": [3, 4, 8, 9, 10, 12, 14], "fp": [3, 6, 8], "maxpath": [3, 6, 8, 11], "fpsize": [3, 6, 8, 11], "macc": [3, 6, 8], "system": [3, 7, 8], "often": [3, 6, 8], "mdl": [3, 8], "kei": [3, 6, 7, 8, 10, 11], "compani": [3, 8], "calcul": [3, 6, 8, 12, 13, 14], "keyset": [3, 8], "construct": [3, 8, 11], "optim": [3, 4, 7, 8, 9, 11], "durant": [3, 8], "reoptim": [3, 8], "drug": [3, 8], "discoveri": [3, 8], "166": [3, 6, 8], "2d": [3, 8, 9], "essenti": [3, 7, 8], "answer": [3, 8], "fragment": [3, 8], "question": [3, 8], "explicitli": [3, 6, 7, 8], "exist": [3, 8], "sens": [3, 8], "matter": [3, 8], "becaus": [3, 6, 7, 8], "address": [3, 8], "specif": [3, 6, 7, 8, 11], "repres": [3, 6, 7, 8], "9": [3, 6, 7, 8], "1049": [3, 8], "distinct": [3, 6, 7, 8, 9], "rdkit_nam": [3, 6, 8, 11], "unscal": [3, 8], "These": [3, 6, 7, 8, 12], "physchem": [3, 6, 8], "caution": [3, 7, 8], "208": [3, 6, 8], "includ": [3, 6, 7, 8], "clogp": [3, 6, 8], "mw": [3, 6, 8], "ring": [3, 7, 8], "rotat": [3, 8], "fraction": [3, 6, 7, 8, 12, 13], "sp3": [3, 8], "kier": [3, 8], "indic": [3, 6, 7, 8, 12, 13], "etc": [3, 6, 8], "tpsa": [3, 6, 8], "slogp": [3, 8], "group": [3, 7, 8, 12, 13], "vsa": [3, 8], "moe": [3, 8], "charg": [3, 8], "www": [3, 8], "org": [3, 6, 8], "doc": [3, 6, 8], "gettingstartedinpython": [3, 8], "html": [3, 6, 7, 8, 9], "whose": [3, 8], "been": [3, 6, 7, 8], "level": [3, 6, 7, 8, 9], "One": [3, 7, 8], "advantag": [3, 8], "interpret": [3, 8], "mean": [3, 6, 7, 8, 9, 12], "physicochem": [3, 8], "intuit": [3, 8], "understood": [3, 8], "option": [3, 4, 7, 8, 9, 11, 12, 13, 14], "jazzy_nam": [3, 6, 8, 11], "jazzy_filt": [3, 6, 8], "jazzi": [3, 8], "hydrat": [3, 8], "energi": [3, 8], "hydrogen": [3, 8], "acceptor": [3, 6, 8], "donor": [3, 6, 8], "found": [3, 6, 8], "doi": [3, 6, 8], "1038": [3, 8], "s41598": [3, 8], "023": [3, 8], "30089": [3, 8], "mmff94": [3, 8], "minimis": [3, 8], "1000da": [3, 8], "compound": [3, 6, 7, 8, 12, 13], "dict": [3, 8, 9, 10, 11], "calculate_from_smi": [3, 6, 8], "smi": [3, 8, 10], "string": [3, 6, 7, 8, 11, 12, 13, 14], "ndarrai": [3, 8], "z": [3, 8, 12, 14], "peptid": [3, 6, 8, 12, 14], "unfittedsklearnscal": [3, 8], "mol_data": [3, 8], "moldata": [3, 8], "file_path": [3, 8], "smiles_column": [3, 8], "fittedsklearnscal": [3, 8], "alia": [3, 8, 9], "precomput": [3, 7, 8], "file": [3, 7, 8, 10, 11, 12, 13], "header": [3, 8], "line": [3, 4, 6, 7, 8, 10], "row": [3, 6, 7, 8], "comma": [3, 6, 7, 8], "respons": [3, 7, 8], "pre": [3, 7, 8], "zscalesdescriptor": [3, 8, 11], "were": [3, 6, 7, 8], "propos": [3, 8], "sandberg": [3, 8], "proteogen": [3, 8], "amino": [3, 6, 8], "acid": [3, 6, 8], "nmr": [3, 8], "thin": [3, 8], "chromatographi": [3, 8], "tlc": [3, 8], "1021": [3, 6, 8], "jm9700575": [3, 8], "captur": [3, 6, 7, 8], "lipophil": [3, 8], "steric": [3, 8], "bulk": [3, 8], "polariz": [3, 8], "electron": [3, 8], "polar": [3, 8], "electroneg": [3, 8], "heat": [3, 8], "electrophil": [3, 8], "anoth": [3, 6, 8], "optimis": [3, 6, 8, 9, 10], "either": [3, 7, 8, 9], "through": [3, 6, 8], "_and_": [3, 8], "auxiliari": [3, 6, 8, 12, 14], "continu": [3, 6, 8], "learnt": [3, 6, 8], "manner": [3, 6, 8], "intent": [3, 6, 8], "much": [3, 8], "remain": [3, 7, 8, 12], "deriv": [3, 6, 7, 8], "cautiou": [3, 8], "upload": [3, 8], "_all_": [3, 8], "ruder": [3, 8], "io": [3, 6, 8, 9], "index": [3, 6, 7, 8], "auxiliarytask": [3, 8], "aux_weight_pc": [3, 6, 8, 9, 11], "20": [3, 6, 7, 8], "info": [3, 6, 8], "percentag": [3, 8], "wrap": [3, 6, 8], "certain": [3, 6, 7, 8], "rang": [3, 6, 7, 8, 12, 13], "scaleddescriptorparamet": [3, 8], "cach": [3, 6, 7, 8, 9], "composit": [3, 6, 8], "concaten": [3, 8], "button": [3, 8], "pleas": [3, 6, 7, 8, 10], "compat": [3, 6, 8], "intro": 4, "background": 4, "json": [4, 6, 9, 11], "command": [4, 6], "interfac": [4, 6, 8, 11, 12], "python": [4, 6, 8, 12], "jupyt": [4, 6], "notebook": [4, 6], "introduct": 4, "translat": [4, 6], "sdf": [4, 6, 8], "need": 4, "deal": [4, 12], "duplic": [4, 8, 9, 12], "dedupl": [4, 6, 8, 10], "experiment": [4, 6, 12, 14], "error": [4, 6], "cli": 4, "tutori": 4, "remov": [4, 7, 8, 9, 12, 13], "advanc": [4, 7, 8], "functoinail": 4, "adaboostclassifi": [4, 6, 9, 11], "kneighborsclassifi": [4, 6, 9, 11], "kneighborsregressor": [4, 6, 9, 11], "logisticregress": [4, 6, 9, 11], "plsregress": [4, 6, 9, 11], "randomforestclassifi": [4, 6, 9, 11], "svc": [4, 6, 9, 11], "prfclassifi": [4, 6, 9, 11], "chempropregressor": [4, 6, 9, 11], "chempropclassifi": [4, 6, 9, 11], "chemprophyperoptclassifi": [4, 6, 9, 11], "chemprophyperoptregressor": [4, 6, 9, 11], "chemprophyperoptregressorpretrain": 4, "calibratedclassifiercvwithva": [4, 6, 9, 11], "mapi": [4, 9, 11], "avalon": [4, 8, 9, 11], "pathfp": [4, 6, 8, 11], "unscaledphyschemdescriptor": [4, 6, 8, 11], "unscaledjazzydescriptor": [4, 6, 8, 11], "unscaledzscalesdescriptor": [4, 8, 11], "physchemdescriptor": [4, 8, 11], "jazzydescriptor": [4, 8, 11], "precomputeddescriptorfromfil": [4, 6, 8, 11], "zscale": [4, 6, 8, 12], "smilesfromfil": [4, 6, 8, 11], "smilesandsideinfofromfil": [4, 6, 8, 11], "scaleddescriptor": [4, 8, 11], "compositedescriptor": [4, 6, 8, 11], "tempor": [4, 6, 12], "stratifi": [4, 6, 12], "scaffoldsplit": [4, 7, 12], "modeldatatransform": [4, 6, 7, 8, 12], "vectorfromcolumn": [4, 6, 8, 12], "keepfirst": [4, 7, 12], "keeplast": [4, 7, 12], "keeprandom": [4, 7, 12], "keepmin": [4, 7, 12], "keepmax": [4, 7, 12], "keepavg": [4, 7, 12], "keepmedian": [4, 6, 7, 12], "keepkeepallnodedupl": 4, "report": [4, 6, 7], "coverag": 4, "subpackag": 5, "submodul": 5, "build_from_opt": [5, 8], "content": 5, "util": [5, 6, 7, 8, 13, 14], "files_path": [5, 8], "load_json": [5, 8], "schema": [5, 8, 11], "builder": 5, "metirc": 5, "model_writ": 5, "optbuild": 5, "schemagen": 5, "visual": [5, 9, 11], "intend": 6, "necessari": 6, "gui": 6, "autom": [6, 7], "reinvent": 6, "varieti": 6, "them": [6, 7, 9], "so": [6, 7, 9], "hyper": [6, 9], "influenc": [6, 7, 9], "automat": [6, 7], "idea": [6, 7], "read": [6, 7, 8], "otherwis": [6, 12], "might": [6, 7, 12], "skip": [6, 7], "toi": 6, "chosen": 6, "whole": [6, 7], "less": [6, 7], "minut": 6, "holdout": [6, 7], "readi": 6, "next": [6, 7], "few": [6, 7], "head": [6, 7], "molwt_gt_330": 6, "cc1cc": 6, "nc": [6, 7], "o": [6, 7], "c2cccc": 6, "coc3ccc": 6, "br": [6, 7], "cc3": [6, 7], "c2": [6, 7], "no1": 6, "387": 6, "233": 6, "nc1ccc": 6, "f": [6, 7, 12], "cc1f": 6, "nc1sccc1": 6, "c1nc2ccccc2s1": 6, "4360000000001": 6, "coc": 6, "c1ccccc1nc": 6, "c1cc": 6, "nn1cc1ccccc1": 6, "380": 6, "36000000000007": 6, "ccoc": 6, "sc1nc": 6, "c2ccccc2": 6, "ccc1c": 6, "312": 6, "39400000000006": 6, "ccc": [6, 7], "c1nn": [6, 7], "cc2ccccc2": 6, "c2ccccc12": 6, "349": 6, "4340000000001": 6, "brc1ccccc1occcoc1cccc2cccnc12": 6, "358": 6, "235": 6, "ccccn1c": 6, "coc2cccc": 6, "oc": 6, "nc2ccccc21": 6, "310": 6, "39700000000005": 6, "ccoc1cccc": 6, "c2sc3nc": 6, "c4ccc": 6, "cc4": 6, "ccc3c2n": 6, "c1": [6, 7], "407": 6, "4700000000001": 6, "coc1ccc": 6, "nc2ccc": 6, "cc2": 6, "c2ccc": 6, "cc1oc": 6, "454": 6, "54800000000023": 6, "sy": [6, 7], "sklearn": [6, 11], "kljk345": [6, 7], "pycharmproject": 6, "public_qptuna": 6, "lib": [6, 7], "python3": [6, 7], "site": [6, 7], "tqdm": 6, "21": [6, 7], "tqdmwarn": 6, "iprogress": 6, "updat": [6, 7], "ipywidget": 6, "readthedoc": [6, 9], "en": [6, 9], "stabl": [6, 8], "user_instal": 6, "autonotebook": 6, "notebook_tqdm": 6, "typic": [6, 7], "test_dataset_fil": [6, 8], "random_se": [6, 9], "42": [6, 7, 12, 13], "seed": [6, 7, 8, 12, 13], "reproduc": [6, 12, 14], "setup": [6, 9], "basic": [6, 8, 9], "importlib": 6, "reload": 6, "basicconfig": 6, "getlogg": 6, "disabl": [6, 7, 11], "np": [6, 7], "seterr": 6, "ignor": 6, "warn": [6, 7], "filterwarn": 6, "categori": 6, "futurewarn": 6, "runtimewarn": 6, "functool": 6, "partialmethod": 6, "__init__": [6, 9], "flood": 6, "decpreci": 6, "simplefilt": 6, "def": [6, 7, 9], "arg": [6, 8, 9], "kwarg": [6, 9], "stderr": 6, "render": [6, 7], "red": 6, "2024": 6, "07": 6, "02": 6, "13": [6, 7], "17": [6, 7], "26": [6, 7], "561": 6, "memori": [6, 8], "714": 6, "study_name_0": 6, "27": [6, 7], "022": 6, "finish": 6, "3594": 6, "2228073972638": 6, "39": [6, 7], "algorithm_nam": [6, 11], "randomforestregressor_algorithm_hash": 6, "f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "max_depth__f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "n_estimators__f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "max_features__f1ac01e1bba332215ccbd0c29c9ac3c3": 6, "lt": [6, 7], "randomforestmaxfeatur": [6, 9], "gt": [6, 7], "34": [6, 7], "171": 6, "5029": 6, "734616310275": 6, "svr_algorithm_hash": 6, "ea7ccc7ef4a9329af0d4e39eb6184933": 6, "gamma__ea7ccc7ef4a9329af0d4e39eb6184933": 6, "039054412752107935": 6, "c__ea7ccc7ef4a9329af0d4e39eb6184933": 6, "1242780840717016e": 6, "429": 6, "4242": 6, "092751193529": 6, "579": 6, "3393": 6, "577488426015": 6, "ridge_algorithm_hash": 6, "cfa1990d5153c8812982f034d788d7e": 6, "alpha__cfa1990d5153c8812982f034d788d7e": 6, "06877704223043679": 6, "644": 6, "427": 6, "45250420148204": 6, "lasso_algorithm_hash": 6, "5457f609662e44f04dcc9423066d2f58": 6, "alpha__5457f609662e44f04dcc9423066d2f58": 6, "7896547008552977": 6, "698": 6, "3387": 6, "245629616474": 6, "plsregression_algorithm_hash": 6, "9f2f76e479633c0bf18cf2912fed9eda": 6, "n_components__9f2f76e479633c0bf18cf2912fed9eda": 6, "853": 6, "734620250011": 6, "3661540064603184": 6, "1799882524170321": 6, "28": [6, 7], "029": 6, "7": [6, 7, 9], "9650": 6, "026568221794": 6, "kneighborsregressor_algorithm_hash": 6, "1709d2c39117ae29f6c9debe7241287b": 6, "metric__1709d2c39117ae29f6c9debe7241287b": 6, "kneighborsmetr": [6, 9], "n_neighbors__1709d2c39117ae29f6c9debe7241287b": 6, "weights__1709d2c39117ae29f6c9debe7241287b": 6, "kneighborsweight": [6, 9], "uniform": [6, 9], "070": 6, "8": [6, 7, 9], "5437": 6, "151635569594": 6, "05083825348819038": 6, "336": 6, "2669": 6, "8534551928174": 6, "373": 6, "4341": 6, "586120152291": 6, "7921825998469865": 6, "532": 6, "11": [6, 7], "5514": 6, "404088878843": 6, "680": 6, "12": [6, 7], "5431": 6, "634989239215": 6, "722": 6, "3530": 6, "5496618991288": 6, "765": 6, "14": [6, 7], "3497": 6, "6833185436312": 6, "793": 6, "15": [6, 7], "4382": 6, "16208862162": 6, "831": 6, "734620031822": 6, "002825619931800395": 6, "309885135051862e": 6, "09": 6, "870": 6, "679": 6, "3109044887755": 6, "16827992999009767": 6, "932": 6, "18": [6, 7], "2550": 6, "114129318373": 6, "974": 6, "19": [6, 7], "4847": 6, "085792360169": 6, "735431606118867": 6, "29": 6, "016": 6, "268760278916": 6, "0014840820994557746": 6, "04671166881768783": 6, "096": 6, "4783": 6, "0470154796785": 6, "135": 6, "22": [6, 7], "3905": 6, "0064899852296": 6, "259": 6, "23": [6, 7], "4030": 6, "45773791647": 6, "340": 6, "24": [6, 7], "4681": 6, "602145939593": 6, "381": 6, "25": [6, 7], "4398": 6, "544034028325": 6, "6452011213193165": 6, "474": 6, "4454": 6, "143979828408": 6, "503": 6, "533": 6, "600": 6, "4397": 6, "330360587512": 6, "617": 6, "682": 6, "31": [6, 7], "2602": 6, "7561184287083": 6, "715": 6, "5267": 6, "388279961089": 6, "2015560027548533": 6, "794": 6, "33": 6, "4863": 6, "581760751052": 6, "836": 6, "388": 6, "96473594016675": 6, "5528259214839937": 6, "906": 6, "35": 6, "5539": 6, "698232987626": 6, "6400992020612235": 6, "962": 6, "36": 6, "5180": 6, "5533034102455": 6, "8968910439566395": 6, "005": 6, "37": 6, "4989": 6, "929984864281": 6, "04458440839692226": 6, "492108041427977": 6, "034": 6, "38": [6, 7], "103": 6, "6528": 6, "215066535042": 6, "16700143339733753": 6, "240": 6, "40": [6, 7], "4168": 6, "7955967552625": 6, "311": 6, "41": 6, "6177": 6, "060727800014": 6, "401": 6, "3963": 6, "906954658343": 6, "435": 6, "43": 6, "6805334166565": 6, "013186009009851564": 6, "001008958590140135": 6, "501": 6, "44": 6, "9300": 6, "86840721566": 6, "547": 6, "45": [6, 7], "83": 6, "87968210939489": 6, "382674443425525e": 6, "565": 6, "46": 6, "594": 6, "626": 6, "48": 6, "717": 6, "49": 6, "3660": 6, "9359502556": 6, "767": 6, "688": 6, "5244070398325": 6, "5267860995545326": 6, "813": 6, "51": 6, "690": 6, "6494438072099": 6, "8458809314722497": 6, "848": 6, "52": 6, "691": 6, "1197058420935": 6, "9167866889210807": 6, "898": 6, "53": 6, "3111710449325": 6, "945685900574672": 6, "934": 6, "9665592812149": 6, "8936837761725833": 6, "970": 6, "55": 6, "4682747008223": 6, "5183865279530455": 6, "030": 6, "56": 6, "687": 6, "5230947231512": 6, "3771771681361766": 6, "078": 6, "57": 6, "4503442069594": 6, "3663259819415374": 6, "127": 6, "58": 6, "686": 6, "9553733616618": 6, "2925652230875628": 6, "174": 6, "59": 6, "370": 6, "2038330506566": 6, "3962903248948568": 6, "222": 6, "60": 6, "377": 6, "25988028857313": 6, "45237513161879": 6, "270": 6, "379": 6, "8933285317637": 6, "4741161933311207": 6, "319": 6, "62": 6, "374": 6, "50897467366013": 6, "4290962207409417": 6, "356": 6, "63": [6, 7], "376": 6, "5588572940058": 6, "4464295711264585": 6, "416": 6, "64": 6, "237448916406": 6, "4687500034684213": 6, "65": 6, "375": 6, "7474776359051": 6, "4395650011783436": 6, "504": 6, "66": 6, "362": 6, "2834906299732": 6, "3326755354190032": 6, "542": 6, "67": 6, "357": 6, "3474880122588": 6, "2887212943233457": 6, "591": 6, "68": 6, "354": 6, "279045046449": 6, "2577677164664005": 6, "642": 6, "69": 6, "347": 6, "36894395697703": 6, "1672928587680225": 6, "706": 6, "70": 6, "345": 6, "17697390093394": 6, "1242367255308854": 6, "757": 6, "71": 6, "74610809299037": 6, "1728352983905301": 6, "807": 6, "72": 6, "23464281634324": 6, "1265380781508565": 6, "856": 6, "73": 6, "344": 6, "6848312222365": 6, "0829896313820404": 6, "902": 6, "74": [6, 7], "9111966504334": 6, "1070414661080543": 6, "966": 6, "75": 6, "70116419828565": 6, "0875643695329498": 6, "026": 6, "76": 6, "62647974688133": 6, "0716281620790837": 6, "089": 6, "77": 6, "6759429204596": 6, "0456289319914898": 6, "141": 6, "78": 6, "343": 6, "58131497761616": 6, "0010195360522613": 6, "193": 6, "79": 6, "342": 6, "7290581014813": 6, "9073210715005748": 6, "254": 6, "80": [6, 7], "67866114080107": 6, "9166305667100072": 6, "317": 6, "81": 6, "6440308445311": 6, "9248722692093634": 6, "367": 6, "82": 6, "02085648448934": 6, "8776928646870886": 6, "1662266300702": 6, "867592364677856": 6, "457": 6, "84": 6, "30158716569775": 6, "8599491178327108": 6, "497": 6, "85": 6, "2803074848341": 6, "8396948389352923": 6, "86": 6, "28301101884045": 6, "8396651775801683": 6, "587": 6, "87": 6, "6781906268143": 6, "8356021935129933": 6, "639": 6, "88": 6, "0405418264898": 6, "7430046191126949": 6, "677": 6, "89": 6, "77203208258476": 6, "9015965341429055": 6, "90": 6, "363": 6, "1622720320929": 6, "6746575663752555": 6, "91": 6, "7403796626193": 6, "9057564666836629": 6, "797": 6, "92": 6, "63579667712696": 6, "9332275205203372": 6, "93": [6, 7], "6886425884964": 6, "9433063264508291": 6, "94": 6, "9341048659705": 6, "884739221967487": 6, "935": 6, "95": [6, 7], "63507445779743": 6, "9381000493689634": 6, "986": 6, "96": 6, "06021011302374": 6, "963138023068903": 6, "97": 6, "9990546212019": 6, "9601651093867907": 6, "066": 6, "98": 6, "3821": 6, "2267845437514": 6, "117": 6, "6786067133016": 6, "721603508336166": 6, "seaborn": [6, 7], "sn": [6, 7], "set_them": 6, "darkgrid": 6, "default_reg_scor": 6, "ax": [6, 7], "scatterplot": 6, "trials_datafram": 6, "xlabel": [6, 7], "ylabel": [6, 7], "ojbect": 6, "interest": [6, 7], "neg_mean_squared_error": [6, 9], "highlight": 6, "color": [6, 7], "cv_test": 6, "user_attrs_test_scor": 6, "lambda": [6, 12], "item": [6, 10], "idx": [6, 7], "v": 6, "hue": 6, "palett": 6, "set1": 6, "inspect": 6, "apischema": [6, 8], "buildconfig_as_dict": 6, "serial": 6, "response_typ": [6, 7, 8], "deduplication_strategi": [6, 7, 8], "split_strategi": [6, 7, 8], "nosplit": [6, 12], "save_intermediate_fil": [6, 8], "log_transform": [6, 7, 8], "log_transform_bas": [6, 7, 8], "null": 6, "log_transform_neg": [6, 7, 8], "log_transform_unit_convers": [6, 7, 8], "probabilistic_threshold_represent": [6, 7, 8], "probabilistic_threshold_representation_threshold": [6, 7, 8], "probabilistic_threshold_representation_std": [6, 7, 8], "metadata": [6, 8, 9, 10, 11], "shuffl": [6, 9, 11, 12, 13], "best_trial": [6, 9, 11], "best_valu": [6, 9, 11], "tracking_rest_endpoint": [6, 9], "best_build": 6, "rb": 6, "predict_from_smil": [6, 8], "cc1": [6, 7], "43103985": 6, "177": 6, "99850936": 6, "now": [6, 7, 9], "panda": [6, 7], "pd": [6, 7], "df": [6, 12, 13], "read_csv": 6, "expect": [6, 7, 10], "matplotlib": [6, 7], "pyplot": [6, 7], "plt": [6, 7], "scatter": 6, "lim": 6, "max": [6, 7, 12], "diagon": 6, "r2_score": 6, "mean_squared_error": 6, "mean_absolute_error": 6, "y_true": [6, 8, 11], "y_pred": [6, 8, 11], "rmse": 6, "ad": [6, 7, 12, 13], "mae": 6, "absolut": 6, "8566354978126369": 6, "204909888075044": 6, "298453946973815": 6, "accept": [6, 7], "again": 6, "hopefulli": [6, 7], "littl": 6, "better": [6, 7, 8, 12], "send": 6, "strategi": [6, 8], "current": 6, "observ": [6, 7], "last": [6, 7, 12], "alreadi": [6, 7], "sort": [6, 7, 12, 13], "oldest": [6, 7, 12, 13], "newest": [6, 7, 12, 13], "end": [6, 7, 12, 13], "extern": 6, "tool": 6, "excel": 6, "ensur": [6, 7, 8, 9], "unballanc": 6, "work": [6, 7], "come": [6, 7], "measur": [6, 7], "fact": 6, "disregard": 6, "stereochemistri": [6, 7], "even": [6, 7], "sever": 6, "median": [6, 7, 12], "factor": [6, 7], "replic": [6, 7], "robust": [6, 7], "outlier": [6, 7], "acorss": 6, "trust": 6, "kept": 6, "splitter": [6, 7, 8, 10], "track_to_mlflow": [6, 9], "my_study_stratified_split": 6, "922": 6, "963": 6, "046": 6, "1856": 6, "4459752935309": 6, "123": 6, "1692": 6, "0451328577294": 6, "2918844591266672": 6, "592": 6, "1378": 6, "9731014410709": 6, "471164936778079": 6, "2658": 6, "13214897931": 6, "804": 6, "2059": 6, "3079659969176": 6, "330": [6, 7], "280": 6, "17777558722315": 6, "7001901522391756": 6, "422": 6, "3551": 6, "475476217507": 6, "466": 6, "2124": 6, "9660426577593": 6, "509": 6, "1686": 6, "5737716985532": 6, "9841058851292832": 6, "552": 6, "1702": 6, "174704715547": 6, "861494545249233": 6, "578": 6, "621": 6, "1204": 6, "636967895143": 6, "5238298142840006": 6, "676": 6, "228": 6, "44505332657158": 6, "9836853549192415": 6, "729": 6, "3949": 6, "499774068696": 6, "04535826280986047": 6, "012999584021838e": 6, "829": 6, "2856": 6, "917927507731": 6, "linear_model": 6, "_coordinate_desc": 6, "678": 6, "convergencewarn": 6, "did": 6, "regularis": 6, "dualiti": 6, "gap": 6, "306e": 6, "toler": 6, "824e": 6, "cd_fast": 6, "enet_coordinate_desc": 6, "882": 6, "2554": 6, "2079198900733": 6, "10588223712643852": 6, "1261": 6, "484274761188": 6, "0950442632698256": 6, "965": 6, "282": 6, "6478019258886": 6, "2920636100136971": 6, "004": 6, "1814": 6, "6019641143478": 6, "048": 6, "1284": 6, "7430070920798": 6, "1729012287538991": 6, "237": 6, "98783693000647": 6, "1721667984096773": 6, "192": 6, "2129": 6, "55317061882": 6, "4997740833423": 6, "779895470793612": 6, "260941957410989e": 6, "279": 6, "1740": 6, "8894369939983": 6, "02841448247455669": 6, "698e": 6, "280e": 6, "820e": 6, "352e": 6, "770e": 6, "3317": 6, "417858905051": 6, "003050380617617421": 6, "404": 6, "448": 6, "1256": 6, "7270466276807": 6, "1594144041655936": 6, "491": 6, "1245": 6, "1399766270456": 6, "336730512398918": 6, "583": 6, "2908": 6, "3563960057677": 6, "628": 6, "1775": 6, "55204856041": 6, "721": 6, "1257": 6, "9288888831513": 6, "1441514794000534": 6, "808": 6, "98174313112844": 6, "1939105579414777": 6, "900": 6, "3054": 6, "7066202193805": 6, "944": 6, "1227": 6, "082986184029": 6, "909508127148669": 6, "988": 6, "1676": 6, "7481962719485": 6, "4307837873914335": 6, "079": 6, "307965996918": 6, "168": 6, "3441": 6, "9109103644514": 6, "211": 6, "1670": 6, "5213862925175": 6, "07945856808433427": 6, "264": 6, "2756": 6, "046839500092": 6, "320": 6, "4997735530674": 6, "022099719935614482": 6, "4657380646234507e": 6, "08": 6, "0862402902634642": 6, "12519632281925502": 6, "467": 6, "3438": 6, "566583971217": 6, "524": 6, "4422556954731": 6, "19967589906728334": 6, "016e": 6, "618": 6, "359": [6, 7], "7639743940817": 6, "059252880514551576": 6, "662": 6, "1246": 6, "7813032646238": 6, "3074782262329858": 6, "755": 6, "2224": 6, "3845873049813": 6, "810": 6, "1673": 6, "9639799911165": 6, "2737740844660712": 6, "896": 6, "3163": 6, "129883232068": 6, "987": 6, "2753": 6, "414173913392": 6, "057": 6, "263": 6, "1352845182604": 6, "627030918721665": 6, "105": 6, "271": 6, "2979718788249": 6, "8548903728617034": 6, "165": 6, "277": 6, "86441431259567": 6, "9605867591283856": 6, "227": 6, "4329099850367": 6, "9537398361705693": 6, "274": 6, "3838070241422": 6, "9045589309769144": 6, "334": 6, "260": 6, "4460398258507": 6, "5589021326002044": 6, "383": 6, "257": 6, "95032410206767": 6, "5053759377103249": 6, "444": 6, "256": 6, "5958038666581": 6, "4789082433356577": 6, "495": 6, "253": 6, "4269973575198": 6, "4281024602273042": 6, "560": 6, "249": 6, "40822811603962": 6, "3546313579812586": 6, "620": 6, "245": 6, "71101688809983": 6, "2913960369109012": 6, "675": 6, "247": 6, "88538215472033": 6, "3274897484709072": 6, "737": 6, "244": 6, "23847775159297": 6, "2647865635312279": 6, "803": 6, "59033004585282": 6, "3228443521984092": 6, "863": 6, "243": 6, "40694430653753": 6, "2489205103047292": 6, "928": 6, "223": 6, "85145692792733": 6, "8934822741396387": 6, "990": [6, 7], "221": 6, "94026043724057": 6, "8552798675517863": 6, "219": 6, "60947928367543": 6, "8149866573467666": 6, "108": 6, "84441955310717": 6, "8531301788095305": 6, "170": 6, "24134912135943": 6, "8418420411160932": 6, "232": 6, "34805357903284": 6, "883998932301903": 6, "293": 6, "99342925522842": 6, "8564564664338091": 6, "353": 6, "50886633416462": 6, "8672069097403997": 6, "415": 6, "61235541906441": 6, "8482856353268698": 6, "479": 6, "217": 6, "7749814513912": 6, "7823980442129331": 6, "538": 6, "216": 6, "00225784039503": 6, "7113129125761161": 6, "601": 6, "8736767409489": 6, "6250904023479531": 6, "666": 6, "94414119442342": 6, "6227757503715069": 6, "731": 6, "45936690929625": 6, "6343056785694773": 6, "63861804615567": 6, "6302707941523814": 6, "860": 6, "1969": 6, "3749442111905": 6, "00019861806798724335": 6, "586529041453": 6, "923": 6, "215": 6, "82051598778696": 6, "6518244359516081": 6, "06387687700067": 6, "6440087841656821": 6, "041": 6, "24994687849525": 6, "6393212787552464": 6, "106": 6, "92984604804667": 6, "6232144947646524": 6, "25506613319246": 6, "603388647930941": 6, "2733": 6, "5772576431627": 6, "287": 6, "29854648789728": 6, "5873312673596333": 6, "16592450348784": 6, "4337907998582289": 6, "410": 6, "68514116107337": 6, "6695836226711808": 6, "475": 6, "220": 6, "8939514172608": 6, "4420925048614356": 6, "535": 6, "72299797702155": 6, "6960582933068138": 6, "69285146262294": 6, "69078828949453": 6, "665": 6, "0538787714827": 6, "7144357045239296": 6, "728": 6, "4213281391621": 6, "7353090312302926": 6, "74724725664498": 6, "92653950485437e": 6, "858": 6, "12287184152592": 6, "7183304951103088": 6, "22186485689846": 6, "7234233661662641": 6, "977": 6, "2720": 6, "793752592223": 6, "042": 6, "3855763846717": 6, "4726201914486088": 6, "By": 6, "roc_auc": [6, 9], "model_evalu": 6, "amongst": 6, "regression_scor": 6, "classification_scor": 6, "explained_vari": [6, 9], "max_error": [6, 9], "neg_mean_absolute_error": [6, 9], "neg_median_absolute_error": [6, 9], "average_precis": [6, 9], "balanced_accuraci": [6, 9], "f1": [6, 9], "f1_macro": [6, 9], "f1_micro": [6, 9], "f1_weight": [6, 9], "jaccard": [6, 9], "jaccard_macro": [6, 9], "jaccard_micro": [6, 9], "jaccard_weight": [6, 9], "neg_brier_scor": [6, 9], "precis": [6, 7, 9], "precision_macro": [6, 9], "precision_micro": [6, 9], "precision_weight": [6, 9], "recal": [6, 9], "recall_macro": [6, 9], "recall_micro": [6, 9], "recall_weight": [6, 9], "auc_pr_cal": [6, 8, 9], "bedroc": [6, 8, 9], "concordance_index": [6, 8, 9], "my_study_r2": 6, "945": 6, "947": 6, "072": 6, "011171868665159623": 6, "197": 6, "08689402230378174": 6, "283": 6, "12553701248394863": 6, "141096648805748": 6, "4893466963980463e": 6, "3039309544203818": 6, "20182749628697164": 6, "485": 6, "8187194367176578": 6, "558": 6, "4647239019719945": 6, "6574750183038587": 6, "611": 6, "8614818478547979": 6, "3974313630683448": 6, "705": 6, "12769795082909816": 6, "773": 6, "8639946428338224": 6, "2391884918766034": 6, "838": 6, "12553701248377633": 6, "00044396482429275296": 6, "3831436879125245e": 6, "892": 6, "12553700871203702": 6, "00028965395242758657": 6, "99928292425642e": 6, "2935582042429075": 6, "976": 6, "18476333152695587": 6, "8190707459213998": 6, "4060379177903557": 6, "118": 6, "12206148974315871": 6, "3105263811279067": 6, "344271094811757": 6, "3562469062424869": 6, "670604991178476": 6, "316": [6, 7], "045959695906983344": 6, "8583939656024446": 6, "5158832554303112": 6, "433": 6, "3062574078515544": 6, "487": 6, "11657354998283716": 6, "0009327650919528738": 6, "062479210472502": 6, "586": 6, "629": 6, "8498478905829554": 6, "1366172066709432": 6, "733": 6, "1276979508290982": 6, "786": 6, "13519830637607919": 6, "92901911959232": 6, "999026012594694": 6, "839": 6, "8198078293055633": 6, "5888977841391714": 6, "878": 6, "8201573964824842": 6, "19435298754153707": 6, "958": 6, "013": 6, "6285506249643193": 6, "35441495011256785": 6, "11934070343348298": 6, "145": 6, "4374125584543907": 6, "2457809516380005": 6, "213": 6, "3625576518621392": 6, "6459129458824919": 6, "36175556871883746": 6, "8179058888285398": 6, "285": 6, "8202473217121523": 6, "0920052840435055": 6, "372": 6, "3672927879319306": 6, "8677032984759461": 6, "402": 6, "445": 6, "40076792599874356": 6, "2865764368847064": 6, "26560316846701765": 6, "632": 6, "41215254857081174": 6, "671": 6, "763": 6, "00461414372160085": 6, "27282533524183633": 6, "919": 6, "10220127407364991": 6, "975": 6, "30323404130582854": 6, "3044553805553568": 6, "6437201185807124": 6, "076": 6, "41502276709562": 6, "10978379088847677": 6, "120": 6, "36160209098547913": 6, "022707289534838138": 6, "175": 6, "2916101445983833": 6, "936e": 6, "782e": 6, "434e": 6, "977e": 6, "276": 6, "8609413020928532": 6, "04987590926279814": 6, "794e": 6, "830e": 6, "906e": 6, "578e": 6, "8610289662757457": 6, "019211413400468974": 6, "754e": 6, "843e": 6, "507e": 6, "493": 6, "8610070549049179": 6, "018492644772509947": 6, "840e": 6, "513e": 6, "924e": 6, "8569771623635769": 6, "008783442408928633": 6, "243e": 6, "014e": 6, "700": 6, "8624781673814641": 6, "05782221001517797": 6, "113e": 6, "935e": 6, "122e": 6, "798": 6, "8618589507037001": 6, "02487072255316275": 6, "886": 6, "864754359721037": 6, "2079910754941946": 6, "946": 6, "8622236413326235": 6, "333215560931422": 6, "009": 6, "861832165638517": 6, "3628098560209365": 6, "068": 6, "8620108533993581": 6, "34240779695521706": 6, "142": 6, "8638540565650902": 6, "26493714991266293": 6, "8629799500771645": 6, "30596394512914815": 6, "8621408609583922": 6, "33648829357762355": 6, "351": 6, "8638132124078156": 6, "2679814646317183": 6, "424": 6, "863983758876634": 6, "24062119162159595": 6, "500": 6, "8627356047945115": 6, "3141728910335158": 6, "8639203054085788": 6, "23391390640786494": 6, "8570103863991635": 6, "6124885145996103": 6, "742": 6, "8647961976727571": 6, "2059976546070975": 6, "830": 6, "8648312544921793": 6, "20266060662750784": 6, "926": 6, "8648431452862716": 6, "20027647978240445": 6, "010": 6, "8648491459660418": 6, "1968919999787333": 6, "8650873115156988": 6, "174598921162764": 6, "204": 6, "8650350577921149": 6, "16468002989641095": 6, "8649412283687147": 6, "1606717091615047": 6, "986e": 6, "396": [6, 7], "8649537211609554": 6, "14694925097689848": 6, "506": 6, "8649734575435447": 6, "147612713300643": 6, "446e": 6, "8648761002838515": 6, "14440434705706803": 6, "398e": 6, "775": 6, "8639826593122782": 6, "1265357179513065": 6, "690e": 6, "875": 6, "864435565531768": 6, "1374245525868926": 6, "938": 6, "8590221951825531": 6, "49890830155012533": 6, "8649098880804443": 6, "1573428812070292": 6, "405e": 6, "864536410656637": 6, "13886104722511608": 6, "8597401050431873": 6, "47746341180045787": 6, "8537465461603838": 6, "050e": 6, "8642643827090003": 6, "13446778921611002": 6, "175e": 6, "8641621818665252": 6, "1286796719653316": 6, "625": 6, "864182755916388": 6, "13303218726548235": 6, "693": 6, "1255357440899417": 6, "021711452917433944": 6, "559714273835951e": 6, "758": 6, "8604596648091501": 6, "43644874418279245": 6, "463e": 6, "861": 6, "8635689909135862": 6, "10940922083495383": 6, "951": 6, "8648544336551733": 6, "1912756875742137": 6, "8648496595672595": 6, "19628449928540487": 6, "8452625121122099": 6, "4324661283995224": 6, "149": 6, "8378670635846416": 6, "839206620815206": 6, "002e": 6, "082e": 6, "8649365368153895": 6, "07270781179126021": 6, "8875676754699953": 6, "0006995169897945908": 6, "586e": 6, "618e": 6, "234e": 6, "484": 6, "8730555131061773": 6, "0018186269840273495": 6, "12553508835019533": 6, "04867556317570456": 6, "0011658455138452": 6, "284e": 6, "177e": 6, "664": 6, "8586292788613132": 6, "005078762921098462": 6, "anyalgorithm": 6, "__args__": 6, "consider": [6, 7], "modif": [6, 12], "establish": 6, "rf": 6, "account": [6, 7, 8], "though": 6, "treat": [6, 7], "pdf": [6, 9], "denot": [6, 12, 13], "determinist": [6, 7], "quantiti": 6, "tradit": [6, 7], "discret": 6, "discretis": [6, 12, 14], "bioactiv": [6, 7], "integr": 6, "afford": [6, 7], "particularli": 6, "liklihood": 6, "membership": [6, 7], "iopscienc": 6, "iop": 6, "articl": [6, 7], "3847": 6, "1538": 6, "3881": 6, "aaf101": 6, "pxc50": [6, 7], "p24863": 6, "enabl": [6, 7], "alwai": [6, 7], "734": 6, "joblib": [6, 8], "577": 6, "joblibcollisionwarn": 6, "collis": 6, "180": 6, "self": [6, 9], "_cached_cal": 6, "shelv": 6, "00": 6, "764": 6, "08099580623289632": 6, "prfclassifier_algorithm_hash": 6, "efe0ba9870529a6cde0dd3ad22447cbb": 6, "max_depth__efe0ba9870529a6cde0dd3ad22447cbb": 6, "n_estimators__efe0ba9870529a6cde0dd3ad22447cbb": 6, "max_features__efe0ba9870529a6cde0dd3ad22447cbb": 6, "prfclassifiermaxfeatur": [6, 9], "min_py_sum_leaf__efe0ba9870529a6cde0dd3ad22447cbb": 6, "use_py_gini__efe0ba9870529a6cde0dd3ad22447cbb": 6, "use_py_leafs__efe0ba9870529a6cde0dd3ad22447cbb": 6, "408": [6, 7], "07261454017489567": 6, "780": 6, "08791063872794351": 6, "911": 6, "07114663955819509": 6, "879": 6, "06537440628140882": 6, "446": 6, "05680450487193368": 6, "968": 6, "543": 6, "0656836821774901": 6, "333": 6, "07863564862376404": 6, "329": 6, "0648840199215795": 6, "014": 6, "07861037073288182": 6, "608": 6, "06669924317660021": 6, "997": 6, "06734611679947522": 6, "526": 6, "06810559387741143": 6, "0528189695245453": 6, "best_built": 6, "demonstr": [6, 7], "purpos": [6, 7], "transduct": 6, "example_smil": 6, "get_set": [6, 7, 8], "b": [6, 7], "outsid": [6, 7, 8], "likelihood": 6, "problemat": 6, "except": [6, 8], "valueerror": 6, "As": [6, 7], "raw": [6, 7, 8, 12], "760": 6, "800": 6, "w": 6, "801": 6, "fail": 6, "traceback": 6, "_optim": 6, "196": 6, "_run_trial": 6, "value_or_valu": 6, "func": 6, "128": 6, "__call__": 6, "_validate_algo": 6, "rais": [6, 8], "summaris": 6, "handl": 6, "via": [6, 7, 12], "convent": [6, 7], "classic": 6, "relev": 6, "cutoff": [6, 7, 12], "ouput": 6, "reflect": [6, 7], "arguabl": 6, "mpo": 6, "pub": 6, "ac": 6, "full": [6, 9], "jcim": 6, "9b00237": 6, "slide": 6, "googl": 6, "14pbd9ltxzfpsjhyxykflxnk8q80lhvnjimg8a3wqcrm": 6, "edit": 6, "calcault": 6, "directli": [6, 7], "later": [6, 7], "smilesbaseddescriptor": 6, "architectur": [6, 7], "quickli": 6, "867": 6, "868": 6, "root": [6, 9, 10], "enqueu": [6, 8], "manual": 6, "activation__668a7428ff5cdb271b01c0925e8fea45": 6, "relu": [6, 9], "aggregation__668a7428ff5cdb271b01c0925e8fea45": 6, "aggregation_norm__668a7428ff5cdb271b01c0925e8fea45": 6, "batch_size__668a7428ff5cdb271b01c0925e8fea45": 6, "depth__668a7428ff5cdb271b01c0925e8fea45": 6, "dropout__668a7428ff5cdb271b01c0925e8fea45": 6, "features_generator__668a7428ff5cdb271b01c0925e8fea45": 6, "ffn_hidden_size__668a7428ff5cdb271b01c0925e8fea45": 6, "ffn_num_layers__668a7428ff5cdb271b01c0925e8fea45": 6, "final_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45": 6, "hidden_size__668a7428ff5cdb271b01c0925e8fea45": 6, "init_lr_ratio_exp__668a7428ff5cdb271b01c0925e8fea45": 6, "max_lr_exp__668a7428ff5cdb271b01c0925e8fea45": 6, "warmup_epochs_ratio__668a7428ff5cdb271b01c0925e8fea45": 6, "chempropregressor_algorithm_hash": 6, "668a7428ff5cdb271b01c0925e8fea45": 6, "301": 6, "6833": 6, "034983241957": 6, "chempropactiv": [6, 9], "chempropaggreg": [6, 9], "ensemble_size__668a7428ff5cdb271b01c0925e8fea45": 6, "epochs__668a7428ff5cdb271b01c0925e8fea45": 6, "chempropfeatures_gener": [6, 9], "6445": 6, "608102397302": 6, "1700": 6, "2300": 6, "safe": 6, "nan": [6, 8, 12, 13], "prompt": 6, "due": [6, 7, 8], "deactiv": 6, "own": 6, "still": 6, "commun": 6, "facilit": [6, 7, 9], "preset": 6, "enqu": 6, "bayesian": 6, "suggest": 6, "split_chemprop": [6, 9], "flag": [6, 7, 12, 13], "n_chemprop_tri": [6, 9], "desir": 6, "undirect": 6, "shown": [6, 7], "aspect": [6, 8], "princip": [6, 7], "expand": 6, "differnt": 6, "rememb": 6, "unless": 6, "alter": [6, 9], "characterist": [6, 7], "too": [6, 9], "limit": [6, 7, 9], "vice": [6, 9], "versa": [6, 9], "extens": [6, 9], "trail": [6, 9], "applic": [6, 7, 9], "chanc": 6, "help": 6, "caruana": 6, "particular": 6, "achiev": [6, 7], "st": 6, "figur": [6, 7], "signal": 6, "aka": 6, "could": [6, 7], "share": [6, 12, 13], "until": [6, 9], "longer": [6, 7], "mt": 6, "onc": [6, 7, 12], "knowledg": 6, "order": [6, 7, 9, 12], "earlier": [6, 7], "accompi": 6, "train_side_info": 6, "clog": 6, "surfac": 6, "area": [6, 7], "psa": 6, "265": 6, "22475": 6, "8088": 6, "883": 6, "32297": 6, "6237": 6, "835": 6, "33334": 6, "2804": 6, "314": 6, "26075": 6, "2533": 6, "498": 6, "278": 6, "18917": 6, "5102": 6, "694": 6, "246": 6, "12575": 6, "7244": 6, "255": 6, "14831": 6, "4338": 6, "895": 6, "302": 6, "26838": 6, "2041": 6, "22298": 6, "match": 6, "train_side_info_cl": 6, "clogp_gt2": 6, "clogs_gt": 6, "acceptors_gt5": 6, "donors_gt0": 6, "area_gt250": 6, "psa_lt0": 6, "aux": [6, 8, 10], "03": 6, "350": 6, "443": 6, "5817": 6, "944008002311": 6, "chemprophyperoptregressor_algorithm_hash": 6, "db9e60f9b8f0a43eff4b41917b6293d9": 6, "ensemble_size__db9e60f9b8f0a43eff4b41917b6293d9": 6, "epochs__db9e60f9b8f0a43eff4b41917b6293d9": 6, "features_generator__db9e60f9b8f0a43eff4b41917b6293d9": 6, "num_iters__db9e60f9b8f0a43eff4b41917b6293d9": 6, "search_parameter_level__db9e60f9b8f0a43eff4b41917b6293d9": 6, "chempropsearch_parameter_level": [6, 9], "aux_weight_pc__db9e60f9b8f0a43eff4b41917b6293d9": 6, "5796": 6, "34392897437": 6, "439": 6, "5795": 6, "086720713623": 6, "470": 6, "241": 6, "5820": 6, "227555999914": 6, "322": 6, "5852": 6, "160071204277": 6, "inlfuenc": 6, "henc": [6, 7], "percent": 6, "product": 6, "user_attrs_trial_ran": 6, "drop": [6, 7, 8], "erron": 6, "__": 6, "params_aux_weight_pc": 6, "conclud": [6, 7], "produc": 6, "overrid": [6, 9], "situat": [6, 7], "along": 6, "potenti": [6, 7], "compris": 6, "incompat": 6, "whilst": [6, 7], "desciptor": 6, "grei": [6, 7], "tial": 6, "what": 6, "design": 6, "unpromis": 6, "why": [6, 7], "poor": 6, "sampler": 6, "incompta": 6, "repeatedli": 6, "hyerparamet": 6, "ident": 6, "9525489095524835": 6, "aux_weight_pc__cfa1990d5153c8812982f034d788d7e": 6, "777": 6, "4824": 6, "686269039228": 6, "7731425652872588": 6, "819": 6, "849": 6, "4409": 6, "946844928445": 6, "791002332112292": 6, "021": [6, 7], "167": 6, "329624779366306": 6, "00015024763718638216": 6, "269": 6, "523": 6, "4396": 6, "722635068717": 6, "559": 6, "753": 6, "4577379164707": 6, "790": 6, "960": 6, "consult": 6, "incompitbl": 6, "algo": [6, 9], "occur": 6, "assign": [6, 7], "doe": [6, 7, 8, 9, 12], "params_algorithm_nam": 6, "move_legend": 6, "upper": [6, 7], "bbox_to_anchor": [6, 7], "overview": 6, "never": 6, "successfulli": 6, "absenc": 6, "8th": 6, "miss": [6, 8, 12, 13], "associ": [6, 7], "asid": 6, "mitig": 6, "overal": [6, 7], "serv": [6, 11], "argument": [6, 8], "tl": 6, "wider": 6, "activation__e0d3a442222d4b38f3aa1434851320db": 6, "aggregation__e0d3a442222d4b38f3aa1434851320db": 6, "aggregation_norm__e0d3a442222d4b38f3aa1434851320db": 6, "batch_size__e0d3a442222d4b38f3aa1434851320db": 6, "depth__e0d3a442222d4b38f3aa1434851320db": 6, "dropout__e0d3a442222d4b38f3aa1434851320db": 6, "features_generator__e0d3a442222d4b38f3aa1434851320db": 6, "ffn_hidden_size__e0d3a442222d4b38f3aa1434851320db": 6, "ffn_num_layers__e0d3a442222d4b38f3aa1434851320db": 6, "final_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db": 6, "hidden_size__e0d3a442222d4b38f3aa1434851320db": 6, "init_lr_ratio_exp__e0d3a442222d4b38f3aa1434851320db": 6, "max_lr_exp__e0d3a442222d4b38f3aa1434851320db": 6, "warmup_epochs_ratio__e0d3a442222d4b38f3aa1434851320db": 6, "e0d3a442222d4b38f3aa1434851320db": 6, "4937": 6, "540075659691": 6, "ensemble_size__e0d3a442222d4b38f3aa1434851320db": 6, "epochs__e0d3a442222d4b38f3aa1434851320db": 6, "retrain": 6, "954": 6, "043": 6, "5114": 6, "7131239123555": 6, "chempropregressorpretrained_algorithm_hash": 6, "dfc518a76317f23d95e5aa5a3eac77f0": 6, "frzn__dfc518a76317f23d95e5aa5a3eac77f0": 6, "chempropfrzn": [6, 9], "epochs__dfc518a76317f23d95e5aa5a3eac77f0": 6, "cover": 6, "global": 6, "job": [6, 7], "fair": 6, "1545": 6, "tl_studi": 6, "loc": [6, 7], "params_epoch": 6, "fillna": 6, "astyp": [6, 7], "agg": 6, "join": [6, 7], "params_chempropregressor_algorithm_hash": 6, "isna": 6, "annot": 6, "172": 6, "5891": 6, "7552821093905": 6, "140": 6, "5890": 6, "94653501547": 6, "77dfc8230317e08504ed5e643243fbc2": 6, "frzn__77dfc8230317e08504ed5e643243fbc2": 6, "epochs__77dfc8230317e08504ed5e643243fbc2": 6, "181": 6, "right": [6, 7], "ncol": 6, "world": [6, 7, 12, 13], "penultim": [6, 9], "chemprop_model": 6, "heatmap": 6, "predictor": [6, 8], "chemprop_fingerprint": 6, "fingerprint_typ": 6, "mpn": 6, "cbar_kw": 6, "semi": 6, "supervis": 6, "altern": [6, 7], "last_ffn": 6, "howeev": 6, "respect": [6, 7], "kind": [6, 7, 12], "confid": 6, "calibratedclassifiercv": 6, "understand": 6, "predict_proba": [6, 8], "among": 6, "gave": 6, "close": [6, 7], "actual": [6, 7], "topic": 6, "sigmoid": [6, 9], "review": 6, "those": [6, 7, 8], "calibration_curv": 6, "collect": 6, "defaultdict": 6, "precision_scor": 6, "recall_scor": 6, "f1_score": 6, "brier_score_loss": 6, "log_loss": 6, "roc_auc_scor": 6, "n_job": [6, 9, 11], "calibrated_rf": 6, "calibrated_model": 6, "173": 6, "110": 6, "8353535353535354": 6, "calibratedclassifiercvwithva_algorithm_hash": 6, "e788dfbfc5075967acb5ddf9d971ea20": 6, "n_folds__e788dfbfc5075967acb5ddf9d971ea20": 6, "max_depth__e788dfbfc5075967acb5ddf9d971ea20": 6, "n_estimators__e788dfbfc5075967acb5ddf9d971ea20": 6, "max_features__e788dfbfc5075967acb5ddf9d971ea20": 6, "uncalibr": 6, "uncalibrated_rf": 6, "uncalibrated_model": 6, "566": 6, "915": 6, "8185858585858585": 6, "randomforestclassifier_algorithm_hash": 6, "167e1e88dd2a80133e317c78f009bdc9": 6, "max_depth__167e1e88dd2a80133e317c78f009bdc9": 6, "n_estimators__167e1e88dd2a80133e317c78f009bdc9": 6, "max_features__167e1e88dd2a80133e317c78f009bdc9": 6, "conserv": 6, "1000": [6, 7], "random_st": [6, 12, 13], "calibrated_predict": 6, "uncalibrated_predict": 6, "cal_df": 6, "datafram": [6, 7, 8, 11, 12], "boxplot": 6, "melt": 6, "set_ylabel": [6, 7], "behaviour": [6, 7], "curv": [6, 7], "reliabl": 6, "diagram": 6, "against": 6, "figsiz": [6, 7], "ax1": 6, "subplot2grid": 6, "rowspan": 6, "ax2": 6, "perfectli": [6, 7], "pred": 6, "fraction_of_posit": 6, "mean_predicted_valu": 6, "n_bin": 6, "brier": 6, "2f": 6, "hist": 6, "histtyp": 6, "lw": 6, "set_ylim": 6, "legend": [6, 7], "set_titl": 6, "set_xlabel": [6, 7], "center": [6, 7], "tight_layout": [6, 7], "compos": 6, "refin": 6, "notic": 6, "significantli": 6, "cell": 6, "accur": 6, "alloc": 6, "y_prob": 6, "ye": 6, "score_nam": 6, "__name__": 6, "capit": 6, "score_df": 6, "set_index": 6, "decim": 6, "roc": 6, "auc": [6, 8], "184705": 6, "547129": 6, "830565": 6, "744048": 6, "784929": 6, "716536": 6, "175297": 6, "529474": 6, "811209": 6, "818452": 6, "814815": 6, "714104": 6, "va": 6, "multipoint": 6, "0c00476": 6, "margin": [6, 7], "bounari": 6, "548": 6, "537": 6, "8213131313131313": 6, "79765fbec1586f3c917ff30de274fdb4": 6, "n_folds__79765fbec1586f3c917ff30de274fdb4": 6, "max_depth__79765fbec1586f3c917ff30de274fdb4": 6, "n_estimators__79765fbec1586f3c917ff30de274fdb4": 6, "max_features__79765fbec1586f3c917ff30de274fdb4": 6, "uncert": [6, 8], "chem": [6, 7, 8], "allchem": 6, "pandastool": [6, 7], "rdconfig": 6, "datastruct": 6, "train_df": 6, "addmoleculecolumntofram": 6, "includefingerprint": 6, "getmorganfingerprint": 6, "nn": 6, "bulktanimotosimilar": 6, "add": [6, 7, 8, 10], "va_pr": 6, "va_uncert": 6, "dtm": 6, "trelli": 6, "fig": [6, 7], "subplot": [6, 7], "sharei": 6, "regplot": 6, "referenc": 6, "boundari": [6, 7, 12, 14], "neither": 6, "nor": 6, "dissimilar": 6, "cp_pred_ensembl": 6, "cp_uncert_ensembl": 6, "916": 6, "959": 6, "activation__fd833c2dde0b7147e6516ea5eebb2657": 6, "aggregation__fd833c2dde0b7147e6516ea5eebb2657": 6, "aggregation_norm__fd833c2dde0b7147e6516ea5eebb2657": 6, "batch_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "depth__fd833c2dde0b7147e6516ea5eebb2657": 6, "dropout__fd833c2dde0b7147e6516ea5eebb2657": 6, "features_generator__fd833c2dde0b7147e6516ea5eebb2657": 6, "ffn_hidden_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "ffn_num_layers__fd833c2dde0b7147e6516ea5eebb2657": 6, "final_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657": 6, "hidden_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "init_lr_ratio_exp__fd833c2dde0b7147e6516ea5eebb2657": 6, "max_lr_exp__fd833c2dde0b7147e6516ea5eebb2657": 6, "warmup_epochs_ratio__fd833c2dde0b7147e6516ea5eebb2657": 6, "chempropclassifier_algorithm_hash": 6, "fd833c2dde0b7147e6516ea5eebb2657": 6, "65625": 6, "ensemble_size__fd833c2dde0b7147e6516ea5eebb2657": 6, "epochs__fd833c2dde0b7147e6516ea5eebb2657": 6, "midpoint": 6, "mont": 6, "carlo": 6, "virtual": [6, 8], "468": 6, "activation__c73885c5d5a4182168b8b002d321965a": 6, "aggregation__c73885c5d5a4182168b8b002d321965a": 6, "aggregation_norm__c73885c5d5a4182168b8b002d321965a": 6, "batch_size__c73885c5d5a4182168b8b002d321965a": 6, "depth__c73885c5d5a4182168b8b002d321965a": 6, "dropout__c73885c5d5a4182168b8b002d321965a": 6, "features_generator__c73885c5d5a4182168b8b002d321965a": 6, "ffn_hidden_size__c73885c5d5a4182168b8b002d321965a": 6, "ffn_num_layers__c73885c5d5a4182168b8b002d321965a": 6, "final_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a": 6, "hidden_size__c73885c5d5a4182168b8b002d321965a": 6, "init_lr_ratio_exp__c73885c5d5a4182168b8b002d321965a": 6, "max_lr_exp__c73885c5d5a4182168b8b002d321965a": 6, "warmup_epochs_ratio__c73885c5d5a4182168b8b002d321965a": 6, "c73885c5d5a4182168b8b002d321965a": 6, "46875": 6, "ensemble_size__c73885c5d5a4182168b8b002d321965a": 6, "epochs__c73885c5d5a4182168b8b002d321965a": 6, "cp_pred_dropout": 6, "cp_uncert_dropout": 6, "previou": 6, "proabil": 6, "va_predict": 6, "correl": [6, 7], "drouput": 6, "uncertatinti": 6, "cp_uncert_delta": 6, "categor": [6, 12], "unit": [6, 7], "parsabl": 6, "date": 6, "cast": 6, "appropri": 6, "befor": [6, 7, 12], "choic": [6, 12], "822": 6, "862": 6, "4430": 6, "271946796234": 6, "mapie_algorithm_hash": 6, "976d211e4ac64e5568d369bcddd3aeb1": 6, "mapie_alpha__976d211e4ac64e5568d369bcddd3aeb1": 6, "max_depth__976d211e4ac64e5568d369bcddd3aeb1": 6, "n_estimators__976d211e4ac64e5568d369bcddd3aeb1": 6, "max_features__976d211e4ac64e5568d369bcddd3aeb1": 6, "analysi": [6, 7, 8], "perfom": 6, "post": 6, "mapie_pr": 6, "mapie_unc": 6, "bar": 6, "visualis": 6, "errorbar": 6, "yerr": 6, "ab": 6, "fmt": 6, "black": [6, 7], "ecolor": 6, "grai": 6, "elinewidth": 6, "capsiz": 6, "move": [6, 10], "analys": [6, 7], "width": 6, "alpha_impact": 6, "ma": 6, "unc_df": 6, "unc": 6, "reset_index": [6, 7], "concat": 6, "lineplot": 6, "err_styl": 6, "se": 6, "incorpor": 6, "tradition": 6, "unsupport": 6, "kernelexplain": [6, 8], "shaplei": 6, "explan": 6, "slundberg": 6, "game": 6, "credit": 6, "theori": 6, "publish": 6, "comopsit": 6, "540": 6, "_ridg": 6, "userwarn": [6, 7], "matrix": 6, "dual": 6, "34035600917066766": 6, "676421027478709": 6, "dga": 6, "dgp": 6, "dgtot": 6, "sa": 6, "sdc": 6, "sdx": 6, "numhacceptor": 6, "numhdonor": 6, "maxabsestateindex": 6, "maxestateindex": 6, "minabsestateindex": 6, "minestateindex": 6, "qed": 6, "sp": 6, "heavyatommolwt": 6, "exactmolwt": 6, "numvalenceelectron": 6, "numradicalelectron": 6, "maxpartialcharg": 6, "minpartialcharg": 6, "maxabspartialcharg": 6, "minabspartialcharg": 6, "fpdensitymorgan1": 6, "fpdensitymorgan2": 6, "fpdensitymorgan3": 6, "bcut2d_mwhi": 6, "bcut2d_mwlow": 6, "bcut2d_chghi": 6, "bcut2d_chglo": 6, "bcut2d_logphi": 6, "bcut2d_logplow": 6, "bcut2d_mrhi": 6, "bcut2d_mrlow": 6, "avgipc": 6, "balabanj": 6, "bertzct": 6, "chi0": 6, "chi0n": 6, "chi0v": 6, "chi1": 6, "chi1n": 6, "chi1v": 6, "chi2n": 6, "chi2v": 6, "chi3n": 6, "chi3v": 6, "chi4n": 6, "chi4v": 6, "hallkieralpha": 6, "ipc": 6, "kappa1": 6, "kappa2": 6, "kappa3": 6, "labuteasa": 6, "peoe_vsa1": 6, "peoe_vsa10": 6, "peoe_vsa11": 6, "peoe_vsa12": 6, "peoe_vsa13": 6, "peoe_vsa14": 6, "peoe_vsa2": 6, "peoe_vsa3": 6, "peoe_vsa4": 6, "peoe_vsa5": 6, "peoe_vsa6": 6, "peoe_vsa7": 6, "peoe_vsa8": 6, "peoe_vsa9": 6, "smr_vsa1": 6, "smr_vsa10": 6, "smr_vsa2": 6, "smr_vsa3": 6, "smr_vsa4": 6, "smr_vsa5": 6, "smr_vsa6": 6, "smr_vsa7": 6, "smr_vsa8": 6, "smr_vsa9": 6, "slogp_vsa1": 6, "slogp_vsa10": 6, "slogp_vsa11": 6, "slogp_vsa12": 6, "slogp_vsa2": 6, "slogp_vsa3": 6, "slogp_vsa4": 6, "slogp_vsa5": 6, "slogp_vsa6": 6, "slogp_vsa7": 6, "slogp_vsa8": 6, "slogp_vsa9": 6, "estate_vsa1": 6, "estate_vsa10": 6, "estate_vsa11": 6, "estate_vsa2": 6, "estate_vsa3": 6, "estate_vsa4": 6, "estate_vsa5": 6, "estate_vsa6": 6, "estate_vsa7": 6, "estate_vsa8": 6, "estate_vsa9": 6, "vsa_estate1": 6, "vsa_estate10": 6, "vsa_estate2": 6, "vsa_estate3": 6, "vsa_estate4": 6, "vsa_estate5": 6, "vsa_estate6": 6, "vsa_estate7": 6, "vsa_estate8": 6, "vsa_estate9": 6, "fractioncsp3": 6, "heavyatomcount": 6, "nhohcount": 6, "nocount": 6, "numaliphaticcarbocycl": 6, "numaliphaticheterocycl": 6, "numaliphaticr": 6, "numaromaticcarbocycl": 6, "numaromaticheterocycl": 6, "numaromaticr": 6, "numheteroatom": 6, "numrotatablebond": 6, "numsaturatedcarbocycl": 6, "numsaturatedheterocycl": 6, "numsaturatedr": 6, "ringcount": 6, "mollogp": 6, "molmr": 6, "fr_al_coo": 6, "fr_al_oh": 6, "fr_al_oh_notert": 6, "fr_arn": 6, "fr_ar_coo": 6, "fr_ar_n": 6, "fr_ar_nh": 6, "fr_ar_oh": 6, "fr_coo": 6, "fr_coo2": 6, "fr_c_o": 6, "fr_c_o_nocoo": 6, "fr_c_": 6, "fr_hoccn": 6, "fr_imin": 6, "fr_nh0": 6, "fr_nh1": 6, "fr_nh2": 6, "fr_n_o": 6, "fr_ndealkylation1": 6, "fr_ndealkylation2": 6, "fr_nhpyrrol": 6, "fr_sh": 6, "fr_aldehyd": 6, "fr_alkyl_carbam": 6, "fr_alkyl_halid": 6, "fr_allylic_oxid": 6, "fr_amid": 6, "fr_amidin": 6, "fr_anilin": 6, "fr_aryl_methyl": 6, "fr_azid": 6, "fr_azo": 6, "fr_barbitur": 6, "fr_benzen": 6, "fr_benzodiazepin": 6, "fr_bicycl": 6, "fr_diazo": 6, "fr_dihydropyridin": 6, "fr_epoxid": 6, "fr_ester": 6, "fr_ether": 6, "fr_furan": 6, "fr_guanido": 6, "fr_halogen": 6, "fr_hdrzine": 6, "fr_hdrzone": 6, "fr_imidazol": 6, "fr_imid": 6, "fr_isocyan": 6, "fr_isothiocyan": 6, "fr_keton": 6, "fr_ketone_topliss": 6, "fr_lactam": 6, "fr_lacton": 6, "fr_methoxi": 6, "fr_morpholin": 6, "fr_nitril": 6, "fr_nitro": 6, "fr_nitro_arom": 6, "fr_nitro_arom_nonortho": 6, "fr_nitroso": 6, "fr_oxazol": 6, "fr_oxim": 6, "fr_para_hydroxyl": 6, "fr_phenol": 6, "fr_phenol_noorthohbond": 6, "fr_phos_acid": 6, "fr_phos_est": 6, "fr_piperdin": 6, "fr_piperzin": 6, "fr_priamid": 6, "fr_prisulfonamd": 6, "fr_pyridin": 6, "fr_quatn": 6, "fr_sulfid": 6, "fr_sulfonamd": 6, "fr_sulfon": 6, "fr_term_acetylen": 6, "fr_tetrazol": 6, "fr_thiazol": 6, "fr_thiocyan": 6, "fr_thiophen": 6, "fr_unbrch_alkan": 6, "fr_urea": 6, "shap_valu": 6, "2227": 6, "042023e": 6, "2229": 6, "025199e": 6, "2228": 6, "802158e": 6, "2267": 6, "387276e": 6, "2230": 6, "106653e": 6, "1784": 6, "598471e": 6, "1785": 6, "584": 6, "ns": 6, "995": 6, "996": 6, "845": 6, "846": 6, "1375": 6, "1376": 6, "s1": 6, "n1c": 6, "1570": 6, "contrinubt": 6, "datset": 6, "unscaledphyschemjazzi": 6, "rank": [6, 8], "usag": 6, "978": 6, "032": 6, "818": 6, "t": [6, 7, 9], "kekul": 6, "unkekul": 6, "rational": 6, "rationale_scor": 6, "386": 6, "097": 6, "ch3": 6, "ch": 6, "389": [6, 7], "151": 6, "c1c": 6, "c1n": 6, "ch2": 6, "nh2": 6, "nn1cc1c": 6, "384": 6, "720": 6, "c1cccc": 6, "871": 6, "854": 6, "contian": 6, "second": 6, "dummi": 6, "third": 6, "smallest": 6, "made": [6, 7], "fourth": 6, "irregularli": 6, "xc50": [6, 7], "log10": [6, 7, 12, 14], "6th": 6, "convers": [6, 7, 12, 14], "logbas": [6, 7, 12, 14], "logneg": [6, 7, 12, 14], "negat": [6, 7, 12, 14], "transformed_studi": 6, "transform_exampl": 6, "028": 6, "5959493772536109": 6, "6571993250300608": 6, "169": 6, "1511102853256885": 6, "2487063317112765": 6, "288": 6, "6714912461080983": 6, "2725944467796781": 6, "369": 6, "194926264155893": 6, "395": 6, "7520919188596032": 6, "469": 6, "7803723847416691": 6, "499": 6, "6397753979196248": 6, "528": 6, "151110299986041": 6, "151110111437006": 6, "5410418750776741": 6, "612": 6, "7183231137124538": 6, "640": 6, "2721824844856162": 6, "716": 6, "1900929470222508": 6, "745": 6, "774": 6, "5585323973564646": 6, "3169218304262786": 6, "980": 6, "7974925066137679": 6, "008": 6, "218395226466336": 6, "039": 6, "1474226942497083": 6, "054": 6, "083": 6, "0239005731675412": 6, "160": 6, "191": 6, "178901060853144": 6, "27137790098830755": 6, "2710284516876423": 6, "361": 6, "6273152492418945": 6, "438": 6, "496": 6, "1907041717628215": 6, "3209075619139279": 6, "545": 6, "2709423025014604": 6, "609": 6, "3133943310851415": 6, "657": 6, "257769959239938": 6, "735": 6, "40359637945134746": 6, "817": 6, "4127882135896648": 6, "905": 6, "9246005133276612": 6, "003": 6, "8908739215746116": 6, "035": 6, "107536316777608": 6, "067": 6, "098": 6, "054360360588395": 6, "129": 6, "5428179904345867": 6, "5696273642213351": 6, "194": 6, "27099769667470536": 6, "1580741708125475": 6, "2709564785634315": 6, "10900413894771653": 6, "268": 6, "2709799905898163": 6, "13705914456987853": 6, "27097230608092054": 6, "12790870116376127": 6, "337": 6, "2709499903064464": 6, "10123180962907431": 6, "2710895886052581": 6, "26565663774320425": 6, "411": 6, "2708711012023424": 6, "005637048678674678": 6, "27092322402109364": 6, "06902647427781451": 6, "482": 6, "2712140349882": 6, "4076704953178294": 6, "515": 6, "27090080367174": 6, "04187106800188596": 6, "550": 6, "27086925247190047": 6, "003371853599610078": 6, "2708933298483799": 6, "032781796328385376": 6, "623": 6, "27087205624489635": 6, "006806773659187283": 6, "658": 6, "2708869511176179": 6, "025009489814943348": 6, "695": 6, "2711465077924297": 6, "3311125627707556": 6, "2708756855936628": 6, "011249102380159387": 6, "766": 6, "27087301924224993": 6, "007985924302396141": 6, "802": 6, "2708685399954944": 6, "00249856291483601": 6, "27121879554836553": 6, "4130244908975993": 6, "880": 6, "2708693196600531": 6, "0034541978803366022": 6, "918": 6, "27110195265802334": 6, "27994943662091765": 6, "956": 6, "2708682582859318": 6, "0021532199144365088": 6, "27087024523986086": 6, "0045884092728113585": 6, "27087351807632193": 6, "008596600952859433": 6, "2710818633795896": 6, "2567049271070902": 6, "109": 6, "27103241786565463": 6, "1990111983307052": 6, "146": 6, "2710350879598171": 6, "20214459724424078": 6, "183": 6, "2708688328221868": 6, "00285750520671645": 6, "27100832234449684": 6, "17064008990759916": 6, "258": 6, "27268613236193845": 6, "8725420109733135": 6, "296": 6, "27119617446689237": 6, "387533542012365": 6, "2708691110831552": 6, "0031985656730512953": 6, "27086852174155146": 6, "002476186542950981": 6, "27135383618835024": 6, "5626643670396761": 6, "449": 6, "2709819654433871": 6, "1394077979875128": 6, "488": [6, 8], "2718548944510965": 6, "0858347526799794": 6, "1508084699212935": 6, "03329943145150872": 6, "00025672309762227527": 6, "27249853374634975": 6, "702026434077893": 6, "604": 6, "27095660957755363": 6, "10916094511173127": 6, "643": 6, "27102160995407715": 6, "18630665884100353": 6, "681": 6, "27095708822582026": 6, "10973377642487026": 6, "27088222008661084": 6, "019235980282946118": 6, "762": 6, "2708703086029017": 6, "004666043957133775": 6, "799": 6, "27095279044622245": 6, "1045877457096882": 6, "840": 6, "2709408288690431": 6, "09023455456986404": 6, "9289218260898663": 6, "8200088368788958": 6, "917": 6, "27086675101898655": 6, "00030502148265565063": 6, "957": 6, "2710491243757999": 6, "21858260742423916": 6, "001": 6, "1491615840508995": 6, "024725853754515203": 6, "040": 6, "2709462479577586": 6, "0967427718847167": 6, "default_studi": 6, "252": 6, "332": 6, "3501": 6, "942111261296": 6, "5451": 6, "207265576796": 6, "459": 6, "1049201007814": 6, "9964": 6, "541364058234": 6, "3543": 6, "953608539901": 6, "570": 6, "6837": 6, "057544630979": 6, "613": 6, "2507": 6, "1794330606067": 6, "650": 6, "21534": 6, "719219668405": 6, "726": 6, "2899": 6, "736555614694": 6, "294e": 6, "760e": 6, "21674": 6, "445000284228": 6, "1049203123567": 6, "1049192609138": 6, "877": 6, "3630": 6, "72768093756": 6, "907": 6, "3431": 6, "942816967268": 6, "6908": 6, "462045154488": 6, "5964": 6, "65935954044": 6, "036": 6, "21070": 6, "107195348774": 6, "065": 6, "4977": 6, "068508997133": 6, "133": 6, "8873": 6, "669262669626": 6, "21387": 6, "63697424318": 6, "202": 6, "9958": 6, "573006910125": 6, "5182695600183": 6, "428": 6, "20684": 6, "56412138056": 6, "544": 6, "150": 6, "3435882510586": 6, "571": 6, "7068": 6, "705383113378": 6, "599": 6, "7150": 6, "482090052133": 6, "077": 6, "203": 6, "93637462922368": 6, "2570": 6, "5111262532305": 6, "21987": 6, "659957192194": 6, "9889": 6, "493204596083": 6, "413": 6, "7172": 6, "208490771303": 6, "9804": 6, "512701665093": 6, "555": 6, "585": 6, "9165": 6, "74081120673": 6, "0280270800017": 6, "161": 6, "1602933782954": 6, "888460860864": 6, "864": 6, "8414": 6, "932694243476": 6, "2270": 6, "540799189147": 6, "10383": 6, "79559309305": 6, "20815": 6, "025469865475": 6, "206": 6, "7560385808573": 6, "5264": 6, "4700789389035": 6, "3668": 6, "255064135424": 6, "156": 6, "12174877890536": 6, "793408178086295": 6, "99902820845678": 6, "157": 6, "371632749506": 6, "88307313087517": 6, "140915461519354": 6, "218": 6, "153": 6, "66773675231477": 6, "177324126813716": 6, "77906017834145": 6, "186": 6, "52056745848623": 6, "4565714180547": 6, "6710444346508": 6, "294": 6, "30976119334312": 6, "62916671166313": 6, "023639423189294": 6, "053696900694": 6, "914617418880486": 6, "31140591484044": 6, "201": 6, "33573874994386": 6, "569769302718845": 6, "5781354926491789": 6, "412": 6, "190": 6, "1384885119049": 6, "87666716965626": 6, "2537791489618": 6, "451": 6, "076949848299": 6, "9559574710535281": 6, "0032830967319653665": 6, "764974036324": 6, "03910427457823": 6, "406811480459925": 6, "164": 6, "4477304958181": 6, "701690847791482": 6, "819274780536123": 6, "567": 6, "87939164358104": 6, "32187661108304": 6, "660320437878754": 6, "607": 6, "01705178481896": 6, "61397716361812": 6, "603665957830847": 6, "645": 6, "155": 6, "73257312230092": 6, "759645965959294": 6, "503212714246787": 6, "684": 6, "154": 6, "46848394144124": 6, "8546740801317": 6, "35327336610912": 6, "724": 6, "20421802817864": 6, "57596974747163": 6, "84756262407801": 6, "51233215278089": 6, "3564642040401464": 6, "5034542273159819": 6, "207": 6, "68667089892196": 6, "034895878929095": 6, "03653571911285094": 6, "842": 6, "102": 6, "52277054278186": 6, "01961499216484045": 6, "670937191883546": 6, "881": 6, "28722475694815": 6, "012434370509176538": 6, "34222704431493": 6, "921": 6, "87402050281146": 6, "008452015347522093": 6, "914863578437455": 6, "38847505937936": 6, "01573542234868893": 6, "99307522974174": 6, "999": 6, "96336195786391": 6, "009845516063879428": 6, "59422914099683": 6, "19345618324213": 6, "009382525091504246": 6, "35573659237662": 6, "080": 6, "30772721342525": 6, "010579672066291478": 6, "35550323165882": 6, "23970902543148": 6, "013369359066405863": 6, "4744102498801": 6, "34331248758777": 6, "011398351701814368": 6, "54146340620301": 6, "195": 6, "104535853341": 6, "011708779850509646": 6, "682286191624579e": 6, "0653774146952": 6, "009806826677473646": 6, "90274406278985": 6, "64646042813787": 6, "0038598153381434685": 6, "20918134828555": 6, "68420472011734": 6, "0032474576673554513": 6, "35551178979624": 6, "85985201823172": 6, "003187930738019005": 6, "29431603544847": 6, "399": 6, "21583898009355": 6, "003122319313153475": 6, "83526418992966": 6, "437": 6, "34787242859676": 6, "002781955938462633": 6, "76228981520067": 6, "478": 6, "70914272129673": 6, "0023173546614751305": 6, "3000082904498813": 6, "519": 6, "10492031097328": 6, "002606064524407": 6, "7861330234653922e": 6, "1049154281806": 6, "0029210589377408366": 6, "200933937391094e": 6, "10492028002287": 6, "06431564840324226": 6, "2981641934644904e": 6, "56066541774658": 6, "0010848843623839548": 6, "151493073951163": 6, "76337597039308": 6, "004134805589645341": 6, "88115336652716": 6, "58009587759925": 6, "004763418454688096": 6, "02920758025023": 6, "113": 6, "35230417583477": 6, "0009098023238189749": 6, "57100980886017": 6, "809": 6, "30807467406214": 6, "03739791555156691": 6, "12818940557025": 6, "850": 6, "44100655116532": 6, "006380481141720477": 6, "4882351186755": 6, "891": 6, "35181001564942": 6, "0036244007454981787": 6, "608797806921866": 6, "124": 6, "3719027482892": 6, "0014198536004321608": 6, "05588994284273": 6, "28568052794907": 6, "005434972462746285": 6, "215759789700954": 6, "06": 6, "018": 6, "20325": 6, "66479442037": 6, "9696417046589247": 6, "132": 6, "21507621375022": 6, "0004528978867024753": 6, "80386923876023": 6, "85570350846885": 6, "0016948043699497222": 6, "455627755557016": 6, "contrast": [6, 7], "relplot": 6, "col": [6, 7], "facet_kw": 6, "axisgrid": [6, 7], "facetgrid": 6, "0x7fb3797f6b30": 6, "noramlis": 6, "unlog": 6, "yield": [6, 7, 12, 13], "mse": 6, "1126": 6, "56968721": 6, "20237903": 6, "revers": [6, 7, 12, 14], "onto": 6, "action": 6, "importantli": 6, "easili": [6, 7], "94824194": 6, "92008694": 6, "instruct": 6, "untransform": 6, "wish": 6, "cut": [6, 7], "10um": 6, "ptr_config_log_transform": 6, "ptr_transformed_studi": 6, "ptr_and_transform_exampl": 6, "518": 6, "002341918451736245": 6, "805": 6, "0024908979029632677": 6, "847": 6, "007901407671048116": 6, "888": 6, "00496231674623194": 6, "0026848278110363512": 6, "0010872728889471893": 6, "000": 6, "008706109201510277": 6, "027": 6, "093": 6, "002999462459688867": 6, "00825680029907454": 6, "148": 6, "007901407993550248": 6, "007901405163828307": 6, "0021653695362066753": 6, "002869169486971014": 6, "0010855652626111146": 6, "00550533804299308": 6, "002236800860454562": 6, "006105985607235417": 6, "004846526544994462": 6, "006964668794465202": 6, "670": 6, "699": 6, "008384326901042542": 6, "730": 6, "001082194093844804": 6, "761": 6, "0010807084256204563": 6, "948": 6, "005505338042993082": 6, "979": 6, "005247934991526694": 6, "0010803393728928605": 6, "005218354425190125": 6, "138": 6, "004999207507691546": 6, "0015694919308122948": 6, "326": 6, "0019757694194001384": 6, "421": 6, "002341918451736244": 6, "453": 6, "00368328296527152": 6, "521": 6, "003412828259848677": 6, "551": 6, "004412110711416997": 6, "616": 6, "647": 6, "0021743798524909573": 6, "0022761245849848527": 6, "0010805768178458735": 6, "750": 6, "001080400188305814": 6, "784": 6, "0010805009783570441": 6, "0010804680472500541": 6, "0010803723579987025": 6, "890": 6, "001080969596032512": 6, "925": 6, "0010800333715082816": 6, "0010802574700236845": 6, "0010814994986419817": 6, "037": 6, "001080161136846237": 6, "071": 6, "0010800254136811547": 6, "107": 6, "0010801290036870739": 6, "001080037482216557": 6, "179": 6, "0010801015705851358": 6, "0010812122378841013": 6, "0010800531021304936": 6, "291": 6, "00108004162698813": 6, "328": 6, "0010800223466649803": 6, "364": 6, "0010815197263834202": 6, "0010800257029027847": 6, "0010810223438672223": 6, "0010800211339555509": 6, "513": 6, "0010800296871141684": 6, "0010800437739166451": 6, "0010809366267195716": 6, "627": 6, "001080725386603206": 6, "0010807368035830652": 6, "704": 6, "0010800236072155854": 6, "741": 6, "0010806223050773966": 6, "779": 6, "0010876516369772728": 6, "00108142358144501": 6, "857": 6, "0010800248050489667": 6, "894": 6, "001080022268085466": 6, "0010820922958715991": 6, "969": 6, "0010805094397523254": 6, "007": 6, "0010841993753324146": 6, "007899735988203994": 6, "086": 6, "0010868762004637347": 6, "001080400750193767": 6, "163": 6, "0010806791616300314": 6, "0010804028029753213": 6, "0010800812188506515": 6, "0010800299598580359": 6, "0010803843696362083": 6, "001080333048974234": 6, "394": [6, 7], "432": 6, "001080014645182176": 6, "473": 6, "0010807968027851892": 6, "516": 6, "007907028395366658": 6, "553": 6, "0010803563024666294": 6, "inted": 6, "opter": 6, "probabilst": 6, "lossi": 6, "anywai": 6, "intention": 6, "clip": [6, 7], "cannot": 6, "timepoint": 6, "aux_column": [6, 8], "accord": [6, 7, 8], "aux_col_config": 6, "aux_descriptors_dataset": 6, "train_with_conc": 6, "aux1": 6, "aux_col_studi": 6, "covariate_exampl": 6, "aux1_model": 6, "323": 6, "5186": 6, "767663956718": 6, "522": 6, "4679": 6, "740824270968": 6, "575": 6, "4890": 6, "6705099499995": 6, "3803": 6, "9324375833753": 6, "667": 6, "3135": 6, "6497388676926": 6, "2518812859375": 6, "778": 6, "4309": 6, "124112370974": 6, "30159424580074": 6, "897": 6, "4357": 6, "02827013125": 6, "1437929337522": 6, "45281013": 6, "shape": [6, 7], "thrown": [6, 8], "prediciton": 6, "regardless": 6, "utilis": [6, 7], "seper": 6, "vector_covariate_config": 6, "precomputed_descriptor": 6, "train_with_fp": 6, "aux_transform": [6, 8], "vector_covariate_studi": 6, "vector_aux_exampl": 6, "vector_covariate_model": 6, "2200": 6, "6817959410578": 6, "011994365911634164": 6, "95660880078": 6, "029071783512897825": 6, "5798": 6, "564494725643": 6, "022631709120790048": 6, "2198637677605415": 6, "972": 6, "2899178898048": 6, "8916194399474267": 6, "556": 6, "3336440433073": 6, "5914093983615214": 6, "614": 6, "653": 6, "3036472748931": 6, "6201811079699818": 6, "3807": 6, "8035919667395": 6, "901e": 6, "892e": 6, "914e": 6, "752": 6, "5019": 6, "459500770764": 6, "1376436589359351": 6, "4017711284796": 6, "893": 6, "771": 6, "797115414836": 6, "74340620175102": 6, "train_smil": [6, 8], "train_i": [6, 8], "train_aux": [6, 8], "test_smil": [6, 8], "test_i": [6, 8], "test_aux": [6, 8], "512": 6, "legth": 6, "39754917": 6, "465": 6, "06352766": 6, "52031134": 6, "341": 6, "89875316": 6, "371": 6, "5516046": 6, "85042171": 6, "436": 6, "33406203": 6, "91439129": 6, "80585907": 6, "346": 6, "48565041": 6, "protein": [6, 12, 14], "alongsid": 6, "chemic": [6, 7, 12, 13], "sequenc": [6, 12, 14], "former": 6, "wherea": 6, "latter": [6, 7], "interact": 6, "basi": [6, 7], "toxinpred3": 6, "No": [6, 9, 12], "demponstr": 6, "zscale_covariate_config": 6, "zscale_covariate_studi": 6, "zscale_aux_exampl": 6, "zscale_covariate_model": 6, "458": 6, "8886986575836505": 6, "kneighborsclassifier_algorithm_hash": 6, "e51ca55089f389fc37a736adb2aa0e42": 6, "metric__e51ca55089f389fc37a736adb2aa0e42": 6, "n_neighbors__e51ca55089f389fc37a736adb2aa0e42": 6, "weights__e51ca55089f389fc37a736adb2aa0e42": 6, "unlik": 6, "21269231": 6, "91153846": 6, "29038462": 6, "69846154": 6, "22230769": 6, "99521739": 6, "59826087": 6, "34695652": 6, "03086957": 6, "13391304": 6, "08083333": 6, "6125": 6, "82916667": 6, "05083333": 6, "56083333": 6, "02178571": 6, "91785714": 6, "45392857": 6, "37642857": 6, "03107143": 6, "93357143": 6, "78964286": 6, "62928571": 6, "50857143": 6, "50107143": 6, "1232": 6, "3364": 6, "2328": 6, "1368": 6, "2304": 6, "7062": 6, "x_": 6, "vmin": 6, "vmax": 6, "cmap": 6, "spectral": 6, "248bit": 6, "128bit": 6, "minimz": 6, "consist": 6, "generaliz": 6, "minimize_std_dev": 6, "minimise_std_dev": [6, 9], "std": [6, 7, 12, 14], "dev": [6, 7], "example_multi": 6, "parameter_analysi": 6, "set_metric_nam": 6, "740": 6, "4008740644240856": 6, "9876203329634794": 6, "331": 6, "3561484909673425": 6, "9875061220991906": 6, "472": 6, "7856521165563053": 6, "21863029956806662": 6, "525": 6, "9125905675311808": 6, "7861693342190089": 6, "603": 6, "5238765412750027": 6, "2789424384877304": 6, "5348363849100434": 6, "5741725628917808": 6, "746": 6, "0072511048320134": 6, "2786318125997387": 6, "9625764609276656": 6, "27575381401822424": 6, "1114006274062536": 6, "7647766019001522": 6, "7801680863916906": 6, "2725738454485389": 6, "121": 6, "785652116470164": 6, "21863029955530786": 6, "152": 6, "785651973436432": 6, "21863032832257323": 6, "6101359993004856": 6, "3011280543457062": 6, "209": 6, "5361950698070447": 6, "23560786523195643": 6, "5356113574175657": 6, "5769721187181905": 6, "543430366921729": 6, "514747412346662": 6, "508": [6, 8], "5194661889628072": 6, "40146744515282495": 6, "659": 6, "659749443628722": 6, "6659085938841998": 6, "876": 6, "1068495306229729": 6, "24457822094737378": 6, "8604898820838102": 6, "7086875504668667": 6, "949": 6, "5919869916997383": 6, "2367498627927979": 6, "2497762395862362": 6, "10124660026536195": 6, "205": 6, "study_name_1": 6, "669": 6, "0621601907738047": 6, "2749020946925899": 6, "xxx": 6, "values_neg_mean_squared_error": 6, "values_standard": 6, "twinx": 6, "r": 6, "floor": 6, "ceil": 6, "align": 6, "set_ytick": 6, "linspac": 6, "set_xtick": 6, "text": [6, 7, 8, 12], "pareto": 6, "front": 6, "plot_pareto_front": 6, "plot_param_import": 6, "dictionari": [6, 10], "ordereddict": 6, "descend": 6, "algortihm": 6, "impact": 6, "durat": 6, "total_second": 6, "target_nam": 6, "relationship": 6, "plot_parallel_coordin": [6, 8, 9, 11], "param": [6, 7, 9, 10], "taken": [6, 7], "101": 6, "precomputed_config": 6, "precomputed_studi": 6, "precomputed_exampl": 6, "precomputed_model": 6, "785": 6, "788": 6, "3014": 6, "274803630188": 6, "471088599086": 6, "03592375122963953": 6, "511": 6, "3029": 6, "113810544919": 6, "8153295905650357": 6, "4358": 6, "575772003129": 6, "unseen": 6, "caus": 6, "111": 6, "new_molecul": 6, "112": 6, "tempfil": 6, "temp": [6, 7], "store": [6, 7, 11], "temporari": [6, 10], "extract": 6, "1st": 6, "example_fp": 6, "namedtemporaryfil": 6, "temp_fil": 6, "len": [6, 7], "to_csv": 6, "292": 6, "65709987": 6, "64327077": 6, "common": 7, "proper": 7, "optuna_az": 7, "process": [7, 8], "draw": 7, "ipythonconsol": 7, "ipython": 7, "displai": 7, "os": 7, "listdir": 7, "isfil": 7, "walk": 7, "handi": 7, "var": 7, "1v": 7, "9y_z128d7gvcp8mf8q0pz3ch0000gq": 7, "ipykernel_82497": 7, "796203442": 7, "deprecationwarn": 7, "deprec": 7, "med": 7, "titles": 7, "fontsiz": 7, "labels": 7, "xtick": 7, "ytick": 7, "rcparam": 7, "whitegrid": 7, "set_styl": 7, "white": 7, "inlin": 7, "3336016810": 7, "matplotlibdeprecationwarn": 7, "ship": 7, "v0_8": 7, "api": [7, 8], "boolean": 7, "nomin": 7, "convert": [7, 12], "conduct": 7, "primarydf": 7, "loadsdf": 7, "inchi": 7, "skeletonspher": 7, "nm": 7, "id": 7, "romol": 7, "ic50": 7, "\u00b5m": 7, "c1ccc2c": 7, "co2": 7, "004320939": 7, "1s": 7, "c8h7no2": 7, "c10": 7, "qrcgftxrxymjo": 7, "uhfffaoysa": 7, "86075": 7, "kinas": 7, "p38": 7, "rdchem": 7, "0x7fd1c0d34040": 7, "c1ccc": 7, "ccc2ccccc2occ3ccc": 7, "882397308": 7, "c22h20o3": 7, "c23": 7, "ytdaoqyeyfcini": 7, "89637": 7, "kd": 7, "retinoid": 7, "receptor": 7, "0x7fd1f8f965e0": 7, "130299026": 7, "0x7fd1f8f96650": 7, "nh": 7, "48148606": 7, "c9h7no": 7, "c11": 7, "lisfmebwquvkpj": 7, "n93": 7, "n82": 7, "n65": 7, "n36": 7, "n33": 7, "ki": 7, "nki": 7, "carbon": 7, "anhydras": 7, "xii": 7, "ncarbon": 7, "0x7fd1f8f966c0": 7, "nc1ccccn1": 7, "c7h8n2o": 7, "h2": 7, "5h": 7, "qrokotbwfzitjz": 7, "86233": 7, "nicotin": 7, "phosphoribosyltransferas": 7, "0x7fd1f8f96730": 7, "renam": 7, "conveni": [7, 8, 9, 12], "rest": 7, "moltosmil": 7, "isomericsmil": 7, "c1coc2ccccc2n1": 7, "004321": 7, "coc2ccccc2ccc2ccccc2": 7, "882397": 7, "130299": 7, "c1ccc2ccccc2": 7, "481486": 7, "stick": 7, "engin": 7, "assum": [7, 12, 13], "stage": 7, "slightli": 7, "pose": 7, "wise": 7, "uniqu": 7, "outlin": 7, "occurr": 7, "preserv": 7, "vari": 7, "recommend": 7, "abil": 7, "being": 7, "df_po": 7, "dedup": [7, 12], "df_rnd": 7, "df_max": 7, "df_avg": 7, "df_med": 7, "deduplidc": 7, "397": 7, "indici": 7, "coc1cc2ncnc": 7, "nc3ccc": 7, "scc4ccccc4": 7, "cl": 7, "c3": 7, "c2cc1oc": 7, "282579": 7, "912929": 7, "cc1cccc": 7, "nc2ncnc3ccc": 7, "c4ccccc4": 7, "cc23": 7, "n2cc": 7, "cc2c": 7, "nc2cccc": 7, "n2": 7, "065502": 7, "390": 7, "958607": 7, "392": 7, "oc2cccc": 7, "cn1nc": 7, "c2cnc": 7, "c3ccc": 7, "nc1c1": 7, "oc1nc": 7, "oc2cc": 7, "c3ccccc3": 7, "c3cccc": 7, "cn": 7, "936291": 7, "uniquify_by_posit": 7, "uniquify_randomli": 7, "essenc": 7, "uniquify_by_valu": 7, "highest": 7, "minim": [7, 9], "densiti": 7, "dpi": 7, "kdeplot": 7, "shade": 7, "orang": 7, "ndigit": 7, "blue": 7, "keepaverag": 7, "deeppink": 7, "hold": [7, 8], "assess": 7, "aim": 7, "simpli": 7, "sai": 7, "veri": 7, "intern": [7, 10], "resembl": 7, "easiest": 7, "especi": 7, "reli": 7, "stochast": 7, "initi": [7, 8, 9], "train_ran": 7, "test_ran": 7, "time_column": 7, "old": 7, "datapoint": [7, 10, 12, 13], "accru": 7, "entri": [7, 12, 13], "timestamp": 7, "top": 7, "df_med_tempor": 7, "fake": 7, "insert": 7, "nccccccoc1ccc2c": 7, "n1cc": 7, "cc1c": 7, "684240": 7, "1037": 7, "481464": 7, "1036": 7, "c1cn": 7, "n2c": 7, "nc3cccc": 7, "n3": 7, "cc3cc3": 7, "732625": 7, "1035": 7, "568332": 7, "1034": 7, "790259": 7, "1033": 7, "train_tempor": 7, "test_tempor": 7, "highli": 7, "skew": 7, "respcol": 7, "fd": [7, 12, 13], "histogram": [7, 12, 13], "determin": [7, 12, 13], "balanc": 7, "train_str": 7, "test_str": 7, "realist": 7, "deplopi": 7, "emul": [7, 12, 13], "hop": 7, "opportun": 7, "seri": 7, "push": 7, "domain": 7, "realibl": 7, "challeng": 7, "scaf_split": 7, "train_sca": 7, "test_sca": 7, "ground": 7, "df_val": 7, "roughli": [7, 9], "evid": 7, "pronounc": 7, "dodgerblu": 7, "middl": 7, "saffold": 7, "discuss": 7, "propreti": 7, "endpoint": 7, "routin": 7, "linearis": 7, "variat": 7, "gaussian": 7, "realiti": 7, "nearli": 7, "exhibit": 7, "superior": 7, "wide": 7, "xc50_data": 7, "keepallnodedupl": [7, 12], "pxc50_data": 7, "zip": 7, "jointplot": 7, "suptitl": 7, "plot_margin": 7, "rugplot": 7, "crimson": 7, "height": 7, "clip_on": 7, "jointgrid": 7, "0x7fd1f984f670": 7, "heteroscedast": 7, "homoscedast": 7, "transorm": 7, "0x7fd1eb924700": 7, "logartihm": 7, "power": [7, 12, 14], "um": 7, "dataset_transform": 7, "THe": 7, "0x7fd1db908550": 7, "had": 7, "reverse_transform": [7, 12], "0x7fd1bc05b4c0": 7, "mervin": 7, "framework": 7, "somewher": 7, "unavoid": 7, "ideal": 7, "deviat": [7, 12, 14], "\u03c3": 7, "heterogen": 7, "versu": 7, "assimil": 7, "hypothesi": 7, "degre": 7, "p_": 7, "activityt": 7, "cumul": 7, "cdf": 7, "eq": 7, "equal": [7, 9], "delta": 7, "vec": 7, "frac": 7, "erf": 7, "overrightarrow": 7, "sigma": 7, "concret": 7, "arbitrari": 7, "unknown": 7, "therefor": 7, "schemat": 7, "lookup": 7, "tabl": 7, "sd": 7, "scenario": [7, 12, 13], "philosoph": 7, "delimit": [7, 12, 14], "operand": 7, "censor": 7, "far": 7, "granular": 7, "therebi": 7, "combin": 7, "becom": 7, "jcheminf": 7, "biomedcentr": 7, "1186": 7, "s13321": 7, "00539": 7, "sec12": 7, "pxc50_threshold": 7, "pxc50_std": 7, "exmapl": 7, "ptr_data": 7, "gather": 7, "certainti": 7, "lower_reproduc": 7, "upper_reproduc": 7, "dataload": 7, "somewhat": 7, "invert": 7, "bell": 7, "kde": 7, "behav": 7, "patch": 7, "mpatch": 7, "line2d": 7, "ax_joint": 7, "axhlin": 7, "linestyl": 7, "ax_marg_x": 7, "axvlin": 7, "ax_marg_i": 7, "region": 7, "uncert_color": 7, "purpl": 7, "uncert_region": 7, "rectangl": 7, "fill": 7, "add_patch": 7, "box": 7, "nthreshold": 7, "nptr": 7, "nregion": 7, "fancybox": 7, "borderaxespad": 7, "leg": 7, "get_legend": 7, "legendhandl": 7, "set_color": 7, "set_alpha": 7, "tight": 7, "layout": 7, "subplots_adjust": 7, "set_size_inch": 7, "1725493911": 7, "attribut": 7, "minor": 7, "legend_handl": 7, "dash": 7, "histrogram": 7, "aforement": 7, "ptrtransform": [7, 12, 14], "ptr_transform": 7, "histplot": 7, "stat": 7, "scipi": 7, "resp_col": [7, 8], "pearsonr": 7, "std_df": 7, "groupbi": 7, "mdn_df": 7, "std_vs_median": 7, "suffix": 7, "_std": 7, "_median": 7, "dropna": 7, "activity_std": 7, "activity_median": 7, "088539": 7, "674782": 7, "265123": 7, "138620": 7, "157605": 7, "stdev": 7, "stat_func": 7, "plot_joint": 7, "zorder": 7, "0x7fd1def2f8b0": 7, "signific": 7, "assumpt": 7, "fulfil": 7, "ptr_train_ran": 7, "ptr_test_ran": 7, "ptr_train_str": 7, "ptr_test_str": 7, "ptr_train_tempor": 7, "ptr_test_tempor": 7, "ptr_train_sca": 7, "ptr_test_sca": 7, "xlim": 7, "pypoetri": 7, "virtualenv": 7, "_qsktrft": 7, "py3": 7, "warn_singular": 7, "msg": 7, "peak": 7, "extem": 7, "dsitribut": 7, "awai": 7, "bias": 7, "enum": [8, 9, 10, 12], "building_configuration_enum": [8, 10], "configuration_enum": [8, 10], "interface_enum": [8, 10], "model_runner_enum": [8, 10], "objective_enum": [8, 10], "optimization_configuration_enum": [8, 10], "prediction_configuration_enum": [8, 10], "return_values_enum": [8, 10], "visualization_enum": [8, 10], "merge_train_and_test_data": 8, "isvalid": 8, "read_data": 8, "filenam": [8, 10], "smiles_col": [8, 10, 12, 13], "aux_col": 8, "invalid": 8, "pars": [8, 9, 11], "tupl": [8, 12, 13], "ambigu": 8, "smiles_": 8, "y_": [8, 10, 12], "aux_": 8, "factori": [8, 9], "intermediate_training_dataset_fil": 8, "intermediate_test_dataset_fil": 8, "get_merged_set": 8, "check_set": 8, "scalingfittingerror": 8, "descriptor_str": 8, "insuffici": 8, "unfittedsklearnscla": 8, "novalidsmil": 8, "mol_from_smi": 8, "numpy_from_rdkit": 8, "dtype": [8, 12], "moldescriptor": 8, "nameparameterdataclass": [8, 9, 12], "abc": [8, 9, 12], "abstract": [8, 9, 12], "parallel_compute_descriptor": 8, "n_core": 8, "parallel": 8, "rdkitdescriptor": 8, "liter": [8, 9, 12, 13], "pathlib": 8, "get_fitted_scaler_for_fp": 8, "saved_param": 8, "get_fitted_scal": 8, "set_unfitted_scaler_data": 8, "fp_info": 8, "canonicalsmil": 8, "scaffold": [8, 12, 13], "genericscaffold": 8, "validdescriptor": 8, "descriptor_from_config": 8, "return_failed_idx": 8, "configur": [8, 9, 10, 11], "score_al": 8, "get_scor": 8, "score_all_smil": 8, "get_train_test_scor": 8, "get_merged_train_scor": 8, "get_ecfp_fpinfo": 8, "get_ecfpcount_fpinfo": 8, "explain_ecfp": 8, "len_feat": 8, "get_fp_info": 8, "exp_df": 8, "descript": [8, 9], "fp_idx": 8, "strt_idx": 8, "runshap": 8, "x_pred": 8, "shap": 8, "shapexplain": 8, "popul": 8, "explainpr": 8, "shallow": 8, "validate_cls_input": 8, "pi_zero": 8, "pr": 8, "melloddi": 8, "sparsechem": 8, "imbal": 8, "bedroc_scor": [8, 9], "truchon": 8, "j": 8, "bayli": 8, "screen": 8, "bad": 8, "recognit": 8, "2007": 8, "concord": 8, "statist": 8, "qualiti": 8, "harald": 8, "On": 8, "surviv": 8, "bound": 8, "2008": 8, "1209": 8, "1216": 8, "posterior": 8, "mark": 8, "abstractmethod": [8, 9], "predict_uncert": 8, "quantifi": 8, "qsartunamodel": 8, "nonetyp": [8, 9], "sent": 8, "get_metadata": 8, "train_scor": [8, 11], "test_scor": [8, 10, 11], "get_transform": 8, "perform_ptr": 8, "wrap_model": 8, "save_model": 8, "novaliddescriptor": 8, "null_scor": 8, "predict_pl": 8, "model_path": 8, "inference_path": 8, "argserror": 8, "issu": [8, 12], "uncertaintyerror": 8, "correctli": 8, "auxcovariatemiss": 8, "precomputederror": 8, "validate_arg": 8, "validate_uncertainti": 8, "check_precomp_arg": 8, "validate_set_precomput": 8, "validate_aux": 8, "doctitl": 8, "docstr": 8, "type_base_schema": 8, "tp": 8, "wyfo": 8, "json_schema": 8, "patch_schema_gener": 8, "patch_schema_optunaz": 8, "split_optim": 8, "base_chemprop_param": 8, "alg": [8, 9], "pop": 8, "fix": [8, 9], "run_studi": 8, "storag": [8, 11], "trial_number_offset": [8, 10], "log_scor": 8, "main_scor": 8, "outfnam": 8, "plot_by_configur": 8, "conf": 8, "plot_slic": [8, 9, 11], "folder_path": 8, "file_format": [8, 9, 11], "png": [8, 9], "plot_contour": [8, 9, 11], "static": 8, "plot_histori": [8, 9, 11], "set_build_cach": 9, "preexist": 9, "remove_algo_hash": 9, "buildconfig_from_tri": 9, "encode_nam": 9, "cenam": 9, "suggest_alg_param": 9, "suggest_aux_param": 9, "desc": 9, "check_invalid_descriptor_param": 9, "adaboostclassifierparamet": 9, "lassoparamet": 9, "kneighborsclassifierparamet": 9, "kneighborsregressorparamet": 9, "logisticregressionparamet": 9, "plsparamet": 9, "randomforestparamet": 9, "ridgeparamet": 9, "svcparamet": 9, "svrparamet": 9, "xgbregressorparamet": 9, "prfclassifierparamet": 9, "bootstrap": 9, "new_syn_data_frac": 9, "chempropregressorparamet": 9, "chempropclassifierparamet": 9, "chempropregressorpretrainedparamet": 9, "chemprophyperoptclassifierparamet": 9, "chemprophyperoptregressorparamet": 9, "calibratedclassifiercvparamet": 9, "mapieparamet": 9, "regressionscor": 9, "classificationscor": 9, "closer": 9, "greater": 9, "manhattan": 9, "trainarg": 9, "tanh": 9, "leakyrelu": 9, "prelu": 9, "selu": 9, "elu": 9, "turn": [9, 12, 13], "morgan_count": 9, "rdkit_2d": 9, "rdkit_2d_norm": 9, "mpnn_first_ffn": 9, "mpnn_last_ffn": 9, "linked_hidden_s": 9, "constrain": 9, "l3": 9, "init_lr_exp": 9, "final_lr_exp": 9, "warmup_epoch": 9, "l4": 9, "l5": 9, "l6": 9, "l7": 9, "l8": 9, "isanyof": 9, "obj": [9, 10], "detect_mode_from_alg": 9, "copy_path_for_scaled_descriptor": 9, "cv_split_strategi": 9, "use_cach": 9, "optuna_storag": 9, "set_cach": 9, "set_algo_hash": 9, "declar": 9, "pydant": 9, "don": 9, "classmethod": 9, "1024": 9, "shorter": 9, "output_fold": [9, 11], "use_xvfb": [9, 11], "imagefileformat": 9, "jpeg": 9, "jpg": 9, "svg": 9, "move_up_directori": 10, "attach_root_path": 10, "attach": 10, "loadjson": 10, "add_ellipsi": 10, "max_length": 10, "shorten_nam": 10, "mlflowcallback": 10, "tracking_uri": 10, "callback": 10, "uri": 10, "server": 10, "set_tracking_uri": 10, "prepare_tag": 10, "tag": 10, "tmp_buildconfig": 10, "create_depend": 10, "remove_schema_properti": 10, "add_boolean_guards_for_schema_properti": 10, "replacekei": 10, "input_": 10, "replacevalu": 10, "addsibl": 10, "delsibl": 10, "sibl": 10, "getref": 10, "context": 10, "recurs": 10, "nest": 10, "copytitl": 10, "oneof": 10, "replaceenum": 10, "singleton": 10, "const": 10, "addtitl": 10, "get_authorization_head": 10, "trackingdata": 10, "trial_numb": [10, 11], "trial_valu": 10, "trial_stat": 10, "all_cv_test_scor": 10, "dataclass": 10, "removeprefix": 10, "prefix": 10, "round_scor": 10, "internaltrackingcallback": 10, "progress": 10, "buildtrackingdata": 10, "response_column_nam": 10, "test_point": 10, "track_build": 10, "mkdict": 10, "load_df_from_fil": 10, "remove_failed_idx": 10, "failed_idx": 10, "md5_hash": 10, "md5": 10, "buildingconfigurationenum": 11, "configurationenum": 11, "general_hyperparamet": 11, "hyper_paramet": 11, "general_regressor": 11, "general_classifi": 11, "metadata_besttri": 11, "metadata_bestvalu": 11, "general_dis": 11, "general_paramet": 11, "task_optim": 11, "task_build": 11, "data_inputcolumn": 11, "data_responsecolumn": 11, "data_train": 11, "data_test": 11, "descriptors_avalon": 11, "descriptors_avalon_nbit": 11, "descriptors_ecfp": 11, "descriptors_ecfp_radiu": 11, "descriptors_ecfp_nbit": 11, "descriptors_ecfpcount": 11, "descriptors_ecfpcounts_radiu": 11, "descriptors_ecfpcounts_usefeatur": 11, "descriptors_pathfp": 11, "descriptors_pathfp_maxpath": 11, "descriptors_pathfp_fps": 11, "descriptors_maccskei": 11, "descriptors_unsc_physchem": 11, "descriptors_physchem": 11, "descriptors_physchem_rdkitnam": 11, "descriptors_unsc_jazzi": 11, "descriptors_jazzi": 11, "descriptors_jazzy_jazzynam": 11, "descriptors_precomput": 11, "descriptors_precomputed_fil": 11, "descriptors_precomputed_input_columnn": 11, "descriptors_precomputed_response_column": 11, "descriptors_unsc_zscal": 11, "descriptors_zscal": 11, "descriptors_smil": 11, "descriptors_smiles_and_si": 11, "descriptors_smiles_and_si_fil": 11, "descriptors_smiles_and_si_input_column": 11, "descriptors_smiles_and_si_aux_weight_pc": 11, "descriptors_sc": 11, "descriptors_scaled_descriptor": 11, "descriptors_scaled_descriptor_paramet": 11, "descriptors_composit": 11, "settings_mod": 11, "settings_mode_regress": 11, "settings_mode_classif": 11, "settings_cross_valid": 11, "settings_direct": 11, "settings_n_tri": 11, "settings_n_job": 11, "settings_shuffl": 11, "algorithms_low": 11, "algorithms_high": 11, "algorithms_q": 11, "algorithms_interface_sklearn": 11, "algorithms_interface_xgboost": 11, "algorithms_rfregressor": 11, "algorithms_rfclassifi": 11, "algorithms_rf_max_featur": 11, "algorithms_rf_max_depth": 11, "algorithms_rf_n_estim": 11, "algorithms_svr": 11, "algorithms_svr_c": 11, "algorithms_svr_gamma": 11, "algorithms_svc": 11, "algorithms_svc_c": 11, "algorithms_svc_gamma": 11, "algorithms_lasso": 11, "algorithms_lasso_alpha": 11, "algorithms_kneighborsclassifi": 11, "algorithms_kneighborsregressor": 11, "algorithms_kneighbors_n_neighbor": 11, "algorithms_kneighbors_metr": 11, "algorithms_kneighbors_weight": 11, "algorithms_ridg": 11, "algorithms_ridge_alpha": 11, "algorithms_plsregress": 11, "algorithms_plsregression_n_compon": 11, "algorithms_logisticregress": 11, "algorithms_logisticregression_solv": 11, "algorithms_logisticregression_c": 11, "algorithms_adaboostclassifi": 11, "algorithms_adaboostclassifier_n_estim": 11, "algorithms_adaboostclassifier_learning_r": 11, "algorithms_xgbregressor": 11, "algorithms_xgbregressor_max_depth": 11, "algorithms_xgbregressor_n_estim": 11, "algorithms_xgbregressor_learning_r": 11, "algorithms_prf": 11, "algorithms_prf_max_featur": 11, "algorithms_prf_max_depth": 11, "algorithms_prf_n_estim": 11, "algorithms_prf_minpysumleaf": 11, "algorithms_prf_use_py_gini": 11, "algorithms_prf_use_py_leaf": 11, "algorithms_chemprop": 11, "basechemprop": 11, "algorithms_chemprop_regressor": 11, "algorithms_chemprop_hyperopt_regressor": 11, "algorithms_chemprop_classifi": 11, "algorithms_chemprop_hyperopt_classifi": 11, "algorithms_chemprop_activ": 11, "algorithms_chemprop_aggreg": 11, "algorithms_chemprop_aggregation_norm": 11, "algorithms_chemprop_batch_s": 11, "algorithms_chemprop_depth": 11, "algorithms_chemprop_dropout": 11, "algorithms_chemprop_epoch": 11, "algorithms_chemprop_ensemble_s": 11, "algorithms_chemprop_features_gener": 11, "algorithms_chemprop_ffn_hidden_s": 11, "algorithms_chemprop_ffn_num_lay": 11, "algorithms_chemprop_frzn": 11, "algorithms_chemprop_final_lr_ratio_exp": 11, "algorithms_chemprop_hidden_s": 11, "algorithms_chemprop_num_it": 11, "algorithms_chemprop_init_lr_ratio_exp": 11, "algorithms_chemprop_max_lr_exp": 11, "algorithms_chemprop_pretrained_model": 11, "algorithms_chemprop_search_parameter_level": 11, "algorithms_chemprop_startup_random_it": 11, "startup_random_it": 11, "algorithms_chemprop_warmup_epochs_ratio": 11, "algorithms_calibratedclassifiercv": 11, "algorithms_calibratedclassifiercv_ensembl": 11, "algorithms_calibratedclassifiercv_estim": 11, "algorithms_calibratedclassifiercv_method": 11, "algorithms_calibratedclassifiercv_n_fold": 11, "algorithms_calibratedclassifiercv_param": 11, "calibrated_param": 11, "algorithms_mapi": 11, "algorithms_mapie_alpha": 11, "interfaceenum": 11, "sklearn_set": 11, "xgboost_set": 11, "chemprop_set": 11, "prf_set": 11, "calibrated_set": 11, "modelrunnerdataframeenum": 11, "modelrunn": 11, "objectiveenum": 11, "attribute_trial_train_scor": 11, "extra_column_besthit": 11, "besthit": 11, "optimizationconfigurationenum": 11, "predictionconfigurationenum": 11, "data_dataset": 11, "sklearnreturnvalueenum": 11, "cross_validate_fit_tim": 11, "fit_tim": 11, "cross_validate_score_tim": 11, "score_tim": 11, "cross_validate_test_scor": 11, "cross_validate_train_scor": 11, "xgboostreturnvalueenum": 11, "visualizationenum": 11, "visualization_regressor": 11, "visualization_classifi": 11, "visualization_use_xvfb": 11, "visualization_output_fold": 11, "visualization_file_format": 11, "visualization_plot": 11, "visualization_plots_histori": 11, "visualization_plots_contour": 11, "visualization_plots_parallel_coordin": 11, "visualization_plots_slic": 11, "optuna_system_attrs_numb": 11, "_number": 11, "optuna_system_attrs_intermediate_valu": 11, "intermediate_valu": 11, "optuna_system_attrs_trial_id": 11, "trial_id": 11, "studyuserattr": 11, "trialuserattr": 11, "trialparam": 11, "algorithm_hash": 11, "mlflowlogparam": 11, "sklearnsplitt": 12, "get_n_split": 12, "cvsplitter": 12, "although": 12, "underli": 12, "get_sklearn_splitt": 12, "n_split": 12, "repeat": [12, 13], "edg": [12, 13], "stratifiedshufflesplit": [12, 13], "revert": [12, 13], "empti": 12, "kfold": 12, "affect": 12, "consecut": 12, "fd_bin": 12, "11879": 12, "10297": 12, "adjac": 12, "downstream": 12, "nativ": 12, "histogramstratifiedshufflesplit": 12, "test_fract": 12, "groupingsplitt": 12, "column_nam": [12, 13], "butina_clust": [12, 13], "cluster": [12, 13], "butina": [12, 13], "make_scaffold_gener": [12, 13], "murcko": [12, 13], "hetero": [12, 13], "difficulti": [12, 13], "novel": [12, 13], "datatransform": 12, "logarithm": [12, 14], "base_dict": 12, "ufunc": 12, "base_neg": 12, "reverse_dict": 12, "exp": 12, "transform_df": 12, "transform_on": 12, "reverse_transform_df": 12, "reverse_transform_on": 12, "auxtransform": 12, "transfor": 12, "auxiliary_data": 12, "usabl": [12, 14]}, "objects": {"": [[8, 0, 0, "-", "optunaz"]], "optunaz": [[8, 0, 0, "-", "builder"], [9, 0, 0, "-", "config"], [8, 0, 0, "-", "datareader"], [8, 0, 0, "-", "descriptors"], [8, 0, 0, "-", "evaluate"], [8, 0, 0, "-", "explainability"], [8, 0, 0, "-", "metircs"], [8, 0, 0, "-", "model_writer"], [8, 0, 0, "-", "objective"], [8, 0, 0, "-", "optbuild"], [8, 0, 0, "-", "predict"], [8, 0, 0, "-", "schemagen"], [8, 0, 0, "-", "three_step_opt_build_merge"], [10, 0, 0, "-", "utils"], [8, 0, 0, "-", "visualizer"]], "optunaz.builder": [[8, 1, 1, "", "build"]], "optunaz.config": [[9, 2, 1, "", "Algorithm"], [9, 2, 1, "", "ModelMode"], [9, 2, 1, "", "NameParameterDataclass"], [9, 2, 1, "", "OptimizationDirection"], [9, 2, 1, "", "Task"], [9, 2, 1, "", "Visualization"], [9, 0, 0, "-", "build_from_opt"], [9, 0, 0, "-", "buildconfig"], [9, 0, 0, "-", "optconfig"]], "optunaz.config.ModelMode": [[9, 3, 1, "", "CLASSIFICATION"], [9, 3, 1, "", "REGRESSION"]], "optunaz.config.NameParameterDataclass": [[9, 4, 1, "", "new"]], "optunaz.config.OptimizationDirection": [[9, 3, 1, "", "MAXIMIZATION"], [9, 3, 1, "", "MINIMIZATION"]], "optunaz.config.Task": [[9, 3, 1, "", "BUILDING"], [9, 3, 1, "", "OPTIMIZATION"], [9, 3, 1, "", "PREDICTION"]], "optunaz.config.Visualization": [[9, 2, 1, "", "ImageFileFormat"], [9, 2, 1, "", "Plots"], [9, 3, 1, "", "file_format"], [9, 3, 1, "", "output_folder"], [9, 3, 1, "", "plots"], [9, 3, 1, "", "use_xvfb"]], "optunaz.config.Visualization.ImageFileFormat": [[9, 3, 1, "", "JPEG"], [9, 3, 1, "", "JPG"], [9, 3, 1, "", "PDF"], [9, 3, 1, "", "PNG"], [9, 3, 1, "", "SVG"]], "optunaz.config.Visualization.Plots": [[9, 3, 1, "", "plot_contour"], [9, 3, 1, "", "plot_history"], [9, 3, 1, "", "plot_parallel_coordinate"], [9, 3, 1, "", "plot_slice"]], "optunaz.config.build_from_opt": [[9, 1, 1, "", "buildconfig_from_trial"], [9, 1, 1, "", "check_invalid_descriptor_param"], [9, 1, 1, "", "encode_name"], [9, 1, 1, "", "remove_algo_hash"], [9, 1, 1, "", "set_build_cache"], [9, 1, 1, "", "suggest_alg_params"], [9, 1, 1, "", "suggest_aux_params"]], "optunaz.config.buildconfig": [[9, 2, 1, "", "AdaBoostClassifier"], [9, 2, 1, "", "Algorithm"], [9, 2, 1, "", "BuildConfig"], [9, 2, 1, "", "CalibratedClassifierCVWithVA"], [9, 2, 1, "", "ChemPropClassifier"], [9, 2, 1, "", "ChemPropHyperoptClassifier"], [9, 2, 1, "", "ChemPropHyperoptRegressor"], [9, 2, 1, "", "ChemPropRegressor"], [9, 2, 1, "", "ChemPropRegressorPretrained"], [9, 2, 1, "", "KNeighborsClassifier"], [9, 2, 1, "", "KNeighborsRegressor"], [9, 2, 1, "", "Lasso"], [9, 2, 1, "", "LogisticRegression"], [9, 2, 1, "", "Mapie"], [9, 2, 1, "", "PLSRegression"], [9, 2, 1, "", "PRFClassifier"], [9, 2, 1, "", "RandomForestClassifier"], [9, 2, 1, "", "RandomForestRegressor"], [9, 2, 1, "", "Ridge"], [9, 2, 1, "", "SVC"], [9, 2, 1, "", "SVR"], [9, 2, 1, "", "XGBRegressor"]], "optunaz.config.buildconfig.AdaBoostClassifier": [[9, 2, 1, "", "AdaBoostClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.AdaBoostClassifier.AdaBoostClassifierParameters": [[9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.buildconfig.Algorithm": [[9, 4, 1, "", "estimator"]], "optunaz.config.buildconfig.BuildConfig": [[9, 2, 1, "", "Metadata"], [9, 2, 1, "", "Settings"], [9, 3, 1, "", "algorithm"], [9, 3, 1, "", "data"], [9, 3, 1, "", "descriptor"], [9, 3, 1, "", "metadata"], [9, 3, 1, "", "settings"], [9, 3, 1, "", "task"]], "optunaz.config.buildconfig.BuildConfig.Metadata": [[9, 3, 1, "", "best_trial"], [9, 3, 1, "", "best_value"], [9, 3, 1, "", "cross_validation"], [9, 3, 1, "", "n_trials"], [9, 3, 1, "", "name"], [9, 3, 1, "", "shuffle"], [9, 3, 1, "", "visualization"]], "optunaz.config.buildconfig.BuildConfig.Settings": [[9, 3, 1, "", "direction"], [9, 3, 1, "", "mode"], [9, 3, 1, "", "n_trials"], [9, 3, 1, "", "scoring"], [9, 3, 1, "", "tracking_rest_endpoint"]], "optunaz.config.buildconfig.CalibratedClassifierCVWithVA": [[9, 2, 1, "", "CalibratedClassifierCVParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.CalibratedClassifierCVWithVA.CalibratedClassifierCVParameters": [[9, 3, 1, "", "ensemble"], [9, 3, 1, "", "estimator"], [9, 3, 1, "", "method"], [9, 3, 1, "", "n_folds"]], "optunaz.config.buildconfig.ChemPropClassifier": [[9, 2, 1, "", "ChemPropClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropClassifier.ChemPropClassifierParameters": [[9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.buildconfig.ChemPropHyperoptClassifier": [[9, 2, 1, "", "ChemPropHyperoptClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropHyperoptClassifier.ChemPropHyperoptClassifierParameters": [[9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.buildconfig.ChemPropHyperoptRegressor": [[9, 2, 1, "", "ChemPropHyperoptRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropHyperoptRegressor.ChemPropHyperoptRegressorParameters": [[9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.buildconfig.ChemPropRegressor": [[9, 2, 1, "", "ChemPropRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropRegressor.ChemPropRegressorParameters": [[9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "aux_weight_pc"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.buildconfig.ChemPropRegressorPretrained": [[9, 2, 1, "", "ChemPropRegressorPretrainedParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.ChemPropRegressorPretrained.ChemPropRegressorPretrainedParameters": [[9, 3, 1, "", "epochs"], [9, 3, 1, "", "frzn"], [9, 3, 1, "", "pretrained_model"]], "optunaz.config.buildconfig.KNeighborsClassifier": [[9, 2, 1, "", "KNeighborsClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.KNeighborsClassifier.KNeighborsClassifierParameters": [[9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.buildconfig.KNeighborsRegressor": [[9, 2, 1, "", "KNeighborsRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.KNeighborsRegressor.KNeighborsRegressorParameters": [[9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.buildconfig.Lasso": [[9, 2, 1, "", "LassoParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.Lasso.LassoParameters": [[9, 3, 1, "", "alpha"]], "optunaz.config.buildconfig.LogisticRegression": [[9, 2, 1, "", "LogisticRegressionParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.LogisticRegression.LogisticRegressionParameters": [[9, 3, 1, "", "C"], [9, 3, 1, "", "solver"]], "optunaz.config.buildconfig.Mapie": [[9, 2, 1, "", "MapieParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.Mapie.MapieParameters": [[9, 3, 1, "", "estimator"], [9, 3, 1, "", "mapie_alpha"]], "optunaz.config.buildconfig.PLSRegression": [[9, 2, 1, "", "PLSParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.PLSRegression.PLSParameters": [[9, 3, 1, "", "n_components"]], "optunaz.config.buildconfig.PRFClassifier": [[9, 2, 1, "", "PRFClassifierParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.PRFClassifier.PRFClassifierParameters": [[9, 3, 1, "", "bootstrap"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "min_py_sum_leaf"], [9, 3, 1, "", "n_estimators"], [9, 3, 1, "", "new_syn_data_frac"], [9, 3, 1, "", "use_py_gini"], [9, 3, 1, "", "use_py_leafs"]], "optunaz.config.buildconfig.RandomForestClassifier": [[9, 2, 1, "", "RandomForestParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.RandomForestClassifier.RandomForestParameters": [[9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.buildconfig.RandomForestRegressor": [[9, 2, 1, "", "RandomForestParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.RandomForestRegressor.RandomForestParameters": [[9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.buildconfig.Ridge": [[9, 2, 1, "", "RidgeParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.Ridge.RidgeParameters": [[9, 3, 1, "", "alpha"]], "optunaz.config.buildconfig.SVC": [[9, 2, 1, "", "SVCParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.SVC.SVCParameters": [[9, 3, 1, "", "C"], [9, 3, 1, "", "gamma"]], "optunaz.config.buildconfig.SVR": [[9, 2, 1, "", "SVRParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.SVR.SVRParameters": [[9, 3, 1, "", "C"], [9, 3, 1, "", "gamma"]], "optunaz.config.buildconfig.XGBRegressor": [[9, 2, 1, "", "XGBRegressorParameters"], [9, 4, 1, "", "estimator"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.buildconfig.XGBRegressor.XGBRegressorParameters": [[9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig": [[9, 2, 1, "", "AdaBoostClassifier"], [9, 2, 1, "", "Algorithm"], [9, 2, 1, "", "CalibratedClassifierCVEnsemble"], [9, 2, 1, "", "CalibratedClassifierCVMethod"], [9, 2, 1, "", "CalibratedClassifierCVWithVA"], [9, 2, 1, "", "ChemPropActivation"], [9, 2, 1, "", "ChemPropAggregation"], [9, 2, 1, "", "ChemPropClassifier"], [9, 2, 1, "", "ChemPropFeatures_Generator"], [9, 2, 1, "", "ChemPropFrzn"], [9, 2, 1, "", "ChemPropHyperoptClassifier"], [9, 2, 1, "", "ChemPropHyperoptRegressor"], [9, 2, 1, "", "ChemPropRegressor"], [9, 2, 1, "", "ChemPropRegressorPretrained"], [9, 2, 1, "", "ChemPropSearch_Parameter_Level"], [9, 2, 1, "", "ClassificationScore"], [9, 2, 1, "", "KNeighborsClassifier"], [9, 2, 1, "", "KNeighborsMetric"], [9, 2, 1, "", "KNeighborsRegressor"], [9, 2, 1, "", "KNeighborsWeights"], [9, 2, 1, "", "Lasso"], [9, 2, 1, "", "LogisticRegression"], [9, 2, 1, "", "Mapie"], [9, 2, 1, "", "OptimizationConfig"], [9, 2, 1, "", "PLSRegression"], [9, 2, 1, "", "PRFClassifier"], [9, 2, 1, "", "PRFClassifierMaxFeatures"], [9, 2, 1, "", "RandomForestClassifier"], [9, 2, 1, "", "RandomForestMaxFeatures"], [9, 2, 1, "", "RandomForestRegressor"], [9, 2, 1, "", "RegressionScore"], [9, 2, 1, "", "Ridge"], [9, 2, 1, "", "SVC"], [9, 2, 1, "", "SVR"], [9, 2, 1, "", "XGBRegressor"], [9, 1, 1, "", "copy_path_for_scaled_descriptor"], [9, 1, 1, "", "detect_mode_from_algs"], [9, 1, 1, "", "isanyof"]], "optunaz.config.optconfig.AdaBoostClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.AdaBoostClassifier.Parameters": [[9, 2, 1, "", "AdaBoostClassifierParametersLearningRate"], [9, 2, 1, "", "AdaBoostClassifierParametersNEstimators"], [9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.AdaBoostClassifier.Parameters.AdaBoostClassifierParametersLearningRate": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.AdaBoostClassifier.Parameters.AdaBoostClassifierParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.CalibratedClassifierCVEnsemble": [[9, 3, 1, "", "FALSE"], [9, 3, 1, "", "TRUE"]], "optunaz.config.optconfig.CalibratedClassifierCVMethod": [[9, 3, 1, "", "ISOTONIC"], [9, 3, 1, "", "SIGMOID"], [9, 3, 1, "", "VENNABERS"]], "optunaz.config.optconfig.CalibratedClassifierCVWithVA": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.CalibratedClassifierCVWithVA.Parameters": [[9, 3, 1, "", "ensemble"], [9, 3, 1, "", "estimator"], [9, 3, 1, "", "method"], [9, 3, 1, "", "n_folds"]], "optunaz.config.optconfig.ChemPropActivation": [[9, 3, 1, "", "ELU"], [9, 3, 1, "", "LEAKYRELU"], [9, 3, 1, "", "PRELU"], [9, 3, 1, "", "RELU"], [9, 3, 1, "", "SELU"], [9, 3, 1, "", "TANH"]], "optunaz.config.optconfig.ChemPropAggregation": [[9, 3, 1, "", "MEAN"], [9, 3, 1, "", "NORM"], [9, 3, 1, "", "SUM"]], "optunaz.config.optconfig.ChemPropClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters": [[9, 2, 1, "", "ChemPropParametersAggregation_Norm"], [9, 2, 1, "", "ChemPropParametersBatch_Size"], [9, 2, 1, "", "ChemPropParametersDepth"], [9, 2, 1, "", "ChemPropParametersDropout"], [9, 2, 1, "", "ChemPropParametersFFN_Hidden_Size"], [9, 2, 1, "", "ChemPropParametersFFN_Num_Layers"], [9, 2, 1, "", "ChemPropParametersFinal_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersHidden_Size"], [9, 2, 1, "", "ChemPropParametersInit_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersMax_Lr_Exp"], [9, 2, 1, "", "ChemPropParametersWarmup_Epochs_Ratio"], [9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersAggregation_Norm": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersBatch_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersDropout": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersFFN_Hidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersFFN_Num_Layers": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersFinal_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersHidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersInit_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersMax_Lr_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropClassifier.Parameters.ChemPropParametersWarmup_Epochs_Ratio": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropFeatures_Generator": [[9, 3, 1, "", "MORGAN"], [9, 3, 1, "", "MORGAN_COUNT"], [9, 3, 1, "", "NONE"], [9, 3, 1, "", "RDKIT_2D"], [9, 3, 1, "", "RDKIT_2D_NORMALIZED"]], "optunaz.config.optconfig.ChemPropFrzn": [[9, 3, 1, "", "MPNN"], [9, 3, 1, "", "MPNN_FIRST_FFN"], [9, 3, 1, "", "MPNN_LAST_FFN"], [9, 3, 1, "", "NONE"]], "optunaz.config.optconfig.ChemPropHyperoptClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropHyperoptClassifier.Parameters": [[9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.optconfig.ChemPropHyperoptRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropHyperoptRegressor.Parameters": [[9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "num_iters"], [9, 3, 1, "", "search_parameter_level"]], "optunaz.config.optconfig.ChemPropRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters": [[9, 2, 1, "", "ChemPropParametersAggregation_Norm"], [9, 2, 1, "", "ChemPropParametersBatch_Size"], [9, 2, 1, "", "ChemPropParametersDepth"], [9, 2, 1, "", "ChemPropParametersDropout"], [9, 2, 1, "", "ChemPropParametersFFN_Hidden_Size"], [9, 2, 1, "", "ChemPropParametersFFN_Num_Layers"], [9, 2, 1, "", "ChemPropParametersFinal_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersHidden_Size"], [9, 2, 1, "", "ChemPropParametersInit_Lr_Ratio_Exp"], [9, 2, 1, "", "ChemPropParametersMax_Lr_Exp"], [9, 2, 1, "", "ChemPropParametersWarmup_Epochs_Ratio"], [9, 3, 1, "", "activation"], [9, 3, 1, "", "aggregation"], [9, 3, 1, "", "aggregation_norm"], [9, 3, 1, "", "batch_size"], [9, 3, 1, "", "depth"], [9, 3, 1, "", "dropout"], [9, 3, 1, "", "ensemble_size"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "features_generator"], [9, 3, 1, "", "ffn_hidden_size"], [9, 3, 1, "", "ffn_num_layers"], [9, 3, 1, "", "final_lr_ratio_exp"], [9, 3, 1, "", "hidden_size"], [9, 3, 1, "", "init_lr_ratio_exp"], [9, 3, 1, "", "max_lr_exp"], [9, 3, 1, "", "warmup_epochs_ratio"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersAggregation_Norm": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersBatch_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersDropout": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersFFN_Hidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersFFN_Num_Layers": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersFinal_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersHidden_Size": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersInit_Lr_Ratio_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersMax_Lr_Exp": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.ChemPropRegressor.Parameters.ChemPropParametersWarmup_Epochs_Ratio": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropRegressorPretrained": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.ChemPropRegressorPretrained.Parameters": [[9, 2, 1, "", "ChemPropParametersEpochs"], [9, 3, 1, "", "epochs"], [9, 3, 1, "", "frzn"], [9, 3, 1, "", "pretrained_model"]], "optunaz.config.optconfig.ChemPropRegressorPretrained.Parameters.ChemPropParametersEpochs": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"], [9, 3, 1, "", "q"]], "optunaz.config.optconfig.ChemPropSearch_Parameter_Level": [[9, 3, 1, "", "AUTO"], [9, 3, 1, "", "L1"], [9, 3, 1, "", "L2"], [9, 3, 1, "", "L3"], [9, 3, 1, "", "L4"], [9, 3, 1, "", "L5"], [9, 3, 1, "", "L6"], [9, 3, 1, "", "L7"], [9, 3, 1, "", "L8"]], "optunaz.config.optconfig.ClassificationScore": [[9, 3, 1, "", "ACCURACY"], [9, 3, 1, "", "AUC_PR_CAL"], [9, 3, 1, "", "AVERAGE_PRECISION"], [9, 3, 1, "", "BALANCED_ACCURACY"], [9, 3, 1, "", "BEDROC"], [9, 3, 1, "", "CONCORDANCE_INDEX"], [9, 3, 1, "", "F1"], [9, 3, 1, "", "F1_MACRO"], [9, 3, 1, "", "F1_MICRO"], [9, 3, 1, "", "F1_WEIGHTED"], [9, 3, 1, "", "JACCARD"], [9, 3, 1, "", "JACCARD_MACRO"], [9, 3, 1, "", "JACCARD_MICRO"], [9, 3, 1, "", "JACCARD_WEIGHTED"], [9, 3, 1, "", "NEG_BRIER_SCORE"], [9, 3, 1, "", "PRECISION"], [9, 3, 1, "", "PRECISION_MACRO"], [9, 3, 1, "", "PRECISION_MICRO"], [9, 3, 1, "", "PRECISION_WEIGHTED"], [9, 3, 1, "", "RECALL"], [9, 3, 1, "", "RECALL_MACRO"], [9, 3, 1, "", "RECALL_MICRO"], [9, 3, 1, "", "RECALL_WEIGHTED"], [9, 3, 1, "", "ROC_AUC"]], "optunaz.config.optconfig.KNeighborsClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.KNeighborsClassifier.Parameters": [[9, 2, 1, "", "KNeighborsClassifierParametersN_Neighbors"], [9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.optconfig.KNeighborsClassifier.Parameters.KNeighborsClassifierParametersN_Neighbors": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.KNeighborsMetric": [[9, 3, 1, "", "EUCLIDEAN"], [9, 3, 1, "", "MANHATTAN"], [9, 3, 1, "", "MINKOWSKI"]], "optunaz.config.optconfig.KNeighborsRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.KNeighborsRegressor.Parameters": [[9, 2, 1, "", "KNeighborsRegressorParametersN_Neighbors"], [9, 3, 1, "", "metric"], [9, 3, 1, "", "n_neighbors"], [9, 3, 1, "", "weights"]], "optunaz.config.optconfig.KNeighborsRegressor.Parameters.KNeighborsRegressorParametersN_Neighbors": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.KNeighborsWeights": [[9, 3, 1, "", "DISTANCE"], [9, 3, 1, "", "UNIFORM"]], "optunaz.config.optconfig.Lasso": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.Lasso.Parameters": [[9, 2, 1, "", "LassoParametersAlpha"], [9, 3, 1, "", "alpha"]], "optunaz.config.optconfig.Lasso.Parameters.LassoParametersAlpha": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.LogisticRegression": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.LogisticRegression.Parameters": [[9, 3, 1, "", "C"], [9, 2, 1, "", "LogisticRegressionParametersParameterC"], [9, 3, 1, "", "solver"]], "optunaz.config.optconfig.LogisticRegression.Parameters.LogisticRegressionParametersParameterC": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.Mapie": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.Mapie.Parameters": [[9, 3, 1, "", "estimator"], [9, 3, 1, "", "mapie_alpha"]], "optunaz.config.optconfig.OptimizationConfig": [[9, 2, 1, "", "Settings"], [9, 3, 1, "", "algorithms"], [9, 3, 1, "", "data"], [9, 3, 1, "", "description"], [9, 3, 1, "", "descriptors"], [9, 3, 1, "", "mode"], [9, 3, 1, "", "name"], [9, 4, 1, "", "set_algo_hashes"], [9, 4, 1, "", "set_cache"], [9, 3, 1, "", "settings"], [9, 3, 1, "", "task"], [9, 3, 1, "", "visualization"]], "optunaz.config.optconfig.OptimizationConfig.Settings": [[9, 3, 1, "", "cross_validation"], [9, 3, 1, "", "cv_split_strategy"], [9, 3, 1, "", "direction"], [9, 3, 1, "", "minimise_std_dev"], [9, 3, 1, "", "mode"], [9, 3, 1, "", "n_chemprop_trials"], [9, 3, 1, "", "n_jobs"], [9, 3, 1, "", "n_startup_trials"], [9, 3, 1, "", "n_trials"], [9, 3, 1, "", "optuna_storage"], [9, 3, 1, "", "random_seed"], [9, 3, 1, "", "scoring"], [9, 3, 1, "", "shuffle"], [9, 3, 1, "", "split_chemprop"], [9, 3, 1, "", "track_to_mlflow"], [9, 3, 1, "", "tracking_rest_endpoint"], [9, 3, 1, "", "use_cache"]], "optunaz.config.optconfig.PLSRegression": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.PLSRegression.Parameters": [[9, 2, 1, "", "NComponents"], [9, 3, 1, "", "n_components"]], "optunaz.config.optconfig.PLSRegression.Parameters.NComponents": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.PRFClassifier.Parameters": [[9, 2, 1, "", "PRFClassifierParametersMaxDepth"], [9, 2, 1, "", "PRFClassifierParametersMinPySumLeaf"], [9, 2, 1, "", "PRFClassifierParametersNEstimators"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "min_py_sum_leaf"], [9, 3, 1, "", "n_estimators"], [9, 3, 1, "", "use_py_gini"], [9, 3, 1, "", "use_py_leafs"]], "optunaz.config.optconfig.PRFClassifier.Parameters.PRFClassifierParametersMaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifier.Parameters.PRFClassifierParametersMinPySumLeaf": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifier.Parameters.PRFClassifierParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.PRFClassifierMaxFeatures": [[9, 3, 1, "", "AUTO"], [9, 3, 1, "", "LOG2"], [9, 3, 1, "", "SQRT"]], "optunaz.config.optconfig.RandomForestClassifier": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.RandomForestClassifier.Parameters": [[9, 2, 1, "", "RandomForestClassifierParametersMaxDepth"], [9, 2, 1, "", "RandomForestClassifierParametersNEstimators"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.RandomForestClassifier.Parameters.RandomForestClassifierParametersMaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RandomForestClassifier.Parameters.RandomForestClassifierParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RandomForestMaxFeatures": [[9, 3, 1, "", "AUTO"], [9, 3, 1, "", "LOG2"], [9, 3, 1, "", "SQRT"]], "optunaz.config.optconfig.RandomForestRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.RandomForestRegressor.Parameters": [[9, 2, 1, "", "RandomForestRegressorParametersMaxDepth"], [9, 2, 1, "", "RandomForestRegressorParametersNEstimators"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "max_features"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.RandomForestRegressor.Parameters.RandomForestRegressorParametersMaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RandomForestRegressor.Parameters.RandomForestRegressorParametersNEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.RegressionScore": [[9, 3, 1, "", "EXPLAINED_VARIANCE"], [9, 3, 1, "", "MAX_ERROR"], [9, 3, 1, "", "NEG_MEAN_ABSOLUTE_ERROR"], [9, 3, 1, "", "NEG_MEAN_SQUARED_ERROR"], [9, 3, 1, "", "NEG_MEDIAN_ABSOLUTE_ERROR"], [9, 3, 1, "", "R2"]], "optunaz.config.optconfig.Ridge": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.Ridge.Parameters": [[9, 2, 1, "", "Alpha"], [9, 3, 1, "", "alpha"]], "optunaz.config.optconfig.Ridge.Parameters.Alpha": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVC": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.SVC.Parameters": [[9, 3, 1, "", "C"], [9, 2, 1, "", "Gamma"], [9, 2, 1, "", "SVCParametersParameterC"], [9, 3, 1, "", "gamma"]], "optunaz.config.optconfig.SVC.Parameters.Gamma": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVC.Parameters.SVCParametersParameterC": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVR": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.SVR.Parameters": [[9, 3, 1, "", "C"], [9, 2, 1, "", "SVRParametersGamma"], [9, 2, 1, "", "SVRParametersParameterC"], [9, 3, 1, "", "gamma"]], "optunaz.config.optconfig.SVR.Parameters.SVRParametersGamma": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.SVR.Parameters.SVRParametersParameterC": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.XGBRegressor": [[9, 2, 1, "", "Parameters"], [9, 3, 1, "", "name"], [9, 3, 1, "", "parameters"]], "optunaz.config.optconfig.XGBRegressor.Parameters": [[9, 2, 1, "", "LearningRate"], [9, 2, 1, "", "MaxDepth"], [9, 2, 1, "", "NEstimators"], [9, 3, 1, "", "learning_rate"], [9, 3, 1, "", "max_depth"], [9, 3, 1, "", "n_estimators"]], "optunaz.config.optconfig.XGBRegressor.Parameters.LearningRate": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.XGBRegressor.Parameters.MaxDepth": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.config.optconfig.XGBRegressor.Parameters.NEstimators": [[9, 3, 1, "", "high"], [9, 3, 1, "", "low"]], "optunaz.datareader": [[8, 2, 1, "", "Dataset"], [8, 1, 1, "", "deduplicate"], [8, 1, 1, "", "isvalid"], [8, 1, 1, "", "merge"], [8, 1, 1, "", "read_data"], [8, 1, 1, "", "split"], [8, 1, 1, "", "transform"]], "optunaz.datareader.Dataset": [[8, 3, 1, "", "aux_column"], [8, 3, 1, "", "aux_transform"], [8, 4, 1, "", "check_sets"], [8, 3, 1, "", "deduplication_strategy"], [8, 4, 1, "", "get_merged_sets"], [8, 4, 1, "", "get_sets"], [8, 3, 1, "", "input_column"], [8, 3, 1, "", "intermediate_test_dataset_file"], [8, 3, 1, "", "intermediate_training_dataset_file"], [8, 3, 1, "", "log_transform"], [8, 3, 1, "", "log_transform_base"], [8, 3, 1, "", "log_transform_negative"], [8, 3, 1, "", "log_transform_unit_conversion"], [8, 3, 1, "", "probabilistic_threshold_representation"], [8, 3, 1, "", "probabilistic_threshold_representation_std"], [8, 3, 1, "", "probabilistic_threshold_representation_threshold"], [8, 3, 1, "", "response_column"], [8, 3, 1, "", "response_type"], [8, 3, 1, "", "save_intermediate_files"], [8, 3, 1, "", "split_strategy"], [8, 3, 1, "", "test_dataset_file"], [8, 3, 1, "", "training_dataset_file"]], "optunaz.descriptors": [[8, 2, 1, "", "Avalon"], [8, 2, 1, "", "CanonicalSmiles"], [8, 2, 1, "", "CompositeDescriptor"], [8, 2, 1, "", "ECFP"], [8, 2, 1, "", "ECFP_counts"], [8, 2, 1, "", "FittedSklearnScaler"], [8, 2, 1, "", "GenericScaffold"], [8, 2, 1, "", "JazzyDescriptors"], [8, 2, 1, "", "MACCS_keys"], [8, 2, 1, "", "MolDescriptor"], [8, 5, 1, "", "NoValidSmiles"], [8, 2, 1, "", "PathFP"], [8, 2, 1, "", "PhyschemDescriptors"], [8, 2, 1, "", "PrecomputedDescriptorFromFile"], [8, 2, 1, "", "RdkitDescriptor"], [8, 2, 1, "", "Scaffold"], [8, 2, 1, "", "ScaledDescriptor"], [8, 5, 1, "", "ScalingFittingError"], [8, 2, 1, "", "SmilesAndSideInfoFromFile"], [8, 2, 1, "", "SmilesFromFile"], [8, 2, 1, "", "UnfittedSklearnScaler"], [8, 2, 1, "", "UnscaledJazzyDescriptors"], [8, 2, 1, "", "UnscaledPhyschemDescriptors"], [8, 2, 1, "", "UnscaledZScalesDescriptors"], [8, 2, 1, "", "ValidDescriptor"], [8, 2, 1, "", "ZScalesDescriptors"], [8, 1, 1, "", "descriptor_from_config"], [8, 1, 1, "", "mol_from_smi"], [8, 1, 1, "", "numpy_from_rdkit"]], "optunaz.descriptors.Avalon": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.Avalon.Parameters": [[8, 3, 1, "", "nBits"]], "optunaz.descriptors.CanonicalSmiles": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.CompositeDescriptor": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 4, 1, "", "fp_info"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.CompositeDescriptor.Parameters": [[8, 3, 1, "", "descriptors"]], "optunaz.descriptors.ECFP": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ECFP.Parameters": [[8, 3, 1, "", "nBits"], [8, 3, 1, "", "radius"], [8, 3, 1, "", "returnRdkit"]], "optunaz.descriptors.ECFP_counts": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ECFP_counts.Parameters": [[8, 3, 1, "", "nBits"], [8, 3, 1, "", "radius"], [8, 3, 1, "", "useFeatures"]], "optunaz.descriptors.FittedSklearnScaler": [[8, 4, 1, "", "get_fitted_scaler"], [8, 3, 1, "", "name"], [8, 3, 1, "", "saved_params"]], "optunaz.descriptors.GenericScaffold": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.JazzyDescriptors": [[8, 2, 1, "", "Parameters"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.JazzyDescriptors.Parameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "jazzy_filters"], [8, 3, 1, "", "jazzy_names"], [8, 3, 1, "", "scaler"]], "optunaz.descriptors.MACCS_keys": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.MolDescriptor": [[8, 4, 1, "", "calculate_from_smi"], [8, 4, 1, "", "parallel_compute_descriptor"]], "optunaz.descriptors.PathFP": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.PathFP.Parameters": [[8, 3, 1, "", "fpSize"], [8, 3, 1, "", "maxPath"]], "optunaz.descriptors.PhyschemDescriptors": [[8, 2, 1, "", "Parameters"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.PhyschemDescriptors.Parameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "rdkit_names"], [8, 3, 1, "", "scaler"]], "optunaz.descriptors.PrecomputedDescriptorFromFile": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.PrecomputedDescriptorFromFile.Parameters": [[8, 3, 1, "", "file"], [8, 3, 1, "", "input_column"], [8, 3, 1, "", "response_column"]], "optunaz.descriptors.RdkitDescriptor": [[8, 4, 1, "", "calculate_from_mol"], [8, 4, 1, "", "calculate_from_smi"]], "optunaz.descriptors.Scaffold": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ScaledDescriptor": [[8, 2, 1, "", "ScaledDescriptorParameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"], [8, 4, 1, "", "set_unfitted_scaler_data"]], "optunaz.descriptors.ScaledDescriptor.ScaledDescriptorParameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "scaler"]], "optunaz.descriptors.SmilesAndSideInfoFromFile": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.SmilesAndSideInfoFromFile.Parameters": [[8, 2, 1, "", "Aux_Weight_Pc"], [8, 3, 1, "", "aux_weight_pc"], [8, 3, 1, "", "file"], [8, 3, 1, "", "input_column"]], "optunaz.descriptors.SmilesAndSideInfoFromFile.Parameters.Aux_Weight_Pc": [[8, 3, 1, "", "high"], [8, 3, 1, "", "low"], [8, 3, 1, "", "q"]], "optunaz.descriptors.SmilesFromFile": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.UnfittedSklearnScaler": [[8, 2, 1, "", "MolData"], [8, 4, 1, "", "get_fitted_scaler_for_fp"], [8, 3, 1, "", "mol_data"], [8, 3, 1, "", "name"]], "optunaz.descriptors.UnfittedSklearnScaler.MolData": [[8, 3, 1, "", "file_path"], [8, 3, 1, "", "smiles_column"]], "optunaz.descriptors.UnscaledJazzyDescriptors": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.UnscaledJazzyDescriptors.Parameters": [[8, 3, 1, "", "jazzy_filters"], [8, 3, 1, "", "jazzy_names"]], "optunaz.descriptors.UnscaledPhyschemDescriptors": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_mol"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.UnscaledPhyschemDescriptors.Parameters": [[8, 3, 1, "", "rdkit_names"]], "optunaz.descriptors.UnscaledZScalesDescriptors": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ValidDescriptor": [[8, 2, 1, "", "Parameters"], [8, 4, 1, "", "calculate_from_smi"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ZScalesDescriptors": [[8, 2, 1, "", "Parameters"], [8, 3, 1, "", "name"], [8, 3, 1, "", "parameters"]], "optunaz.descriptors.ZScalesDescriptors.Parameters": [[8, 3, 1, "", "descriptor"], [8, 3, 1, "", "scaler"]], "optunaz.evaluate": [[8, 1, 1, "", "get_merged_train_score"], [8, 1, 1, "", "get_scores"], [8, 1, 1, "", "get_train_test_scores"], [8, 1, 1, "", "score_all"], [8, 1, 1, "", "score_all_smiles"]], "optunaz.explainability": [[8, 1, 1, "", "ExplainPreds"], [8, 1, 1, "", "ShapExplainer"], [8, 1, 1, "", "explain_ECFP"], [8, 1, 1, "", "get_ecfp_fpinfo"], [8, 1, 1, "", "get_ecfpcount_fpinfo"], [8, 1, 1, "", "get_fp_info"], [8, 1, 1, "", "runShap"]], "optunaz.metircs": [[8, 1, 1, "", "auc_pr_cal"], [8, 1, 1, "", "bedroc_score"], [8, 1, 1, "", "concordance_index"], [8, 1, 1, "", "validate_cls_input"]], "optunaz.model_writer": [[8, 2, 1, "", "Predictor"], [8, 2, 1, "", "QSARtunaModel"], [8, 1, 1, "", "get_metadata"], [8, 1, 1, "", "get_transform"], [8, 1, 1, "", "perform_ptr"], [8, 1, 1, "", "save_model"], [8, 1, 1, "", "wrap_model"]], "optunaz.model_writer.Predictor": [[8, 4, 1, "", "explain"], [8, 4, 1, "", "predict"], [8, 4, 1, "", "predict_proba"], [8, 4, 1, "", "predict_uncert"]], "optunaz.model_writer.QSARtunaModel": [[8, 3, 1, "", "aux_transform"], [8, 3, 1, "", "descriptor"], [8, 3, 1, "", "metadata"], [8, 3, 1, "", "mode"], [8, 4, 1, "", "predict_from_smiles"], [8, 3, 1, "", "predictor"], [8, 3, 1, "", "transform"]], "optunaz.objective": [[8, 5, 1, "", "NoValidDescriptors"], [8, 2, 1, "", "Objective"], [8, 1, 1, "", "null_scores"]], "optunaz.objective.Objective": [[8, 3, 1, "", "cache"], [8, 3, 1, "", "optconfig"], [8, 3, 1, "", "train_aux"], [8, 3, 1, "", "train_smiles"], [8, 3, 1, "", "train_y"]], "optunaz.optbuild": [[8, 1, 1, "", "main"], [8, 1, 1, "", "predict_pls"]], "optunaz.predict": [[8, 5, 1, "", "ArgsError"], [8, 5, 1, "", "AuxCovariateMissing"], [8, 5, 1, "", "PrecomputedError"], [8, 5, 1, "", "UncertaintyError"], [8, 1, 1, "", "check_precomp_args"], [8, 1, 1, "", "main"], [8, 1, 1, "", "validate_args"], [8, 1, 1, "", "validate_aux"], [8, 1, 1, "", "validate_set_precomputed"], [8, 1, 1, "", "validate_uncertainty"]], "optunaz.schemagen": [[8, 1, 1, "", "doctitle"], [8, 1, 1, "", "main"], [8, 1, 1, "", "patch_schema_generic"], [8, 1, 1, "", "patch_schema_optunaz"], [8, 1, 1, "", "type_base_schema"]], "optunaz.three_step_opt_build_merge": [[8, 1, 1, "", "base_chemprop_params"], [8, 1, 1, "", "build_best"], [8, 1, 1, "", "build_merged"], [8, 1, 1, "", "buildconfig_best"], [8, 1, 1, "", "log_scores"], [8, 1, 1, "", "optimize"], [8, 1, 1, "", "run_study"], [8, 1, 1, "", "split_optimize"]], "optunaz.utils": [[11, 0, 0, "-", "enums"], [10, 0, 0, "-", "files_paths"], [10, 1, 1, "", "load_df_from_file"], [10, 0, 0, "-", "load_json"], [10, 1, 1, "", "md5_hash"], [10, 1, 1, "", "mkdict"], [10, 0, 0, "-", "mlflow"], [12, 0, 0, "-", "preprocessing"], [10, 1, 1, "", "remove_failed_idx"], [10, 0, 0, "-", "schema"], [10, 0, 0, "-", "tracking"]], "optunaz.utils.enums": [[11, 2, 1, "", "MlflowLogParams"], [11, 2, 1, "", "StudyUserAttrs"], [11, 2, 1, "", "TrialParams"], [11, 2, 1, "", "TrialUserAttrs"], [11, 0, 0, "-", "building_configuration_enum"], [11, 0, 0, "-", "configuration_enum"], [11, 0, 0, "-", "interface_enum"], [11, 0, 0, "-", "model_runner_enum"], [11, 0, 0, "-", "objective_enum"], [11, 0, 0, "-", "optimization_configuration_enum"], [11, 0, 0, "-", "prediction_configuration_enum"], [11, 0, 0, "-", "return_values_enum"], [11, 0, 0, "-", "visualization_enum"]], "optunaz.utils.enums.MlflowLogParams": [[11, 3, 1, "", "TRIAL_NUMBER"]], "optunaz.utils.enums.StudyUserAttrs": [[11, 3, 1, "", "OPTCONFIG"]], "optunaz.utils.enums.TrialParams": [[11, 3, 1, "", "ALGORITHM_HASH"], [11, 3, 1, "", "ALGORITHM_NAME"], [11, 3, 1, "", "DESCRIPTOR"]], "optunaz.utils.enums.TrialUserAttrs": [[11, 3, 1, "", "TEST_SCORES"], [11, 3, 1, "", "TRAIN_SCORES"]], "optunaz.utils.enums.building_configuration_enum": [[11, 2, 1, "", "BuildingConfigurationEnum"]], "optunaz.utils.enums.building_configuration_enum.BuildingConfigurationEnum": [[11, 3, 1, "", "GENERAL_CLASSIFIER"], [11, 3, 1, "", "GENERAL_HYPERPARAMETERS"], [11, 3, 1, "", "GENERAL_REGRESSOR"], [11, 3, 1, "", "METADATA"], [11, 3, 1, "", "METADATA_BESTTRIAL"], [11, 3, 1, "", "METADATA_BESTVALUE"]], "optunaz.utils.enums.configuration_enum": [[11, 2, 1, "", "ConfigurationEnum"]], "optunaz.utils.enums.configuration_enum.ConfigurationEnum": [[11, 3, 1, "", "ALGORITHMS"], [11, 3, 1, "", "ALGORITHMS_ADABOOSTCLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_ADABOOSTCLASSIFIER_LEARNING_RATE"], [11, 3, 1, "", "ALGORITHMS_ADABOOSTCLASSIFIER_N_ESTIMATORS"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_ENSEMBLE"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_ESTIMATOR"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_METHOD"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_N_FOLDS"], [11, 3, 1, "", "ALGORITHMS_CALIBRATEDCLASSIFIERCV_PARAMS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_ACTIVATION"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_AGGREGATION"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_AGGREGATION_NORM"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_BATCH_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_CLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_DEPTH"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_DROPOUT"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_ENSEMBLE_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_EPOCHS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FEATURES_GENERATOR"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FFN_HIDDEN_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FFN_NUM_LAYERS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FINAL_LR_RATIO_EXP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_FRZN"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_HIDDEN_SIZE"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_HYPEROPT_CLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_HYPEROPT_REGRESSOR"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_INIT_LR_RATIO_EXP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_MAX_LR_EXP"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_NUM_ITERS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_PRETRAINED_MODEL"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_REGRESSOR"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_SEARCH_PARAMETER_LEVEL"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_STARTUP_RANDOM_ITERS"], [11, 3, 1, "", "ALGORITHMS_CHEMPROP_WARMUP_EPOCHS_RATIO"], [11, 3, 1, "", "ALGORITHMS_HIGH"], [11, 3, 1, "", "ALGORITHMS_INTERFACE_SKLEARN"], [11, 3, 1, "", "ALGORITHMS_INTERFACE_XGBOOST"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORSCLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORSREGRESSOR"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORS_METRIC"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORS_N_NEIGHBORS"], [11, 3, 1, "", "ALGORITHMS_KNEIGHBORS_WEIGHTS"], [11, 3, 1, "", "ALGORITHMS_LASSO"], [11, 3, 1, "", "ALGORITHMS_LASSO_ALPHA"], [11, 3, 1, "", "ALGORITHMS_LOGISTICREGRESSION"], [11, 3, 1, "", "ALGORITHMS_LOGISTICREGRESSION_C"], [11, 3, 1, "", "ALGORITHMS_LOGISTICREGRESSION_SOLVER"], [11, 3, 1, "", "ALGORITHMS_LOW"], [11, 3, 1, "", "ALGORITHMS_MAPIE"], [11, 3, 1, "", "ALGORITHMS_MAPIE_ALPHA"], [11, 3, 1, "", "ALGORITHMS_PLSREGRESSION"], [11, 3, 1, "", "ALGORITHMS_PLSREGRESSION_N_COMPONENTS"], [11, 3, 1, "", "ALGORITHMS_PRF"], [11, 3, 1, "", "ALGORITHMS_PRF_MAX_DEPTH"], [11, 3, 1, "", "ALGORITHMS_PRF_MAX_FEATURES"], [11, 3, 1, "", "ALGORITHMS_PRF_MINPYSUMLEAF"], [11, 3, 1, "", "ALGORITHMS_PRF_N_ESTIMATORS"], [11, 3, 1, "", "ALGORITHMS_PRF_USE_PY_GINI"], [11, 3, 1, "", "ALGORITHMS_PRF_USE_PY_LEAFS"], [11, 3, 1, "", "ALGORITHMS_Q"], [11, 3, 1, "", "ALGORITHMS_RFCLASSIFIER"], [11, 3, 1, "", "ALGORITHMS_RFREGRESSOR"], [11, 3, 1, "", "ALGORITHMS_RF_MAX_DEPTH"], [11, 3, 1, "", "ALGORITHMS_RF_MAX_FEATURES"], [11, 3, 1, "", "ALGORITHMS_RF_N_ESTIMATORS"], [11, 3, 1, "", "ALGORITHMS_RIDGE"], [11, 3, 1, "", "ALGORITHMS_RIDGE_ALPHA"], [11, 3, 1, "", "ALGORITHMS_SVC"], [11, 3, 1, "", "ALGORITHMS_SVC_C"], [11, 3, 1, "", "ALGORITHMS_SVC_GAMMA"], [11, 3, 1, "", "ALGORITHMS_SVR"], [11, 3, 1, "", "ALGORITHMS_SVR_C"], [11, 3, 1, "", "ALGORITHMS_SVR_GAMMA"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR_LEARNING_RATE"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR_MAX_DEPTH"], [11, 3, 1, "", "ALGORITHMS_XGBREGRESSOR_N_ESTIMATORS"], [11, 3, 1, "", "DATA"], [11, 3, 1, "", "DATA_INPUTCOLUMN"], [11, 3, 1, "", "DATA_RESPONSECOLUMN"], [11, 3, 1, "", "DATA_TEST"], [11, 3, 1, "", "DATA_TRAINING"], [11, 3, 1, "", "DESCRIPTORS"], [11, 3, 1, "", "DESCRIPTORS_AVALON"], [11, 3, 1, "", "DESCRIPTORS_AVALON_NBITS"], [11, 3, 1, "", "DESCRIPTORS_COMPOSITE"], [11, 3, 1, "", "DESCRIPTORS_ECFP"], [11, 3, 1, "", "DESCRIPTORS_ECFPCOUNTS"], [11, 3, 1, "", "DESCRIPTORS_ECFPCOUNTS_RADIUS"], [11, 3, 1, "", "DESCRIPTORS_ECFPCOUNTS_USEFEATURES"], [11, 3, 1, "", "DESCRIPTORS_ECFP_NBITS"], [11, 3, 1, "", "DESCRIPTORS_ECFP_RADIUS"], [11, 3, 1, "", "DESCRIPTORS_JAZZY"], [11, 3, 1, "", "DESCRIPTORS_JAZZY_JAZZYNAMES"], [11, 3, 1, "", "DESCRIPTORS_MACCSKEYS"], [11, 3, 1, "", "DESCRIPTORS_PATHFP"], [11, 3, 1, "", "DESCRIPTORS_PATHFP_FPSIZE"], [11, 3, 1, "", "DESCRIPTORS_PATHFP_MAXPATH"], [11, 3, 1, "", "DESCRIPTORS_PHYSCHEM"], [11, 3, 1, "", "DESCRIPTORS_PHYSCHEM_RDKITNAMES"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED_FILE"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED_INPUT_COLUMNN"], [11, 3, 1, "", "DESCRIPTORS_PRECOMPUTED_RESPONSE_COLUMN"], [11, 3, 1, "", "DESCRIPTORS_SCALED"], [11, 3, 1, "", "DESCRIPTORS_SCALED_DESCRIPTOR"], [11, 3, 1, "", "DESCRIPTORS_SCALED_DESCRIPTOR_PARAMETERS"], [11, 3, 1, "", "DESCRIPTORS_SMILES"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI_AUX_WEIGHT_PC"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI_FILE"], [11, 3, 1, "", "DESCRIPTORS_SMILES_AND_SI_INPUT_COLUMN"], [11, 3, 1, "", "DESCRIPTORS_UNSC_JAZZY"], [11, 3, 1, "", "DESCRIPTORS_UNSC_PHYSCHEM"], [11, 3, 1, "", "DESCRIPTORS_UNSC_ZSCALES"], [11, 3, 1, "", "DESCRIPTORS_ZSCALES"], [11, 3, 1, "", "GENERAL_DISABLED"], [11, 3, 1, "", "GENERAL_PARAMETERS"], [11, 3, 1, "", "SETTINGS"], [11, 3, 1, "", "SETTINGS_CROSS_VALIDATION"], [11, 3, 1, "", "SETTINGS_DIRECTION"], [11, 3, 1, "", "SETTINGS_MODE"], [11, 3, 1, "", "SETTINGS_MODE_CLASSIFICATION"], [11, 3, 1, "", "SETTINGS_MODE_REGRESSION"], [11, 3, 1, "", "SETTINGS_N_JOBS"], [11, 3, 1, "", "SETTINGS_N_TRIALS"], [11, 3, 1, "", "SETTINGS_SHUFFLE"], [11, 3, 1, "", "TASK"], [11, 3, 1, "", "TASK_BUILDING"], [11, 3, 1, "", "TASK_OPTIMIZATION"]], "optunaz.utils.enums.interface_enum": [[11, 2, 1, "", "InterfaceEnum"]], "optunaz.utils.enums.interface_enum.InterfaceEnum": [[11, 3, 1, "", "CALIBRATED_SET"], [11, 3, 1, "", "CHEMPROP_SET"], [11, 3, 1, "", "PRF_SET"], [11, 3, 1, "", "SKLEARN_SET"], [11, 3, 1, "", "XGBOOST_SET"]], "optunaz.utils.enums.model_runner_enum": [[11, 2, 1, "", "ModelRunnerDataframeEnum"]], "optunaz.utils.enums.model_runner_enum.ModelRunnerDataframeEnum": [[11, 3, 1, "", "SET"], [11, 3, 1, "", "SMILES"], [11, 3, 1, "", "TEST"], [11, 3, 1, "", "TRAIN"], [11, 3, 1, "", "Y_PRED"], [11, 3, 1, "", "Y_TRUE"]], "optunaz.utils.enums.objective_enum": [[11, 2, 1, "", "ObjectiveEnum"]], "optunaz.utils.enums.objective_enum.ObjectiveEnum": [[11, 3, 1, "", "ATTRIBUTE_TRIAL_TRAIN_SCORE"], [11, 3, 1, "", "EXTRA_COLUMN_BESTHIT"]], "optunaz.utils.enums.optimization_configuration_enum": [[11, 2, 1, "", "OptimizationConfigurationEnum"]], "optunaz.utils.enums.prediction_configuration_enum": [[11, 2, 1, "", "PredictionConfigurationEnum"]], "optunaz.utils.enums.prediction_configuration_enum.PredictionConfigurationEnum": [[11, 3, 1, "", "DATA_DATASET"]], "optunaz.utils.enums.return_values_enum": [[11, 2, 1, "", "SklearnReturnValueEnum"], [11, 2, 1, "", "XGBoostReturnValueEnum"]], "optunaz.utils.enums.return_values_enum.SklearnReturnValueEnum": [[11, 3, 1, "", "CROSS_VALIDATE_FIT_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_SCORE_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_TEST_SCORE"], [11, 3, 1, "", "CROSS_VALIDATE_TRAIN_SCORE"]], "optunaz.utils.enums.return_values_enum.XGBoostReturnValueEnum": [[11, 3, 1, "", "CROSS_VALIDATE_FIT_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_SCORE_TIME"], [11, 3, 1, "", "CROSS_VALIDATE_TEST_SCORE"], [11, 3, 1, "", "CROSS_VALIDATE_TRAIN_SCORE"]], "optunaz.utils.enums.visualization_enum": [[11, 2, 1, "", "VisualizationEnum"]], "optunaz.utils.enums.visualization_enum.VisualizationEnum": [[11, 3, 1, "", "OPTUNA_SYSTEM_ATTRS_INTERMEDIATE_VALUES"], [11, 3, 1, "", "OPTUNA_SYSTEM_ATTRS_NUMBER"], [11, 3, 1, "", "OPTUNA_SYSTEM_ATTRS_TRIAL_ID"], [11, 3, 1, "", "VISUALIZATION"], [11, 3, 1, "", "VISUALIZATION_CLASSIFIER"], [11, 3, 1, "", "VISUALIZATION_FILE_FORMAT"], [11, 3, 1, "", "VISUALIZATION_OUTPUT_FOLDER"], [11, 3, 1, "", "VISUALIZATION_PLOTS"], [11, 3, 1, "", "VISUALIZATION_PLOTS_CONTOUR"], [11, 3, 1, "", "VISUALIZATION_PLOTS_HISTORY"], [11, 3, 1, "", "VISUALIZATION_PLOTS_PARALLEL_COORDINATE"], [11, 3, 1, "", "VISUALIZATION_PLOTS_SLICE"], [11, 3, 1, "", "VISUALIZATION_REGRESSOR"], [11, 3, 1, "", "VISUALIZATION_USE_XVFB"]], "optunaz.utils.files_paths": [[10, 1, 1, "", "attach_root_path"], [10, 1, 1, "", "move_up_directory"]], "optunaz.utils.load_json": [[10, 1, 1, "", "loadJSON"]], "optunaz.utils.mlflow": [[10, 2, 1, "", "MLflowCallback"], [10, 1, 1, "", "add_ellipsis"], [10, 1, 1, "", "shorten_names"]], "optunaz.utils.mlflow.MLflowCallback": [[10, 3, 1, "", "optconfig"], [10, 4, 1, "", "prepare_tags"], [10, 4, 1, "", "tmp_buildconfig"], [10, 3, 1, "", "tracking_uri"], [10, 3, 1, "", "trial_number_offset"]], "optunaz.utils.preprocessing": [[12, 0, 0, "-", "deduplicator"], [12, 0, 0, "-", "splitter"], [12, 0, 0, "-", "transform"]], "optunaz.utils.preprocessing.deduplicator": [[12, 2, 1, "", "Deduplicator"], [12, 2, 1, "", "KeepAllNoDeduplication"], [12, 2, 1, "", "KeepAvg"], [12, 2, 1, "", "KeepFirst"], [12, 2, 1, "", "KeepLast"], [12, 2, 1, "", "KeepMax"], [12, 2, 1, "", "KeepMedian"], [12, 2, 1, "", "KeepMin"], [12, 2, 1, "", "KeepRandom"]], "optunaz.utils.preprocessing.deduplicator.Deduplicator": [[12, 4, 1, "", "dedup"]], "optunaz.utils.preprocessing.deduplicator.KeepAllNoDeduplication": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepAvg": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepFirst": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepLast": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepMax": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepMedian": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepMin": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"]], "optunaz.utils.preprocessing.deduplicator.KeepRandom": [[12, 4, 1, "", "dedup"], [12, 3, 1, "", "name"], [12, 3, 1, "", "seed"]], "optunaz.utils.preprocessing.splitter": [[12, 2, 1, "", "GroupingSplitter"], [12, 2, 1, "", "HistogramStratifiedShuffleSplit"], [12, 2, 1, "", "KFold"], [12, 2, 1, "", "NoSplitting"], [13, 2, 1, "", "Predefined"], [13, 2, 1, "", "Random"], [13, 2, 1, "", "ScaffoldSplit"], [12, 2, 1, "", "SklearnSplitter"], [12, 2, 1, "", "Splitter"], [13, 2, 1, "", "Stratified"], [13, 2, 1, "", "Temporal"], [12, 1, 1, "", "butina_cluster"], [12, 1, 1, "", "fd_bin"], [12, 1, 1, "", "stratify"]], "optunaz.utils.preprocessing.splitter.GroupingSplitter": [[12, 4, 1, "", "groups"]], "optunaz.utils.preprocessing.splitter.HistogramStratifiedShuffleSplit": [[12, 3, 1, "", "bins"], [12, 4, 1, "", "get_n_splits"], [12, 3, 1, "", "n_splits"], [12, 3, 1, "", "random_state"], [12, 4, 1, "", "split"], [12, 3, 1, "", "test_fraction"]], "optunaz.utils.preprocessing.splitter.KFold": [[12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 3, 1, "", "random_state"], [12, 3, 1, "", "shuffle"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.NoSplitting": [[12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Predefined": [[12, 3, 1, "", "column_name"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 4, 1, "", "groups"], [12, 3, 1, "", "name"], [13, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Random": [[12, 3, 1, "", "fraction"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 3, 1, "", "seed"]], "optunaz.utils.preprocessing.splitter.ScaffoldSplit": [[12, 3, 1, "", "bins"], [12, 3, 1, "", "butina_cluster"], [12, 4, 1, "", "get_n_splits"], [12, 4, 1, "", "get_sklearn_splitter"], [13, 4, 1, "", "groups"], [12, 3, 1, "", "make_scaffold_generic"], [12, 3, 1, "", "name"], [12, 3, 1, "", "random_state"], [13, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.SklearnSplitter": [[12, 4, 1, "", "get_n_splits"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Splitter": [[12, 4, 1, "", "get_sklearn_splitter"], [12, 4, 1, "", "split"]], "optunaz.utils.preprocessing.splitter.Stratified": [[12, 3, 1, "", "bins"], [12, 3, 1, "", "fraction"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [12, 3, 1, "", "seed"]], "optunaz.utils.preprocessing.splitter.Temporal": [[12, 3, 1, "", "fraction"], [12, 4, 1, "", "get_sklearn_splitter"], [12, 3, 1, "", "name"], [13, 4, 1, "", "split"]], "optunaz.utils.preprocessing.transform": [[12, 2, 1, "", "AuxTransformer"], [12, 2, 1, "", "DataTransform"], [12, 2, 1, "", "LogBase"], [12, 2, 1, "", "LogNegative"], [14, 2, 1, "", "ModelDataTransform"], [14, 2, 1, "", "PTRTransform"], [14, 2, 1, "", "VectorFromColumn"], [14, 2, 1, "", "ZScales"]], "optunaz.utils.preprocessing.transform.AuxTransformer": [[12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.DataTransform": [[12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.LogBase": [[12, 3, 1, "", "LOG"], [12, 3, 1, "", "LOG10"], [12, 3, 1, "", "LOG2"]], "optunaz.utils.preprocessing.transform.LogNegative": [[12, 3, 1, "", "FALSE"], [12, 3, 1, "", "TRUE"]], "optunaz.utils.preprocessing.transform.ModelDataTransform": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "base_dict"], [12, 3, 1, "", "base_negation"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 3, 1, "", "reverse_dict"], [12, 4, 1, "", "reverse_transform"], [12, 4, 1, "", "reverse_transform_df"], [12, 4, 1, "", "reverse_transform_one"], [12, 4, 1, "", "transform"], [12, 4, 1, "", "transform_df"], [12, 4, 1, "", "transform_one"]], "optunaz.utils.preprocessing.transform.ModelDataTransform.Parameters": [[12, 3, 1, "", "base"], [12, 3, 1, "", "conversion"], [12, 3, 1, "", "negation"]], "optunaz.utils.preprocessing.transform.PTRTransform": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 4, 1, "", "reverse_transform"], [12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.PTRTransform.Parameters": [[12, 3, 1, "", "std"], [12, 3, 1, "", "threshold"]], "optunaz.utils.preprocessing.transform.VectorFromColumn": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 4, 1, "", "transform"]], "optunaz.utils.preprocessing.transform.VectorFromColumn.Parameters": [[12, 3, 1, "", "delimiter"]], "optunaz.utils.preprocessing.transform.ZScales": [[14, 2, 1, "", "Parameters"], [12, 3, 1, "", "name"], [12, 3, 1, "", "parameters"], [12, 4, 1, "", "transform"]], "optunaz.utils.schema": [[10, 1, 1, "", "add_boolean_guards_for_schema_properties"], [10, 1, 1, "", "addsibling"], [10, 1, 1, "", "addtitles"], [10, 1, 1, "", "copytitle"], [10, 1, 1, "", "create_dependency"], [10, 1, 1, "", "delsibling"], [10, 1, 1, "", "getref"], [10, 1, 1, "", "remove_schema_properties"], [10, 1, 1, "", "replaceenum"], [10, 1, 1, "", "replacekey"], [10, 1, 1, "", "replacevalue"]], "optunaz.utils.tracking": [[10, 2, 1, "", "BuildTrackingData"], [10, 2, 1, "", "Datapoint"], [10, 2, 1, "", "InternalTrackingCallback"], [10, 2, 1, "", "TrackingData"], [10, 1, 1, "", "get_authorization_header"], [10, 1, 1, "", "removeprefix"], [10, 1, 1, "", "round_scores"], [10, 1, 1, "", "track_build"]], "optunaz.utils.tracking.BuildTrackingData": [[10, 3, 1, "", "response_column_name"], [10, 3, 1, "", "test_points"], [10, 3, 1, "", "test_scores"]], "optunaz.utils.tracking.Datapoint": [[10, 3, 1, "", "expected"], [10, 3, 1, "", "predicted"], [10, 3, 1, "", "smiles"]], "optunaz.utils.tracking.InternalTrackingCallback": [[10, 3, 1, "", "optconfig"], [10, 3, 1, "", "trial_number_offset"]], "optunaz.utils.tracking.TrackingData": [[10, 3, 1, "", "all_cv_test_scores"], [10, 3, 1, "", "buildconfig"], [10, 3, 1, "", "scoring"], [10, 3, 1, "", "trial_number"], [10, 3, 1, "", "trial_state"], [10, 3, 1, "", "trial_value"]], "optunaz.visualizer": [[8, 2, 1, "", "Visualizer"]], "optunaz.visualizer.Visualizer": [[8, 4, 1, "", "plot_by_configuration"], [8, 4, 1, "", "plot_contour"], [8, 4, 1, "", "plot_history"], [8, 4, 1, "", "plot_parallel_coordinate"], [8, 4, 1, "", "plot_slice"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "exception", "Python exception"]}, "titleterms": {"qsartuna": [0, 4, 6, 7], "\ud80c\udd9b": 0, "qsar": 0, "us": 0, "optim": [0, 6], "hyperparamet": 0, "tune": 0, "formerli": 0, "optuna": 0, "az": 0, "qptuna": 0, "background": [0, 6], "The": [0, 6], "three": [0, 6], "step": [0, 6], "process": [0, 6], "json": 0, "base": [0, 7], "command": 0, "line": 0, "interfac": 0, "configur": [0, 6], "file": [0, 6], "run": [0, 6], "via": 0, "singulart": 0, "submit": 0, "slurm": 0, "model": [0, 6], "option": [0, 6], "inspect": 0, "from": [0, 6, 7], "python": 0, "jupyt": 0, "notebook": 0, "avail": [1, 2, 3, 13, 14], "algorithm": [1, 6], "adaboostclassifi": 1, "lasso": 1, "kneighborsclassifi": 1, "kneighborsregressor": 1, "logisticregress": 1, "plsregress": 1, "randomforestclassifi": 1, "randomforestregressor": 1, "ridg": 1, "svc": 1, "svr": 1, "xgbregressor": 1, "prfclassifi": 1, "chempropregressor": 1, "chempropclassifi": 1, "chemprophyperoptclassifi": 1, "chemprophyperoptregressor": 1, "chemprophyperoptregressorpretrain": 1, "calibratedclassifiercvwithva": 1, "mapi": [1, 6], "dedupl": [2, 7, 12], "keepfirst": 2, "keeplast": 2, "keeprandom": 2, "keepmin": 2, "keepmax": 2, "keepavg": 2, "keepmedian": 2, "keepkeepallnodedupl": 2, "descriptor": [3, 6, 8], "avalon": 3, "ecfp": 3, "ecfp_count": 3, "pathfp": 3, "maccs_kei": 3, "unscaledphyschemdescriptor": 3, "unscaledjazzydescriptor": 3, "unscaledzscalesdescriptor": 3, "physchemdescriptor": 3, "jazzydescriptor": 3, "precomputeddescriptorfromfil": 3, "zscale": [3, 14], "smilesfromfil": 3, "smilesandsideinfofromfil": 3, "scaleddescriptor": 3, "compositedescriptor": 3, "welcom": 4, "document": 4, "develop": 4, "optunaz": [5, 8, 9, 10, 11, 12], "cli": 6, "tutori": 6, "thi": 6, "prepar": 6, "regress": 6, "exampl": 6, "creat": 6, "visual": [6, 8], "progress": 6, "pick": 6, "best": [6, 7], "trial": 6, "build": 6, "merg": 6, "preprocess": [6, 7, 12], "split": [6, 7], "data": [6, 7], "train": 6, "test": 6, "set": 6, "remov": 6, "duplic": [6, 7], "dataset": 6, "choos": 6, "score": 6, "function": 6, "advanc": 6, "functoinail": 6, "probabilist": [6, 7], "random": [6, 7, 13], "forest": 6, "prf": 6, "interlud": [6, 7], "cautionari": 6, "advic": 6, "y": 6, "respons": 6, "column": 6, "valid": 6, "chemprop": 6, "simpl": 6, "separ": 6, "shallow": 6, "method": 6, "default": 6, "behavior": 6, "turn": 6, "hyperopt": 6, "within": [6, 7], "functionail": 6, "veri": 6, "larg": 6, "comput": 6, "cost": 6, "A": 6, "note": 6, "mpnn": 6, "search": 6, "space": 6, "side": 6, "inform": 6, "multi": 6, "task": 6, "learn": 6, "mtl": 6, "combin": 6, "onli": 6, "recommend": 6, "long": 6, "time": 6, "pre": 6, "adapt": 6, "transfer": 6, "fingerprint": 6, "encod": 6, "latent": 6, "represent": [6, 7], "probabl": 6, "calibr": 6, "classif": 6, "uncertainti": 6, "estim": 6, "vennab": 6, "ensembl": 6, "dropout": 6, "explain": [6, 8], "shap": 6, "interpret": 6, "log": [6, 7], "transform": [6, 7, 12, 14], "covari": 6, "one": 6, "e": 6, "g": 6, "dose": 6, "point": 6, "co": 6, "variat": 6, "proteochemometr": 6, "pcm": 6, "more": 6, "vectorfromsmil": 6, "z": 6, "scale": 6, "object": [6, 8], "priorit": 6, "perform": [6, 7], "standard": 6, "deviat": 6, "further": 6, "precomput": 6, "introduct": 7, "translat": 7, "sdf": 7, "csv": 7, "need": 7, "deal": 7, "compar": 7, "differ": 7, "unif": 7, "strategi": 7, "tempor": [7, 13], "stratifi": [7, 13], "scaffold": 7, "input": 7, "user": 7, "import": 7, "logarithm": 7, "dataread": [7, 8], "threshold": 7, "ptr": [7, 14], "experiment": 7, "error": 7, "definit": 7, "implement": 7, "conclus": 7, "calcul": 7, "evalu": [7, 8], "reproduc": 7, "practic": 7, "packag": [8, 9, 10, 11, 12], "subpackag": [8, 10], "submodul": [8, 9, 10, 11, 12], "builder": 8, "modul": [8, 9, 10, 11, 12], "metirc": 8, "model_writ": 8, "optbuild": 8, "predict": 8, "schemagen": 8, "three_step_opt_build_merg": 8, "content": [8, 9, 10, 11, 12], "config": 9, "build_from_opt": 9, "buildconfig": 9, "optconfig": 9, "util": [10, 11, 12], "files_path": 10, "load_json": 10, "mlflow": 10, "schema": 10, "track": 10, "enum": 11, "building_configuration_enum": 11, "configuration_enum": 11, "interface_enum": 11, "model_runner_enum": 11, "objective_enum": 11, "optimization_configuration_enum": 11, "prediction_configuration_enum": 11, "return_values_enum": 11, "visualization_enum": 11, "splitter": [12, 13], "predefin": 13, "scaffoldsplit": 13, "modeldatatransform": 14, "vectorfromcolumn": 14}, "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, "nbsphinx": 4, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file