Already Implemented Benchmarks¶
SnAr Benchmark¶
-
class
summit.benchmarks.
SnarBenchmark
(noise_level=0, **kwargs)[source]¶ Benchmark representing a nucleophilic aromatic substitution (SnAr) reaction
The SnAr reactions occurs in a plug flow reactor where residence time, stoichiometry and temperature can be adjusted. Maximizing Space time yield (STY) and minimising E-factor are the objectives.
- Parameters
noise_level (float, optional) – The mean of the random noise added to the concentration measurements in terms of percent of the signal. Default is 0.
Examples
>>> b = SnarBenchmark() >>> columns = [v.name for v in b.domain.variables] >>> values = [v.bounds[0]+0.1*(v.bounds[1]-v.bounds[0]) for v in b.domain.variables] >>> values = np.array(values) >>> values = np.atleast_2d(values) >>> conditions = DataSet(values, columns=columns) >>> results = b.run_experiments(conditions)
Notes
This benchmark relies on the kinetics observerd by [Hone] et al. The mechanistic model is integrated using scipy to find outlet concentrations of all species. These concentrations are then used to calculate STY and E-factor.
References
- Hone
C. A. Hone et al., React. Chem. Eng., 2017, 2, 103–108. DOI: 10.1039/C6RE00109B
-
property
data
¶ Datast of all experiments run
-
property
domain
¶ The domain for the experiment
-
pareto_plot
(objectives=None, colorbar=False, ax=None)¶ Make a 2D pareto plot of the experiments thus far
- Parameters
objectives (array-like, optional) – List of names of objectives to plot. By default picks the first two objectives
ax (matplotlib.pyplot.axes, optional) – An existing axis to apply the plot to
- Returns
if ax is None returns a tuple with the first component
as the a new figure and the second component the axis
if ax is a matplotlib axis, returns only the axis
- Raises
ValueError – If the number of objectives is not equal to two
-
reset
()¶ Reset the experiment
This will clear all data.
-
run_experiments
(conditions, computation_time=None, **kwargs)¶ Run the experiment(s) at the given conditions
- Parameters
conditions (summit.utils.dataset.Dataset) – A dataset with columns matching the variables in the domain of a experiment(s) to run.
computation_time (float, optional) – The time used by the strategy in calculating the next experiments. By default, the time since the last call to run_experiment is used.
C-N Benchmark¶
-
class
summit.benchmarks.
ReizmanSuzukiEmulator
(case=1, **kwargs)[source]¶ Reizman Suzuki Emulator
Virtual experiments representing the Suzuki-Miyaura Cross-Coupling reaction similar to Reizman et al. (2016). Experimental outcomes are based on an emulator that is trained on the experimental data published by Reizman et al.
- Parameters
case (int, optional, default=1) – Reizman et al. (2016) reported experimental data for 4 different cases. The case number refers to the cases they reported. Please see their paper for more information on the cases.
Examples
>>> reizman_emulator = ReizmanSuzukiEmulator(case=1)
Notes
This benchmark is based on data from [Reizman] et al.
References
- Reizman
B. J. Reizman et al., React. Chem. Eng., 2016, 1, 658–666. DOI: 10.1039/C6RE00153J.
-
property
data
¶ Datast of all experiments run
-
property
domain
¶ The domain for the experiment
-
pareto_plot
(objectives=None, colorbar=False, ax=None)¶ Make a 2D pareto plot of the experiments thus far
- Parameters
objectives (array-like, optional) – List of names of objectives to plot. By default picks the first two objectives
ax (matplotlib.pyplot.axes, optional) – An existing axis to apply the plot to
- Returns
if ax is None returns a tuple with the first component
as the a new figure and the second component the axis
if ax is a matplotlib axis, returns only the axis
- Raises
ValueError – If the number of objectives is not equal to two
-
reset
()¶ Reset the experiment
This will clear all data.
-
run_experiments
(conditions, computation_time=None, **kwargs)¶ Run the experiment(s) at the given conditions
- Parameters
conditions (summit.utils.dataset.Dataset) – A dataset with columns matching the variables in the domain of a experiment(s) to run.
computation_time (float, optional) – The time used by the strategy in calculating the next experiments. By default, the time since the last call to run_experiment is used.
-
class
summit.benchmarks.
BaumgartnerCrossCouplingEmulator
(**kwargs)[source]¶ Baumgartner Cross Coupling Emulator
Virtual experiments representing the Aniline Cross-Coupling reaction similar to Baumgartner et al. (2019). Experimental outcomes are based on an emulator that is trained on the experimental data published by Baumgartner et al.
This is a five dimensional optimisation of temperature, residence time, base equivalents, catalyst and base.
The categorical variables (catalyst and base) contain descriptors calculated using COSMO-RS. Specifically, the descriptors are the first two sigma moments.
Examples
>>> bemul = BaumgartnerCrossCouplingDescriptorEmulator()
Notes
This benchmark is based on data from [Baumgartner] et al.
References
- Baumgartner
L. M. Baumgartner et al., Org. Process Res. Dev., 2019, 23, 1594–1601 DOI: 10.1021/acs.oprd.9b00236
-
property
data
¶ Datast of all experiments run
-
property
domain
¶ The domain for the experiment
-
pareto_plot
(objectives=None, colorbar=False, ax=None)¶ Make a 2D pareto plot of the experiments thus far
- Parameters
objectives (array-like, optional) – List of names of objectives to plot. By default picks the first two objectives
ax (matplotlib.pyplot.axes, optional) – An existing axis to apply the plot to
- Returns
if ax is None returns a tuple with the first component
as the a new figure and the second component the axis
if ax is a matplotlib axis, returns only the axis
- Raises
ValueError – If the number of objectives is not equal to two
-
reset
()¶ Reset the experiment
This will clear all data.
-
run_experiments
(conditions, computation_time=None, **kwargs)¶ Run the experiment(s) at the given conditions
- Parameters
conditions (summit.utils.dataset.Dataset) – A dataset with columns matching the variables in the domain of a experiment(s) to run.
computation_time (float, optional) – The time used by the strategy in calculating the next experiments. By default, the time since the last call to run_experiment is used.
-
to_dict
(**kwargs)¶ Serialize the class to a dictionary
Subclasses can add a experiment_params dictionary key with custom parameters for the experiment
-
class
summit.benchmarks.
BaumgartnerCrossCouplingDescriptorEmulator
(**kwargs)[source]¶ Baumgartner Cross Coupling Emulator
Virtual experiments representing the Aniline Cross-Coupling reaction similar to Baumgartner et al. (2019). Experimental outcomes are based on an emulator that is trained on the experimental data published by Baumgartner et al.
The difference with this model is that it uses descriptors for the catalyst and base instead of one-hot encoding the options. The descriptors are the first two sigma moments from COSMO-RS.
Examples
>>> bemul = BaumgartnerCrossCouplingDescriptorEmulator()
Notes
This benchmark is based on data from [Baumgartner] et al.
References
- Baumgartner
L. M. Baumgartner et al., Org. Process Res. Dev., 2019, 23, 1594–1601 DOI: 10.1021/acs.oprd.9b00236
-
property
data
¶ Datast of all experiments run
-
property
domain
¶ The domain for the experiment
-
pareto_plot
(objectives=None, colorbar=False, ax=None)¶ Make a 2D pareto plot of the experiments thus far
- Parameters
objectives (array-like, optional) – List of names of objectives to plot. By default picks the first two objectives
ax (matplotlib.pyplot.axes, optional) – An existing axis to apply the plot to
- Returns
if ax is None returns a tuple with the first component
as the a new figure and the second component the axis
if ax is a matplotlib axis, returns only the axis
- Raises
ValueError – If the number of objectives is not equal to two
-
reset
()¶ Reset the experiment
This will clear all data.
-
run_experiments
(conditions, computation_time=None, **kwargs)¶ Run the experiment(s) at the given conditions
- Parameters
conditions (summit.utils.dataset.Dataset) – A dataset with columns matching the variables in the domain of a experiment(s) to run.
computation_time (float, optional) – The time used by the strategy in calculating the next experiments. By default, the time since the last call to run_experiment is used.
-
to_dict
(**kwargs)¶ Serialize the class to a dictionary
Subclasses can add a experiment_params dictionary key with custom parameters for the experiment
-
class
summit.benchmarks.
BaumgartnerCrossCouplingEmulator_Yield_Cost
(**kwargs)[source]¶ Baumgartner Cross Coupling Emulator
Virtual experiments representing the Aniline Cross-Coupling reaction similar to Baumgartner et al. (2019). Experimental outcomes are based on an emulator that is trained on the experimental data published by Baumgartner et al.
This is a multiobjective version for optimizing yield and cost simultaneously.
Examples
>>> bemul = BaumgartnerCrossCouplingDescriptorEmulator()
Notes
This benchmark is based on data from [Baumgartner] et al.
References
- Baumgartner
L. M. Baumgartner et al., Org. Process Res. Dev., 2019, 23, 1594–1601 DOI: 10.1021/acs.oprd.9b00236
-
property
data
¶ Datast of all experiments run
-
property
domain
¶ The domain for the experiment
-
pareto_plot
(objectives=None, colorbar=False, ax=None)¶ Make a 2D pareto plot of the experiments thus far
- Parameters
objectives (array-like, optional) – List of names of objectives to plot. By default picks the first two objectives
ax (matplotlib.pyplot.axes, optional) – An existing axis to apply the plot to
- Returns
if ax is None returns a tuple with the first component
as the a new figure and the second component the axis
if ax is a matplotlib axis, returns only the axis
- Raises
ValueError – If the number of objectives is not equal to two
-
reset
()¶ Reset the experiment
This will clear all data.
-
run_experiments
(conditions, computation_time=None, **kwargs)¶ Run the experiment(s) at the given conditions
- Parameters
conditions (summit.utils.dataset.Dataset) – A dataset with columns matching the variables in the domain of a experiment(s) to run.
computation_time (float, optional) – The time used by the strategy in calculating the next experiments. By default, the time since the last call to run_experiment is used.
-
to_dict
(**kwargs)¶ Serialize the class to a dictionary
Subclasses can add a experiment_params dictionary key with custom parameters for the experiment