Design the experiment {#doe}

The experimental design is described by the number of plots per location, the number of locations, the number of replications of the different germplasms within and between locations.

Function design_experiment sets the experimental design based on :

The function returns a list with

A description of the algorithm is describe in the help of the function: ?design_experiment.

The four experimental designs are

Fully-replicated (D1) {#fully-replicated}

In fully replicated design, all entries are replicated with randomly choosen order into different blocks.

The decision tree where fully-replicated designs are used is displayed in Figure \@ref(fig:decision-tree-agro-fully-replicated-design).

knitr::include_graphics("figures/decision-tree_agro-fully-replicated-design.png")

The R code to implement is the following :

p_fr = design_experiment(
  location = "Location-1",
  year = "2016",
  expe.type = "fully-replicated",
  germplasm = paste("germ", c(1:20), sep = ":"),
  nb.blocks = 3,
  nb.cols = 4)

By default, the data frame is under a standard format:

head(p_fr$"fully-replicated"$data.frame)

You can set the format to a SHiNeMaS^[Seeds History and Network Management System, see here for more details and a presentation in french here reproduction template file:

p_fr = design_experiment(
  location = "Location-2",
  year = "2016",
  expe.type = "fully-replicated",
  germplasm = paste("germ", c(1:20), sep = ":"),
  nb.blocks = 3,
  nb.cols = 4,
  return.format = "shinemas")
head(p_fr$"fully-replicated"$data.frame)
p_fr$"fully-replicated"$design

Incomplete Block Design (D2) {#ibd}

The decision tree where incomplete block designs are used is displayed in Figure \@ref(fig:decision-tree-agro-ibd-design).

knitr::include_graphics("figures/decision-tree_agro-ibd-design.png")

Entries are not replicated on a location. Some entries are common to some locations. Each block is an independent unit and can be allocated to any location. Each farmer has to choose one or several pre-designed blocks. Therefore, the experiment can be handled by several locations that can not receive a high number of plots.

p_ibd = design_experiment(
  year = "2016",
  expe.type = "IBD",
  germplasm = paste("germ", c(1:10), sep = ":"),
  nb.blocks = 8, # i.e. number of location if each location has one block
  nb.cols = 4)
head(p_ibd$`IBD`$data.frame)
p_ibd$`IBD`$design

Row-column (D3) {#row-column}

In Row-column design, a control is replicated in row and columns to catch as much as possible of the variation.

The decision tree where row-column design are used is displayed in Figure \@ref(fig:decision-tree-agro-row-column-design).

knitr::include_graphics("figures/decision-tree_agro-row-column-design.png")

The R code to implement is the following :

p_case2 = design_experiment(
  location = "Location-3",
  year = "2016",
  expe.type = "row-column",
  germplasm = paste("germ", c(1:20), sep = ":"),
  controls = "germ:ctrl",
  nb.controls.per.block = 7,
  nb.blocks = 1,
  nb.cols = 7)
head(p_case2$"row-column"$data.frame)
p_case2$"row-column"$design

Note that if controls are missing in rows or columns, the function will return an error message. The controls must catch as much as possible of the trial variation.

Regional and satellite farms (D4) {#rf-sf}

Regional farms receive several entries (i.e. a germplasm in an environment) in two or more blocks with some entries (i.e. controls) replicated in each block. Satellite farms have a single block and only one entry (i.e. the control) is replicated twice. Farmers choose all entries that are not replicated. The number of entries may vary between farms. Note that at least 25 environments (location $\times$ year) are need in order to get robust results.

The decision tree where regional and satellite farms designs are used is displayed in Figure \@ref(fig:decision-tree-agro-regional-and-satellite-design).

knitr::include_graphics("figures/decision-tree_agro-regional-and-satellite-design.png")

The R code to implement is the following :

As an example here, six designs are generated: four for satellite farms and two for regional farms.

p_case3_sf1 = design_experiment(
  location = "Location-4",
  year = "2016",
  expe.type = "satellite-farm",
  germplasm = paste("germ", c(1:6), sep = ":"),
  controls = "germ:ctrl",
  nb.controls.per.block = 2,
  nb.blocks = 1,
  nb.cols = 2)
p_case3_sf1 = p_case3_sf1$`satellite-farms`$design
p_case3_sf1
p_case3_sf2 = design_experiment(
  location = "Location-5",
  year = "2016",
  expe.type = "satellite-farm",
  germplasm = paste("germ", c(1:6), sep = ":"),
  controls = "germ:ctrl",
  nb.controls.per.block = 2,
  nb.blocks = 1,
  nb.cols = 2)
p_case3_sf2 = p_case3_sf2$`satellite-farms`$design
p_case3_sf2
p_case3_sf3 = design_experiment(
  location = "Location-6",
  year = "2016",
  expe.type = "satellite-farm",
  germplasm = paste("germ", c(1:6), sep = ":"),
  controls = "germ:ctrl",
  nb.controls.per.block = 2,
  nb.blocks = 1,
  nb.cols = 2)
p_case3_sf3 = p_case3_sf3$`satellite-farms`$design
p_case3_sf3
p_case3_rf1 = design_experiment(
  location = "Location-7",
  year = "2016",
  expe.type = "regional-farm",
  germplasm = paste("germ", c(1:16), sep = ":"),
  controls = c("c1", "c2", "c3", "c4"),
  nb.controls.per.block = 4,
  nb.blocks = 2,
  nb.cols = 4)
p_case3_rf1 = p_case3_rf1$`regional-farms`$design
p_case3_rf1
p_case3_rf2 = design_experiment(
  location = "Location-8",
  year = "2016",
  expe.type = "regional-farm",
  germplasm = paste("germ", c(1:16), sep = ":"),
  controls = c("c1", "c2", "c3"),
  nb.controls.per.block = 3,
  nb.blocks = 2,
  nb.cols = 3)
p_case3_rf2 = p_case3_rf2$`regional-farms`$design
p_case3_rf2

If you have enought space and lots of seeds, you can adapt the satellite farm design with only one column. Each row beeing a sower width. Then you must be careful to have several sample for a given row to be as representative as possible.

p_case3_sf4 = design_experiment(
  location = "Location-9",
  year = "2016",
  expe.type = "satellite-farm",
  germplasm = paste("germ", c(1:6), sep = ":"),
  controls = "C",
  nb.controls.per.block = 2,
  nb.blocks = 1,
  nb.cols = 1)
p_case3_sf4 = p_case3_sf4$`satellite-farms`$design
p_case3_sf4

There some constraints regarding expe.type = "satellite-farm":

For expe.type = "regional-farm", there is a warning message if controls are missing in rows or columns. It is better to catch as much as possible of the trial variation. If there are less than 2 blocks, an error message is returned.



priviere/PPBstats documentation built on May 6, 2021, 1:20 a.m.