16 31 May 2027

16.1 Silique counts in the Ler population data

I’ve loaded in the silique count data from ~Arabidopsis/analysis/*_siliques.csv. I’m not actually sure how “clean” these are; I had to add the gap treatments to generation zero, and in the process found one error in generation 1; I didn’t look at the other generations.

The script is in data/popLer_sil.R and the data frame is popLer_sil.

16.2 Patterns of silique variation

Let’s look at silique production in treatment B as a function of replicate (here labeled “ID”) and generation. If my speculations last week hold, then ID:Gen should be significant, but probably not the main effect of ID.

In order to have enough replication to get at the interaction, I’ll look only at the continuous runways and not at generation zero.

sil_data <- subset(popLer_sil, Treatment == "B" & Generation > 0 & Gap == "0p")
summary(aov(Siliques ~ Gen * ID, data = sil_data)) 
             Df Sum Sq Mean Sq F value   Pr(>F)    
Gen           4 116793   29198  16.377 4.22e-12 ***
ID           10  65216    6522   3.658  0.00013 ***
Gen:ID       37 201238    5439   3.051 8.07e-08 ***
Residuals   288 513482    1783                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

So I’m not sure how to interpret the main effect of ID. Let’s look at the coefficients of a regression to see.

summary(lm(Siliques ~ Gen * ID, data = sil_data)) 

Call:
lm(formula = Siliques ~ Gen * ID, data = sil_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-131.600  -21.557   -1.404   18.703  157.000 

Coefficients: (3 not defined because of singularities)
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  120.0000    29.8573   4.019 7.46e-05 ***
Gen2         -58.5000    36.5676  -1.600   0.1107    
Gen3         -53.1111    33.0085  -1.609   0.1087    
Gen4          -2.6923    32.0719  -0.084   0.9332    
Gen5          -6.8125    31.6685  -0.215   0.8298    
ID84          49.5000    42.2247   1.172   0.2420    
ID88         -38.0000    38.5457  -0.986   0.3250    
ID91          13.0000    42.2247   0.308   0.7584    
ID92         -86.1875    43.5242  -1.980   0.0486 *  
ID94         -22.5000    42.2247  -0.533   0.5945    
ID96         -40.0000    51.7144  -0.773   0.4399    
ID99         -14.0000    42.2247  -0.332   0.7405    
ID103        -18.7500    36.5676  -0.513   0.6085    
ID107         -3.3333    38.5457  -0.086   0.9311    
ID108         -5.0000    42.2247  -0.118   0.9058    
Gen2:ID84     11.7500    51.7144   0.227   0.8204    
Gen3:ID84    -46.0556    47.7303  -0.965   0.3354    
Gen4:ID84   -123.4744    47.0874  -2.622   0.0092 ** 
Gen5:ID84    -93.0875    45.5263  -2.045   0.0418 *  
Gen2:ID88     70.1000    47.8339   1.465   0.1439    
Gen3:ID88     34.1111    44.0292   0.775   0.4391    
Gen4:ID88      7.2637    43.3315   0.168   0.8670    
Gen5:ID88     81.4125    42.1366   1.932   0.0543 .  
Gen2:ID91      6.8333    50.2574   0.136   0.8919    
Gen3:ID91     -8.3333    46.6811  -0.179   0.8584    
Gen4:ID91    -48.5804    45.6306  -1.065   0.2879    
Gen5:ID91     -1.1875    45.1988  -0.026   0.9791    
Gen2:ID92          NA         NA      NA       NA    
Gen3:ID92          NA         NA      NA       NA    
Gen4:ID92     26.8798    61.7610   0.435   0.6637    
Gen5:ID92          NA         NA      NA       NA    
Gen2:ID94     38.6000    50.8452   0.759   0.4484    
Gen3:ID94      2.8111    48.3488   0.058   0.9537    
Gen4:ID94    -13.3077    47.0874  -0.283   0.7777    
Gen5:ID94    116.3125    45.7434   2.543   0.0115 *  
Gen2:ID96     59.8333    60.9461   0.982   0.3271    
Gen3:ID96     42.9111    56.8249   0.755   0.4508    
Gen4:ID96    -20.8077    55.7556  -0.373   0.7093    
Gen5:ID96     41.9554    55.1409   0.761   0.4474    
Gen2:ID99     52.5000    50.8452   1.033   0.3027    
Gen3:ID99      1.2361    46.9456   0.026   0.9790    
Gen4:ID99    -55.4327    46.2919  -1.197   0.2321    
Gen5:ID99    -35.9653    45.7434  -0.786   0.4324    
Gen2:ID103    59.0500    46.2548   1.277   0.2028    
Gen3:ID103    29.9722    41.6341   0.720   0.4722    
Gen4:ID103   -10.8077    40.2854  -0.268   0.7887    
Gen5:ID103   -23.5089    39.6986  -0.592   0.5542    
Gen2:ID107    38.8333    48.7568   0.796   0.4264    
Gen3:ID107    -0.7556    45.1714  -0.017   0.9867    
Gen4:ID107   -29.3744    44.4916  -0.660   0.5096    
Gen5:ID107   -40.8542    43.0338  -0.949   0.3432    
Gen2:ID108    51.6667    50.2574   1.028   0.3048    
Gen3:ID108    10.5556    46.6811   0.226   0.8213    
Gen4:ID108   -45.0769    45.3566  -0.994   0.3211    
Gen5:ID108    28.6125    44.8689   0.638   0.5242    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 42.22 on 288 degrees of freedom
Multiple R-squared:  0.4274,    Adjusted R-squared:  0.326 
F-statistic: 4.215 on 51 and 288 DF,  p-value: 3.016e-15
anova(lm(Siliques ~ Gen * ID, data = sil_data))
Analysis of Variance Table

Response: Siliques
           Df Sum Sq Mean Sq F value    Pr(>F)    
Gen         4 116793 29198.3 16.3766 4.222e-12 ***
ID         10  65216  6521.6  3.6578 0.0001295 ***
Gen:ID     37 201238  5438.9  3.0505 8.074e-08 ***
Residuals 288 513482  1782.9                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Oh, I see - aov still uses the default contrasts.

## Set orthogonal contrasts.
op <- options(contrasts = c("contr.helmert", "contr.poly"))
summary(aov(Siliques ~ Gen * ID, data = sil_data)) 
             Df Sum Sq Mean Sq F value   Pr(>F)    
Gen           4 116793   29198  16.377 4.22e-12 ***
ID           10  65216    6522   3.658  0.00013 ***
Gen:ID       37 201238    5439   3.051 8.07e-08 ***
Residuals   288 513482    1783                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
options(op)  # reset to previous

Nope, that didn’t do it either.