rhoneycomb_documentation

A short guide to using the package “rhoneycomb”

The package “rhoneycomb” is a useful statistical tool for the construction and analysis of honeycomb selection designs.

Installation and usage

This section shows the installation of the package and the usage of underlying functions.

Installation

To install the package from CRAN, and then load it, use the following commands:

install.packages("rhoneycomb")
library(rhoneycomb)

Example: Generate available Honeycomb Selection Designs

As a first step in the analysis, the plant breeder should check if any designs are available for the number of under-evaluation entries. We do so by using the following command which returns a data frame containing the available designs. Here we run the function with a vector that contains numbers 1 to 60:

generate(1:60)
##     E X Y K1 K2 K3 K4 K5 K6      Type Groups GroupSize SetRows
## 1   3 1 1  1  1  -  -  -  - Ungrouped      1         3       2
## 2   4 2 0  -  -  1  2  -  -   Grouped      2         2       4
## 3   7 2 1  4  2  -  -  -  - Ungrouped      1         7      14
## 4   9 3 0  -  -  2  3  5  6   Grouped      3         3       6
## 5  12 2 2  -  -  4  7  -  -   Grouped      2         6       4
## 6  13 3 1  9  3  -  -  -  - Ungrouped      1        13      26
## 7  16 4 0  -  -  3  4 11 12   Grouped      4         4       8
## 8  19 3 2  7 11  -  -  -  - Ungrouped      1        19      38
## 9  21 4 1 16  4  -  -  -  - Ungrouped      1        21      14
## 10 25 5 0  -  -  4  5 19 20   Grouped      5         5      10
## 11 27 3 3  -  -  7 10 16 19   Grouped      3         9       6
## 12 28 4 2  -  -  9 18 11 16   Grouped      2        14      28
## 13 31 5 1 25  5  -  -  -  - Ungrouped      1        31      62
## 14 36 6 0  -  -  5  6 29 30   Grouped      6         6      12
## 15 37 4 3 10 26  -  -  -  - Ungrouped      1        37      74
## 16 39 5 2 16 22  -  -  -  - Ungrouped      1        39      26
## 17 43 6 1 36  6  -  -  -  - Ungrouped      1        43      86
## 18 48 4 4  -  - 10 13 34 37   Grouped      4        12       8
## 19 49 5 3 30 18  -  -  -  - Ungrouped      1        49      98
## 20 49 7 0  -  -  6  7 41 42   Grouped      7         7      14
## 21 52 6 2  -  - 16 35 22 29   Grouped      2        26      52
## 22 57 7 1 49  7  -  -  -  - Ungrouped      1        57      38

Example: Analysis of Experimental Data.

After obtaining the necessary design information from the function generate(), the user inputs the number of entries, the k parameter, the number of rows, the number of plants per row and the planting distance into the function HSD().

Honeycomb Selection Design

Initialization

We initialize the honeycomb selection design using the HSD command. Here:

  • 7 corresponds to the number of entries
  • 2 is the value of k parameter
  • 10 is the number of rows
  • 10 is the number of plants per row
  • 1 is the interplant distance in meters
main_data<-HSD(7,2,10,10,1)

head(main_data,25) #Use the head function to get the top 25 rows.
##    Entry Row Plant XPos      YPos Data
## 1      7   1     1  1.0 0.8660254   NA
## 2      1   1     2  2.0 0.8660254   NA
## 3      2   1     3  3.0 0.8660254   NA
## 4      3   1     4  4.0 0.8660254   NA
## 5      4   1     5  5.0 0.8660254   NA
## 6      5   1     6  6.0 0.8660254   NA
## 7      6   1     7  7.0 0.8660254   NA
## 8      7   1     8  8.0 0.8660254   NA
## 9      1   1     9  9.0 0.8660254   NA
## 10     2   1    10 10.0 0.8660254   NA
## 11     5   2     1  1.5 1.7320508   NA
## 12     6   2     2  2.5 1.7320508   NA
## 13     7   2     3  3.5 1.7320508   NA
## 14     1   2     4  4.5 1.7320508   NA
## 15     2   2     5  5.5 1.7320508   NA
## 16     3   2     6  6.5 1.7320508   NA
## 17     4   2     7  7.5 1.7320508   NA
## 18     5   2     8  8.5 1.7320508   NA
## 19     6   2     9  9.5 1.7320508   NA
## 20     7   2    10 10.5 1.7320508   NA
## 21     2   3     1  1.0 2.5980762   NA
## 22     3   3     2  2.0 2.5980762   NA
## 23     4   3     3  3.0 2.5980762   NA
## 24     5   3     4  4.0 2.5980762   NA
## 25     6   3     5  5.0 2.5980762   NA

Ring Analysis

After this step, we pass the response variable to the “Data” column of the data frame generated by one of the functions HSD, HSD0, HSD01 or HSD03.

main_data$Data<-wheat_data$main_spike_weight
result<-analysis(main_data,"Data",6)

head(result[[1]],10) #Use the head function to get the top 10 rows.
##    Entry Row Plant XPos  YPos Data NumR  MeanR    PYE E_Mean  N   E_sd    E_HI
## 1      7   1     1    1 0.866 5.33    2 3.1300 2.8998 4.6600 14 1.4376 10.5071
## 2      1   1     2    2 0.866 3.62    3 4.5967 0.6202 4.2853 15 0.8598 24.8399
## 3      2   1     3    3 0.866   NA    4 4.4100     NA 3.3800 14 1.0165 11.0563
## 4      3   1     4    4 0.866 5.38    3 4.0067 1.8030 5.4715 13 1.7710  9.5447
## 5      4   1     5    5 0.866 4.10    4 4.3000 0.9091 3.5736 14 0.8958 15.9129
## 6      5   1     6    6 0.866 4.30    4 4.3300 0.9862 4.8062 13 1.2292 15.2887
## 7      6   1     7    7 0.866 5.86    4 4.0250 2.1196 5.2487 15 1.0800 23.6170
## 8      7   1     8    8 0.866 5.40    4 3.9050 1.9123 4.6600 14 1.4376 10.5071
## 9      1   1     9    9 0.866 1.97    4 5.0950 0.1495 4.2853 15 0.8598 24.8399
## 10     2   1    10   10 0.866 2.52    2 4.0500 0.3872 3.3800 14 1.0165 11.0563
##        PPE
## 1  30.4683
## 2  15.4057
## 3       NA
## 4  17.2092
## 5  14.4671
## 6  15.0776
## 7  50.0597
## 8  20.0922
## 9   3.7136
## 10  4.2806
result[[2]] 
##   Entry  N E_Mean      CV   E_sd    E_HI    GYI     GPE   mPYE    mPPE     CRS
## 1     1 15 4.2853 20.0644 0.8598 24.8399 0.9143 22.7105 0.9566 23.7607  0.4652
## 2     2 14 3.3800 30.0743 1.0165 11.0563 0.5688  6.2886 0.6300  6.9656 -0.4171
## 3     3 13 5.4715 32.3682 1.7710  9.5447 1.4905 14.2262 1.7266 16.4797  1.1982
## 4     4 14 3.5736 25.0683 0.8958 15.9129 0.6358 10.1173 0.6605 10.5108 -0.3036
## 5     5 13 4.8062 25.5749 1.2292 15.2887 1.1500 17.5823 1.2713 19.4370  1.1715
## 6     6 15 5.2487 20.5773 1.0800 23.6170 1.3715 32.3914 1.6862 39.8226  1.3796
## 7     7 14 4.6600 30.8502 1.4376 10.5071 1.0811 11.3596 1.3321 13.9963      NA

Blocks Analysis

By using the arguments blocks=TRUE in the analysis function, the data is being analyzed using complete moving replicate. If we also use the arguments “row_element” and “plant_element”, the plants included in the specific block are displayed.

result<-analysis(main_data,"Data",blocks=TRUE,row_element=5,plant_element=5)

head(result[[1]],10) #Use the head function to get the top 10 rows.
##    Entry Row Plant XPos  YPos Data SizeB  MeanB    PYE E_Mean  N   E_sd    E_HI
## 1      7   1     1    1 0.866 5.33     6 3.6167 2.1719 4.6600 14 1.4376 10.5071
## 2      1   1     2    2 0.866 3.62     5 3.9380 0.8450 4.2853 15 0.8598 24.8399
## 3      2   1     3    3 0.866   NA     6 4.1867    NaN 3.3800 14 1.0165 11.0563
## 4      3   1     4    4 0.866 5.38     5 4.4260 1.4775 5.4715 13 1.7710  9.5447
## 5      4   1     5    5 0.866 4.10     6 4.3217 0.9000 3.5736 14 0.8958 15.9129
## 6      5   1     6    6 0.866 4.30     6 4.6417 0.8582 4.8062 13 1.2292 15.2887
## 7      6   1     7    7 0.866 5.86     6 3.8217 2.3512 5.2487 15 1.0800 23.6170
## 8      7   1     8    8 0.866 5.40     6 4.0183 1.8059 4.6600 14 1.4376 10.5071
## 9      1   1     9    9 0.866 1.97     6 4.6517 0.1794 4.2853 15 0.8598 24.8399
## 10     2   1    10   10 0.866 2.52     5 4.6440 0.2945 3.3800 14 1.0165 11.0563
##        PPE    CRS
## 1  22.8203 1.2413
## 2  20.9901 0.9865
## 3      NaN 0.5665
## 4  14.1028 1.6905
## 5  14.3224 0.6504
## 6  13.1208 1.2570
## 7  55.5283 1.6977
## 8  18.9749 1.2413
## 9   4.4552 0.9865
## 10  3.2556 0.5665
result[[2]] 
##   Entry  N E_Mean      CV   E_sd    E_HI    GYI     GPE   mPYE    mPPE     CRS
## 1     1 15 4.2853 20.0644 0.8598 24.8399 0.9143 22.7105 0.9865 24.5040  0.4652
## 2     2 14 3.3800 30.0743 1.0165 11.0563 0.5688  6.2886 0.5665  6.2630 -0.4171
## 3     3 13 5.4715 32.3682 1.7710  9.5447 1.4905 14.2262 1.6905 16.1354  1.1982
## 4     4 14 3.5736 25.0683 0.8958 15.9129 0.6358 10.1173 0.6504 10.3497 -0.3036
## 5     5 13 4.8062 25.5749 1.2292 15.2887 1.1500 17.5823 1.2570 19.2183  1.1715
## 6     6 15 5.2487 20.5773 1.0800 23.6170 1.3715 32.3914 1.6977 40.0957  1.3796
## 7     7 14 4.6600 30.8502 1.4376 10.5071 1.0811 11.3596 1.2413 13.0427      NA

Honeycomb Selection Design with one entry

Initialization

Since there is no control entry in HSD0 design, we must only provide number of rows, number of plants and interplant distance to the function. Here:

  • 10 is the number of rows
  • 10 is the number of plants per row
  • 1 is the interplant distance in meters
main_data<-HSD0(10,10,1)

main_data$Data<-wheat_data$main_spike_weight
head(main_data,10) #Use the head function to get the top 10 rows.
##    Entry Row Plant XPos      YPos Data
## 1      1   1     1    1 0.8660254 5.33
## 2      2   1     2    2 0.8660254 3.62
## 3      3   1     3    3 0.8660254   NA
## 4      4   1     4    4 0.8660254 5.38
## 5      5   1     5    5 0.8660254 4.10
## 6      6   1     6    6 0.8660254 4.30
## 7      7   1     7    7 0.8660254 5.86
## 8      8   1     8    8 0.8660254 5.40
## 9      9   1     9    9 0.8660254 1.97
## 10    10   1    10   10 0.8660254 2.52

For the HSD01 design we must also add the value of K as first argument in the function:

main_data<-HSD01(7,10,10,1)

main_data$Data<-wheat_data$main_spike_weight

head(main_data,10) #Use the head function to get the top 10 rows.
##       Entry Row Plant XPos      YPos Data
## 1  Control1   1     1    1 0.8660254 5.33
## 2         2   1     2    2 0.8660254 3.62
## 3         3   1     3    3 0.8660254   NA
## 4         4   1     4    4 0.8660254 5.38
## 5         5   1     5    5 0.8660254 4.10
## 6         6   1     6    6 0.8660254 4.30
## 7         7   1     7    7 0.8660254 5.86
## 8  Control1   1     8    8 0.8660254 5.40
## 9         8   1     9    9 0.8660254 1.97
## 10        9   1    10   10 0.8660254 2.52

Analysis

The analysis function returns only one data frame.

result<-analysis(main_data,"Data")
## Error in Math.data.frame(structure(list(Entry = c("Control1", "2", "3", : non-numeric-alike variable(s) in data frame: Entry
head(result[[1]],10) #Use the head function to get the top 10 rows.
##    Entry Row Plant XPos  YPos Data SizeB  MeanB    PYE E_Mean  N   E_sd    E_HI
## 1      7   1     1    1 0.866 5.33     6 3.6167 2.1719 4.6600 14 1.4376 10.5071
## 2      1   1     2    2 0.866 3.62     5 3.9380 0.8450 4.2853 15 0.8598 24.8399
## 3      2   1     3    3 0.866   NA     6 4.1867    NaN 3.3800 14 1.0165 11.0563
## 4      3   1     4    4 0.866 5.38     5 4.4260 1.4775 5.4715 13 1.7710  9.5447
## 5      4   1     5    5 0.866 4.10     6 4.3217 0.9000 3.5736 14 0.8958 15.9129
## 6      5   1     6    6 0.866 4.30     6 4.6417 0.8582 4.8062 13 1.2292 15.2887
## 7      6   1     7    7 0.866 5.86     6 3.8217 2.3512 5.2487 15 1.0800 23.6170
## 8      7   1     8    8 0.866 5.40     6 4.0183 1.8059 4.6600 14 1.4376 10.5071
## 9      1   1     9    9 0.866 1.97     6 4.6517 0.1794 4.2853 15 0.8598 24.8399
## 10     2   1    10   10 0.866 2.52     5 4.6440 0.2945 3.3800 14 1.0165 11.0563
##        PPE    CRS
## 1  22.8203 1.2413
## 2  20.9901 0.9865
## 3      NaN 0.5665
## 4  14.1028 1.6905
## 5  14.3224 0.6504
## 6  13.1208 1.2570
## 7  55.5283 1.6977
## 8  18.9749 1.2413
## 9   4.4552 0.9865
## 10  3.2556 0.5665