← All Use Cases
🌱
Full Factorial Design

Seed Germination Rate

Full factorial of soil temperature, moisture level, seed depth, and light exposure to maximize germination percentage and minimize days to emergence

Summary

This experiment investigates seed germination rate. Full factorial of soil temperature, moisture level, seed depth, and light exposure to maximize germination percentage and minimize days to emergence.

The design varies 4 factors: soil temp (C), ranging from 15 to 28, moisture level (%), ranging from 30 to 70, seed depth (mm), ranging from 5 to 25, and light hrs (hrs), ranging from 8 to 16. The goal is to optimize 2 responses: germination pct (%) (maximize) and days to emerge (days) (minimize). Fixed conditions held constant across all runs include seed variety = lettuce, medium = potting_mix.

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 germination pct, the most influential factors were light hrs (45.8%), soil temp (31.0%), seed depth (20.2%). The best observed value was 87.8 (at soil temp = 28, moisture level = 70, seed depth = 5).

For days to emerge, the most influential factors were light hrs (34.6%), soil temp (25.1%), seed depth (24.6%). The best observed value was 4.8 (at soil temp = 28, moisture level = 70, seed depth = 5).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
soil_temp1528C
moisture_level3070%
seed_depth525mm
light_hrs816hrs

Fixed: seed_variety = lettuce, medium = potting_mix

Responses

ResponseDirectionUnit
germination_pct↑ maximize%
days_to_emerge↓ minimizedays

Configuration

use_cases/99_seed_germination/config.json
{ "metadata": { "name": "Seed Germination Rate", "description": "Full factorial of soil temperature, moisture level, seed depth, and light exposure to maximize germination percentage and minimize days to emergence" }, "factors": [ { "name": "soil_temp", "levels": [ "15", "28" ], "type": "continuous", "unit": "C" }, { "name": "moisture_level", "levels": [ "30", "70" ], "type": "continuous", "unit": "%" }, { "name": "seed_depth", "levels": [ "5", "25" ], "type": "continuous", "unit": "mm" }, { "name": "light_hrs", "levels": [ "8", "16" ], "type": "continuous", "unit": "hrs" } ], "fixed_factors": { "seed_variety": "lettuce", "medium": "potting_mix" }, "responses": [ { "name": "germination_pct", "optimize": "maximize", "unit": "%" }, { "name": "days_to_emerge", "optimize": "minimize", "unit": "days" } ], "settings": { "operation": "full_factorial", "test_script": "use_cases/99_seed_germination/sim.sh" } }

Experimental Matrix

The Full Factorial Design produces 16 runs. Each row is one experiment with specific factor settings.

Runsoil_tempmoisture_levelseed_depthlight_hrs
115702516
22830516
31570516
41570258
52870258
62830258
7287058
8283058
91530516
101530258
112870516
1228702516
13157058
1428302516
15153058
1615302516

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/99_seed_germination/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/99_seed_germination/config.json \ --output use_cases/99_seed_germination/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/99_seed_germination/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/99_seed_germination/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/99_seed_germination/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/99_seed_germination/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/99_seed_germination/config.json \ --output use_cases/99_seed_germination/results/report.html

Features Exercised

FeatureValue
Design typefull_factorial
Factor typescontinuous (all 4)
Arg styledouble-dash
Responses2 (germination_pct ↑, days_to_emerge ↓)
Total runs16

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: germination_pct

Top factors: light_hrs (45.8%), soil_temp (31.0%), seed_depth (20.2%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
soil_temp1191.8225191.82252.2970.1901
moisture_level11.82251.82250.0220.8883
seed_depth181.000081.00000.9700.3700
light_hrs1418.2025418.20255.0070.0754
soil_temp*moisture_level1347.8225347.82254.1640.0968
soil_temp*seed_depth175.690075.69000.9060.3848
soil_temp*light_hrs11.10251.10250.0130.9130
moisture_level*seed_depth177.440077.44000.9270.3798
moisture_level*light_hrs15.52255.52250.0660.8073
seed_depth*light_hrs1196.0000196.00002.3470.1861
Error5417.632583.5265
Total151814.0575120.9372

Pareto Chart

Pareto chart for germination_pct

Main Effects Plot

Main effects plot for germination_pct

Normal Probability Plot of Effects

Normal probability plot for germination_pct

Half-Normal Plot of Effects

Half-normal plot for germination_pct

Model Diagnostics

Model diagnostics for germination_pct

Response: days_to_emerge

Top factors: light_hrs (34.6%), soil_temp (25.1%), seed_depth (24.6%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
soil_temp15.06255.06251.8360.2335
moisture_level11.96001.96000.7110.4377
seed_depth14.84004.84001.7550.2426
light_hrs19.61009.61003.4840.1209
soil_temp*moisture_level127.562527.56259.9940.0251
soil_temp*seed_depth10.30250.30250.1100.7539
soil_temp*light_hrs10.42250.42250.1530.7116
moisture_level*seed_depth10.25000.25000.0910.7755
moisture_level*light_hrs10.36000.36000.1310.7326
seed_depth*light_hrs15.76005.76002.0880.2080
Error513.79002.7580
Total1569.92004.6613

Pareto Chart

Pareto chart for days_to_emerge

Main Effects Plot

Main effects plot for days_to_emerge

Normal Probability Plot of Effects

Normal probability plot for days_to_emerge

Half-Normal Plot of Effects

Half-normal plot for days_to_emerge

Model Diagnostics

Model diagnostics for days_to_emerge

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

days to emerge moisture level vs light hrs

RSM surface: days to emerge moisture level vs light hrs

days to emerge moisture level vs seed depth

RSM surface: days to emerge moisture level vs seed depth

days to emerge seed depth vs light hrs

RSM surface: days to emerge seed depth vs light hrs

days to emerge soil temp vs light hrs

RSM surface: days to emerge soil temp vs light hrs

days to emerge soil temp vs moisture level

RSM surface: days to emerge soil temp vs moisture level

days to emerge soil temp vs seed depth

RSM surface: days to emerge soil temp vs seed depth

germination pct moisture level vs light hrs

RSM surface: germination pct moisture level vs light hrs

germination pct moisture level vs seed depth

RSM surface: germination pct moisture level vs seed depth

germination pct seed depth vs light hrs

RSM surface: germination pct seed depth vs light hrs

germination pct soil temp vs light hrs

RSM surface: germination pct soil temp vs light hrs

germination pct soil temp vs moisture level

RSM surface: germination pct soil temp vs moisture level

germination pct soil temp vs seed depth

RSM surface: germination pct soil temp vs seed depth

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.9545

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
germination_pct 1.5
0.9545
87.80 0.9545 87.80 %
days_to_emerge 1.0
0.9545
4.80 0.9545 4.80 days

Recommended Settings

FactorValue
soil_temp15 C
moisture_level70 %
seed_depth5 mm
light_hrs8 hrs

Source: from observed run #11

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
days_to_emerge4.804.80+0.00

Top 3 Runs by Desirability

RunDFactor Settings
#70.8083soil_temp=28, moisture_level=30, seed_depth=25, light_hrs=16
#120.7079soil_temp=15, moisture_level=70, seed_depth=25, light_hrs=16

Model Quality

ResponseType
days_to_emerge0.2578linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.9545 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- germination_pct 1.5 0.9545 87.80 % ↑ days_to_emerge 1.0 0.9545 4.80 days ↓ Recommended settings: soil_temp = 15 C moisture_level = 70 % seed_depth = 5 mm light_hrs = 8 hrs (from observed run #11) Trade-off summary: germination_pct: 87.80 (best observed: 87.80, sacrifice: +0.00) days_to_emerge: 4.80 (best observed: 4.80, sacrifice: +0.00) Model quality: germination_pct: R² = 0.0608 (linear) days_to_emerge: R² = 0.2578 (linear) Top 3 observed runs by overall desirability: 1. Run #11 (D=0.9545): soil_temp=15, moisture_level=70, seed_depth=5, light_hrs=8 2. Run #7 (D=0.8083): soil_temp=28, moisture_level=30, seed_depth=25, light_hrs=16 3. Run #12 (D=0.7079): soil_temp=15, moisture_level=70, seed_depth=25, light_hrs=16

Full Analysis Output

doe analyze
=== Main Effects: germination_pct === Factor Effect Std Error % Contribution -------------------------------------------------------------- light_hrs -10.2250 2.7493 45.8% soil_temp 6.9250 2.7493 31.0% seed_depth -4.5000 2.7493 20.2% moisture_level 0.6750 2.7493 3.0% === ANOVA Table: germination_pct === Source DF SS MS F p-value ----------------------------------------------------------------------------- soil_temp 1 191.8225 191.8225 2.297 0.1901 moisture_level 1 1.8225 1.8225 0.022 0.8883 seed_depth 1 81.0000 81.0000 0.970 0.3700 light_hrs 1 418.2025 418.2025 5.007 0.0754 soil_temp*moisture_level 1 347.8225 347.8225 4.164 0.0968 soil_temp*seed_depth 1 75.6900 75.6900 0.906 0.3848 soil_temp*light_hrs 1 1.1025 1.1025 0.013 0.9130 moisture_level*seed_depth 1 77.4400 77.4400 0.927 0.3798 moisture_level*light_hrs 1 5.5225 5.5225 0.066 0.8073 seed_depth*light_hrs 1 196.0000 196.0000 2.347 0.1861 Error 5 417.6325 83.5265 Total 15 1814.0575 120.9372 === Interaction Effects: germination_pct === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ soil_temp moisture_level 9.3250 34.8% seed_depth light_hrs 7.0000 26.1% moisture_level seed_depth 4.4000 16.4% soil_temp seed_depth 4.3500 16.2% moisture_level light_hrs -1.1750 4.4% soil_temp light_hrs -0.5250 2.0% === Summary Statistics: germination_pct === soil_temp: Level N Mean Std Min Max ------------------------------------------------------------ 15 8 61.8500 11.5389 48.5000 80.0000 28 8 68.7750 9.9299 56.9000 87.8000 moisture_level: Level N Mean Std Min Max ------------------------------------------------------------ 30 8 64.9750 8.1977 56.9000 80.0000 70 8 65.6500 13.8452 48.5000 87.8000 seed_depth: Level N Mean Std Min Max ------------------------------------------------------------ 25 8 67.5625 10.5569 48.5000 80.0000 5 8 63.0625 11.6675 48.5000 87.8000 light_hrs: Level N Mean Std Min Max ------------------------------------------------------------ 16 8 70.4250 12.6130 48.5000 87.8000 8 8 60.2000 6.3498 48.5000 69.5000 === Main Effects: days_to_emerge === Factor Effect Std Error % Contribution -------------------------------------------------------------- light_hrs 1.5500 0.5398 34.6% soil_temp -1.1250 0.5398 25.1% seed_depth 1.1000 0.5398 24.6% moisture_level -0.7000 0.5398 15.6% === ANOVA Table: days_to_emerge === Source DF SS MS F p-value ----------------------------------------------------------------------------- soil_temp 1 5.0625 5.0625 1.836 0.2335 moisture_level 1 1.9600 1.9600 0.711 0.4377 seed_depth 1 4.8400 4.8400 1.755 0.2426 light_hrs 1 9.6100 9.6100 3.484 0.1209 soil_temp*moisture_level 1 27.5625 27.5625 9.994 0.0251 soil_temp*seed_depth 1 0.3025 0.3025 0.110 0.7539 soil_temp*light_hrs 1 0.4225 0.4225 0.153 0.7116 moisture_level*seed_depth 1 0.2500 0.2500 0.091 0.7755 moisture_level*light_hrs 1 0.3600 0.3600 0.131 0.7326 seed_depth*light_hrs 1 5.7600 5.7600 2.088 0.2080 Error 5 13.7900 2.7580 Total 15 69.9200 4.6613 === Interaction Effects: days_to_emerge === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ soil_temp moisture_level -2.6250 52.8% seed_depth light_hrs -1.2000 24.1% soil_temp light_hrs 0.3250 6.5% moisture_level light_hrs -0.3000 6.0% soil_temp seed_depth -0.2750 5.5% moisture_level seed_depth -0.2500 5.0% === Summary Statistics: days_to_emerge === soil_temp: Level N Mean Std Min Max ------------------------------------------------------------ 15 8 8.6625 2.1427 5.5000 11.7000 28 8 7.5375 2.1620 4.8000 10.7000 moisture_level: Level N Mean Std Min Max ------------------------------------------------------------ 30 8 8.4500 1.6009 5.5000 10.7000 70 8 7.7500 2.6731 4.8000 11.7000 seed_depth: Level N Mean Std Min Max ------------------------------------------------------------ 25 8 7.5500 2.2367 5.5000 11.5000 5 8 8.6500 2.0723 4.8000 11.7000 light_hrs: Level N Mean Std Min Max ------------------------------------------------------------ 16 8 7.3250 2.2908 4.8000 11.7000 8 8 8.8750 1.8352 5.8000 11.5000

Optimization Recommendations

doe optimize
=== Optimization: germination_pct === Direction: maximize Best observed run: #11 soil_temp = 28 moisture_level = 70 seed_depth = 5 light_hrs = 8 Value: 87.8 RSM Model (linear, R² = 0.3468, Adj R² = 0.1092): Coefficients: intercept +65.3125 soil_temp +4.4000 moisture_level +0.5750 seed_depth -4.2500 light_hrs +1.2500 RSM Model (quadratic, R² = 0.6537, Adj R² = -4.1945): Coefficients: intercept +13.0625 soil_temp +4.4000 moisture_level +0.5750 seed_depth -4.2500 light_hrs +1.2500 soil_temp*moisture_level +0.0625 soil_temp*seed_depth -0.5375 soil_temp*light_hrs -2.6625 moisture_level*seed_depth -4.8625 moisture_level*light_hrs -0.9625 seed_depth*light_hrs -1.6875 soil_temp^2 +13.0625 moisture_level^2 +13.0625 seed_depth^2 +13.0625 light_hrs^2 +13.0625 Curvature analysis: soil_temp coef=+13.0625 convex (has a minimum) moisture_level coef=+13.0625 convex (has a minimum) seed_depth coef=+13.0625 convex (has a minimum) light_hrs coef=+13.0625 convex (has a minimum) Notable interactions: moisture_level*seed_depth coef=-4.8625 (antagonistic) soil_temp*light_hrs coef=-2.6625 (antagonistic) seed_depth*light_hrs coef=-1.6875 (antagonistic) moisture_level*light_hrs coef=-0.9625 (antagonistic) soil_temp*seed_depth coef=-0.5375 (antagonistic) Predicted optimum (from linear model, at observed points): soil_temp = 28 moisture_level = 70 seed_depth = 5 light_hrs = 16 Predicted value: 75.7875 Surface optimum (via L-BFGS-B, linear model): soil_temp = 28 moisture_level = 70 seed_depth = 5 light_hrs = 16 Predicted value: 75.7875 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. soil_temp (effect: 8.8, contribution: 42.0%) 2. seed_depth (effect: 8.5, contribution: 40.6%) 3. light_hrs (effect: -2.5, contribution: 11.9%) 4. moisture_level (effect: 1.2, contribution: 5.5%) === Optimization: days_to_emerge === Direction: minimize Best observed run: #11 soil_temp = 28 moisture_level = 70 seed_depth = 5 light_hrs = 8 Value: 4.8 RSM Model (linear, R² = 0.2706, Adj R² = 0.0053): Coefficients: intercept +8.1000 soil_temp -0.7625 moisture_level +0.1250 seed_depth +0.7625 light_hrs -0.0625 RSM Model (quadratic, R² = 0.6091, Adj R² = -4.8642): Coefficients: intercept +1.6200 soil_temp -0.7625 moisture_level +0.1250 seed_depth +0.7625 light_hrs -0.0625 soil_temp*moisture_level +0.2625 soil_temp*seed_depth -0.3000 soil_temp*light_hrs +0.4000 moisture_level*seed_depth +0.8875 moisture_level*light_hrs +0.1125 seed_depth*light_hrs +0.6000 soil_temp^2 +1.6200 moisture_level^2 +1.6200 seed_depth^2 +1.6200 light_hrs^2 +1.6200 Curvature analysis: soil_temp coef=+1.6200 convex (has a minimum) moisture_level coef=+1.6200 convex (has a minimum) seed_depth coef=+1.6200 convex (has a minimum) light_hrs coef=+1.6200 convex (has a minimum) Notable interactions: moisture_level*seed_depth coef=+0.8875 (synergistic) seed_depth*light_hrs coef=+0.6000 (synergistic) soil_temp*light_hrs coef=+0.4000 (synergistic) Predicted optimum (from linear model, at observed points): soil_temp = 15 moisture_level = 70 seed_depth = 25 light_hrs = 8 Predicted value: 9.8125 Surface optimum (via L-BFGS-B, linear model): soil_temp = 28 moisture_level = 30 seed_depth = 5 light_hrs = 16 Predicted value: 6.3875 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. soil_temp (effect: -1.5, contribution: 44.5%) 2. seed_depth (effect: -1.5, contribution: 44.5%) 3. moisture_level (effect: 0.2, contribution: 7.3%) 4. light_hrs (effect: 0.1, contribution: 3.6%)
← Previous: Compost Maturity Optimization Next: Hydroponic Nutrient Solution →