Avaliação da inibição da germinação de conídios de Colletotrichum spp.

Autores

Prof. Dr. Walmes Zeviani

Débora Petermann

1 Sobre o experimento

Introdução

Este conjunto de dados compreende dois experimentos conduzidos no Laboratório de Epidemiologia para o Manejo Integrado de Doenças de Plantas (LEMID) pela aluna de mestrado Débora Petermann, sob a orientação da professora doutora Louise Larissa May De Mio. O objetivo principal é avaliar o efeito de diferentes produtos biológicos e um produto químico na inibição da germinação de conídios de Colletotrichum nymphaeae e C. chrysophilum, incluindo cepas sensíveis e com sensibilidade reduzida a fungicidas.

Materiais e Métodos

Foram feitos dois experimentos que envolvem a exposição dos conídios aos tratamentos, seguida da adição do produto conhecido como lectofenol, cuja função é paralisar a germinação dos conídios. Isso é necessário porque, sem a adição desse produto, os conídios continuariam germinando indefinidamente, tornando impossível quantificar quais estão ou não germinados.

A variável analisada em ambos os experimentos é a porcentagem de conídios germinados, com base na contagem de 100 conídios para determinar quantos germinaram e quantos não germinaram.

Ambos os experimentos foram conduzidos em um delineamento inteiramente casualizado (DIC) e consistem em 8 tratamentos, 4 isolados e 4 repetições.

Os tratamentos utilizados foram:

  1. Bacillus amyloliquefaciens na dosagem de 0,5g/L (Bam 0,5g/L) - produto biológico.
  2. Bacillus amyloliquefaciens na dosagem de 1,0g/L (Bam 1,0g/L) - produto biológico.
  3. Bacillus amyloliquefaciens na dosagem de 2,0g/L (Bam 2,0g/L) - produto biológico.
  4. Bacillus subtilis (Bs) - produto biológico.
  5. Sobrenadante de Bacillus alcalophilus (SBa) - produto biológico.
  6. Biomassa de Bacillus alcalophilus (BBa) - produto biológico.
  7. CabrioTop - produto químico.
  8. Testemunha composta por água esterilizada (Controle).

Os isolados utilizados foram:

  • MdCn-142: C. nymphaeae sensível a fungicida.
  • MdCn-181: C. nymphaeae sensibilidade reduzida a fungicida.
  • MdCc-110: C. chrysophillum sensível a fungicida.
  • MdCc-55PR: C. chrysophillum sensibilidade reduzida a fungicida.

Análise Estatística

A análise estatística planejada envolve a realização de uma análise fatorial, em que um dos fatores é composto pelos 8 tratamentos, e o segundo fator é composto pelos 4 isolados. A ênfase será na comparação entre os dois isolados de C. nymphaeae (sensível e sensibilidade reduzida) e os dois isolados de C. chrysophilum (sensível e sensibilidade reduzida). É importante destacar que os experimentos 1 e 2 serão analisados separadamente.

2 Análise de dados

Código
#-----------------------------------------------------------------------
# Pacotes.

library(car)
library(emmeans)
library(tidyverse)

#-----------------------------------------------------------------------
# Importação e preparo.

# Importação.
tb <- readxl::read_excel(
    "analises_artigo_mestrado.xlsx",
    sheet = "7. germinação")

# Nomes em caixa baixa.
tb <- tb |>
    rename_with(tolower) |>
    rename("germ" = "germinated conidia")
str(tb)
tibble [256 × 7] (S3: tbl_df/tbl/data.frame)
 $ experiment: num [1:256] 1 1 1 1 1 1 1 1 1 1 ...
 $ treatment : chr [1:256] "Bam 0,5g/L" "Bam 0,5g/L" "Bam 0,5g/L" "Bam 0,5g/L" ...
 $ isolated  : chr [1:256] "MdCn-181" "MdCn-181" "MdCn-181" "MdCn-181" ...
 $ species   : chr [1:256] "C. nymphaeae" "C. nymphaeae" "C. nymphaeae" "C. nymphaeae" ...
 $ phenotype : chr [1:256] "Reduced sensitivity" "Reduced sensitivity" "Reduced sensitivity" "Reduced sensitivity" ...
 $ repetition: num [1:256] 1 2 3 4 1 2 3 4 1 2 ...
 $ germ      : num [1:256] 97 85 83 93 97 83 89 74 80 82 ...
Código
# Alguns erros de digitação da `specie` precisam ser corrigidos.
tb_fix <-
    tb |>
    count(isolated, species, phenotype, sort = TRUE) |>
    slice_head(n = 4)

# Corrigindo valores de `specie` e `phenotype` para `isolated`.
tb <-
    tb |>
    select(-species, -phenotype) |>
    left_join(tb_fix[, 1:3], by = "isolated")

# Variáveis `specie` e `phenotype` são características do isolado.
tb |>
    count(isolated, species, phenotype, sort = TRUE)
# A tibble: 4 × 4
  isolated  species          phenotype               n
  <chr>     <chr>            <chr>               <int>
1 MdCc-110  C. chrysophillum Sensitive              64
2 MdCc-55PR C. chrysophillum Reduced sensitivity    64
3 MdCn-142  C. nymphaeae     Sensitive              64
4 MdCn-181  C. nymphaeae     Reduced sensitivity    64
Código
# Variável `experiment` é a repetição do experimento.
tb |>
    xtabs(formula = ~treatment + experiment)
            experiment
treatment     1  2
  Bam 0,5g/L 16 16
  Bam 1,0g/L 16 16
  Bam 2,0g/L 16 16
  BBa        16 16
  Bs         16 16
  CabrioTop® 16 16
  Control    16 16
  SBa        16 16
Código
# A frequência de cada combinação experimental.
tb |>
    xtabs(formula = ~isolated + treatment + experiment) |>
    ftable()
                     experiment 1 2
isolated  treatment                
MdCc-110  Bam 0,5g/L            4 4
          Bam 1,0g/L            4 4
          Bam 2,0g/L            4 4
          BBa                   4 4
          Bs                    4 4
          CabrioTop®            4 4
          Control               4 4
          SBa                   4 4
MdCc-55PR Bam 0,5g/L            4 4
          Bam 1,0g/L            4 4
          Bam 2,0g/L            4 4
          BBa                   4 4
          Bs                    4 4
          CabrioTop®            4 4
          Control               4 4
          SBa                   4 4
MdCn-142  Bam 0,5g/L            4 4
          Bam 1,0g/L            4 4
          Bam 2,0g/L            4 4
          BBa                   4 4
          Bs                    4 4
          CabrioTop®            4 4
          Control               4 4
          SBa                   4 4
MdCn-181  Bam 0,5g/L            4 4
          Bam 1,0g/L            4 4
          Bam 2,0g/L            4 4
          BBa                   4 4
          Bs                    4 4
          CabrioTop®            4 4
          Control               4 4
          SBa                   4 4
Código
# Passa para fator.
tb <- tb |>
    mutate_at(c("treatment", "isolated", "experiment"), factor)

# Coloca em um ordem mais lógica.
# levels(tb$treatment) |> dput()
tb$treatment <- fct_relevel(tb$treatment,
                            "Control",
                            "Bam 0,5g/L", "Bam 1,0g/L", "Bam 2,0g/L",
                            "SBa", "BBa", "Bs",
                            "CabrioTop®")

#-----------------------------------------------------------------------
# Visualização.

ggplot(data = tb,
       mapping = aes(x = treatment, y = germ,
                     color = isolated, group = isolated)) +
    facet_wrap(facets = ~experiment, ncol = 1) +
    geom_point() +
    stat_summary(fun = "mean", geom = "line")

Código
# ATTENTION: A germinção é zero em todas as repetições do experimento 1
# para CabrioTop®. Isso pode ser um problema para o modelo Binomial.
tb |>
    filter(experiment == "1" & treatment == "CabrioTop®")
# A tibble: 16 × 7
   experiment treatment  isolated  repetition  germ species          phenotype  
   <fct>      <fct>      <fct>          <dbl> <dbl> <chr>            <chr>      
 1 1          CabrioTop® MdCn-181           1     0 C. nymphaeae     Reduced se…
 2 1          CabrioTop® MdCn-181           2     0 C. nymphaeae     Reduced se…
 3 1          CabrioTop® MdCn-181           3     0 C. nymphaeae     Reduced se…
 4 1          CabrioTop® MdCn-181           4     0 C. nymphaeae     Reduced se…
 5 1          CabrioTop® MdCn-142           1     0 C. nymphaeae     Sensitive  
 6 1          CabrioTop® MdCn-142           2     0 C. nymphaeae     Sensitive  
 7 1          CabrioTop® MdCn-142           3     0 C. nymphaeae     Sensitive  
 8 1          CabrioTop® MdCn-142           4     0 C. nymphaeae     Sensitive  
 9 1          CabrioTop® MdCc-110           1     0 C. chrysophillum Sensitive  
10 1          CabrioTop® MdCc-110           2     0 C. chrysophillum Sensitive  
11 1          CabrioTop® MdCc-110           3     0 C. chrysophillum Sensitive  
12 1          CabrioTop® MdCc-110           4     0 C. chrysophillum Sensitive  
13 1          CabrioTop® MdCc-55PR          1     0 C. chrysophillum Reduced se…
14 1          CabrioTop® MdCc-55PR          2     0 C. chrysophillum Reduced se…
15 1          CabrioTop® MdCc-55PR          3     0 C. chrysophillum Reduced se…
16 1          CabrioTop® MdCc-55PR          4     0 C. chrysophillum Reduced se…
Código
# Condições experimentais em que a variância é zero.
tb |>
    group_by(experiment, isolated, treatment) |>
    summarise_at("germ", c("mean", "var")) |>
    filter(var == 0)
# A tibble: 7 × 5
# Groups:   experiment, isolated [6]
  experiment isolated  treatment   mean   var
  <fct>      <fct>     <fct>      <dbl> <dbl>
1 1          MdCc-110  Bs           100     0
2 1          MdCc-110  CabrioTop®     0     0
3 1          MdCc-55PR CabrioTop®     0     0
4 1          MdCn-142  CabrioTop®     0     0
5 1          MdCn-181  CabrioTop®     0     0
6 2          MdCc-55PR CabrioTop®     0     0
7 2          MdCn-181  CabrioTop®     0     0
Código
ggplot(data = tb,
       mapping = aes(x = treatment, y = germ,
                     color = experiment, group = experiment)) +
    facet_wrap(facets = ~isolated, ncol = 1) +
    geom_point() +
    stat_summary(fun = "mean", geom = "line")

Código
ggplot(data = tb,
       mapping = aes(x = isolated, y = germ,
                     color = experiment, group = experiment)) +
    facet_wrap(facets = ~treatment) +
    geom_point() +
    stat_summary(fun = "mean", geom = "line")

Código
# A pesquisadora deseja que os experimentos sejam analisados
# separadamente. Além disso, em cada experimento é para comparar apenas
# isolados que sejam de mesma espécie.

2.1 Experimento 1

Código
#-----------------------------------------------------------------------
# Análise do experimento 1. --------------------------------------------

# Filtra para um dos experimentos.
tbi <- tb |>
    filter(experiment == "1")

# IMPORTANT: Para evitar problemas de estimação devido a celas
# experimentais com estimativas de proporção amostral valendo 0 ou 1,
# vamos empregar uma solução ad-hoc que é considerar que foram 102
# esporos avaliados e vamos somar 1 a todos os valores observados. Dessa
# forma as estimatimas extremas passam a ser 1/102 = 0.0098 e 101/102 =
# 0.9902. Sabe-se que isso carrega o modelo com mais informação
# indicando que o n é 102 e não 100. Porém, como o modelo e
# quasi-binomial, espera-se que o parâmetro de dispersão compense de
# alguma forma.

# Ajuste do modelo aos dados.
m0 <- glm(cbind(germ + 1, 102 - germ) ~ treatment * isolated,
          data = tbi,
          family = quasibinomial)

# Exame gráfico integrado dos pressupostos.
par(mfrow = c(2, 2))
plot(m0)

Código
layout(1)

# Quadro de análise de deviance.
anova(m0, test = "F")
Analysis of Deviance Table

Model: quasibinomial, link: logit

Response: cbind(germ + 1, 102 - germ)

Terms added sequentially (first to last)

                   Df Deviance Resid. Df Resid. Dev      F    Pr(>F)    
NULL                                 127     6080.6                     
treatment           7   3747.0       120     2333.5 70.289 < 2.2e-16 ***
isolated            3   1121.4       117     1212.1 49.084 < 2.2e-16 ***
treatment:isolated 21    464.9        96      747.2  2.907 0.0002141 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Código
# Para verificar o valor do parâmetro de dispersão.
# summary(m0)
summary(m0)$dispersion
[1] 7.615533
Código
# Comparar entre isolados de mesma espécie.
tb_iso <-
    tbi |>
    ungroup() |>
    distinct(species, isolated) |>
    with({
        split(as.character(isolated), species)
    })
tb_iso
$`C. chrysophillum`
[1] "MdCc-110"  "MdCc-55PR"

$`C. nymphaeae`
[1] "MdCn-181" "MdCn-142"
Código
# Para armazenar as comparações de médias.
tb_means <- list(isolated = NULL, treatment = NULL)

# Aplica o teste de comparação de médias separado por espécie.
tb_means$isolated[["C. nymphaeae"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. nymphaeae"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE)
tb_means$isolated[["C. chrysophillum"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. chrysophillum"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE)
tb_means$isolated
$`C. nymphaeae`
treatment = Control:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  2.0026 0.420 Inf    1.1794     2.826  a    
 MdCn-142  0.9368 0.302 Inf    0.3443     1.529   b   

treatment = Bam 0,5g/L:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  1.9796 0.416 Inf    1.1636     2.796  a    
 MdCn-142  1.4864 0.351 Inf    0.7994     2.173  a    

treatment = Bam 1,0g/L:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  1.6749 0.373 Inf    0.9439     2.406  a    
 MdCn-142  0.3033 0.275 Inf   -0.2358     0.842   b   

treatment = Bam 2,0g/L:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  1.1247 0.316 Inf    0.5052     1.744  a    
 MdCn-142  0.0583 0.272 Inf   -0.4749     0.591   b   

treatment = SBa:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  1.6749 0.373 Inf    0.9439     2.406  a    
 MdCn-142  0.1069 0.272 Inf   -0.4268     0.641   b   

treatment = BBa:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  1.9349 0.409 Inf    1.1325     2.737  a    
 MdCn-142  0.5160 0.281 Inf   -0.0348     1.067   b   

treatment = Bs:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  2.7830 0.580 Inf    1.6453     3.921  a    
 MdCn-142  0.6642 0.287 Inf    0.1016     1.227   b   

treatment = CabrioTop®:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142 -4.6250 1.387 Inf   -7.3426    -1.907  a    
 MdCn-181 -4.6250 1.387 Inf   -7.3426    -1.907  a    

Results are given on the logit (not the response) scale. 
Confidence level used: 0.95 
Results are given on the log odds ratio (not the response) scale. 
significance level used: alpha = 0.05 
NOTE: If two or more means share the same grouping symbol,
      then we cannot show them to be different.
      But we also did not show them to be the same. 

$`C. chrysophillum`
treatment = Control:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   1.318 0.333 Inf    0.6650     1.971  a    
 MdCc-55PR  0.643 0.286 Inf    0.0819     1.203  a    

treatment = Bam 0,5g/L:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   2.150 0.445 Inf    1.2780     3.021  a    
 MdCc-55PR -1.125 0.316 Inf   -1.7441    -0.505   b   

treatment = Bam 1,0g/L:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   0.568 0.283 Inf    0.0136     1.123  a    
 MdCc-55PR -0.353 0.276 Inf   -0.8944     0.188   b   

treatment = Bam 2,0g/L:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   2.124 0.440 Inf    1.2611     2.987  a    
 MdCc-55PR  0.254 0.274 Inf   -0.2835     0.791   b   

treatment = SBa:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   2.074 0.432 Inf    1.2279     2.920  a    
 MdCc-55PR  0.156 0.273 Inf   -0.3789     0.690   b   

treatment = BBa:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   2.003 0.420 Inf    1.1794     2.826  a    
 MdCc-55PR  0.730 0.290 Inf    0.1610     1.299   b   

treatment = Bs:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   3.922 0.985 Inf    1.9908     5.853  a    
 MdCc-55PR  0.937 0.302 Inf    0.3443     1.529   b   

treatment = CabrioTop®:
 isolated  emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-55PR -4.625 1.387 Inf   -7.3426    -1.907  a    
 MdCc-110  -4.625 1.387 Inf   -7.3426    -1.907  a    

Results are given on the logit (not the response) scale. 
Confidence level used: 0.95 
Results are given on the log odds ratio (not the response) scale. 
significance level used: alpha = 0.05 
NOTE: If two or more means share the same grouping symbol,
      then we cannot show them to be different.
      But we also did not show them to be the same. 
Código
# Junta os resultados em um única tabela para fazer os gráficos.
tb_means$isolated <-
    tb_means$isolated |>
    map(as.data.frame) |>
    bind_rows(.id = "species") |>
    mutate(.group = trimws(.group))
tb_means$isolated
            species  isolated  treatment      emmean        SE  df   asymp.LCL
1      C. nymphaeae  MdCn-181    Control  2.00258254 0.4199982 Inf  1.17940121
2      C. nymphaeae  MdCn-142    Control  0.93676926 0.3022901 Inf  0.34429156
3      C. nymphaeae  MdCn-181 Bam 0,5g/L  1.97962121 0.4163509 Inf  1.16358848
4      C. nymphaeae  MdCn-142 Bam 0,5g/L  1.48637782 0.3505277 Inf  0.79935616
5      C. nymphaeae  MdCn-181 Bam 1,0g/L  1.67493751 0.3729730 Inf  0.94392393
6      C. nymphaeae  MdCn-142 Bam 1,0g/L  0.30327417 0.2750462 Inf -0.23580639
7      C. nymphaeae  MdCn-181 Bam 2,0g/L  1.12467240 0.3160515 Inf  0.50522279
8      C. nymphaeae  MdCn-142 Bam 2,0g/L  0.05826891 0.2720294 Inf -0.47489892
9      C. nymphaeae  MdCn-181        SBa  1.67493751 0.3729730 Inf  0.94392393
10     C. nymphaeae  MdCn-142        SBa  0.10689779 0.2723025 Inf -0.42680526
11     C. nymphaeae  MdCn-181        BBa  1.93486031 0.4093981 Inf  1.13245473
12     C. nymphaeae  MdCn-142        BBa  0.51600698 0.2810144 Inf -0.03477110
13     C. nymphaeae  MdCn-181         Bs  2.78295151 0.5804667 Inf  1.64525774
14     C. nymphaeae  MdCn-142         Bs  0.66415964 0.2870452 Inf  0.10156137
15     C. nymphaeae  MdCn-142 CabrioTop® -4.62497281 1.3865601 Inf -7.34258064
16     C. nymphaeae  MdCn-181 CabrioTop® -4.62497281 1.3865601 Inf -7.34258064
17 C. chrysophillum  MdCc-110    Control  1.31791706 0.3331175 Inf  0.66501874
18 C. chrysophillum MdCc-55PR    Control  0.64259490 0.2860703 Inf  0.08190749
19 C. chrysophillum  MdCc-110 Bam 0,5g/L  2.14959653 0.4446839 Inf  1.27803219
20 C. chrysophillum MdCc-55PR Bam 0,5g/L -1.12467240 0.3160515 Inf -1.74412200
21 C. chrysophillum  MdCc-110 Bam 1,0g/L  0.56820773 0.2829618 Inf  0.01361285
22 C. chrysophillum MdCc-55PR Bam 1,0g/L -0.35313929 0.2761637 Inf -0.89441024
23 C. chrysophillum  MdCc-110 Bam 2,0g/L  2.12389330 0.4401985 Inf  1.26112017
24 C. chrysophillum MdCc-55PR Bam 2,0g/L  0.25378052 0.2741060 Inf -0.28345735
25 C. chrysophillum  MdCc-110        SBa  2.07399194 0.4316971 Inf  1.22788107
26 C. chrysophillum MdCc-55PR        SBa  0.15565331 0.2727379 Inf -0.37890314
27 C. chrysophillum  MdCc-110        BBa  2.00258254 0.4199974 Inf  1.17940269
28 C. chrysophillum MdCc-55PR        BBa  0.72978131 0.2902178 Inf  0.16096497
29 C. chrysophillum  MdCc-110         Bs  3.92197334 0.9852878 Inf  1.99084478
30 C. chrysophillum MdCc-55PR         Bs  0.93676926 0.3022901 Inf  0.34429156
31 C. chrysophillum MdCc-55PR CabrioTop® -4.62497281 1.3865601 Inf -7.34258064
32 C. chrysophillum  MdCc-110 CabrioTop® -4.62497281 1.3865601 Inf -7.34258064
    asymp.UCL .group
1   2.8257639      a
2   1.5292470      b
3   2.7956539      a
4   2.1733995      a
5   2.4059511      a
6   0.8423547      b
7   1.7441220      a
8   0.5914367      b
9   2.4059511      a
10  0.6406009      b
11  2.7372659      a
12  1.0667851      b
13  3.9206453      a
14  1.2267579      b
15 -1.9073650      a
16 -1.9073650      a
17  1.9708154      a
18  1.2032823      a
19  3.0211609      a
20 -0.5052228      b
21  1.1228026      a
22  0.1881317      b
23  2.9866664      a
24  0.7910184      b
25  2.9201028      a
26  0.6902098      b
27  2.8257624      a
28  1.2985977      b
29  5.8531019      a
30  1.5292470      b
31 -1.9073650      a
32 -1.9073650      a
Código
# Passar o inverso da função de ligação.
tb_means$isolated <-
    tb_means$isolated |>
    mutate_at(c("emmean", "asymp.LCL", "asymp.UCL"),
              ~100 * m0$family$linkinv(.))

ggplot(data = tb_means$isolated,
       mapping = aes(y = isolated, color = species, x = emmean)) +
    facet_wrap(facets = ~treatment) +
    geom_errorbarh(mapping = aes(xmin = asymp.LCL, xmax = asymp.UCL),
                   height = 0) +
    geom_point() +
    geom_text(mapping = aes(label = sprintf("%0.2f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.1, show.legend = FALSE,
              size = 3.5) +
    labs(y = "Isolated",
         x = "Germination (%)") +
    expand_limits(x = c(-10, 110))

Código
# Comparação entre os tratamentos.
tb_means$treatment <-
    emmeans(m0,
            specs = ~treatment | isolated) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group))
tb_means$treatment
    treatment  isolated      emmean        SE  df   asymp.LCL  asymp.UCL .group
8          Bs  MdCc-110  3.92197334 0.9852878 Inf  1.99084478  5.8531019      a
3  Bam 0,5g/L  MdCc-110  2.14959653 0.4446839 Inf  1.27803219  3.0211609     ab
1  Bam 2,0g/L  MdCc-110  2.12389330 0.4401985 Inf  1.26112017  2.9866664     ab
6         SBa  MdCc-110  2.07399194 0.4316971 Inf  1.22788107  2.9201028     ab
5         BBa  MdCc-110  2.00258254 0.4199974 Inf  1.17940269  2.8257624     ab
4     Control  MdCc-110  1.31791706 0.3331175 Inf  0.66501874  1.9708154     ab
2  Bam 1,0g/L  MdCc-110  0.56820773 0.2829618 Inf  0.01361285  1.1228026      b
7  CabrioTop®  MdCc-110 -4.62497281 1.3865601 Inf -7.34258064 -1.9073650      c
16         Bs MdCc-55PR  0.93676926 0.3022901 Inf  0.34429156  1.5292470      a
10        BBa MdCc-55PR  0.72978131 0.2902178 Inf  0.16096497  1.2985977     ab
11    Control MdCc-55PR  0.64259490 0.2860703 Inf  0.08190749  1.2032823     ab
13 Bam 2,0g/L MdCc-55PR  0.25378052 0.2741060 Inf -0.28345735  0.7910184     ab
12        SBa MdCc-55PR  0.15565331 0.2727379 Inf -0.37890314  0.6902098     ab
9  Bam 1,0g/L MdCc-55PR -0.35313929 0.2761637 Inf -0.89441024  0.1881317     bc
14 Bam 0,5g/L MdCc-55PR -1.12467240 0.3160515 Inf -1.74412200 -0.5052228      c
15 CabrioTop® MdCc-55PR -4.62497281 1.3865601 Inf -7.34258064 -1.9073650      c
24 Bam 0,5g/L  MdCn-142  1.48637782 0.3505277 Inf  0.79935616  2.1733995      a
20    Control  MdCn-142  0.93676926 0.3022901 Inf  0.34429156  1.5292470     ab
21         Bs  MdCn-142  0.66415964 0.2870452 Inf  0.10156137  1.2267579     ab
19        BBa  MdCn-142  0.51600698 0.2810144 Inf -0.03477110  1.0667851     ab
22 Bam 1,0g/L  MdCn-142  0.30327417 0.2750462 Inf -0.23580639  0.8423547     ab
23        SBa  MdCn-142  0.10689779 0.2723025 Inf -0.42680526  0.6406009      b
17 Bam 2,0g/L  MdCn-142  0.05826891 0.2720294 Inf -0.47489892  0.5914367      b
18 CabrioTop®  MdCn-142 -4.62497281 1.3865601 Inf -7.34258064 -1.9073650      c
32         Bs  MdCn-181  2.78295151 0.5804667 Inf  1.64525774  3.9206453      a
28    Control  MdCn-181  2.00258254 0.4199982 Inf  1.17940121  2.8257639      a
29 Bam 0,5g/L  MdCn-181  1.97962121 0.4163509 Inf  1.16358848  2.7956539      a
27        BBa  MdCn-181  1.93486031 0.4093981 Inf  1.13245473  2.7372659      a
30 Bam 1,0g/L  MdCn-181  1.67493751 0.3729730 Inf  0.94392393  2.4059511      a
26        SBa  MdCn-181  1.67493751 0.3729730 Inf  0.94392393  2.4059511      a
25 Bam 2,0g/L  MdCn-181  1.12467240 0.3160515 Inf  0.50522279  1.7441220      a
31 CabrioTop®  MdCn-181 -4.62497281 1.3865601 Inf -7.34258064 -1.9073650      b
Código
tb_means$treatment <-
    tb_means$treatment |>
    mutate_at(c("emmean", "asymp.LCL", "asymp.UCL"),
              ~100 * m0$family$linkinv(.))

ggplot(data = tb_means$treatment,
       mapping = aes(y = treatment, x = emmean)) +
    facet_wrap(facets = ~isolated) +
    geom_errorbarh(mapping = aes(xmin = asymp.LCL, xmax = asymp.UCL),
                   height = 0) +
    geom_point() +
    geom_text(mapping = aes(label = sprintf("%0.2f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.1, show.legend = FALSE,
              size = 3.5) +
    labs(y = "Treatment",
         x = "Germination (%)") +
    expand_limits(x = c(-10, 110))

2.2 Experimento 2

Código
#-----------------------------------------------------------------------
# Análise do experimento 2. --------------------------------------------

# Filtra para um dos experimentos.
tbi <- tb |>
    filter(experiment == "2")

# IMPORTANT: Para evitar problemas de estimação devido a celas
# experimentais com estimativas de proporção amostral valendo 0 ou 1,
# vamos empregar uma solução ad-hoc que é considerar que foram 102
# esporos avaliados e vamos somar 1 a todos os valores observados. Dessa
# forma as estimatimas extremas passam a ser 1/102 = 0.0098 e 101/102 =
# 0.9902. Sabe-se que isso carrega o modelo com mais informação
# indicando que o n é 102 e não 100. Porém, como o modelo e
# quasi-binomial, espera-se que o parâmetro de dispersão compense de
# alguma forma.

# Ajuste do modelo aos dados.
m0 <- glm(cbind(germ + 1, 102 - germ) ~ treatment * isolated,
          data = tbi,
          family = quasibinomial)

# Exame gráfico integrado dos pressupostos.
par(mfrow = c(2, 2))
plot(m0)

Código
layout(1)

# Quadro de análise de deviance.
anova(m0, test = "F")
Analysis of Deviance Table

Model: quasibinomial, link: logit

Response: cbind(germ + 1, 102 - germ)

Terms added sequentially (first to last)

                   Df Deviance Resid. Df Resid. Dev       F    Pr(>F)    
NULL                                 127     6214.1                      
treatment           7   4219.4       120     1994.7 64.7109 < 2.2e-16 ***
isolated            3    453.8       117     1540.8 16.2399 1.295e-08 ***
treatment:isolated 21    588.1        96      952.8  3.0062 0.0001363 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Código
# Para verificar o valor do parâmetro de dispersão.
# summary(m0)
summary(m0)$dispersion
[1] 9.3149
Código
# Comparar entre isolados de mesma espécie.
tb_iso <-
    tbi |>
    ungroup() |>
    distinct(species, isolated) |>
    with({
        split(as.character(isolated), species)
    })
tb_iso
$`C. chrysophillum`
[1] "MdCc-110"  "MdCc-55PR"

$`C. nymphaeae`
[1] "MdCn-181" "MdCn-142"
Código
# Para armazenar as comparações de médias.
tb_means <- list(isolated = NULL, treatment = NULL)

# Aplica o teste de comparação de médias separado por espécie.
tb_means$isolated[["C. nymphaeae"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. nymphaeae"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE)
tb_means$isolated[["C. chrysophillum"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. chrysophillum"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE)
tb_means$isolated
$`C. nymphaeae`
treatment = Control:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142  2.203 0.502 Inf    1.2182    3.1871  a    
 MdCn-181  2.074 0.477 Inf    1.1382    3.0098  a    

treatment = Bam 0,5g/L:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142  2.474 0.562 Inf    1.3734    3.5755  a    
 MdCn-181  1.247 0.361 Inf    0.5389    1.9542  a    

treatment = Bam 1,0g/L:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142  1.178 0.354 Inf    0.4832    1.8725  a    
 MdCn-181  0.383 0.306 Inf   -0.2170    0.9835  a    

treatment = Bam 2,0g/L:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142  2.099 0.482 Inf    1.1539    3.0435  a    
 MdCn-181  0.579 0.313 Inf   -0.0355    1.1930   b   

treatment = SBa:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142  1.731 0.421 Inf    0.9066    2.5550  a    
 MdCn-181 -0.589 0.314 Inf   -1.2045    0.0259   b   

treatment = BBa:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  1.957 0.457 Inf    1.0622    2.8519  a    
 MdCn-142  0.686 0.319 Inf    0.0615    1.3103   b   

treatment = Bs:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-181  2.657 0.608 Inf    1.4665    3.8483  a    
 MdCn-142  2.203 0.502 Inf    1.2182    3.1871  a    

treatment = CabrioTop®:
 isolated emmean    SE  df asymp.LCL asymp.UCL .group
 MdCn-142 -3.596 0.933 Inf   -5.4242   -1.7679  a    
 MdCn-181 -4.625 1.533 Inf   -7.6305   -1.6194  a    

Results are given on the logit (not the response) scale. 
Confidence level used: 0.95 
Results are given on the log odds ratio (not the response) scale. 
significance level used: alpha = 0.05 
NOTE: If two or more means share the same grouping symbol,
      then we cannot show them to be different.
      But we also did not show them to be the same. 

$`C. chrysophillum`
treatment = Control:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-55PR  1.5523 0.396 Inf    0.7762    2.3283  a    
 MdCc-110   1.5190 0.392 Inf    0.7512    2.2867  a    

treatment = Bam 0,5g/L:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   0.8893 0.331 Inf    0.2406    1.5379  a    
 MdCc-55PR  0.0291 0.301 Inf   -0.5603    0.6186  a    

treatment = Bam 1,0g/L:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   0.2933 0.304 Inf   -0.3024    0.8891  a    
 MdCc-55PR -0.7187 0.320 Inf   -1.3466   -0.0909   b   

treatment = Bam 2,0g/L:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   0.2735 0.304 Inf   -0.3214    0.8685  a    
 MdCc-55PR -0.7632 0.323 Inf   -1.3960   -0.1303   b   

treatment = SBa:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   0.7298 0.321 Inf    0.1007    1.3589  a    
 MdCc-55PR  0.6750 0.318 Inf    0.0517    1.2983  a    

treatment = BBa:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   2.0026 0.465 Inf    1.0922    2.9130  a    
 MdCc-55PR  1.2465 0.361 Inf    0.5389    1.9542  a    

treatment = Bs:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110   1.6749 0.412 Inf    0.8665    2.4834  a    
 MdCc-55PR  1.4231 0.380 Inf    0.6781    2.1681  a    

treatment = CabrioTop®:
 isolated   emmean    SE  df asymp.LCL asymp.UCL .group
 MdCc-110  -4.0580 1.163 Inf   -6.3384   -1.7776  a    
 MdCc-55PR -4.6250 1.533 Inf   -7.6305   -1.6194  a    

Results are given on the logit (not the response) scale. 
Confidence level used: 0.95 
Results are given on the log odds ratio (not the response) scale. 
significance level used: alpha = 0.05 
NOTE: If two or more means share the same grouping symbol,
      then we cannot show them to be different.
      But we also did not show them to be the same. 
Código
# Junta os resultados em um única tabela para fazer os gráficos.
tb_means$isolated <-
    tb_means$isolated |>
    map(as.data.frame) |>
    bind_rows(.id = "species") |>
    mutate(.group = trimws(.group))
tb_means$isolated
            species  isolated  treatment      emmean        SE  df   asymp.LCL
1      C. nymphaeae  MdCn-142    Control  2.20263000 0.5022950 Inf  1.21814996
2      C. nymphaeae  MdCn-181    Control  2.07399194 0.4774394 Inf  1.13822793
3      C. nymphaeae  MdCn-142 Bam 0,5g/L  2.47443535 0.5617860 Inf  1.37335501
4      C. nymphaeae  MdCn-181 Bam 0,5g/L  1.24653242 0.3610512 Inf  0.53888506
5      C. nymphaeae  MdCn-142 Bam 1,0g/L  1.17786166 0.3544023 Inf  0.48324587
6      C. nymphaeae  MdCn-181 Bam 1,0g/L  0.38326440 0.3062643 Inf -0.21700267
7      C. nymphaeae  MdCn-142 Bam 2,0g/L  2.09869936 0.4820570 Inf  1.15388495
8      C. nymphaeae  MdCn-181 Bam 2,0g/L  0.57873683 0.3134043 Inf -0.03552422
9      C. nymphaeae  MdCn-142        SBa  1.73079877 0.4205405 Inf  0.90655451
10     C. nymphaeae  MdCn-181        SBa -0.58929724 0.3138745 Inf -1.20448005
11     C. nymphaeae  MdCn-181        BBa  1.95705233 0.4565612 Inf  1.06220879
12     C. nymphaeae  MdCn-142        BBa  0.68587442 0.3185809 Inf  0.06146735
13     C. nymphaeae  MdCn-181         Bs  2.65740647 0.6076108 Inf  1.46651126
14     C. nymphaeae  MdCn-142         Bs  2.20263000 0.5022950 Inf  1.21814996
15     C. nymphaeae  MdCn-142 CabrioTop® -3.59606615 0.9327580 Inf -5.42423815
16     C. nymphaeae  MdCn-181 CabrioTop® -4.62497281 1.5334783 Inf -7.63053500
17 C. chrysophillum MdCc-55PR    Control  1.55227950 0.3959424 Inf  0.77624668
18 C. chrysophillum  MdCc-110    Control  1.51898080 0.3917089 Inf  0.75124537
19 C. chrysophillum  MdCc-110 Bam 0,5g/L  0.88926206 0.3309449 Inf  0.24062203
20 C. chrysophillum MdCc-55PR Bam 0,5g/L  0.02912827 0.3007576 Inf -0.56034570
21 C. chrysophillum  MdCc-110 Bam 1,0g/L  0.29334781 0.3039663 Inf -0.30241510
22 C. chrysophillum MdCc-55PR Bam 1,0g/L -0.71874273 0.3203546 Inf -1.34662616
23 C. chrysophillum  MdCc-110 Bam 2,0g/L  0.27353757 0.3035427 Inf -0.32139517
24 C. chrysophillum MdCc-55PR Bam 2,0g/L -0.76315735 0.3228858 Inf -1.39600181
25 C. chrysophillum  MdCc-110        SBa  0.72978131 0.3209689 Inf  0.10069390
26 C. chrysophillum MdCc-55PR        SBa  0.67499786 0.3180160 Inf  0.05169794
27 C. chrysophillum  MdCc-110        BBa  2.00258254 0.4645007 Inf  1.09217794
28 C. chrysophillum MdCc-55PR        BBa  1.24653242 0.3610512 Inf  0.53888506
29 C. chrysophillum  MdCc-110         Bs  1.67493751 0.4124927 Inf  0.86646663
30 C. chrysophillum MdCc-55PR         Bs  1.42310833 0.3801226 Inf  0.67808177
31 C. chrysophillum  MdCc-110 CabrioTop® -4.05797692 1.1634860 Inf -6.33836763
32 C. chrysophillum MdCc-55PR CabrioTop® -4.62497281 1.5334783 Inf -7.63053500
     asymp.UCL .group
1   3.18711003      a
2   3.00975594      a
3   3.57551569      a
4   1.95417978      a
5   1.87247745      a
6   0.98353147      a
7   3.04351376      a
8   1.19299787      b
9   2.55504302      a
10  0.02588557      b
11  2.85189586      a
12  1.31028150      b
13  3.84830168      a
14  3.18711003      a
15 -1.76789415      a
16 -1.61941063      a
17  2.32831232      a
18  2.28671624      a
19  1.53790209      a
20  0.61860224      a
21  0.88911072      a
22 -0.09085929      b
23  0.86847030      a
24 -0.13031288      b
25  1.35886873      a
26  1.29829778      a
27  2.91298714      a
28  1.95417978      a
29  2.48340839      a
30  2.16813490      a
31 -1.77758621      a
32 -1.61941063      a
Código
# Passar o inverso da função de ligação.
tb_means$isolated <-
    tb_means$isolated |>
    mutate_at(c("emmean", "asymp.LCL", "asymp.UCL"),
              ~100 * m0$family$linkinv(.))

ggplot(data = tb_means$isolated,
       mapping = aes(y = isolated, color = species, x = emmean)) +
    facet_wrap(facets = ~treatment) +
    geom_errorbarh(mapping = aes(xmin = asymp.LCL, xmax = asymp.UCL),
                   height = 0) +
    geom_point() +
    geom_text(mapping = aes(label = sprintf("%0.2f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.1, show.legend = FALSE,
              size = 3.5) +
    labs(y = "Isolated",
         x = "Germination (%)") +
    expand_limits(x = c(-10, 110))

Código
# Comparação entre os tratamentos.
tb_means$treatment <-
    emmeans(m0,
            specs = ~treatment | isolated) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group))
tb_means$treatment
    treatment  isolated      emmean        SE  df   asymp.LCL   asymp.UCL
8         BBa  MdCc-110  2.00258254 0.4645007 Inf  1.09217794  2.91298714
4          Bs  MdCc-110  1.67493751 0.4124927 Inf  0.86646663  2.48340839
3     Control  MdCc-110  1.51898080 0.3917089 Inf  0.75124537  2.28671624
5  Bam 0,5g/L  MdCc-110  0.88926206 0.3309449 Inf  0.24062203  1.53790209
2         SBa  MdCc-110  0.72978131 0.3209689 Inf  0.10069390  1.35886873
1  Bam 1,0g/L  MdCc-110  0.29334781 0.3039663 Inf -0.30241510  0.88911072
7  Bam 2,0g/L  MdCc-110  0.27353757 0.3035427 Inf -0.32139517  0.86847030
6  CabrioTop®  MdCc-110 -4.05797692 1.1634860 Inf -6.33836763 -1.77758621
16    Control MdCc-55PR  1.55227950 0.3959424 Inf  0.77624668  2.32831232
12         Bs MdCc-55PR  1.42310833 0.3801226 Inf  0.67808177  2.16813490
11        BBa MdCc-55PR  1.24653242 0.3610512 Inf  0.53888506  1.95417978
10        SBa MdCc-55PR  0.67499786 0.3180160 Inf  0.05169794  1.29829778
13 Bam 0,5g/L MdCc-55PR  0.02912827 0.3007576 Inf -0.56034570  0.61860224
14 Bam 1,0g/L MdCc-55PR -0.71874273 0.3203546 Inf -1.34662616 -0.09085929
15 Bam 2,0g/L MdCc-55PR -0.76315735 0.3228858 Inf -1.39600181 -0.13031288
9  CabrioTop® MdCc-55PR -4.62497281 1.5334783 Inf -7.63053500 -1.61941063
24 Bam 0,5g/L  MdCn-142  2.47443535 0.5617860 Inf  1.37335501  3.57551569
22    Control  MdCn-142  2.20263000 0.5022950 Inf  1.21814996  3.18711003
19         Bs  MdCn-142  2.20263000 0.5022950 Inf  1.21814996  3.18711003
21 Bam 2,0g/L  MdCn-142  2.09869936 0.4820570 Inf  1.15388495  3.04351376
20        SBa  MdCn-142  1.73079877 0.4205405 Inf  0.90655451  2.55504302
23 Bam 1,0g/L  MdCn-142  1.17786166 0.3544023 Inf  0.48324587  1.87247745
17        BBa  MdCn-142  0.68587442 0.3185809 Inf  0.06146735  1.31028150
18 CabrioTop®  MdCn-142 -3.59606615 0.9327580 Inf -5.42423815 -1.76789415
32         Bs  MdCn-181  2.65740647 0.6076108 Inf  1.46651126  3.84830168
29    Control  MdCn-181  2.07399194 0.4774394 Inf  1.13822793  3.00975594
27        BBa  MdCn-181  1.95705233 0.4565612 Inf  1.06220879  2.85189586
28 Bam 0,5g/L  MdCn-181  1.24653242 0.3610512 Inf  0.53888506  1.95417978
26 Bam 2,0g/L  MdCn-181  0.57873683 0.3134043 Inf -0.03552422  1.19299787
30 Bam 1,0g/L  MdCn-181  0.38326440 0.3062643 Inf -0.21700267  0.98353147
25        SBa  MdCn-181 -0.58929724 0.3138745 Inf -1.20448005  0.02588557
31 CabrioTop®  MdCn-181 -4.62497281 1.5334783 Inf -7.63053500 -1.61941063
   .group
8       a
4      ab
3      ab
5      ab
2      ab
1       b
7       b
6       c
16      a
12     ab
11     ab
10     ab
13     bc
14      c
15      c
9       c
24      a
22      a
19      a
21      a
20      a
23      a
17      a
18      b
32      a
29     ab
27     ab
28     ab
26     bc
30     bc
25     cd
31      d
Código
tb_means$treatment <-
    tb_means$treatment |>
    mutate_at(c("emmean", "asymp.LCL", "asymp.UCL"),
              ~100 * m0$family$linkinv(.))

ggplot(data = tb_means$treatment,
       mapping = aes(y = treatment, x = emmean)) +
    facet_wrap(facets = ~isolated) +
    geom_errorbarh(mapping = aes(xmin = asymp.LCL, xmax = asymp.UCL),
                   height = 0) +
    geom_point() +
    geom_text(mapping = aes(label = sprintf("%0.2f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.1, show.legend = FALSE,
              size = 3.5) +
    labs(y = "Treatment",
         x = "Germination (%)") +
    expand_limits(x = c(-10, 110))