diff --git a/AA1000_simulation_10MC_50exp_1batch.png b/AA1000_simulation_10MC_50exp_1batch.png
deleted file mode 100644
index 4e7e429..0000000
Binary files a/AA1000_simulation_10MC_50exp_1batch.png and /dev/null differ
diff --git a/can_baybe-inhibitor.ipynb b/can_baybe-inhibitor.ipynb
index 271be05..a1d5dbd 100644
--- a/can_baybe-inhibitor.ipynb
+++ b/can_baybe-inhibitor.ipynb
@@ -30,7 +30,7 @@
},
{
"cell_type": "code",
- "execution_count": 114,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
@@ -65,48 +65,48 @@
"
\n",
" \n",
" 0 | \n",
- " C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O | \n",
- " 0.0 | \n",
- " 2.0 | \n",
- " 5.000000e-07 | \n",
- " 2 | \n",
- " 53.85 | \n",
+ " C(=O)(C(=O)[O-])[O-] | \n",
+ " 24.0 | \n",
+ " 4.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 20.00 | \n",
"
\n",
" \n",
" 1 | \n",
- " C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O | \n",
- " 0.0 | \n",
- " 2.0 | \n",
- " 1.000000e-06 | \n",
- " 2 | \n",
- " 58.55 | \n",
+ " C(=O)(C(=O)[O-])[O-] | \n",
+ " 24.0 | \n",
+ " 7.0 | \n",
+ " 0.0005 | \n",
+ " 0.05 | \n",
+ " 12.35 | \n",
"
\n",
" \n",
" 2 | \n",
- " C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O | \n",
- " 0.0 | \n",
- " 2.0 | \n",
- " 5.000000e-06 | \n",
- " 2 | \n",
- " 67.40 | \n",
+ " C(=O)(C(=O)[O-])[O-] | \n",
+ " 24.0 | \n",
+ " 10.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 20.00 | \n",
"
\n",
" \n",
" 3 | \n",
" C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O | \n",
- " 0.0 | \n",
- " 2.0 | \n",
- " 1.000000e-05 | \n",
- " 2 | \n",
- " 86.65 | \n",
+ " 24.0 | \n",
+ " 4.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 30.00 | \n",
"
\n",
" \n",
" 4 | \n",
" C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O | \n",
- " 0.0 | \n",
- " 2.0 | \n",
- " 5.000000e-05 | \n",
- " 2 | \n",
- " 73.90 | \n",
+ " 24.0 | \n",
+ " 7.0 | \n",
+ " 0.0005 | \n",
+ " 0.05 | \n",
+ " -23.95 | \n",
"
\n",
" \n",
" ... | \n",
@@ -118,86 +118,86 @@
" ... | \n",
"
\n",
" \n",
- " 303 | \n",
- " S=c1sc2c([nH]1)cccc2 | \n",
- " 384.0 | \n",
- " -0.6 | \n",
- " 4.200000e-03 | \n",
- " 0 | \n",
- " 70.60 | \n",
+ " 510 | \n",
+ " c1ccc2c(c1)[nH]nn2 | \n",
+ " 24.0 | \n",
+ " 7.0 | \n",
+ " 0.0005 | \n",
+ " 0.05 | \n",
+ " 97.95 | \n",
"
\n",
" \n",
- " 304 | \n",
- " S=c1sc2c([nH]1)cccc2 | \n",
- " 384.0 | \n",
- " -0.6 | \n",
- " 5.300000e-03 | \n",
- " 0 | \n",
- " 79.77 | \n",
+ " 511 | \n",
+ " c1ccc2c(c1)[nH]nn2 | \n",
+ " 24.0 | \n",
+ " 10.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 90.00 | \n",
"
\n",
" \n",
- " 305 | \n",
- " S=c1sc2c([nH]1)cccc2 | \n",
- " 384.0 | \n",
- " -0.6 | \n",
- " 6.500000e-03 | \n",
- " 0 | \n",
- " 76.72 | \n",
+ " 512 | \n",
+ " c1ccc2c(c1)[nH]nn2 | \n",
+ " 672.0 | \n",
+ " 7.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 98.00 | \n",
"
\n",
" \n",
- " 306 | \n",
- " S=c1sc2c([nH]1)cccc2 | \n",
- " 384.0 | \n",
- " -0.6 | \n",
- " 7.500000e-03 | \n",
- " 0 | \n",
- " 75.44 | \n",
+ " 513 | \n",
+ " c1ncn[nH]1 | \n",
+ " 24.0 | \n",
+ " 4.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 30.00 | \n",
"
\n",
" \n",
- " 307 | \n",
- " S=c1sc2c([nH]1)cccc2 | \n",
- " 384.0 | \n",
- " -0.6 | \n",
- " 8.500000e-03 | \n",
- " 0 | \n",
- " 77.22 | \n",
+ " 514 | \n",
+ " c1ncn[nH]1 | \n",
+ " 24.0 | \n",
+ " 10.0 | \n",
+ " 0.0010 | \n",
+ " 0.10 | \n",
+ " 90.00 | \n",
"
\n",
" \n",
"\n",
- "308 rows × 6 columns
\n",
+ "515 rows × 6 columns
\n",
""
],
"text/plain": [
- " SMILES Time_h pH Inhib_Concentrat_M \\\n",
- "0 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 0.0 2.0 5.000000e-07 \n",
- "1 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 0.0 2.0 1.000000e-06 \n",
- "2 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 0.0 2.0 5.000000e-06 \n",
- "3 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 0.0 2.0 1.000000e-05 \n",
- "4 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 0.0 2.0 5.000000e-05 \n",
- ".. ... ... ... ... \n",
- "303 S=c1sc2c([nH]1)cccc2 384.0 -0.6 4.200000e-03 \n",
- "304 S=c1sc2c([nH]1)cccc2 384.0 -0.6 5.300000e-03 \n",
- "305 S=c1sc2c([nH]1)cccc2 384.0 -0.6 6.500000e-03 \n",
- "306 S=c1sc2c([nH]1)cccc2 384.0 -0.6 7.500000e-03 \n",
- "307 S=c1sc2c([nH]1)cccc2 384.0 -0.6 8.500000e-03 \n",
+ " SMILES Time_h pH Inhib_Concentrat_M \\\n",
+ "0 C(=O)(C(=O)[O-])[O-] 24.0 4.0 0.0010 \n",
+ "1 C(=O)(C(=O)[O-])[O-] 24.0 7.0 0.0005 \n",
+ "2 C(=O)(C(=O)[O-])[O-] 24.0 10.0 0.0010 \n",
+ "3 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 24.0 4.0 0.0010 \n",
+ "4 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O 24.0 7.0 0.0005 \n",
+ ".. ... ... ... ... \n",
+ "510 c1ccc2c(c1)[nH]nn2 24.0 7.0 0.0005 \n",
+ "511 c1ccc2c(c1)[nH]nn2 24.0 10.0 0.0010 \n",
+ "512 c1ccc2c(c1)[nH]nn2 672.0 7.0 0.0010 \n",
+ "513 c1ncn[nH]1 24.0 4.0 0.0010 \n",
+ "514 c1ncn[nH]1 24.0 10.0 0.0010 \n",
"\n",
" Salt_Concentrat_M Efficiency \n",
- "0 2 53.85 \n",
- "1 2 58.55 \n",
- "2 2 67.40 \n",
- "3 2 86.65 \n",
- "4 2 73.90 \n",
+ "0 0.10 20.00 \n",
+ "1 0.05 12.35 \n",
+ "2 0.10 20.00 \n",
+ "3 0.10 30.00 \n",
+ "4 0.05 -23.95 \n",
".. ... ... \n",
- "303 0 70.60 \n",
- "304 0 79.77 \n",
- "305 0 76.72 \n",
- "306 0 75.44 \n",
- "307 0 77.22 \n",
+ "510 0.05 97.95 \n",
+ "511 0.10 90.00 \n",
+ "512 0.10 98.00 \n",
+ "513 0.10 30.00 \n",
+ "514 0.10 90.00 \n",
"\n",
- "[308 rows x 6 columns]"
+ "[515 rows x 6 columns]"
]
},
- "execution_count": 114,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
@@ -211,36 +211,38 @@
"\n",
"from baybe import Campaign\n",
"from baybe.objective import Objective\n",
- "from baybe.parameters import NumericalDiscreteParameter, SubstanceParameter\n",
+ "from baybe.parameters import NumericalDiscreteParameter, SubstanceParameter, CategoricalParameter\n",
"from baybe.recommenders import RandomRecommender, TwoPhaseMetaRecommender\n",
"from baybe.searchspace import SearchSpace\n",
"from baybe.simulation import simulate_scenarios\n",
"from baybe.targets import NumericalTarget\n",
"\n",
"df_AA2024 = pd.read_excel('data/averaged_filtered_AA2024.xlsx')\n",
+ "df_AA5000 = pd.read_excel('data/averaged_filtered_AA5000.xlsx')\n",
+ "df_AA7075 = pd.read_excel('data/averaged_filtered_AA7075.xlsx')\n",
"df_AA1000 = pd.read_excel('data/averaged_filtered_AA1000.xlsx')\n",
"df_Al = pd.read_excel('data/averaged_filtered_Al.xlsx')\n",
"\n",
- "df_active = df_AA1000\n",
- "df_active"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 115,
- "metadata": {},
- "outputs": [],
- "source": [
- "# SMOKE_TEST = \"SMOKE_TEST\" in os.environ\n",
+ "# change this for campaigns on different datasets\n",
+ "df_active = df_AA2024\n",
+ "\n",
+ "if df_active is df_AA2024:\n",
+ " exp_dataset_name = 'AA2024'\n",
+ "elif df_active is df_AA5000:\n",
+ " exp_dataset_name = 'AA5000'\n",
+ "elif df_active is df_AA7075:\n",
+ " exp_dataset_name = 'AA7075'\n",
+ "elif df_active is df_AA1000:\n",
+ " exp_dataset_name = 'AA1000'\n",
+ "elif df_active is df_Al:\n",
+ " exp_dataset_name = 'Al'\n",
"\n",
- "# N_MC_ITERATIONS = 2 if SMOKE_TEST else 5\n",
- "# N_DOE_ITERATIONS = 2 if SMOKE_TEST else 5\n",
- "# BATCH_SIZE = 1 if SMOKE_TEST else 3"
+ "df_active"
]
},
{
"cell_type": "code",
- "execution_count": 116,
+ "execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
@@ -249,7 +251,7 @@
},
{
"cell_type": "code",
- "execution_count": 117,
+ "execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
@@ -264,7 +266,7 @@
},
{
"cell_type": "code",
- "execution_count": 118,
+ "execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
@@ -358,12 +360,40 @@
" encoding=\"RDKIT\", # optional\n",
" decorrelate=0.7, # optional\n",
" ) \n",
- " ]\n"
+ " ]\n",
+ "# one-hot encoding\n",
+ "parameters_ohe = [\n",
+ "NumericalDiscreteParameter(\n",
+ " name=\"Time_h\",\n",
+ " values=df_active['Time_h'].unique(),\n",
+ " # tolerance = 0.004, assume certain experimental noise for each parameter measurement?\n",
+ "),\n",
+ "NumericalDiscreteParameter(\n",
+ " name=\"pH\",\n",
+ " values=df_active['pH'].unique(),\n",
+ " # tolerance = 0.004\n",
+ " ), \n",
+ "NumericalDiscreteParameter( # Set this as continuous, the values seem quite small?\n",
+ " name=\"Inhib_Concentrat_M\",\n",
+ " values= df_active['Inhib_Concentrat_M'].unique(),\n",
+ " # tolerance = 0.004\n",
+ " ),\n",
+ "NumericalDiscreteParameter(\n",
+ " name=\"Salt_Concentrat_M\",\n",
+ " values=df_active['Salt_Concentrat_M'].unique(),\n",
+ " # tolerance = 0.004\n",
+ " ),\n",
+ "CategoricalParameter(\n",
+ " name=\"SMILES\",\n",
+ " values=unique_SMILES,\n",
+ " encoding=\"OHE\",\n",
+ " )\n",
+ "]\n"
]
},
{
"cell_type": "code",
- "execution_count": 119,
+ "execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
@@ -378,12 +408,12 @@
"\n",
"searchspace_mordred = SearchSpace.from_dataframe(df = df_no_target, parameters=parameters_mordred)\n",
"\n",
- "\n",
"searchspace_morgan = SearchSpace.from_dataframe(df = df_no_target, parameters=parameters_morgan_fp)\n",
"\n",
- "\n",
"searchspace_rdkit = SearchSpace.from_dataframe(df = df_no_target, parameters=parameters_rdkit)\n",
"\n",
+ "searchspace_ohe = SearchSpace.from_dataframe(df = df_no_target, parameters=parameters_rdkit)\n",
+ "\n",
"\n",
"objective = Objective(\n",
" mode=\"SINGLE\", targets=[NumericalTarget(name=\"Efficiency\", mode=\"MAX\")]\n",
@@ -392,172 +422,159 @@
},
{
"cell_type": "code",
- "execution_count": 120,
+ "execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "SearchSpace(discrete=SubspaceDiscrete(parameters=[NumericalDiscreteParameter(name='Time_h', encoding=None, _values=[0.0, 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 24.0, 48.0, 72.0, 96.0, 120.0, 144.0, 168.0, 192.0, 240.0, 288.0, 336.0, 384.0], tolerance=0.0), NumericalDiscreteParameter(name='pH', encoding=None, _values=[-0.6, -0.4771212547196624, -0.3979400086720376, -0.3010299956639812, -0.1760912590556812, 0.0, 0.3, 0.45, 1.0, 2.0, 7.0, 13.0], tolerance=0.0), NumericalDiscreteParameter(name='Inhib_Concentrat_M', encoding=None, _values=[1e-07, 5e-07, 1e-06, 2e-06, 4e-06, 5e-06, 6e-06, 8e-06, 1e-05, 1.2e-05, 2e-05, 4e-05, 5e-05, 6e-05, 8e-05, 0.0001, 0.0001958863858961802, 0.0002, 0.0003, 0.0003566333808844508, 0.0003917727717923605, 0.0004, 0.0005, 0.0005876591576885406, 0.0006, 0.0007132667617689017, 0.0007835455435847209, 0.0008, 0.0009794319294809011, 0.001, 0.0011, 0.0012, 0.0013, 0.0014, 0.0015, 0.0016, 0.001783166904422254, 0.0018, 0.0019, 0.002, 0.002139800285306705, 0.0025, 0.0026, 0.003, 0.0032, 0.003566333808844508, 0.0039, 0.004, 0.0042, 0.00427960057061341, 0.005, 0.0053, 0.005706134094151214, 0.0065, 0.0075, 0.0085, 0.01, 0.015, 0.02, 0.04, 0.06, 0.08, 0.1], tolerance=0.0), NumericalDiscreteParameter(name='Salt_Concentrat_M', encoding=None, _values=[0.0, 1.0, 2.0], tolerance=0.0), SubstanceParameter(name='SMILES', data={'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O': 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O', 'C(C(CO)([N+](=O)[O-])Br)O': 'C(C(CO)([N+](=O)[O-])Br)O', 'C(CC=O)CC=O': 'C(CC=O)CC=O', 'C1=CC(=C(C=C1F)F)C(CN2C=NC=N2)(CN3C=NC=N3)O': 'C1=CC(=C(C=C1F)F)C(CN2C=NC=N2)(CN3C=NC=N3)O', 'C1=CC(=CN=C1)C=NNC(=S)N': 'C1=CC(=CN=C1)C=NNC(=S)N', 'C1=CC(=NC(=C1)N)N': 'C1=CC(=NC(=C1)N)N', 'C1=CC=C(C=C1)C(C2=CC=CC=C2)(C3=CC=CC=C3Cl)N4C=CN=C4': 'C1=CC=C(C=C1)C(C2=CC=CC=C2)(C3=CC=CC=C3Cl)N4C=CN=C4', 'C1=CC=NC(=C1)C=NNC(=S)N': 'C1=CC=NC(=C1)C=NNC(=S)N', 'C1=CN=C(C=N1)C(=O)N': 'C1=CN=C(C=N1)C(=O)N', 'C1=CN=C(N=C1)N': 'C1=CN=C(N=C1)N', 'C1=CN=CC=C1C=NNC(=S)N': 'C1=CN=CC=C1C=NNC(=S)N', 'C1CCC(=NO)CC1': 'C1CCC(=NO)CC1', 'C1N2CN3CN1CN(C2)C3': 'C1N2CN3CN1CN(C2)C3', 'C=CC1=C(N2C(C(C2=O)NC(=O)C(=NOCC(=O)O)C3=CSC(=N3)N)SC1)C(=O)O': 'C=CC1=C(N2C(C(C2=O)NC(=O)C(=NOCC(=O)O)C3=CSC(=N3)N)SC1)C(=O)O', 'CC(=NO)C': 'CC(=NO)C', 'CC(C)(C)NCC(COC1=CC=CC2=C1CC(C(C2)O)O)O': 'CC(C)(C)NCC(COC1=CC=CC2=C1CC(C(C2)O)O)O', 'CC(C)(C)NCC(COC1=NSN=C1N2CCOCC2)O': 'CC(C)(C)NCC(COC1=NSN=C1N2CCOCC2)O', 'CC(C)NCC(COC1=CC=C(C=C1)CC(=O)N)O': 'CC(C)NCC(COC1=CC=C(C=C1)CC(=O)N)O', 'CC(C)NCC(COC1=CC=CC2=CC=CC=C21)O': 'CC(C)NCC(COC1=CC=CC2=CC=CC=C21)O', 'CC(OC(=O)C)OC(=O)C1=C(CSC2N1C(=O)C2NC(=O)C(=NOC)C3=CC=CO3)COC(=O)N': 'CC(OC(=O)C)OC(=O)C1=C(CSC2N1C(=O)C2NC(=O)C(=NOC)C3=CC=CO3)COC(=O)N', 'CC1=CC=C(C=C1)[N]2N=NC=C2O': 'CC1=CC=C(C=C1)[N]2N=NC=C2O', 'CC1=CN=C(C=N1)C(=O)N': 'CC1=CN=C(C=N1)C(=O)N', 'CC1=NC(=CC=C1)C': 'CC1=NC(=CC=C1)C', 'CCC(=NO)C': 'CCC(=NO)C', 'CCOC(=O)C1=C(C)N=C(S)NC1C2=CC=C(C=C2)Cl': 'CCOC(=O)C1=C(C)N=C(S)NC1C2=CC=C(C=C2)Cl', 'CN(C)CC1CCCCC1(C2=CC(=CC=C2)OC)O': 'CN(C)CC1CCCCC1(C2=CC(=CC=C2)OC)O', 'COC(=O)C1=CC=C(C=C1)[N]2N=NC=C2O': 'COC(=O)C1=CC=C(C=C1)[N]2N=NC=C2O', 'COC1=NC=C(N=C1)C(=O)N': 'COC1=NC=C(N=C1)C(=O)N', 'NC(N)=S': 'NC(N)=S', 'NC1=CCNC(=S)N1': 'NC1=CCNC(=S)N1', 'OC1=C(C=CC=C1)C=NC2=CC=C(C=C2)N=NC3=C(C=CC=C3)N=CC4=C(C=CC=C4)O': 'OC1=C(C=CC=C1)C=NC2=CC=C(C=C2)N=NC3=C(C=CC=C3)N=CC4=C(C=CC=C4)O', 'OC1=CN=N[N]1C2=CC=C(C=C2)Cl': 'OC1=CN=N[N]1C2=CC=C(C=C2)Cl', 'S=c1sc2c([nH]1)cccc2': 'S=c1sc2c([nH]1)cccc2'}, decorrelate=0.7, encoding=)], exp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
- "0 0.0 2.0 5.000000e-07 2 \n",
- "1 0.0 2.0 1.000000e-06 2 \n",
- "2 0.0 2.0 5.000000e-06 2 \n",
- "3 0.0 2.0 1.000000e-05 2 \n",
- "4 0.0 2.0 5.000000e-05 2 \n",
- ".. ... ... ... ... \n",
- "303 384.0 -0.6 4.200000e-03 0 \n",
- "304 384.0 -0.6 5.300000e-03 0 \n",
- "305 384.0 -0.6 6.500000e-03 0 \n",
- "306 384.0 -0.6 7.500000e-03 0 \n",
- "307 384.0 -0.6 8.500000e-03 0 \n",
+ "SearchSpace(discrete=SubspaceDiscrete(parameters=[NumericalDiscreteParameter(name='Time_h', encoding=None, _values=[0.5, 1.0, 2.0, 3.0, 6.0, 24.0, 48.0, 72.0, 96.0, 120.0, 144.0, 168.0, 192.0, 240.0, 288.0, 336.0, 360.0, 384.0, 432.0, 480.0, 528.0, 576.0, 600.0, 624.0, 672.0], tolerance=0.0), NumericalDiscreteParameter(name='pH', encoding=None, _values=[0.0, 3.3, 4.0, 4.4, 5.4, 5.5, 5.6, 7.0, 10.0], tolerance=0.0), NumericalDiscreteParameter(name='Inhib_Concentrat_M', encoding=None, _values=[1e-05, 5e-05, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0008, 0.001, 0.0012, 0.0018, 0.0024, 0.003, 0.005, 0.01, 0.011, 0.021, 0.022, 0.031, 0.033, 0.042, 0.044, 0.05, 0.1], tolerance=0.0), NumericalDiscreteParameter(name='Salt_Concentrat_M', encoding=None, _values=[0.0, 0.01, 0.05, 0.1, 0.5, 0.6], tolerance=0.0), SubstanceParameter(name='SMILES', data={'C(=O)(C(=O)[O-])[O-]': 'C(=O)(C(=O)[O-])[O-]', 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O': 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]', 'C1=CC(=C(C=C1O)O)C=NNC(=S)N': 'C1=CC(=C(C=C1O)O)C=NNC(=S)N', 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]': 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]', 'C1=CC(=CC(=C1)S)C(=O)O': 'C1=CC(=CC(=C1)S)C(=O)O', 'C1=CC2=NNN=C2C=C1Cl': 'C1=CC2=NNN=C2C=C1Cl', 'C1=CC=C(C(=C1)C=NNC(=S)N)O': 'C1=CC=C(C(=C1)C=NNC(=S)N)O', 'C1COCCN1CCCS(=O)(=O)O': 'C1COCCN1CCCS(=O)(=O)O', 'C1N2CN3CN1CN(C2)C3': 'C1N2CN3CN1CN(C2)C3', 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1': 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1', 'CC(=O)O': 'CC(=O)O', 'CC(=O)SSC(=O)C': 'CC(=O)SSC(=O)C', 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C': 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C', 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O': 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O', 'CCCCCCCCCCCCCCCCCC(=O)O': 'CCCCCCCCCCCCCCCCCC(=O)O', 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCOS(=O)(=O)O': 'CCCCCCCCCCCCOS(=O)(=O)O', 'CCCCCCCCCCCCc1ccccc1S([O])([O])O': 'CCCCCCCCCCCCc1ccccc1S([O])([O])O', 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O': 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O', 'CCCCOP(=O)(OCCCC)O': 'CCCCOP(=O)(OCCCC)O', 'CCN(C(=S)S)CC': 'CCN(C(=S)S)CC', 'CCOc1ccc2c(c1)nc([nH]2)S': 'CCOc1ccc2c(c1)nc([nH]2)S', 'CCSc1nnc(s1)N': 'CCSc1nnc(s1)N', 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C': 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C', 'CNCC(C1=CC(=CC=C1)O)O': 'CNCC(C1=CC(=CC=C1)O)O', 'COC(=O)CCCC1=CNC2=CC=CC=C21': 'COC(=O)CCCC1=CNC2=CC=CC=C21', 'COC(=O)n1nnc2ccccc12': 'COC(=O)n1nnc2ccccc12', 'COCCOC(=O)OCSc1nc2c(s1)cccc2': 'COCCOC(=O)OCSc1nc2c(s1)cccc2', 'COc1ccc2c(c1)[nH]c(=S)[nH]2': 'COc1ccc2c(c1)[nH]c(=S)[nH]2', 'COc1cccc(c1)c1n[nH]c(=S)[nH]1': 'COc1cccc(c1)c1n[nH]c(=S)[nH]1', 'CS[C]1N[N]C(=N1)N': 'CS[C]1N[N]C(=N1)N', 'CSc1[nH]c2c(n1)cc(c(c2)C)C': 'CSc1[nH]c2c(n1)cc(c(c2)C)C', 'CSc1nnc(s1)N': 'CSc1nnc(s1)N', 'Cc1cc(C)nc(n1)S': 'Cc1cc(C)nc(n1)S', 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O': 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O', 'Cc1ccc2c(c1)nc([nH]2)S': 'Cc1ccc2c(c1)nc([nH]2)S', 'Cc1n[nH]c(=S)s1': 'Cc1n[nH]c(=S)s1', 'Cc1nsc(c1)N': 'Cc1nsc(c1)N', 'ClC([C]1N[N]C=N1)(Cl)Cl': 'ClC([C]1N[N]C=N1)(Cl)Cl', 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl': 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl', 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O': 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O', 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1': 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1', 'Clc1ccc2c(c1)[nH]c(n2)S': 'Clc1ccc2c(c1)[nH]c(n2)S', 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1': 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1', 'Cn1cnnc1S': 'Cn1cnnc1S', 'Cn1nnnc1S': 'Cn1nnnc1S', 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]': 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]', 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O': 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O', 'NCC(=O)O': 'NCC(=O)O', 'NO': 'NO', 'Nc1cc(N)nc(n1)S': 'Nc1cc(N)nc(n1)S', 'Nc1cc(S)nc(n1)N': 'Nc1cc(S)nc(n1)N', 'Nc1ccc2c(c1)sc(=S)[nH]2': 'Nc1ccc2c(c1)sc(=S)[nH]2', 'Nc1ccnc(n1)S': 'Nc1ccnc(n1)S', 'Nc1n[nH]c(=S)s1': 'Nc1n[nH]c(=S)s1', 'Nc1n[nH]c(n1)S': 'Nc1n[nH]c(n1)S', 'Nc1n[nH]cn1': 'Nc1n[nH]cn1', 'Nc1nc([nH]n1)C(=O)O': 'Nc1nc([nH]n1)C(=O)O', 'Nc1ncncc1N': 'Nc1ncncc1N', 'Nn1c(NN)nnc1S': 'Nn1c(NN)nnc1S', 'Nn1c(S)nnc1c1ccccc1': 'Nn1c(S)nnc1c1ccccc1', 'Nn1cnnc1': 'Nn1cnnc1', 'O/N=C(/C(=N/O)/C)\\\\C': 'O/N=C(/C(=N/O)/C)\\\\C', 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1': 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1', 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]': 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]', 'OC(=O)/C=C/c1ccccc1': 'OC(=O)/C=C/c1ccccc1', 'OC(=O)CCCCC(=O)O': 'OC(=O)CCCCC(=O)O', 'OC(=O)CCCCCCCCCCCCCCC(=O)O': 'OC(=O)CCCCCCCCCCCCCCC(=O)O', 'OC(=O)CCS': 'OC(=O)CCS', 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O': 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O', 'OC(=O)CS': 'OC(=O)CS', 'OC(=O)Cn1nnnc1S': 'OC(=O)Cn1nnnc1S', 'OC(=O)c1ccc(=S)[nH]c1': 'OC(=O)c1ccc(=S)[nH]c1', 'OC(=O)c1ccc(cc1)N': 'OC(=O)c1ccc(cc1)N', 'OC(=O)c1ccc(cc1)S': 'OC(=O)c1ccc(cc1)S', 'OC(=O)c1ccc(cc1)c1ccccc1': 'OC(=O)c1ccc(cc1)c1ccccc1', 'OC(=O)c1ccccc1': 'OC(=O)c1ccccc1', 'OC(=O)c1ccccc1O': 'OC(=O)c1ccccc1O', 'OC(=O)c1ccccc1S': 'OC(=O)c1ccccc1S', 'OC(=O)c1ccccn1': 'OC(=O)c1ccccn1', 'OC(=O)c1cccnc1': 'OC(=O)c1cccnc1', 'OC(=O)c1cccnc1S': 'OC(=O)c1cccnc1S', 'OC(=O)c1ccncc1': 'OC(=O)c1ccncc1', 'OC(=O)c1n[nH]c(n1)N': 'OC(=O)c1n[nH]c(n1)N', 'OCC(CO)O': 'OCC(CO)O', 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O', 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O', 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O': 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O', 'O[C@H]1C(=O)OCC1(C)C': 'O[C@H]1C(=O)OCC1(C)C', 'Oc1ccc(cc1)C(=O)O': 'Oc1ccc(cc1)C(=O)O', 'Oc1ccc(cc1)S([O])([O])O': 'Oc1ccc(cc1)S([O])([O])O', 'Oc1cccc2c1nccc2': 'Oc1cccc2c1nccc2', 'Oc1ccccc1c1nnc([nH]1)S': 'Oc1ccccc1c1nnc([nH]1)S', 'On1nnc2c1cccc2': 'On1nnc2c1cccc2', 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C': 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C', 'S=c1[nH]c2c([nH]1)cncn2': 'S=c1[nH]c2c([nH]1)cncn2', 'S=c1[nH]c2c([nH]1)nccn2': 'S=c1[nH]c2c([nH]1)nccn2', 'S=c1[nH]nc([nH]1)c1cccnc1': 'S=c1[nH]nc([nH]1)c1cccnc1', 'S=c1[nH]nc([nH]1)c1ccco1': 'S=c1[nH]nc([nH]1)c1ccco1', 'S=c1[nH]nc([nH]1)c1ccncc1': 'S=c1[nH]nc([nH]1)c1ccncc1', 'S=c1sc2c([nH]1)cccc2': 'S=c1sc2c([nH]1)cccc2', 'SC#N': 'SC#N', 'S[C]1NC2=C[CH]C=NC2=N1': 'S[C]1NC2=C[CH]C=NC2=N1', 'Sc1n[nH]cn1': 'Sc1n[nH]cn1', 'Sc1nc(N)c(c(n1)S)N': 'Sc1nc(N)c(c(n1)S)N', 'Sc1nc(N)c2c(n1)[nH]nc2': 'Sc1nc(N)c2c(n1)[nH]nc2', 'Sc1nc2c([nH]1)cccc2': 'Sc1nc2c([nH]1)cccc2', 'Sc1ncc[nH]1': 'Sc1ncc[nH]1', 'Sc1ncccn1': 'Sc1ncccn1', 'Sc1nnc(s1)S': 'Sc1nnc(s1)S', '[Cl-].[Cl-].[Cl-].[Ce+3]': '[Cl-].[Cl-].[Cl-].[Ce+3]', '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]': '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]', '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]': '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]', '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]': '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]', '[O-]S(=O)[O-].[Na+].[Na+]': '[O-]S(=O)[O-].[Na+].[Na+]', 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]': 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]', 'c1ccc(nc1)c1ccccn1': 'c1ccc(nc1)c1ccccn1', 'c1ccc2c(c1)[nH]nn2': 'c1ccc2c(c1)[nH]nn2', 'c1ncn[nH]1': 'c1ncn[nH]1'}, decorrelate=0.7, encoding=)], exp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
+ "0 24.0 4.0 0.0010 0.10 \n",
+ "1 24.0 7.0 0.0005 0.05 \n",
+ "2 24.0 10.0 0.0010 0.10 \n",
+ "3 24.0 4.0 0.0010 0.10 \n",
+ "4 24.0 7.0 0.0005 0.05 \n",
+ ".. ... ... ... ... \n",
+ "510 24.0 7.0 0.0005 0.05 \n",
+ "511 24.0 10.0 0.0010 0.10 \n",
+ "512 672.0 7.0 0.0010 0.10 \n",
+ "513 24.0 4.0 0.0010 0.10 \n",
+ "514 24.0 10.0 0.0010 0.10 \n",
"\n",
" SMILES \n",
- "0 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
- "1 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
- "2 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
+ "0 C(=O)(C(=O)[O-])[O-] \n",
+ "1 C(=O)(C(=O)[O-])[O-] \n",
+ "2 C(=O)(C(=O)[O-])[O-] \n",
"3 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
"4 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
".. ... \n",
- "303 S=c1sc2c([nH]1)cccc2 \n",
- "304 S=c1sc2c([nH]1)cccc2 \n",
- "305 S=c1sc2c([nH]1)cccc2 \n",
- "306 S=c1sc2c([nH]1)cccc2 \n",
- "307 S=c1sc2c([nH]1)cccc2 \n",
+ "510 c1ccc2c(c1)[nH]nn2 \n",
+ "511 c1ccc2c(c1)[nH]nn2 \n",
+ "512 c1ccc2c(c1)[nH]nn2 \n",
+ "513 c1ncn[nH]1 \n",
+ "514 c1ncn[nH]1 \n",
"\n",
- "[308 rows x 5 columns], metadata= was_recommended was_measured dont_recommend\n",
+ "[515 rows x 5 columns], metadata= was_recommended was_measured dont_recommend\n",
"0 False False False\n",
"1 False False False\n",
"2 False False False\n",
"3 False False False\n",
"4 False False False\n",
".. ... ... ...\n",
- "303 False False False\n",
- "304 False False False\n",
- "305 False False False\n",
- "306 False False False\n",
- "307 False False False\n",
+ "510 False False False\n",
+ "511 False False False\n",
+ "512 False False False\n",
+ "513 False False False\n",
+ "514 False False False\n",
"\n",
- "[308 rows x 3 columns], empty_encoding=False, constraints=[], comp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
- "0 0.0 2.0 5.000000e-07 2 \n",
- "1 0.0 2.0 1.000000e-06 2 \n",
- "2 0.0 2.0 5.000000e-06 2 \n",
- "3 0.0 2.0 1.000000e-05 2 \n",
- "4 0.0 2.0 5.000000e-05 2 \n",
- ".. ... ... ... ... \n",
- "303 384.0 -0.6 4.200000e-03 0 \n",
- "304 384.0 -0.6 5.300000e-03 0 \n",
- "305 384.0 -0.6 6.500000e-03 0 \n",
- "306 384.0 -0.6 7.500000e-03 0 \n",
- "307 384.0 -0.6 8.500000e-03 0 \n",
+ "[515 rows x 3 columns], empty_encoding=False, constraints=[], comp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
+ "0 24.0 4.0 0.0010 0.10 \n",
+ "1 24.0 7.0 0.0005 0.05 \n",
+ "2 24.0 10.0 0.0010 0.10 \n",
+ "3 24.0 4.0 0.0010 0.10 \n",
+ "4 24.0 7.0 0.0005 0.05 \n",
+ ".. ... ... ... ... \n",
+ "510 24.0 7.0 0.0005 0.05 \n",
+ "511 24.0 10.0 0.0010 0.10 \n",
+ "512 672.0 7.0 0.0010 0.10 \n",
+ "513 24.0 4.0 0.0010 0.10 \n",
+ "514 24.0 10.0 0.0010 0.10 \n",
"\n",
" SMILES_RDKIT_MaxAbsEStateIndex SMILES_RDKIT_MinAbsEStateIndex \\\n",
- "0 10.148889 1.357824 \n",
- "1 10.148889 1.357824 \n",
- "2 10.148889 1.357824 \n",
+ "0 8.925926 2.185185 \n",
+ "1 8.925926 2.185185 \n",
+ "2 8.925926 2.185185 \n",
"3 10.148889 1.357824 \n",
"4 10.148889 1.357824 \n",
".. ... ... \n",
- "303 4.975926 0.848333 \n",
- "304 4.975926 0.848333 \n",
- "305 4.975926 0.848333 \n",
- "306 4.975926 0.848333 \n",
- "307 4.975926 0.848333 \n",
+ "510 3.813148 0.914352 \n",
+ "511 3.813148 0.914352 \n",
+ "512 3.813148 0.914352 \n",
+ "513 3.555556 1.444444 \n",
+ "514 3.555556 1.444444 \n",
"\n",
" SMILES_RDKIT_MinEStateIndex SMILES_RDKIT_qed SMILES_RDKIT_SPS \\\n",
- "0 -2.974537 0.454904 10.846154 \n",
- "1 -2.974537 0.454904 10.846154 \n",
- "2 -2.974537 0.454904 10.846154 \n",
+ "0 -2.185185 0.287408 7.333333 \n",
+ "1 -2.185185 0.287408 7.333333 \n",
+ "2 -2.185185 0.287408 7.333333 \n",
"3 -2.974537 0.454904 10.846154 \n",
"4 -2.974537 0.454904 10.846154 \n",
".. ... ... ... \n",
- "303 0.848333 0.596343 10.400000 \n",
- "304 0.848333 0.596343 10.400000 \n",
- "305 0.848333 0.596343 10.400000 \n",
- "306 0.848333 0.596343 10.400000 \n",
- "307 0.848333 0.596343 10.400000 \n",
+ "510 0.914352 0.560736 10.222222 \n",
+ "511 0.914352 0.560736 10.222222 \n",
+ "512 0.914352 0.560736 10.222222 \n",
+ "513 1.444444 0.458207 8.000000 \n",
+ "514 1.444444 0.458207 8.000000 \n",
"\n",
- " SMILES_RDKIT_MolWt ... SMILES_RDKIT_fr_allylic_oxid \\\n",
- "0 189.099 ... 0 \n",
- "1 189.099 ... 0 \n",
- "2 189.099 ... 0 \n",
- "3 189.099 ... 0 \n",
- "4 189.099 ... 0 \n",
- ".. ... ... ... \n",
- "303 167.258 ... 0 \n",
- "304 167.258 ... 0 \n",
- "305 167.258 ... 0 \n",
- "306 167.258 ... 0 \n",
- "307 167.258 ... 0 \n",
+ " SMILES_RDKIT_MolWt ... SMILES_RDKIT_fr_nitro \\\n",
+ "0 88.018 ... 0 \n",
+ "1 88.018 ... 0 \n",
+ "2 88.018 ... 0 \n",
+ "3 189.099 ... 0 \n",
+ "4 189.099 ... 0 \n",
+ ".. ... ... ... \n",
+ "510 119.127 ... 0 \n",
+ "511 119.127 ... 0 \n",
+ "512 119.127 ... 0 \n",
+ "513 69.067 ... 0 \n",
+ "514 69.067 ... 0 \n",
"\n",
- " SMILES_RDKIT_fr_aryl_methyl SMILES_RDKIT_fr_bicyclic \\\n",
- "0 0 0 \n",
- "1 0 0 \n",
- "2 0 0 \n",
- "3 0 0 \n",
- "4 0 0 \n",
- ".. ... ... \n",
- "303 0 1 \n",
- "304 0 1 \n",
- "305 0 1 \n",
- "306 0 1 \n",
- "307 0 1 \n",
+ " SMILES_RDKIT_fr_nitro_arom_nonortho SMILES_RDKIT_fr_oxime \\\n",
+ "0 0 0 \n",
+ "1 0 0 \n",
+ "2 0 0 \n",
+ "3 0 0 \n",
+ "4 0 0 \n",
+ ".. ... ... \n",
+ "510 0 0 \n",
+ "511 0 0 \n",
+ "512 0 0 \n",
+ "513 0 0 \n",
+ "514 0 0 \n",
"\n",
- " SMILES_RDKIT_fr_ether SMILES_RDKIT_fr_halogen \\\n",
- "0 0 0 \n",
- "1 0 0 \n",
- "2 0 0 \n",
- "3 0 0 \n",
- "4 0 0 \n",
- ".. ... ... \n",
- "303 0 0 \n",
- "304 0 0 \n",
- "305 0 0 \n",
- "306 0 0 \n",
- "307 0 0 \n",
+ " SMILES_RDKIT_fr_para_hydroxylation SMILES_RDKIT_fr_phos_acid \\\n",
+ "0 0 0 \n",
+ "1 0 0 \n",
+ "2 0 0 \n",
+ "3 0 0 \n",
+ "4 0 0 \n",
+ ".. ... ... \n",
+ "510 1 0 \n",
+ "511 1 0 \n",
+ "512 1 0 \n",
+ "513 0 0 \n",
+ "514 0 0 \n",
"\n",
- " SMILES_RDKIT_fr_morpholine SMILES_RDKIT_fr_oxime \\\n",
- "0 0 0 \n",
- "1 0 0 \n",
- "2 0 0 \n",
- "3 0 0 \n",
- "4 0 0 \n",
- ".. ... ... \n",
- "303 0 0 \n",
- "304 0 0 \n",
- "305 0 0 \n",
- "306 0 0 \n",
- "307 0 0 \n",
+ " SMILES_RDKIT_fr_pyridine SMILES_RDKIT_fr_quatN SMILES_RDKIT_fr_sulfide \\\n",
+ "0 0 0 0 \n",
+ "1 0 0 0 \n",
+ "2 0 0 0 \n",
+ "3 0 0 0 \n",
+ "4 0 0 0 \n",
+ ".. ... ... ... \n",
+ "510 0 0 0 \n",
+ "511 0 0 0 \n",
+ "512 0 0 0 \n",
+ "513 0 0 0 \n",
+ "514 0 0 0 \n",
"\n",
- " SMILES_RDKIT_fr_priamide SMILES_RDKIT_fr_pyridine \\\n",
- "0 0 0 \n",
- "1 0 0 \n",
- "2 0 0 \n",
- "3 0 0 \n",
- "4 0 0 \n",
- ".. ... ... \n",
- "303 0 0 \n",
- "304 0 0 \n",
- "305 0 0 \n",
- "306 0 0 \n",
- "307 0 0 \n",
+ " SMILES_RDKIT_fr_tetrazole SMILES_RDKIT_fr_thiazole \n",
+ "0 0 0 \n",
+ "1 0 0 \n",
+ "2 0 0 \n",
+ "3 0 0 \n",
+ "4 0 0 \n",
+ ".. ... ... \n",
+ "510 0 0 \n",
+ "511 0 0 \n",
+ "512 0 0 \n",
+ "513 0 0 \n",
+ "514 0 0 \n",
"\n",
- " SMILES_RDKIT_fr_thiazole \n",
- "0 0 \n",
- "1 0 \n",
- "2 0 \n",
- "3 0 \n",
- "4 0 \n",
- ".. ... \n",
- "303 1 \n",
- "304 1 \n",
- "305 1 \n",
- "306 1 \n",
- "307 1 \n",
- "\n",
- "[308 rows x 79 columns]), continuous=SubspaceContinuous(parameters=[], constraints_lin_eq=[], constraints_lin_ineq=[]))"
+ "[515 rows x 94 columns]), continuous=SubspaceContinuous(parameters=[], constraints_lin_eq=[], constraints_lin_ineq=[]))"
]
},
- "execution_count": 120,
+ "execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
@@ -568,13 +585,14 @@
},
{
"cell_type": "code",
- "execution_count": 121,
+ "execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"campaign_mordred = Campaign(searchspace=searchspace_mordred, objective=objective)\n",
"campaign_morgan = Campaign(searchspace=searchspace_morgan, objective=objective)\n",
"campaign_rdkit = Campaign(searchspace=searchspace_rdkit, objective=objective)\n",
+ "campaign_ohe = Campaign(searchspace=searchspace_ohe, objective=objective)\n",
"\n",
"campaign_rand_mordred = Campaign(\n",
" searchspace=searchspace_mordred,\n",
@@ -595,146 +613,216 @@
},
{
"cell_type": "code",
- "execution_count": 122,
+ "execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"scenarios = {\"Mordred\": campaign_mordred, #\"Random\": campaign_rand_mordred,\n",
" \"Morgan\": campaign_morgan, #\"Morgan Random\": campaign_rand_morgan,\n",
- " \"RDKIT\": campaign_rdkit, \"Random\": campaign_rand_rdkit\n",
+ " \"RDKIT\": campaign_rdkit,\n",
+ " \"OHE\": campaign_ohe, \n",
+ " \"Random\": campaign_rand_rdkit\n",
" }"
]
},
{
"cell_type": "code",
- "execution_count": 128,
+ "execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
- " 0%| | 0/40 [00:00, ?it/s]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 0%| | 0/50 [00:00, ?it/s]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 2%|2 | 1/50 [00:19<16:09, 19.79s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 4%|4 | 2/50 [00:33<13:13, 16.53s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 6%|6 | 3/50 [00:48<12:34, 16.05s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 8%|8 | 4/50 [01:04<12:26, 16.24s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 2%|2 | 1/40 [00:14<09:26, 14.52s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 10%|# | 5/50 [01:21<12:17, 16.39s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 5%|5 | 2/40 [00:27<08:35, 13.58s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 12%|#2 | 6/50 [01:37<11:56, 16.29s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 8%|7 | 3/40 [00:40<08:23, 13.61s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 14%|#4 | 7/50 [01:49<11:14, 15.69s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 10%|# | 4/40 [00:54<08:10, 13.61s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 16%|#6 | 8/50 [02:07<11:08, 15.91s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 12%|#2 | 5/40 [01:07<07:52, 13.51s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 18%|#8 | 9/50 [02:19<10:36, 15.52s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 15%|#5 | 6/40 [01:21<07:42, 13.62s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-08 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-07 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-06 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-05 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-04 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-03 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-08 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-07 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-06 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-05 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-04 to the diagonal\n",
+ " warnings.warn(\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/linear_operator/utils/cholesky.py:40: NumericalWarning: A not p.d., added jitter of 1.0e-03 to the diagonal\n",
+ " warnings.warn(\n",
+ " 20%|## | 10/50 [02:34<10:16, 15.40s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 18%|#7 | 7/40 [01:33<07:20, 13.36s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 22%|##2 | 11/50 [02:51<10:08, 15.60s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 20%|## | 8/40 [01:46<07:05, 13.29s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 24%|##4 | 12/50 [03:07<09:53, 15.63s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 22%|##2 | 9/40 [01:59<06:50, 13.25s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 26%|##6 | 13/50 [03:23<09:38, 15.64s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 25%|##5 | 10/40 [02:12<06:36, 13.21s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 28%|##8 | 14/50 [03:40<09:27, 15.77s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 28%|##7 | 11/40 [02:20<06:10, 12.79s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 30%|### | 15/50 [03:57<09:15, 15.87s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 30%|### | 12/40 [02:29<05:48, 12.46s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 32%|###2 | 16/50 [04:13<08:57, 15.82s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 32%|###2 | 13/40 [02:37<05:27, 12.15s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 34%|###4 | 17/50 [04:28<08:41, 15.82s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 35%|###5 | 14/40 [02:46<05:09, 11.92s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 36%|###6 | 18/50 [04:45<08:27, 15.85s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 38%|###7 | 15/40 [02:55<04:52, 11.70s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 38%|###8 | 19/50 [05:02<08:13, 15.92s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 40%|#### | 16/40 [03:03<04:35, 11.48s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 40%|#### | 20/50 [05:16<07:55, 15.85s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 42%|####2 | 17/40 [03:12<04:19, 11.30s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 42%|####2 | 21/50 [05:27<07:32, 15.61s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 45%|####5 | 18/40 [03:20<04:05, 11.15s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 44%|####4 | 22/50 [05:38<07:10, 15.37s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 48%|####7 | 19/40 [03:29<03:51, 11.04s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 46%|####6 | 23/50 [05:49<06:50, 15.19s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 50%|##### | 20/40 [03:39<03:39, 10.96s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 48%|####8 | 24/50 [05:57<06:27, 14.92s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 52%|#####2 | 21/40 [03:46<03:24, 10.78s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 50%|##### | 25/50 [06:08<06:08, 14.74s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 55%|#####5 | 22/40 [03:56<03:13, 10.76s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 52%|#####2 | 26/50 [06:18<05:49, 14.57s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 57%|#####7 | 23/40 [04:08<03:03, 10.80s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 54%|#####4 | 27/50 [06:28<05:31, 14.40s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 60%|###### | 24/40 [04:17<02:51, 10.74s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 56%|#####6 | 28/50 [06:38<05:12, 14.23s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 62%|######2 | 25/40 [04:28<02:40, 10.73s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/optim/fit.py:102: OptimizationWarning: `scipy_minimize` terminated with status 3, displaying original message from `scipy.optimize.minimize`: ABNORMAL_TERMINATION_IN_LNSRCH\n",
+ " warn(\n",
+ " 58%|#####8 | 29/50 [06:48<04:55, 14.09s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 65%|######5 | 26/40 [04:37<02:29, 10.67s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 60%|###### | 30/50 [06:58<04:39, 13.96s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 68%|######7 | 27/40 [04:44<02:17, 10.54s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 62%|######2 | 31/50 [07:09<04:23, 13.85s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 70%|####### | 28/40 [04:53<02:05, 10.47s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 64%|######4 | 32/50 [07:20<04:07, 13.76s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- " 72%|#######2 | 29/40 [05:00<01:53, 10.36s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " 66%|######6 | 33/50 [07:31<03:52, 13.68s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" stdvs = Y.std(dim=-2, keepdim=True)\n",
"/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
" Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
- "100%|##########| 40/40 [05:14<00:00, 7.87s/it]\n"
+ " 68%|######8 | 34/50 [07:39<03:36, 13.53s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 70%|####### | 35/50 [07:50<03:21, 13.44s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 72%|#######2 | 36/50 [08:01<03:07, 13.36s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 74%|#######4 | 37/50 [08:11<02:52, 13.28s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ " 76%|#######6 | 38/50 [08:21<02:38, 13.18s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/optim/fit.py:102: OptimizationWarning: `scipy_minimize` terminated with status 3, displaying original message from `scipy.optimize.minimize`: ABNORMAL_TERMINATION_IN_LNSRCH\n",
+ " warn(\n",
+ " 78%|#######8 | 39/50 [08:31<02:24, 13.11s/it]/home/vscode/.local/lib/python3.10/site-packages/botorch/models/transforms/outcome.py:304: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " stdvs = Y.std(dim=-2, keepdim=True)\n",
+ "/home/vscode/.local/lib/python3.10/site-packages/botorch/models/utils/assorted.py:194: UserWarning: std(): degrees of freedom is <= 0. Correction should be strictly less than the reduction factor (input numel divided by output numel). (Triggered internally at ../aten/src/ATen/native/ReduceOps.cpp:1760.)\n",
+ " Ymean, Ystd = torch.mean(Y, dim=-2), torch.std(Y, dim=-2)\n",
+ "100%|##########| 50/50 [08:47<00:00, 10.55s/it]\n"
]
}
],
@@ -755,12 +843,21 @@
},
{
"cell_type": "code",
- "execution_count": 129,
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "results.to_excel(f\"./results/{exp_dataset_name}_simulation_{N_MC_ITERATIONS}MC_{N_DOE_ITERATIONS}exp_{BATCH_SIZE}batch.xlsx\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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Op6RkcH333/fSK366crPzweo9vMoPyfql2VZTJ48mSFDhnDqqacCkc/BbreTnJxc6Vr5HOrX2rVrGTx4MD6fj/j4eN5991169OjBt99+K+//SfL666+zcuVKli1bVuWc/HdwcgwaNIg5c+bQtWtX9uzZwx/+8AfOOuss1q1bV++fQYsNM0L81E2aNIl169ZVGqMWJ0fXrl359ttv8Xg8vPXWW4wbN46FCxc2drN+Mnbs2MFvf/tb5s2bh9PpbOzm/GSNHj06+nPv3r0ZNGgQ7du3580338TlctXra7XYYaZWrVphGEaVyui9e/eSmZnZSK366Sp/z+XzODluueUWPvjgAz7//HPatm0bPZ6ZmUkgEKCwsLDS9fI51C+73U6nTp3o378/U6dOpU+fPjz99NPy/p8kK1asoKCggH79+mGaJqZpsnDhQp555hlM0yQjI0M+h0aQnJxMly5d2LJlS73/t9Biw4zdbqd///7Mnz8/esyyLObPn8/gwYMbsWU/Tbm5uWRmZlb6PIqKili6dKl8HvVIKcUtt9zCu+++y2effUZubm6l8/3798dms1X6HDZu3Mj27dvlc2hAlmXh9/vl/T9Jzj33XNauXcu3334bfQwYMICrr746+rN8DidfSUkJW7duJSsrq/7/W4ixSLlZeP3115XD4VBz5sxR69evVzfeeKNKTk5W+fn5jd20Fqm4uFitWrVKrVq1SgHqySefVKtWrVLbtm1TSik1bdo0lZycrP7973+rNWvWqIsvvljl5uaqsrKyRm55y/HrX/9aJSUlqQULFqg9e/ZEH6WlpdFrbr75ZtWuXTv12WefqeXLl6vBgwerwYMHN2KrW5a7775bLVy4UOXl5ak1a9aou+++W2mapj755BOllLz/jaXibCal5HM4GW6//Xa1YMEClZeXpxYvXqxGjhypWrVqpQoKCpRS9fsZtOgwo5RSzz77rGrXrp2y2+1q4MCB6uuvv27sJrVYn3/+uQKqPMaNG6eUikzPvv/++1VGRoZyOBzq3HPPVRs3bmzcRrcw1b3/gJo9e3b0mrKyMvX//t//UykpKSouLk798pe/VHv27Gm8RrcwEydOVO3bt1d2u121bt1anXvuudEgo5S8/43l6DAjn0PDu/zyy1VWVpay2+2qTZs26vLLL1dbtmyJnq/Pz0B2zRZCCCFEs9Zia2aEEEII8dMgYUYIIYQQzZqEGSGEEEI0axJmhBBCCNGsSZgRQgghRLMmYUYIIYQQzZqEGSGEEEI0axJmhBBCCNGsSZgRQvzkaZrGe++919jNEELESMKMEC3E+PHj0TSNadOmVTr+3nvvoWlaI7UqQtO0ah+vv/56o7ar3J49exg9enRjN4M5c+aQnJzc2M0QotmRMCNEC+J0Onnsscc4dOhQYzelitmzZ7Nnz55KjzFjxjRqmwKBAACZmZk4HI5GbYsQInYSZoRoQUaOHElmZiZTp06t9vxDDz3EaaedVunYU089RYcOHaK/jx8/njFjxvDoo4+SkZFBcnIyDz/8MKFQiDvvvJPU1FTatm3L7Nmz69S25ORkMjMzKz2cTicAEydOpHfv3vj9fiASMvr27ct1110HwI8//hjtyTnzzDNxOp2ceuqpLFy4sNJrrFu3jtGjRxMfH09GRgbXXnst+/fvj54/++yzueWWW5g8eTKtWrVi1KhRQOVhpvLXevPNNznrrLNwuVycfvrpbNq0iWXLljFgwADi4+MZPXo0+/btq/T6L774It27d8fpdNKtWzf++te/Rs+V3/edd97hnHPOIS4ujj59+rBkyRIAFixYwIQJE/B4PNGeq4ceegiAv/71r3Tu3Bmn00lGRgaXXnppnd57IVo6CTNCtCCGYfDoo4/y7LPPsnPnzpjv89lnn7F7926++OILnnzySR588EF+/vOfk5KSwtKlS7n55pu56aabTug1KnrmmWfwer3cfffdANx7770UFhby3HPPVbruzjvv5Pbbb2fVqlUMHjyYiy66iAMHDgBQWFjIiBEj6Nu3L8uXL+ejjz5i7969/OpXv6p0j7lz52K321m8eDHPP/98jW168MEHue+++1i5ciWmaXLVVVdx11138fTTT/Pll1+yZcsWHnjggej1//znP3nggQd45JFH2LBhA48++ij3338/c+fOrXTfe++9lzvuuINvv/2WLl26cOWVVxIKhTjzzDN56qmnSExMjPZc3XHHHSxfvpxbb72Vhx9+mI0bN/LRRx8xbNiwE3q/hWhx6mejbyFEYxs3bpy6+OKLlVJKnXHGGWrixIlKKaXeffddVf6f+oMPPqj69OlT6XnTp09X7du3r3Sf9u3bq3A4HD3WtWtXddZZZ0V/D4VCyu12q9dee61WbQOU0+lUbre70mPbtm3Ra7766itls9nU/fffr0zTVF9++WX0XF5engLUtGnToseCwaBq27ateuyxx5RSSv3xj39U559/fqXX3bFjhwLUxo0blVJKDR8+XPXt27fa9r377ruVXuvFF1+Mnn/ttdcUoObPnx89NnXqVNW1a9fo7x07dlSvvvpqpfv+8Y9/VIMHD67xvt99950C1IYNG5RSSs2ePVslJSVVusfbb7+tEhMTVVFRUZV2CyEizEZLUUKIBvPYY48xYsQI7rjjjpie37NnT3T9SMdtRkYGp556avR3wzBIS0ujoKCg1vecPn06I0eOrHQsOzs7+vPgwYO54447+OMf/8jvfvc7hg4dWuUegwcPjv5smiYDBgxgw4YNAKxevZrPP/+c+Pj4Ks/bunUrXbp0AaB///61am/v3r2jP2dkZADQq1evSsfK/36v18vWrVu5/vrr+b//+7/oNaFQiKSkpBrvm5WVBUBBQQHdunWrth3nnXce7du355RTTuGCCy7gggsu4Je//CVxcXG1+juE+CmQMCNECzRs2DBGjRrFPffcw/jx46PHdV1HKVXp2mAwWOX5Nput0u+aplV7zLKsWrcpMzOTTp061XjesiwWL16MYRhs2bKl1vctV1JSwkUXXcRjjz1W5Vx5aABwu921ul/Fv7d8NtjRx8r//pKSEgBeeOEFBg0aVOk+hmEc977Heh8TEhJYuXIlCxYs4JNPPuGBBx7goYceYtmyZTLzSYjDpGZGiBZq2rRpvP/++9ECU4DWrVuTn59fKdB8++23jdC6qp544gm+//57Fi5cyEcffVRtgfHXX38d/TkUCrFixQq6d+8OQL9+/fjuu+/o0KEDnTp1qvSobYCJVUZGBtnZ2fzwww9VXjs3N7fW97Hb7YTD4SrHTdNk5MiRPP7446xZs4Yff/yRzz77rD7/BCGaNemZEaKF6tWrF1dffTXPPPNM9NjZZ5/Nvn37ePzxx7n00kv56KOP+PDDD0lMTGzw9hQWFpKfn1/pWEJCAm63m1WrVvHAAw/w1ltvMWTIEJ588kl++9vfMnz4cE455ZTo9TNmzKBz5850796d6dOnc+jQISZOnAjApEmTeOGFF7jyyiu56667SE1NZcuWLbz++uu8+OKLVXpI6tsf/vAHbr31VpKSkrjgggvw+/0sX76cQ4cOMWXKlFrdo0OHDpSUlDB//nz69OlDXFwcn332GT/88APDhg0jJSWF//3vf1iWRdeuXRv07xGiOZGeGSFasIcffrjSEEb37t3561//yowZM+jTpw/ffPNNzHU1dTVhwgSysrIqPZ599ll8Ph/XXHMN48eP56KLLgLgxhtv5JxzzuHaa6+t1FMxbdo0pk2bRp8+fVi0aBH/+c9/aNWqFRCpv1m8eDHhcJjzzz+fXr16MXnyZJKTkyvV/zSUG264gRdffJHZs2fTq1cvhg8fzpw5c+rUM3PmmWdy8803c/nll9O6dWsef/xxkpOTeeeddxgxYgTdu3fn+eef57XXXqNnz54N+NcI0bxo6ugBdCGEaGJ+/PFHcnNzWbVqVZV1coQQQnpmhBBCCNGsSZgRQpyQRx99lPj4+GofTWG/IyFEyyfDTEKIE3Lw4EEOHjxY7TmXy0WbNm1OcouEED81EmaEEEII0azJMJMQQgghmjUJM0IIIYRo1iTMCCGEEKJZkzAjhBBCiGZNwowQQgghmjUJM0IIIYRo1iTMCCGEEKJZkzAjhBBCiGbt/wPZfXBTOahe3AAAAABJRU5ErkJggg==",
+ "image/png": "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27e36XvQGl3aHHDrrbfygx/8YJ9lli9fzoQJE1p0ve985zvp55MnT6a6upof/ehHXH/99W2u42233cbcuXPT2xUVFb0+QPJcF8OyCOshDKNW1lQTQogMtY7HpNtbn6t6/Lj+/PL8yTz13ka+clQJX/39+/xn1c5WXePTu2YTDbX+1n3RRRdx2223sX79egAWLFjAk08+yRtvvAFAdXU1Dz74IPPmzeP0008H4Le//S3z58/n4Ycf5uabb05f66677uKUU04BoKqqiocffpg//vGPfO5znwPgscceY9iwYY3qcPLJJ3PTTTelt6+88kouvPDCdOL2uHHj+MUvfsGJJ57Igw8+yIYNG3jxxRd59913OeqoowB4+OGHmThxYqvff2t1aXB000037TcRbPTo0W2+/rRp0/je975HPB7Htm0GDRrEtm3bssps27aNvLy8dD9sQ7ZtpxfZ7St818XMzUH3dQxD1lQTQoiO8J9VO3nqvY187cQx/N+/17Q6MGqP4uJizjzzTObNm4dSijPPPJP+/funj69ZswbHcZgxY0Z6n2VZHH300SxfvjzrWkceeWTWeYlEgmnTpqX3FRUVMX78+EZ1yDwPYOnSpXz00UdZXWVKKXzfp7S0lM8++wzTNJk6dWr6+IQJE5odsd6RujQ4Ki4upri4uNOuv2TJEgoLC9PBzfTp03nhhReyysyfP5/p06d3Wh16Is9ziUbDaJ4iFDZlpJoQQmSIWAaf3tX6QTy6pmGbOo7nc9UJo7n02JH4rewmi1hGq183Zc6cOekuqwceeKDN14nF2tab0PC8qqoqvva1rzXZuzN8+HA+++yzNr1OR+gxWbYbNmxg9+7dbNiwAc/zWLJkCQBjx44lJyeHf/7zn2zbto1jjjmGcDjM/Pnzueeee/jGN76RvsbVV1/Nr371K2655RbmzJnD66+/ztNPP83zzz/fRe+qe/KVTzgcxnccQnkhsKTlSAghUjRNa1PXVoplBBMVhtsR6LTFaaedRiKRQNO0RiO0x4wZQygUYsGCBYwYMQIIZgZ/77339jlf0ZgxY7Asi0WLFqVHvu3Zs4fPPvuME088cZ/1mTJlCp9++iljx45t8viECRNwXZcPPvgg3a22cuXKA7L4b48Jjm6//XYee+yx9HYqw/5f//oXM2fOxLIsHnjgAW688UaUUowdO5af/vSnfPWrX02fM2rUKJ5//nluvPFGfv7znzNs2DB+97vfyTD+TAp8zScaiqJ8FzMSBaPt69MIIYToHgzDSHeRGUZ2YBaLxbjmmmu4+eabKSoqYvjw4fzwhz+kpqaGK664otlr5uTkcMUVV3DzzTfTr18/BgwYwLe+9S10ff/jvb75zW9yzDHHcN1113HllVcSi8X49NNPmT9/Pr/61a8YP348p512Gl/72td48MEHMU2TG264odk0mI7UY4KjefPm7XOOo9NOO43TTjttv9eZOXMmH374YQfWrHdRnge6gR0Oo3suRqygq6skhBCig+TlNT/6+L777sP3fS6++GIqKys58sgjefnllyksLNznNX/0ox9RVVXFWWedRW5uLjfddBPl5eX7rcthhx3Gv//9b771rW9x/PHHo5RizJgxfOUrX0mXefTRR7nyyis58cQTGThwIN///vezBl91Fk21dVxgH1VRUUF+fj7l5eX7/CXrTnZs2cjrDz+KFYtgx/a9DIhXG6cyXskhU6dT4DoMnXowZvHIA1NRIYTohurq6igtLWXUqFGEw5KD2Z3t62fVmvt3r5rnSLSf77poIYuQYWMaYNiSbySEEKJvkeBIZPFcFyNsY/lghU20kARHQggh+hYJjkQWz3UIhcNoriIUtsCUJmQhhBB9iwRHIounfKKRYNkQMxIGs/suDCiEEEJ0BgmORD0FPj62HQPfxZQ11YQQQvRBEhyJer6P0g1sM4yh+xiyppoQQog+SIIjkaZcH0yNkBXGMBRGZN/D/oUQQojeqMdMAik6n+c4aKaJpZlYNughScYWQgjR90jLkUjzXAfDDmEpCEUtMGUYvxBCiL5HgiOR5jkOVjiC5ftYYRmpJoQQom+S4Eik+fjY4Qi68jCiuV1dHSGEEO102WWXoWkaV199daNj1157LZqmcdlllx34inVzEhyJNA+PSCgSjFSL5XR1dYQQQnSAkpISnnzySWpra9P76urqeOKJJxg+fHibr6uUwnXdjqhityPBkQgohY+GbUUxDIUZkXwjIYToDaZMmUJJSQnPPvtset+zzz7L8OHDmTx5cnpfPB7n+uuvZ8CAAYTDYY477jjee++99PE33ngDTdN48cUXmTp1KrZt89Zbb1FZWcmFF15ILBZj8ODB3H///cycOZMbbrghfe4f/vAHjjzySHJzcxk0aBAXXHAB27dv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Kytr1C86cODA9LHCwkLKysrS+zLLlJWVNfta9957L3feeWcH1r6bUAoPiJpGMIxfCCFErzNv3rwm9996663ceuutAC2eHmDmzJmNymqaxq9+9ausHpjmrtfeaQgOpC5tLrj11lv3ObW4pmmsWLEi65zNmzdz2mmnce655/LVr3610+t42223UV5enn5s3Lix01/zgHA90E3CERtTlg0RQggh0rq05eimm27isssu22eZ0aNHp59v2bKFk046iWOPPZbf/OY3WeUGDRrEtm3bsvaltlOzcTZXZl+zddq2jW3b+30vPY3vuvi6TjhqyUg1IYQQIkOXBkfFxcUUFxe3qOzmzZs56aSTmDp1Ko8++ih6gxyZ6dOn861vfQvHcbCsYCTA/PnzGT9+fHra8+nTp/Paa69xww03pM+bP38+06dP75g31IP4rouuW+TmRmWkmhBCCJGhR2Thbt68mZkzZzJ8+HB+/OMfs2PHDsrKyrJyhS644AJCoRBXXHEFy5Yt46mnnuLnP/85c+fOTZf5n//5H1566SV+8pOfsGLFCr773e/y/vvvc91113XF2+pSruuih0zyciIyUk0IIYTI0CMSsufPn8/q1atZvXo1w4YNyzqWSvDKz8/nlVde4dprr2Xq1Kn079+f22+/PT3HEcCxxx7LE088wbe//W3+93//l3HjxvG3v/2tT85x5LkuoVyLcDRPRqoJIYQQGXpEcHTZZZftNzcJ4LDDDtvvdObnnnsu5557bgfVrOdylSLfMrFy8/dfWAghhOhDpMmgL1LgK4jYsqaaEEII0ZAER32R6+FhEInKMH4hhBCiIQmO+iDleei6QSwnjBaSZGwhhBAikwRHfZDnuGi6Tk5BjoxUE0IIIRqQ4KgP8lwHPWSSm5MPutHV1RFCCNGJNm7cyJw5cxgyZAihUIgRI0bwP//zP+zatStdZubMmVlzAKbMmzcva+HZefPmNbmaRTjcu/7Q7hGj1UTH8lwPK6oTzSvs6qoIIYToRGvXrmX69OkcdNBB/OlPf2LUqFEsW7aMm2++mRdffJF33nknaxH3lsjLy2PlypVZ+zRN68hqdzkJjvog11fEbJNQNKerqyKEEKITXXvttYRCIV555RUikWB08vDhw5k8eTJjxozhW9/6Fg8++GCrrqlp2j6X3eoNJDjqaxR4ShGL2BhhGakmhBCtpZRC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",
"text/plain": [
""
]
@@ -773,15 +870,77 @@
"max_yield = lookup[\"Efficiency\"].max()\n",
"# plot_results = results[results['Scenario'].isin(['Mordred', 'Morgan', 'RDKIT'])]\n",
"\n",
+ "# until 10\n",
+ "limit = 10\n",
+ "sns.lineplot(\n",
+ " data=results, x=\"Num_Experiments\", y=\"Efficiency_CumBest\", hue=\"Scenario\", marker=\"x\"\n",
+ ")\n",
+ "plt.plot([0.5, limit+0.5], [max_yield, max_yield], \"--r\", alpha=0.4)\n",
+ "plt.legend(loc=\"lower right\")\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "plt.xlim(0, limit+1)\n",
+ "plt.savefig(f\"./img/{exp_dataset_name}_simulation_{N_MC_ITERATIONS}MC_{N_DOE_ITERATIONS}exp_{BATCH_SIZE}batch_first10.png\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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fvppjZisrCxGjhzZZGUAQGuUoVCNsGqnEEKIlqW1psJfv9lQhlI4bQbeyiBBrWs9P1wuu9mgQcdTpkzh5Zdf5sILLwTgpZde4tJLL+Xbb78Nxdxyyy289957vPLKK2RkZPDwww8zbtw4Nm7cSGJiYijutttu49FHH6Vr164kJCRw880389133/Hf//6X5ORk7rjjDhYvXsygQYNqlOHRRx/l7rvvZvr06QBs2rSJ8ePH87e//Y2XXnqJXbt2ce2113LttdeGFpyePHkyOTk5fPPNN9jtdq677joKCgrq/fnrq9U0ZWzbto3CwkK2bdtGIBBg6dKlAHTv3p3o6Gj+97//kZ+fzzHHHENERARZWVk8+OCD3HTTTaFrXH311TzzzDPccsstTJkyha+//pq3336bTz75pMnLbyhJjoQQoi2o8Afoe3f9l4A5vkd7nj5/MG/9vJ0/HZ3GFf/+hR827K7XNVbfN45IR/2r7osuuojbb7+drVu3AjB37lzefPPNUHJUVlbGs88+y+zZsznttNMA+Ne//kVWVhYvvvgiN998c+ha9913H6eeeioApaWlvPjii/znP//hlFNOAeCVV16hc+fOtcpw8sknc+ONN4aeX3755Vx44YWhgds9evTgqaee4sQTT+TZZ59l27ZtfPbZZ/z0008cffTRALz44ov06dOn3p+/vlpNcnT33XfzyiuvhJ5XNwV+8803nHTSSdjtdmbNmsUNN9yA1pru3bvz+OOPc8UVV4Rek5mZySeffMINN9zAk08+SefOnXnhhReadBo/gA5oTLsBMg1UCCF+s37YsJu3ft7OVSd245/fbap3YnQkkpKSmDBhArNnz0ZrzYQJE2jfvn3o/KZNm/D7/YwaNSp0zG63M3z4cNasWVPjWsOGDavxOp/Px4gRI0LHEhMT6dWrV60y7P86gGXLlrF8+fIaXWVaa4LBINnZ2axfvx6bzcbQoUND53v37k18fHz9v4B6ajXJ0ezZsw+5xtH48eMZP378r17npJNOYsmSJY1Ysl+nwepWU9JyJIQQrZ3LbrL6vvr/o7q6K80fCHLlCV2ZdGyXenWpVb93Q02ZMoVrr70WgFmzZjX4OlFRUY3yutLSUq666iquu+66WrHp6emsX7++Qe/TGFpNctSqaY0yTelWE0KINkAp1aCurWp20+pFiDiCRKchxo8fj8/n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oH/AACrKyvj46afwerw4DZNTLz6P+MwezVhSIYQQjcHj8ZCdnU1mZmazz5pqjcrKyujUqROPPfbYIVudmsKh7tXh1t8g3WpNT2uUoWT7ECGEEG3SkiVLWLt2LcOHD6e4uJj77rsPgLPOOquFS9Zwkhw1MatZTmHazF+JFEIIIVqnRx99lHXr1uFwOBg6dCg//PBDjaUCWhtJjpqatgZ2KVnnSAghRBs0ePBgFi1a1NLFaFQySrgZKENh2iU5EkIIIVoDSY6amg5iGAamKV+1EEII0RpIjd3EtMZatMuQMUdCCCFEayDJURPTQTBMA2XIVy2EEEK0BlJjNzmNYZqSHAkhhBCthNTYTUxrrGXUpVtNCCGEaBUkOWpiSlvdatDwzQKFEEII0XwkOWpqGkybAUq+aiGEEM1r8uTJKKVQSmG328nMzOSWW27B4/GEYqrPK6WIioqiR48eTJ48udbaRd9++y1KKYqKikLHcnJy6N+/PyeccALFxcU1YvZ/77oeXbp0aaZvof6kxm5qumr3Y0mOhBBCtIDx48eTm5vL5s2bmTlzJv/85z+ZPn16jZiXX36Z3NxcVq1axaxZsygtLWXEiBH8+9//Puh1N23axHHHHUdGRgZffPEFcXFxNc4/+eST5Obmhh77v09ubi4///xz43/YRtIqauwtW7Zw2WWXkZmZicvlolu3bkyfPh2fz1cjbvny5Rx//PFERESQlpbGww8/XOta77zzDr179yYiIoL+/fvz6aefNmnZFWCYSpIjIYQQLcLpdJKamkpaWhoTJ05kzJgxZGVl1YiJj48nNTWVLl26MHbsWN59910uvPBCrr32Wvbu3VvrmsuXL+e4445j5MiRfPjhh7hcrloxcXFxpKamhh77v09qaipJSUlN84EbQauosdeuXUswGOSf//wnq1atYubMmTz33HPccccdoRi3283YsWPJyMhg0aJFPPLII9xzzz08//zzoZh58+Zx/vnnc9lll7FkyRImTpzIxIkTWblyZdMVXoMyDZDZakII0SZorSn3l9fr4an0oLXGU+mp8/nhPrTWR1T2lStXMm/ePBwOx6/G3nDDDZSUlNRKpObNm8eJJ57IOeecw3/+8x9sbXB7rFbxicaPH8/48eNDz7t27cq6det49tlnefTRRwF47bXX8Pl8vPTSSzgcDvr168fSpUt5/PHHufLK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HxMdHU1lZSVerxfDMHjmmWcA6NSpEzfddFMo9s9//jNffPEFb7/9NsOHDw8dHzBgANOnTwegR48ePPPMM8yZM4dTTz2Vr776irVr1/LFF1/QsWNHAB588EFOO+200Otff/11PB4P//73v4mKigLgmWee4YwzzuDvf/87KSkpACQmJvLUU09hGAa9evXi4Ycfpry8nDvuuAOA22+/nRkzZvDjjz9y3nnn1et7qA9JjppQnC0em93R0sUQQggRBravKWTN3BwGj81gyZdb650YNdTo0aN59tlnKSsrY+bMmdhsNs455xwAAoEADz74IG+//TY7d+7E5/Ph9XqJjIyscY0BAwbUeN6hQwcKCgoAWLNmDWlpaaHECGDkyJE14tesWcPAgQNDiRHAqFGjCAaDrFu3LpQc9evXD8PY16mVkpLCUUcdFXpumibt2rULvXdTkeSoKRkGSsYcCSFEm2JzGFz55In1fp1SYNoNApVBBp2aTv+TOlPfXjKbo/6jYaKioujevTsAL730EgMHDuTFF1/ksssu45FHHuHJJ5/kiSeeoH///kRFRXH99dfj8/lqXMNutx/wWRTBYLDeZfk1db1Pc733/iQ5akqGIYtACiFEG6OUqnfX1v5MmwLA5mj++sEwDO644w6mTZvGBRdcwNy5cznrrLO46KKLAGv80Pr16+nbt+9hX7NPnz5s376d3NxcOnToAMCCBQtqxcyePZuysrJQ69HcuXND3WfhRgZkNxXDwDRNlGn/9VghhBCimZx77rmYpsmsWbPo0aMHWVlZzJs3jzVr1nDVVVeRn59fr+uNGTOGnj17MmnSJJYtW8YPP/zAnXfeWSPmwgsvJCIigkmTJrFy5Uq++eYb/vznP3PxxReHutTCSatIjrZs2cJll11GZmYmLpeLbt26MX369BrNflu2bAktdLX/48Ds9Z133qF3795ERETQv39/Pv300yYps2mzYRw1kogO6U1yfSGEEKIhbDYb1157LQ8//DA33ngjQ4YMYdy4cZx00kmkpqYyceLEel3PMAw++OADKioqGD58OJdffjkPPPBAjZjIyEi++OILCgsLOfroo/nDH/7AKaecEhoYHm6UPtJ5gc3g888/56233uL888+ne/furFy5kiuuuIKLL76YRx99FLCSo8zMTL766iv69esXem27du1C/ZXz5s3jhBNO4KGH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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# until 25\n",
+ "limit = 25\n",
+ "\n",
+ "sns.lineplot(\n",
+ " data=results, x=\"Num_Experiments\", y=\"Efficiency_CumBest\", hue=\"Scenario\", marker=\"x\"\n",
+ ")\n",
+ "plt.plot([0.5, N_DOE_ITERATIONS+0.5], [max_yield, max_yield], \"--r\", alpha=0.4)\n",
+ "plt.legend(loc=\"lower right\")\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "plt.xlim(0, N_DOE_ITERATIONS+1)\n",
+ "plt.savefig(f\"./img/{exp_dataset_name}_simulation_{N_MC_ITERATIONS}MC_{N_DOE_ITERATIONS}exp_{BATCH_SIZE}batch_first25.png\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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+NTg4OiVV1457A/93QlqDMBwNPhyCyGECANaa/Ly8mpNXSPCj2EYdO/e/bDXfpWndQsIao3GwFRyuYUQoi2qDoxSU1OJioqSXNswFAwGyc3NZffu3XTp0uWw7pE8rVtC1WwHplO61YQQoq0JBAKhwEhWhQhvKSkp5ObmUllZid3e+GeujC1vEUEMpbCZEhwJIURbU51jFBUV1co1Eb+lujstEAgc1nkkOGoJWlvzHJkyWk0IIdoq6UoLf011j9pMcHT//fdz9NFHExUVRUJCQr1lqudgqvl68803a5X59ttvGT58OE6nk169ejFnzpxmr3tAa5QCuyRkCyGE+B044YQTuPHGG5vl3N26deOJJ55olnNXazPBkc/n47zzzuO66647aLlXXnmF3bt3h15nn312aF9OTg6TJk3ixBNPZMWKFdx4441ceeWVfPHFF81b+argSBkSHAkhhGg5U6ZMQSnFtddeW2fftGnTUEoxZcqUlq9YmGszT+t77rkH4DdbehISEkhPT6933/PPP0/37t159NFHAejfvz8//vgjjz/+OBMmTGjS+taktUYrA1PmORJCCNHCMjMzefPNN3n88ceJjIwErAmc33jjDbp06dLo82qtCQQC2GwNDyV8Pt9hD7dvTm2m5ehQTZs2jeTkZEaNGsXLL79ca2HchQsXMm7cuFrlJ0yYwMKFCw94Pq/Xi8vlqvVqMK0xlUJJzpEQQogWNnz4cDIzM5k7d25o29y5c+nSpQvDhg0LbfN6vdxwww2kpqYSERHBMcccw+LFi0P7v/32W5RSfPbZZ4wYMQKn08mPP/6I2+3msssuIyYmho4dO4YaIGrq1q0b9913H5dddhlxcXFcffXVAPz4448ce+yxREZGkpmZyQ033IDb7Q4dV1BQwBlnnEFkZCTdu3fn9ddfb45LVEe7Co7uvfde3n77bbKysjj33HP5f//v//H000+H9ufl5ZGWllbrmLS0NFwuFxUVFfWec+bMmcTHx4demZmZDa6XrkrIVk0wa6cQQojWpbWm3FfZoJfHH0BrjccfqPf9ob5q/sLfEFOnTq01ifPLL7/M5ZdfXqvMjBkzeO+993j11VdZtmwZvXr1YsKECRQWFtYqd9tttzFr1iyys7MZPHgwt956K9999x3/+9//+PLLL/n2229ZtmxZnTo88sgjDBkyhOXLl/P3v/+dzZs3M3HiRM4991xWrVrFW2+9xY8//sj1118fOmbKlCns2LGDb775hnfffZdnn32WgoKCRl2DhmjVbrXbbruNBx988KBlsrOz6dev3yGd7+9//3vo52HDhuF2u3n44Ye54YYbGl3H22+/nenTp4feu1yuBgdISoOhDAmOhBCiHajwBxhwV8NzVY/tnczTFw7jrcU7OP/ITK769xJ+2Li3Qef45d4JRDVicM8ll1zC7bffzrZt2wCYP38+b775Jt9++y0Abreb5557jjlz5nDqqacC8K9//YusrCxeeuklbr311tC57r33Xk455RQAysrKeOmll/jPf/7DySefDMCrr75K586d69ThpJNO4uabbw69v/LKK7n44otDidu9e/fmqaee4vjjj+e5555j+/btfPbZZ/z8888ceeSRALz00kv079+/wd+/oVo1OLr55pt/MxGsR48ejT7/6NGjue+++/B6vTidTtLT08nPz69VJj8/n7i4uFA/7K85nc7QIruNFQxqDJsER0II8Xv2w8a9vLV4B9cc35N/fre5wYHR4UhJSWHSpEnMmTMHrTWTJk0iOTk5tH/z5s34/X7Gjh0b2ma32xk1ahTZ2dm1zjVy5Mhax/l8PkaPHh3alpSURN++fevUoeZxACtXrmTVqlW1usq01gSDQXJyctiwYQM2m40RI0aE9vfr1++AI9abUqsGRykpKaSkpDTb+VesWEFiYmIouBkzZgyffvpprTJZWVmMGTOm2eoAECSAYYAyZI4MIYRo6yLtJr/c2/BBPIZSOG0G/kCQq4/rweSjuxFsYDdZpL3xuatTp04NdVnNnj270eeJjo5ukuPKysq45ppr6u3d6dKlCxs2bGjU5zSFNjNabfv27RQWFrJ9+3YCgQArVqwAoFevXsTExPDRRx+Rn5/PUUcdRUREBFlZWTzwwAPccsstoXNce+21PPPMM8yYMYOpU6fy9ddf8/bbb/PJJ580b+WDVcnYShKyhRCirVNKNaprq5rdtH5RjjiMQKcxJk6ciM/nQylVZ4R2z549cTgczJ8/n65duwLWzOCLFy8+6HxFPXv2xG63s2jRotDIt6KiIjZs2MDxxx9/0PoMHz6cX375hV69etW7v1+/flRWVrJ06dJQt9r69etbZPHfNhMc3XXXXbz66quh99UZ9t988w0nnHACdrud2bNnc9NNN6G1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M9ZeYUq+kRBCtBuRtkgWXbSowccZysBpOvEH/EwZOIUL+11IUAcb/NkNFR0dTa9evQB4+eWXGTJkCC+99BJXXHHFQY/Lzs4GoHv37rW2//Of/2TGjBmceuqpfPrppxx33HENrlO4axPB0bp16wgGg/zzn/+kV69erFmzhquuugq3280jjzwCgMvlYvz48YwbN47nn3+e1atXM3XqVBISErj66qsBq5/0wgsvZObMmZx++um88cYbnH322SxbtowjjjiieSqvFYa0HAkhRLuhlGpw11ZNdtMOQIQtoqmqdMgMw+Bvf/sb06dP56KLLiIy8sDB1hNPPEFcXBzjxo2rtV0pxQsvvIBhGJx22ml88sknHH/88c1d9RbVJrrVJk6cyCuvvML48ePp0aMHZ555Jrfccgtz584NlXn99dfx+Xy8/PLLDBw4kAsuuIAbbriBxx57LFTmySefZOLEidx6663079+f++67j+HDhzdrv6lhgM1oEzGoEEKI34HzzjsP0zSZPXt2aFtxcTF5eXls27aNrKws/vjHP/LGG2/w3HPPkZCQUOccSimef/55LrvsMk477TS+/fbblvsCLaBNBEf1KSkpISkpKfR+4cKFHHfccbW62SZMmMD69espKioKlfl1BDxhwgQWLjxwv6/X68XlctV6NYwCW5u9zEIIIdoZm83G9ddfz0MPPYTb7Qbg8ssvp2PHjvTr14/rrruOmJgYfv75Zy666KIDnkcpxezZs7n88suZNGkS33zzTUt9hWbXJps0Nm3axNNPPx3qUgPIy8ur0y+alpYW2peYmEheXl5oW80yeXl5B/ysmTNncs899zS6rkqBzWZv9PFCCCFEY82ZM6fe7bfddhu33XYbwCFPD3DCCSfUKauU4plnnqnVA3Og8x3uNAQtqVWbNG677baDTi2ulGLdunW1jtm1axcTJ07kvPPO46qrrmr2Ot5+++2UlJSEXjt27GjwOWS0mhBCCNF2tGrL0c0338yUKVMOWqZHjx6hn3NzcznxxBM5+uijeeGFF2qVS09PJz8/v9a26vfVs3EeqMzBZut0Op04nc7f/C4HpMBshxNkCSGEEO1Vqz61U1JSSElJOaSyu3bt4sQTT2TEiBG88sorGL9aq2zMmDHccccd+P1+7HarGysrK4u+ffuGpj0fM2YM8+bN48Ybbwwdl5WVxZgxY5rm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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# all experiments\n",
"sns.lineplot(\n",
" data=results, x=\"Num_Experiments\", y=\"Efficiency_CumBest\", hue=\"Scenario\", marker=\"x\"\n",
")\n",
- "plt.plot([0.5, N_DOE_ITERATIONS+0.5], [max_yield, max_yield], \"--r\")\n",
+ "plt.plot([0.5, N_DOE_ITERATIONS+0.5], [max_yield, max_yield], \"--r\", alpha=0.4)\n",
"plt.legend(loc=\"lower right\")\n",
"import matplotlib.pyplot as plt\n",
"\n",
"plt.xlim(0, N_DOE_ITERATIONS+1)\n",
- "plt.savefig(\"./AA1000_simulation_10MC_50exp_1batch.png\")"
+ "plt.savefig(f\"./img/{exp_dataset_name}_simulation_{N_MC_ITERATIONS}MC_{N_DOE_ITERATIONS}exp_{BATCH_SIZE}batch.png\")"
]
},
{
@@ -974,691 +1133,15 @@
"results"
]
},
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Non - simulation stuff"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
- "source": [
- "# targets \n",
- "from baybe.targets import NumericalTarget\n",
- "from baybe.objective import Objective\n",
- "\n",
- "target = NumericalTarget(\n",
- " name=\"Efficiency\",\n",
- " mode=\"MAX\",\n",
- ")\n",
- "objective = Objective(mode=\"SINGLE\", targets=[target])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[NumericalDiscreteParameter(name='Time_h', encoding=None, _values=[0.5, 1.0, 2.0, 3.0, 6.0, 24.0, 48.0, 72.0, 96.0, 120.0, 144.0, 168.0, 192.0, 240.0, 288.0, 336.0, 360.0, 384.0, 432.0, 480.0, 528.0, 576.0, 600.0, 624.0, 672.0], tolerance=0.0),\n",
- " NumericalDiscreteParameter(name='pH', encoding=None, _values=[0.0, 3.3, 4.0, 4.4, 5.4, 5.5, 5.6, 7.0, 10.0], tolerance=0.0),\n",
- " NumericalDiscreteParameter(name='Inhib_Concentrat_M', encoding=None, _values=[1e-05, 5e-05, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0008, 0.001, 0.0012, 0.0018, 0.0024, 0.003, 0.005, 0.01, 0.011, 0.021, 0.022, 0.031, 0.033, 0.042, 0.044, 0.05, 0.1], tolerance=0.0),\n",
- " NumericalDiscreteParameter(name='Salt_Concentrat_M', encoding=None, _values=[0.0, 0.01, 0.05, 0.1, 0.5, 0.6], tolerance=0.0),\n",
- " SubstanceParameter(name='SMILES', data={'COCCOC(=O)OCSc1nc2c(s1)cccc2': 'COCCOC(=O)OCSc1nc2c(s1)cccc2', 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O': 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O', 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O': 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O', 'On1nnc2c1cccc2': 'On1nnc2c1cccc2', 'c1ncn[nH]1': 'c1ncn[nH]1', 'Sc1n[nH]cn1': 'Sc1n[nH]cn1', 'S[C]1NC2=C[CH]C=NC2=N1': 'S[C]1NC2=C[CH]C=NC2=N1', 'S=c1[nH]c2c([nH]1)nccn2': 'S=c1[nH]c2c([nH]1)nccn2', 'Sc1ncc[nH]1': 'Sc1ncc[nH]1', 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1': 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1', 'CCSc1nnc(s1)N': 'CCSc1nnc(s1)N', 'CSc1nnc(s1)N': 'CSc1nnc(s1)N', 'Cc1ccc2c(c1)nc([nH]2)S': 'Cc1ccc2c(c1)nc([nH]2)S', 'OC(=O)CS': 'OC(=O)CS', 'Sc1nc2c([nH]1)cccc2': 'Sc1nc2c([nH]1)cccc2', 'OC(=O)c1ccccc1S': 'OC(=O)c1ccccc1S', 'S=c1sc2c([nH]1)cccc2': 'S=c1sc2c([nH]1)cccc2', 'OC(=O)c1cccnc1S': 'OC(=O)c1cccnc1S', 'Sc1ncccn1': 'Sc1ncccn1', 'c1ccc(nc1)c1ccccn1': 'c1ccc(nc1)c1ccccn1', 'Sc1nnc(s1)S': 'Sc1nnc(s1)S', 'Nc1cc(S)nc(n1)N': 'Nc1cc(S)nc(n1)N', 'Nc1nc([nH]n1)C(=O)O': 'Nc1nc([nH]n1)C(=O)O', 'Nc1n[nH]cn1': 'Nc1n[nH]cn1', 'OC(=O)c1n[nH]c(n1)N': 'OC(=O)c1n[nH]c(n1)N', 'Nc1n[nH]c(n1)S': 'Nc1n[nH]c(n1)S', 'CS[C]1N[N]C(=N1)N': 'CS[C]1N[N]C(=N1)N', 'C1=CC(=CC(=C1)S)C(=O)O': 'C1=CC(=CC(=C1)S)C(=O)O', 'OC(=O)CCS': 'OC(=O)CCS', 'Oc1ccccc1c1nnc([nH]1)S': 'Oc1ccccc1c1nnc([nH]1)S', 'Nn1cnnc1': 'Nn1cnnc1', 'Nc1ccnc(n1)S': 'Nc1ccnc(n1)S', 'Nn1c(NN)nnc1S': 'Nn1c(NN)nnc1S', 'Nn1c(S)nnc1c1ccccc1': 'Nn1c(S)nnc1c1ccccc1', 'Sc1nc(N)c2c(n1)[nH]nc2': 'Sc1nc(N)c2c(n1)[nH]nc2', 'Oc1ccc(cc1)C(=O)O': 'Oc1ccc(cc1)C(=O)O', 'OC(=O)c1ccc(cc1)S': 'OC(=O)c1ccc(cc1)S', 'Cn1cnnc1S': 'Cn1cnnc1S', 'Sc1nc(N)c(c(n1)S)N': 'Sc1nc(N)c(c(n1)S)N', 'Nc1ncncc1N': 'Nc1ncncc1N', 'Nc1cc(N)nc(n1)S': 'Nc1cc(N)nc(n1)S', 'Cc1cc(C)nc(n1)S': 'Cc1cc(C)nc(n1)S', 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1': 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1', 'COc1cccc(c1)c1n[nH]c(=S)[nH]1': 'COc1cccc(c1)c1n[nH]c(=S)[nH]1', 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1': 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1', 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]': 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]', 'S=c1[nH]nc([nH]1)c1ccco1': 'S=c1[nH]nc([nH]1)c1ccco1', 'S=c1[nH]nc([nH]1)c1cccnc1': 'S=c1[nH]nc([nH]1)c1cccnc1', 'S=c1[nH]nc([nH]1)c1ccncc1': 'S=c1[nH]nc([nH]1)c1ccncc1', 'Nc1n[nH]c(=S)s1': 'Nc1n[nH]c(=S)s1', 'Cc1nsc(c1)N': 'Cc1nsc(c1)N', 'Clc1ccc2c(c1)[nH]c(n2)S': 'Clc1ccc2c(c1)[nH]c(n2)S', 'CCOc1ccc2c(c1)nc([nH]2)S': 'CCOc1ccc2c(c1)nc([nH]2)S', 'Cn1nnnc1S': 'Cn1nnnc1S', 'OC(=O)Cn1nnnc1S': 'OC(=O)Cn1nnnc1S', 'COc1ccc2c(c1)[nH]c(=S)[nH]2': 'COc1ccc2c(c1)[nH]c(=S)[nH]2', 'Cc1n[nH]c(=S)s1': 'Cc1n[nH]c(=S)s1', 'ClC([C]1N[N]C=N1)(Cl)Cl': 'ClC([C]1N[N]C=N1)(Cl)Cl', 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl': 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl', 'CSc1[nH]c2c(n1)cc(c(c2)C)C': 'CSc1[nH]c2c(n1)cc(c(c2)C)C', 'Nc1ccc2c(c1)sc(=S)[nH]2': 'Nc1ccc2c(c1)sc(=S)[nH]2', 'OC(=O)c1ccc(=S)[nH]c1': 'OC(=O)c1ccc(=S)[nH]c1', 'Oc1cccc2c1nccc2': 'Oc1cccc2c1nccc2', 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C': 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C', 'S=c1[nH]c2c([nH]1)cncn2': 'S=c1[nH]c2c([nH]1)cncn2', 'CC(=O)O': 'CC(=O)O', 'OC(=O)CCCCC(=O)O': 'OC(=O)CCCCC(=O)O', 'OC(=O)c1ccccc1': 'OC(=O)c1ccccc1', 'c1ccc2c(c1)[nH]nn2': 'c1ccc2c(c1)[nH]nn2', 'OC(=O)c1ccc(cc1)c1ccccc1': 'OC(=O)c1ccc(cc1)c1ccccc1', 'OC(=O)/C=C/c1ccccc1': 'OC(=O)/C=C/c1ccccc1', 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O': 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O', 'O[C@H]1C(=O)OCC1(C)C': 'O[C@H]1C(=O)OCC1(C)C', 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O': 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O', 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O', 'CC(=O)SSC(=O)C': 'CC(=O)SSC(=O)C', 'CCCCOP(=O)(OCCCC)O': 'CCCCOP(=O)(OCCCC)O', 'CCN(C(=S)S)CC': 'CCN(C(=S)S)CC', 'O/N=C(/C(=N/O)/C)\\\\C': 'O/N=C(/C(=N/O)/C)\\\\C', 'CCCCCCCCCCCCc1ccccc1S([O])([O])O': 'CCCCCCCCCCCCc1ccccc1S([O])([O])O', 'CCCCCCCCCCCCOS(=O)(=O)O': 'CCCCCCCCCCCCOS(=O)(=O)O', 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O': 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O', 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1': 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1', 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O', 'OCC(CO)O': 'OCC(CO)O', 'NCC(=O)O': 'NCC(=O)O', 'OC(=O)CCCCCCCCCCCCCCC(=O)O': 'OC(=O)CCCCCCCCCCCCCCC(=O)O', 'C1N2CN3CN1CN(C2)C3': 'C1N2CN3CN1CN(C2)C3', 'NO': 'NO', 'COC(=O)CCCC1=CNC2=CC=CC=C21': 'COC(=O)CCCC1=CNC2=CC=CC=C21', 'OC(=O)c1ccncc1': 'OC(=O)c1ccncc1', 'C1COCCN1CCCS(=O)(=O)O': 'C1COCCN1CCCS(=O)(=O)O', 'OC(=O)c1cccnc1': 'OC(=O)c1cccnc1', 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O': 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O', 'C(=O)(C(=O)[O-])[O-]': 'C(=O)(C(=O)[O-])[O-]', 'OC(=O)c1ccc(cc1)N': 'OC(=O)c1ccc(cc1)N', 'Oc1ccc(cc1)S([O])([O])O': 'Oc1ccc(cc1)S([O])([O])O', 'OC(=O)c1ccccn1': 'OC(=O)c1ccccn1', 'OC(=O)c1ccccc1O': 'OC(=O)c1ccccc1O', 'CCCCCCCCCCCCCCCCCC(=O)O': 'CCCCCCCCCCCCCCCCCC(=O)O', 'SC#N': 'SC#N', 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]': 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]', '[O-]S(=O)[O-].[Na+].[Na+]': '[O-]S(=O)[O-].[Na+].[Na+]', 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C': 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C', 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C': 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C', 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]': 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]', '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]': '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]', '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]': '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]', '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]': '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]', '[Cl-].[Cl-].[Cl-].[Ce+3]': '[Cl-].[Cl-].[Cl-].[Ce+3]', 'CNCC(C1=CC(=CC=C1)O)O': 'CNCC(C1=CC(=CC=C1)O)O', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]', 'C1=CC=C(C(=C1)C=NNC(=S)N)O': 'C1=CC=C(C(=C1)C=NNC(=S)N)O', 'C1=CC(=C(C=C1O)O)C=NNC(=S)N': 'C1=CC(=C(C=C1O)O)C=NNC(=S)N', 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O': 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O', 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O': 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O', 'C1=CC2=NNN=C2C=C1Cl': 'C1=CC2=NNN=C2C=C1Cl', 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]': 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]', 'COC(=O)n1nnc2ccccc12': 'COC(=O)n1nnc2ccccc12'}, decorrelate=0.7, encoding=)]"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# parameters\n",
- "parameters = [\n",
- "NumericalDiscreteParameter(\n",
- " name=\"Time_h\",\n",
- " values=df_active['Time_h'].unique(),\n",
- " # tolerance = 0.004, assume certain experimental noise for each parameter measurement?\n",
- "),\n",
- "NumericalDiscreteParameter(\n",
- " name=\"pH\",\n",
- " values=df_active['pH'].unique(),\n",
- " # tolerance = 0.004\n",
- " ), \n",
- "NumericalDiscreteParameter( # Set this as continuous, the values seem quite small?\n",
- " name=\"Inhib_Concentrat_M\",\n",
- " values= df_active['Inhib_Concentrat_M'].unique(),\n",
- " # tolerance = 0.004\n",
- " ),\n",
- "NumericalDiscreteParameter(\n",
- " name=\"Salt_Concentrat_M\",\n",
- " values=df_active['Salt_Concentrat_M'].unique(),\n",
- " # tolerance = 0.004\n",
- " ),\n",
- "SubstanceParameter(\n",
- " name=\"SMILES\",\n",
- " data=smiles_dict,\n",
- " encoding=\"MORDRED\", # optional\n",
- " decorrelate=0.7, # optional\n",
- " ) \n",
- " ]\n",
- "parameters"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "SearchSpace(discrete=SubspaceDiscrete(parameters=[NumericalDiscreteParameter(name='Time_h', encoding=None, _values=[0.5, 1.0, 2.0, 3.0, 6.0, 24.0, 48.0, 72.0, 96.0, 120.0, 144.0, 168.0, 192.0, 240.0, 288.0, 336.0, 360.0, 384.0, 432.0, 480.0, 528.0, 576.0, 600.0, 624.0, 672.0], tolerance=0.0), NumericalDiscreteParameter(name='pH', encoding=None, _values=[0.0, 3.3, 4.0, 4.4, 5.4, 5.5, 5.6, 7.0, 10.0], tolerance=0.0), NumericalDiscreteParameter(name='Inhib_Concentrat_M', encoding=None, _values=[1e-05, 5e-05, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0008, 0.001, 0.0012, 0.0018, 0.0024, 0.003, 0.005, 0.01, 0.011, 0.021, 0.022, 0.031, 0.033, 0.042, 0.044, 0.05, 0.1], tolerance=0.0), NumericalDiscreteParameter(name='Salt_Concentrat_M', encoding=None, _values=[0.0, 0.01, 0.05, 0.1, 0.5, 0.6], tolerance=0.0), SubstanceParameter(name='SMILES', data={'COCCOC(=O)OCSc1nc2c(s1)cccc2': 'COCCOC(=O)OCSc1nc2c(s1)cccc2', 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O': 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O', 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O': 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O', 'On1nnc2c1cccc2': 'On1nnc2c1cccc2', 'c1ncn[nH]1': 'c1ncn[nH]1', 'Sc1n[nH]cn1': 'Sc1n[nH]cn1', 'S[C]1NC2=C[CH]C=NC2=N1': 'S[C]1NC2=C[CH]C=NC2=N1', 'S=c1[nH]c2c([nH]1)nccn2': 'S=c1[nH]c2c([nH]1)nccn2', 'Sc1ncc[nH]1': 'Sc1ncc[nH]1', 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1': 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1', 'CCSc1nnc(s1)N': 'CCSc1nnc(s1)N', 'CSc1nnc(s1)N': 'CSc1nnc(s1)N', 'Cc1ccc2c(c1)nc([nH]2)S': 'Cc1ccc2c(c1)nc([nH]2)S', 'OC(=O)CS': 'OC(=O)CS', 'Sc1nc2c([nH]1)cccc2': 'Sc1nc2c([nH]1)cccc2', 'OC(=O)c1ccccc1S': 'OC(=O)c1ccccc1S', 'S=c1sc2c([nH]1)cccc2': 'S=c1sc2c([nH]1)cccc2', 'OC(=O)c1cccnc1S': 'OC(=O)c1cccnc1S', 'Sc1ncccn1': 'Sc1ncccn1', 'c1ccc(nc1)c1ccccn1': 'c1ccc(nc1)c1ccccn1', 'Sc1nnc(s1)S': 'Sc1nnc(s1)S', 'Nc1cc(S)nc(n1)N': 'Nc1cc(S)nc(n1)N', 'Nc1nc([nH]n1)C(=O)O': 'Nc1nc([nH]n1)C(=O)O', 'Nc1n[nH]cn1': 'Nc1n[nH]cn1', 'OC(=O)c1n[nH]c(n1)N': 'OC(=O)c1n[nH]c(n1)N', 'Nc1n[nH]c(n1)S': 'Nc1n[nH]c(n1)S', 'CS[C]1N[N]C(=N1)N': 'CS[C]1N[N]C(=N1)N', 'C1=CC(=CC(=C1)S)C(=O)O': 'C1=CC(=CC(=C1)S)C(=O)O', 'OC(=O)CCS': 'OC(=O)CCS', 'Oc1ccccc1c1nnc([nH]1)S': 'Oc1ccccc1c1nnc([nH]1)S', 'Nn1cnnc1': 'Nn1cnnc1', 'Nc1ccnc(n1)S': 'Nc1ccnc(n1)S', 'Nn1c(NN)nnc1S': 'Nn1c(NN)nnc1S', 'Nn1c(S)nnc1c1ccccc1': 'Nn1c(S)nnc1c1ccccc1', 'Sc1nc(N)c2c(n1)[nH]nc2': 'Sc1nc(N)c2c(n1)[nH]nc2', 'Oc1ccc(cc1)C(=O)O': 'Oc1ccc(cc1)C(=O)O', 'OC(=O)c1ccc(cc1)S': 'OC(=O)c1ccc(cc1)S', 'Cn1cnnc1S': 'Cn1cnnc1S', 'Sc1nc(N)c(c(n1)S)N': 'Sc1nc(N)c(c(n1)S)N', 'Nc1ncncc1N': 'Nc1ncncc1N', 'Nc1cc(N)nc(n1)S': 'Nc1cc(N)nc(n1)S', 'Cc1cc(C)nc(n1)S': 'Cc1cc(C)nc(n1)S', 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1': 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1', 'COc1cccc(c1)c1n[nH]c(=S)[nH]1': 'COc1cccc(c1)c1n[nH]c(=S)[nH]1', 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1': 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1', 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]': 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]', 'S=c1[nH]nc([nH]1)c1ccco1': 'S=c1[nH]nc([nH]1)c1ccco1', 'S=c1[nH]nc([nH]1)c1cccnc1': 'S=c1[nH]nc([nH]1)c1cccnc1', 'S=c1[nH]nc([nH]1)c1ccncc1': 'S=c1[nH]nc([nH]1)c1ccncc1', 'Nc1n[nH]c(=S)s1': 'Nc1n[nH]c(=S)s1', 'Cc1nsc(c1)N': 'Cc1nsc(c1)N', 'Clc1ccc2c(c1)[nH]c(n2)S': 'Clc1ccc2c(c1)[nH]c(n2)S', 'CCOc1ccc2c(c1)nc([nH]2)S': 'CCOc1ccc2c(c1)nc([nH]2)S', 'Cn1nnnc1S': 'Cn1nnnc1S', 'OC(=O)Cn1nnnc1S': 'OC(=O)Cn1nnnc1S', 'COc1ccc2c(c1)[nH]c(=S)[nH]2': 'COc1ccc2c(c1)[nH]c(=S)[nH]2', 'Cc1n[nH]c(=S)s1': 'Cc1n[nH]c(=S)s1', 'ClC([C]1N[N]C=N1)(Cl)Cl': 'ClC([C]1N[N]C=N1)(Cl)Cl', 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl': 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl', 'CSc1[nH]c2c(n1)cc(c(c2)C)C': 'CSc1[nH]c2c(n1)cc(c(c2)C)C', 'Nc1ccc2c(c1)sc(=S)[nH]2': 'Nc1ccc2c(c1)sc(=S)[nH]2', 'OC(=O)c1ccc(=S)[nH]c1': 'OC(=O)c1ccc(=S)[nH]c1', 'Oc1cccc2c1nccc2': 'Oc1cccc2c1nccc2', 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C': 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C', 'S=c1[nH]c2c([nH]1)cncn2': 'S=c1[nH]c2c([nH]1)cncn2', 'CC(=O)O': 'CC(=O)O', 'OC(=O)CCCCC(=O)O': 'OC(=O)CCCCC(=O)O', 'OC(=O)c1ccccc1': 'OC(=O)c1ccccc1', 'c1ccc2c(c1)[nH]nn2': 'c1ccc2c(c1)[nH]nn2', 'OC(=O)c1ccc(cc1)c1ccccc1': 'OC(=O)c1ccc(cc1)c1ccccc1', 'OC(=O)/C=C/c1ccccc1': 'OC(=O)/C=C/c1ccccc1', 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O': 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O', 'O[C@H]1C(=O)OCC1(C)C': 'O[C@H]1C(=O)OCC1(C)C', 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O': 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O', 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O', 'CC(=O)SSC(=O)C': 'CC(=O)SSC(=O)C', 'CCCCOP(=O)(OCCCC)O': 'CCCCOP(=O)(OCCCC)O', 'CCN(C(=S)S)CC': 'CCN(C(=S)S)CC', 'O/N=C(/C(=N/O)/C)\\\\C': 'O/N=C(/C(=N/O)/C)\\\\C', 'CCCCCCCCCCCCc1ccccc1S([O])([O])O': 'CCCCCCCCCCCCc1ccccc1S([O])([O])O', 'CCCCCCCCCCCCOS(=O)(=O)O': 'CCCCCCCCCCCCOS(=O)(=O)O', 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O': 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O', 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1': 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1', 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O', 'OCC(CO)O': 'OCC(CO)O', 'NCC(=O)O': 'NCC(=O)O', 'OC(=O)CCCCCCCCCCCCCCC(=O)O': 'OC(=O)CCCCCCCCCCCCCCC(=O)O', 'C1N2CN3CN1CN(C2)C3': 'C1N2CN3CN1CN(C2)C3', 'NO': 'NO', 'COC(=O)CCCC1=CNC2=CC=CC=C21': 'COC(=O)CCCC1=CNC2=CC=CC=C21', 'OC(=O)c1ccncc1': 'OC(=O)c1ccncc1', 'C1COCCN1CCCS(=O)(=O)O': 'C1COCCN1CCCS(=O)(=O)O', 'OC(=O)c1cccnc1': 'OC(=O)c1cccnc1', 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O': 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O', 'C(=O)(C(=O)[O-])[O-]': 'C(=O)(C(=O)[O-])[O-]', 'OC(=O)c1ccc(cc1)N': 'OC(=O)c1ccc(cc1)N', 'Oc1ccc(cc1)S([O])([O])O': 'Oc1ccc(cc1)S([O])([O])O', 'OC(=O)c1ccccn1': 'OC(=O)c1ccccn1', 'OC(=O)c1ccccc1O': 'OC(=O)c1ccccc1O', 'CCCCCCCCCCCCCCCCCC(=O)O': 'CCCCCCCCCCCCCCCCCC(=O)O', 'SC#N': 'SC#N', 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]': 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]', '[O-]S(=O)[O-].[Na+].[Na+]': '[O-]S(=O)[O-].[Na+].[Na+]', 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C': 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C', 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C': 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C', 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]': 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]', '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]': '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]', '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]': '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]', '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]': '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]', '[Cl-].[Cl-].[Cl-].[Ce+3]': '[Cl-].[Cl-].[Cl-].[Ce+3]', 'CNCC(C1=CC(=CC=C1)O)O': 'CNCC(C1=CC(=CC=C1)O)O', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]', 'C1=CC=C(C(=C1)C=NNC(=S)N)O': 'C1=CC=C(C(=C1)C=NNC(=S)N)O', 'C1=CC(=C(C=C1O)O)C=NNC(=S)N': 'C1=CC(=C(C=C1O)O)C=NNC(=S)N', 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O': 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O', 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O': 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O', 'C1=CC2=NNN=C2C=C1Cl': 'C1=CC2=NNN=C2C=C1Cl', 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]': 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]', 'COC(=O)n1nnc2ccccc12': 'COC(=O)n1nnc2ccccc12'}, decorrelate=0.7, encoding=)], exp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
- "0 24.0 4.0 0.0010 0.10 \n",
- "1 24.0 10.0 0.0010 0.10 \n",
- "2 24.0 4.0 0.0010 0.10 \n",
- "3 24.0 10.0 0.0010 0.10 \n",
- "4 24.0 4.0 0.0010 0.10 \n",
- ".. ... ... ... ... \n",
- "606 24.0 7.0 0.0005 0.05 \n",
- "607 24.0 7.0 0.0005 0.05 \n",
- "608 24.0 7.0 0.0005 0.05 \n",
- "609 24.0 7.0 0.0005 0.05 \n",
- "610 24.0 7.0 0.0005 0.05 \n",
- "\n",
- " SMILES \n",
- "0 COCCOC(=O)OCSc1nc2c(s1)cccc2 \n",
- "1 COCCOC(=O)OCSc1nc2c(s1)cccc2 \n",
- "2 Cc1ccc(c(c1)n1nc2c(n1)cccc2)O \n",
- "3 Cc1ccc(c(c1)n1nc2c(n1)cccc2)O \n",
- "4 Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O \n",
- ".. ... \n",
- "606 S=c1sc2c([nH]1)cccc2 \n",
- "607 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
- "608 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
- "609 C(=O)(C(=O)[O-])[O-] \n",
- "610 C(=O)(C(=O)[O-])[O-] \n",
- "\n",
- "[611 rows x 5 columns], metadata= was_recommended was_measured dont_recommend\n",
- "0 False False False\n",
- "1 False False False\n",
- "2 False False False\n",
- "3 False False False\n",
- "4 False False False\n",
- ".. ... ... ...\n",
- "606 False False False\n",
- "607 False False False\n",
- "608 False False False\n",
- "609 False False False\n",
- "610 False False False\n",
- "\n",
- "[611 rows x 3 columns], empty_encoding=False, constraints=[], comp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M SMILES_MORDRED_ABC \\\n",
- "0 24.0 4.0 0.0010 0.10 14.211085 \n",
- "1 24.0 10.0 0.0010 0.10 14.211085 \n",
- "2 24.0 4.0 0.0010 0.10 13.532488 \n",
- "3 24.0 10.0 0.0010 0.10 13.532488 \n",
- "4 24.0 4.0 0.0010 0.10 16.206679 \n",
- ".. ... ... ... ... ... \n",
- "606 24.0 7.0 0.0005 0.05 7.847124 \n",
- "607 24.0 7.0 0.0005 0.05 9.238929 \n",
- "608 24.0 7.0 0.0005 0.05 9.238929 \n",
- "609 24.0 7.0 0.0005 0.05 3.932653 \n",
- "610 24.0 7.0 0.0005 0.05 3.932653 \n",
- "\n",
- " SMILES_MORDRED_nAcid SMILES_MORDRED_nBase SMILES_MORDRED_nAromAtom \\\n",
- "0 0.0 0.0 9.0 \n",
- "1 0.0 0.0 9.0 \n",
- "2 0.0 0.0 15.0 \n",
- "3 0.0 0.0 15.0 \n",
- "4 0.0 0.0 11.0 \n",
- ".. ... ... ... \n",
- "606 0.0 0.0 9.0 \n",
- "607 3.0 0.0 0.0 \n",
- "608 3.0 0.0 0.0 \n",
- "609 2.0 0.0 0.0 \n",
- "610 2.0 0.0 0.0 \n",
- "\n",
- " SMILES_MORDRED_nBridgehead SMILES_MORDRED_nHetero ... \\\n",
- "0 0.0 7.0 ... \n",
- "1 0.0 7.0 ... \n",
- "2 0.0 4.0 ... \n",
- "3 0.0 4.0 ... \n",
- "4 0.0 5.0 ... \n",
- ".. ... ... ... \n",
- "606 0.0 3.0 ... \n",
- "607 0.0 7.0 ... \n",
- "608 0.0 7.0 ... \n",
- "609 0.0 4.0 ... \n",
- "610 0.0 4.0 ... \n",
- "\n",
- " SMILES_MORDRED_JGI2 SMILES_MORDRED_JGI3 SMILES_MORDRED_JGI4 \\\n",
- "0 0.053333 0.047348 0.025679 \n",
- "1 0.053333 0.047348 0.025679 \n",
- "2 0.074074 0.049167 0.050028 \n",
- "3 0.074074 0.049167 0.050028 \n",
- "4 0.104167 0.046456 0.055718 \n",
- ".. ... ... ... \n",
- "606 0.059259 0.071970 0.042870 \n",
- "607 0.117647 0.085938 0.047059 \n",
- "608 0.117647 0.085938 0.047059 \n",
- "609 0.148148 0.000000 0.000000 \n",
- "610 0.148148 0.000000 0.000000 \n",
- "\n",
- " SMILES_MORDRED_JGI5 SMILES_MORDRED_JGI6 SMILES_MORDRED_JGI7 \\\n",
- "0 0.021778 0.007407 0.014227 \n",
- "1 0.021778 0.007407 0.014227 \n",
- "2 0.026569 0.016799 0.012762 \n",
- "3 0.026569 0.016799 0.012762 \n",
- "4 0.031875 0.020352 0.014901 \n",
- ".. ... ... ... \n",
- "606 0.040000 0.000000 0.000000 \n",
- "607 0.018519 0.000000 0.000000 \n",
- "608 0.018519 0.000000 0.000000 \n",
- "609 0.000000 0.000000 0.000000 \n",
- "610 0.000000 0.000000 0.000000 \n",
- "\n",
- " SMILES_MORDRED_JGI8 SMILES_MORDRED_JGI9 SMILES_MORDRED_TopoShapeIndex \\\n",
- "0 0.008230 0.006734 0.857143 \n",
- "1 0.008230 0.006734 0.857143 \n",
- "2 0.010204 0.000000 1.000000 \n",
- "3 0.010204 0.000000 1.000000 \n",
- "4 0.011255 0.006063 0.833333 \n",
- ".. ... ... ... \n",
- "606 0.000000 0.000000 0.666667 \n",
- "607 0.000000 0.000000 1.000000 \n",
- "608 0.000000 0.000000 1.000000 \n",
- "609 0.000000 0.000000 0.500000 \n",
- "610 0.000000 0.000000 0.500000 \n",
- "\n",
- " SMILES_MORDRED_MWC06 \n",
- "0 7.787797 \n",
- "1 7.787797 \n",
- "2 8.042056 \n",
- "3 8.042056 \n",
- "4 8.108623 \n",
- ".. ... \n",
- "606 7.372118 \n",
- "607 7.377134 \n",
- "608 7.377134 \n",
- "609 5.837730 \n",
- "610 5.837730 \n",
- "\n",
- "[611 rows x 147 columns]), continuous=SubspaceContinuous(parameters=[], constraints_lin_eq=[], constraints_lin_ineq=[]))"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# define search space\n",
- "df_no_target = lookup.drop('Efficiency', axis=1)\n",
- "\n",
- "searchspace = SearchSpace.from_dataframe(df = df_no_target, parameters=parameters)\n",
- "searchspace"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "# recommenders\n",
- "from baybe.recommenders import RandomRecommender, SequentialGreedyRecommender\n",
- "from baybe.surrogates import GaussianProcessSurrogate\n",
- "\n",
- "SURROGATE_MODEL = GaussianProcessSurrogate()\n",
- "ACQ_FUNCTION = \"qEI\" # q-Expected Improvement, only q-fuctions are available for batch_size > 1\n",
- "\n",
- "seq_greedy_recommender = SequentialGreedyRecommender(\n",
- " surrogate_model=SURROGATE_MODEL,\n",
- " acquisition_function_cls=ACQ_FUNCTION,\n",
- " hybrid_sampler=\"Farthest\", # find more details in the documentation\n",
- " sampling_percentage=0.3, # should be relatively low\n",
- " allow_repeated_recommendations=False,\n",
- " allow_recommending_already_measured=False,\n",
- " )"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\u001b[1mCampaign\u001b[0m\n",
- " \n",
- " \u001b[1mMeta Data\u001b[0m\n",
- " Batches Done: 0\n",
- " Fits Done: 0\n",
- " \n",
- " \u001b[1mSearch Space\u001b[0m\n",
- " \n",
- " \u001b[1mSearch Space Type: \u001b[0mDISCRETE\n",
- " \n",
- " \u001b[1mDiscrete Search Space\u001b[0m\n",
- " \n",
- " \u001b[1mDiscrete Parameters\u001b[0m\n",
- " Name Type Num_Values Encoding\n",
- " 0 Time_h NumericalDiscreteParameter 25 None\n",
- " 1 pH NumericalDiscreteParameter 9 None\n",
- " 2 Inhib_Concentrat_M NumericalDiscreteParameter 25 None\n",
- " 3 Salt_Concentrat_M NumericalDiscreteParameter 6 None\n",
- " 4 SMILES SubstanceParameter 123 SubstanceEncoding.MORDRED\n",
- " \n",
- " \u001b[1mExperimental Representation\u001b[0m\n",
- " Time_h pH ... Salt_Concentrat_M SMILES\n",
- " 0 24.0 4.0 ... 0.10 COCCOC(=O)OCSc1nc2c(s1)cccc2\n",
- " 1 24.0 10.0 ... 0.10 COCCOC(=O)OCSc1nc2c(s1)cccc2\n",
- " 2 24.0 4.0 ... 0.10 Cc1ccc(c(c1)n1nc2c(n1)cccc2)O\n",
- " .. ... ... ... ... ...\n",
- " 608 24.0 7.0 ... 0.05 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O\n",
- " 609 24.0 7.0 ... 0.05 C(=O)(C(=O)[O-])[O-]\n",
- " 610 24.0 7.0 ... 0.05 C(=O)(C(=O)[O-])[O-]\n",
- " \n",
- " [611 rows x 5 columns]\n",
- " \n",
- " \u001b[1mMetadata:\u001b[0m\n",
- " was_recommended: 0/611\n",
- " was_measured: 0/611\n",
- " dont_recommend: 0/611\n",
- " \n",
- " \u001b[1mConstraints\u001b[0m\n",
- " Empty DataFrame\n",
- " Columns: []\n",
- " Index: []\n",
- " \n",
- " \u001b[1mComputational Representation\u001b[0m\n",
- " Time_h pH ... SMILES_MORDRED_TopoShapeIndex SMILES_MORDRED_MWC06\n",
- " 0 24.0 4.0 ... 0.857143 7.787797\n",
- " 1 24.0 10.0 ... 0.857143 7.787797\n",
- " 2 24.0 4.0 ... 1.000000 8.042056\n",
- " .. ... ... ... ... ...\n",
- " 608 24.0 7.0 ... 1.000000 7.377134\n",
- " 609 24.0 7.0 ... 0.500000 5.837730\n",
- " 610 24.0 7.0 ... 0.500000 5.837730\n",
- " \n",
- " [611 rows x 147 columns]\n",
- " \n",
- " \u001b[1mObjective\u001b[0m\n",
- " \n",
- " \u001b[1mMode: \u001b[0mSINGLE\n",
- " \n",
- " \u001b[1mTargets \u001b[0m\n",
- " Type Name Mode Lower_Bound Upper_Bound Transformation \\\n",
- " 0 NumericalTarget Efficiency MAX -inf inf None \n",
- " \n",
- " Weight \n",
- " 0 100.0 \n",
- " \n",
- " \u001b[1mCombine Function: \u001b[0mGEOM_MEAN\n",
- " \n",
- " TwoPhaseMetaRecommender(allow_repeated_recommendations=None, allow_recommending_already_measured=None, initial_recommender=RandomRecommender(allow_repeated_recommendations=False, allow_recommending_already_measured=True), recommender=SequentialGreedyRecommender(allow_repeated_recommendations=False, allow_recommending_already_measured=False, surrogate_model=GaussianProcessSurrogate(model_params={}, _model=None), acquisition_function_cls='qEI', _acquisition_function=None, hybrid_sampler='Farthest', sampling_percentage=0.3), switch_after=1)\n",
- " \n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/vscode/.local/lib/python3.10/site-packages/baybe/strategies/deprecation.py:26: DeprecationWarning: 'TwoPhaseStrategy' is deprecated and will be removed in a future version. Please use 'recommenders.TwoPhaseMetaRecommender' class instead.\n",
- " warnings.warn(\n"
- ]
- }
- ],
- "source": [
- "# campaign strategy\n",
- "from baybe.strategies import TwoPhaseStrategy\n",
- "from baybe import Campaign\n",
- "\n",
- "strategy = TwoPhaseStrategy(\n",
- " initial_recommender = RandomRecommender(), # Initial recommender\n",
- " # Doesn't matter since I already have training data, BUT CAN BE USED FOR BENCHMARKING\n",
- " recommender = seq_greedy_recommender, # Bayesian model-based optimization\n",
- " switch_after=1 # Switch to the model-based recommender after 1 batches = immediately\n",
- ")\n",
- "\n",
- "# setup campaign\n",
- "campaign = Campaign(searchspace, objective, strategy)\n",
- "print(campaign)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\n",
- "Recommended experiments: \n",
- "| | Time_h | pH | Inhib_Concentrat_M | Salt_Concentrat_M | SMILES |\n",
- "|----:|---------:|-----:|---------------------:|--------------------:|:---------------------------------------------------------------------|\n",
- "| 484 | 480 | 7 | 0.031 | 0.05 | C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2] |\n",
- "| 227 | 0.5 | 7 | 0.01 | 0.6 | C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-] |\n",
- "| 394 | 144 | 7 | 1e-05 | 0.01 | [N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3] |\n"
- ]
- }
- ],
- "source": [
- "# recommendations \n",
- "new_rec = campaign.recommend(batch_size=3) # TEST with different batch sizes for optimal performance\n",
- "print(\"\\n\\nRecommended experiments: \")\n",
- "print(new_rec.to_markdown())"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Input row with index 227 has multiple matches with the search space. This could indicate that something went wrong. Matching only first occurrence.\n"
- ]
- }
- ],
- "source": [
- "new_rec[\"Efficiency\"] = [79.8, 54.1, 59.4]\n",
- "campaign.add_measurements(new_rec)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "Campaign(searchspace=SearchSpace(discrete=SubspaceDiscrete(parameters=[NumericalDiscreteParameter(name='Time_h', encoding=None, _values=[0.5, 1.0, 2.0, 3.0, 6.0, 24.0, 48.0, 72.0, 96.0, 120.0, 144.0, 168.0, 192.0, 240.0, 288.0, 336.0, 360.0, 384.0, 432.0, 480.0, 528.0, 576.0, 600.0, 624.0, 672.0], tolerance=0.0), NumericalDiscreteParameter(name='pH', encoding=None, _values=[0.0, 3.3, 4.0, 4.4, 5.4, 5.5, 5.6, 7.0, 10.0], tolerance=0.0), NumericalDiscreteParameter(name='Inhib_Concentrat_M', encoding=None, _values=[1e-05, 5e-05, 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0008, 0.001, 0.0012, 0.0018, 0.0024, 0.003, 0.005, 0.01, 0.011, 0.021, 0.022, 0.031, 0.033, 0.042, 0.044, 0.05, 0.1], tolerance=0.0), NumericalDiscreteParameter(name='Salt_Concentrat_M', encoding=None, _values=[0.0, 0.01, 0.05, 0.1, 0.5, 0.6], tolerance=0.0), SubstanceParameter(name='SMILES', data={'COCCOC(=O)OCSc1nc2c(s1)cccc2': 'COCCOC(=O)OCSc1nc2c(s1)cccc2', 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O': 'Cc1ccc(c(c1)n1nc2c(n1)cccc2)O', 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O': 'Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O', 'On1nnc2c1cccc2': 'On1nnc2c1cccc2', 'c1ncn[nH]1': 'c1ncn[nH]1', 'Sc1n[nH]cn1': 'Sc1n[nH]cn1', 'S[C]1NC2=C[CH]C=NC2=N1': 'S[C]1NC2=C[CH]C=NC2=N1', 'S=c1[nH]c2c([nH]1)nccn2': 'S=c1[nH]c2c([nH]1)nccn2', 'Sc1ncc[nH]1': 'Sc1ncc[nH]1', 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1': 'C=CC(=O)OCCOC(=O)OCCSc1ncccn1', 'CCSc1nnc(s1)N': 'CCSc1nnc(s1)N', 'CSc1nnc(s1)N': 'CSc1nnc(s1)N', 'Cc1ccc2c(c1)nc([nH]2)S': 'Cc1ccc2c(c1)nc([nH]2)S', 'OC(=O)CS': 'OC(=O)CS', 'Sc1nc2c([nH]1)cccc2': 'Sc1nc2c([nH]1)cccc2', 'OC(=O)c1ccccc1S': 'OC(=O)c1ccccc1S', 'S=c1sc2c([nH]1)cccc2': 'S=c1sc2c([nH]1)cccc2', 'OC(=O)c1cccnc1S': 'OC(=O)c1cccnc1S', 'Sc1ncccn1': 'Sc1ncccn1', 'c1ccc(nc1)c1ccccn1': 'c1ccc(nc1)c1ccccn1', 'Sc1nnc(s1)S': 'Sc1nnc(s1)S', 'Nc1cc(S)nc(n1)N': 'Nc1cc(S)nc(n1)N', 'Nc1nc([nH]n1)C(=O)O': 'Nc1nc([nH]n1)C(=O)O', 'Nc1n[nH]cn1': 'Nc1n[nH]cn1', 'OC(=O)c1n[nH]c(n1)N': 'OC(=O)c1n[nH]c(n1)N', 'Nc1n[nH]c(n1)S': 'Nc1n[nH]c(n1)S', 'CS[C]1N[N]C(=N1)N': 'CS[C]1N[N]C(=N1)N', 'C1=CC(=CC(=C1)S)C(=O)O': 'C1=CC(=CC(=C1)S)C(=O)O', 'OC(=O)CCS': 'OC(=O)CCS', 'Oc1ccccc1c1nnc([nH]1)S': 'Oc1ccccc1c1nnc([nH]1)S', 'Nn1cnnc1': 'Nn1cnnc1', 'Nc1ccnc(n1)S': 'Nc1ccnc(n1)S', 'Nn1c(NN)nnc1S': 'Nn1c(NN)nnc1S', 'Nn1c(S)nnc1c1ccccc1': 'Nn1c(S)nnc1c1ccccc1', 'Sc1nc(N)c2c(n1)[nH]nc2': 'Sc1nc(N)c2c(n1)[nH]nc2', 'Oc1ccc(cc1)C(=O)O': 'Oc1ccc(cc1)C(=O)O', 'OC(=O)c1ccc(cc1)S': 'OC(=O)c1ccc(cc1)S', 'Cn1cnnc1S': 'Cn1cnnc1S', 'Sc1nc(N)c(c(n1)S)N': 'Sc1nc(N)c(c(n1)S)N', 'Nc1ncncc1N': 'Nc1ncncc1N', 'Nc1cc(N)nc(n1)S': 'Nc1cc(N)nc(n1)S', 'Cc1cc(C)nc(n1)S': 'Cc1cc(C)nc(n1)S', 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1': 'Clc1cccc(c1)c1n[nH]c(=S)[nH]1', 'COc1cccc(c1)c1n[nH]c(=S)[nH]1': 'COc1cccc(c1)c1n[nH]c(=S)[nH]1', 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1': 'Clc1ccc(cc1Cl)c1n[nH]c(=S)[nH]1', 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]': 'c1cc(ccc1c2[nH]c(nn2)S)[N+](=O)[O-]', 'S=c1[nH]nc([nH]1)c1ccco1': 'S=c1[nH]nc([nH]1)c1ccco1', 'S=c1[nH]nc([nH]1)c1cccnc1': 'S=c1[nH]nc([nH]1)c1cccnc1', 'S=c1[nH]nc([nH]1)c1ccncc1': 'S=c1[nH]nc([nH]1)c1ccncc1', 'Nc1n[nH]c(=S)s1': 'Nc1n[nH]c(=S)s1', 'Cc1nsc(c1)N': 'Cc1nsc(c1)N', 'Clc1ccc2c(c1)[nH]c(n2)S': 'Clc1ccc2c(c1)[nH]c(n2)S', 'CCOc1ccc2c(c1)nc([nH]2)S': 'CCOc1ccc2c(c1)nc([nH]2)S', 'Cn1nnnc1S': 'Cn1nnnc1S', 'OC(=O)Cn1nnnc1S': 'OC(=O)Cn1nnnc1S', 'COc1ccc2c(c1)[nH]c(=S)[nH]2': 'COc1ccc2c(c1)[nH]c(=S)[nH]2', 'Cc1n[nH]c(=S)s1': 'Cc1n[nH]c(=S)s1', 'ClC([C]1N[N]C=N1)(Cl)Cl': 'ClC([C]1N[N]C=N1)(Cl)Cl', 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl': 'Clc1cc2[nH]c(=S)[nH]c2cc1Cl', 'CSc1[nH]c2c(n1)cc(c(c2)C)C': 'CSc1[nH]c2c(n1)cc(c(c2)C)C', 'Nc1ccc2c(c1)sc(=S)[nH]2': 'Nc1ccc2c(c1)sc(=S)[nH]2', 'OC(=O)c1ccc(=S)[nH]c1': 'OC(=O)c1ccc(=S)[nH]c1', 'Oc1cccc2c1nccc2': 'Oc1cccc2c1nccc2', 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C': 'S=c1[nH]c2c([nH]1)c(=O)n(cn2)C', 'S=c1[nH]c2c([nH]1)cncn2': 'S=c1[nH]c2c([nH]1)cncn2', 'CC(=O)O': 'CC(=O)O', 'OC(=O)CCCCC(=O)O': 'OC(=O)CCCCC(=O)O', 'OC(=O)c1ccccc1': 'OC(=O)c1ccccc1', 'c1ccc2c(c1)[nH]nn2': 'c1ccc2c(c1)[nH]nn2', 'OC(=O)c1ccc(cc1)c1ccccc1': 'OC(=O)c1ccc(cc1)c1ccccc1', 'OC(=O)/C=C/c1ccccc1': 'OC(=O)/C=C/c1ccccc1', 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O': 'C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O', 'O[C@H]1C(=O)OCC1(C)C': 'O[C@H]1C(=O)OCC1(C)C', 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O': 'OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O', 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O', 'CC(=O)SSC(=O)C': 'CC(=O)SSC(=O)C', 'CCCCOP(=O)(OCCCC)O': 'CCCCOP(=O)(OCCCC)O', 'CCN(C(=S)S)CC': 'CCN(C(=S)S)CC', 'O/N=C(/C(=N/O)/C)\\\\C': 'O/N=C(/C(=N/O)/C)\\\\C', 'CCCCCCCCCCCCc1ccccc1S([O])([O])O': 'CCCCCCCCCCCCc1ccccc1S([O])([O])O', 'CCCCCCCCCCCCOS(=O)(=O)O': 'CCCCCCCCCCCCOS(=O)(=O)O', 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O': 'OC(=O)CN(CC(=O)O)CCN(CC(=O)O)CC(=O)O', 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1': 'O/N=C(\\\\C(=N/O)\\\\c1ccco1)/c1ccco1', 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O': 'OC[C@H]([C@H]([C@@H]([C@H](C(=O)O)O)O)O)O', 'OCC(CO)O': 'OCC(CO)O', 'NCC(=O)O': 'NCC(=O)O', 'OC(=O)CCCCCCCCCCCCCCC(=O)O': 'OC(=O)CCCCCCCCCCCCCCC(=O)O', 'C1N2CN3CN1CN(C2)C3': 'C1N2CN3CN1CN(C2)C3', 'NO': 'NO', 'COC(=O)CCCC1=CNC2=CC=CC=C21': 'COC(=O)CCCC1=CNC2=CC=CC=C21', 'OC(=O)c1ccncc1': 'OC(=O)c1ccncc1', 'C1COCCN1CCCS(=O)(=O)O': 'C1COCCN1CCCS(=O)(=O)O', 'OC(=O)c1cccnc1': 'OC(=O)c1cccnc1', 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O': 'CCCCCCCC/C=C\\\\CCCCCCCC(=O)O', 'C(=O)(C(=O)[O-])[O-]': 'C(=O)(C(=O)[O-])[O-]', 'OC(=O)c1ccc(cc1)N': 'OC(=O)c1ccc(cc1)N', 'Oc1ccc(cc1)S([O])([O])O': 'Oc1ccc(cc1)S([O])([O])O', 'OC(=O)c1ccccn1': 'OC(=O)c1ccccn1', 'OC(=O)c1ccccc1O': 'OC(=O)c1ccccc1O', 'CCCCCCCCCCCCCCCCCC(=O)O': 'CCCCCCCCCCCCCCCCCC(=O)O', 'SC#N': 'SC#N', 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]': 'C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O)O)C(=O)O)[N+](=O)[O-]', '[O-]S(=O)[O-].[Na+].[Na+]': '[O-]S(=O)[O-].[Na+].[Na+]', 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]': 'CCCCCCCCCCCCCCN(CC(=O)O[Na])CC(=O)O[Na]', 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C': 'CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C', 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C': 'CN1C=NC2=C1C(=O)N(C(=O)N2C)C', 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]': 'N.N.[N+](=O)(O)[O-].[N+](=O)(O)[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].O.O.O.O.[Ce+3]', '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]': '[NH4+].[NH4+].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+4]', '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]': '[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[Ce+3]', '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]': '[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[O-]S(=O)(=O)[O-].[Ce+3].[Ce+3]', '[Cl-].[Cl-].[Cl-].[Ce+3]': '[Cl-].[Cl-].[Cl-].[Ce+3]', 'CNCC(C1=CC(=CC=C1)O)O': 'CNCC(C1=CC(=CC=C1)O)O', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Fe+2]', 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]': 'C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[O-])O)O)O)O)O.[Zn+2]', 'C1=CC=C(C(=C1)C=NNC(=S)N)O': 'C1=CC=C(C(=C1)C=NNC(=S)N)O', 'C1=CC(=C(C=C1O)O)C=NNC(=S)N': 'C1=CC(=C(C=C1O)O)C=NNC(=S)N', 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O': 'NC(=S)NN=CC1=C(C(=C(C=C1)O)O)O', 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O': 'CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O', 'C1=CC2=NNN=C2C=C1Cl': 'C1=CC2=NNN=C2C=C1Cl', 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]': 'O=C([O-])C(O)C(O)C(O)C(O)CO.[Na+]', 'COC(=O)n1nnc2ccccc12': 'COC(=O)n1nnc2ccccc12'}, decorrelate=0.7, encoding=)], exp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
- "0 24.0 4.0 0.0010 0.10 \n",
- "1 24.0 10.0 0.0010 0.10 \n",
- "2 24.0 4.0 0.0010 0.10 \n",
- "3 24.0 10.0 0.0010 0.10 \n",
- "4 24.0 4.0 0.0010 0.10 \n",
- ".. ... ... ... ... \n",
- "606 24.0 7.0 0.0005 0.05 \n",
- "607 24.0 7.0 0.0005 0.05 \n",
- "608 24.0 7.0 0.0005 0.05 \n",
- "609 24.0 7.0 0.0005 0.05 \n",
- "610 24.0 7.0 0.0005 0.05 \n",
- "\n",
- " SMILES \n",
- "0 COCCOC(=O)OCSc1nc2c(s1)cccc2 \n",
- "1 COCCOC(=O)OCSc1nc2c(s1)cccc2 \n",
- "2 Cc1ccc(c(c1)n1nc2c(n1)cccc2)O \n",
- "3 Cc1ccc(c(c1)n1nc2c(n1)cccc2)O \n",
- "4 Clc1ccc(cc1)CC[C@](C(C)(C)C)(Cn1cncn1)O \n",
- ".. ... \n",
- "606 S=c1sc2c([nH]1)cccc2 \n",
- "607 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
- "608 C(C(=O)[O-])C(CC(=O)[O-])(C(=O)[O-])O \n",
- "609 C(=O)(C(=O)[O-])[O-] \n",
- "610 C(=O)(C(=O)[O-])[O-] \n",
- "\n",
- "[611 rows x 5 columns], metadata= was_recommended was_measured dont_recommend\n",
- "0 False False False\n",
- "1 False False False\n",
- "2 False False False\n",
- "3 False False False\n",
- "4 False False False\n",
- ".. ... ... ...\n",
- "606 False False False\n",
- "607 False False False\n",
- "608 False False False\n",
- "609 False False False\n",
- "610 False False False\n",
- "\n",
- "[611 rows x 3 columns], empty_encoding=False, constraints=[], comp_rep= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M SMILES_MORDRED_ABC \\\n",
- "0 24.0 4.0 0.0010 0.10 14.211085 \n",
- "1 24.0 10.0 0.0010 0.10 14.211085 \n",
- "2 24.0 4.0 0.0010 0.10 13.532488 \n",
- "3 24.0 10.0 0.0010 0.10 13.532488 \n",
- "4 24.0 4.0 0.0010 0.10 16.206679 \n",
- ".. ... ... ... ... ... \n",
- "606 24.0 7.0 0.0005 0.05 7.847124 \n",
- "607 24.0 7.0 0.0005 0.05 9.238929 \n",
- "608 24.0 7.0 0.0005 0.05 9.238929 \n",
- "609 24.0 7.0 0.0005 0.05 3.932653 \n",
- "610 24.0 7.0 0.0005 0.05 3.932653 \n",
- "\n",
- " SMILES_MORDRED_nAcid SMILES_MORDRED_nBase SMILES_MORDRED_nAromAtom \\\n",
- "0 0.0 0.0 9.0 \n",
- "1 0.0 0.0 9.0 \n",
- "2 0.0 0.0 15.0 \n",
- "3 0.0 0.0 15.0 \n",
- "4 0.0 0.0 11.0 \n",
- ".. ... ... ... \n",
- "606 0.0 0.0 9.0 \n",
- "607 3.0 0.0 0.0 \n",
- "608 3.0 0.0 0.0 \n",
- "609 2.0 0.0 0.0 \n",
- "610 2.0 0.0 0.0 \n",
- "\n",
- " SMILES_MORDRED_nBridgehead SMILES_MORDRED_nHetero ... \\\n",
- "0 0.0 7.0 ... \n",
- "1 0.0 7.0 ... \n",
- "2 0.0 4.0 ... \n",
- "3 0.0 4.0 ... \n",
- "4 0.0 5.0 ... \n",
- ".. ... ... ... \n",
- "606 0.0 3.0 ... \n",
- "607 0.0 7.0 ... \n",
- "608 0.0 7.0 ... \n",
- "609 0.0 4.0 ... \n",
- "610 0.0 4.0 ... \n",
- "\n",
- " SMILES_MORDRED_JGI2 SMILES_MORDRED_JGI3 SMILES_MORDRED_JGI4 \\\n",
- "0 0.053333 0.047348 0.025679 \n",
- "1 0.053333 0.047348 0.025679 \n",
- "2 0.074074 0.049167 0.050028 \n",
- "3 0.074074 0.049167 0.050028 \n",
- "4 0.104167 0.046456 0.055718 \n",
- ".. ... ... ... \n",
- "606 0.059259 0.071970 0.042870 \n",
- "607 0.117647 0.085938 0.047059 \n",
- "608 0.117647 0.085938 0.047059 \n",
- "609 0.148148 0.000000 0.000000 \n",
- "610 0.148148 0.000000 0.000000 \n",
- "\n",
- " SMILES_MORDRED_JGI5 SMILES_MORDRED_JGI6 SMILES_MORDRED_JGI7 \\\n",
- "0 0.021778 0.007407 0.014227 \n",
- "1 0.021778 0.007407 0.014227 \n",
- "2 0.026569 0.016799 0.012762 \n",
- "3 0.026569 0.016799 0.012762 \n",
- "4 0.031875 0.020352 0.014901 \n",
- ".. ... ... ... \n",
- "606 0.040000 0.000000 0.000000 \n",
- "607 0.018519 0.000000 0.000000 \n",
- "608 0.018519 0.000000 0.000000 \n",
- "609 0.000000 0.000000 0.000000 \n",
- "610 0.000000 0.000000 0.000000 \n",
- "\n",
- " SMILES_MORDRED_JGI8 SMILES_MORDRED_JGI9 SMILES_MORDRED_TopoShapeIndex \\\n",
- "0 0.008230 0.006734 0.857143 \n",
- "1 0.008230 0.006734 0.857143 \n",
- "2 0.010204 0.000000 1.000000 \n",
- "3 0.010204 0.000000 1.000000 \n",
- "4 0.011255 0.006063 0.833333 \n",
- ".. ... ... ... \n",
- "606 0.000000 0.000000 0.666667 \n",
- "607 0.000000 0.000000 1.000000 \n",
- "608 0.000000 0.000000 1.000000 \n",
- "609 0.000000 0.000000 0.500000 \n",
- "610 0.000000 0.000000 0.500000 \n",
- "\n",
- " SMILES_MORDRED_MWC06 \n",
- "0 7.787797 \n",
- "1 7.787797 \n",
- "2 8.042056 \n",
- "3 8.042056 \n",
- "4 8.108623 \n",
- ".. ... \n",
- "606 7.372118 \n",
- "607 7.377134 \n",
- "608 7.377134 \n",
- "609 5.837730 \n",
- "610 5.837730 \n",
- "\n",
- "[611 rows x 147 columns]), continuous=SubspaceContinuous(parameters=[], constraints_lin_eq=[], constraints_lin_ineq=[])), objective=Objective(mode='SINGLE', targets=[NumericalTarget(name='Efficiency', mode=, bounds=Interval(lower=-inf, upper=inf), transformation=None)], weights=[100.0], combine_func='GEOM_MEAN'), recommender=TwoPhaseMetaRecommender(allow_repeated_recommendations=None, allow_recommending_already_measured=None, initial_recommender=RandomRecommender(allow_repeated_recommendations=False, allow_recommending_already_measured=True), recommender=SequentialGreedyRecommender(allow_repeated_recommendations=False, allow_recommending_already_measured=False, surrogate_model=GaussianProcessSurrogate(model_params={}, _model=None), acquisition_function_cls='qEI', _acquisition_function=None, hybrid_sampler='Farthest', sampling_percentage=0.3), switch_after=1), n_batches_done=1, n_fits_done=0, _measurements_exp= Time_h pH Inhib_Concentrat_M Salt_Concentrat_M \\\n",
- "0 480.0 7.0 0.03100 0.05 \n",
- "1 0.5 7.0 0.01000 0.60 \n",
- "2 144.0 7.0 0.00001 0.01 \n",
- "\n",
- " SMILES Efficiency BatchNr \\\n",
- "0 C(C(C(C(C(C(=O)[O-])O)O)O)O)O.C(C(C(C(C(C(=O)[... 79.8 1 \n",
- "1 C1=CC(=C(C=C1SSC2=CC(=C(C=C2)[N+](=O)[O-])C(=O... 54.1 1 \n",
- "2 [N+](=O)([O-])[O-].[N+](=O)([O-])[O-].[N+](=O)... 59.4 1 \n",
- "\n",
- " FitNr \n",
- "0 NaN \n",
- "1 NaN \n",
- "2 NaN , _cached_recommendation=Empty DataFrame\n",
- "Columns: []\n",
- "Index: [], numerical_measurements_must_be_within_tolerance=None, strategy=None)"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "campaign"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\n",
- "Recommended experiments: \n",
- "| index | Time_h | pH | Inhib_Concentrat_M | Salt_Concentrat_M | SMILES |\n",
- "|--------:|---------:|-----:|---------------------:|--------------------:|:-------------------------------------------------------|\n",
- "| 194 | 24 | 10 | 0.001 | 0.1 | C1N2CN3CN1CN(C2)C3 |\n",
- "| 297 | 24 | 0 | 0.0004 | 0 | CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C |\n",
- "| 300 | 24 | 0 | 0.0004 | 0 | CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C |\n",
- "| 303 | 24 | 0 | 0.0004 | 0 | CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C |\n",
- "| 306 | 24 | 0 | 0.0004 | 0 | CC1(C(N2C(S1)C(C2=O)NC(=O)C(C3=CC=C(C=C3)O)N)C(=O)O)C |\n",
- "| 586 | 3 | 0 | 0.0008 | 0 | CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O |\n",
- "| 591 | 3 | 0 | 0.0008 | 0 | CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O |\n",
- "| 596 | 3 | 0 | 0.0008 | 0 | CCCCN(CCCC)C1=NC(=NC(=N1)NC(CCSC)C(=O)O)NC(CCSC)C(=O)O |\n"
- ]
- }
- ],
- "source": [
- "second_rec = campaign.recommend(batch_size=3) # TEST with different batch sizes for optimal performance\n",
- "print(\"\\n\\nRecommended experiments: \")\n",
- "print(second_rec.to_markdown())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Data Analysis"
- ]
- },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
"source": [
- "# Bayesian Optimization"
+ "results.to_excel(f\"./results/{exp_dataset_name}_simulation_{N_MC_ITERATIONS}MC_{N_DOE_ITERATIONS}exp_{BATCH_SIZE}batch.xlsx\")\n"
]
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Search Space"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Objective"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Recommender"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Benchmarking"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
{
"cell_type": "markdown",
"metadata": {},
diff --git a/img/AA2024_simulation_10MC_50exp_1batch.png b/img/AA2024_simulation_10MC_50exp_1batch.png
new file mode 100644
index 0000000..12f3c03
Binary files /dev/null and b/img/AA2024_simulation_10MC_50exp_1batch.png differ
diff --git a/img/AA2024_simulation_10MC_50exp_1batch_first10.png b/img/AA2024_simulation_10MC_50exp_1batch_first10.png
new file mode 100644
index 0000000..08c4f70
Binary files /dev/null and b/img/AA2024_simulation_10MC_50exp_1batch_first10.png differ
diff --git a/img/AA2024_simulation_10MC_50exp_1batch_first25.png b/img/AA2024_simulation_10MC_50exp_1batch_first25.png
new file mode 100644
index 0000000..76fcf9d
Binary files /dev/null and b/img/AA2024_simulation_10MC_50exp_1batch_first25.png differ
diff --git a/results/AA2024_simulation_10MC_50exp_1batch.xlsx b/results/AA2024_simulation_10MC_50exp_1batch.xlsx
new file mode 100644
index 0000000..02a72cb
Binary files /dev/null and b/results/AA2024_simulation_10MC_50exp_1batch.xlsx differ