Alpha designs and structure proposal

Background

Alpha designs are resolvable incomplete block designs introduced by Patterson and Williams (1976). The design consists of r replicates, each split into s incomplete blocks of k plots each. The design is resolvable when every replicate contains all v treatments exactly once; this requires s * k >= v.

This R package implements the alpha design using the exact generating arrays extracted from the historical EDGAR Alpha.xls workbook (a property of the Biometrics team at Rothamsted Research). The same generating arrays are used by the upstream Python edgar-design package; this R port reproduces that implementation faithfully.

Generating an alpha design

library(ExperimentalDesignGeneratorandRandomiser)
res <- design_alpha(
  treatment_count = 24,
  reps = 2,
  blocks_per_replicate = 6,
  seed = 100
)
df <- as.data.frame(res)
head(df)

The result contains Unit, Rep, Block, Plot, and Variety columns. Each replicate has all treatments exactly once, partitioned into s blocks of k plots.

Repeated controls

Alpha designs can include repeated_controls controls (0..6). Controls appear at the top of every block in every replicate, ensuring they are “repeated” across the design.

res <- design_alpha(
  treatment_count = 24,
  reps = 2,
  blocks_per_replicate = 6,
  repeated_controls = 2,
  seed = 100
)
df <- as.data.frame(res)
unique(df$Variety)  # contains C1, C2 plus the 24 numbered treatments

Proposing alpha structures

For a given treatment count, several (s, k) combinations may be feasible. Use propose_alpha_structures() to list them:

propose_alpha_structures(24)
#>   s k blocks_per_replicate plots_per_block min_treatments max_treatments
#> 1 6 4                   6               4             24            36
#> 2 7 4                   7               4             28            49
#> ...

choose_design() is an alias for propose_alpha_structures(), matching the upstream Python API.

Resolvability

Each replicate of an alpha design is resolvable: every treatment appears exactly once per replicate. The implementation enforces this by using the Patterson-Williams cyclic interchanging on top of the Rep 1 base layout. The rotation tables (extracted from the original EDGAR Alpha.xls) cover s values from 5 to 15.

Reference

Patterson, H.D. & Williams, E.R. (1976). A new class of resolvable incomplete block designs. Biometrika, 63(1), 83-92. doi:10.1093/biomet/63.1.83