Summary
This experiment investigates enzyme kinetics assay. Full factorial of substrate concentration, enzyme amount, pH, and temperature to maximize reaction rate and minimize substrate inhibition.
The design varies 4 factors: substrate mm (mM), ranging from 0.1 to 10, enzyme ug (ug), ranging from 1 to 20, ph (pH), ranging from 5 to 9, and temp c (C), ranging from 20 to 45. The goal is to optimize 2 responses: reaction rate (umol/min) (maximize) and inhibition pct (%) (minimize). Fixed conditions held constant across all runs include enzyme = alkaline_phosphatase, buffer = tris.
A full factorial design was used to explore all 16 possible combinations of the 4 factors at two levels. This guarantees that every main effect and interaction can be estimated independently, at the cost of a larger experiment (16 runs).
Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.
Key Findings
For reaction rate, the most influential factors were temp c (42.1%), substrate mm (26.2%), enzyme ug (20.8%). The best observed value was 8.5 (at substrate mm = 0.1, enzyme ug = 1, ph = 5).
For inhibition pct, the most influential factors were ph (78.6%), substrate mm (16.7%), enzyme ug (2.4%). The best observed value was -1.0 (at substrate mm = 10, enzyme ug = 1, ph = 5).
Recommended Next Steps
- Consider whether any fixed factors should be varied in a future study.
Experimental Setup
Factors
| Factor | Low | High | Unit |
substrate_mm | 0.1 | 10 | mM |
enzyme_ug | 1 | 20 | ug |
ph | 5 | 9 | pH |
temp_c | 20 | 45 | C |
Fixed: enzyme = alkaline_phosphatase, buffer = tris
Responses
| Response | Direction | Unit |
reaction_rate | ↑ maximize | umol/min |
inhibition_pct | ↓ minimize | % |
Configuration
{
"metadata": {
"name": "Enzyme Kinetics Assay",
"description": "Full factorial of substrate concentration, enzyme amount, pH, and temperature to maximize reaction rate and minimize substrate inhibition"
},
"factors": [
{
"name": "substrate_mm",
"levels": [
"0.1",
"10"
],
"type": "continuous",
"unit": "mM"
},
{
"name": "enzyme_ug",
"levels": [
"1",
"20"
],
"type": "continuous",
"unit": "ug"
},
{
"name": "ph",
"levels": [
"5",
"9"
],
"type": "continuous",
"unit": "pH"
},
{
"name": "temp_c",
"levels": [
"20",
"45"
],
"type": "continuous",
"unit": "C"
}
],
"fixed_factors": {
"enzyme": "alkaline_phosphatase",
"buffer": "tris"
},
"responses": [
{
"name": "reaction_rate",
"optimize": "maximize",
"unit": "umol/min"
},
{
"name": "inhibition_pct",
"optimize": "minimize",
"unit": "%"
}
],
"settings": {
"operation": "full_factorial",
"test_script": "use_cases/195_enzyme_kinetics/sim.sh"
}
}
Experimental Matrix
The Full Factorial Design produces 16 runs. Each row is one experiment with specific factor settings.
| Run | substrate_mm | enzyme_ug | ph | temp_c |
| 1 | 0.1 | 20 | 9 | 45 |
| 2 | 10 | 1 | 5 | 45 |
| 3 | 0.1 | 20 | 5 | 45 |
| 4 | 0.1 | 20 | 9 | 20 |
| 5 | 10 | 20 | 9 | 20 |
| 6 | 10 | 1 | 9 | 20 |
| 7 | 10 | 20 | 5 | 20 |
| 8 | 10 | 1 | 5 | 20 |
| 9 | 0.1 | 1 | 5 | 45 |
| 10 | 0.1 | 1 | 9 | 20 |
| 11 | 10 | 20 | 5 | 45 |
| 12 | 10 | 20 | 9 | 45 |
| 13 | 0.1 | 20 | 5 | 20 |
| 14 | 10 | 1 | 9 | 45 |
| 15 | 0.1 | 1 | 5 | 20 |
| 16 | 0.1 | 1 | 9 | 45 |
Step-by-Step Workflow
1
Preview the design
$ doe info --config use_cases/195_enzyme_kinetics/config.json
2
Generate the runner script
$ doe generate --config use_cases/195_enzyme_kinetics/config.json \
--output use_cases/195_enzyme_kinetics/results/run.sh --seed 42
3
Execute the experiments
$ bash use_cases/195_enzyme_kinetics/results/run.sh
4
Analyze results
$ doe analyze --config use_cases/195_enzyme_kinetics/config.json
5
Get optimization recommendations
$ doe optimize --config use_cases/195_enzyme_kinetics/config.json
6
Multi-objective optimization
With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.
$ doe optimize --config use_cases/195_enzyme_kinetics/config.json --multi
7
Generate the HTML report
$ doe report --config use_cases/195_enzyme_kinetics/config.json \
--output use_cases/195_enzyme_kinetics/results/report.html
Features Exercised
| Feature | Value |
| Design type | full_factorial |
| Factor types | continuous (all 4) |
| Arg style | double-dash |
| Responses | 2 (reaction_rate ↑, inhibition_pct ↓) |
| Total runs | 16 |
Analysis Results
Generated from actual experiment runs using the DOE Helper Tool.
Response: reaction_rate
Top factors: temp_c (42.1%), substrate_mm (26.2%), enzyme_ug (20.8%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| substrate_mm | 1 | 5.7600 | 5.7600 | 0.520 | 0.5033 |
| enzyme_ug | 1 | 3.6100 | 3.6100 | 0.326 | 0.5929 |
| ph | 1 | 1.0000 | 1.0000 | 0.090 | 0.7760 |
| temp_c | 1 | 14.8225 | 14.8225 | 1.337 | 0.2998 |
| substrate_mm*enzyme_ug | 1 | 16.0000 | 16.0000 | 1.444 | 0.2834 |
| substrate_mm*ph | 1 | 20.2500 | 20.2500 | 1.827 | 0.2344 |
| substrate_mm*temp_c | 1 | 0.2025 | 0.2025 | 0.018 | 0.8978 |
| enzyme_ug*ph | 1 | 0.0100 | 0.0100 | 0.001 | 0.9772 |
| enzyme_ug*temp_c | 1 | 2.1025 | 2.1025 | 0.190 | 0.6813 |
| ph*temp_c | 1 | 5.5225 | 5.5225 | 0.498 | 0.5118 |
| Error | 5 | 55.4200 | 11.0840 | | |
| Total | 15 | 124.7000 | 8.3133 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response: inhibition_pct
Top factors: ph (78.6%), substrate_mm (16.7%), enzyme_ug (2.4%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| substrate_mm | 1 | 3.0625 | 3.0625 | 0.019 | 0.8961 |
| enzyme_ug | 1 | 0.0625 | 0.0625 | 0.000 | 0.9851 |
| ph | 1 | 68.0625 | 68.0625 | 0.420 | 0.5456 |
| temp_c | 1 | 0.0625 | 0.0625 | 0.000 | 0.9851 |
| substrate_mm*enzyme_ug | 1 | 7.5625 | 7.5625 | 0.047 | 0.8376 |
| substrate_mm*ph | 1 | 76.5625 | 76.5625 | 0.472 | 0.5226 |
| substrate_mm*temp_c | 1 | 3.0625 | 3.0625 | 0.019 | 0.8961 |
| enzyme_ug*ph | 1 | 76.5625 | 76.5625 | 0.472 | 0.5226 |
| enzyme_ug*temp_c | 1 | 0.5625 | 0.5625 | 0.003 | 0.9553 |
| ph*temp_c | 1 | 3.0625 | 3.0625 | 0.019 | 0.8961 |
| Error | 5 | 810.8125 | 162.1625 | | |
| Total | 15 | 1049.4375 | 69.9625 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response Surface Plots
3D surfaces fitted with quadratic RSM. Red dots are observed data points.
inhibition pct enzyme ug vs ph
inhibition pct enzyme ug vs temp c
inhibition pct ph vs temp c
inhibition pct substrate mm vs enzyme ug
inhibition pct substrate mm vs ph
inhibition pct substrate mm vs temp c
reaction rate enzyme ug vs ph
reaction rate enzyme ug vs temp c
reaction rate ph vs temp c
reaction rate substrate mm vs enzyme ug
reaction rate substrate mm vs ph
reaction rate substrate mm vs temp c
Multi-Objective Optimization
When responses compete, Derringer–Suich desirability finds the best compromise.
Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.
Overall Desirability
D = 0.6441
Per-Response Desirability
| Response | Weight | Desirability | Predicted | Dir |
reaction_rate |
1.5 |
|
4.90 0.5784 4.90 umol/min |
↑ |
inhibition_pct |
1.0 |
|
4.00 0.7569 4.00 % |
↓ |
Recommended Settings
| Factor | Value |
substrate_mm | 10 mM |
enzyme_ug | 1 ug |
ph | 9 pH |
temp_c | 20 C |
Source: from observed run #1
Trade-off Summary
Sacrifice = how much worse than single-objective best.
| Response | Predicted | Best Observed | Sacrifice |
inhibition_pct | 4.00 | -1.00 | +5.00 |
Top 3 Runs by Desirability
| Run | D | Factor Settings |
| #3 | 0.5896 | substrate_mm=10, enzyme_ug=20, ph=5, temp_c=20 |
| #11 | 0.4499 | substrate_mm=0.1, enzyme_ug=1, ph=9, temp_c=45 |
Model Quality
| Response | R² | Type |
inhibition_pct | 0.0717 | linear |
Full Multi-Objective Output
============================================================
MULTI-OBJECTIVE OPTIMIZATION
Method: Derringer-Suich Desirability Function
============================================================
Overall desirability: D = 0.6441
Response Weight Desirability Predicted Direction
---------------------------------------------------------------------
reaction_rate 1.5 0.5784 4.90 umol/min ↑
inhibition_pct 1.0 0.7569 4.00 % ↓
Recommended settings:
substrate_mm = 10 mM
enzyme_ug = 1 ug
ph = 9 pH
temp_c = 20 C
(from observed run #1)
Trade-off summary:
reaction_rate: 4.90 (best observed: 8.50, sacrifice: +3.60)
inhibition_pct: 4.00 (best observed: -1.00, sacrifice: +5.00)
Model quality:
reaction_rate: R² = 0.2191 (linear)
inhibition_pct: R² = 0.0717 (linear)
Top 3 observed runs by overall desirability:
1. Run #1 (D=0.6441): substrate_mm=10, enzyme_ug=1, ph=9, temp_c=20
2. Run #3 (D=0.5896): substrate_mm=10, enzyme_ug=20, ph=5, temp_c=20
3. Run #11 (D=0.4499): substrate_mm=0.1, enzyme_ug=1, ph=9, temp_c=45
Full Analysis Output
=== Main Effects: reaction_rate ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
temp_c -1.9250 0.7208 42.1%
substrate_mm 1.2000 0.7208 26.2%
enzyme_ug -0.9500 0.7208 20.8%
ph 0.5000 0.7208 10.9%
=== ANOVA Table: reaction_rate ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
substrate_mm 1 5.7600 5.7600 0.520 0.5033
enzyme_ug 1 3.6100 3.6100 0.326 0.5929
ph 1 1.0000 1.0000 0.090 0.7760
temp_c 1 14.8225 14.8225 1.337 0.2998
substrate_mm*enzyme_ug 1 16.0000 16.0000 1.444 0.2834
substrate_mm*ph 1 20.2500 20.2500 1.827 0.2344
substrate_mm*temp_c 1 0.2025 0.2025 0.018 0.8978
enzyme_ug*ph 1 0.0100 0.0100 0.001 0.9772
enzyme_ug*temp_c 1 2.1025 2.1025 0.190 0.6813
ph*temp_c 1 5.5225 5.5225 0.498 0.5118
Error 5 55.4200 11.0840
Total 15 124.7000 8.3133
=== Interaction Effects: reaction_rate ===
Factor A Factor B Interaction % Contribution
------------------------------------------------------------------------
substrate_mm ph -2.2500 35.0%
substrate_mm enzyme_ug 2.0000 31.1%
ph temp_c -1.1750 18.3%
enzyme_ug temp_c -0.7250 11.3%
substrate_mm temp_c -0.2250 3.5%
enzyme_ug ph -0.0500 0.8%
=== Summary Statistics: reaction_rate ===
substrate_mm:
Level N Mean Std Min Max
------------------------------------------------------------
0.1 8 1.7000 3.0081 -0.2000 8.5000
10 8 2.9000 2.8183 -0.1000 7.8000
enzyme_ug:
Level N Mean Std Min Max
------------------------------------------------------------
1 8 2.7750 3.1231 -0.1000 8.5000
20 8 1.8250 2.7468 -0.2000 7.8000
ph:
Level N Mean Std Min Max
------------------------------------------------------------
5 8 2.0500 2.0543 -0.2000 4.9000
9 8 2.5500 3.6676 -0.1000 8.5000
temp_c:
Level N Mean Std Min Max
------------------------------------------------------------
20 8 3.2625 3.4455 -0.1000 8.5000
45 8 1.3375 1.9559 -0.2000 4.9000
=== Main Effects: inhibition_pct ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
ph 4.1250 2.0911 78.6%
substrate_mm -0.8750 2.0911 16.7%
enzyme_ug 0.1250 2.0911 2.4%
temp_c -0.1250 2.0911 2.4%
=== ANOVA Table: inhibition_pct ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
substrate_mm 1 3.0625 3.0625 0.019 0.8961
enzyme_ug 1 0.0625 0.0625 0.000 0.9851
ph 1 68.0625 68.0625 0.420 0.5456
temp_c 1 0.0625 0.0625 0.000 0.9851
substrate_mm*enzyme_ug 1 7.5625 7.5625 0.047 0.8376
substrate_mm*ph 1 76.5625 76.5625 0.472 0.5226
substrate_mm*temp_c 1 3.0625 3.0625 0.019 0.8961
enzyme_ug*ph 1 76.5625 76.5625 0.472 0.5226
enzyme_ug*temp_c 1 0.5625 0.5625 0.003 0.9553
ph*temp_c 1 3.0625 3.0625 0.019 0.8961
Error 5 810.8125 162.1625
Total 15 1049.4375 69.9625
=== Interaction Effects: inhibition_pct ===
Factor A Factor B Interaction % Contribution
------------------------------------------------------------------------
substrate_mm ph -4.3750 35.7%
enzyme_ug ph -4.3750 35.7%
substrate_mm enzyme_ug -1.3750 11.2%
substrate_mm temp_c 0.8750 7.1%
ph temp_c 0.8750 7.1%
enzyme_ug temp_c 0.3750 3.1%
=== Summary Statistics: inhibition_pct ===
substrate_mm:
Level N Mean Std Min Max
------------------------------------------------------------
0.1 8 11.7500 7.7044 3.0000 21.0000
10 8 10.8750 9.4934 -1.0000 22.0000
enzyme_ug:
Level N Mean Std Min Max
------------------------------------------------------------
1 8 11.2500 7.9237 3.0000 21.0000
20 8 11.3750 9.3341 -1.0000 22.0000
ph:
Level N Mean Std Min Max
------------------------------------------------------------
5 8 9.2500 8.2765 1.0000 22.0000
9 8 13.3750 8.4674 -1.0000 21.0000
temp_c:
Level N Mean Std Min Max
------------------------------------------------------------
20 8 11.3750 8.1405 1.0000 21.0000
45 8 11.2500 9.1456 -1.0000 22.0000
Optimization Recommendations
=== Optimization: reaction_rate ===
Direction: maximize
Best observed run: #12
substrate_mm = 0.1
enzyme_ug = 1
ph = 5
temp_c = 20
Value: 8.5
RSM Model (linear, R² = 0.0794, Adj R² = -0.2554):
Coefficients:
intercept +2.3000
substrate_mm -0.2000
enzyme_ug -0.5250
ph -0.4250
temp_c +0.3500
RSM Model (quadratic, R² = 0.6196, Adj R² = -4.7065):
Coefficients:
intercept +0.4600
substrate_mm -0.2000
enzyme_ug -0.5250
ph -0.4250
temp_c +0.3500
substrate_mm*enzyme_ug +0.9750
substrate_mm*ph +1.2000
substrate_mm*temp_c +0.8750
enzyme_ug*ph +1.0250
enzyme_ug*temp_c -0.0250
ph*temp_c -0.0500
substrate_mm^2 +0.4600
enzyme_ug^2 +0.4600
ph^2 +0.4600
temp_c^2 +0.4600
Curvature analysis:
ph coef=+0.4600 convex (has a minimum)
enzyme_ug coef=+0.4600 convex (has a minimum)
substrate_mm coef=+0.4600 convex (has a minimum)
temp_c coef=+0.4600 convex (has a minimum)
Notable interactions:
substrate_mm*ph coef=+1.2000 (synergistic)
enzyme_ug*ph coef=+1.0250 (synergistic)
substrate_mm*enzyme_ug coef=+0.9750 (synergistic)
substrate_mm*temp_c coef=+0.8750 (synergistic)
Predicted optimum (from linear model, at observed points):
substrate_mm = 0.1
enzyme_ug = 1
ph = 5
temp_c = 45
Predicted value: 3.8000
Surface optimum (via L-BFGS-B, linear model):
substrate_mm = 0.1
enzyme_ug = 1
ph = 5
temp_c = 45
Predicted value: 3.8000
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. enzyme_ug (effect: -1.1, contribution: 35.0%)
2. ph (effect: -0.9, contribution: 28.3%)
3. temp_c (effect: 0.7, contribution: 23.3%)
4. substrate_mm (effect: -0.4, contribution: 13.3%)
=== Optimization: inhibition_pct ===
Direction: minimize
Best observed run: #13
substrate_mm = 10
enzyme_ug = 1
ph = 5
temp_c = 45
Value: -1.0
RSM Model (linear, R² = 0.3042, Adj R² = 0.0512):
Coefficients:
intercept +11.3125
substrate_mm -2.8125
enzyme_ug +2.0625
ph -1.5625
temp_c -2.3125
RSM Model (quadratic, R² = 0.7610, Adj R² = -2.5850):
Coefficients:
intercept +2.2625
substrate_mm -2.8125
enzyme_ug +2.0625
ph -1.5625
temp_c -2.3125
substrate_mm*enzyme_ug +0.4375
substrate_mm*ph +4.3125
substrate_mm*temp_c -0.9375
enzyme_ug*ph -0.3125
enzyme_ug*temp_c +0.1875
ph*temp_c -3.1875
substrate_mm^2 +2.2625
enzyme_ug^2 +2.2625
ph^2 +2.2625
temp_c^2 +2.2625
Curvature analysis:
enzyme_ug coef=+2.2625 convex (has a minimum)
temp_c coef=+2.2625 convex (has a minimum)
substrate_mm coef=+2.2625 convex (has a minimum)
ph coef=+2.2625 convex (has a minimum)
Notable interactions:
substrate_mm*ph coef=+4.3125 (synergistic)
ph*temp_c coef=-3.1875 (antagonistic)
substrate_mm*temp_c coef=-0.9375 (antagonistic)
substrate_mm*enzyme_ug coef=+0.4375 (synergistic)
enzyme_ug*ph coef=-0.3125 (antagonistic)
Predicted optimum (from linear model, at observed points):
substrate_mm = 0.1
enzyme_ug = 20
ph = 5
temp_c = 20
Predicted value: 20.0625
Surface optimum (via L-BFGS-B, linear model):
substrate_mm = 10
enzyme_ug = 1
ph = 9
temp_c = 45
Predicted value: 2.5625
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. substrate_mm (effect: -5.6, contribution: 32.1%)
2. temp_c (effect: -4.6, contribution: 26.4%)
3. enzyme_ug (effect: 4.1, contribution: 23.6%)
4. ph (effect: -3.1, contribution: 17.9%)